WEBVTT

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

00:00:04.960 --> 00:00:10.200
This is episode 379 recorded April 16th and I am Brian Okken.

00:00:10.200 --> 00:00:11.380
And I'm Michael Kennedy.

00:00:11.380 --> 00:00:18.260
This week we are sponsored by us, Talk Python training courses and also the pytest course

00:00:18.260 --> 00:00:23.440
and our Patreon supporters. We love everybody that supports us. We really appreciate it.

00:00:23.440 --> 00:00:30.400
And if you'd like to connect with us, we're all on Fosstodon, on Mastodon. So it's at mkennedy,

00:00:30.400 --> 00:00:36.800
@brianokken and at Python Bytes. And I wanted to shout out to myself, I guess, and Michael for

00:00:36.800 --> 00:00:45.280
we're doing a newsletter now. So if you head over to pythonbytes.fm and join the friends of the show

00:00:45.280 --> 00:00:50.360
list, we will send you an email with all of the tidbits. So if you happen to miss an episode,

00:00:50.360 --> 00:00:57.240
you can catch up on all the links that we share. So Michael, why don't you kick us off with our first

00:00:57.240 --> 00:01:05.240
topic? Let's get started, huh? So I want to talk about an article by Stephanie Molin. She put together

00:01:05.240 --> 00:01:10.220
this really nice article on something that I don't use very much, Git Precommit Hooks. Do you use Git

00:01:10.220 --> 00:01:17.620
Precommit Hooks? Not, yes, on some projects. Yeah. And I just think there's a lot of possibility for

00:01:17.620 --> 00:01:23.260
interesting things there. And, you know, I've considered it, but you don't want stuff that like

00:01:23.260 --> 00:01:28.860
takes a long time to run there. So like how much value do you get? But nowadays with tools like

00:01:28.860 --> 00:01:33.580
Ruff and others that run really quickly, it's basically you wouldn't even really notice it,

00:01:33.580 --> 00:01:40.380
right? So it's not a lot of overhead. So maybe it's time to reconsider Git Precommit Hooks. And

00:01:40.380 --> 00:01:44.880
she has a really nice walkthrough here. So I just kind of want to set out some of the motivation and

00:01:44.880 --> 00:01:49.080
kind of call attention to this article. People can come check it out and set up Precommit Hooks for

00:01:49.080 --> 00:01:54.360
themselves. So why do you care about these things? They give developers near instant feedback of code

00:01:54.360 --> 00:02:00.300
locally. So not all, but some of the things that would run in continuous integration, like linting

00:02:00.300 --> 00:02:07.140
checks and other types of checks run. And when you try to do a Git commit, and if it, for some reason,

00:02:07.140 --> 00:02:11.600
there's a problem, right? Like it won't even let you commit. It'll say, no, it can't commit.

00:02:11.600 --> 00:02:16.100
But you've got to fix the issue detected by the precommit hook. So it's kind of a gate

00:02:16.100 --> 00:02:22.380
before stuff actually gets into broader source control world. And, you know, super valuable if

00:02:22.380 --> 00:02:25.860
you're on a team, but also if you just want to make sure like, I kind of want to make sure I'm doing

00:02:25.860 --> 00:02:30.560
this for myself for my own project, or I'm working alone at a company, and I still want to make sure

00:02:30.560 --> 00:02:35.860
these things happen, then throw them in there. That's for you. Also, the continuous integration side of

00:02:35.860 --> 00:02:42.960
thing is pretty excellent. So here, she's using a project, I believe by Anthony Sotili,

00:02:42.960 --> 00:02:50.180
called precommit. And precommit is a Python project, but it's not only for Python things and Git and

00:02:50.180 --> 00:02:54.700
source control. It just happens to run on Python, like some things run on C, some things run on Rust.

00:02:54.700 --> 00:02:59.480
That's what runs on Python. So basically, as long as you can run Python things, you have an interpreter,

00:02:59.920 --> 00:03:04.620
you can use precommit for whatever projects, you know, if you're a React native person, you could

00:03:04.620 --> 00:03:09.460
use precommit for it, right? Yeah. So there's a nice example of showing how to set up a bunch of checks.

00:03:09.460 --> 00:03:16.860
And it's super easy. Basically, you set up pre-commit-config-yaml file or .yaml. And then you

