Brought to you by Michael and Brian - take a Talk Python course or get Brian's pytest book


Transcript #357: Python 3.7 EOLed, We Hadn't Noticed

Return to episode page view on github
Recorded on Tuesday, Oct 17, 2023.

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

00:04 This is episode 357, recorded October 17th, and I am Brian Okken.

00:10 And I am Michael Kennedy.

00:11 And our show is sponsored by us.

00:14 Check out Talk Python Training, of course.

00:16 There's wonderful courses from Michael and other people, including myself.

00:21 And Patreon supporters, of course.

00:25 We love Patreon supporters.

00:27 We haven't really talked to him much lately, sending out emails.

00:30 I should do that more.

00:31 And lastly, the complete pytest course.

00:35 Please check it out if you want to learn pytest the fastest way possible.

00:38 And you can connect with us on Mastodon, on Mastodon, on Fosstodon, both of those.

00:45 And Michael's at M. Kennedy.

00:49 I'm at Brian Okken.

00:50 And the show is at Python Bytes.

00:52 And you can also listen live if you head over to pythonbytes.fm.

00:57 And you can watch it when we live stream, as we are right now.

01:00 Absolutely.

01:01 So, Michael, let's kick it off with something hot.

01:04 Let's kick it off.

01:05 I want to talk about a couple of, well, something I've learned from Glyph when I was at PyBay.

01:12 Was that last weekend?

01:13 Two weekends?

01:13 Last weekend, I guess.

01:14 Glyph gave a really cool talk.

01:16 Some of the talks are starting to show up on YouTube, but his talk is not there yet.

01:21 Or I would link to it.

01:22 And it was something along the lines of like, how to program your computer with Python, which sounds silly because we're all pretty good Python programmers.

01:30 Like you should think, okay, well, I could do that.

01:32 But this was about, how do I automate stuff?

01:34 How do I plug into things?

01:37 Like how can I automate keynote to extract show notes out to put into another document or PowerPoint or, you know, things along those lines.

01:48 And one of the things that he both created and talked about was this thing called Quick Mac Hotkey.

01:55 Because you might want to have your Python not have a UI you're interacting with, but just be chilling in the background.

02:01 And if you had a certain hotkey, it does the thing, right?

02:03 Yeah.

02:04 Yeah.

02:05 So this Quick Mac Hotkey does that.

02:07 And basically it's super simple to use.

02:10 It's just a set of minimal Python bindings for macOS framework APIs using, what does it use for it to pull this off?

02:19 Look through here.

02:20 Oh yeah.

02:21 Py OBJC, I believe is what it's using.

02:24 So you just super easy to write some code.

02:27 You want to have a function that's called when a keystroke is down.

02:31 You just give it the decorator quick hotkey and you say the virtual key is the X.

02:36 The modifier is command control option.

02:39 So just hit all three of those plus X, you know, something that's most likely not going to interfere with some other behavior.

02:46 And then boom, off it goes.

02:47 And look how simple that code is.

02:49 Isn't that nice?

02:49 Yeah.

02:50 Yeah.

02:51 That's pretty cool.

02:52 Although I don't know if I can find my command control and hotkey at the same time.

02:56 But cool.

02:58 Yeah.

02:58 I use a Windows keyboard, unfortunately, because there's no ergonomic Mac keyboards.

03:03 Like, you know, apparently Apple hates people and they want them to have RSI for the rest of their life.

03:07 But doesn't they only make these?

03:08 Does the window key map to the command key?

03:10 Yeah.

03:11 The window keys is just the command key.

03:12 Yeah.

03:12 Okay.

03:13 So it's nothing too fancy.

03:15 So there's not a lot of depth.

03:16 And we got to dive into this other than how cool is it if you want to just add hotkeys here?

03:21 Yeah.

03:22 So off you go.

03:23 Okay.

03:23 So when you install it, does it just run all the time or something?

03:26 I think whenever your app is running.

03:29 Okay.

03:30 Like, so you can see the last line of this example.

03:32 It says app helper dot run event loop.

