WEBVTT

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

00:00:04.640 --> 00:00:10.220
This is episode 258, recorded November 10th, 2021. I'm Michael Kennedy.

00:00:10.220 --> 00:00:11.500
And I'm Brian Okken.

00:00:11.500 --> 00:00:12.980
And I'm Karen Dalton.

00:00:12.980 --> 00:00:13.620
Yay.

00:00:13.620 --> 00:00:16.260
Yay. Welcome, Karen. So good to have you here.

00:00:16.260 --> 00:00:22.060
It is quite a delight and an honor. I've been a longtime fan, as they say on the radio,

00:00:22.060 --> 00:00:30.720
a longtime listener, first time caller of both of your podcasts and books and Slack channels and training.

00:00:30.720 --> 00:00:33.100
And so I'm really excited to be here.

00:00:33.100 --> 00:00:35.960
Well, thanks for being part of the community in all those ways.

00:00:35.960 --> 00:00:40.780
And you and I got to meet down at Pi Bay in San Francisco. That was a lot of fun.

00:00:40.780 --> 00:00:44.460
Yeah. I don't know if Brian knows.

00:00:44.460 --> 00:00:48.760
I arrived at Pi Bay and I was going to be one of the emcees.

00:00:49.180 --> 00:00:53.200
And I saw Michael Kennedy, who I cherry picked to introduce.

00:00:53.200 --> 00:00:57.860
I, you know, I was one of the organizers and emcees for the event.

00:00:57.860 --> 00:01:01.540
And I approached him and overwhelmed him. I'm like, you're a super fan.

00:01:01.540 --> 00:01:10.500
And he was like, so, but he was very gracious about, about being a fangirled just at the registration table.

00:01:10.500 --> 00:01:13.500
Yeah, no, you, you were great to help me out with the talk. Thank you so much.

00:01:13.500 --> 00:01:18.120
And hey, it's Anthony Shaw on the live stream. Hey, says, hi, Karen. Great to have you on the show.

00:01:18.120 --> 00:01:18.760
Nice.

00:01:18.760 --> 00:01:19.560
Hi, Anthony.

00:01:19.560 --> 00:01:27.580
Anthony and I just did a show on Pigeon, P-Y-J-I-O, and the JIT compiler that he just released version 1.0.

00:01:27.580 --> 00:01:32.020
That's that Hawk Python episode will be out today, tomorrow. Fingers crossed very, very soon.

00:01:32.020 --> 00:01:36.840
So stay tuned for more on that. But let's start with whatever you brought us, Brian.

00:01:36.840 --> 00:01:38.560
Well, number one.

00:01:38.560 --> 00:01:43.320
Well, I figure we really need to talk about Will McCoogan because, you know, get that.

00:01:43.320 --> 00:01:44.820
Has it been a show since we've done that?

00:01:46.040 --> 00:01:50.860
So just get that out of the way. So on Twitter, Will asked a general question to everybody.

00:01:50.860 --> 00:01:59.060
Something like if I've got an open source project and somebody files an issue with it, but I have a question about it.

00:01:59.300 --> 00:02:04.120
And I asked them a question and they don't ever respond for a really long time.

00:02:04.120 --> 00:02:08.760
So is there a way to just automatically clean those up or clean them up easily?

00:02:08.760 --> 00:02:15.880
Because we could just assume that the person has figured out or solved the problem or it's not a problem anymore or they don't care.

00:02:16.040 --> 00:02:22.540
So one of the responses, which I liked, which I thought was pretty cool, was a bot, a GitHub bot.

00:02:22.540 --> 00:02:24.900
It's actually from GitHub.

00:02:24.900 --> 00:02:28.000
It's a bot called Stale.

00:02:28.200 --> 00:02:31.660
So it's a bot that closes stale issues and PRs.

00:02:31.660 --> 00:02:42.580
And the gist of it, like on the 10, it says it warns and then closes issues and PRs that have had no activity for a specified amount of time.

00:02:42.580 --> 00:02:43.640
That sounds perfect.

00:02:44.640 --> 00:03:02.180
Configuration must be on the default branch and the default values will be it will add a stale label to issues or PRs that are six with after 60 days of inactivity and close stale issues or PRs after seven days of inactivity.

00:03:02.180 --> 00:03:06.540
And if an update or comment occurs during that time frame, it restarts the clock.

00:03:06.540 --> 00:03:15.580
But all of those are not for me, since I'm an open source maintainer, but I don't like sometimes I don't pay attention to them for a couple months.

00:03:15.580 --> 00:03:26.140
I would definitely want to bump that up to make sure that it's at least within my time frame so that, you know, my own if my own inactivity problems might not be the case.

00:03:26.140 --> 00:03:27.900
So I totally hear that.

00:03:27.900 --> 00:03:32.940
I would love to see one minor change, one more bullet point on the things it does.

00:03:33.400 --> 00:03:37.220
Add a stale label after 60 days, close it after seven days of inactivity.

00:03:37.220 --> 00:03:40.040
A comment will bring it back.

00:03:40.040 --> 00:03:46.500
But I would love to see this bot put a comment on there saying, if we don't deal with this, it's going away.

00:03:46.500 --> 00:03:49.580
That way, the people who submitted the PR will get an email.

00:03:49.580 --> 00:03:51.380
The maintainer will get an email.

00:03:51.380 --> 00:03:57.180
And so like you're notified the seven day clock has begun, you know, Karen, you're shaking your head.

00:03:57.180 --> 00:04:02.740
Yeah, I mean, I've certainly seen it on open source repos.

00:04:02.740 --> 00:04:06.680
And it's it's nice to have that there.

00:04:06.680 --> 00:04:12.240
But sometimes it's an issue that's important to you and you don't want it to necessarily go away.

00:04:12.240 --> 00:04:18.020
Like and I wish there was a way to like say this is actually really important to me.

00:04:18.020 --> 00:04:19.940
Please don't close it even if you can't pay attention.

00:04:20.180 --> 00:04:21.220
Yeah.

00:04:21.220 --> 00:04:24.100
Well, there's for instance, I'm in one of the settings.

00:04:24.100 --> 00:04:24.980
There's a bunch of settings.

00:04:24.980 --> 00:04:28.720
One of the settings is a stale issue message or comment on stale issue.

00:04:28.720 --> 00:04:30.760
So unless you got it, it does.

00:04:30.760 --> 00:04:31.660
I thought about it already.

00:04:31.660 --> 00:04:32.420
That one.

00:04:33.100 --> 00:04:38.200
And I think there's exempt issue labels, labels on issues exempted.

00:04:38.200 --> 00:04:42.880
So you can mark something as, you know, keep this around or something.

00:04:42.880 --> 00:04:46.240
Oh, so see, I don't have that window up.

00:04:46.240 --> 00:04:46.820
So I didn't scroll.

00:04:46.820 --> 00:04:47.260
Perfect.

00:04:47.260 --> 00:04:47.860
Yeah.

00:04:47.860 --> 00:04:49.000
So that's what I need.

00:04:49.000 --> 00:04:50.900
Looks like this looks well thought out then.

00:04:50.900 --> 00:04:51.600
I love it now.

00:04:51.600 --> 00:04:52.200
Yeah.

00:04:52.200 --> 00:04:58.040
And it's been around for a while and it's got like, I guess only four, 498 stars, but it'll

00:04:58.040 --> 00:04:59.980
be more than that after we do this show.

00:04:59.980 --> 00:05:00.720
That's right.

00:05:00.720 --> 00:05:01.460
Exactly.

00:05:01.780 --> 00:05:03.220
It'll be at least 500.

00:05:03.220 --> 00:05:04.000
Yeah.

00:05:04.000 --> 00:05:04.820
499.

00:05:04.820 --> 00:05:08.620
No, this is a great find.

00:05:08.620 --> 00:05:09.380
I really like it.

00:05:09.380 --> 00:05:10.420
So yeah.

00:05:10.420 --> 00:05:11.260
Good one, Brian.

00:05:11.260 --> 00:05:11.800
Yeah.

00:05:11.800 --> 00:05:16.320
I think I'm really impressed with GitHub that they've added so many features.

00:05:16.320 --> 00:05:18.260
I use it more than I have GitLab.

00:05:18.260 --> 00:05:25.020
So GitLab may have as many, you know, in all fairness, but GitHub has added lots of cool

00:05:25.020 --> 00:05:28.420
features and ongoing development to make things easier.

00:05:29.260 --> 00:05:33.940
As you know, many things have evolved, lots more features added, but things like this

00:05:33.940 --> 00:05:35.860
that make it easier to maintain things.

00:05:35.860 --> 00:05:36.100
Yeah.

00:05:36.100 --> 00:05:40.060
I'm really happy with the way, the direction of GitHub these days.

00:05:40.060 --> 00:05:41.540
So it seems like it's going really well.

00:05:41.540 --> 00:05:42.020
Yeah.

00:05:42.020 --> 00:05:42.260
Yeah.

00:05:42.260 --> 00:05:43.100
I'm definitely happy there.

00:05:43.100 --> 00:05:44.040
I use both.

00:05:44.160 --> 00:05:49.980
I like them both, but GitHub definitely has a focus on the, or at least it feels like

00:05:49.980 --> 00:05:52.600
it's listening to open source maintainers and their needs.

00:05:52.600 --> 00:05:53.160
Yeah.

00:05:53.160 --> 00:05:53.700
For sure.

00:05:53.700 --> 00:05:54.080
For sure.

00:05:54.080 --> 00:05:54.780
All right.

00:05:54.840 --> 00:05:58.280
So I want to show you another one that I think also may involve Wilma Guggen.

00:05:58.280 --> 00:05:59.640
I got to do a quick check here.

00:05:59.640 --> 00:06:02.300
It is called Jut, Jut, Jut.

00:06:02.300 --> 00:06:04.240
Maybe if you're, you're German, it's Jut.

00:06:04.240 --> 00:06:05.080
I don't know.

