Episode Transcript
Transcripts are displayed as originally observed. Some content, including advertisements may have changed.
Use Ctrl + F to search
0:00
Hello and welcome to Python Bytes, where we deliver
0:02
Python news and headlines directly to your
0:04
earbuds. This is episode 357 recorded October 17th.
0:09
And I am Brian Ocken. And I am Michael Kennedy.
0:11
And our show is sponsored by
0:14
us. Check out TalkPython training,
0:16
of course, this wonderful courses
0:18
from Michael and other people, including
0:20
myself and Patreon
0:24
supporters, of course, we love Patreon supporters,
0:28
we haven't really talked to him much lately to sending out emails.
0:30
I should do that more. And
0:32
lastly, the complete PyTest
0:35
course. Please check it out. If you want to learn PyTest
0:37
the fastest way possible. And
0:40
you can connect with us on
0:42
Mastodon, on Mastodon, on Fostodon,
0:44
both of those. And Michael's
0:47
at Mike at M Kennedy. I'm at
0:50
Brian Ocken and the show is at Python
0:52
Bytes. And you can also listen live.
0:54
If you head over to Python bytes.fm
0:56
slash live and you can watch it when we live
0:58
stream as we are right
0:59
now. So absolutely. So Michael,
1:02
let's kick it off with something hot. Let's
1:04
kick it off. I want to talk about
1:06
a couple of, well, something
1:08
I've learned from Glyph when I
1:11
was at PyBay last weekend, two
1:13
weekends ago, last weekend, I guess. Glyph gave
1:15
a really cool talk. Some of the talks
1:17
are starting to show up on YouTube, but it's
1:20
his talk is not there yet, or I would link to it. And
1:22
it was something along the lines of like how
1:24
to program your computer with Python, which
1:26
sounds silly because we're all
1:29
pretty good Python programmers. Like you should think,
1:31
okay, well I could do that. But this was about,
1:33
how do I automate stuff? How do I plug
1:36
into things? Like how can I automate
1:39
keynote to extract
1:42
show notes out to put into another document
1:45
or PowerPoint or, you know,
1:47
things along those lines. One of the things
1:49
that he both created and talked
1:52
about was this thing called Quick Mac
1:54
Hotkey, because you might want to have your
1:57
Python not have a UI you're
1:59
interacting with. But.
1:59
just be chilling in the background and if you hit a certain
2:02
hotkey, it does the thing, right? Yeah.
2:05
Yeah. So this quick Mac hotkey does that. And
2:07
basically, it's super simple to use.
2:10
It's just a set of minimal Python bindings
2:12
for macOS framework APIs
2:15
using... What is it? Use
2:17
for it to pull this off. Yeah, do it through
2:20
here. Oh yeah, PyOBJC,
2:23
I believe is what it's using. So you just
2:25
super easy to write some code. You want to have a
2:27
function that's called when a keystroke
2:30
is down, just give it the decorator quick
2:32
hotkey. And you say the virtual
2:35
key is the X, the modifier
2:37
is command control option.
2:40
So just hit all three of those plus X,
2:42
something that's most likely not going to interfere
2:45
with some other behavior and then boom, off
2:47
it goes. And look how simple that code is. Isn't
2:49
that nice? Yeah. Yeah, that's
2:51
pretty cool. Although I don't know if I can find
2:53
my command control and hotkey at the same time. Cool.
2:58
Yeah, I use a Windows keyboard, unfortunately,
3:00
because there's no ergonomic Mac keyboards.
3:03
Like, apparently Apple hates people and they
3:05
want them to have RSI for the rest of their life.
3:08
So doesn't they only make these... This is the window key to
3:10
map to the... Yeah, the window keys is just the command
3:12
key. Okay. So it's nothing
3:14
too fancy. So there's not a lot of depth and
3:16
then we got to dive into this other than how cool that
3:19
if you want to just add hotkeys here,
3:21
yeah, off you go. Okay, so when
3:23
you install it, does it just run all the time
3:26
or something? I think whenever
3:28
your app is running, like
3:30
so you can see the last line of this example says app helper
3:32
dot run event loop. So that's just
3:35
like set there in the background and just wait
3:37
for events. For example, it's this quick hotkey
3:39
callback when somebody presses that. So one
3:42
of those though could be exit and
3:44
just... I don't know how you exit the
3:46
event loop either raise an exception or just
3:48
exit or who knows. There's got to be a way
3:50
to get out of there. Reboot your computer. Exactly.
3:53
It's like them. You're just in there. Nice.
3:57
All right, over to you. I'm
4:00
going to talk about command lines applications
4:02
a little bit because Simon Wilson
4:04
had things I've learned about building
4:07
CLI tools in Python and I
4:09
really kind of like how all the stuff
4:11
he covered I really like them I mean,
4:13
this isn't a super in-depth like
4:16
how to write CLI tools But some
4:18
of the things like just high level when
4:20
you're writing command line applications It's
4:23
good to be rather consistent
4:25
with other command line applications to
4:27
make it easy to use because it's going to be Used
4:30
by people that like CLIs, right? So
4:33
The couple of option things
4:36
here Be consistent with
4:38
them with the terms. Well, you
4:40
have to kind of understand the terms, but there's commands. There's
4:43
arguments There's options and flags and
4:45
sometimes flags are options and
4:47
yeah, anyway So
4:50
commands that have our he's using click
4:52
application so the he actually talks
4:54
about click and also
4:57
using a cookie cutter template
4:59
that he Lists at hook
5:01
app on Simon W on github but
5:04
the or yeah cookie cutter
5:07
Template to build these which is cool.
5:10
I like typer and which is built on
5:12
top of click So anyway, but these
5:14
are these are still good good advice
5:17
like make sure that your options
5:20
What you know what options are and then make sure you
5:22
have like a short character So if
5:24
you have dash dash port also include
5:26
like Dash P in
5:30
As a short version because people are used
5:32
to that there's a
5:34
mostly just a lot of Description
5:37
around making sure your flags and options
5:39
and stuff are consistent and
5:42
I actually think people ought to get used to writing
5:44
more CLI apps because especially
5:46
for utilities for yourself and for
5:49
a team, they're great because You'll
5:52
use it all the time and it's it's you
5:54
get used to it. It's easier than building
5:57
a GUI application so
5:59
consistency everything, try to be consistent with
6:01
it. One of the great things, the
6:03
great advice here is pay
6:06
attention to your help message. So a lot
6:09
of CLI tools like Typer
6:12
and Click kind of build the help
6:15
for you so that it prints out like
6:17
the options and stuff that you can list
6:19
which is great but you have to go
6:21
in and add things like put
6:25
examples. So example uses of
6:27
like the entire application or the entire
6:30
option and how to use it. This
6:32
is extremely helpful and I really
6:34
appreciate it even just for myself so
6:37
that like six months from now I
6:39
can remember how to use it, things like that. So
6:41
include options in the help and then the other
6:43
thing is the lastly...
6:46
Oh, examples in help and
6:50
there's a couple other things. Oh, include
6:52
the output of your help in your online documentation
6:55
and there's ways to automate that but I
6:57
think that's great to just list it because I'm
7:00
looking for it when I'm looking at the like at the
7:02
bottom of the read me or something. The
7:05
lastly is if
7:07
you have a CLI that's being used by other
7:09
people, make sure that you version
7:11
it appropriately because
7:15
it is an API. A command line interface
7:17
can be used by other programs so
7:20
treated as an API even if the
7:22
other user is somebody's fingers. Because
7:25
if things change people should know about it. So anyway,
7:28
good application or a good
7:30
article about building command line applications and
7:33
then his cool cookie cutter template
7:35
for click apps. It's nice. Excellent.
7:37
Yeah, nice work Simon. A couple
7:39
of pieces of real-time follow-up here.
7:42
One, audience is on
7:44
point today. So Kim out there says
7:46
rich click is also fantastic
7:49
if you use click and I definitely
7:51
agree on that. So check it out. It's like click
7:53
but all the help messages
7:56
and stuff are in color using you know rich
7:58
and like little info box. and
8:00
stuff and then Rhett who
8:02
Rhett who was on talk python
8:05
to talk about programming Mac apps Mac
8:08
OS apps highlights that you
8:10
know This quick
8:12
hockey thing sounds like a good opportunity
8:14
for a rump menu bar app. So
8:17
rumps is awesome I was actually
8:19
thinking of adding this hockey thing exactly
8:21
for one of my rumps menu bar
8:23
apps Which is just an unfair
8:26
level of easy for building a Mac app that
8:28
your friends in your menu bar Cool. Yeah,
8:30
we've talked about that but it's been a while. It has
8:32
been a while, but you've got it for me I've got to go and
8:35
find it and like make it do the thing. I'm like,
8:37
you know what hotkey. Oh, yeah
8:39
Here we go. Now it's on now.
8:42
It's going to the next level. So yeah,
8:44
super cool All right That's not what I want to talk about but some
8:46
good real-time follow-up What I want to talk about
8:48
is warp and this is also an item
8:51
from pi bay and directly I ran into
8:53
Elvis who works there And have you heard
8:55
of warp Brian? No,
8:57
well, I mean warp speeds. Yes, I know
9:00
Okay, gotta resist the Star Wars references It's
9:03
super cool So what terminal do you
9:05
use like when you go to use the built-in
9:08
Mac one to use I term to or what's
9:10
your story? Well, I've used the built-in Mac
9:12
one On Mac and
9:14
then on Windows I use
9:17
the but Windows terminal. Well,
9:19
I I Was
9:21
a good one. No, the
9:24
the get bash Get for Windows
9:26
bash comes with bash. So I use
9:28
that. Okay. Yeah You should check out the Windows
9:30
terminal and then plug the get for bash into it You
9:33
get like it behaves better and you can pick
9:35
from like nine different shells and like things
9:37
that run inside the Windows terminal Anyway, hmm
9:39
Windows terminal is awesome But we don't have
9:41
Windows terminal on Mac which is just fine
9:43
because we have I term and other things But I want to tell you about
9:45
warp because warp is a new terminal
9:50
It's got quite a bit of energy behind it and
9:53
it's it's awesome So I think there's 30
9:56
people working this project if I remember correctly, but there's
9:58
there's a good number of people that are working
10:01
on building this new terminal based on
10:03
Rust. It even is programmed
10:06
in metal shaders. Metals are like the OpenGL
10:08
DirectX Mac equivalent for
10:11
making it super, super fast. But basically,
10:13
there's a bunch of shortcomings that always drove me crazy
10:16
about the terminal. And there's a lot of things
10:18
that are pretty nice here. So it's
10:20
a free thing for individuals. If you're a company, you got to pay
10:22
for it if you want to company features.
10:25
But it's worth checking out. So
10:28
for example, if you write something, Brian,
10:30
like I write some multi
10:32
line command, and you're like, Oh, no,
10:34
I forgot the quote at the beginning, you
10:36
know, how do you fix it in iterm?
10:39
Left arrow, left arrow, left arrow, left arrow, left arrow,
10:41
like even home doesn't work, you know, left arrow, left
10:43
arrow, left arrow, you wait and get back there and you type
10:46
the quote, right arrow, right arrow to get the focus
10:48
back, like clicking where
10:51
you want to be doesn't work. Right? For
10:53
example, well, he's used them key bindings
10:55
and just go there with them. Do
10:57
you have them key bindings in the
11:00
mat as the standard terminal? Yes, everywhere.
11:02
Yeah. Okay. All
11:05
right. But awesome. Well, so this
11:07
one, like basically all the stuff you type
11:09
at the bottom, or wherever you're typing is
11:12
like a full on editor, which also has them
11:14
key bindings. Yeah. Okay.
11:17
Okay. You can turn them on if you want.
11:19
But you can basically click in there and edit pieces
11:22
like you can double click, it'll select a word, you start typing
11:24
or places that super cool. It
11:27
has like a kind of a new way
11:29
to like keep your input
11:31
focused in one area, which is really nice. So
11:34
instead of it just being at the bottom of the screen, you can have
11:36
it like always at the top or always to the bottom. One
11:38
of the things that's cool is like it treats the output
11:41
of every command as solid
11:44
as one thing. So if I do like an LS
11:46
and there's like 50 lines and I tell
11:49
a catalog or something, there's like 1000 lines.
11:52
And then if you want to go back, you can actually
11:54
just go back by selecting
11:56
each block of that. So go back 1000 lines, go
11:58
back 50 lines. search, you can search
12:00
just that 50 line section from that
12:02
one command even though your terminal is full of junk. Super,
12:05
super cool. It does tons
12:07
of autocomplete which is super neat. Let's
12:10
see, one thing else. You can, if
12:13
you do some kind of command, you're just talking about
12:15
like Simon asking chat GPT
12:17
for what does like a command mean. So
12:19
if you said like ls-1, what does the 1 mean?
12:23
You know, you hover over the 1,
12:25
it'll like pop up a little documentation for
12:27
what dash 1 means. Oh,
12:29
that's cool. Yeah. Also has AI
12:32
built in if you want. I might use that very much but you could
12:34
like say hash. How do I, you know, write
12:36
this kind of loop in bash or whatever and
12:38
it'll, it'll print it out for you
12:41
but I don't use that one too much. But anyway, super,
12:43
super cool. A lot of interesting
12:45
things. It has the control R history
12:49
kind of like McFly
12:51
which I've talked a lot about how cool McFly is. So
12:54
giving this thing a try for a few weeks, really enjoying it so
12:56
far. Cool. I'm supposed to try it. Yeah. So
12:58
people can check that out and yeah, pretty
13:01
neat. Kim says we've come a long way
13:03
from a few years ago when Windows terminal in
13:05
awesome is in the same sentence. I
13:08
thought it was a joke also. I didn't, I
13:11
can't believe that you said that but. No, Windows
13:13
terminal is, it's, I
13:15
don't want to be on Wikipedia but it is definitely,
13:18
definitely nice. So I'm not on my
13:20
Windows machine and I'm not sharing my
13:22
terminal anyway but let's see if I can
13:24
get it to show hotkey.
13:27
So like, and it doesn't really show it great
13:29
but you can click on this, like you set
13:31
what the default shell is that
13:33
you wanted to do but then you can click this and it'll be like
13:36
the bash shell, the power
13:40
shell, whatever. That thing's playing
13:42
music, I can't take it. But yeah, anyway,
13:44
the Windows, yeah, check out Windows terminal. It's actually good
13:47
and Kim is right. We've come a long ways but
13:49
yeah. Okay, all right.
13:52
You convinced me I think. So let's try it.
13:54
Give it a try, give it a try. All right,
13:57
what's your final thing? People should check out Warp, it's
13:59
pretty neat. I will, yeah. Oh,
14:01
hold on. One more important thing here. Mac
14:03
only for the moment for people,
14:05
but they're working on Linux and Windows. So you can
14:08
sign up to get notified if you're not a Mac
14:10
person. So just that caveat
14:12
for now. Python 3.7
14:17
end of life, and I didn't even notice.
14:20
What? That was a good one.
14:22
That was one of the good ones. You can trust that
14:24
one. So 3.7 end
14:26
of life was in June, in June 27th. No,
14:30
that was the first release. End of
14:32
life also. End of life, 6.27.23. Interesting.
14:35
But why did I not notice it? I didn't notice
14:38
it because everybody's... Like
14:40
you said, 3.7 was one of the good ones. We
14:42
have data classes in there. Fstrings
14:44
came in 3.6, and they got improved
14:47
in 3.7, and then they got improved in 3.10 again,
14:50
and all sorts of stuff. But
14:52
it is something to pay attention to. The
14:56
first notice today was
14:58
looking at the VS Code announcement
15:01
for the new... What was this? Python
15:04
for Visual Studio Code, October, 2020. Re-release
15:07
mentions that the 3.7
15:11
support, it still probably
15:13
works, but they're deprecating 3.7 in support. So
15:17
just to be aware. I
15:19
was also... I'm surprised if it didn't work because
15:22
what was removed in 3.8, that was
15:24
in 3.7, like syntax-wise, not
15:28
functional-wise, I can't think of anything.
15:31
Yeah. So there's
15:34
a couple of projects or several projects that
15:36
I'm supporting where I support
15:38
down to 3.7. I dropped 3.6
15:41
a while ago. But one of the things
15:43
that catches me a lot, the remaining
15:46
thing that catches me is
15:48
annotations and specific... I
15:51
want to cover... If you really want to still support 3.7
15:55
or didn't know that it was this easy, at
15:57
least for the code I write, the main thing is... is
16:00
I like to use union types. So
16:03
I like to use this or type for unions.
16:06
And this came in in 3.10. However,
16:08
I can't find this documented
16:11
anywhere, but to get it to work down to 3.7, you
16:14
can do from future import
16:16
annotations. And
16:19
we've been used to using the from future for
16:21
various things for a while, but it looks like 3.7 might
16:23
be the end of
16:25
needing from future for a while. I don't know,
16:28
maybe they'll come up with something else that they're backboarding.
16:30
But it doesn't look like there's anything else right
16:32
now up to 3.12 that you need
16:35
to go back down. It's just
16:38
annotations so far. So I
16:41
guess I wanna show a little bit of an example
16:43
for the annotations. So for
16:46
data classes, data classes are awesome
16:48
because you can type the variable
16:51
that you're using. And then
16:54
I often like to have it be none
16:56
by default, which so a string,
16:59
it's gonna be a string or it's none. So
17:01
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
17:06
more pleasing to me. And to
17:08
get that to work down to 3.7, it's
17:11
just the from future import annotations
17:13
and it'll work all the way down to 3.7. So just
17:16
what I wanted to mention. And
17:19
I think that it's also good to be aware, I
17:21
guess that 3.7 is end of life
17:25
because some of the things you depend on
17:27
might start dropping support for 3.7. It's
17:30
fair game at this point. So I
17:32
mean, open source projects, they're fair
17:34
game to drop support for everything
17:36
below 3.12 if they want to. No
17:39
one's signed a contract with anyone here. They can do
17:41
what they want. Yeah, but it's good
17:43
to be aware. So it certainly is. That's
17:47
a cool graph you got there too. Yeah, yeah. Is
17:49
that in the show notes? Yeah, it's from devguide.python.org
17:53
with the versions. Yeah,
17:56
Christian Lederman says, Walrus
17:58
was introduced in 3.8. I don't know
18:01
if you can do it from future import walrus.
18:03
I don't think so So
18:06
do you have to do an emoji? Not the
18:08
actual word walrus, but you got to put the emoji
18:10
of a walrus and then it'll work Well i'm
18:12
waiting for like emoji operators.
18:15
Uh, so that'll be fun to have
18:17
Yeah have to put not just can
18:19
put but you have to put emojis in your code
18:22
So what happens when the cat raises its paw
18:24
against an integer? Oh, let me tell you that one's
18:27
really awesome. Yeah Uh,
18:29
yeah, some of those conversations like uh christian
18:31
was saying that I think where like or I was saying
18:34
You know, what is in three seven that's not in
18:36
three eight and those are all true all
18:38
those things like there are new things But if
18:40
you wrote three seven code and then
18:43
ran it against three eight It should still
18:45
validate in my pi it should still work
18:48
in python, right? There's no thing that was in
18:50
three seven that because my
18:53
pi is not supporting it It will say well that used
18:55
to work and it doesn't work anymore because python
18:57
is pretty awesome and stable like that There might
18:59
have been there's one point. I think it was in
19:01
three nine though where like
19:03
the async i-o Co-routine
19:06
decorator was removed that caused all sorts
19:08
of drama for me because some library
19:10
I was using didn't use the word async They
19:13
just used the decorators, but even that
19:15
a decorator should still validate in my pi with
19:17
that context, right? Yeah I
19:19
guess I want to i'll um, maybe i'll
19:21
revisit my opinion of uh Supporting
19:24
three eight or three seven because
19:26
uh, so we we can use the walrus
19:29
operator in three eight but henry
19:31
schreiner also noticed that notes that
19:33
um, The the equal
19:35
for f strings so that you can say um,
19:38
like x equal and it'll print
19:40
the x equal That's super handy.
19:42
Um, yeah, that's good for debugging Yeah, and just
19:44
having having that stuff in your uh in
19:47
your code like that'd be great So
19:49
yeah, and these things are super small and subtle
19:51
like the walrus operator I take I took the website
19:54
down with the walrus operator once I said I told
19:56
that story before Yeah, and like
19:58
not even the main website just it was in a little utility
20:00
but it got parsed by the route finding
20:02
thing and killed it. All right. Well, that's it for items,
20:05
huh? Yeah, it is. Awesome. Extras,
20:08
what you got? I got a couple since I got
20:10
my screen up. Just one of the examples
20:12
I showed was from a new plugin
20:14
that I just released called PyTest
20:16
Param Scope. And this allows you
20:18
to, for parameterized
20:21
fixtures or for parameterized tests, to
20:23
have a startup that
20:25
goes, a setup that happens before all
20:27
the parameters and a tear down that happens at the end.
20:30
It's still the API is up.
20:33
There's a warning here because there's the API might
20:36
change with respect to tear down working
20:39
on yield functions for that. I
20:42
was going to cover this as a full thing. Oh,
20:44
yeah, this is just sort of how you use it. Like
20:47
a setup and tear down. Oh, no, this is
20:49
how I want to do it. This is the change that I might do
20:52
of adding yield. So anyway, Simon
20:55
Wilson wrote
20:58
an article called Stop Defining
21:00
People. No, not Simon Wilson. Sorry.
21:03
Josh Simmons. Sorry, Josh. Wrote
21:06
an article called Stop Defining People
21:08
by What They Are Not. And
21:11
he was referring to non-code contributors.
21:14
And I kind of agree. So I wanted to highlight this
21:16
article. This is great. Just
21:18
basically saying all contributions
21:20
are awesome and trying to
21:23
end the elevating code contributors
21:25
above non-code
21:27
contributors is just not right. So don't do
21:29
that. Also, it's just referring.
21:32
I mean, if somebody only writes just
21:35
mostly helps with your test code,
21:38
you don't have to call them. I mean, you can
21:40
say somebody that's contributing test code. You don't
21:42
have to say, oh, that's non-code. Well, that's
21:44
still code. But anyway, you know what I mean. Yeah.
21:47
People helping with documentation is great help. People
21:50
helping with writing tutorials is great help.
21:52
Everything is good. Sometimes
21:55
it's more important to have a good example
21:57
so people can get started quickly. enjoy
22:00
the project rather than like one more feature, you know.
22:02
Yeah and also things like cleaning,
22:05
triaging issues and answering
22:07
questions and keeping, you
22:09
know, making sure that all the issues are closed
22:11
when things get fixed and all that sort
22:13
of stuff is tons of work. So
22:16
it's great help. So yeah, absolutely.
22:18
Do you have any extras? I got a couple quick
22:20
ones here. So OpenAI has released
22:23
the beta version of their Python SDK.
22:26
It's pretty exciting. So if you
22:29
don't want to implement your own raw
22:31
HTTP JSON parsing
22:33
and hope that you got everything right, you just
22:36
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
22:42
check that out. That's pretty awesome. I think was it
22:45
here? I can't remember somewhere. I know it wasn't here.
22:47
Maybe it's on the linked article. There was somewhere where there's
22:49
a bunch of people whinging like, why
22:52
can't people just call HTTP? They're so
22:54
lazy. They want a library. We're like, you know what?
22:56
Maybe like let somebody else handle the
22:59
evolution of that API. You just call a stable
23:01
Python set of functions and not worry
23:03
about that. Wouldn't call that lazy. I would call that
23:05
IPI. Call it awesome.
23:08
Anyway, so people are into OpenAI.
23:10
What do you need Python for? Just
23:12
call the raw C
23:14
API. Exactly. Can
23:16
I just do this with like a bunch of bash
23:19
scripts and some curl? Let's go. All right. So
23:22
sad news here is
23:25
chat GPT. No, stack
23:28
overflow. Probably because partly
23:30
a chat GPT. Get that in order right there.
23:32
Stack overflow is laying off 28% of their
23:35
staff. It's kind of surprising, huh? Yeah.
23:38
Which turns out to be a hundred to 200 people. Like a lot
23:41
of people, not like they had four people and they
23:43
laid one of them off. But it was really
23:46
the important.
23:50
Well exactly what you say you do here. No.
23:54
I didn't know that stack overflow had so many people
23:56
working for him though. I know. It was
23:58
founded just by Joel Spence. Bolsky
24:01
and Cody nor a guy
24:03
whose name I don't remember anyway But yeah, it's going
24:05
to be super super big and I don't know I
24:07
always sometimes I wonder like do you really need a
24:10
thousand people to run that website? I mean maybe
24:12
but maybe you just don't Anyway,
24:15
that's a whole different discussion. But So
24:18
there's some interesting conversation saying maybe
24:20
this is because of chat GPT and
24:22
Google co-pilot And all these
24:24
other things like instead of going to Stack Overflow
24:27
to go How do I connect this
24:30
type of thing to that type of database? You
24:32
can just ask your coding assistant
24:34
or your chat buddy and
24:36
you'll get a great example Oftentimes more
24:39
specific right like yeah, but I'm using this
24:41
version. Oh, well if it's that version you got to pass this
24:44
argument, too Right. Thanks. Got it. You
24:46
know, so this is pretty
24:48
interesting Odd
24:52
or weird like six months ago Stack Overflow
24:54
wrote a blog post that what's different about these layoffs
24:57
in the tech industry Not us. We're fine
24:59
everyone else and then you know six months
25:01
later You know go
25:04
back and read you an article sadly So that's
25:07
an interesting thing to be aware
25:09
of I guess. Yeah, Yuri Sullivan
25:11
a Sullivan of just pointed
25:13
out or posted on the
25:16
X that UV loop 18 is
25:18
here with Python 12 a 312 support So
25:22
I was trying to use 312 on
25:24
a couple of the talk Python things and
25:26
the websites like new UV
25:28
loop no a I O HTTP definitely
25:31
not gonna work on Python 312 Which is
25:33
I think a I O HTTP still
25:35
doesn't work and sadly some rummy
25:38
dependency that I have is like Using
25:40
that library which itself is not being upgraded 312
25:43
at least as of like a few days ago So
25:45
this gets me halfway there the two things that wouldn't
25:48
install one more to go hanging in there for
25:50
a I O HTTP Come on now. Well, yeah, good
25:52
news nonetheless. Thanks. You're a for do that. Oh,
25:54
and thanks Kim for reminding us that
25:56
it was Jeff Atwood Yeah, of course. It
25:58
was. Thank you, Kim. That's That's the guy that went
26:00
by coding or that's what happens when you have too popular
26:03
of a Nickname that you've given yourself
26:05
like coding horror. Yeah blog. Yeah,
26:07
plus that love the the Logover
26:09
icon that you got I could just see it in
26:12
my head. So I can't like the hair on
26:14
fire Yeah, you know a picture. Yep. Yeah.
26:16
All right. Those are all my extras that I got for now Yeah
26:20
ready for a joke. I am we might
26:22
even have two jokes, but yeah, I've got one I
26:24
wanted to Cheryl so all right So this
26:26
one comes from command line magic,
26:29
but was pointed out to us by Lizzie and
26:32
I love it. Hey, I'm Kennedy maybe for the show and The
26:35
command line magic says I've always read
26:38
that global variables are bad So this
26:40
is a Star Trek thing and I'm gonna make you bigger.
26:42
Yes, the Star Trek things shows I
26:45
can't remember this character's name this woman scientist
26:48
on a shuttle for this all from Star
26:50
Trek and they're like going right through The
26:53
near the edge of the Sun to do
26:56
some studying and she wants to be real
26:58
careful to make sure that you know This
27:00
ship doesn't melt and so she says computer
27:03
notify me if temperatures get too
27:05
hot beep beep Please define hot
27:07
says the computer. Let's say 1.9 million
27:09
Kelvin. Okay fair later captain
27:12
Picard Is that the
27:14
like the little food making thing?
27:16
You know that materializes food. It says
27:18
he Earl Grey hot Just
27:21
mouth. They just like yeah set to the 1.9
27:24
million Kelvin in his captain's
27:26
quarters Yeah,
27:30
like it yeah Maybe
27:33
that's bad tea was a real hot. Yeah,
27:35
okay. What's your joke? Oh my
27:38
so my daughter shared this with me and I just like
27:40
kids. I haven't stopped giggling about
27:42
it. So Did you have
27:44
you been to the Oregon Zoo, right? Yes. Yeah,
27:47
did you do you know there's a new exhibit there? It's
27:51
just a baguette in a cage. Oh,
27:53
it's bread and captivity. Oh
27:56
my gosh bread and captivity That's
28:00
hard to do, you know, a lot of times you try,
28:02
but it just doesn't happen, does it? I
28:04
guess they pulled it off. Yeah. Awesome.
28:07
Bad dad joke. Those are very
28:09
bad dad jokes. I was just
28:11
thinking about going to the... I haven't been there since maybe
28:14
a year. I was thinking about taking my daughter back
28:16
there. What's weird is we
28:18
almost always go to zoo lights. So
28:22
I see a lot of animals, but they're all
28:25
in lights instead of actual... the actual
28:27
animals. Exactly. Yeah,
28:30
just put them on the wall and have them
28:32
flashing for Christmas. That's right. Yeah.
28:36
I actually really appreciate the... During COVID, they
28:38
like started doing the drive-through
28:40
zoo lights and they
28:43
still do it like part way,
28:45
so you can do drive-through for a couple days or
28:47
something and then they switch to walking. I
28:50
like driving through. It's nice. Yeah,
28:52
it was nice. Definitely nice. All
28:54
right. Well, we're coming up on the end of the year, so
28:56
we'll have to get a report on the zoo lights.
29:00
Yeah. And the bread and the captivity bread. Bread.
29:03
Bread.
29:04
Bye. All right.
Podchaser is the ultimate destination for podcast data, search, and discovery. Learn More