WEBVTT

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

00:00:04.640 --> 00:00:09.000
This is episode 309, recorded November 8th, Election Day.

00:00:09.000 --> 00:00:10.040
I am Brian Hawken.

00:00:10.040 --> 00:00:11.100
And I'm Michael Kennedy.

00:00:11.100 --> 00:00:13.220
Okay, now let's look at your thing.

00:00:13.220 --> 00:00:17.900
So first of all, redesign the Python Bytes website to make it responsive.

00:00:17.900 --> 00:00:21.620
So even the table gets super cool when you scroll up.

00:00:21.620 --> 00:00:22.560
But that's not what I want to talk about.

00:00:22.560 --> 00:00:23.780
That's not why I brought it up.

00:00:23.780 --> 00:00:25.440
I mean, I always get these emails.

00:00:25.440 --> 00:00:28.640
I know you haven't logged into our site in five years, but we've redesigned it.

00:00:28.640 --> 00:00:29.320
Let's tell you about it.

00:00:29.400 --> 00:00:30.060
No, I don't care.

00:00:30.060 --> 00:00:32.580
The reason I'm on this page, what is the date today?

00:00:32.580 --> 00:00:33.460
November what?

00:00:33.460 --> 00:00:35.400
It's the 8th.

00:00:35.400 --> 00:00:35.920
It's the 8th.

00:00:35.920 --> 00:00:38.560
Yesterday was Python Bytes' birthday.

00:00:38.560 --> 00:00:40.060
Six years old now.

00:00:40.060 --> 00:00:41.200
Oh my gosh.

00:00:41.200 --> 00:00:43.400
I can't believe it's been six years.

00:00:43.400 --> 00:00:45.020
Yeah, six years.

00:00:45.020 --> 00:00:47.700
The intro to the show in PIP9 is out.

00:00:47.700 --> 00:00:49.000
What are we on, like PIP30?

00:00:49.000 --> 00:00:49.880
I don't know.

00:00:49.880 --> 00:00:50.580
I haven't paid attention.

00:00:50.580 --> 00:00:51.740
Well, they went from...

00:00:51.740 --> 00:00:53.040
It's past 20, for sure.

00:00:53.040 --> 00:00:57.100
They went from Semver to Calver, so it's hard to count.

00:00:57.100 --> 00:00:58.220
It's still been a long time.

00:00:58.220 --> 00:00:58.580
Yeah.

00:00:58.800 --> 00:00:59.120
Absolutely.

00:00:59.120 --> 00:00:59.700
All right.

00:00:59.700 --> 00:01:01.980
Well, anyway, happy birthday to us.

00:01:01.980 --> 00:01:04.140
Let's jump in.

00:01:04.140 --> 00:01:04.620
Yay, we said we're at cake.

00:01:04.620 --> 00:01:05.400
I know.

00:01:05.400 --> 00:01:05.880
Cake.

00:01:05.880 --> 00:01:08.220
We have to use cake emojis somewhere today, I suppose.

00:01:08.220 --> 00:01:08.840
All right.

00:01:08.840 --> 00:01:16.180
So I want to tell you about something that really touches on the cybersecurity, pen testing,

00:01:16.180 --> 00:01:19.840
you know, red team, blue team sort of hacker side.

00:01:19.840 --> 00:01:27.160
And I don't know if people are aware, but Python is used a lot for the pen testing security side

00:01:27.160 --> 00:01:27.780
of the world.

00:01:27.780 --> 00:01:31.040
We've had some guests on the show here before that talked about their work, right?

00:01:31.040 --> 00:01:32.360
We're like, we don't understand this.

00:01:32.400 --> 00:01:34.120
You got to come share this with people yourself.

00:01:34.120 --> 00:01:35.340
So it's awesome.

00:01:35.340 --> 00:01:37.160
But we're not worthy.

00:01:37.160 --> 00:01:40.020
But there's a really interesting set of research.

00:01:40.020 --> 00:01:48.360
And this research came from Sofian Yadmani and Robin Thay and Olga Gadiataska.

00:01:48.360 --> 00:01:50.900
Sorry if I butchered everyone's name there.

00:01:50.900 --> 00:01:56.460
But it is the title of the official academic articles is out of Norway, I think.

00:01:56.460 --> 00:02:02.920
How Security Professionals Are Being Attacked, A Study of Malicious CVE Proof of Concept Exploits

00:02:02.920 --> 00:02:03.460
and GitHub.

00:02:03.460 --> 00:02:04.980
Have you run across this?

00:02:04.980 --> 00:02:05.560
No.

00:02:05.560 --> 00:02:06.300
Interesting.

00:02:06.300 --> 00:02:11.720
So it sounds like it doesn't totally apply as maybe a Python programmer thing.

00:02:11.720 --> 00:02:12.500
But here's the deal.

00:02:12.500 --> 00:02:18.700
In order to, when these CVEs, these vulnerabilities come out and get announced, a lot of times people

00:02:18.700 --> 00:02:20.000
are like, oh my gosh, there's some problem.

00:02:20.000 --> 00:02:21.780
But like, what does it manifest like?

00:02:21.780 --> 00:02:27.280
If I'm going to write some code to explore it, to understand it, to do all the various things,

00:02:27.280 --> 00:02:28.640
how do I get started, right?

00:02:28.640 --> 00:02:29.960
A lot of these are super complicated.

00:02:30.080 --> 00:02:34.020
And so what people will do is they'll post a simple proof of concept.

00:02:34.020 --> 00:02:39.260
Like, imagine you've got a sandboxed web browser and it shouldn't be able to access, like, for

00:02:39.260 --> 00:02:42.100
example, your processes and other parts of your file system.

00:02:42.100 --> 00:02:47.580
So if I went to a web page, I could make it pop up, I don't know, notepad with the text.

00:02:47.580 --> 00:02:48.620
No, no, no, no, no, no.

00:02:48.620 --> 00:02:49.220
We got you.

00:02:49.220 --> 00:02:50.360
You know, something silly like that.

00:02:50.360 --> 00:02:51.580
You're like, oh my God, it opened notepad.

00:02:51.580 --> 00:03:00.320
Well, these people did some research and they found 47,000 posted proofs of concept.

00:03:00.320 --> 00:03:04.100
And let's see, somewhere it's in the article.

00:03:04.100 --> 00:03:06.580
They talk about the actual language breakdown.

00:03:06.580 --> 00:03:07.320
Here you go.

00:03:07.320 --> 00:03:10.480
So when they said, what languages are these written in?

00:03:10.760 --> 00:03:15.380
HTML, 300, Ruby, 300, Go, 400, C++, 1,000.

00:03:15.380 --> 00:03:17.080
Python, 8,000.

00:03:17.080 --> 00:03:20.260
So that's a lot, right?

00:03:20.260 --> 00:03:25.400
So Python is, by a factor of eight, the most common language that they are able to determine

00:03:25.400 --> 00:03:27.300
the language of the exploit.

00:03:27.300 --> 00:03:29.940
So it's something that really kind of applies to us.

00:03:30.180 --> 00:03:32.360
Of the, how many were there?

00:03:32.360 --> 00:03:35.260
There was like 47,000 of them.

00:03:35.260 --> 00:03:41.500
And out of those, 4,800 or 10% were malicious, which sounds like, so what?

00:03:41.500 --> 00:03:43.300
It's a proof of concept of a malicious thing.

00:03:43.300 --> 00:03:45.220
No, it's like a meta malicious.

00:03:45.220 --> 00:03:46.040
So here's the deal.

00:03:46.040 --> 00:03:51.020
It says, we will show you how you can break into Active Directory on this new exploit.

00:03:51.020 --> 00:03:53.640
What it really does is installs ransomware on your computer.

00:03:53.640 --> 00:03:59.520
So if you as a person are like, I want to try this out and see if our system is vulnerable.

00:03:59.520 --> 00:04:04.120
Like instead of it doing what it said it would do, it just takes over your computer.

00:04:04.120 --> 00:04:06.300
And there's various ways in which it does it.

00:04:06.300 --> 00:04:08.540
It might contact like a known malicious.

00:04:08.540 --> 00:04:09.560
No, I know.

00:04:09.560 --> 00:04:12.060
There are some lulls in there to be sure.

00:04:12.060 --> 00:04:18.440
But the idea is there's some, it'll like take your, you know, your SSH keys and like

00:04:18.440 --> 00:04:21.600
upload them to some malicious, you know, pastebin type place.

00:04:21.600 --> 00:04:28.800
Or it will install crypto miners or it'll install, you know, ransomware encryption types of things.

00:04:28.860 --> 00:04:32.360
And a few of them say, you shouldn't have just run code off the internet.

00:04:32.360 --> 00:04:33.420
What are you doing?