00:06:05.080 --> 00:06:09.000
But we could look at the Pyre Project Tom and see if Rich is in here.

00:06:09.000 --> 00:06:09.780
It is.

00:06:09.780 --> 00:06:10.040
Okay.

00:06:10.100 --> 00:06:13.400
So yeah, it definitely involves Rich and Wilma Guggen.

00:06:13.400 --> 00:06:20.000
And what it is, is it's a renderer, not a interactive environment, but a renderer for Jupyter

00:06:20.000 --> 00:06:20.400
notebooks.

00:06:20.400 --> 00:06:26.420
And we've had that, you know, in B viewer, things like that, like on the web, but this

00:06:26.420 --> 00:06:28.060
one is in your terminal.

00:06:28.060 --> 00:06:29.320
So here's the scenario.

00:06:29.320 --> 00:06:33.580
Like you're in the terminal remote, maybe SSH into a remote machine.

00:06:33.580 --> 00:06:36.760
And you're like, oh, there's this notebook file that what the heck is this?

00:06:36.760 --> 00:06:37.720
You know, what is it?

00:06:37.720 --> 00:06:40.120
I'm like, I don't have a browser or whatever.

00:06:40.120 --> 00:06:44.880
And so the way that it works, let me pull up this little animation for everyone and have

00:06:44.880 --> 00:06:49.900
it go is if you're somewhere, you just say, I'm going to go with Jut, Jut, give it a URL

00:06:49.900 --> 00:06:52.440
and you can literally give it something off of the internet.

00:06:52.440 --> 00:06:54.700
And you can even give it like tail command.

00:06:54.700 --> 00:06:58.520
So I want to see the last 10 cells instead of lines.

00:06:58.520 --> 00:07:05.340
And it uses Rich to colorize and style what the notebook has, including the data cells,

00:07:05.340 --> 00:07:08.340
as well as the actual output, the computation.

00:07:08.340 --> 00:07:12.100
You know how the notebooks will store their output from the last time they were run unless

00:07:12.100 --> 00:07:12.620
you clear them.

00:07:12.620 --> 00:07:13.760
It'll show that as well.

00:07:13.760 --> 00:07:14.560
What do you all think?

00:07:14.560 --> 00:07:16.040
I love that.

00:07:16.040 --> 00:07:21.860
I mean, there's there's sometimes you get a file and you just want to check some introspect,

00:07:21.860 --> 00:07:23.180
some portion of it.

00:07:23.180 --> 00:07:26.820
And you can't just do more for cat on a Jupyter notebook.

00:07:26.820 --> 00:07:28.760
Yeah, you get something completely wrong.

00:07:28.760 --> 00:07:33.940
And I don't sometimes in the space that you're in, you don't you just want to quickly be able

00:07:33.940 --> 00:07:36.020
to check what it is and move on.

00:07:36.020 --> 00:07:38.460
And so I love that.

00:07:38.460 --> 00:07:39.620
And I love Rich.

00:07:39.620 --> 00:07:44.560
That's that it's, you know, the color, the colorized terminal is really helpful.

00:07:44.560 --> 00:07:49.500
Honestly, it might have better syntax highlighting than notebooks themselves.

00:07:51.000 --> 00:07:52.160
Brian, what were you going to say?

00:07:52.160 --> 00:08:01.300
No, no, just I love I really like the focus on the of tools making things usable on command

00:08:01.300 --> 00:08:03.500
line because I'm a command line lover.

00:08:03.720 --> 00:08:08.280
And I mean, I've got nothing against doing notebooks in on the web browser.

00:08:08.280 --> 00:08:14.640
But things like this make it possible to do things like put them in a pipeline and automate

00:08:14.640 --> 00:08:15.980
them more easily.

00:08:15.980 --> 00:08:21.660
And like this, it's not really automating using the notebook, but it might be you might make

00:08:21.660 --> 00:08:25.100
sure that like something is, you know, a regression thing.

00:08:25.100 --> 00:08:30.020
You want to make sure that things are visible so you can use this to to grab grab one off your

00:08:30.020 --> 00:08:32.320
repo or something and make sure nothing weird happened.

00:08:32.400 --> 00:08:33.380
Yeah, for sure.

00:08:33.380 --> 00:08:34.160
Yeah, it looks good.

00:08:34.160 --> 00:08:39.060
And to bring it back around full circle, Will McGugan out in the audience says, neat, that's

00:08:39.060 --> 00:08:39.600
a new one for me.

00:08:39.600 --> 00:08:39.940
Hey, Will.

00:08:39.940 --> 00:08:45.200
Yeah, it's always fun to show you projects using your library because there's a bunch of

00:08:45.200 --> 00:08:45.820
cool ones out there.

00:08:45.820 --> 00:08:46.380
Awesome.

00:08:46.380 --> 00:08:47.140
All right.

00:08:47.140 --> 00:08:50.800
Well, I'm not sure what else I have to say about this one other than it was sent into

00:08:50.800 --> 00:08:51.780
us by KidPixo.

00:08:51.780 --> 00:08:52.860
Thank you for that.

00:08:52.860 --> 00:08:53.960
That was awesome.

00:08:53.960 --> 00:08:54.960
Keep them coming.

00:08:54.960 --> 00:08:56.440
He sent a bunch of things along.

00:08:56.440 --> 00:09:00.660
Like I said, you can display the different cells like the first five, last five, you know,

00:09:00.660 --> 00:09:01.700
whatever you want to pass over.

00:09:01.700 --> 00:09:04.820
You can also do things like show it to me just in plain text.

00:09:04.820 --> 00:09:07.380
If you for some reason want to copy it and you don't want the formatting.

00:09:07.380 --> 00:09:09.840
Pretty straightforward to use, but also really nice.

00:09:09.840 --> 00:09:11.080
All right, Karen, you're up next.

00:09:11.080 --> 00:09:14.680
Adding on to the Jupyter thread.

00:09:15.380 --> 00:09:18.880
One of the interesting things that's coming out is Jupyter Lite.

00:09:18.880 --> 00:09:25.720
It's, it is being developed by core Jupyter developers, but it's still unofficial.

00:09:25.720 --> 00:09:28.520
And one of the nice things is static.

00:09:28.520 --> 00:09:34.520
And if you share it with somebody, they can just go to a web page and you can just, you

00:09:34.520 --> 00:09:35.260
can cache it.

00:09:35.260 --> 00:09:39.520
So you don't have to have a Jupyter notebook server running.

00:09:40.120 --> 00:09:41.540
It's a static page.

00:09:41.540 --> 00:09:44.140
Obviously there's JavaScript and other elements involved.

00:09:44.140 --> 00:09:47.820
And so if you just click on one of those things, try it with JupyterLab.

00:09:47.820 --> 00:09:51.060
It takes you to a browser that window.

00:09:51.060 --> 00:09:53.000
It says, as you can see, it's a static page.

00:09:53.000 --> 00:09:56.100
It's going to take a second to come up because it's got some JavaScript.

00:09:56.100 --> 00:10:02.040
And if you click on that pile light and then just do like an import this to see a standard

00:10:02.040 --> 00:10:03.060
kind of notebook.

00:10:03.260 --> 00:10:03.620
Yeah.

00:10:03.620 --> 00:10:05.400
It has a little, it has a notebook tour.

00:10:05.400 --> 00:10:10.780
If you do an import this, which is a standard kind of test to do the Python mantras, it,

00:10:10.780 --> 00:10:14.520
you know, it runs simply and that's all just running in a browser.

00:10:14.520 --> 00:10:21.880
So obviously it's, if you wanted to share things with some, somebody it's, it's an

00:10:21.880 --> 00:10:23.540
easy way for them to see it.

00:10:23.540 --> 00:10:27.860
You would just send them that file and they can open it up and do some additional things.

00:10:28.040 --> 00:10:35.380
It's probably, you won't want to run your core data pipelines in a static web browser window,

00:10:35.380 --> 00:10:38.380
but it does allow you to do a variety of things.

00:10:38.380 --> 00:10:43.260
and there's some sample notebooks included with it that let you do some, some things.

00:10:43.260 --> 00:10:48.620
So you can run through either step-by-step, that you can actually add text into, as you

00:10:48.620 --> 00:10:50.040
saw into the window.

00:10:50.040 --> 00:10:57.180
So it's, it's a nice feature ad, to be able to run, a notebook in a browser window

00:10:57.180 --> 00:11:00.900
and show some examples of your code in a static way.

00:11:00.900 --> 00:11:06.160
I know that, you know, people have sent me Jupyter notebooks or shared them, or sometimes you can

00:11:06.160 --> 00:11:06.940
see them on GitHub.

00:11:06.940 --> 00:11:11.220
There's even tools now that you can do, get diffs.

00:11:11.220 --> 00:11:15.860
there's a service that allows you to do diffs of Jupyter notebooks that you can do that

00:11:15.860 --> 00:11:17.360
for your full request reviews.

00:11:17.700 --> 00:11:21.600
But, sometimes it's nice to be able to see, like, I would like to change this a little

00:11:21.600 --> 00:11:23.940
bit without like starting up a server yourself.

00:11:23.940 --> 00:11:25.520
So, yeah, yeah.

00:11:25.520 --> 00:11:26.980
We've been able to host these.

00:11:26.980 --> 00:11:30.920
We've been able to set up notebook servers and host them, but there's issues with letting

00:11:30.920 --> 00:11:31.760
people run code.

00:11:31.760 --> 00:11:32.900
Maybe you don't want to let them run it.

00:11:32.900 --> 00:11:33.940
It's only street only.

00:11:33.940 --> 00:11:38.120
And so, but this is cool because it will let you run it in the browser, right?

00:11:38.120 --> 00:11:40.080
Which is using WebAssembly.

00:11:40.080 --> 00:11:41.700
Yeah, exactly.

00:11:41.700 --> 00:11:46.720
And they, you can have the JupyterLab look or kind of retro look,

00:11:46.980 --> 00:11:50.120
which is just very minimalist without that kind of UI.

