Podchaser Logo
Home
#359: gil--;

#359: gil--;

Released Thursday, 2nd November 2023
Good episode? Give it some love!
#359: gil--;

#359: gil--;

#359: gil--;

#359: gil--;

Thursday, 2nd November 2023
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.

0:04

This is episode 359 recorded November 2nd. And

0:09

I am Brian Auken. And I'm Michael Kennedy. This

0:11

episode is sponsored by Scout APM.

0:14

Listen to more about them a little later in the

0:16

show. Also you can connect with us,

0:19

Michael, Brian and Python,

0:22

Python Bytes. So we're at mkennedy

0:24

at Brian Auken and at Python Bytes all

0:27

on fostadon.org. And

0:29

if you're listening

0:29

in just your earbuds, you

0:32

can join us live at pythonbytes.fm

0:34

slash live and you can be part of the part

0:36

of the audience. So Michael, what do you got

0:39

for us? Well, I have a quick follow up to your

0:41

Fostadon Mastodon statement

0:43

real quick before we dive into the first

0:45

item, which is very exciting. I know a lot of

0:47

people will be excited to hear about it. But

0:50

fostadon.org, the instance

0:52

of Mastodon that many of us Python

0:54

people are on has gone invite

0:57

only. Of course, you don't need to be on

0:59

Fostadon to participate

1:02

in talking with us or interact. That's the whole

1:04

point of Mastodon. However, a couple of people

1:06

have said, Hey, I'd really like to be on

1:08

Fostadon and around you guys in that

1:10

community, but it's invite only. I have

1:12

a short lived invite code

1:15

for the listeners who promptly listen

1:17

to our show if they want to join that later.

1:20

Cool. Yeah. Cause it's

1:22

invite only now. Okay. All right. Onto

1:25

the first item. PyCon. Woo. This

1:28

is going to be one of the things I look forward

1:30

to most in the year in terms of events more

1:32

than a minute. But this is going to be

1:35

it's, it's time for it to be in Pittsburgh,

1:37

Pennsylvania. So you can see there's a little airplane

1:40

with a banner flying by on the website that

1:42

say in Pittsburgh. So, and there's

1:44

a snake on a building only once.

1:47

It's not really the Python snake though. It's eyes

1:49

like more eardroppy, not circular.

1:51

Anyway, it's, here's a snake there by the

1:53

community for the community, all excellent.

1:56

And it's going to be a little later this year. I think it was

1:58

April last year.

1:59

the 23rd in Pittsburgh,

2:02

Pennsylvania tutorials. What's

2:04

really nice this year is they actually have the

2:07

sub-schedule time prominently

2:09

listed. I think the last time it was if

2:11

you dug in, you could find what days

2:14

the actual main conference was, but

2:16

I'm not really sure. I wanna do the sprints

2:18

when I was there. They just had

2:20

the whole broad range. So this is the main

2:23

conferences, May 17 to 19. Two

2:25

days before that are tutorials and

2:28

so on. Okay, so it was in Salt

2:30

Lake City in the last two years. Previous, prior

2:32

to that, it was in Cleveland, Ohio. I

2:35

do have a minor beef with the location

2:38

here, like nothing against Pittsburgh. Pittsburgh is awesome.

2:41

I would love to go to Pittsburgh and meet people, but the

2:44

goal of kind of moving PyCon around

2:47

so that different people, at least within North

2:49

America, have a chance to have PyCon

2:52

sometimes near them. Seems like, well, it's

2:54

spent two years in Cleveland. Pittsburgh

2:56

is only a two-hour drive from

2:59

Cleveland. So it feels like it's kind of

3:01

back in the same place again for now

3:03

four years, and I would love to see it move more

3:06

locations, right? Like maybe it could

3:08

be in Mississippi or in somewhere really

3:11

different than a sort of short, upper

3:13

Midwest, just

3:18

outside of the East Coast there. On the other hand,

3:20

East Coast, that's kind of the densest

3:22

part of the US, so it does give a lot of people

3:24

a chance to go to it. Are you calling people on the East

3:27

Coast dense? Yes,

3:29

they like to live in dense places. Okay.

3:33

If you look at light maps of the US

3:35

or just population maps, there's

3:37

way more people on the eastern half than

3:39

the western half. And that's how we like it. All

3:42

of us in Oregon, don't move to Oregon,

3:44

it's horrible here. Yeah, it's horrible. It's

3:47

really cold and rainy. I haven't seen the sun for six

3:49

years, Brian. So people shouldn't come here.

3:51

Terrible, yeah. Okay, but the super excited,

3:53

the call for proposals is open. There's like

3:55

a bunch of instructions under this little permanent

3:59

collapse. expo