03:33 Okay.

03:34 So that's just like set there in the background and just wait for events.

03:37 For example, it's this quick hotkey callback when somebody presses that.

03:41 So one of those, though, could be exit.

03:43 You know, and just, you know, I don't know how you exit the event loop.

03:46 Either raise an exception or just just exit or who knows.

03:49 There's got to be a way to get out of there.

03:51 Reboot your computer.

03:52 Exactly.

03:53 It's like Vim.

03:54 You're just in there.

03:55 Nice.

03:57 All right.

03:58 Over to you.

03:59 Well, I'm going to talk about command lines applications a little bit because Simon Wilson

04:04 had things I've learned about building CLI tools in Python.

04:08 And I really kind of like all the stuff he covered.

04:12 I really like them.

04:13 I mean, this isn't a super in-depth like how to write CLI tools, but some of the things like

04:19 just high level when you're writing command line applications, it's good to be rather consistent

04:25 with other command line applications to make it easy to use because it's going to be used

04:30 by people that like CLIs, right?

04:32 So a couple of options things here.

04:36 Be consistent with the terms.

04:39 Well, you have to kind of understand the terms, but there's commands, there's arguments, there's

04:43 options and flags, and sometimes flags are options.

04:47 Yeah.

04:48 Anyway.

04:48 So commands that have our, he's using CLI applications.

04:53 So the, he actually talks about CLI and also using a cookie cutter template that he lists

05:00 at click app on Simon W on GitHub, but the, or yeah, cookie cutter template to build these,

05:08 which is cool.

05:09 I like typer, which is built on top of CLI.

05:13 So anyway, but these are, these are still good, good advice, like make sure that your

05:18 options, what, you know, what options are and then make sure you have like a short character.

05:23 So if you have --port also include like a dash P as a short version, because people

05:31 are used to that.

05:32 There's a mostly just a lot of description around making sure your flags and options and stuff

05:40 are consistent.

05:40 And I actually think people ought to get used to writing more CLI apps because especially

05:46 for utilities for yourself and for a team, they're great because you'll use it all the

05:52 time and it's, it's, you get used to it.

05:55 It's easier than building a GUI application.

05:58 So consistency is everything.

06:00 Try to be consistent with it.

06:01 One of the great things, the great advice here.

06:04 So is he pay attention to your help message.

06:08 So, a lot of CLI tools like typer and click kind of build a help for you so that it

06:16 prints out like the options and stuff that you can, you can list, which is great, but you

06:21 have to go in and add things like, put examples.

06:25 So example uses of like the entire application or the entire option and how to use it.

06:31 this is extremely helpful and I really appreciate it even just for myself so that,

06:37 like six months from now I can remember how to use it, things like that.

06:41 So include options in the help.

06:42 And then the other thing is, the lastly, Oh, examples, examples in help.

06:48 And, there's a couple other things.

06:51 Oh, include the output of your help in your online documentation.

06:55 And there's ways to automate that.

06:56 But I think that's great to just list it because I'm looking for it when I'm looking at the,

07:01 like at the bottom of the read me or something.

07:03 the lastly, is if you have a CLI that's being used by other people, make sure that you

07:11 version it appropriately because, because it is an API.

07:16 A command line interface is, can be used by other programs.

07:19 So treat it as an API, even if the other user is somebody's fingers.

07:23 because if things change, people should know about it.

07:26 So anyway, good, good application or a good article about building command line applications.

07:32 And then his, cool cookie cutter template for click apps.

07:36 It's nice.

07:37 Excellent.

07:37 Yeah.

07:38 Nice work, Simon.

07:38 A couple of pieces of real time followup here.

07:42 One audience is on point today.

07:45 So Kim out there says rich, rich click is also fantastic if you use click.

07:50 And I definitely agree on that.

07:52 So it's like click, but all the help messages and stuff are in color using, you know, rich

07:58 and like little info boxes and stuff.

08:01 And then Rhett who, Rhett, who was on talk Python to talk about programming, Mac apps, macOS apps