00:11:50.120 --> 00:11:52.760
So it's, it's a really nice feature.

00:11:52.760 --> 00:11:54.500
I've never tried retro lab.

00:11:54.500 --> 00:11:55.120
Yeah.

00:11:55.120 --> 00:11:57.780
It's just a more of a basic, like, file list.

00:11:57.780 --> 00:11:58.740
It doesn't have that.

00:11:58.740 --> 00:12:04.860
it doesn't have that nice kind of look and feel of the newer version of JupyterLab,

00:12:04.860 --> 00:12:06.180
but it works.

00:12:06.180 --> 00:12:06.760
Yeah.

00:12:06.760 --> 00:12:07.320
Fantastic.

00:12:07.320 --> 00:12:11.840
Just run all the cells and it runs, I guess, in WebAssembly.

00:12:11.840 --> 00:12:12.520
Super cool.

00:12:12.940 --> 00:12:13.980
Oh yeah, that's a, that's a good one.

00:12:13.980 --> 00:12:14.720
Brian, what do you think?

00:12:14.720 --> 00:12:16.680
A simple, pip install.

00:12:16.680 --> 00:12:23.640
And then you, you run another command as to, it, to generate all the JavaScript and

00:12:23.640 --> 00:12:24.400
things it needs.

00:12:24.400 --> 00:12:29.840
And then once that index file is made, that directory is made, then it's really easy.

00:12:29.840 --> 00:12:35.280
You just open up that index.html on your, on your, you can run it on localhost.

00:12:35.280 --> 00:12:39.900
You can Python start at HTTP server with a, you know, easily with Python three.

00:12:40.040 --> 00:12:42.060
So that it will serve that page as well.

00:12:42.060 --> 00:12:47.540
You can even deploy it to GitHub pages or something like Netlify or some other static host.

00:12:47.540 --> 00:12:48.000
Yeah.

00:12:48.000 --> 00:12:48.800
Pretty sweet.

00:12:48.800 --> 00:12:53.660
I definitely think, I agree that, that you don't want to do big, heavy workloads on this,

00:12:53.660 --> 00:12:58.900
but I, especially for graphing and interactive stuff and, just like tweaking the data a

00:12:58.900 --> 00:12:59.260
little bit.

00:12:59.260 --> 00:13:03.840
I think this is amazing to be able to, especially for, reports and things.

00:13:04.160 --> 00:13:06.700
there's a lot of, a lot of places where this is useful.

00:13:06.700 --> 00:13:07.160
Yep.

00:13:07.160 --> 00:13:11.660
And you have no security issues or worried about people running code or messing with it

00:13:11.660 --> 00:13:13.700
because whatever they do, they're doing this themselves.

00:13:13.700 --> 00:13:14.240
Yeah.

00:13:14.240 --> 00:13:15.200
Exactly.

00:13:15.200 --> 00:13:15.800
Right.

00:13:15.800 --> 00:13:21.660
There's no little Bobby tables issues that you have to worry about with a static web browser

00:13:21.660 --> 00:13:22.420
on your site.

00:13:22.420 --> 00:13:23.040
Yeah.

00:13:23.040 --> 00:13:25.660
You definitely want to lower your surface area there.

00:13:25.660 --> 00:13:27.500
All right, Brian, a bit of an intermission.

00:13:27.500 --> 00:13:28.240
Yeah.

00:13:28.240 --> 00:13:30.880
let's talk about, our sponsor today.

00:13:30.880 --> 00:13:33.240
So today's sponsor is shortcut.

00:13:33.240 --> 00:13:36.040
Shortcut, which is formerly clubhouse.

00:13:36.040 --> 00:13:37.960
And thank you for sponsoring the episode.

00:13:37.960 --> 00:13:42.700
There are a lot of project management tools out there and I've used, I've used a ton of

00:13:42.700 --> 00:13:46.020
them, but most suffer, suffer from a few common problems.

00:13:46.020 --> 00:13:49.200
They're either too complex and it's hard to get started.

00:13:49.200 --> 00:13:52.100
And there's all tons of options all the time.

00:13:52.100 --> 00:13:54.860
Get you, make you confused or they're too simple.

00:13:54.860 --> 00:13:59.240
And you really, you can get started on one project, but you can't use it for multiple projects

00:13:59.240 --> 00:13:59.780
and stuff.

00:13:59.920 --> 00:14:05.460
or they seem to be like geared towards managers, but difficult for engineers or geared

00:14:05.460 --> 00:14:07.260
towards engineers and difficult for managers.

00:14:07.260 --> 00:14:09.540
I think shortcut is different.

00:14:09.540 --> 00:14:15.380
So shortcut is built for software teams and based on making workflows easy, which I like.

00:14:15.380 --> 00:14:22.040
So let's say you have a big scale objectives, goals, and roadmaps, topics in those and

00:14:22.040 --> 00:14:27.800
items in those, big goals and roadmaps can easily be tied to teams and individual work

00:14:27.800 --> 00:14:33.000
sprints and progress on those can be easily, easily flow back into reports at the top level.

00:14:33.000 --> 00:14:34.000
It's keyboard friendly.

00:14:34.000 --> 00:14:36.520
So you can hook up short codes and stuff.

00:14:36.520 --> 00:14:41.740
So, you don't, the UI is intuitive and it's pretty easy to use, but, the things

00:14:41.740 --> 00:14:45.660
you do every day, you can tie those to keyboard shortcuts and make them even faster.

00:14:45.660 --> 00:14:48.060
And it has tight VCS integration.

00:14:48.060 --> 00:14:55.980
So you can update your task process progress by just adding a comment or a, a little key

00:14:55.980 --> 00:14:59.180
code into your commit or PR and it flows back upstream.

00:14:59.180 --> 00:15:00.060
This is really cool.

00:15:00.060 --> 00:15:02.240
iteration planning is also a breeze.

00:15:02.240 --> 00:15:06.800
You can see your activity team activity when you need it, but you can see your own work

00:15:06.800 --> 00:15:08.420
really easily when you need that too.

00:15:08.420 --> 00:15:13.180
And burden down charts and cycle time and lead time charts are just built in for you.

00:15:13.180 --> 00:15:15.680
it's really, really great to see all that.

00:15:15.680 --> 00:15:19.120
so finally a project management tool for both engineers and managers.

00:15:19.120 --> 00:15:22.600
Give it a try at shortcut.com slash Python bytes.

00:15:22.600 --> 00:15:23.320
Awesome.

00:15:23.320 --> 00:15:24.080
Thanks shortcut.

00:15:24.080 --> 00:15:29.140
Hey, Brian, before we move on to your next item that Jupyter light was sent in by Marcel

00:15:29.140 --> 00:15:29.640
Millicent.

00:15:29.640 --> 00:15:31.760
So thank you, Marcel for sending that over.

00:15:31.760 --> 00:15:32.360
Yeah.

00:15:32.360 --> 00:15:32.720
Nice.

00:15:32.720 --> 00:15:33.300
Yeah.

00:15:33.300 --> 00:15:37.420
We always appreciate when our listeners help us do our research because they have all these

00:15:37.420 --> 00:15:39.120
ideas that we don't know about.

00:15:39.120 --> 00:15:40.000
Yeah.

00:15:40.000 --> 00:15:40.780
So yeah.

00:15:40.780 --> 00:15:41.820
Thanks for picking that up.

00:15:41.820 --> 00:15:43.160
for sure.

00:15:43.160 --> 00:15:44.300
Yeah, of course.

00:15:44.300 --> 00:15:48.160
Well, act, act now when supplies are limited.

00:15:48.380 --> 00:15:51.260
no, I don't actually use that.

00:15:51.260 --> 00:15:52.360
Wait, wait more.

00:15:52.360 --> 00:15:53.180
Yeah.

00:15:53.180 --> 00:15:55.760
I want to talk about grep a little bit.

00:15:55.760 --> 00:16:02.640
I, I use grep all the time for, for finding stuff within my codes, command line

00:16:02.640 --> 00:16:05.140
tool for finance, finding stuff in files.

00:16:05.280 --> 00:16:09.180
And, I'm not going to cover it in the show, but I threw in, in the show notes, if

00:16:09.180 --> 00:16:13.080
you're not, if you don't use grep or tools like grep, I threw in a couple of examples

00:16:13.080 --> 00:16:15.220
in the show notes to get you started real easily.

00:16:15.460 --> 00:16:18.180
It's a, I think, I think it's useful to find stuff.

00:16:18.180 --> 00:16:23.000
one question I did have is like, I've got a command sequence in the show notes that I'd

00:16:23.000 --> 00:16:24.420
like to have people take a look at.

00:16:24.420 --> 00:16:31.560
I don't have a screenshot for it, but, if I want to find like say foo in, in recursively

00:16:31.560 --> 00:16:34.800
in all the, all the folders and directories, I can do that easily.

00:16:34.800 --> 00:16:41.100
and I want to try to eliminate a directory, like don't look in my virtual environment folder.

00:16:41.100 --> 00:16:45.020
I've got a weird thing about using just grep and then piping it to another grep.

00:16:45.020 --> 00:16:46.420
I don't know how to do it easier.

00:16:46.420 --> 00:16:47.660
So please help me out.

00:16:47.660 --> 00:16:53.680
But anyway, this article, I'm, I'd like to point to is called feature comparison

00:16:53.680 --> 00:16:59.420
of ack, silver surfer, get grep, new grep and rip grep.

00:16:59.420 --> 00:17:01.900
and this is actually really cool.

00:17:01.900 --> 00:17:07.640
So it's, it's, put out by the ack people themselves at beyond grep.com.

00:17:07.640 --> 00:17:14.000
Ack is a, kind of a grep alternative that's written in Perl, but this comparison chart says,

00:17:14.000 --> 00:17:16.620
um, we need more comparison charts like this.

00:17:16.780 --> 00:17:21.580
And, and, and it had, it compares all these different alternatives to grep.

