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.
Podchaser is the ultimate destination for podcast data, search, and discovery. Learn More