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 earbuds. This
0:04
is episode 371 recorded February 13th, 2024 day before
0:06
Valentine's day. I
0:11
am Brian. I am Michael Kennedy.
0:13
Uh, this episode is sponsored by scout
0:16
APM. Listen to what we have to
0:18
say about them later in the show.
0:20
If you want to connect with us,
0:22
of course we're on mastodon and fosted
0:24
on we're at M Kennedy at Brian.
0:26
Knock and at Python bytes. And you
0:28
can always join us live, um,
0:30
on YouTube at Python bytes.fm slash live.
0:33
And we'd love to have you on
0:35
the show if you, or, you know,
0:37
with us while we're recording, it's fun.
0:39
So, um, and let's just
0:42
kick it off with, uh, with some, I'm a
0:44
little hungry. Do you have any apples? Maybe I
0:46
can eat. I'll see what
0:48
I'm finding the crate now. So I do
0:51
let's kick it off. So this one
0:53
comes to us from Rhett turn ball
0:56
turn balls, excuse me. And Rhett has
0:58
done a ton of interesting things
1:01
with Python and Mac applications. I had
1:03
him on talk Python. Remember we talked
1:05
about text sniper at one point here
1:07
on the show. And then he created
1:10
text and nator, which is a thing you
1:13
can basically screenshot something on your
1:15
screen, which then will OCR it right away
1:17
in memory and then just copy the text,
1:19
which is excellent. You know, so like, if
1:21
you're watching a video and they say, here's
1:23
the URL, instead of trying to shuffle around
1:25
and figure it out, you just hit
1:27
a button, highlight it, you know, in
1:30
the screen and boom, you you've got
1:32
that text, right? So when we talked
1:34
about PI app from, um, uh,
1:37
from the hatch project and effect, he was
1:39
like, that looks awesome. I want to try
1:41
some variations on this. And he played with
1:43
it. He said, it does in fact look
1:45
really cool. In fact, he said, holy cow.
1:48
That's amazing. But one
1:50
of the things that it, uh, it doesn't do
1:52
is actually build, uh, build
1:55
an installer. So depending on your
1:57
operating system, you know, primarily this.
2:00
happens more on Mac and Windows, less
2:02
on Linux, right? That's more of a
2:04
like a package manager sort of type
2:06
of thing to get apps over there.
2:08
But on a Mac and Windows, it's
2:10
real common to have something that runs
2:12
installer, puts something in certain locations, maybe
2:15
changes your path, so it's accessible, right,
2:17
all those kinds of things. So to
2:20
your point, we have Apple Crate.
2:22
And Apple Crate is
2:24
a, it says package your command
2:27
line tools into a native
2:29
Mac OS installer. And I'll just get it on the
2:31
screen shot real quick. So it says
2:33
install whatever it is, and you get an
2:35
installer and a license and like all this
2:37
process to install your app, right? This is
2:39
awesome for people who are when you would
2:41
say, okay, all you got to do is
2:43
make sure you have Python 3.10
2:45
or greater on your machine, have that in the path. And
2:48
then then what you're going to do is you're going to
2:50
create a virtual environment, are you going to put them self-pip
2:52
X and then you're like, wait, wait,
2:54
wait, what's happening, right? You just want to go double
2:56
click it, you'll have it. You know what I mean?
2:58
And so that's what this does, right? So what
3:00
you can do is you just say Apple Crate
3:02
build, what is the name of the app? What
3:05
is the version? What is the license file? What
3:07
binaries and stuff to include? And then
3:09
where does it go? And it'll go
3:11
and create this installer. And you can
3:13
even do this through code if you
3:15
want to somehow automate via Python, you
3:18
want to automate this creation of the
3:20
installer, installer build. So isn't that cool?
3:22
Yeah, actually, that's pretty neat. Yeah. So
3:24
it says it's nothing that you couldn't
3:26
do yourself, but there's a bunch of
3:28
steps and different tools that are involved.
3:31
It also uses Jinja too. So a
3:34
templating thing, I'm not sure how
3:36
many people are familiar with this
3:38
concept, but the template language is
3:40
like Jinja and Chameleon and others
3:42
and Mako, they're known for
3:44
being, here's how I put dynamic stuff in
3:47
HTML and Flask, or here's how I return
3:49
something that's a web page from fast API
3:51
or whatever it is you're talking about, right?
3:54
Yeah. But those things are independent libraries, for
3:56
the most part, and they can be used
3:58
to generate anything you want. So
4:01
for example, you could have a
4:03
JINJA file that is like
4:05
a transactional email. So at TalkBython, people will come
4:07
and say, hey, I forgot my password. You wouldn't
4:10
believe how popular that feature is.
4:12
I forgot my password. And you wanna give them
4:14
the same thing. Like here's a little design, here's
4:16
a picture, sorry, I forgot your password, here's what
4:18
you do. You know, cause I'm not doing that
4:21
first. Like the web app handles that. But there's
4:23
parts where you wanna put like chunks of data.
4:25
So here's your unique code you click, and then
4:27
on link you click to actually do the reset.
4:29
For you, right, so that could just
4:31
be a JINJA thing that runs a
4:34
JINJA file template that just runs JINJA
4:36
through it to actually generate what goes
4:38
in the email. It's
4:40
not a web view or a web request or
4:42
anything like that, right? Yeah. So you can do
4:44
the same thing here. You can use JINJA two
4:47
templates to generate files that are required. So it
4:49
allows you to pass in variables like what is
4:51
the name of the app? Or what is the
4:53
version of the app? And different things. So you
4:56
can kind of script the generation of say, like
4:58
the license file or whatever with
5:00
JINJA, which is, you know, really a
5:02
pretty nice touch, I think. Also, it's
5:04
a friend of the Toml. It's friendly
5:06
with the PyProject Toml and it has
5:08
its own app create.toml if you don't
5:11
wanna mix those together. Yeah, I have
5:13
mixed feelings about mushing everything into PyProject.toml.
5:16
Like you can have rough in there, but
5:18
I have my own rough.toml instead of, you
5:20
know, tool.rough inside of the PyProject Toml. I
5:22
don't know, could go either way with that
5:24
one. But anyway, this is it. And it
5:26
shows you the different template variables you can
5:28
use and, you know, to like generate your
5:31
output. And yeah, people, if this is something
5:33
you're trying to do, check it out, it
5:35
looks really cool. And keep up the
5:37
momentum, right? Well done. That is
5:39
pretty cool. On the Toml front, I kind
5:41
of agree that I used to be on
5:43
the bandwagon of like, let's put everything in
5:46
PyProject at normal. But, and then
5:48
rough came along and had, I have
5:50
like a huge rough config. Well,
5:53
not huge, but it's larger than a lot of other
5:55
stuff. So I do things that are big. I do
5:57
like to put those in their own little separate thing.
6:00
Yeah exactly. And also you just look glance over
6:02
see the proteolysis using ruff. Got it says a
6:04
rough that Hamas. As
6:06
that to, I'm okay. Speaking of
6:09
packaging, it's Packaging was the Sacraments
6:11
Market Packaging episode and com there
6:13
is a so there's a lot
6:16
of ways to back stuff and
6:18
the or Ned Batchelder, a friend
6:20
of the show came out with
6:23
a bug post called the One
6:25
way the package Python code right
6:27
now and I kind of like
6:30
that This discussion in the discussion
6:32
really is maybe we don't need
6:34
something to generate like your. Package
6:37
directory maybe just like an example.
6:39
So so he just has a
6:41
package sample get have repo that just
6:43
as an example. And in the
6:45
read me there's a bunch of stuff
6:47
like discuss discussing what you need to
6:50
think about. For once the entire example
6:52
is a good example. You can just
6:54
use this and like copy uttered
6:56
something and then I modify your own
6:59
stuff. They yeah I'm a one Caveat:
7:01
I would like me personally make the
7:03
read: music restructured text. I would
7:05
totally. Go with marked down instead restructured
7:08
tell that one hundred percent vs. However,
7:10
a lot of common things here I'm
7:12
things to think about like decisions that
7:14
you need to make before he had
7:16
started. like what's your project name air
7:18
with a hint of like search for
7:20
the name that you want and pipe
7:22
he I just to make sure that
7:25
it's not they are already in. I
7:27
recommend this for even people that don't
7:29
plan on pushing it by be I
7:31
if you're only going to use a
7:33
project on your own, internal A or
7:35
something is specific. And share with others
7:37
within your company. Don't collide with
7:40
something original pipe yeah because it
7:42
will be annoying and co how
7:44
did how to do with the
7:46
version number ah doing optional features
7:48
so and then talks about what's
7:50
in the repo and and what
7:52
he's included is the source directory,
7:54
source packaging of com the come
7:56
back and forth on that. but
7:58
I do think. The best way
8:00
to do it is a guy project
8:03
and then or Src directory and then
8:05
the project directory and or that seems
8:07
like just one extra directory but it's
8:10
consistent in it's fine. I did learn
8:12
a little bit So one thing I
8:14
there's an example pie project or Tamo.
8:17
With some with some comments it's very
8:19
heavily commented which is great. I'm talking
8:21
about in a different pieces and it's
8:24
not. It's a kind of a minimal
8:26
said. It's not a whole bunch of
8:28
stuff here. Which is
8:30
good. The Air: A Dev Requirements: I'm
8:33
insert you can have a a Dev
8:35
optional install on pie project that tamo
8:37
but a Dev requirements is also something
8:40
that's very common. A reforms that extra
8:42
the read me I'm I actually there's
8:44
a license and get ignore having an
8:46
example Get a nurse Good One of
8:49
the things that was new to me
8:51
is editor can say get as sick
8:53
as seen that before but I didn't
8:56
know that that was. the thing is
8:58
you know it said.editor can. Fake was
9:00
a thing. Know what does that work
9:02
with? I know about the.idea of sub
9:05
folder for by time and the.vs code
9:07
one for Vs code. but attorney thing
9:09
about this. the idea is like this:
9:11
A as you can say dot Org
9:13
which I am. I popped it open.
9:15
It's a a can seek file that
9:18
configures. It's sort of a global configuration
9:20
for different editors and some of them
9:22
support it natively. In some some you
9:24
have to get out of them. yeah,
9:26
a plugin or something. So for instance,
9:29
all of the I'm. Like
9:31
all of the jet bread stuff supports
9:33
it until J and all that I
9:36
term supports it of Visuals them supporters
9:38
V and Visual Studio a Visual Studio
9:40
code. You have to have a plugin
9:43
to do that but it is available.
9:45
The plugin so cool that is used
9:47
to me assets and we jack and
9:50
I asked yeah it's for at em
9:52
like a cool all maybe try That
9:54
is because sometimes I do pop around
9:56
with different hunters and be nice to
9:59
have one. Fig maybe area we
10:01
try it or the other thing I
10:03
like is a small make file. I've
10:05
kind of gum back and forth on
10:07
this also but if it's if you're
10:09
comfortable with make files or the people
10:11
working in your project arguments or use
10:13
em if I if is the only
10:15
one as comfortable there may be, don't
10:17
but I'm a cannon. A nice minimal
10:19
set of things to put in near
10:21
make file to stuff that you have
10:23
to do with your and your project
10:25
like. Tools
10:27
Make Tools would do I
10:29
install. The Dev requirements so it
10:31
would you know I would probably
10:33
make that make dez instead of
10:35
make tools but you know whenever
10:37
an attitude distribution eyes using twine
10:39
and so are testing and pipe
10:42
guy and and then make pipe
10:44
you guys. Who
10:46
can I probably would not right that as
10:48
like make distribute or something but you know
10:50
can a nice to have an example. So.
10:54
So famous of the the other thing I
10:56
want us to say was he did shout
10:58
out to the pipe gave hi p. A
11:00
Packaging Python Projects tutorial and I
11:02
also agree that if you want
11:04
to get into the nitty Gritty
11:06
so his examples great Sir Fred
11:08
Minimal set but if you really
11:11
want to understand everything is a
11:13
great. References the Sia a python.org
11:15
Packaging Python Projects page. Excellent.
11:17
Yeah, I read that or I saw that
11:19
article and. Skim through
11:22
at I guess that I way put of
11:24
from Ned now if so innocent party covered
11:26
it to agree that a minimalist yeah I
11:28
see like I give me my cookie cutter
11:30
thing and there's always be I was gonna
11:32
generate this lessons as but I don't want
11:34
to use your name, your aspect I don't
11:37
want to use Reddit in this thing or
11:39
I don't want to use as react build
11:41
steps In this particular right there is always
11:43
be over specified a lot of those template
11:45
building things you know they're also I'm. Over
11:48
that a great A Comment in his thing
11:50
was a that there's a lot of people
11:52
the just have some Python code that they
11:54
need to distribute like they're not. It isn't
11:56
a whole bunch of stuff and saw complicated
11:59
so please don't. Yeah. Please don't tell
12:01
me that exile the details. I don't
12:03
want to care about the history and
12:05
all the different tools to show me
12:07
how to do it. So here's the
12:10
an example. So excellent are a bit
12:12
of a real time follow up in
12:14
re other says I'll this quick search
12:16
their eight thousand projects on pipe. Yeah
12:18
these projects that Hamas or eighty of
12:20
them use ruff Tom are based on.
12:22
as this is interesting I think he
12:25
would maybe a maybe a way to
12:27
think about that is like you've gotta
12:29
ship your pi. Project.tama like it's your
12:31
new set of.pie it's it's part of
12:33
you know I to has to be
12:35
there right to get the thing to
12:37
install whereas ruff a dot tomboy you
12:39
don't see like for example, I just
12:42
shipped a new version of Umami Python
12:44
for some updates there this morning and
12:46
if you look the source I've got
12:48
like the get ignore an the ruff
12:50
Tamo but the thing that actual actually
12:52
gets shipped is is like a different
12:54
subset of that thing that doesn't include
12:56
so I'm not sure the absence of
12:58
it necessarily means anything but. Yeah it
13:01
would be interesting to know like what
13:03
that ratio is. Also the rusty faults
13:05
are not bad so I think a
13:07
lot of projects i use ruff don't
13:09
have any settings and just their run
13:11
it vanilla L a C which ones
13:13
do I feel like a super important
13:15
very few so I think the line
13:17
like this way to sort at seventy
13:19
nine I mean i about thirty two
13:21
inch monitor. Either. For don't want
13:24
to work in like a third of it
13:26
on the last year. I mean with ah
13:28
of and then the I'm I'm a fan.
13:30
A single quotes, not double hoods and so
13:33
on. and then such as ruff. pretty much
13:35
the the stuff that matters to me but
13:37
he know what else is really nice brain
13:39
our sponsor. Yes! So we want to thank
13:41
Scout A Pm or the subsidies brought to
13:44
you by Scout A Pm. Are you tired
13:46
of spending hours trying to find the root
13:48
cause of issues impacting performance? Then you? Oh,
13:50
it's yourself to check out our sponsor this
13:52
week. Scout. a pm scout a
13:55
pm is a leading python application
13:57
performance monitoring tool monitoring tool they
13:59
have you identify and solve performance
14:01
abnormalities faster and easier. Scout APM
14:03
ties bottlenecks such as memory leaks,
14:06
slow database queries, background jobs, the
14:08
dreaded in plus one queries problem
14:10
common with ORMS and more directly
14:12
to your source code. So you
14:14
can spend less time debugging and
14:17
more time building. You'll love Scout
14:19
because it builds, it's built for
14:21
developers by developers. Scout makes it
14:23
easy to get set up and
14:25
deliver insights in less than four
14:27
minutes. Seriously, you could pause this
14:30
episode, set up Scout and
14:32
be back at it without missing
14:34
a beat. And the best part,
14:36
Scout's pricing is affordable and straightforward.
14:38
Only pay for the data you
14:40
use, no hidden the overage fees
14:42
or per seat pricing. Start your
14:44
free trial and get instant insights
14:46
today. Visit pythonbytes.fm slash Scout and
14:48
please use our link because it
14:50
does truly support the show. Let's
14:52
move on to the next
14:54
item here. And this one comes from
14:57
Mastodon and your
15:01
Kalteninsky pointed
15:03
out that you know something that's really awesome about
15:05
rough. We were just talking about rough, right? Yeah.
15:08
One of the things that's awesome about
15:10
it is that they have put together
15:12
a wiki-like thing that tells you why.
15:15
So somebody was complaining about, look,
15:18
if I could just get Pylant or Flakate to
15:20
tell me, like, not just this is
15:22
the rule, but why do you care
15:24
about this rule? Why should you follow it? Or if
15:26
you don't care about whatever it says, then you can
15:29
ignore it. If you wish. So at
15:31
docs.asperol.sh, the company
15:33
behind rough with Charlie
15:36
Martian team slash rough slash rules has
15:38
a really cool site here. So you
15:40
come down and says, here's 700 lint
15:43
rules. And
15:45
if you scroll down, it'll have like all
15:47
the things like, OK, F403
15:51
undefined local import with star
15:54
Or unused import. All right.? So Let's just grab
15:56
the first one and click on it. It Says
15:58
this is derived from the flake. The pie
16:00
flakes lender. Sometimes you can fix it.
16:02
But most importantly, why is a bad
16:04
And give me an example of it.
16:07
How cool is that? Yeah those really
16:09
cool yeah. so for example this one
16:11
says unused imports at a performance overhead
16:13
at runtime and risk creating embark cycles
16:15
like this thing imports that but that
16:17
the important as boy do I wish
16:20
I phone would get around that problem
16:22
big code but anyway like with a
16:24
to over the to step compiled possibly
16:26
like there's all sorts of languages that
16:28
bout that do that rates. Are
16:31
you are? You don't worry about that
16:33
and see for example arm anyway they
16:35
they also increase unused imports. also increase
16:37
their cognitive load of reading the code
16:39
mean editors help of the great out
16:42
see lab is not use but still
16:44
the from his thing and cycles is
16:46
certainly there so says here's an example
16:48
important dump I as in P define
16:50
Fpr the api times radio Square instead
16:53
don't do as a threat has this
16:55
Here's the problem here's what ends and
16:57
the right way which is cause I
16:59
let me just other I have no
17:02
effect on the other. ah I'm not
17:04
see if tubal what is this so
17:06
checks for if statements that use non
17:08
empty to pulls his tests conditions the
17:10
about this why is this bad Ninety
17:13
two balls are always true I see
17:15
so you may be one at think
17:17
you and put print the seas around
17:19
your if cause you're coming from another
17:21
language read the see false the of
17:24
a comma in there is always sure
17:26
even though forces in the right because
17:28
it's testing the truth in. This of
17:30
that container not values of the can
17:32
tear. This cats are people. Often I
17:35
see it when somebody has an expression
17:37
like their third that are like in
17:39
other combining two strings or something and
17:41
they're checking the result. I'm so yeah
17:43
there may be just some pep A
17:46
ones like here's another one. Pepe don't.
17:48
Don't. Use some things that are
17:51
variables, functions, et cetera. a as
17:53
capital straight Other languages have this
17:55
have mixed case or whatever. Eight
17:58
this okay for classes, but. Than
18:00
really not much else and Python gets named
18:02
away so they have an example I go
18:04
use capital be equals a plus three and
18:06
or a way I think is is really
18:08
a nice resort. I look at the school
18:10
by Ryan the com which is here as
18:13
is a ton of work and they'll have
18:15
these really nice examples is fantastic. I'm I
18:17
think as we call this the would read
18:19
through some of this especially if era of
18:21
you're probably not new to Python but like
18:23
new ish intermediate Python developer and you wanna
18:25
just sort of great stuff. Better or one
18:28
is to use these things but also. Just
18:30
kind of a read through some this
18:32
documentation of figure out why different styles
18:34
are the way they are. So yeah
18:36
and so even if you don't use
18:39
ruff this is a nice resource to.
18:42
Ah well I have a whole
18:44
bunch of stuff I was goes
18:46
and doing an extra extra extra
18:48
extra thing as on it. As
18:51
for for my next topic is
18:53
topics pearl so I'm A. I
18:55
came across it and the Apa
18:57
I think I heard from several
18:59
people called flat.app. So flat is
19:01
I'm and I've just started playing with.
19:03
This is kind of like Trillo and
19:05
others sorted Tas tracking where you can
19:07
have them have things in to do
19:09
lists and in progress and done. But
19:11
the work and then different work spaces
19:13
for different things. you have different projects
19:15
going on. it just kinda like the
19:17
layout of it and I'm I'm having
19:19
fun playing with it and right now
19:21
it's free but it's can. I'm gonna
19:23
end up being a paid app but
19:25
not very expensive or the site for
19:27
individuals like five bucks, months or something
19:29
anyway. flat looks looks fun of started
19:32
playing with them next up is i
19:34
terms of service didn't read this has
19:36
been around for awhile it's at t
19:39
o s d r.org i'm like kind
19:41
of too long didn't read the tagline
19:43
is i have read and agree these
19:45
term with these terms is the biggest
19:48
lie on the web and we aim
19:50
to fix that i kinda love this
19:52
is the it's be you can search
19:55
for different service and it tells you
19:57
it gives you a grade for each
19:59
one And then i'm in there also
20:01
kind of some highlights as to why it's
20:03
created that way i can
20:06
be as a great be there's
20:08
barely there stuff that they don't like and
20:11
what i like about this is not just the grade
20:13
but why they give the grade because some stuff i
20:15
don't really care about like. You
20:18
know that the data might go
20:20
away i'm okay yeah maybe i
20:22
can wiki but i kinda
20:24
get that already understand so i'm
20:27
so this is neat what i was
20:29
surprised by i want to point this
20:31
out is that it is a it's
20:33
kinda like wikipedia in that it's the
20:35
classification system and everything is done why
20:38
it's peer review process but it's not
20:40
it's not like one company doing all
20:42
of this it's is you can sign
20:44
up and you can you can start
20:47
reading different services if you want to
20:49
know it'll be reviewed so it's kind
20:51
of a crowd crowd acted thing so
20:54
there's that last week i was really cool i
20:56
like that one yeah. And
20:59
then there's even articles on like wired and stuff
21:01
like there was an article and wired about it but it's
21:03
been around for a while so it's like
21:05
the word articles from twenty eighteen so
21:09
anyway. I like
21:11
the idea so people want to help out the great
21:14
last week i talked about blogging
21:16
and this week i
21:18
ran across an article called why i
21:20
write and i love the topics here
21:22
so i want to highlight them this
21:25
is from shina
21:27
okano and especially
21:29
technical writing so one of the things
21:31
i write to remember that's actually why
21:33
i started blogging started blogging just to
21:36
write keep track of stuff that i
21:38
kept forgetting so i think that's great
21:40
idea and second is to refine my
21:42
thinking to you want to write it
21:44
down to help you
21:46
understand the project more i
21:49
write impact of course
21:51
i write to get through hard times
21:53
that's a that's a good one even
21:55
with technical stuff i mean there's personal
21:57
personal writing as well but also. I've
22:01
had some times in my career where
22:03
I've been frustrated with my job and
22:05
blogging helps me focus
22:07
on something that I can actually have an impact
22:10
on and it did help me focus
22:12
on something that I enjoy more than my job at
22:14
the time. So I think that's good. And
22:17
then writing to connect, I think those are
22:19
all connecting with people, they're all great. So
22:22
I'm almost done with all my extras. Those
22:24
are good. I write for
22:27
many of these reasons, but I
22:29
also write because when I yell
22:31
at podcasts, no one responds to me
22:33
or listens. So maybe I can write
22:35
down those thoughts somewhere else and someone will hear them. You know
22:37
what I mean? Yeah, before I move
22:40
on, Sheena
22:42
O'Connell, she's
22:44
got a lot of great articles. There's
22:47
Unexpected Glass Ceilings for Junior Developers. That's
22:49
an interesting read. Applying
22:52
Mastery-Based Learning in Tech Education,
22:54
a Problem with Code Schools.
22:57
So these are interesting, not
22:59
just Python stuff, but interesting tech
23:01
articles. So cool blog. The
23:04
last thing I wanted to point out was, actually,
23:07
I think I'm done. That was done with
23:09
my extras. Oh, no, one more. Chet
23:12
Brains has a PyCharm
23:14
blog and there is three
23:17
PyTest features you will love by
23:19
Helen Scott. So just a quick
23:21
article talking about fixtures,
23:24
markers and parameterize. And I wanted to do
23:26
a shout out to this one because at
23:29
the bottom, great, great short discussion, but
23:32
they also plug my course and book
23:34
at the bottom. So thank you, Helen
23:36
and PyCharm. It's great. So that's really
23:39
cool. Nice. All
23:41
right. Well, we've got more
23:43
extras. Do you want to just keep going? I
23:45
could just keep going. I got a couple more.
23:48
Keep going. Okay. That was good.
23:50
Yeah, we're just going to go right into the extras
23:52
anyway. So I
23:54
just had what links to my course and sorry,
23:56
we couldn't find that page. Oh, no. Anyway.
24:00
Of course. I
24:02
ran across this fun thing. It
24:04
was just Wikipedia's list of common
24:06
misconceptions. I don't
24:08
know. Somebody posted it on Mastodon or something.
24:10
This is a brilliant read.
24:12
I don't know if you've came across
24:14
this before. No, this is nuts.
24:16
Okay. I loved it. I'm going to pull out
24:19
a couple. Twinkies. We
24:21
always talk about them lasting forever. Apparently, they
24:24
have a shelf life of 45 days,
24:26
not millennia like I thought. I
24:29
don't know. Only McDonald's hamburgers. I
24:31
don't know. I've seen some pictures of this thing
24:33
looking good after way too long. Something
24:36
interesting I found out about
24:39
microwave ovens that I
24:41
didn't understand. Let's see. Microwave ovens,
24:43
they don't cause cancer. I knew
24:45
that. But I thought they
24:48
do not cook from the inside out. I
24:50
thought they did the inside out thing. I
24:52
thought that also. But the
24:55
2.45 gigahertz microwaves can
24:58
only penetrate to approximately
25:00
one centimeter, about 3.8 of an
25:02
inch into most foods. The inside
25:05
portions of thicker foods are mainly
25:07
heated by conduction from
25:09
the outer portions. Did not know that. Interesting.
25:13
Learned something new every day. My
25:16
last extra is just on a wish list. I came
25:19
across a company in Portland
25:21
that makes microphones, their
25:23
trumpet labs. I really want this microphone.
25:26
Look at this. That's fantastic.
25:28
It's like a steampunk. Yeah.
25:30
It's so cool. It's called the Edoina. They've got
25:33
a bunch of different models.
25:35
But this is a great
25:37
looking mic. I'd love to be able to try
25:39
this out. $600 maybe. That
25:41
thing is amazing. It gets into
25:43
the price of this microphone, Brian, which is kind
25:46
of ridiculous. Anyway,
25:49
it's not
25:52
dynamic. It's that other one. Oh,
25:54
condenser. They've blown
25:56
it. Oh, man. So I'm not sure. I'd
25:59
have to try it out to see if
26:01
I could. I can get my room quiet
26:03
enough to use this. But yeah, for people
26:05
who don't know, the dynamic ones really capture
26:08
just like an area and they exclude all
26:10
the background sound like a whole bunch. Yeah,
26:12
there's a lawnmower outside that you can't hear
26:14
because of my dynamic mic. Is
26:17
it right now? Yeah. I don't hear
26:19
anything at all. And I've had people right next
26:21
door using a chainsaw and a tree going, and
26:23
people couldn't, you didn't come through in the mic.
26:26
Those are dynamic mics. Condenser mics
26:28
are maybe better for a studio if
26:30
people say they sound the best. Well, they
26:32
sound the best in a truly quiet place,
26:34
but they pick up Echo more, they pick
26:36
up background cards, et cetera. Yeah,
26:38
you gotta be careful. Brian's getting out of here, yeah. Anyway,
26:41
how about you? Do you have any extras? I
26:43
sure do. I sure do. Okay,
26:46
a while ago, I wrote the
26:48
unsolicited advice from Mozilla and Firefox
26:50
saying that they are going off
26:52
the rails and they really should fix it. This has
26:54
nothing to do with what I said. Since
26:57
I criticized them, I also gave them some
26:59
ideas. I do wanna point out something
27:01
that's cool that they just launched, which
27:03
is Mozilla Monitor. They had Mozilla Monitor in
27:06
a really super shallow, not much of
27:08
a service type of way. Have
27:10
I been poned? It'll tell you if there's
27:12
a breach. Okay, there's services that I already
27:14
have signed up for. But thanks. But
27:17
what they did is they've announced some
27:19
kind of service now that'll find where
27:21
your private info is being sold by
27:23
data brokers and then they'll
27:25
fix it. See this says we found
27:27
50 places where your email or
27:32
your physical address or your phone
27:34
number or your family member was
27:36
being sold by these crappy scumbag
27:38
data brokers. They truly are scummy
27:40
people. And we'll fix it. Here's
27:42
another example. Re-manually fix, it's like
27:44
change your password. And then
27:46
35 automatically removed because we found them.
27:48
Well, I filled this out. It'll do
27:50
a free scan if you put your
27:52
email address in here. They have a
27:54
thousand and 80. Wow. A
27:57
thousand and 80. And they have like my kid's
27:59
names. my kids' phone numbers. This
28:02
is, I'm telling you, they're scumbags. And they
28:04
sell this, right? So, you can
28:06
sign up for it, and it'll
28:10
basically go through and keep it safe. You can
28:12
do one time, like here's the old thing, it's
28:14
the free breach alerts. Like, have I been pwned?
28:16
It's better, it's more comprehensive. Troy
28:18
Hunt is awesome. I've had him on TalkPython
28:20
quite a while ago. But the Monitor Plus
28:22
is what I'm talking about. The only drawback
28:24
is, look how much that is. That's
28:27
$14 a month, just to tell you
28:29
if it's found something online and
28:31
we remove it. I
28:33
think that's pretty steep, man.
28:36
I mean, maybe,
28:38
if it really, really bothers you.
28:40
So, I guess, what my plan is
28:43
to do, like since there are so many and it really
28:45
is creepy, is like I'm gonna do it for one month.
28:47
It's been working for like a week, and I don't remember
28:49
how much it is. It's like a quarter of the way
28:51
through getting rid of them. And then I'm gonna cancel it
28:53
again. Because there's no way I'm paying $14 a month, because
28:56
this stuff doesn't appear at an incredible rate. It's just
28:58
I haven't done it for 20 years, you know? And
29:00
I haven't cleaned it up for 20 years, so. I
29:03
think they're shooting themselves in the foot with this
29:05
pricing, because at $14 a month, you're right. I'm
29:08
like, I'm gonna do it all in the month,
29:10
in one month. But if it was like four
29:12
bucks a month, I'd probably just leave it on,
29:14
and then they're making like 50 bucks
29:16
from me instead of 14. That's
29:19
my assessment as well. I think it's tremendously
29:21
too high. I think
29:23
everyone has subscription fatigue, and another
29:25
15 bucks is just 14, 15,
29:28
whatever it was. It's like, especially
29:30
since it mostly happens in one
29:32
go. You mostly get it cleaned
29:34
up, and then it's just kind of maintaining over
29:36
time. So I don't know, but still, nonetheless.
29:39
It's great, Mozilla, for doing something positive.
29:43
And making progress on finding multiple ways
29:45
to support them. People can check out
29:47
that article at mkdn.co
29:49
if they want what I think they really
29:51
should be doing. Yeah, there's that. There's also
29:53
like, that's one way to like, help support
29:56
Mozilla, because they're cool. Yeah,
29:58
you also could consider this. just
30:00
a $14 a month donation to
30:02
Mozilla, right? If
30:04
that's your vibe, then go for
30:06
it. But there's a lot of things out there
30:08
that deserve some of my money. And if I
30:10
donate $14 a month to all of them, then
30:12
that's a lot. Yeah, you don't even get an
30:14
NPR mug for that. Exactly,
30:17
like I should at least get a free browser. Oh
30:19
wait, okay. Couple other
30:21
things here. Not the joke yet. Python 3.12.2
30:23
is out and there's, you know, a
30:29
non-trivial number of fixes of it. I
30:32
don't know how many there are here, but you
30:34
know, important stuff like get a new
30:36
version of SQLite and open SSL and
30:38
the freeze tool didn't work with this, et
30:41
cetera, et cetera. So some bug fixes.
30:43
I didn't see any security issues, but
30:45
you can see there's, there's a, oh,
30:47
okay, there is one minor security
30:49
issue. I don't think it's a huge deal, but
30:51
like there's quite a bit of change here, Brian.
30:53
Look at this. By the way, the security issue
30:55
is that if there's a .pth file starting
30:58
with a . or
31:01
a hidden file attribute that could
31:03
be, you know, snuck into something
31:05
so people don't know it and then they get
31:07
imported and run code or something to these effects.
31:10
I don't know exactly the details, but that
31:12
doesn't sound like a tremendous, you know, it's
31:14
not like, well, somebody sends 772 ampersand three,
31:18
you're hacked, right? There's nothing like that, but there's
31:20
a minor security. But there's a lot
31:22
of stuff, right? Yeah. So
31:24
very cool. And because of all the neat Docker stuff, one
31:27
command, wait a couple of minutes and all
31:30
the apps are now running Python three 12.2, including
31:32
Python bytes out of M, hooray. Yeah, the
31:34
other thing to note about three
31:37
12.2 is that it's a
31:39
couple releases, a couple bug fix releases in.
31:41
So if you were holding out switching to
31:43
three 12, this might be a good
31:46
time. Yeah, that's, I didn't really think of that at
31:48
all, but that's a good point. This is the third
31:50
release of Python three 12, right? So
31:52
if you've been, oh, we're not ready
31:54
to be so cutting edge, well, maybe now
31:57
you are. Yeah. Okay, cool.
31:59
Next up. I want to reach
32:01
out to anyone crazy enough to
32:04
get a Vision Pro who also
32:06
likes taking courses at TalkPython. The
32:08
TalkPython mobile app in its iPad
32:10
forum is now available to put
32:13
into your virtual land. You
32:15
could sit by Mount Hood relaxing and then
32:17
put, you know, Brian's PyTest course on the
32:19
wall next to you and look at the
32:21
stars and then look over Brian or whatever
32:23
course you want. But I would love
32:26
for somebody to just try it out because there's no way
32:28
I am buying a Vision Pro. No
32:30
way. But if people want to try it, that'd
32:32
be cool. It's not like I built
32:35
this app and didn't test it in that basically
32:37
iPad apps, if you opt into it, you're allowed
32:39
to run the iPad apps in the Vision Pro.
32:41
So I just took our iPad app that we
32:43
know works well, let people run it over there.
32:45
Yeah. I would totally try it for you if
32:47
you want to buy me a Vision Pro. Sure. I'll
32:50
go to an Apple store later. You
32:52
know, actually, I'm going to stop by the sporting goods store and
32:54
just get one of those snorkel, snorkeling
32:56
goggles, snorkeling mask. So it'll be
32:58
about the same. I want to
33:00
use them for chopping onions and
33:03
see if I can get an app that'll
33:05
do googly eyes on my onions while I'm chopping them.
33:08
That's amazing. I once came
33:10
home and found my daughter wearing
33:12
her swim goggles, you know, the
33:14
small ones and they're chopping onions going, I'm winning
33:16
the day. I'm winning the day. She's like, I've
33:18
got my eyes, don't hurt at all. I was
33:21
like, bravo. That's great. That's a good idea. I
33:24
know you buy special made onion goggles, but
33:26
the bridge basically swim goggles. Yeah.
33:28
Well, you could get the Vision Pro. I bet it'll keep
33:31
most of the air out and then you could just be
33:33
like, you know, a field of onions cutting the onions or
33:35
who knows where you want to be. Yeah. It's
33:37
a brave new world. I don't know if I want to like put a
33:39
knife that close to my hands with the
33:42
monitor leg. But
33:45
anyway. Excellent.
33:47
Yeah. Henry expected that the
33:49
Vision Pro would be mentioned and then David out in the
33:52
audience suggested I just get one for everyone in the chat.
33:54
Like surprise. Thank you for being part
33:56
of the live show. You get a
33:59
vision from you. Division Pro, everyone look under
34:01
your seat. That's really nice of you, Michael,
34:03
for offering that. Of
34:05
course. She's here to please. I
34:08
know I have something that actually is legitimately
34:11
next. So yesterday I had
34:14
Martina Houghlyze on the show, and
34:17
she does this really cool project
34:19
called Data Doodling. She's a data
34:22
scientist at an AI company, but
34:24
also just draws out really
34:26
cool pictures of things she's
34:28
trying to visualize instead of going to use Python
34:30
or other tools to do it. Just let me think
34:32
about that before you actually get
34:36
in there and use the tools. Just kind
34:38
of kick back and explore data with pictures.
34:40
So anyway, I encourage people to go check
34:42
that video out. It's 29 minutes
34:44
long. It's not super long, but if you're
34:46
into data visualization and data science, she's
34:49
doing some really cool stuff. So you can check that
34:51
out. It's pretty great, man. Yeah, it's really cool, isn't
34:53
it? Yeah. Yeah, she's doing
34:55
awesome stuff. She says she has 50 different
34:57
ones of those, and they all have an
35:00
article and analysis on the data, and it's
35:02
pretty in depth. All
35:04
right, how about time for a joke? Should I
35:06
close it out with a joke? This
35:08
one, this one connects a lot here,
35:10
Brian. Let's see. So here's
35:13
presumably a developer stick figure walking along,
35:16
looking at a fly trap, and says,
35:19
why would a fly land on something like
35:21
this? Stupid fly. Looking at a mouse or
35:23
rat trap. Rats should be ashamed for falling
35:25
into this trap. Big bear trap or one
35:28
of those like trapper claw things. Bears,
35:30
this is ridiculous. Don't step in this. Right?
35:35
Then there's a sign that says AWS Freight here. Ooh,
35:38
that looks nice. Yeah,
35:42
that's funny. It's
35:44
a good one, right? Yeah. Yeah, so.
35:47
Plus with this one. That's what
35:49
I got for you. All right.
35:51
Yeah. Well, thanks again for a
35:53
lovely episode, and thanks everybody for
35:56
coming into the show and coming on
35:58
the show live and sharing. it with
36:00
us. It's been fun and we'll talk next week. Bye
36:02
all. Thanks.
Podchaser is the ultimate destination for podcast data, search, and discovery. Learn More