WEBVTT

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

00:00:04.740 --> 00:00:11.380
This is episode 234, and it's May 19th, 2021. I'm Michael Kennedy.

00:00:11.380 --> 00:00:12.620
And I'm Brian Okken.

00:00:12.620 --> 00:00:16.020
And we have our special guest, Dr. Becky Smethers. Welcome.

00:00:16.020 --> 00:00:21.180
Hi. I wasn't sure whether I was supposed to introduce myself then. I was like, should I jump in? Should I wait?

00:00:21.180 --> 00:00:26.860
This is standard fare for our podcast. We do a bad job preparing our guests for jumping in. Welcome.

00:00:26.860 --> 00:00:31.740
I love casual podcasts. They're my favorite to listen to, and they're now my favorite to be a part of as well.

00:00:31.740 --> 00:00:33.340
Yeah. Absolutely.

00:00:33.340 --> 00:00:40.160
Yeah. So it's really good to have you here. And, you know, you're doing so many neat things out on the Internet.

00:00:40.160 --> 00:00:44.560
First of all, you're an astrophysicist at University of Oxford.

00:00:44.560 --> 00:00:46.320
That is my day job, technically.

00:00:46.320 --> 00:00:51.740
Yeah, yeah, yeah. You've written some books. You can tell folks about that.

00:00:53.240 --> 00:00:59.660
You are doing quite a bunch of interesting things over on YouTube, which is how I came to know you.

00:00:59.660 --> 00:01:05.000
Your work on YouTube is really neat. And yeah, maybe just tell people real quickly about yourself.

00:01:05.000 --> 00:01:07.780
Yeah, sure. So I'm an astrophysicist.

00:01:07.780 --> 00:01:15.300
My day job is essentially to study supermassive black holes and figure out the effect that they have on their galaxies

00:01:15.300 --> 00:01:19.880
and how they might stop their galaxies from forming stars, which is kind of awesome.

00:01:19.880 --> 00:01:24.540
I'm living the dream that I had as an eight-year-old to become like an actual space scientist.

00:01:24.540 --> 00:01:28.760
And yeah, I just love talking about science and space with people as well.

00:01:28.760 --> 00:01:35.100
And I've sort of found my niche a little bit on YouTube, really, that I can put out videos each week about fun things in space

00:01:35.100 --> 00:01:40.740
or even react to old sci-fi and stuff like that about what they got right and what they got wrong necessarily.

00:01:40.740 --> 00:01:47.780
And it's just a great platform to communicate with people and respond to people's questions that they've never been able to Google.

00:01:47.780 --> 00:01:51.100
The tagline is, you're friendly neighborhood astrophysicist.

00:01:51.640 --> 00:02:00.120
Yeah, I absolutely recommend that people check out your YouTube channel.

00:02:00.120 --> 00:02:03.820
It is super neat. And yeah, there's a ton of fun videos there.

00:02:03.820 --> 00:02:11.100
They're very good sort of general science, just like interested in science, not scientists type of presentations.

00:02:11.100 --> 00:02:13.120
So super cool, super cool.

00:02:13.120 --> 00:02:16.280
All right, Brian, you got the first item, right? You want to take it away?

00:02:16.280 --> 00:02:17.440
Yeah, sure.

00:02:18.020 --> 00:02:28.700
Dustin Ingram just recently released an updated version of an article called Powering the Python Package Index in 2021.

00:02:28.700 --> 00:02:39.600
Apparently, there was one, I think, like in the name, Donald Stuff did one about five years ago to list how this was going on.

00:02:39.600 --> 00:02:43.920
So this is kind of amazing to read.

00:02:43.920 --> 00:02:45.920
There's just some cool information here.

00:02:46.960 --> 00:02:51.900
There were three maintainers, but it was mostly Donald five years ago.

00:02:51.900 --> 00:03:02.040
And now there are still three maintainers, but there's it's Donald, Ernest Durbin and Dustin Ingram all doing the maintainers.

00:03:02.040 --> 00:03:03.420
But there's also more people.

00:03:03.420 --> 00:03:04.620
So there's more people involved.

00:03:04.620 --> 00:03:11.300
There's five different moderators and three committers that that help with the project.

00:03:11.300 --> 00:03:12.080
So that's neat.

00:03:12.080 --> 00:03:13.620
And we've all seen it.

00:03:13.620 --> 00:03:16.040
It's just people are using it a lot more.

00:03:16.040 --> 00:03:19.280
And it's a it's more central part of our everyday life.

00:03:19.280 --> 00:03:21.520
So, yeah.

00:03:21.520 --> 00:03:28.300
So what are some of the you know, I remember one of the really interesting things was just how much it costs to run PyPI dot.

00:03:28.300 --> 00:03:32.580
The whole like all the data transfer behind the scenes and stuff like that.

00:03:32.980 --> 00:03:33.200
Yeah.

00:03:33.200 --> 00:03:35.160
So let's let's jump to some of the data.

00:03:35.160 --> 00:03:39.100
The the data that they showed was just sort of mind blowing.

00:03:39.760 --> 00:03:43.140
We've got one.

00:03:43.140 --> 00:03:51.840
We're up to one point seven billion requests on PyPI per day, sometimes in fifty five point four terabytes.

00:03:51.840 --> 00:03:53.100
Every day.

00:03:53.100 --> 00:03:56.000
Five times more than even from twenty eighteen.

00:03:56.000 --> 00:03:57.240
Yeah.

00:03:57.240 --> 00:03:57.640
Yeah.

00:03:57.640 --> 00:04:01.700
So this is amazing amount of data goes through there.

00:04:01.700 --> 00:04:06.100
And then they have they have data on files dot Python hosted dot org.

00:04:06.800 --> 00:04:08.780
Also, there's some data on there.

00:04:08.780 --> 00:04:14.960
The the money that goes into it fastly takes care of a lot of the brunt of the work.

00:04:14.960 --> 00:04:21.360
So fastly apparently is donating about what's the number?

00:04:21.360 --> 00:04:24.760
One point eight million dollars of services a month.

00:04:24.760 --> 00:04:28.700
If we were to have to pay for the fastly services directly.

00:04:28.700 --> 00:04:29.800
Oh, my gosh.

00:04:29.800 --> 00:04:32.900
And they give give PyPI a hundred percent discount.

00:04:32.900 --> 00:04:33.660
So that's great.

00:04:33.660 --> 00:04:40.360
And about ten ten thousand dollars worth of services a month from Google and seven thousand from AWS.

00:04:40.360 --> 00:04:46.080
And then a whole slew of other people that help out to like data dog and which is cool.

00:04:46.080 --> 00:04:54.200
And then there's some other funding sources that we've had some grants and we've talked about some of the grants that came through.

00:04:54.200 --> 00:05:05.980
But these are funding some amazing projects like the rewrite of rewrite of PyPI localization, some malware detection, which is really needed when everybody's depending on this.

00:05:05.980 --> 00:05:08.480
And now it supports some support staff.

00:05:08.480 --> 00:05:10.740
They're hiring a project project manager soon.

00:05:10.740 --> 00:05:12.320
So, yeah, that's fantastic.

00:05:12.320 --> 00:05:18.200
Google came on as a visionary sponsor specifically to work on this and the security side of that, I believe.

00:05:18.600 --> 00:05:33.420
Yeah, the one of the things I didn't know about, which we're going to provide a link to is the team maintains a thing called a fundables markdown page, which is a non exhaustive wish list of large projects they'd like to see happen.

00:05:33.420 --> 00:05:34.600
So nice.

00:05:34.600 --> 00:05:39.580
Because if you're kind of it's sort of like, you know, looking forward, what are we going to do?

00:05:39.740 --> 00:05:42.180
But it's if we can do it, we'd like to do this.

00:05:42.180 --> 00:05:43.000
So that's kind of neat.

00:05:43.000 --> 00:05:43.880
That's amazing.

00:05:43.880 --> 00:05:51.580
I'd never stop to think about how much work and how many people must use PyPI by PI.

00:05:51.580 --> 00:05:52.720
I don't know how I say PyPI.

00:05:52.720 --> 00:05:56.780
But like every time I type in pip now, I'm going to think differently.

00:05:56.780 --> 00:05:58.780
Like it's just to me, it's just been there.

00:05:58.780 --> 00:05:59.260
Thank you.

00:05:59.260 --> 00:06:00.080
Yeah.

00:06:00.080 --> 00:06:03.720
Now I feel like I should go to this fundables list and like pay.

00:06:03.720 --> 00:06:07.180
I don't know, like give something back for all the types I've used it.

00:06:07.500 --> 00:06:14.520
Probably in frustration as well, because something hasn't worked and not appreciated all the behind the scenes stuff.

00:06:14.520 --> 00:06:19.820
So, yeah, the first time I learned about this, I was blown away at how much it takes to keep it going.

00:06:19.820 --> 00:06:24.640
And how much you think about how much we all depend upon this as people working in Python.

00:06:24.640 --> 00:06:25.860
What if it went away tomorrow?

00:06:25.860 --> 00:06:27.200
Yeah, it was terrible.

00:06:27.200 --> 00:06:28.120
I can't even think about that.

00:06:28.120 --> 00:06:31.900
Most scientific research would probably collapse.

00:06:31.900 --> 00:06:33.580
So please don't.

00:06:33.580 --> 00:06:37.040
You know what I wanted to ask you, Dr. Becky, is I suspect that you use Conda.

00:06:37.260 --> 00:06:41.140
Do you use Conda a lot in the data science space or are you a pip person?

00:06:41.140 --> 00:06:42.260
I'm a pip person.

00:06:42.260 --> 00:06:43.220
I don't really use Conda.

00:06:43.220 --> 00:06:44.300
Some of my colleagues do.

00:06:44.300 --> 00:06:46.080
It's all just personal preferences, really.

00:06:46.080 --> 00:06:54.400
I remember for a long time on the departmental computers, the ones that were owned by the physics department, they didn't give you like install control.

00:06:54.400 --> 00:06:55.960
And so pip wouldn't work.

00:06:55.960 --> 00:06:57.440
And it drove me insane.

00:06:57.440 --> 00:06:59.380
Oh, wow.

00:06:59.500 --> 00:07:08.580
I was like, I was like, no, you can only install like software that has been approved like by the IT department.

00:07:08.580 --> 00:07:10.100
And I was just like, oh, God.

00:07:10.100 --> 00:07:11.660
It's not going to work.

00:07:11.660 --> 00:07:12.500
No.

00:07:12.500 --> 00:07:14.380
Yeah.

00:07:14.380 --> 00:07:15.500
That's really rough.

00:07:15.500 --> 00:07:16.620
All right.

00:07:16.620 --> 00:07:17.080
Super cool.

00:07:17.160 --> 00:07:22.880
Well, I wanted to try to bring in some astronomy type things that have to do with Python.

00:07:22.880 --> 00:07:25.320
Because, of course, you're here, Dr. Becky.

00:07:25.320 --> 00:07:35.360
And Shaharin Ahmed didn't really know that he contributed this to today, but just more of a general conversation item put out on Twitter.