00:03:16.860 --> 00:03:22.400
specify different things to run. And so you can say, I want to run the hooks forward, check the format for

00:03:22.400 --> 00:03:28.280
the toml file, check the format for yaml files, make sure that every file ends with a blank line,

00:03:28.600 --> 00:03:34.080
trim out all white, trailing white space, all those kinds. Those are all pretty simple and pretty nice,

00:03:34.080 --> 00:03:41.300
right? Yes. Another one is throw in the rough precommit. And then I'll just say, run ruff and run ruff

00:03:41.300 --> 00:03:47.580
format, which will fix up the things. And you can even pass arguments, do it through these precommit

00:03:47.580 --> 00:03:53.820
hooks here, which is pretty cool. Yeah. So, you know, that's pretty much it. Once you set up your file, you just

00:03:53.820 --> 00:03:59.500
have to run precommit install, which will, you know, download all the hooks that you've mentioned

00:03:59.500 --> 00:04:04.440
that you want to run, all the checkers. And it'll actually create virtual environments for those and

00:04:04.440 --> 00:04:07.440
install them in there. So the first time it's a little bit slow, but then the next time it's

00:04:07.440 --> 00:04:12.320
plenty quick. And finally, if for some reason you're like, you know what, I know it keeps complaining,

00:04:12.500 --> 00:04:18.200
but this time I just need it to commit because for whatever reason you can use down here,

00:04:18.200 --> 00:04:24.720
find it, you can specify git commit --no verify. And that'll just say it's going in.

00:04:24.720 --> 00:04:29.700
I don't care. It's going in if you need to kind of override it. So yeah, it's pretty straightforward,

00:04:29.700 --> 00:04:33.960
really nice write up and people can check that out. If the idea appeals.

00:04:33.960 --> 00:04:40.100
This is a great timing for this because I have used it in years past and there's times where I've

00:04:40.100 --> 00:04:46.540
added like a whole bunch of stuff and it kind of slows down my process. But with the recent

00:04:46.540 --> 00:04:53.120
rustification of a lot of a lot of our tools, like with rough and stuff, things are pretty zippy

00:04:53.120 --> 00:04:58.020
now. So I don't think it'll slow down things that much. Yeah. I doubt you really even notice it,

00:04:58.020 --> 00:05:02.780
you know? Yeah. For depending on what kind of tools you can do. When it fails, you'll notice.

00:05:02.780 --> 00:05:07.120
Yeah. And I do like the shout out. There's a couple of things I love about this. I like the

00:05:07.120 --> 00:05:11.060
shout out to the no verify because there's times where you're, you're just running off to vacation

00:05:11.060 --> 00:05:16.920
and you have to commit your stuff no matter what, get that in there. Especially if it's on a,

00:05:16.920 --> 00:05:21.500
like a brand developer branch or something. Yeah. That's a good point. If it's not on the main

00:05:21.500 --> 00:05:24.920
branch, but you're like, you know what? I'm just going to put it here because I want to get it over

00:05:24.920 --> 00:05:31.220
to my laptop and I'm leaving. Yeah. I need it saved. The other thing is running down some of the,

00:05:31.220 --> 00:05:35.740
the rough settings. So I love, I love some of the configuration that she's included with,

00:05:35.740 --> 00:05:42.860
with like how to configure rough. Cause rough, rough is awesome by default, but there's some cool

00:05:42.860 --> 00:05:48.660
configuration you can do like setting, setting the quote style to single and stuff like that. So neat.

00:05:49.460 --> 00:05:54.460
Very, very neat. Yeah. Stephanie's doing a bunch of cool stuff. So people should check out broadly

00:05:54.460 --> 00:05:57.860
what she's up to, but this article is really nice. Yeah. Over to you, Ryan.

00:05:57.860 --> 00:06:03.640
Well, I want to talk about something I talked about two years ago. So I was researching this

00:06:03.640 --> 00:06:09.900
Diftastic and I'm like, I'm, I'm really loving this, this tool. I got to cover it. And I apparently

00:06:09.900 --> 00:06:15.520
covered it two years ago, but I didn't, I haven't started using it until just recently. So

00:06:15.520 --> 00:06:24.300
Diftastic is a tool and I think it's written in Rust. I'm not sure actually, but it's a super fast