6:00

floor halls, it's hard to hear them because

6:02

they're talking like this. What are you

6:05

seeing in your answers? You know, okay. And

6:08

so you want to interview people there.

6:10

Like people are like, why are you taking your mask off? Like, well,

6:12

I can't do a podcast with a mask on. It's not

6:14

gonna come out right. And so for me, 80%

6:16

of the reason I go to PyCon is

6:19

to meet people, to network, to

6:21

record podcasts. I did like the seven

6:23

different company series of

6:26

the startup row and the awesome

6:29

episode with Sebastian Ramirez and Samuel

6:31

Colvin and those types of things,

6:33

like that's why I go. And I feel like the mass

6:35

stuff takes away a lot of it. I'm 100%

6:38

supportive if people want to wear a mask, it

6:40

doesn't bother me. I think it would even

6:42

be totally good to say there's a section

6:45

of the conference where if you

6:47

feel uncomfortable and you want to get away from all

6:49

those non-mask people, like you can go

6:51

over there. But I think, I know there's a

6:53

bunch of people, I know there are people who are very

6:56

still freaked out about COVID, very freaked out

6:59

about traveling. But I think for every

7:01

one of them, there's 10 people that are like, we

7:03

can't live this way for the rest of our lives, we just

7:05

gotta get back to it. So the

7:08

reason I care more than it just

7:10

bothers me personally is I think this is

7:13

not going to be healthy for

7:15

Python, the PSF in the longterm.

7:18

I think it's going to cut, a lot of people

7:20

I spoke to are like, I don't want it last year. They're

7:22

like, I'm not sure if I'm going next year. If

7:24

it's like this again, this is not great. The

7:27

attendance, I looked, do I have it pulled up here?

7:29

No, but you can look on Wikipedia

7:32

and I link to it in the show notes. The prior

7:34

years it was like 3000 something, 3200 year

7:40

over year over year was the attendance and

7:42

it was 2000 last year, right? And

7:45

I think this is going to discourage more

7:47

people from coming more than it will encourage

7:50

the people who are really nervous about coming.

7:52

And if it, PyCon is

7:55

the vast majority of income and

7:58

revenue for the PSF. doing

10:00

all of the proposals, I think

10:02

it's good to get feedback early and start

10:04

getting things in early. Yeah, I think

10:07

they have traditionally had like submission

10:09

as a mentor, the right word, but

10:12

people to help you if you were doing your first time submission

10:14

to work with you. I don't know. I didn't

10:16

see that this time, but I haven't dug into all the details. So,

10:19

okay. Yeah. Yep. Cool.

10:22

Awesome. Over to you. Well,

10:24

we covered the rough formatter in September, I believe,

10:27

and it's only been a month later, a month and

10:29

a half, but the

10:31

rough formatter is now, we

10:34

covered it when it was alpha. It was like, you can play with

10:36

it. And now it is, I'll

10:39

scroll to the bottom. They say

10:42

it is production ready.

10:44

So the formatter is still

10:47

beta released, but they consider it production

10:50

ready. And I played with it enough. It's

10:52

pretty awesome. So what are

10:54

some of the highlights? So

10:57

the black form, or black formatter,

10:59

the rough formatter is mostly like

11:01

black, but faster. So it's

11:03

how much faster? It's like 30 times faster.

11:07

And then there's other, and black's already

11:09

pretty darn fast. There's like a YAPF,

11:12

which I never used, but apparently it's a hundred

11:14

times faster than YAPF. And

11:17

very compatible. It's very compatible

11:20

with black, but also they list some of

11:22

the differences. So we've got, what

11:24

is it? Oh, this is a different one. So

11:27

there's a link, it's on this document

11:29

also of what is different. So

11:31

there's differences from black.

11:35

And it's very thoughtful to

11:37

go through. And none of these I would disagree

11:39

with. So

11:42

some reasonable changes from black, but

11:44

just having a formatter for your entire team is

11:46

what was really important, I think. So

11:49

I also really liked that recently,

11:52

rough has supported, so this is

11:54

not part of the formatter, but that rough has built,

11:57

brought in a lot more flake eight support.

14:00

go with this. So excellent. Yeah.

14:03

So, you know, they go on and on about

14:05

how much faster it is. And that's,

14:08

it's interesting to me because the faster

14:11

aspect is kind of a, it's like a

14:14

sideshow amazing, but not

14:16

necessarily why I would pick it. I

14:18

know if you had 5 million lines of Python,

14:21

yeah, it's super, super matters. But

14:23

most people don't, right? Like

14:27

run it across 350 Python files that make

14:29

up talk Python training, for example, website

14:32

and API stuff. And it literally

14:34