00:07:35.500 --> 00:07:41.200
Like, hey, I was looking for a Python generated at a star atlas, like the Leuven star atlas.

00:07:41.200 --> 00:07:42.020
Have you heard of this thing?

00:07:42.020 --> 00:07:43.720
No, I haven't.

00:07:43.720 --> 00:07:47.780
The Herschel star atlas is the most famous one, but I'm guessing Leuven is a bit of an update.

00:07:47.780 --> 00:07:54.740
It's a project by, I'm forgetting their name.

00:07:54.740 --> 00:07:55.620
Let's see if I can.

00:07:55.620 --> 00:07:56.940
Yeah.

00:07:56.940 --> 00:07:59.360
They just say, I have to go back and pull that up later.

00:07:59.360 --> 00:08:00.260
Sure.

00:08:00.260 --> 00:08:01.920
So they wrote this.

00:08:01.920 --> 00:08:03.240
I doesn't know me.

00:08:03.240 --> 00:08:03.640
I'm sorry.

00:08:04.880 --> 00:08:12.800
So it's the goal is to make a publication quality stellar atlas from scratch using Python.

00:08:12.800 --> 00:08:14.480
So it's pretty neat.

00:08:14.480 --> 00:08:16.360
And the project's not finished.

00:08:16.360 --> 00:08:18.700
And who knows what the timeline is on it.

00:08:18.700 --> 00:08:29.300
But I wanted to just give it a shout out more as a way to think about what are the tools that people are using for astronomy and Python and also just building maps.

00:08:29.300 --> 00:08:31.620
You know, maybe you want to build a map of something completely different.

00:08:31.620 --> 00:08:33.780
Maybe you're really into river floating.

00:08:33.780 --> 00:08:36.500
And you want to build like amazing maps of like river floating or whatever.

00:08:36.500 --> 00:08:40.300
Like you could take the public data and like overlay the things kind of like they did here.

00:08:40.300 --> 00:08:44.220
So with this, I'll go and find some pictures down here at the end.

00:08:44.320 --> 00:08:47.580
It's quite a long article talking about how all this works.

00:08:47.580 --> 00:08:50.820
But there's some really neat graphics that we can find.

00:08:50.820 --> 00:08:51.820
There we go.

00:08:51.820 --> 00:09:03.300
So they've got pictures of stars, variable stars, galaxies, nebula, planetary nebula, and all kinds of things that you might care about.

00:09:03.300 --> 00:09:04.200
Fast moving stars.

00:09:04.340 --> 00:09:07.180
I suspect a lot of those might be looping around black holes.

00:09:07.180 --> 00:09:07.740
What do you think?

00:09:07.740 --> 00:09:08.820
I mean, yeah.

00:09:08.820 --> 00:09:11.000
You probably wouldn't see those astrometrically.

00:09:11.000 --> 00:09:13.520
But you'll probably get all those variable stars that vary in brightness.

00:09:13.520 --> 00:09:14.360
Yeah.

00:09:14.360 --> 00:09:14.680
Yeah.

00:09:14.680 --> 00:09:14.800
Yeah.

00:09:14.800 --> 00:09:19.300
They call those out, particularly with like a double circle type of icon.

00:09:19.440 --> 00:09:19.720
Yeah.

00:09:19.720 --> 00:09:20.040
Yeah.

00:09:20.040 --> 00:09:23.640
So astrometrically means like the astronomy position.

00:09:23.640 --> 00:09:25.140
So like incredibly precise.

00:09:25.140 --> 00:09:31.640
So those kind of like what you just described, like a wobble from a black hole orbiting it, you probably wouldn't see on a star list like this.

00:09:31.640 --> 00:09:35.220
It'd be like too fine of a detail, like too much, too small of a change.

00:09:35.220 --> 00:09:35.500
Yeah.

00:09:35.500 --> 00:09:36.400
Yeah.

00:09:36.400 --> 00:09:37.140
Cool.

00:09:37.140 --> 00:09:39.860
So talks about how do you go and create this thing.

00:09:39.860 --> 00:09:44.980
Says there's a one plot map dot py that's 1,500 lines long.

00:09:44.980 --> 00:09:46.280
Trying to write all this together.

00:09:47.400 --> 00:09:50.000
They talk about using the different libraries.

00:09:50.000 --> 00:09:53.300
So it was NumPy for all kinds of data handling.

00:09:53.300 --> 00:09:56.440
It was PyLab and Matplotlib.

00:09:56.440 --> 00:10:02.280
So all the graphics that you see here are just layers of Matplotlib renderings over and over and over.

00:10:02.280 --> 00:10:03.140
Yeah.

00:10:03.140 --> 00:10:09.860
And then there was this library called Basemap, which takes care of projections and transformations.

00:10:09.860 --> 00:10:17.040
Because I think one of the challenges was how do you project this onto paper when it's on a spherical thing?

00:10:17.040 --> 00:10:20.620
I think they said they used stereographic projections.

00:10:20.620 --> 00:10:21.520
I don't know.

00:10:21.520 --> 00:10:22.320
I think that sounds about right.

00:10:22.320 --> 00:10:22.560
Yeah.

00:10:22.560 --> 00:10:23.420
That sounds right.

00:10:23.420 --> 00:10:23.600
Yeah.

00:10:23.600 --> 00:10:25.060
SciPy.

00:10:25.060 --> 00:10:28.640
And then, of course, AstroPy, which I know Dr. Becky used a lot.

00:10:28.640 --> 00:10:29.180
And then.

00:10:29.180 --> 00:10:30.700
Round of applause for AstroPy.

00:10:30.700 --> 00:10:35.500
And then PyEFEM for celestial coordinate transformations.

00:10:36.440 --> 00:10:37.440
So, yeah.

00:10:37.440 --> 00:10:40.380
A lot of neat libraries on there.

00:10:40.380 --> 00:10:41.120
Yeah.

00:10:41.120 --> 00:10:42.600
It sounds like you, I'm sure you use AstroPy.

00:10:42.600 --> 00:10:43.800
Like any of the others sound familiar?

00:10:43.800 --> 00:10:45.080
All of them.

00:10:45.080 --> 00:10:47.040
I've used every single one of those packages before.

00:10:47.780 --> 00:10:48.820
Especially AstroPy.

00:10:48.820 --> 00:10:56.760
Like I have the same problem with like I've taken an image with a telescope and it's been taken by a flat digital detector.

00:10:56.760 --> 00:11:02.760
But there's coordinates that are sort of overlaid on that that come from the sort of the surface of a sphere.

00:11:02.760 --> 00:11:03.940
You can think of it as, right?

00:11:03.940 --> 00:11:08.080
And so you project that down using AstroPy and PyEFEM as well.

00:11:08.080 --> 00:11:10.780
Because sometimes people work in different coordinates.

00:11:10.780 --> 00:11:12.920
So you can work in sky coordinates.

00:11:12.920 --> 00:11:16.660
Which is sort of how high you are above the horizon and how far around you are.

00:11:16.660 --> 00:11:19.000
Or you can work in galactic coordinates.

00:11:19.000 --> 00:11:21.740
Like with respect to the center of the Milky Way.

00:11:21.740 --> 00:11:23.780
Like how far out are you and round?

00:11:23.780 --> 00:11:25.660
And I don't ever work in those.

00:11:25.660 --> 00:11:27.640
But people who are Milky Way astronomers do.

00:11:27.640 --> 00:11:28.380
And then you've got to like.

00:11:28.380 --> 00:11:34.420
So some objects, their coordinates are given in Milky Way coordinates and not sky coordinates.

00:11:34.560 --> 00:11:38.520
So they'll have to have done so many transformations to get maps like this.

00:11:38.520 --> 00:11:41.320
What's cool about this map, it's the constellation Cygnus.

00:11:41.320 --> 00:11:42.340
If you can see that there.

00:11:42.340 --> 00:11:43.540
So that's the swan.

00:11:43.540 --> 00:11:45.840
It looks like a big cross in the northern sky.

00:11:45.840 --> 00:11:50.980
But that is the constellation or the area of the sky that the Kepler Space Telescope stared at.

00:11:50.980 --> 00:11:51.980
Oh, nice.

00:11:51.980 --> 00:11:53.960
So that's where the exoplanets have been discovered.

00:11:53.960 --> 00:11:54.320
Yeah.

00:11:54.320 --> 00:11:55.020
Pretty much, yeah.

00:11:55.020 --> 00:11:56.520
All of the exoplanets we know of.

00:11:56.520 --> 00:12:00.320
So some like 5,000 of them will pretty much be in that patch of sky.

00:12:00.320 --> 00:12:04.180
So I'm really glad they chose that constellation to show in this piece.

00:12:04.180 --> 00:12:04.660
Yeah.

00:12:04.660 --> 00:12:05.420
How neat.

00:12:05.420 --> 00:12:06.200
Yeah.

00:12:06.200 --> 00:12:08.400
And then over here, let's see if I can find it.

00:12:08.400 --> 00:12:10.140
Talked about the sources of data.

00:12:10.140 --> 00:12:13.780
There's all these different public sources of data that they put together.

00:12:13.780 --> 00:12:19.820
But then if you read through the article, you'll find that they were talking about,

00:12:19.820 --> 00:12:23.720
well, I think they spent a month and a half getting this far on the project.

00:12:23.720 --> 00:12:27.020
And they're like, well, I went through here and I had to correct all these things because they were,

00:12:27.020 --> 00:12:31.040
this data was a little bit off here and that data was a little bit off there.

00:12:31.040 --> 00:12:32.460
And then I had to label them.

00:12:32.460 --> 00:12:39.640
And another thing that was talked about a lot is how do you create these pictures without text that overlaps?

00:12:39.880 --> 00:12:46.700
So you mentioned this thing's called adjust text and where it'll actually take a matplotlib thing with labels

00:12:46.700 --> 00:12:53.120
and then rearrange the labels on the graph so that the text doesn't overlap, which is really cool.

00:12:53.120 --> 00:12:53.900
And it has a nice.

00:12:53.900 --> 00:12:55.560
You've just changed my life.

00:12:55.560 --> 00:12:56.260
Really?

00:12:56.940 --> 00:12:57.340
Yes.

00:12:57.340 --> 00:12:59.360
This is like a huge problem.

00:12:59.360 --> 00:13:01.200
And it's been solved.

00:13:01.200 --> 00:13:01.980
It exists.

00:13:01.980 --> 00:13:03.320
And it's just Python code.

00:13:03.320 --> 00:13:05.240
God, I love that this stuff happens.

00:13:05.240 --> 00:13:06.760
Isn't this cool?

00:13:06.760 --> 00:13:07.180
It's awesome.

00:13:07.180 --> 00:13:10.920
I'm just starting to like jaw on the floor, like, oh, someone figured it out.

00:13:10.920 --> 00:13:13.480
Super cool.

00:13:13.480 --> 00:13:14.040
That's awesome.