00:04:33.420 --> 00:04:34.700
And it'll like rickroll you.

00:04:34.700 --> 00:04:38.000
But the majority of them take, take over for real.

00:04:38.000 --> 00:04:39.840
So there's, isn't that nuts?

00:04:39.840 --> 00:04:40.400
Yeah.

00:04:40.400 --> 00:04:40.880
Yeah.

00:04:40.880 --> 00:04:41.200
Yeah.

00:04:41.200 --> 00:04:41.640
So.

00:04:41.640 --> 00:04:42.880
Rick rolls are hilarious.

00:04:42.880 --> 00:04:43.120
I don't know.

00:04:43.120 --> 00:04:43.860
Just saying.

00:04:43.860 --> 00:04:44.300
They are.

00:04:44.300 --> 00:04:45.880
In the, they are.

00:04:45.940 --> 00:04:50.340
Even in the paper, there's actually some, some Python proof of code.

00:04:50.340 --> 00:04:52.400
So here let me show you down here.

00:04:52.400 --> 00:04:53.740
Like pull this up.

00:04:53.740 --> 00:05:00.020
I don't know how to link to a code listing inside of a PDF.

00:05:00.020 --> 00:05:01.600
So I'm just going to cruise.

00:05:01.600 --> 00:05:02.100
Here we go.

00:05:02.380 --> 00:05:03.900
So for example, over here.

00:05:03.900 --> 00:05:08.880
So here it says, this is an example of one of these proof of concepts that shows you how things might work.

00:05:08.880 --> 00:05:10.300
And what is it going to do?

00:05:10.300 --> 00:05:15.140
It's going to go and say, it's going to sleep for a second, get your host name, create a user thing, da, da, da, da, da.

00:05:15.140 --> 00:05:23.860
And then oddly, instead of saying the URL is a thing, the URL is a base 64 decoded, encoded bunch of garbage, right?

00:05:23.860 --> 00:05:24.800
What is this?

00:05:24.800 --> 00:05:29.360
This, this is the malicious website that they're going to send your information to.

00:05:29.360 --> 00:05:32.460
But when you look at it, it doesn't look like here's the virus.

00:05:32.460 --> 00:05:34.580
It's like, oh, is it just decoding this text?

00:05:34.580 --> 00:05:34.980
I see.

00:05:34.980 --> 00:05:36.280
No, no, no, no.

00:05:36.280 --> 00:05:37.780
This is the virus right there.

00:05:37.780 --> 00:05:40.960
And there's way more complicated examples, but you know, pretty nuts.

00:05:40.960 --> 00:05:41.380
Yeah.

00:05:41.380 --> 00:05:41.680
Anyway.

00:05:41.680 --> 00:05:43.080
Plus the formatting is gross.

00:05:43.080 --> 00:05:44.640
They should really run black on this.

00:05:44.640 --> 00:05:47.080
I know they totally, they totally should.

00:05:47.080 --> 00:05:48.560
You deserve what you get if you run that.

00:05:48.560 --> 00:05:50.760
No, this is a pretty interesting thing.

00:05:50.760 --> 00:05:58.260
And if you're in the security space, you know, if there's a 10% chance of just checking out one of these proof of concepts that you'll get owned, you know, just be aware.

00:05:58.260 --> 00:06:01.260
I mean, you consider the audience of the people creating these.

00:06:01.260 --> 00:06:04.680
So I guess, you know, a bunch of hackers are like, hey, I made this code.

00:06:04.680 --> 00:06:05.400
You should try it.

00:06:05.400 --> 00:06:09.400
No, but actually we should have like a search thing or something like that.

00:06:09.400 --> 00:06:12.840
Because that base 64 decode thing is a classic.

00:06:12.840 --> 00:06:14.660
Just don't touch it sort of thing.

00:06:14.660 --> 00:06:17.820
Especially if it's going into a URL or something.

00:06:17.820 --> 00:06:19.240
This is, it's not good.

00:06:19.240 --> 00:06:19.600
Yeah.

00:06:19.600 --> 00:06:22.620
They did come up with a way to automatically test for things.

00:06:22.620 --> 00:06:32.660
They said, look, if it's contacting a well-known malicious command and control type IP address, which there's a listing, a database of these types of things.

00:06:32.740 --> 00:06:34.240
It's like, you know what, that's a problem.

00:06:34.240 --> 00:06:36.780
And here's a proof of concept that should have nothing to do with the internet.

00:06:36.780 --> 00:06:38.280
And it's uploading data.

00:06:38.280 --> 00:06:39.500
That doesn't seem like it should.

00:06:39.500 --> 00:06:39.900
Right.

00:06:39.900 --> 00:06:42.440
Or it's downloading this data from somewhere else.

00:06:42.440 --> 00:06:43.260
So, yeah.

00:06:43.260 --> 00:06:43.780
Yeah.

00:06:43.780 --> 00:06:47.660
I like that Kim has got the, he's got the glass half full.

00:06:47.660 --> 00:06:51.660
A base 64 encoded URL is surely completely safe and nothing to worry about.

00:06:51.660 --> 00:06:54.640
And Marco is concerned about the SSH keys.

00:06:54.640 --> 00:06:55.720
Kind of got it.

00:06:55.720 --> 00:06:55.940
Yeah.

00:06:55.940 --> 00:06:59.100
And thanks for the happy birthday wishes out in the audience as well from everyone.

00:06:59.100 --> 00:06:59.500
Yeah.

00:06:59.500 --> 00:07:00.260
Yeah.

00:07:00.260 --> 00:07:00.820
Thanks, people.

00:07:00.820 --> 00:07:01.440
All right, Brian.

00:07:01.440 --> 00:07:02.040
That's all I got.

00:07:02.120 --> 00:07:03.240
But there's a really cool paper.

00:07:03.240 --> 00:07:04.640
There's some proof of concepts in there.

00:07:04.640 --> 00:07:05.720
There's a couple of write-ups on it.

00:07:05.720 --> 00:07:06.480
It's worth checking out.

00:07:06.480 --> 00:07:06.860
Okay.

00:07:06.860 --> 00:07:07.280
Cool.

00:07:07.280 --> 00:07:11.960
Well, I actually want to talk about something completely sort of different.

00:07:11.960 --> 00:07:17.100
So, if you've, let's just, I'll go to us for a second.

00:07:17.100 --> 00:07:22.500
If normally I get a lot of my news from people on Twitter.

00:07:22.500 --> 00:07:27.800
But Twitter kind of is in the news lately because things are kind of going weird with Twitter.

00:07:27.800 --> 00:07:29.520
So, what are people doing?

00:07:29.840 --> 00:07:34.860
Well, a lot of people, a lot of people actually are checking out Mastodon.

00:07:34.860 --> 00:07:45.160
So, I'm calling this the great Mastodon experiment because tons of us, Python people, and actually tons of tech people and tons of other people also are trying out this Mastodon thing.

00:07:45.520 --> 00:07:51.440
And in the back of our mind, it was, well, like, yeah, Mastodon seems kind of interesting.

00:07:51.440 --> 00:07:55.500
It's like a sort of maybe alternative to Twitter, but not many people there.

00:07:55.500 --> 00:07:57.120
Now, there's a lot of people there.

00:07:57.120 --> 00:07:59.260
Like, tons of people.

00:07:59.740 --> 00:08:02.540
I don't know what the numbers are compared to Twitter, of course.

00:08:02.540 --> 00:08:05.360
But anyway, so, I am part of this.

00:08:05.360 --> 00:08:07.160
I'm part of the people that have switched.

00:08:07.160 --> 00:08:13.680
But if you, like, we're showing the Mastodon, like, join Mastodon.org site.

00:08:13.680 --> 00:08:16.620
And the first thing you want to do, okay, I want to try this.

00:08:16.620 --> 00:08:18.440
So, I have to, okay, I have to create an account.

00:08:18.740 --> 00:08:22.320
So, the first thing you're hit is, well, which server do you want to use?

00:08:22.320 --> 00:08:24.820
I was stuck here for a while, and I'm like, I don't know what to do.

00:08:24.820 --> 00:08:28.200
So, I went ahead and used Twitter, and I asked.

00:08:28.200 --> 00:08:29.240
And Will was there.

00:08:29.240 --> 00:08:34.020
From, Will said he's on Mastodon.social, Will McGoogan.

00:08:34.020 --> 00:08:37.680
And I just asked, I'm still stuck on the Choosers server.

00:08:37.680 --> 00:08:38.700
What are people using?

00:08:38.700 --> 00:08:45.880
And I got one reply right away saying, well, Mastodon.org has Anthony Shaw and a bunch of other people.

00:08:45.880 --> 00:08:47.280
And I'm like, good enough for me.