00:06:24.300 --> 00:06:30.660
Dift tool and it's, it does coloring, but there's a lot of stuff I love about it. The reasons why I'm

00:06:30.660 --> 00:06:35.680
using it a lot. The colors are great, by the way. Awesome. Nice red, green, different colors.

00:06:36.520 --> 00:06:43.840
But what I really love is that it's not, it's a Dift tool. That's not a line by line character by

00:06:43.840 --> 00:06:49.600
character Dift. It's, it understands your syntax and it only changes things that really change. So if you

00:06:49.600 --> 00:06:55.360
happen to add a new line in there or something, it's not going to show you that Dift. It's going to do

00:06:55.360 --> 00:07:01.680
just real changes to your code, which is super helpful. I hate it when, when you have to like

00:07:01.680 --> 00:07:08.380
turn off by default, it doesn't show you that. So I don't like to see if somebody, if I messed up

00:07:08.380 --> 00:07:13.960
some spacing and somebody fixed that, that's not a real Dift. I don't need to see that. So having

00:07:13.960 --> 00:07:19.420
syntax based is great. What I really love is what I've I'm going to highlight here is there's,

00:07:19.420 --> 00:07:24.620
there's instructions. Oh, it tells you how to do it. And I can't remember where the link is,

00:07:24.620 --> 00:07:30.500
but it, it, I'm going to show it right here. The, the, in the manual for a get tastic or Diftastic,

00:07:30.500 --> 00:07:36.140
it shows you how to set this up for diff. So you can forget diff. So if you're using with get,

00:07:36.140 --> 00:07:42.960
and you, you know, you want to just try it out, it shows you how to just set your get external diff,

00:07:42.960 --> 00:07:49.000
and then you can try it out. What I really love is the real winner is doing a log. So

00:07:49.000 --> 00:07:55.200
showing what you've done on the file recently is great with the get log. But if you do that with

00:07:55.200 --> 00:08:02.140
the external diff of Diftastic, it's a fantastic experience, especially if you've got a large screen,

00:08:02.140 --> 00:08:07.860
which I do right now. And it just makes things working with get so much easier. So definitely,

00:08:07.860 --> 00:08:13.480
if you haven't tried Diftastic yet, try it and try, try the, so it shows you how to do it just

00:08:13.480 --> 00:08:20.520
like one-offs for get, but it also, it shows you how to set up your get configs so that you can use it

00:08:20.520 --> 00:08:25.360
all the time. So this is fantastic. Yeah. Very excellent. Are you starting to use it?

00:08:25.360 --> 00:08:30.280
I'm using it every day now. It's just part of my workflow. So yeah.

00:08:30.680 --> 00:08:36.020
Mike Fieler out in the audience says, Diftastic is indeed in Rust.

00:08:36.020 --> 00:08:41.340
Yeah. It's, it's one of those, it's super fast. I love, I'm going to have to start learning Rust,

00:08:41.340 --> 00:08:46.500
I guess, maybe, but, or, or just, I just love other people writing Rust for me so that I can,

00:08:46.500 --> 00:08:48.380
I can write my Python even faster.

00:08:48.380 --> 00:08:52.960
So it's like, it's kind of like when you use Jupyter notebooks, you don't have to learn TypeScript

00:08:52.960 --> 00:08:57.740
and JavaScript and all those things. You can just use them and appreciate that someone else took one

00:08:57.740 --> 00:09:01.460
for the team. Yeah. Yeah. Yeah. So awesome.

00:09:01.460 --> 00:09:05.740
All right. Actually speaking exactly of that kind of stuff, the next thing I wanted to give a shout

00:09:05.740 --> 00:09:10.960
out to here, the next topic is Quarto. Have you heard of Quarto? I don't believe so.

00:09:10.960 --> 00:09:18.240
Yeah. So Quarto is pretty cool. It lives solidly in the, I want to publish stuff for various reasons,

00:09:18.240 --> 00:09:24.000
maybe because I want a blog or a website or I want to write an ebook, or I just want to create a webpage

00:09:24.000 --> 00:09:31.860
that shows my, my research or visualizations for my company or something like that. So basically it's

00:09:31.860 --> 00:09:38.720
an open source scientific and technical publishing system based on Jupyter notebooks. And a lot of people