08:08 highlights that, you know, this quick hockey thing sounds like a good opportunity for a rumps menu bar app.

08:16 So rumps is awesome.

08:17 I was actually thinking of adding this hockey thing exactly for one of my rumps menu bar apps,

08:23 which is just an unfair level of easy for building a Mac app that just runs in your menu bar.

08:29 Oh, cool.

08:30 Yeah.

08:30 We've talked about that, but it's been a while.

08:32 It has been a while, but you've got it for me.

08:34 I've got to go up and find it and like, make it do the thing.

08:36 I'm like, you know what?

08:37 A hot key.

08:38 Oh yeah.

08:39 Here we go.

08:40 Now it's on now.

08:42 It's going to the next level.

08:43 So yeah.

08:44 Yeah.

08:44 Super cool.

08:45 All right.

08:45 That's not what I want to talk about, but some good real time followup.

08:47 What I want to talk about is warp.

08:49 And this is also an item from PI bay indirectly.

08:52 I ran into Elvis who works there.

08:54 And have you heard of warp Brian?

08:56 No.

08:57 Well, I mean warp speed.

08:59 Yes, I know.

09:00 Okay.

09:00 Got to resist the star Wars references.

09:02 it's, it's super cool.

09:04 So what terminal do you use?

09:06 Like when you go to use the built-in Mac one, do you use iterm two or what's your story?

09:11 Well, I use the built-in Mac one, on Mac and then on windows, I use, the, what?

09:18 The windows terminal.

09:18 Well, that was a good one.

09:22 No, the, the get bash, get for windows bash comes with bash.

09:27 So I use that.

09:28 Okay.

09:28 Yeah.

09:29 You should check out the windows terminal and then plug the get for bash into it.

09:32 You get like, it behaves better and you can pick from like nine different shells and like

09:36 things that run inside the windows terminal.

09:38 Anyway, windows terminal is awesome, but we don't have windows terminal on Mac, which is

09:43 just fine.

09:43 Cause we have iterm and other things, but I want to tell you about warp because warp is

09:47 a new terminal.

09:49 it's got quite a bit of energy behind it and it's, it's awesome.

09:54 so I think there's 30 people working on this project if I remember correctly, but there's,

09:58 there's a good number of people that are working on building this new terminal based on rust.

10:04 And it even is, programmed in metal shaders.

10:07 Metals are like the open GL direct X Mac equivalent for making it super, super fast.

10:12 But basically like there's a bunch of shortcomings that always drove me crazy about the terminal

10:17 and a lot of things that are pretty nice here.

10:19 So it's a free thing for individuals.

10:21 If you're a company, you got to pay for it if you want to company features.

10:24 but it's, it's worth checking out.

10:27 So for example, if you write something, Brian, like I write, some multi-line command and

10:33 you're like, Oh no, I forgot the quote at the beginning.

10:36 You know, how do you fix it in I term left arrow, left arrow, left arrow, left arrow, left

10:41 arrow.

10:41 Like even home doesn't work, you know, left arrow, left arrow, left arrow.

10:44 You wait and get back there and you type the quote, right arrow, right arrow to get the focus

10:48 back, like clicking where you want to be doesn't work.

10:52 Right.

10:53 For example.

10:53 Well, he's used Vim key bindings and just go there with Vim.

10:57 Do you have Vim key bindings in the mat at the standard terminal?

11:01 Yes.

11:01 Everywhere.

11:02 Yeah.

11:03 Okay.

11:03 All right.

11:05 But awesome.

11:06 Well, so this one, like basically all the, stuff you type at the bottom or wherever you're

11:11 typing is like a full on editor, which also has Vim key bindings.

11:15 Yay.

11:15 Okay.

11:16 Okay.

11:16 No, go ahead.

11:17 Okay.

11:17 you can turn them on if you want, but you can basically click in there and edit pieces.

11:22 Like you can double click.

11:23 It'll select a word.

11:23 You start typing or places that super cool.

11:26 it has like a kind of a new way to like keep your input focused in one area, which is