00:08:47.280 --> 00:08:48.720
So, I went ahead and picked it.

00:08:48.960 --> 00:08:52.300
So, I am now on Fosstodon also.

00:08:52.300 --> 00:08:54.780
And then I'm just trying stuff.

00:08:54.780 --> 00:09:00.720
I'm like, just trying it out, playing it, playing with it, following some people, commenting, whatever.

00:09:00.720 --> 00:09:03.120
And so far, I kind of like it.

00:09:03.120 --> 00:09:04.120
It's nice.

00:09:04.120 --> 00:09:09.120
Now, now that I've kind of like, I got the basics down, now I'm ready to learn some more.

00:09:09.120 --> 00:09:13.780
And so, I put together, went through and found some tutorials.

00:09:13.780 --> 00:09:17.900
So, if anybody else wants to try this also, I found some kind of fun tutorials.

00:09:18.260 --> 00:09:21.940
There's one that's called the Increasingly Less Brief Guide to Mastodon.

00:09:21.940 --> 00:09:22.760
It's big.

00:09:22.760 --> 00:09:25.800
But it's so, that's nice though.

00:09:25.800 --> 00:09:30.020
It starts out with like short answers.

00:09:30.020 --> 00:09:31.780
Like, you know, what is it?

00:09:31.780 --> 00:09:32.920
How is it like Twitter?

00:09:32.920 --> 00:09:34.000
How is it not like Twitter?

00:09:34.000 --> 00:09:34.680
Stuff like that.

00:09:35.480 --> 00:09:40.620
And one of the things, comparisons that confused me a bit was, how is it like email?

00:09:40.620 --> 00:09:44.560
But I didn't get the analogy at first, but I kind of do now.

00:09:44.560 --> 00:09:49.260
So, the idea is you have to pick a server, but you can still follow people on other servers.

00:09:49.260 --> 00:09:53.300
Just like if you have a Gmail account, you can still email people that are not in Gmail.

00:09:53.300 --> 00:09:53.860
Works.

00:09:54.600 --> 00:09:55.520
So, there's that.

00:09:55.520 --> 00:09:57.860
There's everything I know about Mastodon.

00:09:57.860 --> 00:10:00.560
Sorry, but it reminds me a little bit of like BBSs.

00:10:00.560 --> 00:10:04.400
Remember, like you go to BBS and write email and then they would like sync at night.

00:10:04.400 --> 00:10:06.340
And then you might get email from some other BBS.

00:10:06.900 --> 00:10:09.000
Well, yeah, that's something I also noticed.

00:10:09.000 --> 00:10:13.920
At first, I was a little annoyed because like it's not as zippy sometimes.

00:10:13.920 --> 00:10:15.780
Like, it's growing a lot.

00:10:15.780 --> 00:10:18.320
So, a lot of these servers are like adding capacity.

00:10:18.320 --> 00:10:24.520
And so, occasionally, like the other day, the Fosstodon server was down for a couple hours.

00:10:24.520 --> 00:10:26.020
And I'm like, oh my God.

00:10:26.020 --> 00:10:30.800
Actually, I'll be fine if I don't use a social media app for two hours.

00:10:30.800 --> 00:10:31.620
Just chill.

00:10:32.200 --> 00:10:36.420
And so, yeah, it's interesting.

00:10:36.420 --> 00:10:38.980
There's a lot of stuff I've learned so far.

00:10:38.980 --> 00:10:41.560
Like, it's not filtering what I'm seeing.

00:10:41.560 --> 00:10:44.420
I actually just see everything that people write that I'm following.

00:10:44.420 --> 00:10:45.860
Actually, isn't that what I wanted?

00:10:45.860 --> 00:10:48.160
So, I'm pretty okay with it.

00:10:48.160 --> 00:10:50.500
So, I put together, I'll go through a couple of these.

00:10:50.500 --> 00:10:51.680
There's everything I know.

00:10:51.680 --> 00:10:54.000
It's targeted towards data science people.

00:10:54.000 --> 00:10:55.620
But there's a lot of great info there.

00:10:55.620 --> 00:11:00.560
And then Simon Willison, he's trying this out too, said,

00:11:01.960 --> 00:11:04.380
Mastodon is just blogs.

00:11:04.380 --> 00:11:07.460
So, I was confused by that.

00:11:07.460 --> 00:11:14.360
But he describes how it's like it uses this active pub feature and gets into a little details.

00:11:14.360 --> 00:11:17.420
But I think he knows what he's talking about because he wrote his own.

00:11:17.420 --> 00:11:18.680
He's on his own server.

00:11:18.680 --> 00:11:21.520
So, you can have your own Mastodon server.

00:11:21.960 --> 00:11:26.940
But some of the people trying it out at the same time, we've got some big names.

00:11:26.940 --> 00:11:28.780
Lucas Lange, he's trying it out.

00:11:28.780 --> 00:11:32.080
He linked to a couple of things that he's learning about.

00:11:32.080 --> 00:11:35.160
You know, it's really supposed to repost in multiple places.

00:11:35.160 --> 00:11:36.020
Things like that.

00:11:36.020 --> 00:11:37.920
I've got Brett Cannon figuring it out.

00:11:37.920 --> 00:11:41.560
So, a lot of us over here having a little bit of fun with Mastodon.

00:11:42.740 --> 00:11:43.500
That's fantastic.

00:11:43.500 --> 00:11:43.980
Yeah.

00:11:43.980 --> 00:11:50.460
So, fosstodon.org is the free and open source software Mastodon one, right?

00:11:50.460 --> 00:11:50.720
Yeah.

00:11:50.720 --> 00:11:54.840
But a lot of people are on, so like a lot of people are on Mastodon.social.

00:11:54.840 --> 00:11:56.860
Here's a cool article.

00:11:56.860 --> 00:11:57.820
Oh, yeah.

00:11:59.280 --> 00:12:03.020
Clients-wise, there's a whole bunch of iPhone clients, too.

00:12:03.020 --> 00:12:04.820
But you can use it on the web or anything.

00:12:04.820 --> 00:12:11.180
Lucas is on, or Lokesh, I'm sorry, is on Mastodon.social also.

00:12:11.180 --> 00:12:13.100
Brett's on Fosstodon.

00:12:13.100 --> 00:12:14.740
But there's a whole bunch of others as well.

00:12:14.740 --> 00:12:15.480
Yeah.

00:12:15.480 --> 00:12:17.940
You have to apply to get in there.

00:12:17.940 --> 00:12:20.420
So, I applied, but I have not been let in yet.

00:12:20.420 --> 00:12:23.140
So, hopefully, they will find me worthy and I can join you.

00:12:23.140 --> 00:12:24.380
Okay.

00:12:24.380 --> 00:12:25.920
Let's see.

00:12:25.920 --> 00:12:27.260
Well, I know some of them.

00:12:27.400 --> 00:12:31.640
So, some of them are, since these are private things, there's got like people running their

00:12:31.640 --> 00:12:36.620
own servers, there's funding models on each of them.

00:12:36.620 --> 00:12:40.980
And like Fosstodon, for instance, said they want to make sure that they always have six months

00:12:40.980 --> 00:12:42.900
of running time or something like that.

00:12:42.900 --> 00:12:45.360
And that's cool enough for me.

00:12:45.360 --> 00:12:45.980
So, anyway.

00:12:45.980 --> 00:12:46.380
Yeah.

00:12:46.380 --> 00:12:51.940
I'd be happy to pay a dollar or two a month just to have no ads and have a well-curated,

00:12:51.940 --> 00:12:54.020
somewhat not terrible space.

00:12:54.020 --> 00:12:55.480
You know, yeah.

00:12:55.540 --> 00:12:59.480
I wasn't really getting to get into the politics of it, but the whole $8 a month thing.

00:12:59.480 --> 00:13:04.420
Actually, if I could have got rid of ads and actually got some other cool features, I probably

00:13:04.420 --> 00:13:05.240
would have paid it anyway.

00:13:05.240 --> 00:13:07.040
I just don't want to pay it now.

00:13:07.040 --> 00:13:08.340
I'd be like two months ago.

00:13:08.340 --> 00:13:11.100
I probably wouldn't have been up for it, but I don't want to do that right now.

00:13:11.100 --> 00:13:11.640
Yeah.

00:13:11.640 --> 00:13:12.100
I don't know.

00:13:12.100 --> 00:13:14.360
I have no intention of leaving Twitter at the moment.

00:13:14.360 --> 00:13:18.440
There's still like a really valuable community for the podcast listeners and stuff.

00:13:18.440 --> 00:13:23.060
But I do think it's also super interesting to reach out to these other spaces.

00:13:23.060 --> 00:13:24.260
Mastodon is one.