00:13:14.040 --> 00:13:15.580
So yeah, there's a bunch of stuff.

00:13:15.580 --> 00:13:22.660
And one of the things that I really took away from this was it reminds me of this quote that in the whole data science,

00:13:22.660 --> 00:13:25.980
scientific computing world, like data cleaning isn't the grunt work.

00:13:26.240 --> 00:13:30.220
It is the orc sort of thing because it's so much about, oh, yeah, I could just run these together.

00:13:30.220 --> 00:13:33.820
But then I spent a month fixing this and correcting that and offsetting that.

00:13:33.820 --> 00:13:36.100
And yeah, so pretty neat.

00:13:36.100 --> 00:13:37.720
That's really cool.

00:13:37.720 --> 00:13:39.160
Yeah, I guess the final.

00:13:39.160 --> 00:13:39.740
Yeah, go ahead, Brian.

00:13:39.740 --> 00:13:41.940
I want to know where I am in galactic coordinates.

00:13:41.940 --> 00:13:45.380
I can't remember off the top of my head.

00:13:45.380 --> 00:13:47.720
But yeah, it does have galactic coordinates.

00:13:47.720 --> 00:13:48.860
I just don't know what they are.

00:13:48.860 --> 00:13:52.000
So is the supermassive black hole at the center of the universe?

00:13:52.000 --> 00:13:53.380
Is that at zero, zero, zero?

00:13:53.380 --> 00:13:54.780
The center of our galaxy.

00:13:54.780 --> 00:13:55.280
Yeah.

00:13:55.520 --> 00:13:55.660
Yes.

00:13:55.660 --> 00:13:57.440
So there's many galaxies in the universe.

00:13:57.440 --> 00:13:58.480
Our galaxy is the Milky Way.

00:13:58.480 --> 00:14:02.820
The supermassive black hole at the center of it would be, yes, L equals zero, B equals zero.

00:14:02.820 --> 00:14:04.220
Okay.

00:14:04.220 --> 00:14:04.740
Awesome.

00:14:04.740 --> 00:14:05.740
Awesome.

00:14:05.740 --> 00:14:10.120
Yeah, I guess final thought is they say it takes about four hours to generate this map running,

00:14:10.120 --> 00:14:15.300
using four cores running in parallel to actually render it because it has so much data and whatnot.

00:14:15.300 --> 00:14:16.800
But anyway, pretty neat.

00:14:16.800 --> 00:14:21.520
If you're looking to build maps with Python, here's a bit of a case study, I suspect.

00:14:22.520 --> 00:14:23.560
Is it open source?

00:14:23.560 --> 00:14:24.440
Is it on GitHub?

00:14:24.440 --> 00:14:26.060
Can you grab it yourself and have a play around?

00:14:26.060 --> 00:14:27.020
I wish.

00:14:27.020 --> 00:14:28.400
No, it's not.

00:14:28.400 --> 00:14:29.060
I looked around.

00:14:29.060 --> 00:14:30.180
I couldn't find much of the code.

00:14:30.180 --> 00:14:31.780
There's little snippets of code shown.

00:14:31.780 --> 00:14:34.180
But yeah, that's all.

00:14:34.180 --> 00:14:36.980
I was thinking like, can I get a section of sky?

00:14:36.980 --> 00:14:38.020
I'm going to print it out.

00:14:38.020 --> 00:14:39.160
I'm going to frame it.

00:14:39.160 --> 00:14:40.120
It's going to look really cool.

00:14:40.120 --> 00:14:40.980
Yeah.

00:14:40.980 --> 00:14:42.480
This is the one I want to put on the wall.

00:14:42.480 --> 00:14:42.920
Yes.

00:14:43.220 --> 00:14:44.820
Millennials love maps on walls.

00:14:44.820 --> 00:14:46.420
That's what I'm going to do.

00:14:46.420 --> 00:14:48.140
All right.

00:14:48.140 --> 00:14:53.340
Before we move on this, just a quick shout out to Dr. Becky from Pride Fund on the live stream.

00:14:53.340 --> 00:14:53.640
Yay.

00:14:53.640 --> 00:14:54.820
Dr. Becky is back.

00:14:54.820 --> 00:14:58.040
Bought your book after watching the live stream with Michael.

00:14:58.040 --> 00:15:00.360
Really enjoyed it, even though you don't have a space background.

00:15:00.360 --> 00:15:01.080
So very cool.

00:15:01.080 --> 00:15:01.940
That's awesome.

00:15:01.940 --> 00:15:02.940
I'm so glad you enjoyed it.

00:15:02.940 --> 00:15:03.720
Yeah.

00:15:03.720 --> 00:15:04.560
All right.

00:15:04.560 --> 00:15:08.420
Speaking of things that we couldn't all enjoy and can take us back, calculators.

00:15:08.820 --> 00:15:09.180
Yes.

00:15:09.180 --> 00:15:09.620
Tell us about it.

00:15:09.620 --> 00:15:15.660
I was thinking about how I haven't thought about my graphical calculator in a long time.

00:15:15.660 --> 00:15:20.780
I swear I was attached at the hip to that thing throughout high school and then a little

00:15:20.780 --> 00:15:25.160
bit into university, but not so much because they were banned in our university exams because

00:15:25.160 --> 00:15:28.320
they thought that it was help us cheat, I guess.

00:15:28.320 --> 00:15:29.220
I don't know.

00:15:29.220 --> 00:15:33.580
It was so weird going from high school where they were like, use your graphical calculators.

00:15:33.580 --> 00:15:35.880
And then at university, they said, no, don't use them.

00:15:36.580 --> 00:15:40.660
And I remember thinking like after that, I barely even thought about, I don't even use

00:15:40.660 --> 00:15:44.240
it in my everyday like work or life anymore.

00:15:44.240 --> 00:15:51.060
When a lot of the things I do, I can just use Spotlight on my Mac to do a quick calculation

00:15:51.060 --> 00:15:51.400
or whatever.

00:15:51.400 --> 00:15:53.380
I'll do it in terminal or something like that.

00:15:53.380 --> 00:16:00.660
And then I saw this the other day and was just amazed by it because I remember this graphical

00:16:00.660 --> 00:16:06.360
calculator showing you, you could get up graphs of, you know, like E to the X or sine X or

00:16:06.360 --> 00:16:08.060
cos X or something on your calculator.

00:16:08.060 --> 00:16:14.800
But the screen like was, it was like an old Game Boy or like a Nokia 3310, right?

00:16:14.800 --> 00:16:17.720
It was the most pixelated screen in the world.

00:16:17.720 --> 00:16:21.060
And making those graphs was so frustrating.

00:16:21.060 --> 00:16:22.960
Like it just wasn't intuitive.

00:16:23.360 --> 00:16:24.620
It wasn't fun.

00:16:24.620 --> 00:16:25.400
I didn't think.

00:16:25.400 --> 00:16:30.720
And then I saw this the other day where look at what like kids can use these days.

00:16:30.720 --> 00:16:36.800
They have this graphical calculator that has this, you know, proper, beautiful, actual color

00:16:36.800 --> 00:16:37.340
screen.

00:16:37.340 --> 00:16:42.500
And that you can use Python on to make plots and do calculations.

00:16:42.500 --> 00:16:49.920
And I just think this is such a fantastic idea because teaching kids to code early is so important.

00:16:49.920 --> 00:16:55.620
Like it can be used in so many different areas of work and life and science and everything like

00:16:55.620 --> 00:16:55.900
that.

00:16:55.900 --> 00:17:02.160
But I always find learning to code without a purpose necessarily is really difficult.

00:17:02.160 --> 00:17:04.800
Like just deciding one day, I'm going to learn how to code.

00:17:04.800 --> 00:17:05.640
Where do you start?

00:17:06.240 --> 00:17:08.020
Like unless you've got a project, like what do you do?

00:17:08.020 --> 00:17:12.420
So the idea of learning as you're going through and actually learning the maths or learning the

00:17:12.420 --> 00:17:17.860
science with your graphical calculator is so good because then it just starts to come naturally to you.

00:17:17.860 --> 00:17:21.840
It's like the first thing you think of to do to solve a problem is to use Python.

00:17:21.840 --> 00:17:25.300
So I'm just so excited that this is a thing.

00:17:25.300 --> 00:17:29.480
And I hope it becomes like the calculator that kids have to buy.

00:17:29.480 --> 00:17:32.660
Like if they're going to do maths at like a higher level or something.

00:17:32.660 --> 00:17:34.140
Yeah, it's so cool.

00:17:34.440 --> 00:17:40.160
Instead of those weird programming languages that come, you know, like Polish notation,

00:17:40.160 --> 00:17:43.760
reverse Polish notation and stuff like this is preparing them for proper programming.

00:17:43.760 --> 00:17:44.660
Exactly.

00:17:44.660 --> 00:17:45.120
Yeah.

00:17:45.120 --> 00:17:49.840
And I think that if you learn it in this way, it will just become so second nature that then

00:17:49.840 --> 00:17:52.560
it's not a barrier for you to go on and do anything else.

00:17:52.560 --> 00:17:53.320
Right.

00:17:53.320 --> 00:17:59.640
It just becomes a tool that you can use to solve problems like in science or in, you know,

00:17:59.640 --> 00:18:03.080
sort of development or software development or something like that.

00:18:03.080 --> 00:18:10.900
As you get into university and wider world, like having that knowledge from that age is so good.

00:18:10.900 --> 00:18:12.580
I mean, I got mine at like 16.

00:18:12.580 --> 00:18:15.980
I don't know about if you guys remember when you got your graphical calculator,

00:18:15.980 --> 00:18:19.360
but I feel like at that age I was impressionable and it stuck with me.

00:18:19.360 --> 00:18:20.340
Exactly.

00:18:20.340 --> 00:18:21.660
Yeah.

00:18:21.660 --> 00:18:23.920
I, I think I might've gotten mine.

00:18:23.920 --> 00:18:26.680
It really was a decent one right when I got to college.

00:18:26.680 --> 00:18:32.520
But yeah, I had even had one of the TI 93s that had a full Cordy keyboard on it for a while.

00:18:32.520 --> 00:18:33.580
It was that big one.

00:18:33.580 --> 00:18:33.820
Yeah.

00:18:33.820 --> 00:18:36.080
That was, that was fancy when I was a TA in grad school.

00:18:36.080 --> 00:18:36.720
Yeah.

00:18:36.720 --> 00:18:37.780
That's the thing.

00:18:37.780 --> 00:18:41.380
I think I got them early because we specialize early in the UK.

00:18:41.380 --> 00:18:45.620
So like I was only doing maths and science by 16 and eight, like 16 to 18.

00:18:45.620 --> 00:18:47.420
So that's why I got mine earlier.

00:18:47.420 --> 00:18:53.000
But yeah, like learning Python then would have been so helpful because I got to university and

00:18:53.000 --> 00:18:55.160
they were like, oh, okay, now term to learn Python.

00:18:55.760 --> 00:18:57.900
But let's do it while we learn general relativity.