00:09:38.720 --> 00:09:43.700
have been talking about this and recommending this lately. So I thought I'd give it a look. And so the

00:09:43.700 --> 00:09:49.560
idea is you write in Jupyter notebooks with plain text or markdown or whatever you want to use.

00:09:49.560 --> 00:09:55.660
And then you create the dynamic elements in Python, R, Julia, or observable. The role has always been an

00:09:55.660 --> 00:10:01.840
adjective. I didn't know it was a noun, but okay. Yeah. I may have to check that out later, but

00:10:01.840 --> 00:10:07.880
basically most relevant point is you write, you can write your stuff in Python and then you can create

00:10:07.880 --> 00:10:16.060
production quality articles, dashboards, websites, blogs, and even EPUB books. So HTML, PDF, even Word,

00:10:16.060 --> 00:10:22.060
EPUB and so on, which is pretty awesome. And then it's, it comes out of the Posit books. You can connect

00:10:22.060 --> 00:10:28.700
it to Posit Connect if you want, but then you can write in hand doc markdown as well and get like

00:10:28.700 --> 00:10:34.520
fancy math equation type things, you know, like integral from zero to infinity of that, to that. And

00:10:34.520 --> 00:10:41.480
right. It looks proper, like you would see in calculus class, not weird ASCII representations to

00:10:41.480 --> 00:10:46.580
it. So yeah, it looks, it looks pretty awesome. It has ability to like show or hide the code. You can

00:10:46.580 --> 00:10:50.720
go to their website, you can see like there's a little example of here's a notebook and then here's

00:10:50.720 --> 00:10:55.100
actually publication of it, which I don't know. I think it's, it's pretty cool. What do you think,

00:10:55.100 --> 00:11:00.040
Brian? I think this is excellent. I definitely want to try this out. I've been itching to write more

00:11:00.040 --> 00:11:06.060
long form and doing, doing something like this would be great. I think it would, especially if

00:11:06.060 --> 00:11:11.140
you use Python to sort of express what you're working on or what you're doing, right? Yeah.

00:11:11.140 --> 00:11:15.060
Super, super cool. Yeah. And pan doc, it's cool. They're using pan doc markdown because,

00:11:15.060 --> 00:11:20.500
I mean, markdown is amazing, but the pan docs flavors of markdown, there's a bunch of cool

00:11:20.500 --> 00:11:27.560
extensions. So that's pretty neat. Yeah. Also final thing you compare, apparently can embed things like

00:11:27.560 --> 00:11:33.680
Jupyter widgets, HTML, widgets and others to let people sort of interact with the page as well,

00:11:33.680 --> 00:11:39.080
which is also cool. Yeah. Neat. Yeah. All right. So this is your world. Check it out.

00:11:39.080 --> 00:11:48.420
Definitely. Okay. Next, I want to talk about Constable. So this is a simple,

00:11:48.420 --> 00:11:55.040
a simple debugging tool. Looks like it's fairly new. Look at that. So Constable.

00:11:55.040 --> 00:12:02.440
Commit four days ago. If you find yourself aimlessly adding print statements while debugging

00:12:02.440 --> 00:12:08.680
your code, this, this might be for you. So this is actually pretty neat. Oh, I like it.

00:12:08.680 --> 00:12:15.580
See, throw like a, in the example that you throw a decorator at constable.trace, and then you can

00:12:15.580 --> 00:12:21.000
throw in which variables you want to trace. And it just like, it shows you some cool output of like

00:12:21.000 --> 00:12:26.640
what happens while you're, while you're running. And the, you can walk through and it does the

00:12:26.640 --> 00:12:32.840
changes to your, which line changed your variable and what did it change it to and all that sort of

00:12:32.840 --> 00:12:38.720
stuff. And it's kind of a. Each line that changes, right? It, it prints out like as the variables

00:12:38.720 --> 00:12:43.360
change at any step, it'll say, here's what the new values are, which is cool, but it kind of describes

00:12:43.360 --> 00:12:47.860
it, which is awesome. It'll say like this equation ran. So now it's a new, this statement ran. So

00:12:47.860 --> 00:12:51.840
here's the value of this statement ran. So now here's the value. It's, it's really good.