00:13:24.260 --> 00:13:27.700
It's kind of interesting in that there's a bunch of little islands.

00:13:27.700 --> 00:13:32.800
And the thing that's cool about Twitter is you go to the continent and then you find your

00:13:32.800 --> 00:13:33.720
space within that.

00:13:33.720 --> 00:13:34.860
It's like, here you got it.

00:13:34.860 --> 00:13:37.020
What is the place I go to?

00:13:37.020 --> 00:13:38.940
I'm telling you, this is like BBSs.

00:13:38.940 --> 00:13:43.760
What BBS has the place where there's kind of cool conversations and good games I can play?

00:13:43.940 --> 00:13:45.080
You dial that one up.

00:13:45.080 --> 00:13:49.940
Or we could just go back to like, you know, Planet Python and RSS feeds for everybody.

00:13:49.940 --> 00:13:50.780
Yeah.

00:13:50.780 --> 00:13:51.960
Nothing wrong with RSS.

00:13:51.960 --> 00:13:52.580
Cool.

00:13:52.580 --> 00:13:53.880
Well, thanks for bringing that up.

00:13:53.880 --> 00:13:56.020
I have some more thoughts on this as well later.

00:13:56.020 --> 00:13:59.220
But for now, for now, maybe we could talk about our sponsor.

00:13:59.220 --> 00:13:59.740
What do you think?

00:13:59.740 --> 00:14:03.720
We should talk about our sponsor because it's cool that we have one.

00:14:03.720 --> 00:14:06.020
But also, it's Microsoft.

00:14:06.020 --> 00:14:10.760
So this episode of Python Bytes is brought to you by Microsoft for Startups.

00:14:11.580 --> 00:14:14.040
But starting a business is hard.

00:14:14.040 --> 00:14:18.800
Most startups go out of business within the first year, which is totally lame.

00:14:18.800 --> 00:14:24.080
So Microsoft for Startups set out to understand what startups need to be successful and created

00:14:24.080 --> 00:14:27.180
a digital platform to help you overcome those challenges.

00:14:27.180 --> 00:14:30.220
And they came up with Microsoft for Startups Founders Hub.

00:14:30.220 --> 00:14:35.880
The Founders Hub provides all founders at any stage with free resources to help solve startup

00:14:35.880 --> 00:14:36.340
challenges.

00:14:36.640 --> 00:14:41.600
The platform provides technology benefits, access to expert guidance and skilled resources,

00:14:41.600 --> 00:14:44.440
mentorship and network connections, and so much more.

00:14:44.440 --> 00:14:49.400
Unlike others in the industry, Microsoft for Startup Founders Hub doesn't require startups to

00:14:49.400 --> 00:14:52.420
be investor backed or third party validated to participate.

00:14:52.420 --> 00:14:54.980
Founders Hub is truly open to all.

00:14:54.980 --> 00:14:59.360
You can speed up development with free access to GitHub and Microsoft Cloud.

00:14:59.360 --> 00:15:05.980
And there's other partners that they've partnered with, such as OpenAI.

00:15:05.980 --> 00:15:07.360
You can get discounts through there.

00:15:07.360 --> 00:15:13.280
So you'll have access to those extra resources, but you also get access to their mentorship network,

00:15:13.280 --> 00:15:16.900
which includes hundreds of mentors across a range of disciplines.

00:15:16.900 --> 00:15:20.300
Need advice on marketing, fundraising, idea validation maybe.

00:15:20.640 --> 00:15:24.400
Tons of topics that you might need help on, including management and coaching, and you'll

00:15:24.400 --> 00:15:30.000
be able to book a one-to-one meeting, one-on-one meeting with mentors, many of whom were former

00:15:30.000 --> 00:15:30.840
founders themselves.

00:15:30.840 --> 00:15:33.140
It's no longer about who you know.

00:15:33.140 --> 00:15:37.520
Get critical support you need from Microsoft for Startups Founders Hub.

00:15:37.520 --> 00:15:39.580
Make your idea a reality today.

00:15:39.580 --> 00:15:44.060
To join the program, visit pythonbytes.fm Founders Hub 2022.

00:15:44.060 --> 00:15:45.740
And that link is in the show notes.

00:15:46.020 --> 00:15:50.120
And I know you can find this on your own by Googling, but using that link in the show

00:15:50.120 --> 00:15:53.440
notes will help them know that you found it through this podcast.

00:15:53.440 --> 00:15:53.980
Thanks.

00:15:53.980 --> 00:15:54.900
Yeah, absolutely.

00:15:54.900 --> 00:15:55.800
Thank you, Microsoft.

00:15:55.800 --> 00:15:56.780
Oh, you're on mute.

00:15:56.780 --> 00:15:57.660
I am.

00:15:57.660 --> 00:15:58.800
Thank you, Microsoft.

00:15:58.800 --> 00:16:01.120
And yeah, let's move on.

00:16:01.120 --> 00:16:04.140
A couple of these things are about continued journeys.

00:16:04.140 --> 00:16:06.780
Sometimes we're on a journey, you know?

00:16:06.780 --> 00:16:07.180
Yeah.

00:16:07.380 --> 00:16:14.140
And, switch it over, Thiri, over on Twitter, not Mastodon yet, sent us a message and said,

00:16:14.140 --> 00:16:15.800
hey, nice episode.

00:16:15.800 --> 00:16:23.240
You know, remember I was on this, I talked about like Panix, SSH, a thing called Prompt,

00:16:23.240 --> 00:16:27.180
and some of the other ways I was trying to like, well, how do I just take my iPad and no keyboards

00:16:27.180 --> 00:16:32.420
and no extra stuff and just have a little DevOps-y coding environment, right?

00:16:32.420 --> 00:16:35.460
So, Thiri says, you should check out Gitpod.

00:16:35.460 --> 00:16:36.340
Have you heard of Gitpod?

00:16:36.700 --> 00:16:37.100
No.

00:16:37.100 --> 00:16:37.720
No.

00:16:37.720 --> 00:16:40.700
Pod as in pods from Kubernetes.

00:16:40.700 --> 00:16:46.880
But here, he says, you know, basically I'll just pull up and show you what it is.

00:16:46.880 --> 00:16:51.140
So, if you go over here, the idea is, it says, always ready to code.

00:16:51.140 --> 00:16:52.280
Like, that sounds cool, right?

00:16:52.280 --> 00:16:53.920
And I love, look at this little graphic, right?

00:16:53.920 --> 00:16:56.680
Okay, you're like, your chair is an enter button.

00:16:56.680 --> 00:16:57.600
I love it.

00:16:57.600 --> 00:16:59.460
Oh, I didn't notice that right at first.

00:16:59.460 --> 00:16:59.820
That's cool.

00:16:59.820 --> 00:17:00.340
Yeah.

00:17:00.340 --> 00:17:04.340
And by the way, they just, this happened, I think, since this got sent over, they just

00:17:04.340 --> 00:17:06.720
scraped a $25 million Siris A round.

00:17:06.720 --> 00:17:09.340
So, there's a good, you know, there's a lot of effort behind this, right?

00:17:09.340 --> 00:17:16.060
Gitpod is, I believe there's an open source version and then like a hosted version as well.

00:17:16.060 --> 00:17:24.640
So, the idea is, what you can do is, I can go and it'll create a Kubernetes Docker type

00:17:24.640 --> 00:17:26.260
image that I can configure.

00:17:26.260 --> 00:17:30.120
So, basically a Linux machine that's isolated for me, which is nice.

00:17:30.580 --> 00:17:33.880
And then, I can log into it one of two ways.

00:17:33.880 --> 00:17:35.240
I can log into it in the browser.

00:17:35.240 --> 00:17:40.680
And just like if you go to GitHub.dev, which is what I suggested before, in the browser, this

00:17:40.680 --> 00:17:45.860
connects to your own environment, which the thing that's cool about this is it's that environment,

00:17:45.860 --> 00:17:48.300
you have root access to do whatever you want to it.

00:17:48.300 --> 00:17:52.100
So, if you got to pip install something that's weird or whatever, like, you're not like, oh,

00:17:52.100 --> 00:17:53.560
well, sorry, you can't install this dependency.

00:17:53.560 --> 00:17:54.400
Too bad, right?

00:17:54.400 --> 00:17:55.160
It's just, it's yours.

00:17:55.160 --> 00:17:56.120
You do whatever you want with it.

00:17:56.120 --> 00:17:57.020
And that's in the browser.

00:17:57.020 --> 00:18:01.500
So, on your iPad browser, for example, or if you happen to be on the desktop and what

00:18:01.500 --> 00:18:03.920
you want is just like a, I'm on an ARM machine.

00:18:03.920 --> 00:18:09.300
I want an x86 machine or I want a Linux machine that's like production and that is not just my