00:18:57.900 --> 00:19:00.900
And let's code up some general relativity.

00:19:00.900 --> 00:19:02.460
I was like, oh yeah, I'm still printing.

00:19:02.460 --> 00:19:03.300
Hello world.

00:19:03.300 --> 00:19:04.660
Like one thing at a time.

00:19:04.660 --> 00:19:05.740
Yeah.

00:19:05.740 --> 00:19:08.260
So the fact that you can learn it there here is so cool.

00:19:08.260 --> 00:19:10.560
How do you type into this thing though?

00:19:10.560 --> 00:19:11.720
Like a calculator.

00:19:11.720 --> 00:19:12.620
Very slowly.

00:19:12.620 --> 00:19:12.640
Very slowly.

00:19:12.640 --> 00:19:13.320
First of all.

00:19:13.320 --> 00:19:13.560
Yeah.

00:19:13.560 --> 00:19:16.880
I imagine it probably just has like an old phone keyboard.

00:19:16.880 --> 00:19:21.560
So, you know, three letters per number, but it might have one of the full queries like

00:19:21.560 --> 00:19:22.580
Michael was talking about.

00:19:22.580 --> 00:19:25.240
So I think, I think it's the more skinny, tall ones.

00:19:25.240 --> 00:19:26.240
It's the more like an old phone.

00:19:26.240 --> 00:19:30.480
You know, it'd be awesome if you could transfer Python files over, but yeah, it has like a

00:19:30.480 --> 00:19:31.740
REPL and everything.

00:19:31.740 --> 00:19:32.860
Just pretty interesting.

00:19:32.860 --> 00:19:34.700
I hope it'd have autocomplete.

00:19:34.700 --> 00:19:36.120
Yes.

00:19:36.120 --> 00:19:36.400
Oh.

00:19:36.400 --> 00:19:37.080
That would be great.

00:19:37.080 --> 00:19:37.800
Oh yeah.

00:19:37.920 --> 00:19:41.020
I hadn't even thought about that, but yes, it had better.

00:19:41.020 --> 00:19:43.000
A couple of comments from the live stream.

00:19:43.000 --> 00:19:45.660
Marcel says, Polish notation is the opposite of method chain.

00:19:45.660 --> 00:19:45.960
Yeah.

00:19:45.960 --> 00:19:49.520
And Kim says, graphical calculators would have been really handy in high school.

00:19:49.520 --> 00:19:52.120
I never even seen one before I got into engineering.

00:19:52.120 --> 00:19:54.000
Python and reverse Polish notation.

00:19:54.000 --> 00:19:54.860
Sounds tricky.

00:19:55.520 --> 00:19:58.900
Then Pamphil Roy from the SciPy world.

00:19:58.900 --> 00:20:00.320
He says, oh yeah.

00:20:00.320 --> 00:20:07.000
He also told me he can't put things like SciPy on there, sadly, but hopefully, hopefully soon.

00:20:07.000 --> 00:20:08.600
Maybe this is just, you know, V1.

00:20:09.320 --> 00:20:12.120
But yeah, I guess packages in general, right?

00:20:12.120 --> 00:20:16.620
They talk about having turtle and stuff, but you know, I'm not sure how much they have added modules.

00:20:16.620 --> 00:20:18.740
How cool would it be to have SciPy on there?

00:20:18.740 --> 00:20:25.220
Because then you could like plot a function and then you could like optimize and you could like find the solutions to a function that way.

00:20:25.220 --> 00:20:30.320
Probably skipping the differential equations that you're supposed to be learning in math.

00:20:30.320 --> 00:20:30.820
Exactly.

00:20:30.820 --> 00:20:33.040
I just partial differential equations are easy.

00:20:33.040 --> 00:20:35.720
I just say like solve and give it the number.

00:20:35.720 --> 00:20:36.540
Yeah.

00:20:36.540 --> 00:20:39.120
I would check your answers with SciPy.

00:20:39.120 --> 00:20:39.600
Kind of neat.

00:20:39.600 --> 00:20:53.420
I think turtle's kind of neat on there also because I mean, I programmed a sub hunt on my single line reverse Polish notation HP calculator just because I could sort of thing.

00:20:53.420 --> 00:20:57.000
So I think doing some games in there might be kind of neat.

00:20:57.000 --> 00:20:58.100
Yeah.

00:20:58.100 --> 00:20:58.900
Yeah.

00:20:58.900 --> 00:21:02.100
People definitely agree with you about how cool that would be.

00:21:02.100 --> 00:21:02.980
Yeah.

00:21:02.980 --> 00:21:03.460
Awesome.

00:21:03.460 --> 00:21:04.520
All right.

00:21:04.520 --> 00:21:07.760
Before we move on to the next one, let me tell you about our sponsor this week.

00:21:07.920 --> 00:21:11.580
So this episode of Python Bytes is brought to you by Sentry.

00:21:11.580 --> 00:21:12.500
I love Sentry.

00:21:12.500 --> 00:21:13.480
We use Sentry.

00:21:13.480 --> 00:21:16.520
So how would you like to remove a little stress from your life?

00:21:16.520 --> 00:21:21.400
Do you worry that users might be having difficulties or encountering errors with your app right now?

00:21:21.400 --> 00:21:24.240
Would you even know if they did until they send that email?

00:21:24.780 --> 00:21:34.740
How much better would it be to have error or performance details immediately sent to you, including call stacks, tracebacks, values of local variables, and even the logged in user that ran into the error?

00:21:34.740 --> 00:21:37.640
With Sentry, it's not just possible, but it's simple.

00:21:37.640 --> 00:21:43.040
We use Sentry, like I said, on all of our web apps on Python Bytes and Talk Python, Talk Python training courses.

00:21:43.500 --> 00:21:46.760
And I actually had somebody run into an error.

00:21:46.760 --> 00:21:51.120
I got a Sentry notification that this user had a problem doing this thing.

00:21:51.120 --> 00:21:52.860
I fixed it and sent them an email.

00:21:52.860 --> 00:21:55.120
And they said, oh, that is incredible.

00:21:55.120 --> 00:21:57.680
I was about to email you about this problem I had, but it was late.

00:21:57.680 --> 00:21:58.740
So I was going to do it tomorrow.

00:21:58.740 --> 00:21:59.840
And you already fixed it.

00:21:59.940 --> 00:22:01.040
So what a surprise.

00:22:01.040 --> 00:22:03.280
So surprise and delight your users today.

00:22:03.280 --> 00:22:06.620
Create your Sentry account at pythonbytes.fm/sentry.

00:22:06.620 --> 00:22:11.800
And when you sign up, please, there's a button that says get a promo code.

00:22:11.800 --> 00:22:14.880
Make sure that you enter Python Bytes, all caps, all one word.

00:22:14.880 --> 00:22:19.280
And then you'll get the team plan, which gives you more features and more errors and so on.

00:22:19.280 --> 00:22:21.380
Not that you want more errors, but maybe more features is good.

00:22:21.380 --> 00:22:25.100
So pythonbytes.fm/sentry and promo code pythonbytes.

00:22:25.100 --> 00:22:27.260
Brian, you got the next one.

00:22:27.260 --> 00:22:27.880
Okay.

00:22:28.300 --> 00:22:34.020
I got to say, though, that the artwork on that Git Sentry page was great.

00:22:34.020 --> 00:22:35.140
That is very cool.

00:22:35.140 --> 00:22:35.840
Well done.

00:22:35.840 --> 00:22:43.360
So I've been trying to shift doing a little bit more work with GitHub Actions on my projects.

00:22:43.360 --> 00:22:47.820
But, you know, there's probably great documentation somewhere.

00:22:47.820 --> 00:22:49.220
I just don't know where it is.

00:22:49.220 --> 00:22:51.060
And I'm impatient.

00:22:51.060 --> 00:22:54.660
So I kind of want somebody to just say, for Python, this is what you do.

00:22:54.660 --> 00:22:59.580
So there's a few of these walkthroughs, but I like this one that I just saw recently.

00:22:59.580 --> 00:23:05.780
This one's Python package CI CD with GitHub Actions.

00:23:05.780 --> 00:23:08.260
Just write what it says on the tin.

00:23:09.000 --> 00:23:13.660
But this is kind of a nice walkthrough of some of the different things.

00:23:13.660 --> 00:23:16.540
And they're going through an example project, of course.

00:23:16.540 --> 00:23:17.980
But it's nice.

00:23:17.980 --> 00:23:25.760
First off, it talks about kind of when you want actions to happen.

00:23:26.320 --> 00:23:34.620
So in talking about when they happen, this project happens on pull request and on push to certain branches.

00:23:34.620 --> 00:23:36.140
So in this case, main branch.

00:23:36.140 --> 00:23:43.880
But really, you can pick several branches that you can do this on and to have actions happen on those.

00:23:44.240 --> 00:23:49.960
I kind of like having a couple different development branches, especially on things that I'm active on and don't want to release yet.

00:23:49.960 --> 00:23:51.340
So these are nice.

00:23:51.340 --> 00:23:54.420
And then what else?

00:23:54.420 --> 00:23:56.560
I'm going through a matrix of stuff.

00:23:56.560 --> 00:24:01.140
So most of the article is talking about syntax checking on different things.

00:24:01.140 --> 00:24:08.140
I don't know if really that's important, but I would probably do a pie test on multiple matrices.

00:24:09.380 --> 00:24:15.440
But the notion of a matrix is kind of interesting, having the different environments.

00:24:15.440 --> 00:24:25.120
So in this case, this person is talking about maybe running on multiple versions of Python across Ubuntu, macOS, and Windows.

00:24:25.120 --> 00:24:27.060
And that's exactly what I want.

00:24:27.060 --> 00:24:30.500
Those sorts of combinations to make sure something's working.

00:24:30.500 --> 00:24:35.200
With all the devices and stuff that you have, do you see this maybe even something at work as well,

00:24:35.200 --> 00:24:38.000
like with all the hardware devices and the different ways it's configured?

00:24:38.000 --> 00:24:48.600
Well, couldn't use GitHub Actions, but we definitely use matrices to figure out which tests have to run on different configurations and different hardware.

00:24:48.600 --> 00:24:50.420
And it's just exploding.

00:24:50.420 --> 00:24:52.540
But, yeah, that's a different nightmare.

00:24:52.540 --> 00:24:56.120
But this one is taken care of for you.

00:24:56.120 --> 00:25:00.980
So it's a neat thing to test across all those.

00:25:01.660 --> 00:25:03.560
And, you know, I knew how to do it on Tox.

00:25:03.560 --> 00:25:04.940
I knew how to do it on Travis.

00:25:04.940 --> 00:25:08.340
And getting it to work on GitHub Actions is just different.

00:25:08.340 --> 00:25:09.120
It's not harder.

00:25:09.120 --> 00:25:09.960
It's just different.

00:25:09.960 --> 00:25:11.820
So I appreciate this walkthrough.

00:25:11.820 --> 00:25:14.400
And then what?

00:25:14.400 --> 00:25:20.460
Going through running example of running tests, of course, and checking artifacts, which is interesting.