11:32 really nice.

11:33 So instead of it just being at the bottom of the screen, you can have it like always at the

11:36 top or always at the bottom.

11:38 one of the things that's cool is like it treats the output of every command as,

11:43 a solid as one thing.

11:45 So if I do like an LS and there's like 50 lines and I tail a catalog or something, then there's

11:51 like a thousand lines.

11:52 And then if you want to go back, you can actually just go back by selecting each block of that.

11:57 So go back a thousand lines, go back 50 lines, do a search.

12:00 You can search just that 50 line section from that one command, even though your terminal is

12:04 full of junk.

12:05 Super, super cool.

12:06 it does tons of autocomplete, which is super neat.

12:09 let's see one thing else.

12:12 you can, if you do some kind of command, you're just talking about like Simon asking

12:16 ChatGPT for what does like a command mean.

12:19 So if you said like LS dash one, what does the one mean?

12:23 You know, you hover over the one, it'll like pop up a little documentation for what dash

12:28 one means.

12:29 Oh, that's cool.

12:30 Yeah.

12:30 also as AI built in, if you want, I haven't used that very much, but you could like say

12:34 hash, how do I, you know, write this kind of loop in bash or whatever.

12:38 And it'll, it'll print it out for you, but I don't use that one too much.

12:42 But anyway, super, super cool.

12:44 a lot of interesting things.

12:46 It has the control R history, kind of like, like McFly, which I've talked a lot

12:52 about how cool McFly is.

12:53 So even the single try for a few weeks, really enjoying it so far.

12:56 Cool.

12:57 Love to try.

12:57 So people can check that out and yeah, pretty neat.

13:01 Kim says, we've come a long way from a few years ago when windows terminal and awesome

13:05 is in the same sentence.

13:06 it's, I, yeah, I thought it was a joke also.

13:10 I didn't, I can't believe that you said that, but no windows terminal is it's, I don't

13:15 want to be on Wikipedia, but it is definitely, definitely nice.

13:19 So I'm not on my windows machine and I'm not sharing my terminal anyway, but let's see if

13:24 I can get it to show, hockey.

13:27 So like, and it doesn't really show it great, but you can click on this, like you set what

13:31 the default shell is that you want it to do, but you can click this.

13:35 It'll be like the bash shell, the, power shell, whatever that thing's playing music.

13:42 I can't take it.

13:43 But yeah, anyway, the windows, yeah.

13:45 Check out windows terminal.

13:46 It's actually good.

13:46 And Kim is right.

13:47 We've come a long ways, but yeah.

13:49 Okay.

13:50 All right.

13:51 All right.

13:51 Mm-hmm.

13:52 You convinced me, I think.

13:53 So let's try it.

13:54 Give it a, give it a try.

13:55 Give it a try.

13:56 All right.

13:57 What's your final thing?

13:57 People should check out warp.

13:59 It's, it's pretty neat.

13:59 I will.

14:00 Yeah.

14:00 Oh, hold on.

14:01 One more important thing here.

14:03 Mac only for the moment for people, but they're working on Linux and windows.

14:07 So you can like sign up to get notified if you're not a Mac person.

14:10 So just that caveat for now.

14:13 I, did you, I three, Python 3.7 end of life.

14:17 And I didn't even notice.

14:19 What?

14:20 So.

14:21 That was a good one.

14:22 That was one of the good ones.

14:23 You can trust that one.

14:25 So 3.7 end of life was in June and June 27th.

14:29 no, that was the first release.

14:31 End of, no, end of life also.

14:32 End of life.

14:33 6.27.

14:34 23.

14:34 Interesting.

14:35 But why did I not notice it?

14:37 I didn't notice it because everybody's like three, like you said, 3.7 was one of the good

14:41 ones.

14:42 We got, we have data classes in there.

14:44 f-strings came in 3.6 and they got improved in 3.7.

14:47 And then they, they got improved in 3.10 again.

14:49 and all sorts of stuff, but, but it is something to pay attention to, that

14:55 I had noticed the first notice today.