00:18:09.300 --> 00:18:10.620
Mac or my Windows machine.

00:18:10.620 --> 00:18:14.640
You can actually connect to it with a full-on VS Code or even PyCharm.

00:18:14.640 --> 00:18:20.400
You can plug directly into it and remotely edit locally on PyCharm locally, but then like

00:18:20.400 --> 00:18:23.240
debug and run your environment there.

00:18:23.240 --> 00:18:23.760
Wow.

00:18:23.760 --> 00:18:24.160
What is that?

00:18:24.160 --> 00:18:25.160
That's really cool.

00:18:25.160 --> 00:18:25.480
Yeah.

00:18:25.560 --> 00:18:32.580
It also works for IntelliJ, the Go, basically all the VS Code and all the JetBrains IDEs,

00:18:32.580 --> 00:18:33.840
which is like a huge long list.

00:18:33.840 --> 00:18:35.100
And Vim, and also Vim.

00:18:35.100 --> 00:18:35.740
Wow.

00:18:35.740 --> 00:18:37.700
So, anyway, this is really cool.

00:18:37.700 --> 00:18:42.720
And there's one of the recommendations or like the reasons for it.

00:18:42.720 --> 00:18:44.780
It says, look, you can do multi-track development.

00:18:44.880 --> 00:18:51.420
So if I'm working on a feature branch and I'm working on main dev and I'm trying to do a bug

00:18:51.420 --> 00:18:56.900
fix instead of, you know, staging or stashing and then checking out and then try that, then

00:18:56.900 --> 00:19:00.840
unstat, you know, check over to the other thing, unstat, like, you know, juggling one working

00:19:00.840 --> 00:19:01.160
environment.

00:19:01.160 --> 00:19:05.460
You can have multiples of these Git pods, one for each part of your project, even.

00:19:05.660 --> 00:19:09.960
Bring it closer to your Linux and Docker runtime.

00:19:09.960 --> 00:19:14.660
You can even do like paired programming on it, which is kind of interesting.

00:19:14.660 --> 00:19:19.300
And here they got an example of it running on an iPad.

00:19:19.740 --> 00:19:23.280
And apparently you can install like a bunch of different extensions and stuff and like,

00:19:23.280 --> 00:19:24.660
you know, configure up your thing.

00:19:24.660 --> 00:19:29.100
So there's an open source version, which is free from big tech influence.

00:19:29.100 --> 00:19:34.960
But there's also, you can get their version on the cloud or you can self-host it or whatever.

00:19:34.960 --> 00:19:35.460
Right.

00:19:35.460 --> 00:19:38.480
And so there is a paid component to this.

00:19:38.480 --> 00:19:40.760
Like this, you know, they got $25 million, right?

00:19:40.760 --> 00:19:42.900
It's not just like to set on fire, although maybe.

00:19:42.900 --> 00:19:47.200
There's a free version, which gives you 50 hours of coding a month.

00:19:47.200 --> 00:19:47.800
That's pretty good.

00:19:47.880 --> 00:19:53.220
Or you can pay $9 a month for 100 hours or there's like other higher tiers, 25, 40 bucks

00:19:53.220 --> 00:19:53.600
and stuff.

00:19:53.600 --> 00:19:57.440
But it's open source and there's some free versions and reasonably priced versions.

00:19:57.440 --> 00:19:58.360
And yeah, I don't know.

00:19:58.360 --> 00:19:59.440
I think it's pretty cool.

00:19:59.440 --> 00:20:01.180
So thanks, Theory, for sending it over.

00:20:01.180 --> 00:20:04.100
And, you know, it's definitely an option out there.

00:20:04.100 --> 00:20:04.920
Yeah.

00:20:04.920 --> 00:20:08.260
And the self-hosted also looks like an option as well.

00:20:08.260 --> 00:20:08.980
Yeah, exactly.

00:20:08.980 --> 00:20:09.860
So you can self-host.

00:20:09.860 --> 00:20:14.200
I think you basically probably set up a Kubernetes cluster and like it connects and goes against

00:20:14.200 --> 00:20:14.440
that.

00:20:14.440 --> 00:20:15.040
Oh, yeah.

00:20:15.040 --> 00:20:17.220
Just throw up a Kubernetes cluster.

00:20:17.220 --> 00:20:17.720
Yeah.

00:20:17.720 --> 00:20:18.120
Exactly.

00:20:18.120 --> 00:20:19.520
All right.

00:20:19.520 --> 00:20:21.500
Well, I haven't.

00:20:21.500 --> 00:20:25.180
I did play around with it and it worked pretty well, but I haven't done anything serious.

00:20:25.180 --> 00:20:26.660
It still looks cool, though.

00:20:26.660 --> 00:20:27.200
I like it.

00:20:27.200 --> 00:20:27.580
Yeah.

00:20:27.580 --> 00:20:28.280
Yeah, absolutely.

00:20:28.280 --> 00:20:28.840
All right.

00:20:28.840 --> 00:20:30.000
What's your last one here?

00:20:30.000 --> 00:20:31.940
Oh, last one is a short one.

00:20:32.060 --> 00:20:35.080
I just wanted to talk about terminal colors.

00:20:35.080 --> 00:20:41.040
So I've got a little pytest plugin called pytest-check.

00:20:41.300 --> 00:20:43.440
And it's got some terminal output.

00:20:43.440 --> 00:20:44.440
but it does talk about failures.

00:20:44.440 --> 00:20:45.360
But it does talk about failures.

00:20:45.360 --> 00:20:52.540
And somebody completely reasonably submitted an issue and said, it'd be cool if these were

00:20:52.540 --> 00:20:55.060
red so you could see them easier.

00:20:55.060 --> 00:20:57.000
And I'm like, yeah, that would be cool.

00:20:57.000 --> 00:20:58.860
So what should I do?

00:20:59.200 --> 00:21:04.740
Well, I could, you know, Will, I want to let you know that the first thing I thought about

00:21:04.740 --> 00:21:05.880
was I could throw a rich at it.

00:21:05.880 --> 00:21:09.740
So I could use rich to put red in the terminal.

00:21:09.740 --> 00:21:12.320
And but rich is now rich is awesome.

00:21:12.520 --> 00:21:18.900
I love rich, but maybe it's a bit of a big hammer for for just adding one color.

00:21:18.900 --> 00:21:19.820
I just had a red.

00:21:19.820 --> 00:21:26.220
So I went looking around a little bit and there's term color and there's colorama.

00:21:26.220 --> 00:21:27.940
There's other things I ended up.

00:21:27.940 --> 00:21:30.880
I'm looking at colorama right now is what I'm playing with.

00:21:30.880 --> 00:21:34.660
So colorama is used by a lot of applications.

00:21:34.660 --> 00:21:42.120
And one of the reasons why is because it helps with the cross being able to use colors on both

00:21:42.120 --> 00:21:44.480
both windows and everything else.

00:21:44.480 --> 00:21:45.900
Windows is a little special.

00:21:45.900 --> 00:21:48.080
It doesn't act like the other stuff.

00:21:48.080 --> 00:21:49.980
So you have to do things a bit special.

00:21:49.980 --> 00:21:55.780
And I was kind of glad I looked at this because one of the things that came up recently in one

00:21:55.780 --> 00:22:02.100
of the new versions is colorama has a thing called just fix windows console.

00:22:02.100 --> 00:22:05.700
It's just a from colorama import, just fix windows console.

00:22:05.700 --> 00:22:06.680
And you call that.

00:22:06.680 --> 00:22:11.220
And after you call that, then your window, if you're running your application on windows,

00:22:11.220 --> 00:22:16.280
it acts just like a normal TTY terminal on Linux or Mac or something.

00:22:16.280 --> 00:22:16.800
Oh, wow.

00:22:16.800 --> 00:22:19.260
At least in terms of a lot of stuff.

00:22:19.260 --> 00:22:25.420
The other thing that just fixed windows console, I think I got this right, is it's you used to

00:22:25.420 --> 00:22:26.420
have to call a nit.

00:22:26.660 --> 00:22:28.080
And now you call this other thing.

00:22:28.080 --> 00:22:30.660
But you can you can call that on Mac also.

00:22:30.660 --> 00:22:31.920
And it just doesn't hurt anything.

00:22:31.920 --> 00:22:32.340
It's fine.

00:22:32.340 --> 00:22:34.060
So you can.

00:22:34.060 --> 00:22:38.380
And now after you've done that in it, and there's a whole bunch of text here that I just skimmed

00:22:38.380 --> 00:22:39.180
really briefly.

00:22:39.180 --> 00:22:40.560
I just wanted it to work.

00:22:40.560 --> 00:22:41.800
Just call that.