00:25:20.460 --> 00:25:21.780
I hadn't thought about that.

00:25:21.780 --> 00:25:28.800
There's, you know, your build might generate, you know, documents or other artifacts that you want to keep around.

00:25:28.800 --> 00:25:32.480
Having some checks around those is a good idea, too.

00:25:32.480 --> 00:25:39.540
And then the last couple of bits, and really why I'm highlighting this is because I didn't really know how to do this,

00:25:39.540 --> 00:25:41.820
is doing auto merges on some branches.

00:25:42.060 --> 00:25:47.220
So there's some branches that you, like maybe you're maintaining and nobody else has access to.

00:25:47.220 --> 00:25:52.100
But if you push to that, you want tests to run and then automatically to merge to something.

00:25:52.100 --> 00:25:59.440
And setting up auto merge, there's some steps around that, which is pretty darn cool.

00:25:59.440 --> 00:26:02.640
And the last bit is pushing to PyPI.

00:26:02.880 --> 00:26:14.080
So releasing, release automation so you can automatically, in this case, setting up a rule so that if you push the tag that starts with a V,

00:26:14.080 --> 00:26:19.860
that means you've updated the version and you want that to push automatically out to PyPI.

00:26:19.860 --> 00:26:21.760
So hooking that up with GitHub Actions.

00:26:21.760 --> 00:26:22.700
Oh, that's clever.

00:26:22.700 --> 00:26:25.380
I'd never thought about triggering it off of a tag name.

00:26:25.380 --> 00:26:28.240
I've always thought of it just certain branch means go.

00:26:28.240 --> 00:26:29.560
But yeah, this is, that's clever.

00:26:29.760 --> 00:26:30.200
Yeah.

00:26:30.200 --> 00:26:37.580
So that way you can even, even have like a main branch that has updated workflow, updated things, but it's not,

00:26:37.580 --> 00:26:40.720
it doesn't git pushed until there's a new version, which makes sense.

00:26:40.720 --> 00:26:41.080
Yeah.

00:26:41.080 --> 00:26:46.840
Dr. Becky, what's the story with GitHub Actions and all of your colleagues, people use it?

00:26:46.840 --> 00:26:53.040
I don't think I even know what GitHub Actions is to be quite, I had a drink and I spared you from hearing me gulp before.

00:26:53.040 --> 00:26:53.620
Yeah.

00:26:53.620 --> 00:26:57.840
I don't even think I know what, I've used GitHub Actions to be quite honest.

00:26:58.960 --> 00:27:05.020
I'm sure some of my colleagues, I use GitHub all the time, obviously, but GitHub Actions, try to remember.

00:27:05.020 --> 00:27:06.020
I don't think so.

00:27:06.020 --> 00:27:08.260
I'm sure somebody has though, but no.

00:27:08.260 --> 00:27:08.640
Yeah.

00:27:08.640 --> 00:27:10.820
I'm sure some people maintain some of the packages and stuff.

00:27:10.820 --> 00:27:12.160
That's what I was thinking.

00:27:12.160 --> 00:27:12.520
Yeah.

00:27:12.520 --> 00:27:15.220
I don't think I have anything like that to maintain.

00:27:15.220 --> 00:27:24.000
A lot of my colleagues put out stuff, but really my code is for sort of my use and for any specific colleague that has like a science case use for it.

00:27:25.140 --> 00:27:31.960
But GitHub, I mean, I love GitHub because one of the things I love doing with it is committing when I've written like a scientific paper.

00:27:32.460 --> 00:27:39.040
I'll even put the latex on GitHub, what we sort of code our scientific writing in, right?

00:27:39.980 --> 00:27:42.720
And the PDF is included in your commits.

00:27:42.720 --> 00:27:49.080
And then you can make a GIF from your commit history of like your PDF, like building up, like adding parts and all the words adding.

00:27:49.080 --> 00:27:55.140
It's one of my favorite things to do once I finish because it feels like it's like, oh, I've done this project.

00:27:55.320 --> 00:27:58.060
And now I can like see it fully take form.

00:27:58.060 --> 00:28:07.260
And I remember I wrote my thesis, my entire PhD thesis in about two months because I got a job and I had to finish my PhD and I had to write it up.

00:28:07.260 --> 00:28:10.300
And I don't remember much from that whole two months time.

00:28:10.300 --> 00:28:16.520
It's a huge blur, except one vivid memory of the fire alarm going off in the department.

00:28:17.060 --> 00:28:21.460
And being like, panic, Git, commit, Git, push.

00:28:21.460 --> 00:28:31.820
I was just, remember this, I've got this one commit message in my thesis repo that's basically just, I just mullered the keyboard because I was just like the fire alarm's going off.

00:28:31.820 --> 00:28:33.680
Git, commit, anything.

00:28:33.680 --> 00:28:35.340
And Git, push.

00:28:35.340 --> 00:28:40.300
Because I was like, what if, like, what if I don't have a backup of like the past eight hours of writing I've just done?

00:28:40.300 --> 00:28:43.020
It was a huge bulk and I was just like, I'm not losing this.

00:28:43.020 --> 00:28:44.920
And people were like pulling me out of the room.

00:28:44.920 --> 00:28:46.980
You've got to run away.

00:28:47.600 --> 00:28:48.860
Oh my gosh, that's so fun.

00:28:48.860 --> 00:28:48.980
It was totally fine.

00:28:48.980 --> 00:28:49.800
But.

00:28:49.800 --> 00:28:50.820
Yeah.

00:28:50.820 --> 00:28:53.940
That reminds me of a sign I saw once.

00:28:53.940 --> 00:28:54.360
Yes.

00:28:54.360 --> 00:28:56.980
Exactly.

00:28:56.980 --> 00:28:58.580
In case of fire.

00:28:58.580 --> 00:29:00.000
One, Git, commit.

00:29:00.000 --> 00:29:00.980
Two, Git, push.

00:29:00.980 --> 00:29:01.840
Three, leap building.

00:29:01.840 --> 00:29:09.500
I actually went through this, but during a PhD thesis write-up, which I would never recommend to anybody.

00:29:09.500 --> 00:29:14.440
I'm amazed that you found this image so fast.

00:29:14.440 --> 00:29:15.340
Oh yeah.

00:29:15.340 --> 00:29:16.360
No problem.

00:29:16.600 --> 00:29:16.960
I'm on.

00:29:16.960 --> 00:29:17.680
I got you.

00:29:17.680 --> 00:29:19.800
A couple of comments from the live stream.

00:29:19.800 --> 00:29:23.340
Justin Boyce says, love being able to use GitHub actions for deployment.

00:29:23.340 --> 00:29:26.140
Keeps me from botching deployment by making mistakes.

00:29:26.140 --> 00:29:26.560
I agree.

00:29:26.560 --> 00:29:28.260
Do it more often if it's automatic.

00:29:28.260 --> 00:29:30.580
And then Jared Chung says, looks great.

00:29:30.580 --> 00:29:37.820
Definitely going to hook this up to the packages I maintain, but which change infrequently so you don't have to remember the workflow and so on.

00:29:37.820 --> 00:29:50.480
And then finally, Marcel Milsent says, I heard GitHub is now offering free tier for institutions with unlimited contributors for private repos and $2,000 or $2,000 actions a month for $0.

00:29:50.980 --> 00:29:55.640
That goes alongside with the academics package as well, right?

00:29:55.640 --> 00:29:56.140
For students.

00:29:56.140 --> 00:29:56.980
It's not just students.

00:29:56.980 --> 00:30:02.980
It's also anybody with like a .edu email or .ac.uk, which is the universities over here.

00:30:03.060 --> 00:30:06.560
So I have like loads of free repos and stuff like that, which is great.

00:30:06.560 --> 00:30:07.300
It's so good of them.

00:30:07.300 --> 00:30:07.480
Yeah.

00:30:07.480 --> 00:30:08.020
Fantastic.

00:30:08.020 --> 00:30:08.700
Well, cool.

00:30:08.700 --> 00:30:09.020
All right.

00:30:09.020 --> 00:30:10.980
Moving on to number five.

00:30:10.980 --> 00:30:12.220
Not this one.

00:30:12.220 --> 00:30:12.820
This one.

00:30:12.820 --> 00:30:14.320
Another spaCy one.

00:30:14.320 --> 00:30:15.840
Another spaCy one.

00:30:16.060 --> 00:30:31.420
Garrett Dunn gave us a shout out saying SpaceX is now using Python for prototyping their Starlink satellite software, which I don't know how you feel about Starlink, Dr. Becky.

00:30:31.420 --> 00:30:37.560
I mean, as an astronomer, it's like in your way, but as a way to empower people in remote places, it's kind of cool.

00:30:37.560 --> 00:30:40.720
I'm really split about it, to be honest, because I want it to go ahead.

00:30:40.800 --> 00:30:50.520
I think it's a really cool project, but I think there's more compromises need to be made in order for it to work in the way that it could, like the most efficiently the way that it could.

00:30:50.520 --> 00:31:00.140
And I know like even before this launched, I'd take an image, you know, and I'll end up with a satellite trail and, you know, at least one of 10 I've taken, you know, a telescope that evening.

00:31:00.140 --> 00:31:01.640
And there's going to be more, right?

00:31:01.640 --> 00:31:02.580
Exactly.

00:31:02.580 --> 00:31:02.960
Yeah.

00:31:02.960 --> 00:31:04.560
And it's not like something you can remove.

00:31:04.560 --> 00:31:06.260
People are like, oh, just remove it as a source of noise.

00:31:06.320 --> 00:31:17.480
If that thing goes like right over your, you know, 15 minute exposure of a galaxy that's millions of light years away and this massive bright thing just goes right over the middle, it ruins it, right?

00:31:17.480 --> 00:31:18.680
There's no rescuing that.

00:31:18.680 --> 00:31:20.600
So I do want it to go ahead.

00:31:20.600 --> 00:31:23.480
I do want it to work, but it's really cool that they're going to use Python.

00:31:23.480 --> 00:31:33.500
Like that could be something we could get warnings from, you know, like if it's something as accessible as Python, so to say, something's going over, pause observation, carry on or something like that, you know?

00:31:33.840 --> 00:31:44.680
Yeah, I would actually love to see SpaceX work more closely with all the satellite locations and observatories and say, all right, here's how we're going to help you solve this problem.

00:31:44.680 --> 00:31:45.420
Yeah.

00:31:45.420 --> 00:31:46.500
That would be great.

00:31:46.500 --> 00:31:47.140
Yeah.

00:31:47.140 --> 00:31:48.380
Diving into this.

00:31:48.380 --> 00:31:56.700
So Stack Overflow actually did a four-part series on the software that SpaceX used to build all their things in space.

00:31:56.700 --> 00:31:59.340
And this one in particular is about the network protocols.

00:31:59.800 --> 00:32:11.040
So if you look at how the Starlink system works, it turns out that most of the stuff is C++, both on the ground systems and the things in the sky.