00:12:51.840 --> 00:12:57.500
Yeah. It's, it's fairly verbose, but, and with, with a lot of spacing in here, but I think that's

00:12:57.500 --> 00:13:01.320
good is because you're, you're probably going to like throw it on just a couple of functions to

00:13:01.320 --> 00:13:03.660
when you're debugging at the time and then pull it out.

00:13:03.660 --> 00:13:04.300
Is it production?

00:13:04.300 --> 00:13:10.420
Don't put it in production. I was wondering this too. So I forgot the name of the other tool

00:13:10.420 --> 00:13:16.900
that was kind of like this. And Mike Felder or Fiedler says, I wonder how constable compares to

00:13:16.900 --> 00:13:23.980
ice cream. And I think, I think I would take this as Mike is volunteering to do a write-up of comparing

00:13:23.980 --> 00:13:25.100
constable and ice cream.

00:13:25.100 --> 00:13:26.160
Definitely. Thanks, Mike.

00:13:26.160 --> 00:13:29.720
Sounds. Thanks, Mike. Yeah. Let us know when that's written up and we'll take a look.

00:13:30.400 --> 00:13:38.780
No. I think, I think probably a lot of this is just a probably feel like, how's it feel to you

00:13:38.780 --> 00:13:44.900
if it fits your workflow or not? So this, this looks fun. So yeah, this looks very fun and both are new

00:13:44.900 --> 00:13:49.960
to me. So it's, it's worth checking out. Okay. And if Mike doesn't want to do it, maybe I'll take a

00:13:49.960 --> 00:13:57.860
look at comparing constable. Excellent. You could write it in quarter. Yeah. Yeah. So apparently Mike

00:13:57.860 --> 00:14:07.060
didn't, didn't, was surprised at, you know, the volunteering. So anyway, so yeah, constable for

00:14:07.060 --> 00:14:12.880
debugging print statements or it's easier than print statements. Yeah. Nice. Cool. I'm going to work

00:14:12.880 --> 00:14:20.140
it into my, my world. I think it looks good. What do you got for us next? Extra, extra stuff. It's all,

00:14:20.140 --> 00:14:25.500
I have only one extra thing. Oh, we're done with our topics already? I'm blue. So we are flies when you

00:14:25.500 --> 00:14:30.780
have fun, you know, and you're cool. I flies. All right. So at least I'm done. I've got nothing

00:14:30.780 --> 00:14:37.700
else. How's that? So two pieces of news here. They're all, they're both the same piece of news.

00:14:37.700 --> 00:14:46.260
So Python 312.3 final is out, which comes with one, two, three, four security updates. They don't sound

00:14:46.260 --> 00:14:54.340
like any sort of big deal. So, wouldn't like run, run and patch it now or anything, but there are

00:14:54.340 --> 00:14:58.440
some things that sit under security. So that's always worth thinking about, but there's also quite a few

00:14:58.440 --> 00:15:06.200
changes under built-in under library. I mean, just gauging by the scrolling, I would say there's probably 50 or 60

00:15:06.200 --> 00:15:11.920
changes. That's a big change for a dot three dot tutor dot three. Yeah. Yeah. and why not?

00:15:11.920 --> 00:15:19.460
Why not upgrade? So absolutely. And I would, just the other piece of news is that Python bytes and

00:15:19.460 --> 00:15:27.260
all the other, other things are already running on a 312.3, just bump a number, kick off the Docker

00:15:27.260 --> 00:15:34.660
update and boom. Yeah. Very nice to have that, that set up in place. Extras for you. just one that I

00:15:34.660 --> 00:15:39.680
like was excited to cover, but then like, okay, so I'll just, I'll just talk about it. It's a couple

00:15:39.680 --> 00:15:46.420
of, you appear to be offline. it's a couple weeks old, but pointers are going to be added

00:15:46.420 --> 00:15:53.080
to the standard library with PEP for what? Yeah. What? apparently, Guida says, you know,

00:15:53.080 --> 00:15:58.140
why the hell not? why not add pointers? This will induce, it, this will also introduce,

00:15:58.140 --> 00:16:05.500
pointer literals size of operators and memory errors. actually I was perusing Reddit in

00:16:05.500 --> 00:16:10.100
Python and noticed this and I'm like, what's going on. And then I noticed the date was 15