14:57 I was looking at the, VS Code announcement for the new, what was this?

15:03 Python for Visual Studio Code, October, 2020 release mentions, that, the 3.7 support

15:11 is still, it's still probably works, but they're deprecating 3.7 in support.

15:16 So just to be aware, I was also surprised if it didn't work because what was removed

15:23 in 3.8 that was in 3.7, like syntax wise, not functional wise.

15:29 I, I can't think of anything.

15:30 yeah.

15:32 So I, so there's a couple of projects or several projects that I'm supporting where I support

15:38 down to 3.7.

15:39 I dropped 3.6 a while ago.

15:42 but one of the things that catches me a lot, the, the, the remaining thing that catches

15:46 me, is, is annotations and specific.

15:50 I want to cover like if you really want to still support 3.7, or didn't know that it was this

15:56 easy, at least for the code I write.

15:58 The main thing is, is I like to use union types.

16:02 So, like to use this or type for unions.

16:05 And this came in in 3.10.

16:08 However, it, I, I can't find this documented anywhere, but to get it to work down to 3.7,

16:13 you can do, from futures from future import annotations.

16:18 And we've been used to using the from future for various things for a while, but it looks

16:23 like, like 3.7 might be the end of needing from future for a while.

16:27 I don't know.

16:28 Maybe they'll come up with something else that they're backboarding, but it doesn't look like

16:31 there's anything else right now, up to 3.12 that you need to go back down.

16:36 It's just, just, just annotations so far.

16:39 So, and I guess I want to show a little bit of an example for the annotations.

16:45 So, data for data classes, data classes are awesome because you can type the, the variable

16:51 that you're in using.

16:52 And, and then I often like to have it be none by default, which, so a string, it's going

16:59 to be a string or it's none.

17:00 So the, or none is easy just to do the, or none.

17:03 And I know you can do optional, but this is just visually more pleasing to me.

17:07 and to get that to work down to 3.7, it's, yeah, it's just the from future important

17:13 annotations and it'll work all the way down to 3.7.

17:15 So it's just what I wanted to mention.

17:17 and, I think that it's also good to be aware, I guess that, that, 3.7 is end

17:24 of life because some of the things you depend on might start dropping support for 3.7.

17:29 It's fair game at this point.

17:31 So, I mean, open source projects, they're a fair game to drop support for, everything

17:36 below 3.12 if they want to.

17:38 No one's, no one signed a contract with anyone here.

17:41 They can do what they want.

17:42 Yeah.

17:42 But it's, it's good to be aware of.

17:44 So.

17:44 It certainly is.

17:46 It certainly is.

17:46 That's a cool graph you got there too.

17:48 Yeah.

17:48 Yeah.

17:49 Is that in the, is that in the show notes?

17:50 Yeah.

17:50 It's from devguide.python.org, with the versions.

17:54 yeah.

17:55 Christian Lederman says, walrus was introduced in 3.8.

18:00 I don't know if you can do a from future import walrus.

18:04 I don't think so, but it's too bad.

18:06 If you do, you have to do an emoji, not the actual word walrus, but you got to put the

18:09 emoji of a walrus and then it'll work.

18:11 Well, I'm waiting for like emoji operators.

18:14 so that'd be fun to have.

18:17 Yeah.

18:18 Have to put not just can put, but you have to put emojis in your code.

18:22 So what happens when the cat raises its paw against an integer?

18:25 Oh, let me tell you, that one's really awesome.

18:27 Yeah.

18:28 yeah.

18:29 Some of those conversations like, Christian was saying that I think we're like, or I was

18:33 saying, you know, what is in three, seven, that's not in three, eight.

18:37 And those are all true.

18:38 All those things like there are new things, but if you wrote three, seven code and then

18:43 ran it against three, eight, it should still validate in my pie.

18:46 It should still work in Python, right?

18:49 There's no thing that was in three, seven that because my pie is not supporting it, it'll say,

18:54 well, that used to work and it doesn't work anymore because Python is pretty awesome and

