Podchaser Logo
Home
#371: Python in a Crate

#371: Python in a Crate

Released Tuesday, 13th February 2024
Good episode? Give it some love!
#371: Python in a Crate

#371: Python in a Crate

#371: Python in a Crate

#371: Python in a Crate

Tuesday, 13th February 2024
Good episode? Give it some love!
Rate Episode

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.

Rate

Join Podchaser to...

  • Rate podcasts and episodes
  • Follow podcasts and creators
  • Create podcast and episode lists
  • & much more

Episode Tags

Do you host or manage this podcast?
Claim and edit this page to your liking.
,

Unlock more with Podchaser Pro

  • Audience Insights
  • Contact Information
  • Demographics
  • Charts
  • Sponsor History
  • and More!
Pro Features