00:32:11.040 --> 00:32:18.840
So they talk about that their software breaks into two parts, software that flies and software that supports the things that fly.

00:32:19.300 --> 00:32:24.480
So the software that flies is all C++ that's on embedded chips on the satellites.

00:32:24.480 --> 00:32:30.060
But then on the ground, there's a whole bunch of communication APIs and coordination APIs.

00:32:30.060 --> 00:32:37.200
If you look over at where these satellites are and where they're covering, there's these cool real-time maps.

00:32:37.200 --> 00:32:38.660
I'll put one on the screen here.

00:32:39.140 --> 00:32:42.300
You can actually see them flying by here where Brian and I are.

00:32:42.300 --> 00:32:44.180
Please zoom in on that area.

00:32:44.180 --> 00:32:50.780
And you can see the overlap of the signals of the different ones and how they're oriented and all kinds of stuff.

00:32:50.780 --> 00:32:56.540
So they need to adjust and move these satellites around in orchestration and orchestrate them, basically.

00:32:56.980 --> 00:33:01.560
So the software that does that, it's in production version in C++.

00:33:01.560 --> 00:33:06.560
But they do a lot of simulations and prototyping in Python to figure out how that works.

00:33:06.560 --> 00:33:09.360
Because, you know, think about the in-body problem.

00:33:09.360 --> 00:33:17.220
But for thousands or hundreds of thousands of these things to keep them all working together, the combinatorics of it get out of control really quick, they say.

00:33:17.220 --> 00:33:19.480
So there's a lot of simulations that need to be done.

00:33:19.480 --> 00:33:20.380
And they do that in Python.

00:33:20.380 --> 00:33:24.520
And once they get the working version, then they rewrite that in C++.

00:33:24.520 --> 00:33:25.660
What do you two think?

00:33:25.660 --> 00:33:26.660
That's a cool picture, right?

00:33:26.660 --> 00:33:28.800
Yeah, that's really cool.

00:33:28.800 --> 00:33:29.680
That is neat.

00:33:29.680 --> 00:33:29.940
Yeah.

00:33:29.940 --> 00:33:33.460
And speaking of GitHub Actions, they probably are actually using GitHub for this.

00:33:33.460 --> 00:33:35.640
But it doesn't explicitly say.

00:33:35.640 --> 00:33:38.980
But you think of organizations that have a hard time deploying their code.

00:33:38.980 --> 00:33:40.000
Like, you'll go to a website.

00:33:40.000 --> 00:33:43.460
Like, our website is down all of Sunday because we're deploying a new version.

00:33:43.460 --> 00:33:44.300
Like, are you kidding me?

00:33:44.300 --> 00:33:45.360
This is 2021.

00:33:45.360 --> 00:33:49.800
Like, this should be Git push, wait a few seconds, and it's now the new version.

00:33:49.800 --> 00:33:55.640
Anyway, this is pretty interesting because they say the software is developed in a continuous integration environment.

00:33:55.640 --> 00:34:01.940
With teams merging into the master development branch often and deploying to all of the satellites weekly.

00:34:04.280 --> 00:34:08.460
That adds an extra level of panic to you git pushed, doesn't it?

00:34:08.460 --> 00:34:09.940
It definitely does.

00:34:09.940 --> 00:34:11.380
Oh, whoops, I wasn't ready.

00:34:11.380 --> 00:34:13.200
All the satellites stopped responding.

00:34:13.200 --> 00:34:13.580
Whoops.

00:34:13.580 --> 00:34:15.940
So, yeah.

00:34:15.940 --> 00:34:20.540
It says the Python version allows them for rapid iteration during the design phase.

00:34:20.540 --> 00:34:22.260
And once it's all happy, they write in C++.

00:34:22.260 --> 00:34:22.700
So, yeah.

00:34:22.700 --> 00:34:23.620
Anyway, pretty cool.

00:34:23.720 --> 00:34:27.780
I'll link to some of these maps that track it and the four-part series and so on.

00:34:27.780 --> 00:34:29.220
So, Garrett, thank you for that.

00:34:29.220 --> 00:34:36.080
It's really cool to see because it's very similar to what Space Telescope are doing for the James Webb Space Telescope.

00:34:36.080 --> 00:34:40.280
Sorry, Space Telescope is the institution in Baltimore that manages, like, the Hubble Space Telescope.

00:34:40.280 --> 00:34:45.040
And the new one that's going to hopefully launch in October is called the James Webb Space Telescope.

00:34:45.040 --> 00:34:54.040
And I think that's a similar sort of platform in that a lot of the spacecraft sort of mechanics is done with sort of the usual comms that they have, possibly C++.

00:34:54.040 --> 00:35:06.340
But a lot of the tools they put together for astronomers who are planning observations, like where to point, how long that will take, and all those kind of things when they're sort of deciding, I want to use this to do this science.

00:35:06.340 --> 00:35:07.580
That's all been done in Python.

00:35:07.580 --> 00:35:17.460
And, like, all of the sort of tutorials of, like, how to figure out how much, like, James Webb Space Telescope will be able to see if this thing you want to look at is all done in, like, iPython notebooks.

00:35:17.460 --> 00:35:19.100
Jupyter, I guess we should call them now.

00:35:19.100 --> 00:35:19.460
Yeah.

00:35:19.460 --> 00:35:28.240
So, it's really cool to see that, like, it's, you know, it's not just, like, these major academic institutions that are picking up Python because they know it's the academics that use that.

00:35:28.240 --> 00:35:33.300
But it's companies like SpaceX as well, I guess, because they know their employees, like, work well with Python.

00:35:33.300 --> 00:35:34.360
Yeah.

00:35:34.360 --> 00:35:34.520
So.

00:35:34.520 --> 00:35:35.740
Oh, that's really cool.

00:35:35.740 --> 00:35:38.740
I knew a lot of the telescopes were using Python, but.

00:35:38.740 --> 00:35:42.660
And that's going to be a massive new telescope.

00:35:42.660 --> 00:35:45.060
The James Webb Telescope is going to be a big deal, right?

00:35:45.060 --> 00:35:45.680
Yeah.

00:35:45.680 --> 00:35:46.620
It's going to be a huge deal.

00:35:46.620 --> 00:35:53.280
We've all got fingers crossed that launch actually happens because it was originally planned for 10 years ago and three years ago and five years ago.

00:35:53.280 --> 00:35:54.540
Oh, my gosh.

00:35:54.540 --> 00:35:55.940
Yeah.

00:35:55.940 --> 00:35:57.540
Fingers crossed, I guess, for coming soon.

00:35:57.540 --> 00:35:58.220
All right.

00:35:58.220 --> 00:36:00.100
Dr. Becky, you got the next one.

00:36:00.100 --> 00:36:01.100
Yeah.

00:36:01.420 --> 00:36:08.600
So I feel like I've done the scientist thing of bringing a scientific paper to a Python podcast, but I'm bringing what I know.

00:36:09.300 --> 00:36:16.520
So I found this paper a while back when I was sort of, you know, doing the thing of like, you're an expert in something because you know what to Google.

00:36:17.520 --> 00:36:23.460
I was looking for something and I found this paper, the beginner's guide to working with astronomical data.

00:36:23.460 --> 00:36:31.860
And it's very much written as if you're, you know, a poor PhD student that's come in and your professor said, hey, here's a lot of data.

00:36:31.860 --> 00:36:32.740
Please analyze it.

00:36:32.740 --> 00:36:34.560
And you're like, I don't know where to start.

00:36:34.940 --> 00:36:36.740
So that's kind of who it's written for.

00:36:36.740 --> 00:36:47.660
And I think if you are a really keen amateur astronomer, and I know a lot of people do want to get into astrophotography and possibly did during the pandemic with lockdowns and stay at home orders.

00:36:48.160 --> 00:36:59.420
And perhaps might have set up something with like a Raspberry Pi, you know, to control a telescope, to know where it's pointing, something like that, or even to adapt it with a camera as well.

00:36:59.420 --> 00:37:08.400
And then they have all these images that they then want to remove noise and get like a beautiful color image of something as well.

00:37:08.460 --> 00:37:11.440
And they're not entirely sure how to do it, but they might know Python.

00:37:11.440 --> 00:37:16.600
I use Python to, you know, analyze the images that come off the back of professional telescopes.

00:37:16.600 --> 00:37:23.980
So you could do it with amateur telescopes or amateur, you know, just an SLR camera you've set up in your back garden to take an image of something.

00:37:23.980 --> 00:37:27.200
But you want to see fainter and fainter things.

00:37:27.200 --> 00:37:34.320
You have to take lots and lots of like short images so you don't get, you know, motion blur and stuff like that with the, with actually the rotation of the earth.

00:37:34.320 --> 00:37:36.120
But they're all the wrong coordinates.

00:37:36.120 --> 00:37:36.980
So what do you do?

00:37:36.980 --> 00:37:38.300
Because they're not all in the same place.

00:37:38.300 --> 00:37:41.300
So you use AstroPy to figure out, you know, how to do this.

00:37:41.300 --> 00:37:44.420
Does it like realign the images to adjust for that rotation?

00:37:44.420 --> 00:37:45.080
Exactly.

00:37:45.080 --> 00:37:46.340
Yeah, yeah, you can do that.

00:37:46.340 --> 00:37:50.840
And so, but there's obviously lots of other steps that you need to do, like taking out noise.

00:37:50.840 --> 00:37:56.120
So this actually talks through like all of the steps that would go into what a professional would do.

00:37:56.120 --> 00:38:07.540
And I, reading it, I think it's so well written that I think someone who is a really keen amateur and who wants to get into astrophotography and do the, you know,

00:38:08.140 --> 00:38:15.180
as we call it, as we call it, of the images, you know, make them look extra pretty by the end of it with Python because they're a keen Python person.

00:38:15.180 --> 00:38:18.600
I think this would be the thing to be like, right, I'm going to make this my bedtime reading.

00:38:19.200 --> 00:38:20.840
It's very, very long.

00:38:20.840 --> 00:38:26.180
But I think you could definitely make this like a project if someone was keen enough to do.

00:38:26.180 --> 00:38:28.500
And so that's why I thought I'd bring it.

00:38:28.740 --> 00:38:40.680
And I feel like obviously we need a huge shout out to AstroPy and Map.Lib and everything like that for making these kind of things possible with, you know, images that you can take in your back garden and stuff that you can get at.

00:38:40.680 --> 00:38:52.220
But, you know, this, you know, someone in a month or so, if they're really keen on Python and they're really keen on taking photos of the night sky, you could be getting images of galaxies and nebula that look amazing, you know.

00:38:52.400 --> 00:38:54.020
So that's why I thought I'd bring it.

00:38:54.020 --> 00:38:54.700
Print them out.

00:38:54.700 --> 00:38:57.840
Yeah, print it out and put it up as artwork in your house or something.

00:38:57.840 --> 00:38:58.680
That'd be fantastic.

00:38:58.680 --> 00:39:02.040
It didn't, instead of just saying that's a, that's a cool picture of a galaxy.