00:16:10.100 --> 00:16:15.540
days ago. That would have been April fools. April 1st. So rough. I actually got off,

00:16:15.540 --> 00:16:16.160
rough.

00:16:16.160 --> 00:16:19.880
snagged on this. This is sort of funny though.

00:16:19.880 --> 00:16:26.200
This is funny. I even has the C syntax, like ampersand to grab the pointer of a variable,

00:16:26.200 --> 00:16:28.880
a star to dereference the pointer. It's all sorts of stuff.

00:16:28.880 --> 00:16:29.700
Yeah. Malik.

00:16:29.700 --> 00:16:30.760
Malik. Why not?

00:16:30.760 --> 00:16:31.640
Why not?

00:16:31.640 --> 00:16:34.360
New size of operator.

00:16:34.640 --> 00:16:39.200
the irony is everything in Python as a pointer. You just can't directly address them. Right.

00:16:39.200 --> 00:16:44.480
You can't, you can't work with them that way. no pass by rep. There's no pat like pass

00:16:44.480 --> 00:16:49.840
reference, you know, the ampersand operator and C where like you could change the value of

00:16:49.840 --> 00:16:54.940
the pointer, like within somewhere else. And so what, I love this example, spam equals star

00:16:54.940 --> 00:16:59.720
of none. that's that will seg fault core dump. Good luck kiddo.

00:17:01.720 --> 00:17:05.340
But this is good. I enjoy it. So yeah. All right.

00:17:05.340 --> 00:17:08.480
People comments are like nice when I believed it. I believed it.

00:17:08.480 --> 00:17:14.720
I believed it for a second except for, you know, anyway, but there is a infamous pointers.py.

00:17:14.720 --> 00:17:19.800
So is that a real thing you can know bringing the hell of pointers to Python

00:17:19.800 --> 00:17:22.000
from pointers and poor underscore.

00:17:22.000 --> 00:17:28.800
That's funny. Anyway. all right. So,

00:17:28.800 --> 00:17:31.680
this is, this is the ball, right? Involved. This is,

00:17:31.680 --> 00:17:35.240
in-depth that wasn't just a Reddit post. It's got like a whole GitHub repo.

00:17:35.240 --> 00:17:38.700
Yeah. Example. There's like a ton of code here. What are they doing?

00:17:38.700 --> 00:17:44.700
this is awesome. Why does this exist? Anyway.

00:17:44.700 --> 00:17:47.900
Liz out in the audience says I would have believed it too.

00:17:47.900 --> 00:17:51.340
one of the features is seg faults.

00:17:51.680 --> 00:17:57.580
always a good time. Always a good time. Yeah. All right. So, that was funny,

00:17:57.580 --> 00:17:59.280
but do you have anything else funny for us?

00:17:59.280 --> 00:18:04.040
I do. And it's very much in the same vein, although I don't think it's the same date.

00:18:04.040 --> 00:18:06.720
I think it's just more random. So check this out.

00:18:06.720 --> 00:18:13.260
Hennick from the Python community who we speak about often is here holding this award.

00:18:13.340 --> 00:18:17.740
That is a Hugo, you know, Hugo, the, not the static site generator, but the,

00:18:17.740 --> 00:18:19.500
the awards for,

00:18:19.500 --> 00:18:21.320
It's like a sci-fi award or something.

00:18:21.320 --> 00:18:25.400
Yeah. For best sci-fi science fiction. So here's the thing.

00:18:25.400 --> 00:18:29.700
Very happy to accept a Hugo award for my science fiction short story.

00:18:29.700 --> 00:18:32.240
The day Python packaging made everyone happy.

00:18:32.240 --> 00:18:37.160
Good work, Hennick.

00:18:38.460 --> 00:18:40.040
That is, that is excellent.

00:18:40.040 --> 00:18:42.340
Someday.

00:18:42.340 --> 00:18:46.400
And the science fiction is, is a good angle here. Right.

00:18:46.400 --> 00:18:49.540
Because science fiction is the sort of stuff that's not real now,

00:18:49.540 --> 00:18:52.660
but you can imagine maybe, but probably not.

00:18:52.660 --> 00:18:55.340
At some point in the future, like the year 3000.

00:18:55.340 --> 00:18:56.200
Well, I'll be fine.