is instant, which is like mind boggling.

14:36

You say format this, it applies all these rules, all

14:38

these changes. And it's just like done 27 files

14:40

changed, 324 not changed or whatever it says. So

14:45

it's awesome that it's fast. I mean, if it were too

14:47

slow, I would maybe not use it. But to me, it's

14:49

the configurability, right? You can set

14:52

the line length, you can set the string style

14:54

if it really matters to you. Yeah,

14:57

I think like for me, that's why I'm so excited

14:59

about the rough formatter more than the actual

15:03

speed because I have a 32 inch 4k monitor. Do

15:07

I want like a little thin column of code because

15:09

you know, I want 80 columns. No, like I've

15:11

got it set to 120 and it still is only two

15:14

thirds of the screen on a large font. You

15:17

know, it's, it just makes me more productive,

15:19

right? I think I last

15:21

time I talked about this, I talked about how using

15:24

the single quote is significantly

15:27

fewer characters potentially when you're

15:29

typing. And if you have RSI, like

15:31

you always think about like keystrokes and

15:33

all that kind of stuff. So yeah,

15:36

for me, that's that's that's what counts. Yeah,

15:38

I for the string

15:41

side, I haven't talked about this for a while, but there are

15:43

there are some applications where you're using

15:45

a lot of double quotes and you cannot use single

15:47

quotes in the thing that you're using

15:50

in the string that you're passing. So if

15:52

you're using a lot of double quotes and stuff

15:54

and I have a so I have an application where

15:56

the API itself uses

15:59

a lot of. insights

18:00

in less than four minutes. Seriously, you

18:02

could pause this episode, set up Scout, and

18:04

be back at it without missing a beat.

18:07

And the best part? Scout's pricing is affordable

18:09

and straightforward. Only pay for the data

18:11

you use. No hidden overage fees

18:14

or per seat pricing. Start your free trial

18:16

and get instant insights today.

18:19

Visit pythonbytes.fm slash

18:21

Scout. Please use our link because

18:23

that truly supports the show. Thank you to

18:26

Scout APM for supporting Pythonbytes. Yes,

18:28

awesome. Thank you, Scout. And being

18:31

able to look at your code and see, like, okay,

18:34

these are the parts of my API

18:36

or wherever else you're running that are slow

18:38

or fast. And it's in the data layer right now, like awesome

18:41

stuff. So really, really cool service. Now,

18:44

a couple bits of feedback from

18:46

Kim here. One is having

18:48

been on the talk reviewing side several times

18:51

of smaller regional conferences, pikons.

18:54

Indeed, please submit your stuff as

18:56

early as possible. It makes it better

18:58

for the reviewers as well as

19:00

you can get feedback sooner. And

19:03

confirmation black will leave strings alone that have one

19:05

type of quote inside of the other, which

19:07

is cool, as it should. Yeah, thanks, Kim.

19:09

Alright, what have we got for the

19:12

next one? This is so big,

19:14

Brian. Is it really big? It's

19:17

really big. This is what I'm... the

19:19

title I put, I know where is it written,

19:21

but in our show notes, the title of the section

19:24

will be Gil minus minus

19:26

semicolon. Because

19:28

it's C Python, and Python

19:30

has the Gil, but the Python steering

19:33

council has now formally accepted the

19:35

removal of the Gil in Python.

19:37

Oh, cool. That is massive, right? Well, I

19:40

thought it was... I guess it is massive,

19:42

but I thought it was already decided, but was it...

19:44

Oh, it was kind of like tentative that maybe

19:46

or something? I don't know. There was... I think

19:48

pretty... I think there was some pretty serious opposition

19:50

to doing it because it has

19:52

massive effects on all the C extensions,

19:56

which, you know, why did we have this whole

19:58

two to three drama? it because

20:00

a bunch of the libraries

20:03

that people use, right? When you say Python,

20:05

you might mean the language or you might mean plus the 400,

20:07

500,000 other libraries

20:09

you can use, the ecosystem. And the ecosystem

20:12

would say, well, this thing

20:14

that my library depends

20:16

on doesn't support Python 3, so I have

20:18

to stay on Python 2. And that went on insanely

20:21

long. The same similar type

20:23

of deal would be here. Anything

20:25

that has like a C layer that has

20:28

any form of concern of concurrency

20:30

or being used in a library that might now

20:33

use it concurrently when it wasn't designed for it. So

20:35

it's it is pretty significant

20:37

knock-on effects. Yeah. Okay, so this

20:39

is PEP 703. It has officially

20:42

been accepted, sort of. In

20:45

short, this comes from comes

20:48

from Hugo on Macedon. So again,

20:50

follow us on Macedon. That's where a lot of the