00:39:02.040 --> 00:39:03.620
Like I took that picture of that galaxy.

00:39:03.620 --> 00:39:04.460
That's totally different.

00:39:04.460 --> 00:39:05.160
Exactly.

00:39:05.160 --> 00:39:05.400
Yeah.

00:39:05.400 --> 00:39:10.980
You know, I can imagine someone getting an amazing picture of Andromeda, you know, and following these steps that it outlies.

00:39:10.980 --> 00:39:20.840
And I think it's easier because, especially if you know Python, there's no learning curve with a new tool or a new, or like frustration with a GUI, right?

00:39:21.000 --> 00:39:22.940
That's just this like, ah, interface, what's going on?

00:39:22.940 --> 00:39:23.600
I don't know how to use it.

00:39:23.600 --> 00:39:32.760
Because it's just pure Python, I think if you already know Python, it's definitely the easiest way to get into this because it'd be something familiar with something new.

00:39:32.760 --> 00:39:38.020
So even though it's a scientific paper, I think it would pass.

00:39:38.020 --> 00:39:40.560
Yeah, it looks super interesting.

00:39:40.560 --> 00:39:45.200
The code doesn't look terribly challenging, but, you know, it's exactly what you need to solve the problems, right?

00:39:45.200 --> 00:39:46.180
Exactly.

00:39:46.180 --> 00:39:46.580
Yeah.

00:39:46.580 --> 00:39:47.080
Cool.

00:39:47.080 --> 00:39:47.280
Cool.

00:39:47.280 --> 00:39:48.240
All right.

00:39:48.240 --> 00:39:50.300
I think that's it for our six items.

00:39:50.380 --> 00:39:51.020
Brian, you got anything?

00:39:51.020 --> 00:39:54.060
No, I just apologize to the stream people.

00:39:54.060 --> 00:39:56.660
For some reason, my video stream is frozen.

00:39:56.660 --> 00:40:00.600
I think that you might just be really, really zen and still.

00:40:00.600 --> 00:40:04.740
I thought he was just really interested in the paper, but he was like, wow, look at that.

00:40:04.740 --> 00:40:06.900
You've mesmerized him.

00:40:06.900 --> 00:40:07.240
Absolutely.

00:40:07.240 --> 00:40:07.620
All right.

00:40:07.620 --> 00:40:12.120
So before we move on, actually, Justin Boyce says, thanks for bringing this, Dr. Becky.

00:40:12.120 --> 00:40:14.300
I did pick up astrophotography.

00:40:14.300 --> 00:40:16.760
Barely as a hobby during the pandemic, and it looks good.

00:40:16.760 --> 00:40:17.160
So, yeah.

00:40:17.500 --> 00:40:17.820
Already.

00:40:17.820 --> 00:40:19.580
I already got one person into it.

00:40:19.580 --> 00:40:22.140
Taking that, like, biggest step to go from like, oh, cool.

00:40:22.140 --> 00:40:25.820
Like, I managed to photograph some stars to getting, like, the galaxy's nebula.

00:40:25.820 --> 00:40:28.840
I think this will help people take that step, I think.

00:40:28.840 --> 00:40:29.180
So.

00:40:29.180 --> 00:40:30.660
Yeah, for sure.

00:40:30.660 --> 00:40:31.780
I'm glad it helped.

00:40:31.780 --> 00:40:32.860
All right.

00:40:32.860 --> 00:40:34.900
I got a couple of quick shout outs at the end.

00:40:35.020 --> 00:40:41.780
First, I want to point out that if you like this conversation, check out episode 303 of

00:40:41.780 --> 00:40:47.140
Talk Python, where Dr. Becky and I dive all into the Python astronomy world.

00:40:47.140 --> 00:40:47.740
That was fun.

00:40:47.740 --> 00:40:54.360
And then I just met with one of the founders of this company called Kubuntu Focus, which

00:40:54.360 --> 00:40:56.240
I thought was a pretty interesting idea.

00:40:56.240 --> 00:41:02.440
So, what they're going for is, you know, the way that Apple works is, right, you know,

00:41:02.440 --> 00:41:07.020
they make the Mac and then they make macOS and that tight integration of those two things

00:41:07.020 --> 00:41:12.300
works better than just, you know, bringing pieces together and building your own sort of

00:41:12.300 --> 00:41:12.780
thing, right?

00:41:12.780 --> 00:41:15.040
So, that's sort of the same idea, but for Linux.

00:41:15.040 --> 00:41:19.760
And so, it's really focused on people who do AI type of work or just want to have a really

00:41:19.760 --> 00:41:21.400
good desktop Linux environment.

00:41:21.400 --> 00:41:27.000
So, for example, down here at the bottom, keeping it in the space world, we have Chris

00:41:27.000 --> 00:41:30.960
Matman, who, if I refresh it, it'll come up at the right time, maybe.

00:41:30.960 --> 00:41:31.920
It's supposed to cycle out.

00:41:31.920 --> 00:41:39.180
Anyway, Chris Matman said, he, who works at JPL, who, he did some machine learning training

00:41:39.180 --> 00:41:41.640
on his MacBook Pro and it took like 37 hours.

00:41:41.640 --> 00:41:47.000
And on this thing, because they have these crazy GPUs, these like GeForce 3080s and stuff

00:41:47.000 --> 00:41:52.520
in the laptop, they did it in like an hour and a half instead of 37 hours or whatever it

00:41:52.520 --> 00:41:52.740
was.

00:41:52.740 --> 00:41:55.000
So, and by the way, you can actually buy it.

00:41:55.000 --> 00:41:57.720
Like these, these new GeForce chips are cards.

00:41:57.720 --> 00:42:00.100
They're basically unobtainium, right?

00:42:00.100 --> 00:42:00.860
You can't get to them.

00:42:00.860 --> 00:42:04.040
So, yeah, anyway, pretty, pretty interesting.

00:42:04.040 --> 00:42:07.400
If you're looking for a desktop Linux world, check that out.

00:42:07.400 --> 00:42:10.060
Dr. Becky, anything you would like to give a shout out to?

00:42:10.060 --> 00:42:13.340
Maybe I could throw out your Amazon page.

00:42:13.340 --> 00:42:14.500
Yeah, sure.

00:42:14.500 --> 00:42:15.380
Yeah.

00:42:15.380 --> 00:42:16.300
Yeah.

00:42:16.300 --> 00:42:17.600
So I've written a book.

00:42:17.600 --> 00:42:21.220
So it's got different names everywhere in the world, just to confuse everybody.

00:42:21.220 --> 00:42:25.520
So in the US and Canada, it's called Space at the Speed of Light.

00:42:25.520 --> 00:42:30.020
In the UK and pretty much everywhere else in the world, it's Space, 10 Things You Should

00:42:30.020 --> 00:42:30.220
Know.

00:42:30.280 --> 00:42:33.300
And then there's also the German edition as well, which I'm not trying to butcher.

00:42:33.300 --> 00:42:36.180
Das kleine Buch von Größen Knaal.

00:42:36.180 --> 00:42:37.040
Größen Knaal.

00:42:37.040 --> 00:42:37.760
Yeah, exactly.

00:42:37.760 --> 00:42:38.800
It's a good book title.

00:42:38.800 --> 00:42:45.220
It's, it's essentially, it's written for, I think anyone who is a complete beginner in

00:42:45.220 --> 00:42:48.680
space, but has always maybe been a little bit curious, would love this book.

00:42:49.120 --> 00:42:53.040
It's like the 10 things that if you were going to be at a dinner party and you'd be like,

00:42:53.040 --> 00:42:53.880
hey, did you know this?

00:42:53.880 --> 00:42:56.220
Like, these are the things you should know about space, right?

00:42:56.220 --> 00:42:57.400
But I also think that anybody who's-

00:42:57.400 --> 00:42:58.240
Dr. Becky told me about it.

00:42:58.240 --> 00:42:58.820
Yeah.

00:42:58.820 --> 00:43:04.240
I also think anybody who's been keen on space as well will also get a kick out of it because

00:43:04.240 --> 00:43:10.480
it takes ideas that you might have heard before, but then just adds an intellectual level of

00:43:10.480 --> 00:43:14.480
like where we are right now on the edge of like our understanding of this thing.

00:43:14.480 --> 00:43:17.340
So it's a really short read as well.

00:43:17.340 --> 00:43:18.480
It's not heavy.

00:43:18.480 --> 00:43:19.560
It's not a big, heavy thing.

00:43:19.560 --> 00:43:20.460
It's really skinny.

00:43:20.460 --> 00:43:22.820
My laptop's currently propped on top of it.

00:43:22.820 --> 00:43:26.400
Otherwise, I would show you how skinny it is, but I disrupt everything.

00:43:26.400 --> 00:43:30.920
So yeah, if people want to check that out, please do.

00:43:30.920 --> 00:43:35.660
Or if you have like, I don't know, an uncle or an aunt or a nephew or a niece or whatever

00:43:35.660 --> 00:43:38.100
that you think would like that.

00:43:38.100 --> 00:43:39.000
Yeah, fantastic.

00:43:39.000 --> 00:43:39.940
I've been told it's a good gift.

00:43:39.940 --> 00:43:41.140
Yeah.

00:43:41.140 --> 00:43:42.980
Rahen asks, is it really big?

00:43:42.980 --> 00:43:43.460
Nope.

00:43:43.460 --> 00:43:44.520
It's not that big.

00:43:44.520 --> 00:43:47.160
It's about 200 pages or so.

00:43:47.160 --> 00:43:47.680
Yeah.

00:43:47.680 --> 00:43:49.200
Pradvan says, I can vouch for the book.

00:43:49.200 --> 00:43:49.480
Yeah.

00:43:49.480 --> 00:43:50.280
Absolutely.

00:43:50.280 --> 00:43:50.740
Thank you, Pradvan.

00:43:50.740 --> 00:43:54.680
And then also says that Brian imported Zen.

00:43:54.680 --> 00:43:55.940
Which is very cute.

00:43:55.940 --> 00:43:57.260
I like that.

00:43:57.260 --> 00:44:03.480
Well, I've got a close friend that has a telescope and he always wants to talk about

00:44:03.480 --> 00:44:04.560
space and I know nothing.

00:44:04.560 --> 00:44:07.320
So I'm definitely going to read this book so I can talk to him.

00:44:07.320 --> 00:44:08.020
There you go.

00:44:08.020 --> 00:44:08.460
Fantastic.

00:44:08.460 --> 00:44:09.540
Perfect for that.

00:44:09.540 --> 00:44:10.720
All right.

00:44:10.720 --> 00:44:17.300
I have, we always close out the show with a joke, but I went and found some space memes

00:44:17.300 --> 00:44:21.800
because Dr. Becky is here and you've done a couple of videos on reacting to space memes.

00:44:21.800 --> 00:44:25.580
And so I thought maybe some space memes would be appropriate as our jokes for the week.

00:44:25.580 --> 00:44:28.880
Yeah, that's so fun because people click on them and they're like, I just learned more