00:17:21.680 --> 00:17:27.420
silver surfer, silver searcher, sorry, is a G, a G for silver.

00:17:27.420 --> 00:17:32.520
It's kind of clever, but the chart from the chemical is symbol table.

00:17:32.520 --> 00:17:33.160
Yeah.

00:17:33.160 --> 00:17:37.100
And also kind of a play on silver surfer, the, the, superhero as well.

00:17:37.240 --> 00:17:43.640
So, the chart shows like kind of a whole bunch of stuff about all these tools,

00:17:43.640 --> 00:17:44.960
like what languages they're written in.

00:17:44.960 --> 00:17:51.000
Most of them are in C, but ack is in Perl and, RG or rip grep is in rust.

00:17:51.000 --> 00:17:52.660
So that kind of intrigues me.

00:17:52.660 --> 00:17:54.740
I've been enjoying some rust tools lately.

00:17:54.740 --> 00:17:57.260
but it goes through a whole bunch of features.

00:17:57.260 --> 00:17:59.700
So I didn't really know that these were all that different.

00:17:59.700 --> 00:18:03.780
So if you're going to try something new, it's kind of nice to see if the thing that you really

00:18:03.780 --> 00:18:09.800
need, qualifies and it's got some high level features, but then also dives into like

00:18:09.800 --> 00:18:10.320
specifics.

00:18:10.320 --> 00:18:15.980
Like, if you have specific pattern matching needs or output needs, but, kind of a

00:18:15.980 --> 00:18:18.860
cool tool to decide which grep alternative to use.

00:18:18.860 --> 00:18:19.420
It's cool.

00:18:19.420 --> 00:18:20.740
I'd never heard of get grep.

00:18:20.740 --> 00:18:22.800
That'll let you grep, but against a get repo.

00:18:22.800 --> 00:18:24.440
I don't know.

00:18:24.440 --> 00:18:28.920
It says up at the top that it lets you search a get repository by default, like search

00:18:28.920 --> 00:18:30.780
where right at the bottom of your screen there.

00:18:30.780 --> 00:18:31.460
Oh yeah.

00:18:31.460 --> 00:18:33.580
So that was pretty interesting.

00:18:33.580 --> 00:18:35.320
A repo by default.

00:18:35.320 --> 00:18:36.260
Oh, nice.

00:18:36.260 --> 00:18:37.780
Search your get history.

00:18:37.780 --> 00:18:38.820
That sounds useful.

00:18:38.820 --> 00:18:39.580
Yeah.

00:18:40.000 --> 00:18:41.060
Let's try that out too.

00:18:41.060 --> 00:18:41.920
This is cool.

00:18:41.920 --> 00:18:42.320
Exactly.

00:18:42.320 --> 00:18:47.380
I'm going to make me learn grep, but actually, so one of the things I do appreciate is,

00:18:47.380 --> 00:18:51.840
if people that write tool like little tools that are alternatives to something else, often

00:18:51.840 --> 00:18:56.200
they do look at the landscape to find out what else is out there and try things out.

00:18:56.200 --> 00:19:01.720
So actually one of the, one of the reasons I'm highlighting is that this is I agree with

00:19:01.720 --> 00:19:05.920
the, with the author that says we need more of these, take that research you've done and

00:19:05.920 --> 00:19:07.140
actually publish it.

00:19:07.380 --> 00:19:11.380
uh, because some of the, sometimes one of these tool authors is the, is one of the best

00:19:11.380 --> 00:19:13.280
people to compare all the different alternatives.

00:19:13.280 --> 00:19:15.460
So yeah, yeah, this is cool.

00:19:15.460 --> 00:19:16.160
Nice one.

00:19:16.160 --> 00:19:20.960
I don't use grep nearly as much as I should or hardly at all, but it seems very useful in

00:19:20.960 --> 00:19:21.340
the skit.

00:19:21.340 --> 00:19:23.480
Like I said, the skit one might make me learn grep.

00:19:23.480 --> 00:19:24.820
Karen, do you do anything with grep?

00:19:24.820 --> 00:19:26.060
No, it's all good.

00:19:26.160 --> 00:19:28.760
Well, we're happy to have your puppy on the show as well.

00:19:28.760 --> 00:19:29.200
Yeah.

00:19:29.200 --> 00:19:32.460
Featuring a five moments old golden retriever.

00:19:32.460 --> 00:19:33.340
It's very vocal.

00:19:33.340 --> 00:19:34.020
Yeah.

00:19:34.020 --> 00:19:38.020
I, I love silver searcher and I think it's really super fast.

00:19:38.020 --> 00:19:41.200
If you're, that's, that's my favorite of these.

00:19:41.200 --> 00:19:48.240
long time ago, I started programming in, my backgrounds in molecular biology.

00:19:48.240 --> 00:19:51.920
I started in academic publishing and putting academic journals online.

00:19:51.920 --> 00:19:56.900
And so Pearl is, you know, close to my heart, but I'm surprised that, you know, like

00:19:56.900 --> 00:20:02.060
these, Pearl tools that are still around and they still work perfectly fine.

00:20:02.060 --> 00:20:07.120
I learned a lot of Pearl compatible, regular expression use, you know, that PCREs.

00:20:07.120 --> 00:20:12.040
and, I remember asking some years ago, you know, in another language, they had

00:20:12.040 --> 00:20:13.580
PCRE regular expression.

00:20:13.580 --> 00:20:17.620
They're like, what's PCRE or, you know, it's real compatible, regular expression.

00:20:17.620 --> 00:20:19.840
So, but I, I, AG is great.

00:20:19.840 --> 00:20:25.000
I think in, my world, a lot of people are submitting data and sometimes you're looking

00:20:25.000 --> 00:20:26.620
for bets and places and things.

00:20:26.620 --> 00:20:30.220
And, so these kinds of tools are really helpful.

00:20:30.220 --> 00:20:36.020
I use Grap mostly because that's, you know, it's easy to pipe it to something else,

00:20:36.020 --> 00:20:40.820
but AG is great, great because it colorizes your results without passing a color flag, which

00:20:40.820 --> 00:20:41.980
is usually more convenient.

00:20:41.980 --> 00:20:43.800
And it's a little bit different syntax.

00:20:43.800 --> 00:20:46.120
So, so.

00:20:46.660 --> 00:20:48.660
But I haven't used some of these other ones.

00:20:48.660 --> 00:20:50.340
So this is a cool to know about.

00:20:50.340 --> 00:20:50.800
Yeah.

00:20:50.800 --> 00:20:52.080
It's always good to learn about more.

00:20:52.080 --> 00:20:54.400
Maybe I'll try all of them just for the heck.

00:20:54.400 --> 00:20:54.740
Nice.

00:20:54.740 --> 00:20:55.260
Yeah.

00:20:55.260 --> 00:20:55.600
All right.

00:20:55.600 --> 00:20:58.080
I want to talk about air table real quick.

00:20:58.080 --> 00:21:02.540
So air table is like Excel, but it kind of has a database backend.

00:21:02.540 --> 00:21:05.420
It's also got like a Trello aspect to it.

00:21:05.420 --> 00:21:08.560
So I don't know if people are using air table for things.

00:21:08.560 --> 00:21:11.840
It also has kind of a Gantt chart or a project management thing.

00:21:11.840 --> 00:21:15.060
I don't exactly want to talk about air table, but I want to set the stage.

00:21:15.060 --> 00:21:16.920
I want to talk about PI air table.

00:21:16.920 --> 00:21:24.360
So I just had we, the maintainer of this on, the on talk Python to talk about Python and

00:21:24.360 --> 00:21:24.900
architecture.

00:21:24.900 --> 00:21:29.880
And what they were doing where he was working was a lot of things were backed by air table.

00:21:29.880 --> 00:21:35.800
So PI air table is this, this API to talk to it through Python, which is pretty interesting

00:21:35.800 --> 00:21:36.660
already.

00:21:36.900 --> 00:21:42.900
But then if you look a little bit more on the docs, it's got, where's the right spot

00:21:42.900 --> 00:21:43.580
to go look.

00:21:43.580 --> 00:21:50.160
There is under the API somewhere in here, there's an ORM aspect as well.

00:21:50.160 --> 00:21:57.720
So you can even use, air table like an ORM where you create classes that map to the

00:21:57.720 --> 00:22:01.780
stuff you're doing over there and do select statements against it and delete them and whatnot.

00:22:01.780 --> 00:22:06.080
So if people are doing stuff with air table, here's a pretty awesome way to automate it.

00:22:06.080 --> 00:22:06.760
I guess I think.

00:22:06.760 --> 00:22:07.620
I think it's great.

00:22:07.620 --> 00:22:09.200
Is it done by the same people or?

00:22:09.200 --> 00:22:10.140
No, no.

00:22:10.140 --> 00:22:13.380
It's done by a guy named Gwee.

00:22:13.380 --> 00:22:14.300
Last name.

00:22:14.300 --> 00:22:15.380
I'm going to look.

00:22:15.380 --> 00:22:15.980
Sorry, Gwee.

00:22:15.980 --> 00:22:20.780
I just think it's a, it's pretty cool to have.

00:22:20.780 --> 00:22:21.840
Oh, nice name.

00:22:21.840 --> 00:22:22.480
Yeah.

00:22:22.480 --> 00:22:25.320
Tala, Tala Rico.

00:22:25.320 --> 00:22:25.860
Yeah.

00:22:25.860 --> 00:22:26.800
Gwee Tala Rico.

00:22:27.060 --> 00:22:28.800
And he's also in San Francisco.

00:22:28.800 --> 00:22:31.600
So he's, one of your extended neighbors, Karen.

00:22:31.600 --> 00:22:32.360
Yeah.

00:22:32.360 --> 00:22:35.800
I, the Bay area is, big.

00:22:35.800 --> 00:22:36.780
Yeah.

00:22:36.780 --> 00:22:37.720
He was also a PyBay.

00:22:37.720 --> 00:22:38.480
Yeah.