20:52

action is. But quotes the discussion

20:55

over on discuss.python.org says, in short,

20:58

the steering council accepts PEP 703,

21:00

but with clear provisio

21:03

that the rollout will be gradual and

21:05

break as little as possible and that we can roll

21:07

back any change that turns

21:10

out to be too disruptive, which includes

21:12

potentially a hundred percent rollback

21:14

of PEP 703. So a hundred percent rejection

21:17

and reversal if necessary,

21:19

however unlikely or desirable, undesirable

21:22

we expect that to be. Okay. Okay,

21:24

so there's a couple of things to note. Like go over

21:27

to the discuss here. I had

21:29

it already pulled up, didn't I? Go to the discuss. Let's

21:31

go to the PEP. Now this is by Sam

21:34

Gross and I've talked several times about how

21:36

excellent I think some of the work that he's been doing

21:38

because it's not just the the GIL stuff, but a lot

21:40

of the kind of speed

21:42

and speed stuff has been inspired by

21:45

Sam Gross and the folks over there. So

21:47

it says CPython's global

21:50

interpreter lock, the GIL, prevents multiple threads

21:52

from executing Python code at the same

21:54

time. You have all the threads you like in Python,

21:57

only one of them will execute a Python

22:01

instruction code like what you get

22:03

out from when you say disassemble

22:06

thing, right? Like load adder or

22:08

add to list, that kind of thing. So

22:11

this PEP, to be very clear,

22:13

this is a very small

22:15

subset that only affects people that ask

22:18

it to affect them. It proposes

22:20

that adding a build, not runtime,

22:22

but a compilation for the CPython

22:25

runtime that will let Python

22:27

code run without the global interpreter

22:30

lock and the necessary changes

22:32

to make this possible, right? So when

22:35

you compile it, if you pass dash

22:37

dash disable gil, then you'll get a special

22:40

output of Python that doesn't have the

22:42

gil. That's pretty wild, isn't it? Yeah. I'm

22:44

hoping that we'll like mere humans that

22:47

don't want to recompile it can get

22:49

a distro somewhere with it. Yeah, I'm sure

22:51

there'll be a like click here to the

22:54

alternative download to get the concurrent Python

22:56

or something like that, right? But

22:58

the fact that it's not a, not even a runtime

23:01

flag, but a comp a compile time flag

23:03

is pretty wild. So let's see, there's

23:05

a couple of things worth covering

23:07

here. It's a really long, it's

23:09

a really long PEP. So let's see.

23:11

So the gil affects Python library usability.

23:14

And this is one of the things that's pretty interesting. It

23:16

says, look, there's a lot of libraries, like they,

23:19

they just go on and on about machine learning libraries

23:22

and the concurrency machine learning libraries need

23:24

get the strong sense that Sam Gill and people

23:27

he's working with do stuff with machine learning libraries

23:29

in Python. And that's their main motivation here,

23:31

but obviously it has broader implications.

23:34

But the example here is PyTorch exposes

23:36

a multiprocessing based

23:38

API called data lower for

23:41

building data input pipelines.

23:43

It uses fork on Linux because

23:45

it's better, et cetera, et cetera. Basically

23:48

if you're going to do the weird tricks

23:50

you got to do underneath the covers of Python

23:52

to make the async stuff truly

23:55

parallel, as in I have 10 cores

23:58

on my machine. I want to use them all with the or

24:00

something like that. However, the top

24:04

level API that you interact with is kind

24:06

of janky. It has to take

24:08

into account in certain things like objects can't

24:10

be shared across multiprocessing processes.

24:13

If it was threads, they could be, but they're not, so

24:16

they can't be, et cetera. Says accessing

24:18

GPUs within a data loader worker

24:22

quickly leads out of memory errors because

24:24

of context, unlike

24:26

threads within a process, and all these different things. So

24:29

basically, one of the motivations is allow

24:31

people building libraries to build cleaner,

24:33

more self-contained, IE-like

24:36

sharing objects within a process better. Not

24:38

just, I want better performance, which is obvious, more

24:41

stuff about this. So yeah, you

24:43

can look through it, like I said, it's quite

24:46

the deal, but one of the things that's interesting,

24:48

as I touched on, a lot of the things in

24:50

Cinder actually make sense here. So this immortalization

24:54

stuff about objects that have

24:56

to have reference counting, which remember,

24:58

the reference counting is what the Gill is about. The Gill

25:01

is all about memory, not concurrency.

25:03

It doesn't care about concurrency. It just

25:05

needs the memory management to not

25:08

be concurrent. So, well, that's

25:10

a bit of a problem if you have more than one thread.

25:13

So it's about managing memory stuff,

25:16