00:22:41.800 --> 00:22:46.960
And then you can use these these color codes like for four dot red, for instance.

00:22:46.960 --> 00:22:47.760
That's what I wanted.

00:22:47.760 --> 00:22:48.760
Some red text.

00:22:48.760 --> 00:22:49.800
And there I've got it.

00:22:49.800 --> 00:22:53.940
So after you change change stuff around, you also have to reset it.

00:22:53.940 --> 00:22:55.100
So there's a reset code.

00:22:55.100 --> 00:22:56.540
Now you can do the same thing.

00:22:56.540 --> 00:23:05.220
And it has it on there, there read me is you can use the hex or whatever color code escape

00:23:05.220 --> 00:23:05.720
sequences.

00:23:05.720 --> 00:23:09.560
So backslash zero three three bracket.

00:23:09.560 --> 00:23:11.580
31 M is red.

00:23:11.580 --> 00:23:15.640
But I don't I think I'll go with the named ones.

00:23:15.640 --> 00:23:17.340
How about some constants instead?

00:23:17.340 --> 00:23:17.740
Yeah.

00:23:17.740 --> 00:23:19.100
Yeah.

00:23:19.100 --> 00:23:20.940
So this is pretty cool.

00:23:20.940 --> 00:23:26.880
And I think I kind of think this is where I'm going to go with with adding red to my

00:23:26.880 --> 00:23:27.360
test check.

00:23:27.360 --> 00:23:32.940
So if you want just a little bit of color and nothing that you need rich for, colorama might

00:23:32.940 --> 00:23:33.620
be what you want.

00:23:33.620 --> 00:23:34.820
So nice.

00:23:34.820 --> 00:23:38.860
Colorama is definitely a go to for me when I just want like this needs to be red or green.

00:23:38.860 --> 00:23:40.280
It just needs to stand out somehow.

00:23:40.280 --> 00:23:41.220
For sure.

00:23:41.220 --> 00:23:41.800
It's very cool.

00:23:41.800 --> 00:23:42.200
Yeah.

00:23:42.200 --> 00:23:42.520
Cool.

00:23:42.520 --> 00:23:43.020
Awesome.

00:23:43.020 --> 00:23:43.580
All right.

00:23:43.580 --> 00:23:44.900
Well, that brings us to our extras, huh?

00:23:44.900 --> 00:23:45.600
Yeah.

00:23:45.600 --> 00:23:46.580
Do you get any extras?

00:23:46.580 --> 00:23:47.900
You know, I do.

00:23:47.900 --> 00:23:48.740
Let's see.

00:23:49.980 --> 00:23:52.340
Some of these are quick, some slightly more.

00:23:52.340 --> 00:23:59.720
So Roman Wright, who often we find here in the live streams as well, maker of Beanie.

00:23:59.720 --> 00:24:00.600
Love Beanie.

00:24:00.600 --> 00:24:05.300
Beanie is powering Pythonbytes.fm, by the way, for various other things.

00:24:05.300 --> 00:24:06.500
So super awesome.

00:24:06.500 --> 00:24:08.120
He'd been thinking.

00:24:08.120 --> 00:24:12.600
And so Beanie is Pydantic plus MongoDB async.

00:24:12.600 --> 00:24:15.580
And so there's plenty of reasons why we might want a synchronous API.

00:24:15.580 --> 00:24:19.120
I'm just in the middle of some script and I just need to talk to the database real quick.

00:24:19.120 --> 00:24:22.540
Like, do I really need to upgrade this whole thing to handle async code?

00:24:22.540 --> 00:24:24.000
Shouldn't there just be a way to call it?

00:24:24.000 --> 00:24:24.500
There should.

00:24:24.500 --> 00:24:31.860
And so he created a derivative or mirrored version that is like Beanie, but has a synchronous

00:24:31.860 --> 00:24:33.580
set of APIs instead of asynchronous.

00:24:33.580 --> 00:24:37.640
API is called Bunnet, which I don't know the word Bunnet, but I think it has something

00:24:37.640 --> 00:24:41.220
to do with like something to do with a bean.

00:24:41.220 --> 00:24:41.720
I'm not sure.

00:24:42.340 --> 00:24:46.880
But anyway, Bunnet, it's similar to Beanie, except for you just don't await things, right?

00:24:46.880 --> 00:24:50.900
You just use the pipe Mongo base instead of the motor client under the hood.

00:24:50.900 --> 00:24:55.820
And then you just, you know, do thing insert or thing dot find one or whatever.

00:24:55.820 --> 00:25:00.420
So people can check that out if they're into Beanie, but they don't want the async version.

00:25:00.420 --> 00:25:01.040
Hmm.

00:25:01.720 --> 00:25:01.880
Yeah.

00:25:01.880 --> 00:25:03.620
So I just looked it up.

00:25:03.620 --> 00:25:08.160
A Bunnet is a, it's, it's a type of hat.

00:25:08.160 --> 00:25:09.380
It's like a Scottish hat.

00:25:09.380 --> 00:25:09.880
Okay.

00:25:09.880 --> 00:25:13.200
Well, that would explain the icon here.

00:25:13.200 --> 00:25:15.200
Maybe it looks like a bean, but it's actually a hat.

00:25:15.200 --> 00:25:16.600
Oh, Roman's here.

00:25:16.600 --> 00:25:17.040
Hey, Roman.

00:25:17.040 --> 00:25:18.320
So this is a Scottish word.

00:25:18.320 --> 00:25:18.840
Fabulous.

00:25:18.840 --> 00:25:22.440
And Will McGugan is a Bunnet is a hat worn by old Scottish men.

00:25:22.440 --> 00:25:22.760
Lovely.

00:25:22.760 --> 00:25:24.080
Cool.

00:25:24.860 --> 00:25:25.220
Awesome.

00:25:25.220 --> 00:25:27.260
And congrats Roman on getting that out there.

00:25:27.260 --> 00:25:27.660
That's awesome.

00:25:27.660 --> 00:25:32.460
PyCon, you brought up PyCon 2023 last week.

00:25:32.460 --> 00:25:32.860
Yeah.

00:25:32.860 --> 00:25:38.500
They've got this cool, like tile sort of celebration of history on their website.

00:25:38.500 --> 00:25:41.720
And they tell you that it will be April 19 to 27.

00:25:41.720 --> 00:25:43.700
There's a small problem with that though.

00:25:43.700 --> 00:25:45.500
How actionable is it?

00:25:45.500 --> 00:25:50.620
If I want to go to the conference and I want to go see the main talks, when do I book my travel?

00:25:50.620 --> 00:25:51.300
Yeah.

00:25:51.300 --> 00:25:52.100
The whole thing.

00:25:52.100 --> 00:25:52.800
Just stay there.

00:25:52.800 --> 00:25:53.800
It's awesome, right?

00:25:53.800 --> 00:25:56.740
I can come to the tutorials and do the week of sprints after.

00:25:56.740 --> 00:25:57.500
I don't know.

00:25:57.500 --> 00:25:58.040
That's a lot.

00:25:58.040 --> 00:26:04.640
And so I reached out to Twitter and Marietta says, tutorials are on Wednesdays and Thursdays.

00:26:04.640 --> 00:26:07.240
Talks, keynotes, expo halls are Friday to Sunday.

00:26:07.240 --> 00:26:09.600
And from Monday onwards, those are the sprints.

00:26:09.600 --> 00:26:10.220
Perfect.

00:26:10.220 --> 00:26:11.020
Perfect.

00:26:11.020 --> 00:26:17.100
So yesterday, while I was getting studded winter tires put on my car so I can go to the mountains

00:26:17.100 --> 00:26:22.280
and not die, I decided to go ahead and book my travel and I'm going to go to the conference.

00:26:22.280 --> 00:26:23.840
We talked about maybe we'll go, maybe not.

00:26:23.840 --> 00:26:24.900
I'm going to go for a whole week.

00:26:24.900 --> 00:26:27.200
I'm going to show up on Thursday and leave on the next Thursday.

00:26:27.200 --> 00:26:31.360
Maybe be part of the sprints, but definitely do a ton of podcasting while I'm there and try

00:26:31.360 --> 00:26:33.500
to just make it like a, other people will be sprinting out.

00:26:33.500 --> 00:26:33.640
Okay.

00:26:33.640 --> 00:26:35.660
I'm going to be sprinting on podcast episodes.

00:26:35.660 --> 00:26:38.120
I got to decide what I'm going to do.

00:26:38.120 --> 00:26:39.060
I haven't decided yet.

00:26:39.060 --> 00:26:39.800
I'll probably go.

00:26:39.800 --> 00:26:41.820
Flights are still pretty cheap right now.

00:26:41.820 --> 00:26:43.480
They might be like hotels and stuff.