00:22:38.480 --> 00:22:40.480
Well, there was a lot of people at mass.

00:22:40.480 --> 00:22:46.500
So even people that are in my community, I'm a co-organizer for a Bay area Python interest

00:22:46.500 --> 00:22:46.800
group.

00:22:46.800 --> 00:22:50.520
We're in the longest, running Python groups.

00:22:50.520 --> 00:22:53.040
obviously I didn't, I didn't start it.

00:22:53.200 --> 00:22:59.260
but I recently started helping out and even people that I'm in meetings with every

00:22:59.260 --> 00:23:03.320
month and for a number of years, they'd have to say like, oh, Karen.

00:23:03.320 --> 00:23:11.300
And, and, even with badges on, so I, I, I, I'm, you try to like spy people or,

00:23:11.300 --> 00:23:14.620
you know, based on their silhouette, if that's the right person.

00:23:14.620 --> 00:23:18.220
And so, yeah, a lot of people had sunglasses or a hat.

00:23:18.220 --> 00:23:18.400
Yeah.

00:23:18.400 --> 00:23:20.100
It was, it was tricky, but yeah.

00:23:20.100 --> 00:23:20.360
Yeah.

00:23:20.360 --> 00:23:21.160
So he was there.

00:23:21.160 --> 00:23:26.500
So yeah, he maintains this, but it's, sort of endorsed by the air table folks.

00:23:26.500 --> 00:23:30.780
It's like listed as one of the independent things that they might recommend for people

00:23:30.780 --> 00:23:31.280
doing Python.

00:23:31.280 --> 00:23:31.680
So.

00:23:31.680 --> 00:23:32.300
Yeah.

00:23:32.300 --> 00:23:38.700
I think it's great to have a Python APIs for a lot of services, you know, have a

00:23:38.700 --> 00:23:40.580
Python client to help support them.

00:23:40.580 --> 00:23:46.140
it's really helpful that whether it's written by the company or somebody else.

00:23:46.140 --> 00:23:51.220
And sometimes it's really helpful if you're a small team as the kinds of teams, I'm in a

00:23:51.220 --> 00:23:52.080
research community.

00:23:52.080 --> 00:23:56.380
We have small teams to be able to like, look at the tests, look at their code to see how

00:23:56.380 --> 00:23:56.820
to use it.

00:23:56.820 --> 00:24:01.400
Sometimes the company's documentation is not great on how to use their API.

00:24:01.400 --> 00:24:06.660
And sometimes these extra Python components help you understand their API a little better

00:24:06.660 --> 00:24:08.760
and what you can do with their API.

00:24:09.540 --> 00:24:14.360
some companies are better than others in documenting their own APIs to be able to

00:24:14.360 --> 00:24:15.680
interact with this.

00:24:15.680 --> 00:24:20.720
But I know that people use, air table for a variety of different things and use things

00:24:20.720 --> 00:24:27.080
like Zapier to connect it to, you know, it's like a Rube Goldberg kind of like stitching

00:24:27.080 --> 00:24:31.640
together all these kinds of services to do, you know, a thing at the end, like make toast.

00:24:31.640 --> 00:24:32.200
Yeah.

00:24:32.200 --> 00:24:32.420
Yeah.

00:24:32.420 --> 00:24:36.000
Cause you want to let the business people still just use air table, but you need other things

00:24:36.000 --> 00:24:37.280
to happen or something like that.

00:24:37.280 --> 00:24:37.520
Right.

00:24:37.520 --> 00:24:37.980
Right.

00:24:37.980 --> 00:24:42.600
So when they intercept and they insert this, it's going to heat up that thing, which will

00:24:42.600 --> 00:24:45.660
knock over a cup, which will then trigger an API like that kind of thing.

00:24:45.660 --> 00:24:46.340
Yeah.

00:24:46.340 --> 00:24:46.880
Yeah.

00:24:46.880 --> 00:24:48.280
Or send a meeting invite.

00:24:48.280 --> 00:24:49.040
So.

00:24:49.040 --> 00:24:50.280
Or exactly.

00:24:50.500 --> 00:24:54.880
One of the things I like is, if, like a company that's using, one of these

00:24:54.880 --> 00:25:00.520
tools, having a Python API allows individual hackers like me to be able to just say, how

00:25:00.520 --> 00:25:02.800
do I find just the stuff I need to care about?

00:25:02.800 --> 00:25:07.040
And I can write my own little application just to pull out the bits that I need to care about

00:25:07.040 --> 00:25:11.920
and do it on the command line and, probably use rich if I doing that.

00:25:11.920 --> 00:25:13.340
And, and only see.

00:25:13.340 --> 00:25:16.140
And grep air table for things to do.

00:25:16.140 --> 00:25:16.580
Exactly.

00:25:16.580 --> 00:25:17.600
Yeah.

00:25:17.600 --> 00:25:18.180
No.

00:25:18.180 --> 00:25:18.520
Yeah.

00:25:18.520 --> 00:25:19.500
I've actually done that.

00:25:19.500 --> 00:25:25.720
You can search within GitHub itself or I sometimes I'll clone it and kind of, for

00:25:25.720 --> 00:25:30.200
about for some keywords that help might help me, figure out what I need to do a little

00:25:30.200 --> 00:25:30.860
bit faster.

00:25:30.860 --> 00:25:31.500
Yeah.

00:25:31.500 --> 00:25:32.340
Yeah, for sure.

00:25:32.340 --> 00:25:37.960
And, Neil Heather out there just giving a quick shout out to Bay Piggies, the meetup

00:25:37.960 --> 00:25:38.620
group out there.

00:25:38.620 --> 00:25:39.000
Awesome.

00:25:39.000 --> 00:25:39.660
Nice.

00:25:39.660 --> 00:25:40.120
Very, very cool.

00:25:40.120 --> 00:25:40.560
All right.

00:25:40.560 --> 00:25:45.480
we have a, we have, we're, we're pretty fortunate in the Bay area that we have a several

00:25:45.480 --> 00:25:47.720
different from all the way from down in Santa Cruz.

00:25:47.720 --> 00:25:52.840
So for people who don't know that, you know, the Bay area is, or depending on how you're

00:25:52.840 --> 00:25:57.860
looking at it, you know, the San Francisco Bay and, and, and there's meetup groups and

00:25:57.860 --> 00:26:01.640
Python groups all along and we're kind of a mid to South peninsula.

00:26:01.640 --> 00:26:08.460
there's all the way from Santa Cruz to up to, asset Python, which runs PyBay,

00:26:08.460 --> 00:26:11.320
Grace Law, and there's other ones in the North Bay.

00:26:11.320 --> 00:26:16.700
So we're pretty fortunate to have a lot of, really rich, strong Python community.

00:26:16.700 --> 00:26:17.000
Yeah.

00:26:17.000 --> 00:26:21.140
A lot of great local stuff going on there for sure, which is no surprise in San Francisco.

00:26:21.540 --> 00:26:25.640
But it's also necessary because even though things are close together, you can't get there

00:26:25.640 --> 00:26:26.140
from here.

00:26:26.140 --> 00:26:29.060
Usually they're separated far by time.

00:26:29.060 --> 00:26:33.060
If not, yeah, perhaps the traffic has started to pick up again for sure.

00:26:33.060 --> 00:26:33.480
Yeah.

00:26:33.480 --> 00:26:34.080
Same here.

00:26:34.080 --> 00:26:37.160
All right, Karen, you want to do our last item here?

00:26:37.160 --> 00:26:38.820
Touch one more time on some notebook things.

00:26:38.820 --> 00:26:39.660
Yeah.

00:26:40.140 --> 00:26:46.360
One of the ways of your part of a team, every, everyone probably knows about the

00:26:46.360 --> 00:26:53.320
black formatter that helps you, make opinionated decisions or it makes opinionated decisions for

00:26:53.320 --> 00:26:54.860
you about how things should be formatted.

00:26:54.860 --> 00:26:57.620
So your, your team's a little bit more, streamlined.

00:26:57.620 --> 00:27:07.900
And now, Marco Gorelli has, who is a creator of a package called NBQA for notebook QA that

00:27:07.900 --> 00:27:14.780
did things like ice work and other things has added into black, the black formatter itself,

00:27:14.780 --> 00:27:20.820
um, an ability to do black formatting on notebooks, which is great because then it's part of the

00:27:20.820 --> 00:27:25.860
core package and support will be even richer, very powerful.

00:27:25.860 --> 00:27:31.060
So you can just run once you've, once you've installed it, it, there's a command there shown

00:27:31.060 --> 00:27:39.580
on the screen, pip install black, that you can run, black on it, like notebook,

00:27:39.580 --> 00:27:40.680
you know, black.

00:27:40.680 --> 00:27:45.000
There's probably some hockey or something like within Jupyter itself, right?

00:27:45.000 --> 00:27:46.240
Say that again.

00:27:46.560 --> 00:27:51.820
There's probably like some kind of little icon or hotkey or something in there automatically.

00:27:51.820 --> 00:27:52.180
Right.

00:27:52.180 --> 00:27:52.740
I would guess.

00:27:52.740 --> 00:27:54.480
I, I don't know.

00:27:54.480 --> 00:27:59.660
I've run it on the command line and the kind of instructions have it run on a command line.

00:27:59.660 --> 00:28:02.000
I don't know if you can run it on itself.

00:28:02.000 --> 00:28:05.760
It would be like, you know, modifying an array that you're iterating over.

00:28:05.760 --> 00:28:10.920
I don't know if it, you can like, you can format yourself while you're, this is actually

00:28:10.920 --> 00:28:13.200
going into black, not into Jupyter.

00:28:13.200 --> 00:28:13.740
Right.

00:28:13.740 --> 00:28:14.160
So yeah.

00:28:14.160 --> 00:28:15.060
So it's more, right.

00:28:15.060 --> 00:28:15.380
Yeah.

00:28:15.380 --> 00:28:16.040
Go from the black side.