18:58 stable like that.

18:59 There might have been, there was one point, I think it was in three, nine though, where

19:03 like the asyncio co-routine decorator was removed that caused all sorts of drama for me because

19:10 some library I was using didn't use the word async.

19:12 They just used the decorators, but even that a decorator should still validate in my pie with

19:17 that context.

19:18 Right.

19:18 So, yeah, I guess I want to, I'll, maybe I'll revisit my opinion of, supporting three,

19:24 eight or three, seven because, so we, we, we can use the wall.

19:28 Wallruss operator in three, eight, but Henry Schreiner also noticed that notes that,

19:33 the, the equal for f-strings so that you can say, like X equal and it'll print the

19:40 X equal.

19:41 That's super handy.

19:42 yeah, it's good for debugging.

19:43 Yeah.

19:44 And just having, having that stuff in your, in your code, like that'd be great.

19:48 So.

19:49 Yeah.

19:49 And these things are super small and subtle, like the wallruss operator.

19:52 I take, I took the website down with the wallruss operator once I said, I told that story

19:56 before.

19:56 Yeah.

19:57 Like not even the main website, just, it was in a little utility, but it got parsed

20:01 by the route finding thing and killed it.

20:03 All right.

20:04 Well, that's it for items, huh?

20:05 Yeah, it is.

20:06 Awesome.

20:07 Extras.

20:07 I got a couple since I got my screen up.

20:10 just one of the examples I showed was from a new plugin that I just released, called

20:16 pytest Paramscope.

20:17 and this allows you to, for parameterized fixtures or for parameterized tests to have

20:24 a startup, a startup that goes, a setup that happens before all the parameters and a teardown

20:29 that happens at the end.

20:30 It's still, the API is up, there's a warning here because there's the, the API might change

20:36 with respect to teardown, working on yield, yield functions for that.

20:41 I also, I was going to cover this as a full thing.

20:44 Oh yeah.

20:45 This is just sort of how you use it.

20:46 You get like a setup and teardown.

20:48 Oh no, this is, this is how I want to do it.

20:50 This is the change that I might do of adding yield.

20:52 So anyway, Simon Wilson, wrote a article called, stop defining people.

21:00 No, not Simon Wilson.

21:01 Sorry, Josh Simmons.

21:03 sorry, Josh, wrote an article called, stop defining people by what they are not.

21:10 and he was referring to non-code contributors and I kind of agree.

21:15 So I wanted to highlight this article.

21:16 This is, this is great.

21:18 Just basically saying all contributions are awesome and trying to, and elevating code

21:24 contributor contributors above non-code contributors is just not right.

21:29 So don't do that.

21:30 also it's just referring, I mean, if somebody only writes, just mostly helps with your

21:36 test code, you don't have to call them.

21:39 I mean, you can say somebody that's contributing test code.

21:42 You don't have to say, oh, that's non-code.

21:44 Well, that's, that's still code.

21:45 But anyway, you know what I mean?

21:46 people helping with documentation is great help.

21:50 People helping with writing tutorials is great help.

21:52 Everything is good.

21:53 So anyway, sometimes it's more important to have a good example so people can get started

21:58 quickly.

21:58 Oh yeah.

21:59 And like enjoy the project rather than like one more feature, you know?

22:02 Yeah.

22:03 And also things like, cleaning, triaging issues and answering questions and keeping,

22:09 you know, making sure that all the issues are closed when their things get fixed and all

22:13 that sort of stuff is, is it's tons of work.

22:15 So it's great help.

22:16 So yeah, absolutely.

22:18 Do you have any extras?

22:19 I got a couple quick ones here.

22:21 So open AI has released the beta version of their Python SDK.

22:26 It's pretty exciting.

22:27 So if you don't want to implement your own raw HTTP JSON parsing and hope that you got everything

22:35 right, you can just go there, start calling the functions that they write for you.

22:38 And it should be going nicely.

22:40 So it's still in beta, but people can check that out.

22:43 That's pretty awesome.

22:44 I think, was it here?