but not making that not concurrent to

25:19

make that better. So a lot of the

25:21

changes here are like, well, how can we allow

25:23

the memory stuff to be concurrent, basically? So one

25:26

of them is immortalized objects. So

25:29

for example, true, false, none, seven,

25:31

none of those need to have a reference

25:34

count because they just get created at the start

25:36

of the process. There's only one of them. There's

25:38

no reason to, like, oh, true's gone now. No one's

25:40

using true. Oh, true's back. There's

25:42

just one true. There's just one true. It's

25:45

a singleton. And so all of those are

25:47

what are now going to become what are called immortal

25:49

objects. And py increment

25:51

and py decrement, so basically adding and

25:53

removing the number of users of

25:55

that variable or object is a no op now,

25:58

right? Okay. And that's good. for you and

26:00

me when we pass true and false around,

26:02

even if we're not doing it concurrently, it's just

26:04

less instructions to use

26:07

these structures, right? And it's more shared

26:09

memory, all those kinds of things. They also are

26:11

adding this thing called biased reference counting,

26:14

which allows... Basically, it says,

26:16

look, the problem before was we had

26:19

one number that said number of references

26:22

to this object. And when somebody wants to change it, you could

26:24

either lock the thread, take

26:26

a lock and lock it every time per object,

26:28

which is kind of crazy, or you just

26:30

don't allow anybody to change it more than one

26:32

at a time, hence the gill. So this one says,

26:34

well, let's change it so that

26:37

on the thread that created the object, it

26:40

behaves the same, right? There's no locks,

26:42

none of that kind of stuff. It just works on it,

26:44

references it directly. But if it's shared, there's

26:46

like a secondary count, like others,

26:49

other references or something called biased

26:51

reference counting, where those

26:54

are managed

26:56

in a thread safe way. Because most

26:58

of the time objects and things are not shared across

27:00

threads, even in a multi-threaded app, the little

27:03

temporary variables and loop variables, those are still just

27:05

on the one thread, right? Stuff that's shared

27:07

is way less. So the reference counting is changing

27:09

to make that work. And

27:12

what else? There's a bunch of pseudocode

27:14

telling you this is some intense stuff, a bunch of things

27:16

about memory management, how that works, garbage

27:19

collection, etc, etc. So

27:21

I'm going to stop people can dive into it.

27:24

But this is a big deal. I think some of these

27:26

changes will find their way just into

27:28

Python period, like the immortal objects.

27:31

Yeah, there's no reason for that not to

27:33

be in there. That would just be useful for everyone. But

27:35

other ones like this bias reference counting,

27:38

maybe you be slow or maybe take more memory. So maybe

27:40

you don't want that, for example. Yeah, maybe. What

27:42

do you think? Oh, I think that removing

27:45

the gill will be a C change in Python.

27:48

Sorry. You're right.

27:51

I think you're right. I think it's, it's

27:53

exciting. I think, you know, I've

27:55

said this a bunch of times, like, I haven't even

27:57

looked recently, I'm pretty sure this This

28:01

computer here has, I think, 10

28:03

cores that I'm on right now. If

28:05

I run Python code, as hard

28:08

as it can possibly go, it's 10%, right? That's

28:10

just... It'd be better if that wasn't completely

28:13

baked into the runtime. I actually hope that

28:16

it's just kind of a non-event. We

28:19

just don't have a gill anymore and people can stop complaining

28:22

about that. I don't care if

28:24

things get a little... I mean, I like things to go

28:26

faster. I don't care if it goes a little slower because

28:28

of this. It's going to go faster eventually

28:30

anyway. Wait till the next round of CPUs

28:33

come out. Right. The next

28:35

faster CPython release

28:37

as well. And then also just

28:42

having people in Python being able to get used

28:44

to doing more asynchronous and threaded

28:47

things. I think that's

28:49

a good thing for the language. I'm

28:52

excited. But a big part of me... I

28:54

understand that going slow and we don't

28:57

want to break everybody. That part

28:59

of me was like, just do it and

29:01

we'll clean up the mess afterwards. I

29:05

understand the caution. Well if they get it as

29:07

a compilation flag, it's nothing

29:10

there to say that, oh, you couldn't possibly

29:13

get that the way we compile Python

29:15

that gets distributed in a few versions,

29:17

right? Right. But

29:20

eventually that won't be the case. Eventually

29:22

we're going to try to get rid of that. If

29:24

it all goes well and a couple of versions later

29:26

or something, it will be the default will

29:29

be the no-gill version or

29:31

something with my guess. And

29:34

there'll be a flag to say, to add

29:36

the gill if you really need it still for a while and

29:38

then they'll work. Yep. Excellent.