00:28:16.040 --> 00:28:16.460
Got it.

00:28:16.460 --> 00:28:16.860
Yeah.

00:28:16.860 --> 00:28:23.520
You're running it against a notebook to, apply black formatting to a notebook itself.

00:28:23.520 --> 00:28:24.080
Yeah.

00:28:24.080 --> 00:28:28.200
But at this point, how long until somebody puts a button into Jupyter to do this?

00:28:28.200 --> 00:28:28.860
Yeah.

00:28:28.860 --> 00:28:31.200
I imagine that certainly can happen.

00:28:31.200 --> 00:28:36.560
I think that you have like in VS Code, you already can apply black or other kinds of

00:28:36.560 --> 00:28:39.880
F8 formatting, within something.

00:28:39.880 --> 00:28:42.260
So I imagine that totally makes sense.

00:28:42.260 --> 00:28:45.560
You'd be able to apply it, but I guess I think about it in that sense.

00:28:45.580 --> 00:28:47.080
It's not the notebook itself.

00:28:47.080 --> 00:28:47.180
It's not the notebook itself.

00:28:47.180 --> 00:28:49.120
That's applying that standardization.

00:28:49.120 --> 00:28:53.700
It's a package runs running against whatever kind of thing that you're using, whether it's

00:28:53.700 --> 00:28:56.440
PyCharm or a VS Code or some other tool.

00:28:56.440 --> 00:29:01.600
So I still think it's running against it rather than the notebook itself, changing itself, like

00:29:01.600 --> 00:29:07.520
spinning around like wonder woman and becoming a super sorted, I sort, you know, package

00:29:07.520 --> 00:29:07.920
import.

00:29:08.140 --> 00:29:08.620
Absolutely.

00:29:08.620 --> 00:29:09.420
Yeah.

00:29:09.420 --> 00:29:09.500
Yeah.

00:29:09.500 --> 00:29:09.980
This is cool.

00:29:09.980 --> 00:29:10.780
I really like this.

00:29:10.780 --> 00:29:15.900
I've always thought that the notebooks lacked a little bit of coding assistance.

00:29:15.900 --> 00:29:17.480
Standardization too.

00:29:17.480 --> 00:29:18.060
Yeah.

00:29:18.060 --> 00:29:18.340
Yeah.

00:29:18.340 --> 00:29:19.500
And also black brings that.

00:29:19.500 --> 00:29:19.760
Right.

00:29:19.880 --> 00:29:24.720
But I felt like, you know, if you type a thing dot, it doesn't pull up any autocomplete.

00:29:24.720 --> 00:29:29.760
You have to do the research to know, well, now I have to proactively hit tab to trigger

00:29:29.760 --> 00:29:30.740
an autocomplete.

00:29:30.740 --> 00:29:37.160
And, you know, also formatting is not just a hotkey for format my code or command palette

00:29:37.160 --> 00:29:38.880
thing to format my code as easily.

00:29:38.880 --> 00:29:39.480
Yeah.

00:29:39.660 --> 00:29:45.280
I imagine that, you know, we're lucky that this, the Jupyter community is really rich

00:29:45.280 --> 00:29:48.240
and people are committed to it and enhancing on it.

00:29:48.240 --> 00:29:53.680
I know that there's other kinds of notebook systems that are being developed by places like

00:29:53.680 --> 00:29:58.340
Netflix where they're like, what is the bare bones we can do so that our, our data scientists

00:29:58.340 --> 00:29:59.620
can run something else.

00:29:59.620 --> 00:30:04.260
but the Jupyter notebook community is really extensively used.

00:30:04.260 --> 00:30:05.440
The community is very active.

00:30:05.440 --> 00:30:12.320
So I'm glad that things like this are being added to enhance its usability and,

00:30:12.320 --> 00:30:17.420
readability and standardize it in an easier way for everyone.

00:30:17.420 --> 00:30:18.420
Yeah, absolutely.

00:30:18.420 --> 00:30:19.200
Well done, Marco.

00:30:19.200 --> 00:30:19.960
All right, Brian.

00:30:19.960 --> 00:30:22.200
I think that brings us to the extras.

00:30:22.200 --> 00:30:23.860
Extras.

00:30:23.860 --> 00:30:24.680
Yeah.

00:30:24.680 --> 00:30:26.440
You got any extras you want to throw out there?

00:30:26.440 --> 00:30:33.220
no, I just, like, I'm not going to like put a link or anything, but I just wanted

00:30:33.220 --> 00:30:33.700
to comment.

00:30:33.700 --> 00:30:37.440
Some of the times I've been giggling today is because, Anthony Shaw's on the show

00:30:37.440 --> 00:30:39.840
and we talked about pigeon first briefly.

00:30:39.840 --> 00:30:45.800
And every time I hear the, about pigeon, I think of, the, Bert and Ernie skit

00:30:45.800 --> 00:30:46.920
with, doing the pigeon.

00:30:46.920 --> 00:30:51.820
I don't know if anybody else remembers that, but anyway, that's, that's my quick extra.

00:30:51.820 --> 00:30:52.280
Yeah.

00:30:52.280 --> 00:30:52.780
Hold on.

00:30:52.780 --> 00:30:57.260
Well, I know that Anthony Shaw likes to run, VS Code pets.

00:30:57.260 --> 00:30:58.280
Are you sure?

00:30:58.280 --> 00:30:58.720
That's right.

00:30:58.720 --> 00:31:00.640
I think I wonder if there's a pigeon in this.

00:31:00.880 --> 00:31:01.060
Yes.

00:31:01.060 --> 00:31:05.540
Maybe, maybe it could come full circle and it could be some kind of pigeon in the pets,

00:31:05.540 --> 00:31:08.600
in the pets, in the, like below the project settings.

00:31:08.600 --> 00:31:09.440
That'd be fantastic.

00:31:09.440 --> 00:31:12.200
What are the, what are these pets that you're talking about?

00:31:12.200 --> 00:31:13.580
And let me see if I can find it.

00:31:13.580 --> 00:31:15.300
Let's see if I can see VS Code pets.

00:31:15.300 --> 00:31:15.500
Yeah.

00:31:15.500 --> 00:31:16.620
I'm, I don't have a link.

00:31:16.620 --> 00:31:21.180
I don't do that much VS Code, so I don't know all that much, but what it is, is it will

00:31:21.180 --> 00:31:24.500
literally put like a little animated animal in your editor.

00:31:25.160 --> 00:31:26.860
And it can be simple like this.

00:31:26.860 --> 00:31:33.260
This is like a cat that's crawl, crawling along like a get diff section, or they can

00:31:33.260 --> 00:31:34.540
be way more complicated.

00:31:34.540 --> 00:31:38.880
Like here, like see this one, for example, there's like a castle and there's a cat that

00:31:38.880 --> 00:31:39.560
lives in the end.

00:31:39.560 --> 00:31:43.480
Alas, Anthony Shaw says, but there is no pigeon on the pets extension.

00:31:45.500 --> 00:31:46.800
There's a lot of stuff happening.

00:31:46.800 --> 00:31:47.860
Like here, here we go.

00:31:47.860 --> 00:31:51.620
There's like a hunting cat in the forest and all kinds of things.

00:31:51.620 --> 00:31:57.340
So, and Chris May out in the live stream says, yet, there's no pigeon.

00:31:57.340 --> 00:31:57.840
Yeah.

00:31:57.840 --> 00:32:00.340
Well, a pull request accepted.

00:32:00.340 --> 00:32:01.560
Exactly.

00:32:01.560 --> 00:32:02.440
Exactly.

00:32:02.440 --> 00:32:03.480
Who's going to be adding this?

00:32:03.480 --> 00:32:06.000
Anyway, this, this is how we should bring it around.

00:32:06.000 --> 00:32:06.960
Full circle, Brian.

00:32:06.960 --> 00:32:08.380
Well, do you have any extras?

00:32:08.380 --> 00:32:10.200
I do, but I always have them.

00:32:10.200 --> 00:32:13.380
So let me ask Karen if she has anything she wants to add or throw out while we're here.

00:32:13.380 --> 00:32:13.820
Yeah.

00:32:13.820 --> 00:32:15.700
Well, it's a general thing.

00:32:15.700 --> 00:32:17.840
I just helped out at Pi Bay.

00:32:17.840 --> 00:32:20.020
I help out at Bay Piggies.

00:32:20.020 --> 00:32:28.140
And I just want to off, just tell people whatever, wherever your community is, they're always

00:32:28.140 --> 00:32:29.620
looking for lightning talks.

00:32:29.620 --> 00:32:31.020
It's good practice.

00:32:31.020 --> 00:32:37.820
It's as, as both of you know, Michael and Brian, that, you know, coming up with show ideas

00:32:37.820 --> 00:32:42.500
or, you know, meetup talks and finding speakers is a challenge.

00:32:42.620 --> 00:32:47.400
And so, you know, offering something that you want to talk about is good practice.

00:32:47.400 --> 00:32:51.420
And the people in the communities around you are really supportive and welcoming.

00:32:51.420 --> 00:32:53.500
And a lightning talks, great practice.

00:32:53.500 --> 00:32:54.480
It gets you feedback.

00:32:54.480 --> 00:33:01.160
And I know that for somebody who's, who talked at Bay Piggies and also for some of the speakers

00:33:01.160 --> 00:33:06.320
at Pi Bay, you know, I've been willing to work with them on their slides and talk to them

00:33:06.320 --> 00:33:08.740
how to give the talk and everything too.

00:33:08.740 --> 00:33:13.740
It's, it's great practice, both, you know, professionally, and then you have a recording

00:33:13.740 --> 00:33:14.740
of what you talked about.

00:33:14.920 --> 00:33:21.040
So, contribute, you contribute in code or you can contribute in ideas and experience

00:33:21.040 --> 00:33:22.840
in your learning journey.

00:33:22.840 --> 00:33:26.320
Even if you're just starting out, talking about that journey is really helpful.

