Python Bytes - #359 gil--;
Episode Date: November 2, 2023Topics covered in this episode: PyCon 2024 is up? Ruff formatter is production ready gil--; Why is the Django Admin “Ugly”? Extras Joke See the full show notes for this episode on the websit...e at pythonbytes.fm/359
Transcript
Discussion (0)
Hello and welcome to Python Bytes, where we deliver Python news and headlines directly
to your earbuds.
This is episode 359, recorded November 2nd.
And I am Brian Ocken.
And I'm Michael Kennedy.
This episode is sponsored by Scout APM.
Listen to more about them a little later in the show.
Also, you can connect with us, Michael, Brian, and Python Bytes.
So we're at mkennedy, at Brian Ocken, and at Python Bytes, all on Fostedon.org.
And if you're listening in just your earbuds, you can join us live at pythonbytes.fm slash live,
and you can be part of the audience.
So, Michael, what do you got for us?
Well, I have a quick follow-up to your Fostedon Mastodon statement real quick
before we dive into the first
item which is very exciting i know a lot of people will be excited to hear about it but
fosterdon.org the instance of mastodon that many of us python people are on has gone invite only
of course you don't need to be on fosterdon to participate in talking with us right that's the
whole point of mastodon however a couple people have hey, I'd really like to be on Fosted on and around
you guys in that community, but it's invite only.
I have a short lived invite code for the listeners who promptly listen to our show if they want
to join that later.
Cool.
Yeah.
Because it's invite only now.
Okay.
All right.
Onto the first item.
PyCon.
Woohoo. We all love PyCon. Woo-hoo!
We all love PyCon, right?
Yeah.
And this is one of the things I look forward to most in the year in terms of events.
More on that in a minute.
But this is going to be, it's time for it to be in Pittsburgh, Pennsylvania.
So you can see there's a little airplane with a banner flying by on the website that's saying Pittsburgh.
And there's a snake on a building
only once it's not really the the Python snake though its eye is like more eardroppy not circular
anyway it's there's a snake there by the community for the community all excellent and it's going to
be a little later this year I think it was April last year it's gonna be May 15th to 23rd in
Pittsburgh Pennsylvania tutorials what's really nice this year is they actually have, uh, the sub schedule
time, like prominently listed.
I think the last time it was like, if you dug in, you could find what days
the actual main constant conference was, but I'm not really sure if I want
to do the sprints when are they, that you sort of, you know, like it
just had the whole broad range.
So this is like the main conferences, May 17 to 19, two days before
that are tutorials and so on.
Okay.
So it was in, uh, Salt Lake city in the last two years, previous prior
to that, it was in Cleveland, Ohio.
I do have a minor beef with the location here, like nothing against
Pittsburgh, Pittsburgh is awesome.
You know, I would love to go to Pittsburgh and meet people, but, uh,
the, the goal of kind of moving PyCon around so that different people, at least within the, within North America,
I have a chance to have PyCon sometimes near them seems like, well, it's spent two years
in Cleveland. You know, Pittsburgh is only a two hour drive from Cleveland. So it feels
like it's kind of back in the same place again for, you know, now four years. And I would
love to see it move more locations, right?
Like maybe it could be in Mississippi or in somewhere like really different than a sort of short upper Midwest, you know, just outside of the East Coast there.
On the other hand, East Coast, that's kind of the densest part of the U.S.
So it does give a lot of people a chance to go to it. Are you calling people on the East Coast, that's kind of the densest part of the U.S., so it does give a lot of people a
chance to go to it. Are you calling people on the East Coast dense? Yes, they like to live in dense
places. Okay. There's just, if you look at like light maps of the U.S. or just population maps,
like there's way more people on the eastern half than the western half. And that's how we like it.
All of us in Oregon, don't move to Oregon. It's horrible here yeah it's horrible it's rain it's really cold and rainy i haven't seen the sun for
six years brian so people shouldn't come here terrible yeah okay but the super excited the
call for proposals is open there's like a bunch of instructions under this little permanent um
collapse menu but you go to speaking and it says proposing a talk proposing a tutorial
charla posters etc all this is good one other thing i did go to speaking and it says, proposing a talk, proposing a tutorial, a Charlotte posters,
et cetera. All this is good. One other thing I did want to highlight, and this, this makes me honestly really disappointed. So I hope people don't take this the wrong way. Health and safety
guidelines. Okay. So we're nice people. It says, but us nice people are sick and diseased, many of us, and masks are going to be 100% required and 100%
enforced. And I don't know, you and I, we were both there last year, Brian. I kind of felt like,
you know, from the CDC guidelines and from just the general society, like kind of people have
vaccines, at least as options. I, I've had, I just talked
two weeks ago last week about how I got my fifth COVID vaccine and I had kind of a crappy weekend
from it, but right there, the health crisis is kind of over. And I feel like this is not ideal.
I, I would like to see it just be, I, uh, I've seen other conferences, like I think, uh, um,
uh, the European ones often do whatever the the local the local rules are um and i
think that's what it ought to be if if the local rules are open then i mean i i guess my thoughts
are if people are really concerned about it and i i legitimately understand if you're caring for
somebody that's uh immunocompromised or if you are you're gonna be concerned but your entire route to this place
like the airplane and everything there's gonna be full a bunch of people not wearing masks and so
I think max mass optional seems to make sense to me
But I I think it yeah, I agree with you 100% I think this, so let me just take a step back last year.
I feel like the experience of PyCon was quite degraded.
I had a great time.
I really appreciated the spending the time with people I got to and
meeting the people that I got to.
But the ability to meet people, people and have conversations
on like loud expo floor halls.
It was hard to hear them cause they're talking like this.
You know?
Um, okay.
And so you want to interview people there?
Like people are like, why are you taking your mask off?
Like, well, I can't do a podcast with a mask on.
It's not going to come out right.
And so for me, 80% of the reason I go to PyCon is to meet people,
to network, to record podcasts.
I did like the, the seven different company series of the startup row
and the awesome episode with Sebastian Ramirez and Samuel Colvin and those types of things.
Like that's why I go. And I feel like the mask stuff takes away a lot of it. I'm 100% supportive
if people want to wear a mask, it doesn't bother me. I think it would even be totally good to say
there's a section of the
conference where if you feel uncomfortable and you want to get away from all those non-mask people,
like you can go over there. But I think, I know there's a bunch of people, I know there are people
who are very still freaked out about COVID, very freaked out about traveling. But I think for every
one of them, there's 10 people that are like, we can't live this way for the rest of our lives.
We just got to get back to it.
So the reason I care more than it just bothers me personally is I think this is not going
to be healthy for Python, the PSF in the long term.
I think it's going to cut.
A lot of people I spoke to are like, I don't want to last year.
They're like, I'm not sure if I'm going next year.
If it's like this again, I'm, this is not great.
The attendance I looked, do I have it pulled up here?
No.
Uh, but you can look on Wikipedia and I linked to it in the show notes.
The prior years, it was like 3000 something, you know, 3,200 year over
year, over year was the attendance.
And it was 2000 last year.
Right. Right.
Yeah.
And I think this is going to discourage more people from coming more than it will
encourage the people who are really nervous about coming and if it, you know,
PyCon is the vast majority of income and revenue for the PSF, like not a little
bit, almost all of it.
And so when policies affect who's going, who's not,
that also, yeah, you found it right there.
I think people have to really consider like,
okay, is there some sort of middle ground?
So I don't know, the way it is right now,
I'm probably not going to PyCon,
which makes me a little bummed out,
but it was just, I was so wiped out and worn out
trying to have all those conversations, loud spaces through masks,
et cetera. So we'll see. I'm not a hundred percent sure, but if you look at the final thing
here, it says there will be no rolling back. This is the most lenient version of the health and
safety standards we're going to have. The only possibility is that we will have more restrictions
potentially by the time the conference comes up.
And for me, I don't know, it makes me sad.
I'm not anti-mask.
I'm not anti-vax, as I already pointed out.
I wore a mask happily when there was an emergency,
but COVID is not going away.
Like is PyCon for the rest of our lives
going to be this restrictive
seems not like the best path but i'm not in charge and no one asked me brian
um well so anyway this is my thoughts i'm excited that python's here i hope people who want to go
submit their talks there's an online option but there's a very small chance with this level of you must wear a mask.
You must stay away from people that it's going to be valuable for me to go.
And I'm probably not going to.
Okay.
I haven't decided myself yet.
So yeah.
All right.
Well, I'm sure this will come back.
It's in eight months from now, seven months from now.
Okay.
For people wanting to submit a talk, the, again, the call for is open, and it is open until the end of the day anywhere, so on December 18th.
So you've got from now until December 18th.
But don't wait until the 17th to submit early because these poor people that are reviewing all of the proposals, I think it's good to get feedback early and start getting things in
early. So yeah, I think they even, they have traditionally had like submission meant as a
mentor, the right word, but people to help you if you were doing your first time submission
to work with you. I don't know. I didn't see that this time, but I haven't dug into all the details.
So, okay. Yeah. Yep. Cool. Awesome. Over to you. Well, we covered the rough formatter in September, I believe.
And it's only been a month later, a month and a half.
But the rough formatter is now, we covered it when it was alpha.
It was like, you can play with it.
And now it is, I'll scroll to the bottom.
They say it is production ready.
So the formatter is is in a is still beta release
but they consider it production ready and i've played with it enough it's pretty awesome so um
what are some of the highlights uh it is so the black form or black formatter the rough formatter
is mostly like black but faster so it's how much faster? It's like 30 times faster.
And then there's other,
and black's already pretty darn fast.
There's like YAPF, which I never used,
but apparently it's a hundred times faster than YAPF.
And very compatible.
It's very compatible with black,
but also they list some of the differences.
So we've got, what is it?
Oh, this is a different one. So we've got was it Oh, this
is a different different one. So there's a link is on this this document also of of what
is different. So there's differences in the from black and in it. So it's very thoughtful
to go through and none of these I would disagree with. So some some reasonable changes from
black but how just having a formatter for your entire team
is what was really important, I think.
So I also really liked that recently,
Ruff has supported, so this is not part of the formatter,
but that Ruff has brought in a lot more Flake 8 support
and Flake 8 extensions, and then also iSort and PyUpgrade
are part of Ruff now also.
But the Ruff format is just kind of like black, but faster.
So why not?
Anyway, there's some cool stuff about it.
It's a little more configurable.
There's a couple extra configurations you can do.
I think that you covered that not too long ago.
Yeah, I covered just the string side of things okay which is nice but yeah there's it's not a massively configurable but yeah there's a few areas that
people seem to really really care about changing yeah we're not changing i also um since it's been
wide widely adopted we also have extensions for vs code and uh and in pyCharm that you can, and IntelliJ PyCharm, that you can add on so that
you can have the formatting done just right in your editor, which is great. Yeah, and you can
do things like when you, I think in the PyCharm one, if you just hit the reformat code, I think
it might even use rough format. Not entirely sure, but I think you can make rough format be the,
you know, format my code for me.
Yeah.
So I'm pretty excited about this.
I wasn't going to roll it out to the team when it is in alpha, but if they say it's good, I'm good with it.
I trust Charlie and team.
Charlie and team now.
So it's pretty exciting. Um, also kind of in this, the, the, the article we're linking to, he talks about,
um, why they, they wanted to do a formatter, but also, uh,
it's kind of cool. He talks about the Astral tool chain.
So the company is called Astral now, and they talk about, um,
how this is the first non linting, uh, you know,
application that they've done.
So they were planning on branching out
and doing more things around Python tool chains,
but faster with building it with Rust.
So this is the first.
So I'm excited to see where they go with this.
Excellent.
Yeah, so they go on and on about how much faster it is.
And that's, it's, it's interesting to me because the faster aspect is kind of, um, it's like a
sideshow amazing, but not necessarily why I would pick it. I know if you had 5 million lines of
Python, yeah, it's super, super matters, but most people don't, right? Like
running across 350 Python files that make up talk Python training, for example,
website and APIs and stuff. And it literally is instant, which is like mind boggling. You say
format this, that applies all these rules, all these changes. And it's just like done 27 files
changed 324, not changed or whatever it says.
So it's awesome that it's fast.
I mean, if it were too slow, I would maybe not use it.
But to me, it's the configurability, right?
Like you can set the line length.
You can set the string style if it really matters to you.
Yeah, I think like for me, that's why I'm so excited about the rough formatter more than the actual speed.
Because I have a 32-inch 4 4k monitor do I want like a
little thin column of code because you know I want 80 columns no like I've got it set to 120 and it
still is only two-thirds of the screen on a large font you know it's it just makes me more productive
right and I think I the last time I talked this, I talked about how using the single quote is, you know, significantly fewer characters potentially when you're, you're typing.
And if you have RSI, like you always think about like keystrokes and all that kind of
stuff.
So, yeah.
So for me, that's, that's, that's what counts.
Yeah.
I, uh, for the, the string side, I haven't talked about this for a while, but there are,
there are some applications where you're using a lot of double quotes
and you cannot use single quotes
in the thing that you're using,
in the string that you're passing.
So if you're using a lot of double quotes and stuff,
and I have a, so I have an application
where the API itself uses a lot of,
we have to pass in double quotes into the API.
So all of the strings that were passed setting up is single
quoting makes way more sense.
So, um, yeah.
And I also double checked one of the, one of the reasons I use double quotes
is if I'm going to say, and it's the way it should be in your code where
you need an apostrophe, right.
Or possessiveness or whatever.
Uh, so then you could have a single quote, but then backslash escape the single quote.
But if you put double quotes,
there's no need to escape it.
And I checked that if that,
if it would go from double quotes
and a back to a quote,
over to needing the escaped backslash,
rough won't change it.
So it'll be single quote, single quote,
double quotes.
It's fun.
Double quote and keep going.
I think that black does the same thing.
I don't think that I'll have to check, but I don't think black will change it.
If there's an embedded one.
So, yeah.
Yeah.
But yeah, I'm not sure I wasn't necessarily, I don't know at all, whether it will, but
just thinking like, if you, if you say, please use single quotes, it's not like it starts
putting escapes everywhere.
Yeah.
That was all I was getting at.
Yeah.
Um, whereas you can't do that in black.
Um, Marco out there also points out that rough has a plugin to help upgrade from numpy one to two, which is pretty awesome. Okay. Didn't do that in black. Marco out there also points out that Ruff has a plugin to help upgrade
from NumPy 1 to 2,
which is pretty awesome.
Okay, didn't know that.
Oh, yeah.
Yeah, that's really cool.
That's pretty great, actually.
It sure is.
All right, well, what's next, Brian?
Well, we'd like to thank our sponsor.
So this episode is brought to you by Scout APM.
Are you tired of spending hours
trying to find the root cause of issues
impacting performance?
Then you owe it to yourself to check out
our sponsor this week, Scout APM.
Scout APM is a leading application
performance monitoring tool
that helps you identify and solve
performance abnormalities faster and easier.
Scout APM ties bottlenecks,
such as memory leaks, slow database queries,
background jobs,
the dreaded N plus one queries problem common with ORMs and more directly to source code so
that you can spend less time debugging and more time building. You'll love Scout because it's
built for developers by developers. Scout makes it easy to get set up and deliver insights in less
than four minutes. Seriously, you could pause this episode, set up Scout, and be back at it without missing a beat.
And the best part,
Scout's pricing is affordable and straightforward.
Only pay for the data you use,
no hidden overage fees or per seat pricing.
Start your free trial and get instant insights today.
Visit pythonbytes.fm slash Scout.
Please use our link because that truly supports the show. Thank you to Scout APM for supporting Python Bytes.fm slash scout. Please use our link because that truly supports the show.
Thank you to Scout APM for supporting Pythonbytes.
Yeah, that's awesome.
Thank you, Scout.
And being able to look at your code and see like,
okay, these are the parts of my API
or wherever else you're running that are slow or fast
and it's in the data layer right now, like awesome stuff.
So very, very cool service.
Now, a couple of bits of feedback from Kim here.
One is having been on the talk reviewing side several times of
smaller regional conferences, PyCons.
Indeed, please submit your stuff as early as possible.
It makes it better for the reviewers as well as you can get feedback sooner.
And confirmation black will leave strings alone that have one
type of quote inside of the other, which is cool as it should.
Yeah.
Thanks, Kim.
All right.
Uh, what have we got for the next one?
This is so big brain is really big.
It's it's really big.
This is what I'm, I'm the title I put, I know where is it written, but in our show notes, the title of the section will be Gil minus minus semicolon because it's CPython and Python has the Gil, but the Python steering
council has now formally accepted the removal of the Gil in Python. Oh, cool. That is massive,
right? Well, I thought it was, I guess it is massive, but I thought it was already decided,
but it was, Oh, it was kind of like tentative that maybe or something i don't know there was i think pretty i think there was
some pretty serious opposition to doing it because it has massive effects on all the c extensions
which you know why did we have this whole two to three drama we had it because a bunch of the
libraries that people use right when you say python you might mean the
language or you might mean plus the 400 500 000 other libraries you can use the ecosystem and the
ecosystem would say well this thing that my library depends on doesn't support python 3 so i have to
stay on python 2 and that went on insanely long the same similar type of deal would be here on anything that has like a
c layer that has any form of concern of concurrency or being used in a library that might now use it
concurrently when it wasn't designed for it so it's it is pretty significant knock-on effects
yeah okay so this is pep 703 it has officially been accepted sort sort of, sort of.
In short, this comes from Hugo on Mastodon.
So again, follows on Mastodon.
That's where a lot of the action is.
It quotes the discussion over on discuss.python.org.
It says, in short, the steering council accepts PEP 703,
but with clear provisio that the rollout will be gradual and break as little as possible
and that we can roll back any change that turns out to be too disruptive, which includes
potentially a hundred percent rollback of PEP 703.
So a hundred percent rejection and a reversal if necessary, however, unlikely or desirable,
undesirable, we expect that to be.
Okay.
Okay.
So there's a couple things to
note like let's go over to the discuss here actually i had already pulled up didn't i go
to this guy we'll just go to the pep now this is by sam gross and i've talked several times about
how excellent i think some of the work that he's been doing because it's not just the the gill stuff
but a lot of the kind of cinder and speed stuff has been inspired by, um, Sam
gross and the folks over there.
So it says C Python's global interpreter lock.
The gill prevents multiple threads from executing Python code at the same time.
You can have all the threads you like in Python.
Only one of them will execute a Python, um, um, instruction, uh, instruction code.
Like what you get out from when you say disassemble thing, right? Like
load adder or add to list, that kind of thing. So this pep, to be very clear, this is a very
small subset that only affects people that ask it to affect them. It proposes that adding a build,
not runtime, but a compilation for the CPython runtime
that will let Python code run without the global interpreter lock and the necessary
changes to make this possible, right?
So when you compile it, if you pass dash dash disable gil, then you'll get a special output
of Python that doesn't have the gil.
That's pretty wild, isn't it?
Yeah. I'm hoping that we'll like mere humans that don't want to recompile it
can get a distro somewhere with it.
Yeah.
I'm sure there'll be a like click here to alternative downloads, get the
concurrent Python or something like that.
Right.
But the fact that it's not a, not even a runtime flag, but a com
a compile time flag is pretty wild.
So let's see, there's a
couple of things worth covering here. Um, it's a really long, it's a really long path. So let's see.
So the Gill effects, Python library usability, and this is one of the things that's pretty
interesting. It says, look, there's a lot of libraries. Like they, they just go on and on
about machine learning libraries and the concurrency machine learning libraries need
get the strong sense that Sam Gill and people he's working with do stuff with machine learning
libraries in Python. And that's their main motivation here, but obviously it has broader
implications. But the example here is PyTorch exposes a multi-processing based API called
DataLower for building data input pipelines. It uses Fork on Linux because it's better,
et cetera, et cetera. And basically, if you're going to do the weird tricks you got to do
underneath the covers in Python to make the async stuff truly parallel, as in I have 10 cores on my
machine, I want to use them all with threads or something like that. Or however, it, the, the top level API that you interact with is
kind of janky. It has to take into account and certain things like objects can't be shared across
multi-processing processes, right? If it was threads, they could be, but they're not. So they
can't be, et cetera. It says accessing GPUs within a data loader, um, or, um, worker quickly leads
out of memory errors because of context, like unlike threads within a process,
and all these different things, right? So basically one of the motivations is allow people building
libraries to build cleaner, more self-contained, i.e. like sharing objects within a process
better, right? Not just I want better performance, which is obvious, more stuff about this. So yeah,
you can look through, like I said, it's quite the deal.
But one of the things that's interesting,
like as I touched on,
a lot of the things in Cinder actually make sense here.
So this immortalization stuff
about objects that have to have reference counting,
because remember,
the reference counting is what the GIL is about.
The GIL is all about memory, not concurrency.
It doesn't care about concurrency.
It just needs the memory management to not be concurrent. So, well, that's a bit of a problem if you have more than one thread. So it's about limiting, it's about managing memory
stuff, but not making that not concurrent to make that better. So a lot of the changes here are like,
well, how can we allow the memory stuff to be concurrent, basically?
So one of them is immortalized objects.
So, for example, true, false, none, seven.
None of those need to have a reference count because they just get created at the start of the process.
There's only one of them.
There's no reason to like, oh, true's gone.
No one's using true.
Oh, true's back.
There's just one true.
There's just one true.
It's a singleton. And so all of those are what are now going to become what are called immortal
objects and pi increment and pi decrement so basically adding and removing the number of
users of that variable or object is a no op now right okay and that's good for you and me when
we pass true and false around even if we're not doing it concurrently, it's just less instructions to like, yeah, use the structures, right. And it's more shared memory,
all those kinds of things. They also are adding this thing called biased reference counting,
which allows basically it says, look, we, the problem before was, we had like one number that
said number of references to this object. And when somebody wants to change it, you could either lock the thread,
take a lock and lock it every time per object,
which is kind of crazy,
or you just don't allow anybody to change it
more than one at a time, hence the gill.
So this one says, well, let's change it
so that on the thread that created the object,
it behaves the same, right?
There's no locks, none of that kind of stuff.
It just works on it, references it directly. But if it's shared, there's like a secondary count, like others,
other references or something called biased reference counting, where those are managed
in a thread safe way. Because most of the time objects and things are not shared across threads,
even in a multi-threaded app, the little temporary variables and loop variables,
those are still just on the one thread, right? Stuff that shared way less. So the
reference counting is changing to make that work. And what else? There's a bunch of pseudocode
telling you this is some intense stuff, bunch of things about memory management, how that works,
garbage collection, etc, etc. So I'm going to stop People can dive into it, but this is the big deal. I
think some of these changes will find their way just into Python period, like the immortal objects.
Yeah.
There's no reason for that not to be in there. That would just be useful for everyone. But other
ones like this by reference counting, maybe be slower, maybe take more memory. So maybe you don't
want that, for example.
Yeah, maybe.
What do you think?
Oh, I think that removing the gill
will be a sea change in Python.
Sorry.
I think you're right.
I think you're right.
I think it's exciting.
I think, you know, I've said this a bunch of times,
like I haven't even looked recently.
I'm pretty sure this computer here has,
I think 10 cores that I'm on right now.
And if I run Python code, as hard as it can possibly go, it's 10%, right?
And that's just, it would be better if that wasn't completely baked into the runtime.
I actually hope that it's just kind of a non-event.
Like, it's a just, we just don't have a gill anymore,
and people can stop complaining about that.
And I don't care if things get a little, I mean, I like things to go faster and i don't care if things get a little i mean i like things to go faster i don't care if it goes a little slower
because of this um it's going to go faster eventually anyway wait till the next round of
cpus coming out um right it's the next uh faster c python yeah at least yeah as well you know um
and then also just um uh people having people in python being able to get used to doing more asynchronous and threaded things.
I think that's a good thing for the language.
So, yeah, I'm excited.
But a big part of me, I understand the going slow and we don't want to break everybody.
But part of me was like, oh, just do it and we'll clean up the mess afterwards.
Yeah.
I understand the caution. Well, if they get it as a'll clean up the mess afterwards. Yeah. I understand the caution.
Well, if they get it as a compilation flag,
it's nothing there to say that,
oh, you couldn't possibly make that the way we compile Python
that gets distributed in a few versions, right?
Right, but eventually that won't be the case.
Eventually we're going to try to get rid of that.
If it all goes
well and a couple versions later or something it will be the deep the default will be the no gill
version or something and with my guess and and there'll be a flag to say to add the gill if you
really need it still for a while and then then they'll work yep excellent anyway i agree we'll
see where it goes um there was just this thread on Mastodon, which you were copying on.
I don't know if you saw it today, but asking what is Python 3.14 going to be called?
Of course, it's going to be the symbol Python because 3.14, right?
It's so incredible.
So maybe in Python, it'll be the default.
You never know yeah you have to pause
and like do the i thing python exactly yeah um it's gonna be fun to have that that episode's
gonna be non-stop when we uh when it's time to talk about the upcoming release of python yeah yeah the the other follow-on is like trying to
guess when when uh when the release of uh 3.14.15 will come out like um that'll be maybe a couple
years after it'd be like a security release or something anyway yeah so ah, well, um, it'd be good. Uh, speaking of, uh, I don't know,
know what I was speaking of, but, uh, I want to cover why the, why the Django admin is so ugly.
I didn't say it was ugly. Vince Solvino says it's ugly. So you're going to get mail.
No, Vince will. Anyway, I've noticed this before and, and of i understand it now but um i remember trying
so i'm i'm doing a django project now i remember jumping into django like years ago and i was
surprised when i jumped in again and saw that the admin kind of looks the same as it did a long time
ago um and i was kind of you know there's been some minor changes and stuff. But, okay, this is actually a great article.
Why is the Django admin ugly?
There's some great quotes in here.
I'm going to jump down to them.
The Django admin is not ugly.
Rather, no effort was made to make it beautiful.
A beautiful end user tool.
It looks like a developer made it.
Oh, okay.
I understand.
And that's from Ken Whitesell.
Another one, the admin's recommended use is limited to an organization's internal management tool.
It's not intended for building your entire front end around.
Yeah.
Yeah.
So that's basically the gist of this.
Also, the Django admin was built for Phil, one of my favorite quotes.
This is from Jacobacob kaplan moss phil being the uh what phil was the phil kothan then editor of lawrence.com yeah because the history of django
is it's around like uh newspaper publishing um and and so the i it's for it's a basically it's
a database front end uh for people that are adminning a site.
It's not intended for end user stuff.
So I'm going to jump down.
There was apparently a quote from 0.9 Days of Admin.
It's not your app.
And the gist of it, where am I going to find it?
It comes from Curtis Maloney. It says, encouraging people to build their own management interface and treat the admin as a DB admin tool has saved a lot of people pain.
The effort to customize it grows far faster than the payoffs.
So the gist of it is it's intentionally not that pretty because they don't want you to intentionally try to make it pretty to expose it to end users um it's supposed to be
ugly um it's not it's not ugly it's just not supposed to be pretty she also says it's meant
to be ugly yeah anyway um uh i i appreciate the honesty of like yeah we know it's look looks like
that but it works it's it's like the uh it's like the craigslist of admin interfaces um so
oh it's fancy for craigslist yeah anyway good good write-up events so thanks it is and i think it's
also pretty interesting to remind people like you know really it's meant for people running
the website not something that should be user facing well yeah and even that like if you're
you wouldn't you'd have another interface for like
uh the writers writing stuff but if if there was like a quick like typo or something like that
somebody can just hop in and change the database um so yeah and i've appreciated it there's been
a lot of things that i've put together that um the having the admin interface there is better than going right into the database using SQL to change
stuff.
And often I don't have any
user-facing admin. It's just
showing
the data that's stored in there.
It's fine.
Blaze out there suggests maybe
using Textual to create a 2E
admin. That'll do it.
Yeah, let's replace
it with something yeah
I'm not gonna say you won't get normal
you definitely won't get regular users to fire
up an SSH session
and do it no yeah
but I'm I'm waiting for somebody
to build like because textual
can build textual can
have web interfaces now too
actually yeah so you could have a you So you could do a skin on top of
the Django admin and have it be a textual-based thing.
That'd be fun.
Yeah, indeed.
Waiting for that. All right.
That's our items.
Do you have any extras for us?
I'm feeling extra today. I do.
Okay.
Let's see. First of all,
this is a two points in time sort of thing.
Andy McKay on Mastodon says, what was it before?
It said the PSF, as in at the PSF, no longer is going to use X Twitter.
So many places are saying X.
The place formerly known as twitter like what an
insanely big fumble with branding like after six months that people can't just say the name like
people say meta people know what they're talking about they don't have they don't say x you know
the thing that used to be twitter so i propose we just call it x twitter because a lot of us are not
on x twitter as much and it has x and it also tells you it's Twitter so anyway how about zitter like just
take off the tw just be a zitter yeah there you go so uh the big news really the reason I bring
this up is the at the psf is now on bossadon.org so therefore on mastodon in general nice and I
encourage you to go follow them they have a lot of followers I believe already right away let's see
yeah 9 000 followers which that might not sound like a lot, but for Mastodon, that's a lot.
So we can get them a few more today.
Check that out.
Yeah.
That's like dog years.
Yes, exactly.
So now the post is updated saying, oh, they might actually come back because they originally said they're leaving Twitter.
They're leaving ex-Twitter, but they actually might still use it nobody's really sure anymore but at least they are on
faucet on so that's cool check them out yeah i have a feeling that there's a lot of like twitter
people that are it's right only like i'm a right only i've got a twitter account but it's right
only i don't i yeah i check it like once a month or something so yeah mine's kind of like regular
expressions as well right only um yeah so i uh yeah. So I, uh, I will,
I do, people do send me messages there and I appreciate that and I go check them out, but
in terms of like having conversations. Yeah. Okay. So that's one, I have others, a big new
announcement for a new course, data science jumpstart with 10 projects. This is awesome.
Yeah. A little over three hours put together by Matt Harrison,
who knows his, his data science things. So a lot of cool stuff that you can learn through here,
basically exploring 10 different data sets, um, like working with student CSV information, um,
Excel integration, um, merging, merging data across different data sets, like an Airbnb data set
example and so on and so on.
So if people want to check that out, they can see the link in the show notes. So that's a really,
really fun one. Definitely encourage you to check it out. All right. We've talked a lot about AIs, chat AIs, chat GPT, et cetera, et cetera. Have you played with GPT for all? No. I believe this
might even be some Python going strong here.
Let me double check really quick.
Yeah.
13% at least.
So GPT for all is kind of a chat GPT interface, but it's open source.
It's free.
It runs on the three main platforms.
Windows OS says OS X or OS 10.
No, it's Mac OS, but whatever.
And Ubuntu.
So you can get for those three platforms. And
basically it gives you a list of maybe eight or nine different models that you can download
and run locally without sharing your data with anyone else, just run them locally. And you could
also try out the different, like the Lama models versus the open AI type models and others. So
if you want like a local and free and pretty good,
actually,
I tried it out and it gave me some really good answers for a couple of
questions.
Um,
using the,
I use the wizard model,
which it gives you the,
like it says,
Hey,
give me some bullet points about this or give me some ideas on this.
And it will like give you the thing that it gives you,
like says hash.
Here's why I suggested that it highlights this and it features this
aspect.
This other thing does it in this way.
And here's why I chose that one.
And it's, it's pretty interesting and open source and free.
So, you know, easy to try.
Let's see.
That's the same one.
Finally, Brian, my last extra is in already handed to this at the beginning, but in the
show notes, I have an invite.
If you want to be on Fostedon again, there's like a thousand instances on Mastodon.
Go crazy.
Pick the one that's for you.
But if Fostedon, like the at PSF folks, they're on Fostedon.
It's requiring an invite now.
So I have an invite that is good until November 7th.
And you can go and click it and accept this.
As long as you like the policies.
Don't make us look bad. Be nice. That's what it's about. That's why it's invite only. If you, as long as you like the policies, don't make us look bad.
Be nice.
That's what it's about.
That's why it's invite only.
Yeah.
And when you take advantage of that,
be sure to subscribe or follow all of us.
Yeah,
absolutely.
Follow me.
Cool.
Nice.
Um,
uh,
are you done with your extras?
I'm done.
My extras,
you got anything?
Okay.
We're talking about PyCon and I want to plug,
uh, local conferences. So, um, i'm done my extras you got anything okay we're talking about pycon and i want to plug local
conferences so um when people thinking about the footprint of traveling across the country or
traveling to a different country um i like the idea of more local conferences and uh i like that
like pie cascades is great and it travels between um uh vancouver and seattle and in portland it's gonna be in seattle next this uh the this article
i'm highlighting is um talking about copenhagen django day copenhagen which has already passed
so don't try to go there um but it it's just basically talking about how maybe it's better
maybe we would be better to uh instead of shipping the people around to see speakers maybe we could
just ship the speakers around to the people um and doing that um i actually think it'd be great to have more local conferences
that have more sponsorships that actually help out with the travel for speakers that'd be great
so that's one of my extras yay local conferences i wanted to highlight what i was doing at 11
o'clock on tuesday i was getting ready for ha. So spooky on a faucet on, I've got, I've got some pictures of our decorations.
So we were getting ready for that.
Speaking of a faucet on one of the, something I saw today was this, this awesome crossword
puzzle with hints in regular expression.
No way.
This is, this is great anyway well got got a link to he this person refreshing apathy
got it from a MIT mystery hunt puzzle index which includes both the puzzle a puzzle link and but
also the answer sheet is there so this is this is just insane as far as a crossword puzzle goes and it's not years when
you solve it you can check and see if you got it right yeah but it's not words it's just random i
i'd like to see it have actual words be fun to do that so those are my extras excellent
that that crossword puzzle is nuts it reminds me of uh 25 way rock, paper, scissor. Yeah.
Have you seen that?
It's amazing.
Yeah.
It's pretty good.
Yeah.
All right.
You ready for a joke?
I am.
So this one says, when you search YouTube for days to fix a specific bug.
Okay.
You know, my, uh, my slogan is you're never hardcore enough for YouTube.
Like if you search, if you watch three videos on something like 50% of what
it's going to show you the rest of the time is just that, like, I was
just trying to assemble my furniture.
I'm not the world's biggest fan of like furniture construction, like
all YouTube thinks you are now.
So it's kind of that version.
Like when you search YouTube for days to fix a specific bug, what's it starts
to the video, it suggests not everyone should code.
I recommend it for you.
That's good.
So bad.
You don't want me to code?
In eight minutes of 47 seconds,
you should abandon all hope,
says the video.
It's how long it is.
I kind of want to watch that video now, though.
Just trying to find out.
I know, I do too. It's not everyone should code by polymatter, apparently is what it says in the video. It's how long it is. I kind of want to watch that video now, though. Just trying to find that. I know, I do too.
It's not everyone should code
by polymatter, apparently,
is what it says in the screenshot.
Yeah, and they've got
a black checkmark.
Yeah, awesome.
Well, thanks again
for a wonderful episode.
And thanks, Scout APM,
for sponsoring.
And thanks, everybody,
for showing up
and watching the show.
Yeah, you bet.
Bye, everyone.
Bye.