29:42

Anyway. I agree. We'll

29:44

see where it goes. There was just this thread on Mastodon which you were copied

29:46

on. I don't know if you saw it today. But

29:48

asking what is Python 3.14 going

29:51

to be called? Of

29:54

course. It's going to be the symbol

29:56

Python because 3.14 is a... incredible.

30:00

So maybe in Pi-thon,

30:03

it'll be the default. You have to

30:05

pause and do the

30:09

I-thing. Pi-thon.

30:15

That episode is going to be non-stop

30:19

when it's time to talk about the upcoming

30:21

release of Pi-thon. Yeah,

30:25

the other follow-on is trying to guess

30:27

when the release of 3.14.15

30:32

will come out. That'll

30:36

be maybe a couple years after, it'll be like

30:38

a security release or something. It'll

30:43

be good. Speaking of, I don't

30:46

know what I was speaking of, but I

30:48

want to cover why the Janango

30:50

admin is so ugly. I didn't

30:54

say it was ugly. Vince Solvino

30:56

says it's ugly. You're going to get mail. No,

30:59

Vince will. Anyway,

31:01

I've noticed this before and I understand

31:05

it now, but I remember trying.

31:07

So I'm doing a Janango project now. I

31:10

remember jumping into Janango like years

31:12

ago and I was surprised when

31:15

I jumped in again and saw that

31:17

the admin kind of looks the same as it did

31:19

a long time ago. There's

31:22

been some minor changes and stuff, but okay,

31:25

this is actually a great article. Why is the Janango

31:27

admin ugly? There's

31:29

some great quotes in here that

31:31

jump down to them. The Janango

31:34

admin is not ugly. Rather, no effort

31:36

was made to make it beautiful, a beautiful end-user

31:38

tool. It looks like a developer

31:41

made it. Oh, okay. I understand. And that's from Ken

31:43

Whitesell. Another

31:46

one, the admin's recommended use

31:48

is limited to an organization's internal

31:51

management tool. It's not intended for building

31:53

your entire front-end around. So

31:57

that's basically the gist of this. Also

31:59

the Janango... Django admin was built for Phil, one

32:01

of my favorite quotes. This is from Jacob

32:04

Kaplan Moss. Phil being the,

32:07

what, Phil was the, Phil Cothan?

32:10

Then editor of Lawrence.com. Yeah,

32:12

because the history of Django is it's around

32:15

like newspaper publishing. And

32:18

so, it's for, basically it's

32:20

a database front end for

32:24

people that are adminning a site.

32:27

It's not intended for end user stuff.

32:30

So, I'm gonna jump down. There

32:33

was apparently a quote from 0.9 days

32:35

of admin. It's not your app.

32:38

And the gist of it, where

32:40

am I gonna find it? It's from, comes from Curtis

32:43

Maloney. It says, encouraging

32:45

people to build their own management interface and

32:48

treat the admin as a DB admin tool

32:50

has saved a lot of people pain. The effort to

32:52

customize it grows far faster

32:54

than the payoffs. So, the gist of

32:56

it is, it's intentionally not that pretty

32:59

because they don't want you to intentionally

33:01

try to make it pretty to

33:03

expose it to end users. It's

33:06

supposed to be ugly. It's not ugly,

33:08

it's just not supposed to be pretty. Chris also says,

33:10

it's meant to be ugly. Yeah,

33:13

anyway. I

33:16

appreciate the honesty of like,

33:18

yeah, we know it looks like that, but

33:20

it works. It's

33:23

like the Craigslist of admin interfaces. Oh,

33:26

it's fancy for Craigslist. Yeah,

33:29

anyway. Good write up, Vince,

33:32

so thanks. It is, and I think it's also pretty interesting

33:34

to remind people, like, you know, really, it's meant

33:36

for people running the website, not

33:39

something that should be user-facing. Well, yeah,

33:41

and even that, like, if you're, you

33:43

wouldn't, you'd have another interface for like,

33:46

the writers writing stuff. But if

33:48

there was like a quick like, typo or something

33:50

like that, somebody can just hop in and

33:53

change the database, so. Yeah.

33:56

And I have appreciated it. There's been a lot of

33:58

things that I've put together that. the

34:00

having the admin interface there is better

34:03

than going right into the database. You know,

34:05

do using SQL to change stuff

34:08

and and often I don't have

34:10

any user facing admin. It's just a

34:12

it's it's just showing the

34:15

data that's stored in there. So anyway,

34:17

it's fine. Yeah, blaze out there suggest

34:20

maybe like using textual to create a two e

34:22

admin. That'll do it. Yeah,

34:25

let's replace it with something. Yeah,

34:28

I'm not gonna say you won't get normal. You