22:45 I can't remember somewhere.

22:46 No, it wasn't here.

22:47 Maybe it was on the linked article.

22:48 There was somewhere where there's a bunch of people whinging, like, why can't people just

22:52 call HTTP?

22:53 They're so lazy.

22:54 They want a library for it.

22:56 Like, you know what?

22:56 Maybe like let somebody else handle the evolution of that API.

23:00 You just call a stable Python set of functions and not worry about that.

23:04 Wouldn't call that lazy.

23:05 I would call that PyPI and call it awesome.

23:08 Anyway, so people are into open AI.

23:10 What do you need Python for?

23:12 Just call the raw C API.

23:15 Exactly.

23:16 Can I just do this with like a bunch of bash scripts and some curl?

23:20 Let's go.

23:20 All right.

23:21 So, sad news here is ChatGPT.

23:27 Oh, no.

23:27 Stack Overflow.

23:28 Probably because partly of ChatGPT.

23:30 Get that in order right there.

23:32 Stack Overflow is laying off 28% of their staff.

23:36 It's kind of surprising, huh?

23:37 Yeah.

23:37 Which turns out to be 100 to 200 people.

23:41 Like a lot of people.

23:42 Not like they had four people and they laid one of them off.

23:44 But it was really important.

23:50 What exactly would you say you do here?

23:52 No.

23:52 I didn't know that Stack Overflow had so many people working for them, though.

23:57 I know.

23:57 It was founded just by Joel Spolsky and Coding Horror Guy, whose name I don't remember.

24:04 Anyway.

24:05 But yeah, it's growing to be super, super big.

24:06 And I don't know, I always sometimes wonder, like, do you really need a thousand people to run that website?

24:11 I mean, maybe, but maybe you just don't.

24:14 Anyway, that's a whole different discussion.

24:16 But so there's some interesting conversation saying maybe this is because of ChatGPT and Google Copilot and all these other things.

24:25 Like, instead of going to Stack Overflow to go, how do I connect this type of thing to that type of database?

24:31 You can just ask your coding assistant or your chat buddy and you'll get a great example.

24:38 Oftentimes more specific, right?

24:40 Like, yeah, but I'm using this version.

24:42 Oh, well, if it's that version, you've got to pass this argument too.

24:44 Right.

24:45 Thanks.

24:45 Got it.

24:46 You know?

24:46 So this is pretty interesting.

24:49 Kind of odd or weird, like six months ago, Stack Overflow wrote a blog post that said, what's different about these layoffs in the tech industry?

24:57 Not us.

24:58 We're fine.

24:59 Everyone else.

25:00 And then, you know, six months later, you know, go back and read your own article, sadly.

25:05 So that's an interesting thing to be aware of, I guess.

25:09 Yeah.

25:10 Yuri Silovanov just pointed out or posted on the XT that UVloop18 is here with Python 2nd.

25:19 Python 3.12 support.

25:21 So I was trying to use 3.12 on a couple of the Talk Python things and the websites are like, nope.

25:27 UV loop, no.

25:29 AIO HTTP, definitely not going to work on Python 3.12, which is, I think AIO HTTP still doesn't work.

25:35 And sadly, some rummy dependency that I have is like using that library, which itself is not being upgraded to 3.12, at least as of like a few days ago.

25:45 So this gets me halfway there, the two things that wouldn't install.

25:48 One more to go.

25:49 Hanging in there for AIO HTTP.

25:51 Come on now.

25:51 Yeah.

25:52 Good news nonetheless.

25:52 Thanks, Yuri, for doing that.

25:54 Oh, and thanks, Kim, for reminding us that it was Jeff Atwood.

25:57 Yes, of course it was.

25:59 Thank you, Kim.

25:59 That's the guy that went by Coding Horror.

26:01 That's what happens when you have too popular of a nickname that you've given yourself, like Coding Horror.

26:06 Yeah.

26:06 In your blog.

26:07 Yeah.

26:07 Plus that logo or icon that he's got.

26:10 I can just see it in my head.