00:26:43.500 --> 00:26:46.080
I think there are really a lot of variations.

00:26:46.080 --> 00:26:48.020
Like there was, I was like, oh, maybe I'll stay at the Hilton.

00:26:48.020 --> 00:26:49.300
$3,300.

00:26:49.300 --> 00:26:50.600
Like, yeah, maybe I won't stay at the Hilton.

00:26:50.600 --> 00:26:51.060
What else?

00:26:51.060 --> 00:26:53.940
So I think people are starting to book it out.

00:26:53.940 --> 00:26:54.360
Okay.

00:26:54.360 --> 00:26:54.820
Yeah.

00:26:54.820 --> 00:26:55.160
Anyway.

00:26:55.760 --> 00:26:57.860
Thank you, Marietta, for sharing that information.

00:26:57.860 --> 00:27:03.860
It makes it much easier for us to plan about participating or even just watching PyCon online.

00:27:03.860 --> 00:27:04.260
Yeah.

00:27:04.260 --> 00:27:04.560
Cool.

00:27:04.560 --> 00:27:04.860
Yeah.

00:27:04.860 --> 00:27:05.360
All right.

00:27:05.360 --> 00:27:08.840
Quick shout outs to GeForce Now.

00:27:08.840 --> 00:27:09.980
Have you heard of GeForce Now?

00:27:09.980 --> 00:27:10.660
No.

00:27:10.660 --> 00:27:13.400
So my daughter's really into gaming these days.

00:27:13.400 --> 00:27:19.580
Plays a bunch of like horse riding games and Minecraft and Planet Zoo.

00:27:19.580 --> 00:27:24.800
And there's like a cool Jurassic Park thing that's like a Sims, but for dinosaurs.

00:27:25.080 --> 00:27:29.980
Most of these games run on Windows and we have an Alienware computer, but it's like all set

00:27:29.980 --> 00:27:31.040
up for my SimRacing.

00:27:31.040 --> 00:27:33.760
So it's kind of hard to play games on that don't involve a steering wheel.

00:27:33.760 --> 00:27:36.200
And she's like, how can I play these games on my PC?

00:27:36.200 --> 00:27:38.280
I'm like, or my Mac, right?

00:27:38.280 --> 00:27:39.720
She has a MacBook Air.

00:27:39.720 --> 00:27:41.280
Like, I don't know.

00:27:41.280 --> 00:27:44.760
She's like, how could I play if I'm not at home and I can stream?

00:27:44.760 --> 00:27:46.760
So we try out GeForce Now.

00:27:46.760 --> 00:27:51.880
Basically, they'll give you a high-end Windows computer and like a GeForce 3080.

00:27:52.260 --> 00:27:55.280
And it just streams like Netflix to your PC.

00:27:55.280 --> 00:27:57.340
And it is super low latency.

00:27:57.340 --> 00:27:59.960
I mean, it's like you're really just playing it there, but you're not.

00:27:59.960 --> 00:28:01.280
It's pretty awesome.

00:28:01.280 --> 00:28:05.800
Oh, so you can play a game on a remote computer then?

00:28:06.320 --> 00:28:06.560
Yeah.

00:28:06.560 --> 00:28:11.360
Or I mean, you can play it on your iPad or you can play it on your iPhone or Android or

00:28:11.360 --> 00:28:12.800
on your Mac or whatever.

00:28:12.800 --> 00:28:15.240
And they've got a completely 100% free tier.

00:28:15.240 --> 00:28:16.960
So it's pretty nuts.

00:28:16.960 --> 00:28:17.740
We should check that out.

00:28:17.740 --> 00:28:20.740
Anyway, that was a cool techno experience.

00:28:20.740 --> 00:28:22.920
Two new YouTube videos I've released.

00:28:22.920 --> 00:28:24.060
One five days ago.

00:28:24.060 --> 00:28:24.880
One five hours ago.

00:28:24.880 --> 00:28:25.700
How about that for timing?

00:28:25.700 --> 00:28:26.600
Nice.

00:28:26.600 --> 00:28:32.000
So as part of this sort of social media, Twitter madness and various other things, I've been

00:28:32.000 --> 00:28:32.840
thinking about this for a while.

00:28:32.840 --> 00:28:38.900
Anyway, I'm like, I really want to try to build up my presence on other areas that are not just

00:28:38.900 --> 00:28:39.140
Twitter.

00:28:39.140 --> 00:28:42.840
And so like, well, YouTube might be one fun place to sort of build up a community.

00:28:42.840 --> 00:28:44.360
So I'm starting to add more videos there.

00:28:44.360 --> 00:28:44.560
Right.

00:28:44.560 --> 00:28:47.780
So like I've done in the past couple of weeks, I've done four videos.

00:28:47.780 --> 00:28:51.320
But the last two is a walrus meets a python, which is fun.

00:28:51.320 --> 00:28:52.740
That's about the walrus operator.

00:28:52.740 --> 00:28:58.300
And then the one that came out today is Python GC settings, which shows some insane stuff

00:28:58.300 --> 00:29:01.620
you can do to tweak the GC a little bit and get crazy better performance.

00:29:01.620 --> 00:29:02.520
Nice.

00:29:02.520 --> 00:29:04.720
The GPC being the garbage collector, right?

00:29:04.720 --> 00:29:05.240
Yes.

00:29:05.240 --> 00:29:08.520
Not reference counting, which does like 99.9% of Python memory.

00:29:08.520 --> 00:29:12.380
The 0.1% or the 0.1%, whatever's left over.

00:29:12.380 --> 00:29:16.820
Like that actually, you often can turn that down because you don't really have cycles that

00:29:16.820 --> 00:29:17.760
much that get lost.

00:29:17.760 --> 00:29:20.880
And it turns out to have some pretty interesting effects.

00:29:20.880 --> 00:29:24.240
We talked, we think we covered, was, was it Instagram?

00:29:24.240 --> 00:29:27.860
I think, I think they wrote an article called dismissing the garbage collector where they

00:29:27.860 --> 00:29:29.440
literally turned it off in production.

00:29:29.440 --> 00:29:33.960
It was either that or, or I can't remember which one, which company did it, but this is

00:29:33.960 --> 00:29:38.260
kind of like a, well, let's don't be so aggressive like that, but kind of, you know, and it's,

00:29:38.260 --> 00:29:39.000
it's pretty, yeah.

00:29:39.000 --> 00:29:39.320
Nice.

00:29:39.320 --> 00:29:40.320
People can check those out.

00:29:40.320 --> 00:29:41.240
yeah.

00:29:41.240 --> 00:29:46.800
So one of the things, that I, the only extra I've got is, I really liked this

00:29:46.800 --> 00:29:50.380
article, from Simon and Wilson about what to blog about.

00:29:50.380 --> 00:29:55.400
So a lot of, so people are, you have a presence somewhere other than Twitter, like, and maybe

00:29:55.400 --> 00:29:57.460
write, start writing your blog more.

00:29:57.460 --> 00:30:01.800
and I like this, what to blog about with the, he goes through a couple of things.

00:30:01.800 --> 00:30:03.880
One of the things is the today I learned.

00:30:03.880 --> 00:30:09.120
And I, you know, I actually, at first, when I first encountered the TIL thing, I first was

00:30:09.120 --> 00:30:11.100
like, why not, why do you need that?

00:30:11.100 --> 00:30:13.280
Can't you just like, just write what you learned anyway?

00:30:13.440 --> 00:30:18.420
But a lot of people have this paralysis of if I write how to do something, people are

00:30:18.420 --> 00:30:22.060
going to think it's a tutorial and I don't know how to do everything with this tool.

00:30:22.060 --> 00:30:24.960
I just learned this little thing of how to do fix my thing.

00:30:24.960 --> 00:30:30.340
So, the T to D the TIL at least is a tag that people will know.

00:30:30.540 --> 00:30:32.260
It's, it's not a full tutorial.

00:30:32.260 --> 00:30:35.260
It's just a little snippet of somebody learned about this thing.

00:30:35.260 --> 00:30:38.780
And, and I think this is a great way to go about, writing it.

00:30:38.780 --> 00:30:41.740
It can be, it can be short and simple, or it can be longer.

00:30:41.840 --> 00:30:46.220
Plus also, if you build up a lot of these around a topic, it might turn into a tutorial

00:30:46.220 --> 00:30:46.600
later.

00:30:46.600 --> 00:30:51.580
So, cause you can, you, now that you've learned a ton, you can write a blog or longer

00:30:51.580 --> 00:30:52.520
blog post about it.

00:30:52.520 --> 00:30:56.660
I also just want to tell people that it doesn't have to be a, like a full tutorial.

00:30:56.660 --> 00:31:00.080
You don't have to compete with real Python or other places.