00:33:26.320 --> 00:33:31.240
Talking about a new package that came out and, and you guys are doing a fantastic job bringing

00:33:31.240 --> 00:33:36.340
things up to date, but maybe, you know, in these other communities, people can do that.

00:33:36.340 --> 00:33:37.780
I just want to just open it up.

00:33:37.780 --> 00:33:43.120
It's not just the experts who are contributing at people at every level in your local meetups

00:33:43.120 --> 00:33:44.740
can, can give a talk.

00:33:44.740 --> 00:33:47.080
And, it's good experience.

00:33:47.080 --> 00:33:47.900
It's good for you.

00:33:47.900 --> 00:33:48.720
It's good for them.

00:33:48.720 --> 00:33:53.200
And so I'm just going to encourage everybody to volunteer in your Python community.

00:33:53.200 --> 00:33:54.080
Yeah, absolutely.

00:33:54.080 --> 00:33:57.980
And if you're thinking about doing like submitting a talk to say PyCon or another big conference,

00:33:57.980 --> 00:34:03.540
doing it locally at your local meetup with people, you know, with just 10 people is a really

00:34:03.540 --> 00:34:07.800
good way to practice that and get a sense for what it's going to be like if you do get accepted

00:34:07.800 --> 00:34:09.100
and hone it a little bit.

00:34:09.100 --> 00:34:09.520
Yeah.

00:34:09.520 --> 00:34:11.440
Great feedback and great questions too.

00:34:11.440 --> 00:34:13.060
So perfect prep.

00:34:13.060 --> 00:34:13.560
Great.

00:34:13.560 --> 00:34:14.060
Yep.

00:34:14.060 --> 00:34:14.720
All right.

00:34:14.720 --> 00:34:18.460
My Apple watch wants me to stand up, but instead I'm going to talk about some extras.

00:34:18.880 --> 00:34:24.040
So first one is I've been playing around with a new password manager.

00:34:24.040 --> 00:34:25.180
I use one password.

00:34:25.180 --> 00:34:26.240
I love one password.

00:34:26.240 --> 00:34:30.520
I use it on all my things, but I've decided that there are certain things I would like to

00:34:30.520 --> 00:34:31.460
put on the systems.

00:34:31.460 --> 00:34:36.140
I don't want to set up my super important passwords on, or I want to share with people

00:34:36.140 --> 00:34:36.980
and so on.

00:34:36.980 --> 00:34:38.560
I was like, all right, well, what else could I use?

00:34:38.560 --> 00:34:43.660
So I came across Bitwarden, which is an open source password manager that also has like

00:34:43.660 --> 00:34:47.680
a cloud backend and mobile apps and all sorts of stuff, browser integration.

00:34:48.280 --> 00:34:53.560
So instead of just running a local encrypted file or something, this is a really good option

00:34:53.560 --> 00:34:56.220
from what I can tell for setting up.

00:34:56.220 --> 00:35:02.380
It does have a paid plan if you want, but if you look at the paid plan, the paid personal

00:35:02.380 --> 00:35:06.920
plan, it's like $10 a year or $0.80 a month or something.

00:35:07.060 --> 00:35:09.020
So it's totally doable.

00:35:09.020 --> 00:35:12.820
For only $0.80 a month, you too could be secure.

00:35:12.820 --> 00:35:13.580
Exactly.

00:35:13.580 --> 00:35:17.560
For the coffee that you spilled on yourself, the price of that you could have.

00:35:17.560 --> 00:35:22.260
I like this, but actually just, I know you have a bunch of other stuff, but it's driving

00:35:22.260 --> 00:35:28.240
me kind of nuts that even like $5 or $10 a month or $20 a month for some things, everything

00:35:28.240 --> 00:35:30.480
is going towards these subscription plans.

00:35:30.480 --> 00:35:32.980
And it's like, it's just storing my password.

00:35:32.980 --> 00:35:34.420
I don't want to pay $20 a month.

00:35:34.420 --> 00:35:39.080
So this also has a self-hosted version, I believe, because it's open source.

00:35:39.080 --> 00:35:40.600
You could run it at your company.

00:35:40.600 --> 00:35:42.540
If that was that the kind of thing you wanted to do.

00:35:42.540 --> 00:35:43.480
So anyway, cool.

00:35:43.480 --> 00:35:44.140
Good recommendation.

00:35:44.140 --> 00:35:46.260
I think this is a pretty neat option.

00:35:46.260 --> 00:35:49.800
Again, I'm still using one password for my personal main stuff, but this is like my,

00:35:49.800 --> 00:35:52.040
I want another one that doesn't hold all that stuff.

00:35:52.240 --> 00:35:53.100
And it's pretty neat.

00:35:53.100 --> 00:35:58.220
Also, Chris May, I'll give you a shout out for Pi RVA for the Virginia meetup is also

00:35:58.220 --> 00:36:05.000
looking for speakers because Chris, as Karen, and as we know, booking people to come for this

00:36:05.000 --> 00:36:06.300
kind of stuff is never easy.

00:36:06.300 --> 00:36:10.640
Lightning talks, long talks, whatever, you know, there's lots of options.

00:36:10.640 --> 00:36:12.460
Show up and help us out.

00:36:12.460 --> 00:36:12.940
All right.

00:36:12.940 --> 00:36:14.160
So Bitwarden, check it out.

00:36:14.160 --> 00:36:14.620
Seems cool.

00:36:14.620 --> 00:36:16.660
Open source bonus as well.

00:36:16.660 --> 00:36:19.600
This one is both a joke and a real thing.

00:36:19.600 --> 00:36:20.060
Okay.

00:36:20.060 --> 00:36:22.940
So I love it that it all comes together and it's for Python.

00:36:22.940 --> 00:36:27.740
So Patrick Mason, synonymous said the at PSF is on Twitter.

00:36:27.740 --> 00:36:30.320
The at PSF is searching for an executive director.

00:36:30.320 --> 00:36:35.760
So Iwa has been the executive director for 10 years.

00:36:35.760 --> 00:36:36.920
Thank you so much for that.

00:36:36.920 --> 00:36:39.820
She's finally retiring or moving on, I suppose.

00:36:39.820 --> 00:36:43.620
And so they're looking for a new person, but that's the real part.

00:36:43.620 --> 00:36:45.520
So if you want to apply for that, that'd be excellent.

00:36:45.520 --> 00:36:50.700
The joke is the at PSF is actually the Pacific Salmon Foundation.

00:36:50.700 --> 00:36:55.780
So, so they, they said, you want to swim upstream.

00:36:55.780 --> 00:36:57.340
Exactly.

00:36:57.340 --> 00:37:02.760
But here's the thing that's funny is the Salmon Foundation replied saying at the PSF

00:37:02.760 --> 00:37:08.380
is looking for an executive director at just PSF without the is not currently looking

00:37:08.380 --> 00:37:08.840
for one.

00:37:08.840 --> 00:37:10.500
Cheers on a successful search.

00:37:10.500 --> 00:37:13.160
So Patrick come back and says, sorry for the confusion.

00:37:13.160 --> 00:37:16.260
The P the Salmon Foundation says it happens.

00:37:16.260 --> 00:37:19.000
We're starting to feel like at the PSF family.

00:37:19.000 --> 00:37:21.660
It's not like at Java ever calls us broken heart.

00:37:25.020 --> 00:37:26.100
Isn't that fantastic?

00:37:26.100 --> 00:37:26.640
Yeah.

00:37:26.640 --> 00:37:27.340
That's great.

00:37:27.340 --> 00:37:27.860
Yeah.

00:37:27.860 --> 00:37:28.280
Yeah.

00:37:28.280 --> 00:37:29.180
Good, good.

00:37:29.180 --> 00:37:30.140
sense of humor.

00:37:30.140 --> 00:37:33.580
Now, now I kind of want to give to the Salmon Foundation just for being cool people.

00:37:33.580 --> 00:37:33.580
I know.

00:37:33.580 --> 00:37:34.060
I do too.

00:37:34.060 --> 00:37:34.760
Yeah.

00:37:34.760 --> 00:37:35.260
All right.

00:37:35.260 --> 00:37:35.640
I got it.

00:37:35.640 --> 00:37:37.720
I got a quick pull up a little bit extra for this one.

00:37:37.720 --> 00:37:41.420
So, Karen, this will, this will, relate to you as well.

00:37:41.420 --> 00:37:47.920
So there's a, this thing called the anime Gan V2 face portrait thing that will take

00:37:47.920 --> 00:37:53.840
a picture that you put up here and it will turn it into anime in like some really wild looking

00:37:53.840 --> 00:37:54.400
ways.

00:37:54.400 --> 00:37:55.060
Oh, wow.

00:37:55.060 --> 00:37:56.320
Isn't this crazy?

00:37:56.320 --> 00:37:57.020
Yeah.

00:37:57.020 --> 00:37:58.200
I want to anime me.

00:37:58.200 --> 00:38:01.220
So you can take a picture and throw it up here and get these.

00:38:01.220 --> 00:38:02.660
They're not very anime.

00:38:02.660 --> 00:38:07.400
Like I don't think there's exaggerated as anime often is, but you put a picture up here.

00:38:07.400 --> 00:38:12.760
It doesn't work very well for me with glasses, but I did put up here a picture of my dog.

00:38:12.760 --> 00:38:17.360
So there's a picture of my dog, which, I'll try to link to this in the show notes or

00:38:17.360 --> 00:38:17.660
something.

00:38:17.660 --> 00:38:18.980
And I threw it up there.

00:38:18.980 --> 00:38:22.780
That is a carrier mix of like 10 different things.

00:38:22.780 --> 00:38:24.100
It's very, very sweet.

00:38:24.180 --> 00:38:25.840
But I can't really give it a type.

00:38:25.840 --> 00:38:30.160
But if you turn it into anime, it looks like this, which is pretty awesome.

00:38:30.160 --> 00:38:34.480
Well, I think it should have some kind of battle sword or a helmet.