26:12 Yeah, too.

26:13 I can't.

26:13 Like the hair on fire.

26:14 Yeah.

26:14 Developer picture.

26:15 Yep.

26:15 Yeah.

26:16 All right.

26:16 Those are all my extras that I got for now.

26:18 Yeah.

26:20 Ready for a joke?

26:21 I am.

26:21 We might even have two jokes, but we'll see about that.

26:24 Yeah, I've got one I wanted to share also.

26:25 All right.

26:26 So this one comes from Command Line Magic, but was pointed out to us by Lizzie.

26:30 I said, I love it.

26:32 Hey, I'm Kennedy.

26:33 Maybe for the show.

26:34 And the Command Line Magic says, I've always read that global variables are bad.

26:39 So this is the Star Trek thing.

26:41 And can I make it bigger?

26:42 Yes.

26:42 The Star Trek thing shows, I can't remember this character's name, this woman scientist on a shuttle.

26:49 This is all from Star Trek.

26:50 And they're like going right through the near the edge of the sun to do some studying.

26:57 And she wants to be real careful to make sure that, you know, this ship doesn't melt.

27:01 So she says, computer, notify me if temperatures get too hot.

27:05 Beep, beep.

27:06 Please define hot, says the computer.

27:08 Let's say 1.9 million Kelvin.

27:10 Okay.

27:10 Fair.

27:11 Later, Captain Picard is at the like the little food making thing, you know, that materializes food.

27:18 It says, tea, Earl Grey, hot.

27:20 It just melts.

27:22 It just like, yeah, sets it at 1.9 million Kelvin in his captain's quarters.

27:26 Yeah, that's awesome.

27:28 Isn't that good?

27:29 Yeah, I like it.

27:30 Yeah.

27:31 A little too hot.

27:31 Somebody should test this.

27:32 Yeah, a little too hot.

27:33 Maybe that tea was real hot.

27:35 Yeah.

27:35 All right.

27:36 What's your joke?

27:36 So my daughter shared this with me and I just like, I haven't stopped giggling about

27:42 it.

27:42 So did you, have you, you've been to the Oregon Zoo, right?

27:46 Yes.

27:46 Yeah.

27:47 Did you, do you know there's a new exhibit there?

27:49 Ah, no.

27:51 It's just a baguette in a cage.

27:53 Oh.

27:53 It's bred in captivity.

27:55 Oh my gosh.

27:56 Bred in captivity.

27:58 Yeah.

27:59 That's hard to do.

28:00 You know, a lot of times you try, but it just doesn't happen, does it?

28:04 I guess they pulled it off.

28:04 Yeah.

28:05 Awesome.

28:06 So.

28:06 This bad, bad dad joke.

28:08 Those are very bad dad jokes.

28:10 But I was just thinking about going to the zoo.

28:12 I haven't been there since maybe a year.

28:14 I was thinking about taking my daughter back there.

28:16 So.

28:16 What's weird is we, we almost always go to zoo lights.

28:20 So.

28:21 Yeah.

28:21 But I, so I see a lot of animals, but they're all in, they're all in lights instead of actual,

28:27 the actual animals.

28:28 Exactly.

28:28 We need to go.

28:29 Yeah.

28:30 Just put them on the wall and have them flashing for Christmas.

28:34 That's right.

28:34 Yeah.

28:34 I actually, I really appreciate.

28:36 During COVID, they like started doing the drive-through zoo lights and they still do it like partway.

28:45 So you can do drive through for a couple of days or something.

28:48 And then they switched.

28:48 Okay.

28:49 The walking.

28:49 I like driving through.

28:51 It's nice.

28:51 So.

28:51 Yeah.

28:52 It was nice.

28:52 Definitely nice.

28:53 All right.

28:54 Well, we're coming up on the end of the year.

28:56 So we'll have to get a report on the zoo lights.

28:58 Yeah.

28:59 All right.

29:00 And the bread and captivity bread.

29:02 Bread.

29:02 Bread.

29:03 Bye.

29:04 All right.

Back to show page