00:18:56.200 --> 00:18:59.100
Yeah. Well, I, well,

00:18:59.100 --> 00:19:01.500
I don't believe anything until I get my hover skateboard.

00:19:01.500 --> 00:19:02.280
I know.

00:19:02.280 --> 00:19:04.640
So we're just going to be,

00:19:04.640 --> 00:19:07.620
all it's going to be about is people crashing and falling over backwards on YouTube,

00:19:07.920 --> 00:19:09.400
on the hover skateboard once we all get them.

00:19:09.400 --> 00:19:10.400
Well, yeah.

00:19:10.400 --> 00:19:12.880
Just like the ones with wheels now,

00:19:12.880 --> 00:19:13.900
but now when you hover,

00:19:13.900 --> 00:19:15.040
you'll even more tippy.

00:19:15.040 --> 00:19:15.960
Still fine.

00:19:15.960 --> 00:19:18.380
I'm trying to figure out how you turn on something that hovers.

00:19:18.380 --> 00:19:19.420
I know.

00:19:19.420 --> 00:19:20.380
But anyway,

00:19:20.380 --> 00:19:21.660
all right.

00:19:21.660 --> 00:19:22.060
All right.

00:19:22.060 --> 00:19:22.560
Well, thanks.

00:19:22.560 --> 00:19:23.680
This was fun.

00:19:23.680 --> 00:19:25.760
A pretty quick episode,

00:19:25.760 --> 00:19:26.100
but,

00:19:26.100 --> 00:19:26.600
uh,

00:19:26.600 --> 00:19:27.000
Oh,

00:19:27.000 --> 00:19:28.360
Mike says,

00:19:28.360 --> 00:19:29.140
uh,

00:19:29.140 --> 00:19:29.580
uh,

00:19:29.580 --> 00:19:31.220
hover skateboard uses pointers,

00:19:31.220 --> 00:19:31.720
uh,

00:19:31.720 --> 00:19:32.340
and seg faults.

00:19:32.340 --> 00:19:34.400
Yeah.

00:19:34.400 --> 00:19:35.000
Um,

00:19:35.000 --> 00:19:35.520
so,

00:19:35.520 --> 00:19:36.680
and then we can get like,

00:19:36.680 --> 00:19:36.980
uh,

00:19:36.980 --> 00:19:38.260
we can get Devin and,

00:19:38.260 --> 00:19:38.640
uh,

00:19:38.640 --> 00:19:39.980
AI to create,

00:19:39.980 --> 00:19:40.260
um,

00:19:40.260 --> 00:19:41.200
seg faults for us.

00:19:41.200 --> 00:19:41.560
Yeah.

00:19:41.560 --> 00:19:42.080
That'd be awesome.

00:19:42.080 --> 00:19:43.320
Not my fault.

00:19:43.320 --> 00:19:44.480
I didn't take down production.

00:19:44.480 --> 00:19:45.080
Devin did.

00:19:45.080 --> 00:19:47.820
I wonder if the segue is written in C.

00:19:47.820 --> 00:19:49.220
I wonder if segways have seg faults.

00:19:49.220 --> 00:19:50.180
I bet they do.

00:19:50.180 --> 00:19:50.620
Yeah.

00:19:50.620 --> 00:19:52.360
It would be fitting.

00:19:52.360 --> 00:19:53.580
Uh,

00:19:53.580 --> 00:19:54.020
all right.

00:19:54.020 --> 00:19:54.460
Well,

00:19:54.460 --> 00:19:54.860
uh,

00:19:54.860 --> 00:19:56.400
thanks everybody for showing up.

00:19:56.400 --> 00:19:57.660
If you want to,

00:19:57.660 --> 00:19:58.100
um,

00:19:58.100 --> 00:19:58.640
uh,

00:19:58.640 --> 00:20:03.680
and if you're listening and you want to join the fun of talking with us while we're doing a podcast,

00:20:03.680 --> 00:20:04.040
um,

00:20:04.040 --> 00:20:09.460
head over to python by set FM and you can see what the schedule is for the next live episode.

00:20:09.460 --> 00:20:10.260
Indeed.

00:20:10.260 --> 00:20:11.200
Thanks,

00:20:11.200 --> 00:20:11.400
Ryan.