WEBVTT
00:00:00.001 -->
00:00:04.960Hello and welcome to Python Bytes where we deliver Python news and headlines directly to your earbuds.
00:00:04.960 -->
00:00:10.200This is episode 379 recorded April 16th and I am Brian Okken.
00:00:10.200 -->
00:00:11.380And I'm Michael Kennedy.
00:00:11.380 -->
00:00:18.260This week we are sponsored by us, Talk Python training courses and also the pytest course
00:00:18.260 -->
00:00:23.440and our Patreon supporters. We love everybody that supports us. We really appreciate it.
00:00:23.440 -->
00:00:30.400And 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.280we'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.360list, 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.240you 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.240topic? 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.220this 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.620Precommit 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.260interesting things there. And, you know, I've considered it, but you don't want stuff that like
00:01:23.260 -->
00:01:28.860takes 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.580Ruff and others that run really quickly, it's basically you wouldn't even really notice it,
00:01:33.580 -->
00:01:40.380right? 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.880she 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.080kind 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.360themselves. So why do you care about these things? They give developers near instant feedback of code
00:01:54.360 -->
00:02:00.300locally. So not all, but some of the things that would run in continuous integration, like linting
00:02:00.300 -->
00:02:07.140checks 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.600there'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.100But 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.380before stuff actually gets into broader source control world. And, you know, super valuable if
00:02:22.380 -->
00:02:25.860you'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.560this 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.860these things happen, then throw them in there. That's for you. Also, the continuous integration side of
00:02:35.860 -->
00:02:42.960thing is pretty excellent. So here, she's using a project, I believe by Anthony Sotili,
00:02:42.960 -->
00:02:50.180called 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.700source 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.480That'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.620you can use precommit for whatever projects, you know, if you're a React native person, you could
00:03:04.620 -->
00:03:09.460use 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.860And 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.400specify 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.280the 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.080trim out all white, trailing white space, all those kinds. Those are all pretty simple and pretty nice,
00:03:34.080 -->
00:03:41.300right? 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.580format, which will fix up the things. And you can even pass arguments, do it through these precommit
00:03:47.580 -->
00:03:53.820hooks 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.500have to run precommit install, which will, you know, download all the hooks that you've mentioned
00:03:59.500 -->
00:04:04.440that you want to run, all the checkers. And it'll actually create virtual environments for those and
00:04:04.440 -->
00:04:07.440install 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.320plenty 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.200but this time I just need it to commit because for whatever reason you can use down here,
00:04:18.200 -->
00:04:24.720find it, you can specify git commit --no verify. And that'll just say it's going in.
00:04:24.720 -->
00:04:29.700I 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.960really nice write up and people can check that out. If the idea appeals.
00:04:33.960 -->
00:04:40.100This 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.540added 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.120rustification 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.020now. 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.780you 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.120Yeah. 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.060shout 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.920and 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.500like 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.920branch, 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.220to 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.740the rough settings. So I love, I love some of the configuration that she's included with,
00:05:35.740 -->
00:05:42.860with like how to configure rough. Cause rough, rough is awesome by default, but there's some cool
00:05:42.860 -->
00:05:48.660configuration you can do like setting, setting the quote style to single and stuff like that. So neat.
00:05:49.460 -->
00:05:54.460Very, very neat. Yeah. Stephanie's doing a bunch of cool stuff. So people should check out broadly
00:05:54.460 -->
00:05:57.860what she's up to, but this article is really nice. Yeah. Over to you, Ryan.
00:05:57.860 -->
00:06:03.640Well, I want to talk about something I talked about two years ago. So I was researching this
00:06:03.640 -->
00:06:09.900Diftastic 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.520covered 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.300Diftastic 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.660Dift 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.680using it a lot. The colors are great, by the way. Awesome. Nice red, green, different colors.
00:06:36.520 -->
00:06:43.840But 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.600character 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.360happen 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.680just 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.380turn 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.960some 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.420syntax 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.620there'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.500but 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.140it 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.960and 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.000and 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.200showing 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.140the external diff of Diftastic, it's a fantastic experience, especially if you've got a large screen,
00:08:02.140 -->
00:08:07.860which I do right now. And it just makes things working with get so much easier. So definitely,
00:08:07.860 -->
00:08:13.480if 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.520like 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.360all the time. So this is fantastic. Yeah. Very excellent. Are you starting to use it?
00:08:25.360 -->
00:08:30.280I'm using it every day now. It's just part of my workflow. So yeah.
00:08:30.680 -->
00:08:36.020Mike Fieler out in the audience says, Diftastic is indeed in Rust.
00:08:36.020 -->
00:08:41.340Yeah. 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.500I 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.380I can write my Python even faster.
00:08:48.380 -->
00:08:52.960So 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.740and JavaScript and all those things. You can just use them and appreciate that someone else took one
00:08:57.740 -->
00:09:01.460for the team. Yeah. Yeah. Yeah. So awesome.
00:09:01.460 -->
00:09:05.740All 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.960out to here, the next topic is Quarto. Have you heard of Quarto? I don't believe so.
00:09:10.960 -->
00:09:18.240Yeah. 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.000maybe 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.860that shows my, my research or visualizations for my company or something like that. So basically it's
00:09:31.860 -->
00:09:38.720an open source scientific and technical publishing system based on Jupyter notebooks. And a lot of people
00:09:38.720 -->
00:09:43.700have 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.560idea is you write in Jupyter notebooks with plain text or markdown or whatever you want to use.
00:09:49.560 -->
00:09:55.660And 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.840adjective. 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.880basically 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.060production quality articles, dashboards, websites, blogs, and even EPUB books. So HTML, PDF, even Word,
00:10:16.060 -->
00:10:22.060EPUB 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.700it 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.520fancy math equation type things, you know, like integral from zero to infinity of that, to that. And
00:10:34.520 -->
00:10:41.480right. It looks proper, like you would see in calculus class, not weird ASCII representations to
00:10:41.480 -->
00:10:46.580it. 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.720go 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.100actually 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.040Brian? 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.060long form and doing, doing something like this would be great. I think it would, especially if
00:11:06.060 -->
00:11:11.140you 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.060Super, super cool. Yeah. And pan doc, it's cool. They're using pan doc markdown because,
00:11:15.060 -->
00:11:20.500I mean, markdown is amazing, but the pan docs flavors of markdown, there's a bunch of cool
00:11:20.500 -->
00:11:27.560extensions. So that's pretty neat. Yeah. Also final thing you compare, apparently can embed things like
00:11:27.560 -->
00:11:33.680Jupyter widgets, HTML, widgets and others to let people sort of interact with the page as well,
00:11:33.680 -->
00:11:39.080which is also cool. Yeah. Neat. Yeah. All right. So this is your world. Check it out.
00:11:39.080 -->
00:11:48.420Definitely. Okay. Next, I want to talk about Constable. So this is a simple,
00:11:48.420 -->
00:11:55.040a simple debugging tool. Looks like it's fairly new. Look at that. So Constable.
00:11:55.040 -->
00:12:02.440Commit four days ago. If you find yourself aimlessly adding print statements while debugging
00:12:02.440 -->
00:12:08.680your code, this, this might be for you. So this is actually pretty neat. Oh, I like it.
00:12:08.680 -->
00:12:15.580See, 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.000throw 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.640what 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.840changes 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.720stuff. 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.360change 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.860it, 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.840here'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.500Yeah. 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.320good 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.660when you're debugging at the time and then pull it out.
00:13:03.660 -->
00:13:04.300Is it production?
00:13:04.300 -->
00:13:10.420Don'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.900that was kind of like this. And Mike Felder or Fiedler says, I wonder how constable compares to
00:13:16.900 -->
00:13:23.980ice 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.100constable and ice cream.
00:13:25.100 -->
00:13:26.160Definitely. Thanks, Mike.
00:13:26.160 -->
00:13:29.720Sounds. Thanks, Mike. Yeah. Let us know when that's written up and we'll take a look.
00:13:30.400 -->
00:13:38.780No. 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.900if 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.960to 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.860look at comparing constable. Excellent. You could write it in quarter. Yeah. Yeah. So apparently Mike
00:13:57.860 -->
00:14:07.060didn't, didn't, was surprised at, you know, the volunteering. So anyway, so yeah, constable for
00:14:07.060 -->
00:14:12.880debugging print statements or it's easier than print statements. Yeah. Nice. Cool. I'm going to work
00:14:12.880 -->
00:14:20.140it 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.500I 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.780have 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.700else. 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.260So 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.340like 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.440some 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.200changes 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.920changes. 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.460Why 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.260all 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.660update 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.680like 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.420of, 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.080to the standard library with PEP for what? Yeah. What? apparently, Guida says, you know,
00:15:53.080 -->
00:15:58.140why the hell not? why not add pointers? This will induce, it, this will also introduce,
00:15:58.140 -->
00:16:05.500pointer literals size of operators and memory errors. actually I was perusing Reddit in
00:16:05.500 -->
00:16:10.100Python 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.540days ago. That would have been April fools. April 1st. So rough. I actually got off,
00:16:15.540 -->
00:16:16.160rough.
00:16:16.160 -->
00:16:19.880snagged on this. This is sort of funny though.
00:16:19.880 -->
00:16:26.200This is funny. I even has the C syntax, like ampersand to grab the pointer of a variable,
00:16:26.200 -->
00:16:28.880a star to dereference the pointer. It's all sorts of stuff.
00:16:28.880 -->
00:16:29.700Yeah. Malik.
00:16:29.700 -->
00:16:30.760Malik. Why not?
00:16:30.760 -->
00:16:31.640Why not?
00:16:31.640 -->
00:16:34.360New size of operator.
00:16:34.640 -->
00:16:39.200the irony is everything in Python as a pointer. You just can't directly address them. Right.
00:16:39.200 -->
00:16:44.480You 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.840reference, you know, the ampersand operator and C where like you could change the value of
00:16:49.840 -->
00:16:54.940the pointer, like within somewhere else. And so what, I love this example, spam equals star
00:16:54.940 -->
00:16:59.720of none. that's that will seg fault core dump. Good luck kiddo.
00:17:01.720 -->
00:17:05.340But this is good. I enjoy it. So yeah. All right.
00:17:05.340 -->
00:17:08.480People comments are like nice when I believed it. I believed it.
00:17:08.480 -->
00:17:14.720I believed it for a second except for, you know, anyway, but there is a infamous pointers.py.
00:17:14.720 -->
00:17:19.800So is that a real thing you can know bringing the hell of pointers to Python
00:17:19.800 -->
00:17:22.000from pointers and poor underscore.
00:17:22.000 -->
00:17:28.800That's funny. Anyway. all right. So,
00:17:28.800 -->
00:17:31.680this is, this is the ball, right? Involved. This is,
00:17:31.680 -->
00:17:35.240in-depth that wasn't just a Reddit post. It's got like a whole GitHub repo.
00:17:35.240 -->
00:17:38.700Yeah. Example. There's like a ton of code here. What are they doing?
00:17:38.700 -->
00:17:44.700this is awesome. Why does this exist? Anyway.
00:17:44.700 -->
00:17:47.900Liz out in the audience says I would have believed it too.
00:17:47.900 -->
00:17:51.340one of the features is seg faults.
00:17:51.680 -->
00:17:57.580always a good time. Always a good time. Yeah. All right. So, that was funny,
00:17:57.580 -->
00:17:59.280but do you have anything else funny for us?
00:17:59.280 -->
00:18:04.040I 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.720I think it's just more random. So check this out.
00:18:06.720 -->
00:18:13.260Hennick from the Python community who we speak about often is here holding this award.
00:18:13.340 -->
00:18:17.740That is a Hugo, you know, Hugo, the, not the static site generator, but the,
00:18:17.740 -->
00:18:19.500the awards for,
00:18:19.500 -->
00:18:21.320It's like a sci-fi award or something.
00:18:21.320 -->
00:18:25.400Yeah. For best sci-fi science fiction. So here's the thing.
00:18:25.400 -->
00:18:29.700Very happy to accept a Hugo award for my science fiction short story.
00:18:29.700 -->
00:18:32.240The day Python packaging made everyone happy.
00:18:32.240 -->
00:18:37.160Good work, Hennick.
00:18:38.460 -->
00:18:40.040That is, that is excellent.
00:18:40.040 -->
00:18:42.340Someday.
00:18:42.340 -->
00:18:46.400And the science fiction is, is a good angle here. Right.
00:18:46.400 -->
00:18:49.540Because science fiction is the sort of stuff that's not real now,
00:18:49.540 -->
00:18:52.660but you can imagine maybe, but probably not.
00:18:52.660 -->
00:18:55.340At some point in the future, like the year 3000.
00:18:55.340 -->
00:18:56.200Well, I'll be fine.
00:18:56.200 -->
00:18:59.100Yeah. Well, I, well,
00:18:59.100 -->
00:19:01.500I don't believe anything until I get my hover skateboard.
00:19:01.500 -->
00:19:02.280I know.
00:19:02.280 -->
00:19:04.640So we're just going to be,
00:19:04.640 -->
00:19:07.620all it's going to be about is people crashing and falling over backwards on YouTube,
00:19:07.920 -->
00:19:09.400on the hover skateboard once we all get them.
00:19:09.400 -->
00:19:10.400Well, yeah.
00:19:10.400 -->
00:19:12.880Just like the ones with wheels now,
00:19:12.880 -->
00:19:13.900but now when you hover,
00:19:13.900 -->
00:19:15.040you'll even more tippy.
00:19:15.040 -->
00:19:15.960Still fine.
00:19:15.960 -->
00:19:18.380I'm trying to figure out how you turn on something that hovers.
00:19:18.380 -->
00:19:19.420I know.
00:19:19.420 -->
00:19:20.380But anyway,
00:19:20.380 -->
00:19:21.660all right.
00:19:21.660 -->
00:19:22.060All right.
00:19:22.060 -->
00:19:22.560Well, thanks.
00:19:22.560 -->
00:19:23.680This was fun.
00:19:23.680 -->
00:19:25.760A pretty quick episode,
00:19:25.760 -->
00:19:26.100but,
00:19:26.100 -->
00:19:26.600uh,
00:19:26.600 -->
00:19:27.000Oh,
00:19:27.000 -->
00:19:28.360Mike says,
00:19:28.360 -->
00:19:29.140uh,
00:19:29.140 -->
00:19:29.580uh,
00:19:29.580 -->
00:19:31.220hover skateboard uses pointers,
00:19:31.220 -->
00:19:31.720uh,
00:19:31.720 -->
00:19:32.340and seg faults.
00:19:32.340 -->
00:19:34.400Yeah.
00:19:34.400 -->
00:19:35.000Um,
00:19:35.000 -->
00:19:35.520so,
00:19:35.520 -->
00:19:36.680and then we can get like,
00:19:36.680 -->
00:19:36.980uh,
00:19:36.980 -->
00:19:38.260we can get Devin and,
00:19:38.260 -->
00:19:38.640uh,
00:19:38.640 -->
00:19:39.980AI to create,
00:19:39.980 -->
00:19:40.260um,
00:19:40.260 -->
00:19:41.200seg faults for us.
00:19:41.200 -->
00:19:41.560Yeah.
00:19:41.560 -->
00:19:42.080That'd be awesome.
00:19:42.080 -->
00:19:43.320Not my fault.
00:19:43.320 -->
00:19:44.480I didn't take down production.
00:19:44.480 -->
00:19:45.080Devin did.
00:19:45.080 -->
00:19:47.820I wonder if the segue is written in C.
00:19:47.820 -->
00:19:49.220I wonder if segways have seg faults.
00:19:49.220 -->
00:19:50.180I bet they do.
00:19:50.180 -->
00:19:50.620Yeah.
00:19:50.620 -->
00:19:52.360It would be fitting.
00:19:52.360 -->
00:19:53.580Uh,
00:19:53.580 -->
00:19:54.020all right.
00:19:54.020 -->
00:19:54.460Well,
00:19:54.460 -->
00:19:54.860uh,
00:19:54.860 -->
00:19:56.400thanks everybody for showing up.
00:19:56.400 -->
00:19:57.660If you want to,
00:19:57.660 -->
00:19:58.100um,
00:19:58.100 -->
00:19:58.640uh,
00:19:58.640 -->
00:20:03.680and 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.040um,
00:20:04.040 -->
00:20:09.460head 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.260Indeed.
00:20:10.260 -->
00:20:11.200Thanks,
00:20:11.200 -->
00:20:11.400Ryan.