00:38:34.480 --> 00:38:35.440
I feel like.

00:38:35.440 --> 00:38:35.700
Yeah.

00:38:35.700 --> 00:38:37.700
It's just way too chill this dog.

00:38:37.780 --> 00:38:40.180
It needs to be much more, ready to go.

00:38:40.180 --> 00:38:40.480
Yeah.

00:38:40.480 --> 00:38:41.420
And battle.

00:38:41.420 --> 00:38:42.080
So anyway.

00:38:42.080 --> 00:38:43.480
With a slowly forming tear.

00:38:43.480 --> 00:38:44.740
Exactly.

00:38:44.740 --> 00:38:47.960
Go back to the other, the animated, the other.

00:38:47.960 --> 00:38:48.700
The humans.

00:38:48.700 --> 00:38:49.420
Yeah.

00:38:49.880 --> 00:38:52.460
So it looks like there's, there's moving.

00:38:52.460 --> 00:38:53.600
Can you have.

00:38:53.600 --> 00:38:53.780
Yeah.

00:38:53.780 --> 00:38:54.680
I don't know what this move.

00:38:54.680 --> 00:38:55.900
I couldn't make it move.

00:38:55.900 --> 00:39:00.440
Maybe if you drop a movie or something up there, there's like an Elon Musk and a Bill Gates,

00:39:00.440 --> 00:39:01.480
uh, anime.

00:39:01.860 --> 00:39:06.620
So I was hoping that you could do real time filters so we could possibly do our YouTube

00:39:06.620 --> 00:39:08.000
all in anime sometime.

00:39:08.000 --> 00:39:08.760
Oh my gosh.

00:39:08.760 --> 00:39:12.840
If we could do a, we could do an episode like once a year where we're in anime, that would

00:39:12.840 --> 00:39:13.560
be fantastic.

00:39:13.560 --> 00:39:14.540
I would be all about it.

00:39:14.540 --> 00:39:14.820
Yeah.

00:39:14.820 --> 00:39:16.140
They've got Tim Apple there.

00:39:16.140 --> 00:39:18.360
Or a Snapchat filter.

00:39:18.860 --> 00:39:21.240
You know, I'm really on fight on bytes.

00:39:21.240 --> 00:39:22.220
I'm not a cat.

00:39:22.220 --> 00:39:23.420
Exactly.

00:39:23.420 --> 00:39:24.240
Your honor.

00:39:24.240 --> 00:39:24.920
I'm not a cat.

00:39:24.920 --> 00:39:26.020
I'm ready to proceed.

00:39:26.020 --> 00:39:29.980
Maybe we could ask stream or to update that in our new update.

00:39:29.980 --> 00:39:30.580
Oh yeah.

00:39:30.580 --> 00:39:31.420
That would be fantastic.

00:39:31.420 --> 00:39:32.280
All right.

00:39:32.280 --> 00:39:35.740
And then finally, a pie, a couple of versions of Python are out.

00:39:35.740 --> 00:39:40.560
The interesting one is three 11 alpha two is now available for people to download.

00:39:40.560 --> 00:39:44.400
we've spoken about Mark Shannon's plan to make Python faster.

00:39:44.400 --> 00:39:47.220
Guido van Rossum has been helping over the last year.

00:39:47.220 --> 00:39:48.180
And I actually.

00:39:48.800 --> 00:39:49.320
Yeah.

00:39:49.320 --> 00:39:50.400
I interviewed them on.

00:39:50.400 --> 00:39:52.440
Go listen to it.

00:39:52.440 --> 00:39:53.180
Yeah.

00:39:53.180 --> 00:39:59.940
I recently had the, at the moment, the most recent episode on talk Python to me is Guido

00:39:59.940 --> 00:40:04.520
and Mark talking about the work they're doing to make Python five times faster.

00:40:04.520 --> 00:40:08.000
This is the first release that has some of those features in it.

00:40:08.000 --> 00:40:10.860
And you can test to see if this is any faster on your code.

00:40:10.860 --> 00:40:12.900
So they, they said they'd love people to try it out.

00:40:12.900 --> 00:40:15.220
So a double shout out there to that.

00:40:15.220 --> 00:40:15.780
All right.

00:40:15.780 --> 00:40:17.480
I think that's enough time for a joke.

00:40:17.480 --> 00:40:18.700
Although I feel like the salmon one.

00:40:18.740 --> 00:40:20.860
It's really kind of also a joke, but it was also real.

00:40:20.860 --> 00:40:26.780
Like if, if you're looking for a job within the PSF, the PSF, not just PSF, check it out.

00:40:26.780 --> 00:40:27.300
All right.

00:40:27.300 --> 00:40:32.460
But as somebody who does testing, Brian, I'm hoping this one touches heart here a little

00:40:32.460 --> 00:40:32.580
bit.

00:40:32.580 --> 00:40:32.820
You ready?

00:40:32.820 --> 00:40:33.380
Yeah.

00:40:33.380 --> 00:40:34.380
So here's a picture.

00:40:34.380 --> 00:40:34.500
So here's a picture.

00:40:34.500 --> 00:40:38.440
It's a meme type of picture and it has some text on it.

00:40:38.440 --> 00:40:39.680
It says hot fix in production.

00:40:39.680 --> 00:40:42.000
Could you describe that for our audience, please?

00:40:42.220 --> 00:40:43.680
This is an awesome picture.

00:40:43.680 --> 00:40:49.900
So you've got like a drainage pipe coming out in the water and it's clearly not, not attached

00:40:49.900 --> 00:40:55.080
to there's, and then it kind of, it's coming out at an angle, then going down there.

00:40:55.080 --> 00:40:57.480
The pipe goes down and straight down.

00:40:57.480 --> 00:40:59.200
It's supposed to be connected as one big pipe.

00:40:59.200 --> 00:41:04.020
It's supposed to be connected, but it's not, but actually there's a hole in the lower pipe.

00:41:04.020 --> 00:41:06.560
So the upper pipe actually just directly hit.

00:41:06.560 --> 00:41:07.500
It all works.

00:41:07.500 --> 00:41:15.020
The broken pipe on top is being poured into a broken pipe, a hole in a broken pipe that

00:41:15.020 --> 00:41:15.800
is disconnected.

00:41:15.800 --> 00:41:17.900
So it works.

00:41:17.900 --> 00:41:18.580
Yeah.

00:41:18.580 --> 00:41:19.880
So it's a hot fix in production.

00:41:19.880 --> 00:41:20.960
Just make it work.

00:41:20.960 --> 00:41:26.760
I'm guessing somebody like just, notice the break and then just popped a hole in the

00:41:26.760 --> 00:41:28.280
pipe in the bottom to fix it.

00:41:28.280 --> 00:41:29.180
Something like that.

00:41:29.180 --> 00:41:29.780
Yeah.

00:41:29.780 --> 00:41:30.620
This is great.

00:41:30.620 --> 00:41:34.500
I feel like this is, that rush to get that broken website.

00:41:34.500 --> 00:41:37.800
The website is down type of thing running as fast as possible.

00:41:37.800 --> 00:41:42.500
Well, it could be Facebook and the whole internal network could be broken and you have to break

00:41:42.500 --> 00:41:47.120
out like a saw to saw open the data center door because the network is required to open the

00:41:47.120 --> 00:41:50.940
door, but the network is down and you've got to get in the door to restore the network.

00:41:51.180 --> 00:41:55.980
Well, actually, you know, some stuff like this happens all the time because you've got

00:41:55.980 --> 00:41:59.740
like a team that finds a problem, but the problem isn't in their code.

00:41:59.740 --> 00:42:05.300
It's in like some other component that happens to be written by the team in Germany that's

00:42:05.300 --> 00:42:08.020
on vacation because it's one of their million big holidays.

00:42:08.020 --> 00:42:12.340
And, and so you, you just fix it in the other layer or something like that.

00:42:12.340 --> 00:42:12.960
So, yeah.

00:42:12.960 --> 00:42:13.960
Yeah, absolutely.

00:42:13.960 --> 00:42:14.460
That's awesome.

00:42:14.460 --> 00:42:14.720
All right.

00:42:14.720 --> 00:42:16.700
We got a little audience participation in this joke.

00:42:16.700 --> 00:42:19.500
Anthony Shaw says integration tests pass.

00:42:19.500 --> 00:42:20.700
Exactly.

00:42:20.700 --> 00:42:23.500
And Wilma Coogan says leaky abstractions.

00:42:23.500 --> 00:42:25.040
Oh, nice.

00:42:25.040 --> 00:42:25.540
Well done.

00:42:25.540 --> 00:42:26.220
Yeah.

00:42:26.220 --> 00:42:26.620
Well done.

00:42:26.620 --> 00:42:27.340
You all out there.

00:42:27.340 --> 00:42:29.520
And well done to you, Karen, as well.

00:42:29.520 --> 00:42:30.220
Thanks for being here.

00:42:30.220 --> 00:42:31.700
I'm super excited.

00:42:31.700 --> 00:42:35.640
I've been a longtime fan of both of your work.

00:42:35.640 --> 00:42:40.220
And I just thank you for letting me be here.

00:42:40.560 --> 00:42:44.740
And thank you for inviting me after I super fangirled you at PyBay.

00:42:44.740 --> 00:42:47.300
Because I appreciate both of your work.

00:42:47.300 --> 00:42:53.040
Everybody should also help out these two wonderful podcasts, Talk Python.

00:42:53.040 --> 00:43:00.880
Oh, and the Python Testing Podcast and Python Bytes on Patreon as I have for a number of years.

00:43:00.880 --> 00:43:02.780
So super exciting to be here.

00:43:02.780 --> 00:43:03.880
Thank you so much for the invite.

00:43:04.220 --> 00:43:05.180
Yeah, it's great to have you here.

00:43:05.180 --> 00:43:05.680
Thanks again.

00:43:05.680 --> 00:43:06.920
Brian, thanks as always.

00:43:06.920 --> 00:43:07.440
Bye.