00:44:28.880 --> 00:44:35.440
in this 15 minute video about space memes that I did in my entire high school career in physics.

00:44:35.440 --> 00:44:37.960
And I'm like, that was always my intention.

00:44:37.960 --> 00:44:38.680
Wah ha ha.

00:44:38.680 --> 00:44:42.580
I draw you in with the memes and then I hit you with the science.

00:44:42.580 --> 00:44:43.640
Exactly.

00:44:43.640 --> 00:44:44.300
Exactly.

00:44:44.300 --> 00:44:45.120
It's so good.

00:44:45.120 --> 00:44:45.300
Yeah.

00:44:45.340 --> 00:44:49.520
So maybe we can link to some of the proper ones you've done.

00:44:49.520 --> 00:44:49.880
There's a lot.

00:44:49.880 --> 00:44:52.260
So I'm going to throw out four quick little space memes.

00:44:52.260 --> 00:44:53.500
I think four is it.

00:44:53.500 --> 00:44:55.260
I got to remember what the names.

00:44:55.260 --> 00:44:56.440
I gave them each a title.

00:44:56.440 --> 00:44:57.560
So the first one is Uber.

00:44:57.560 --> 00:45:01.040
So there's Matt Damon sitting on ours alone.

00:45:01.040 --> 00:45:04.140
Remember he gets abandoned there and he says, where's my Uber?

00:45:04.140 --> 00:45:07.900
And then there's the Elon Musk roadster he shot into spaces.

00:45:07.900 --> 00:45:08.820
I'll be there in a minute.

00:45:12.260 --> 00:45:15.080
I mean, I don't know whose definition of minute that is.

00:45:15.080 --> 00:45:17.420
It's going to be wild.

00:45:17.420 --> 00:45:18.100
Seriously.

00:45:18.100 --> 00:45:21.360
Why did they launch a Tesla into space?

00:45:21.360 --> 00:45:24.720
Every time I'm reminded that they did this, I'm like, but why?

00:45:24.720 --> 00:45:26.980
Yes, I know.

00:45:26.980 --> 00:45:27.300
But why?

00:45:27.300 --> 00:45:28.860
There's no reason.

00:45:28.860 --> 00:45:30.540
Because they could.

00:45:30.540 --> 00:45:31.240
Exactly.

00:45:31.240 --> 00:45:33.040
I think that was just because they could.

00:45:33.040 --> 00:45:34.720
They never stopped to think whether they should.

00:45:34.720 --> 00:45:37.420
Yeah.

00:45:37.420 --> 00:45:40.720
Well, it's the same company that is rocking Dogecoin.

00:45:40.940 --> 00:45:41.440
So, you know.

00:45:41.440 --> 00:45:43.400
All right.

00:45:43.400 --> 00:45:43.920
Next one.

00:45:43.920 --> 00:45:45.540
This one is called Flaws.

00:45:45.540 --> 00:45:46.980
Spaceship design.

00:45:46.980 --> 00:45:49.640
Here's a picture of a spaceship with a cutout so you can see inside.

00:45:49.640 --> 00:45:52.480
It says, when building a spaceship, the tiniest details are crucial.

00:45:52.480 --> 00:45:56.280
For example, this spaceship may be flawed because it has a giant hole in the side.

00:45:56.280 --> 00:46:04.360
Brian's like squeak laughing.

00:46:04.360 --> 00:46:05.620
That's the level he's reading.

00:46:05.620 --> 00:46:06.820
That's awesome.

00:46:07.580 --> 00:46:09.260
And yet he's still very still.

00:46:09.260 --> 00:46:18.140
I do love these like, they're like a hybrid between a really scientific diagram and then

00:46:18.140 --> 00:46:21.880
something you would put out to the public or use in a talk or something like that.

00:46:22.200 --> 00:46:29.540
And I remember the ELT, the extremely large telescope that we're building, which I know is a stupid name.

00:46:29.540 --> 00:46:37.020
They used emperor penguins for scale next to it in like the public image.

00:46:37.020 --> 00:46:40.700
I was like, first of all, who knows how big an emperor penguin is?

00:46:40.700 --> 00:46:42.240
Is that like a knee height?

00:46:42.240 --> 00:46:42.960
Is that a waist?

00:46:42.960 --> 00:46:43.940
What are we talking here?

00:46:44.380 --> 00:46:47.800
Apparently it was because on average an emperor penguin is a meter high.

00:46:47.800 --> 00:46:49.040
So they were like, oh, perfect.

00:46:49.040 --> 00:46:49.700
It's a meter.

00:46:49.700 --> 00:46:51.400
It's like a meter rule.

00:46:51.400 --> 00:46:53.220
And I was like, yeah, but nobody knows that.

00:46:53.220 --> 00:46:54.220
Like, just put a human.

00:46:54.220 --> 00:47:02.400
Dean links him out there and the live stream says, boy, the mileage on that Tesla would make it really hard to resell.

00:47:02.400 --> 00:47:02.920
I agree.

00:47:02.920 --> 00:47:03.960
I like that.

00:47:03.960 --> 00:47:04.820
All right.

00:47:04.820 --> 00:47:05.940
The next one is distracted.

00:47:05.940 --> 00:47:08.800
There's a cat in a space suit staring.

00:47:08.800 --> 00:47:10.980
It says, mesmerized by the red dot on the wall.

00:47:10.980 --> 00:47:12.100
Missed space launch.

00:47:12.260 --> 00:47:19.420
I'm now wondering if there's been any like catstronauts in previous.

00:47:19.420 --> 00:47:20.940
There's been dogstronauts.

00:47:20.940 --> 00:47:21.760
There have, yeah.

00:47:21.760 --> 00:47:23.140
And there's been monkeystronauts.

00:47:23.140 --> 00:47:26.160
But I don't know if we've ever sent a cat to space.

00:47:26.160 --> 00:47:28.960
I propose a new thing.

00:47:28.960 --> 00:47:32.280
Like maybe a cat could spend some time on the International Space Station.

00:47:32.280 --> 00:47:35.720
Just think of all the memes and all the funny videos.

00:47:35.720 --> 00:47:37.720
I don't think it would have a good time.

00:47:37.720 --> 00:47:41.720
Can you imagine like it constantly tries to like have its like hackles raised?

00:47:41.720 --> 00:47:44.600
But it can't because it's in zero G.

00:47:44.600 --> 00:47:47.680
It just goes in a small circle really slowly.

00:47:47.680 --> 00:47:50.280
Yeah.

00:47:50.280 --> 00:47:58.620
Maybe you know how they there's those videos online where they put like sellotape on the back of a cat and it constantly like crouches to go under something that's not there.

00:47:58.620 --> 00:48:01.440
Maybe it would do something like that.

00:48:02.000 --> 00:48:02.840
I don't know.

00:48:02.840 --> 00:48:04.020
I'm really intrigued now.

00:48:04.020 --> 00:48:05.000
A cat in zero G.

00:48:05.000 --> 00:48:05.620
What would it do?

00:48:05.620 --> 00:48:09.840
Babefield says Congo tried to send a rat.

00:48:09.840 --> 00:48:14.420
Once they've sent a rat, they're going to need a cat to solve the rat in space problem.

00:48:15.060 --> 00:48:18.300
And they said also Justin says space toilets are hard.

00:48:18.300 --> 00:48:20.180
Space litter boxes are nearly impossible.

00:48:20.180 --> 00:48:24.920
And Sam Worley is like, you really think they could get a cat to go into a space rocket?

00:48:24.920 --> 00:48:32.120
The minute they open the door of the space rocket, the cat will just dart onto the bed.

00:48:32.120 --> 00:48:33.120
But you can't get it.

00:48:34.120 --> 00:48:35.560
Like when you take it to the vet.

00:48:35.560 --> 00:48:37.560
All right.

00:48:37.560 --> 00:48:38.080
Let's round it out.

00:48:38.080 --> 00:48:38.740
The last one.

00:48:38.740 --> 00:48:39.720
Space Vegas.

00:48:39.720 --> 00:48:41.200
It's a black hole.

00:48:41.200 --> 00:48:44.220
What happens in a black hole stays in a black hole.

00:48:44.220 --> 00:48:45.180
Nice.

00:48:45.180 --> 00:48:46.100
Space Vegas.

00:48:46.100 --> 00:48:46.940
I like it.

00:48:46.940 --> 00:48:47.440
That's right.

00:48:47.440 --> 00:48:47.680
Yeah.

00:48:47.680 --> 00:48:50.960
I know we talked about this one before, but it made it in a second time.

00:48:50.960 --> 00:48:54.900
I guess instead of Sin City, would it be like Bend City?

00:48:54.900 --> 00:48:55.740
Yeah.

00:48:55.740 --> 00:48:57.700
Spin City.

00:48:57.700 --> 00:48:58.020
Yeah.

00:48:58.020 --> 00:48:58.820
Spin City.

00:48:58.820 --> 00:48:59.100
Yeah.

00:48:59.100 --> 00:48:59.400
Maybe.

00:48:59.400 --> 00:49:00.300
Something like that.

00:49:00.300 --> 00:49:02.480
Things rotate as they go into the black hole.

00:49:02.480 --> 00:49:03.480
They don't just go straight.

00:49:03.900 --> 00:49:04.160
Do they?

00:49:04.160 --> 00:49:04.480
Yeah.

00:49:04.480 --> 00:49:04.640
Yeah.

00:49:04.640 --> 00:49:08.540
It's actually really, really hard to grow a black hole and make stuff fall in, which everyone's

00:49:08.540 --> 00:49:10.660
always really surprised at because they think they're like Hoopers.

00:49:10.660 --> 00:49:14.200
But most stuff just orbits them like the Earth orbits the sun.

00:49:14.200 --> 00:49:16.560
It's just a kind of a heavier sun that we can't see.

00:49:16.560 --> 00:49:16.820
Right.

00:49:16.820 --> 00:49:18.540
So most stuff orbits.

00:49:18.540 --> 00:49:19.360
It doesn't fall in.

00:49:19.360 --> 00:49:21.660
And it takes a lot of effort to make stuff fall in.

00:49:21.660 --> 00:49:22.240
So.

00:49:22.240 --> 00:49:22.840
Nice.

00:49:22.840 --> 00:49:24.580
Once it's in, it stays there.

00:49:24.580 --> 00:49:25.340
Yeah.

00:49:25.340 --> 00:49:26.720
I'm getting it out.

00:49:26.720 --> 00:49:28.380
Fantastic.

00:49:28.380 --> 00:49:29.440
All right.

00:49:29.440 --> 00:49:31.400
Well, Dr. Becky, thanks for being here.

00:49:31.400 --> 00:49:32.340
It was really great to have you.

00:49:32.340 --> 00:49:33.600
And Brian, thanks.

00:49:33.680 --> 00:49:34.480
As always, good to be with you.

00:49:34.480 --> 00:49:35.220
Yeah, you bet.

00:49:35.220 --> 00:49:35.900
Bye, everyone.