00:31:00.080 --> 00:31:02.720
You can just do a short thing you learned about.

00:31:02.720 --> 00:31:03.560
It doesn't have to be.

00:31:03.560 --> 00:31:04.040
Okay.

00:31:04.040 --> 00:31:08.480
The other thing he talked about was projects is to write about projects that you've done.

00:31:08.480 --> 00:31:12.000
and, and I think that's a great idea.

00:31:12.000 --> 00:31:17.240
And, but I also want to make sure that people understand also the things you're working on,

00:31:17.240 --> 00:31:17.460
right?

00:31:17.460 --> 00:31:17.760
Right.

00:31:17.760 --> 00:31:22.900
As you're building stuff, this can be part of the TIL, but it could just be, this

00:31:22.900 --> 00:31:23.520
is the fate.

00:31:23.520 --> 00:31:27.920
And it's also another way to limit the scope, like, color in the terminal.

00:31:27.920 --> 00:31:31.780
I don't want to write about all of color in the terminal, but maybe I could write about

00:31:31.780 --> 00:31:35.400
the, just fixing this one bug or this one feature request.

00:31:35.400 --> 00:31:40.360
What I went through to figure out how to figure out how to use colorama and, and then how

00:31:40.360 --> 00:31:42.740
do I detect whether it's a TTY terminal or not?

00:31:42.740 --> 00:31:43.780
things like that.

00:31:43.780 --> 00:31:46.020
That can be a decent article just to write about that.

00:31:46.020 --> 00:31:51.560
and so I think these, this, these are great tips for, unblocking yourself.

00:31:51.560 --> 00:31:56.680
The other thing I want to tell people about is, you, if, is, if you covered it, you've

00:31:56.680 --> 00:32:01.340
learned it from somebody else's blog also already, but you, it didn't quite meet your needs

00:32:01.340 --> 00:32:02.820
and you looked at other places.

00:32:02.820 --> 00:32:08.260
that means that there is a tutorial out there that's missing and it's the one that

00:32:08.260 --> 00:32:10.060
kind of myth fits your brain.

00:32:10.060 --> 00:32:15.700
You can rewrite something that is, is similar to what other people have written about and

00:32:15.700 --> 00:32:18.040
just write it in a different way that fits you better.

00:32:18.040 --> 00:32:20.380
And that'll maybe fit other people better too.

00:32:20.380 --> 00:32:21.440
So there's nothing wrong with that.

00:32:21.440 --> 00:32:22.820
It doesn't have to be completely unique.

00:32:23.080 --> 00:32:23.800
Yeah, absolutely.

00:32:23.800 --> 00:32:24.380
Definitely.

00:32:24.380 --> 00:32:24.880
It doesn't.

00:32:24.880 --> 00:32:25.240
I like it.

00:32:25.240 --> 00:32:26.060
That's all I got.

00:32:26.060 --> 00:32:26.500
Came out there.

00:32:26.500 --> 00:32:26.940
Yeah.

00:32:26.940 --> 00:32:27.380
Came out there.

00:32:27.380 --> 00:32:32.300
Says TILs are also handy to reread from time to time and remind yourself of things you've

00:32:32.300 --> 00:32:33.220
figured out than forgotten.

00:32:33.220 --> 00:32:33.600
Yeah.

00:32:33.600 --> 00:32:36.600
Like you can see the search engines with stuff that you knew.

00:32:36.600 --> 00:32:38.460
And then when you forget it, you can find it again.

00:32:38.460 --> 00:32:41.580
And you know, that's how I started blogging and I didn't call it TIL.

00:32:41.580 --> 00:32:45.780
I would just, I had a blog, nobody was reading and I would just, throw up stuff

00:32:45.780 --> 00:32:48.880
like, commands that I looked up like commands from a tool.

00:32:48.920 --> 00:32:54.120
Like, I always forget how to change my commit message if after I've committed too

00:32:54.120 --> 00:32:54.520
fast.

00:32:54.520 --> 00:32:59.640
so throwing up a little post about git commit amend would be fine.

00:32:59.640 --> 00:32:59.760
Yeah.

00:32:59.760 --> 00:33:00.920
So yeah, absolutely.

00:33:00.920 --> 00:33:01.520
All right.

00:33:01.520 --> 00:33:05.460
Well, this has been a fun episode, but it's still good sometimes to just take a moment and

00:33:05.460 --> 00:33:05.940
relax.

00:33:05.940 --> 00:33:06.260
Right.

00:33:06.260 --> 00:33:06.660
Yeah.

00:33:06.660 --> 00:33:07.080
Yeah.

00:33:07.080 --> 00:33:10.460
I mean, some people, I took my dog for a walk in the woods during sunrise.

00:33:10.460 --> 00:33:14.900
There was like this fog that some, for some people getting out in nature is amazing.

00:33:14.900 --> 00:33:18.720
But as software developers, a lot of times you want to get kind of close to the

00:33:18.720 --> 00:33:24.380
code or like close to the heart of technology and what, what speaks heart of technology

00:33:24.380 --> 00:33:25.760
more than the server.

00:33:25.760 --> 00:33:27.340
This is crazy, man.

00:33:27.340 --> 00:33:27.780
Yeah.

00:33:27.780 --> 00:33:30.160
So, so here's a thing you can play.

00:33:30.160 --> 00:33:30.640
It's on YouTube.

00:33:30.640 --> 00:33:31.520
I'll show you in a second.

00:33:31.520 --> 00:33:34.020
And it says pure relaxation server sounds.

00:33:34.020 --> 00:33:36.140
And we can come over here and it actually has tracks.

00:33:36.140 --> 00:33:41.420
So like it starts with desktop in the doldrum, entering the engine in the engine room, the

00:33:41.420 --> 00:33:42.520
far side of the cloud.

00:33:43.220 --> 00:33:49.440
I find co-location ventilation to be especially relaxing facing, facing the cloud.

00:33:49.440 --> 00:33:51.620
And finally spacewalk.

00:33:51.620 --> 00:33:54.220
So I just want to play a little bit of this for people, Ryan.

00:33:54.220 --> 00:33:54.760
Okay.

00:33:54.760 --> 00:33:56.400
I think, I think they're going to enjoy it.

00:33:56.400 --> 00:33:56.820
Maybe.

00:34:03.460 --> 00:34:04.520
It's amazing, right?

00:34:04.520 --> 00:34:05.480
So relaxing.

00:34:05.480 --> 00:34:07.200
So anyway.

00:34:07.200 --> 00:34:09.920
You shared it with me before we started though.

00:34:09.920 --> 00:34:11.800
And I got to say it's hilarious.

00:34:11.800 --> 00:34:13.560
So I'm going to go check this out.

00:34:13.560 --> 00:34:19.080
I mean, keep in mind, a lot of people have to wear like big earmuffs sound protection to

00:34:19.080 --> 00:34:19.620
go in this room.

00:34:19.620 --> 00:34:22.440
So it might be the opposite of relaxing, but you'll see.

00:34:22.440 --> 00:34:22.960
You'll see.

00:34:22.960 --> 00:34:24.760
Okay, cool.

00:34:24.760 --> 00:34:25.460
Nice find.

00:34:25.460 --> 00:34:25.920
All right.

00:34:25.920 --> 00:34:26.400
Yeah.

00:34:26.400 --> 00:34:26.720
Thanks.

00:34:26.720 --> 00:34:28.980
Just here to help people be more productive, you know?

00:34:28.980 --> 00:34:30.400
Maybe not with this though.

00:34:30.400 --> 00:34:34.440
Well, and some of these people that used to be around all these server farms are now working

00:34:34.440 --> 00:34:36.180
from home and they might miss that sound.

00:34:36.180 --> 00:34:37.480
So that's true.

00:34:37.480 --> 00:34:37.980
Good.

00:34:37.980 --> 00:34:41.740
Roman out there points out that the scary part is actually if the server room is quiet.

00:34:41.740 --> 00:34:44.160
Yeah.

00:34:44.160 --> 00:34:46.020
You go, no, why is it quiet?

00:34:46.020 --> 00:34:46.820
This is not good.

00:34:46.820 --> 00:34:47.400
Yeah.

00:34:47.400 --> 00:34:48.380
All right.

00:34:48.380 --> 00:34:48.840
All right.

00:34:48.840 --> 00:34:55.120
Well, thanks a lot for, as always, and thank everybody for watching and showing up and listening.

00:34:55.120 --> 00:34:56.080
We love you.

00:34:56.080 --> 00:34:56.660
Yep.

00:34:56.660 --> 00:34:57.320
Thanks everyone.

00:34:57.320 --> 00:34:59.600
It's been an awesome six years and we'll keep going.

00:34:59.600 --> 00:35:00.040
Yeah.