34:30

definitely won't get regular users to fire up an SSH

34:33

session and do we into it now? Yeah,

34:36

but I'm I'm I'm waiting for somebody

34:38

to build like because textual can

34:40

build textual can have web interfaces

34:43

now to actually. Yeah, so you

34:45

could have a you could do a

34:48

like a skin on top of the Django admin admin

34:50

and have it be a textual based thing. That'd be fun.

34:53

Yeah, but waiting for that. Alright,

34:56

that's our items. Do

34:58

you have any extras for us? I'm feeling extra

35:00

today. I do. OK, let's

35:02

see. First of all, this is a

35:05

two points in time sort of thing. Andy

35:07

McKay on Mastodon says. Or

35:11

it said the PSF

35:14

as an at the PSF no

35:16

longer is going to use X

35:19

Twitter. I've you know so many

35:21

places are saying X. The place

35:23

you know formerly known as Twitter. What

35:25

an insanely big fumble with branding

35:28

like after six months that people can't just say

35:30

the name and people say meta people know

35:32

what they're talking about. They don't have they don't say X.

35:35

You know the thing that used to be Twitter. So I propose

35:37

we just call it X Twitter because a lot of us are not

35:39

on X Twitter as much and it has X

35:42

and it also tells you it's Twitter. So anyway, how

35:44

about Zitter? Like just

35:46

take off the TW Yeah, there

35:49

you go. So the

35:51

big news really the reason I bring this up is the

35:53

at the PSF is now on bastodon.org

35:56

so therefore on Mastodon in general.

35:59

Nice. And I I encourage you to go follow them. They have

36:01

a lot of followers, I believe, already right

36:03

away, let's see. Yeah, 9,000 followers,

36:05

which that might not sound like a lot, but

36:07

for Mastodon, that's a lot. So

36:10

we can get them a few more today, check that out. Yeah,

36:12

that's like car gears. Yes,

36:14

exactly. So now the

36:17

post is updated saying, oh, they might actually come

36:20

back, because they originally said they're leaving

36:22

Twitter, they're leaving ex-Twitter, but they actually

36:24

might still use it. Nobody's really sure anymore, but

36:26

at least they are on Fostodon. So that's cool, check

36:29

them out. I have a feeling that there's

36:31

a lot of Twitter people that are, it's

36:33

right only. I'm a right only, I've got a

36:35

Twitter account, but it's right only. I

36:38

check it once a month or something. Yeah,

36:40

mine's kind of like regular expressions as well, right only.

36:43

Yeah. People

36:47

do send me messages there, and I appreciate that, and I

36:49

go check them out, but in terms of having

36:51

conversations. Yeah, okay. So

36:54

that's one, I have others. Big new

36:57

announcement for a new course, Data Science

36:59

Jumpstart with 10 projects. This

37:01

is awesome, yeah. A little

37:03

over three hours put together by Matt Harrison,

37:05

who knows his data science

37:07

things. So a lot of cool stuff that you can

37:09

learn to hear, basically exploring 10 different

37:12

data sets, like working with

37:14

student CSV information, Excel

37:17

integration, merging data across

37:19

different data sets, like

37:22

an Airbnb data set example, and so

37:24

on and so on. So if people wanna check that out, they

37:26

can see the link in the show notes.

37:29

So that's a really, really fun one. Definitely

37:31

encourage you to check it out. All right. We talked

37:33

a lot about AIs, Chat AIs, Chat

37:35

GPT, et cetera, et cetera. Have you played

37:38

with GPT for all? No.

37:40

I believe this might even be

37:43

some Python. Go in strong here, let me

37:45

double check really quick. Yeah, 13% at least. So

37:48

GPT for all is kind

37:51

of a chat GPT interface, but

37:53

it's open source, it's free, it runs on

37:55

the three main platforms, Windows OS,

37:57

it says OS X or OS X now.

38:00

Mac OS, but whatever and Ubuntu. So

38:03

you can get get for those three

38:06

platforms and basically it gives you a list

38:08

of maybe eight or nine

38:10

different models that you can download

38:12

and Run locally without

38:14

sharing your data with anyone else Just

38:17

run them locally and you could also try out the different

38:19

like the llama models versus the open

38:22

AI type models and others So

38:24

if you want like a local and free

38:27

and pretty good actually I tried it out And it

38:29

gave me some really good answers for a couple of questions

38:32

Using the I use the wizard model which

38:34

it gives you the like it says Hey, give me some bullet

38:36

points about this or give me some ideas on this

38:38

and it will like give you the thing Then it gives you like

38:40

his hash. Here's why I suggested that it

38:42

highlights this and it features this aspect This

38:45

other thing does it in this way and here's why

38:47

I chose that one and it's it's pretty

38:49

interesting Nice open source

38:51

and free so, you know easy to try cool.

38:54

Let's see. That's the same one Finally

38:57

Brian my last extra is in

38:59

already hinted at this at the beginning

39:01

But in the show notes, I have an invite

39:03

if you want to be on Fostodon again There's

39:05

like a thousand instances on Mastodon go

39:08

crazy pick the one that's for you But if Fostodon

39:10

like the at PSF folks

39:12

there on Fostodon you require it's requiring

39:15

an invite now so I have a invite that is good until

39:17

November 7th and you can go and Click

39:20

it and accept this if you

39:22

long as you Like the policies don't

39:24

make us look bad. Be nice. That's

39:26

what it's about. That's why it's invite only Yeah, yeah,

39:29

mixtures when you take advantage of that be sure to

39:31

subscribe to her follow all

39:34

of us Yeah, absolutely. Follow. Okay,

39:36

cool. Nice Are

39:38

you done with your extras? I'm done. My actually you

39:40

got anything. Okay, we were talking about

39:43

pikon and I want to plug local

39:45

conferences When people

39:47

thinking about the footprint of traveling

39:49

across the country or traveling to a different country I

39:52

like the idea of more local conferences

39:54

and I like that like a pie

39:56

cascades is great and it travels

39:59

between Vancouver

40:02

in Seattle and in Portland,

40:04

it's going to be in Seattle next. This

40:06

article I'm highlighting is talking

40:09

about Copenhagen, Django Day Copenhagen,

40:11

which has already passed, so don't try to go there. But

40:14

it's just basically talking about how maybe

40:17

it's better, maybe it would be better to, instead

40:19

of shipping the people around to see speakers,

40:22

maybe we could just ship the speakers around to the

40:24

people and doing that. I

40:27

actually think it would be great to have more local conferences

40:30

that have more sponsorships that actually

40:32

help out with the travel for speakers, that would

40:34

be great. So that's one of my extras, yay,

40:37

local conferences. I wanted to highlight what

40:39

I was doing at 11 o'clock on Tuesday,

40:41

I was getting ready for Halloween. That's

40:44

spooky. On Fostadon,

40:46

I've got some pictures of our decorations,

40:49

so we were getting ready for that. Speaking

40:51

of Fostadon, one of the, some of my saw

40:53

today was this

40:56

awesome crossword puzzle with

40:59

hints in regular expression. No

41:02

way. This is great.

41:05

Anyway, we got kind of linked to, this

41:07

person, Refreshing Apathy,

41:10

got it from a MIT Mystery

41:13

Hunt puzzle index, which includes

41:15

both the puzzle, puzzle link, and,

41:18

but also the answer sheet is there. So

41:21

this is just insane as far

41:23

as a crossword puzzle goes. And

41:25

it's not weird. It's been over years when you solve it, you

41:28

can check and see if you got it right. Yeah, but it's not

41:30

weird. It's just random. I'd like to see

41:32

it have actual words, be fun

41:34

to do that. So those are my extras.

41:37

Excellent. That crossword puzzle

41:39

is nuts. It reminds me of 25 Way Rock

41:42

Paper Scissors. Yeah.

41:45

Have you seen that? It's amazing. Yeah, it's pretty

41:48

good. Yeah. All right. You ready for

41:50

a joke? I am. So this one

41:53

says, when you search YouTube for days

41:55

to fix a specific bug. Okay.

41:58

You know, my, my. slogan

42:00

is you're never hardcore enough for YouTube. Like

42:03

if you watch three videos on something like 50%

42:05

of what it's going to show you the rest of the time

42:07

is just that. Like I was just trying to assemble

42:10

my furniture. I'm not the world's biggest

42:13

fan of like furniture construction

42:15

like all YouTube things you are now. So this

42:17

is kind of that version. Like when you search YouTube for

42:19

days to fix a specific bug, let's

42:22

just start the video it suggests not

42:24

everyone should code recommended for you.

42:29

That's good. So

42:33

bad. You don't want me to

42:35

code? In eight minutes and 47

42:37

seconds you should abandon all hope says

42:40

the video. How long is this? I kind

42:42

of want to watch that video now though. Just try

42:44

to find out. I know I do too. It's

42:46

not everyone should code by poly matter apparently is

42:48

what it says in the screenshot. Yeah. And

42:50

they've got a black check mark. Yeah. Awesome.

42:53

Well, thanks again for a wonderful episode

42:56

and thanks Scout APM for sponsoring

42:59

and thanks everybody for showing up and watching

43:01

the show. Yeah, you bet.

43:02

Bye everyone. Bye.

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