Brought to you by Michael and Brian - take a Talk Python course or get Brian's pytest book


Transcript #359: gil--;

Return to episode page view on github
Recorded on Thursday, Nov 2, 2023.

00:00 Hello and welcome to Python Bytes where we deliver Python news and headlines directly to your earbuds.

00:04 This is episode 359, recorded November 2nd. And I am Brian Okken.

00:10 And I'm Michael Kennedy.

00:11 This episode is sponsored by Scout APM. Listen to more about them a little later in the show.

00:17 Also, you can connect with us, Michael, Brian, and Python Bytes. So we're@mkennedy, at Brian Okken and at Python Bytes all on fosstodon.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 part of the audience. So Michael, what do you got for us?

00:39 Well, I have a quick follow up to your fastadon, mastadon 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.

00:49 But fosstodon.org, the instance of mastadon that many of us Python people are on has gone invite only. Of course, you don't need to be on fastadon to participate in talking with us or interact.

01:03 That's the whole point of mastadon. However, a couple of people have said, Hey, I'd really like to be on fastadon 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. Cause it's invite only now. Okay. All right. Onto the first item. PyCon.

01:24 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 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 say in Pittsburgh. So, and there's a snake on a building only once it's not really the Python snake though. It's eyes like more eardroppy, not circular. Anyway, it's, here'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. And it's going to be May 15th to 23rd in Pittsburgh, Pennsylvania tutorials. What was really nice this year is they actually have 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 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 the goal of kind of moving PyCon around so that different people, at least within the, within North America, I've had a chance to have PyCon sometimes near them. It seems like, well, it's been 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?

03:07 Like maybe it could be in Mississippi or in somewhere like really, you know, different than a sort of short mid upper Midwest, you know, like just outside of the East coast there.

03:19 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 dense?

03:29 Yes. They like to live in dense places. 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.

03:40 And that's how we like it. All of us in Oregon. Don't, don't, don't move to Oregon. It's horrible here. 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 collapse menu, but you go to speaking and it says, what was it? 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.

04:22 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.

04:43 I've had, I just talked to 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 I've seen other conferences, like I think the European ones often do whatever the local, the local rules are. And I think that's what it ought to be. If, if the local rules are open, then I mean, 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 immunocompromised or if you are, you're going to be concerned, but your entire route to this place, like the airplane and everything, there's going to be full, a bunch of people not wearing masks. And so I think max mass optional seems to make sense to me.

05:40 I, I think it, yeah, I agree with you a hundred percent. And I think this, so let me just take a step back last year. I feel like the experience of PyCon was quite degraded.

05:50 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 because you know 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 companies series of, the startup row and the awesome episode with Sebastian Ramirez and Samuel Colvin and, and those types of things. Like that's why I go.

06:34 And I feel like the mask stuff takes away a lot of it. I'm a hundred percent 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.

06:54 I know there are people who are, 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 yeah, I, 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 longterm. I think it's going to cut back. A lot of people I spoke to are like, I don't want to last year. They were like, I, I, 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.

07:30 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. 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 mass, et cetera. So we'll see. I'm not a hundred percent sure, but if you look at the, 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's makes me sad. I'm not, 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 you know, 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. So anyway, this is my thoughts.

09:14 I'm excited that PyCon'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.

09:36 It's in eight months from now, seven months from now. Okay. For people wanting to submit a talk, the, again, the call for proposals is open and it is open until the end of the day anywhere. So on December 18th, so you got now or December 18th, but don't wait until the 17th submit early because these poor people that are reviewing, 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 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. 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, 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.

10:50 And I played with it enough. It's pretty awesome. So what are some of the highlights? 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 blacks already pretty darn fast. There's like a YAPF, which I never used, but apparently it's a hundred times faster than Yapiff and a very compatible. It's very compatible with black, but also they list some of the differences. So we've got how was it? Oh, this is a different, different one. So there's a link it's on this, this document also of, of what is different. So there's differences in the, from black and, and it's 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 Lisa recently rough has supported. So this is not part of the formatter, but that rough has built brought in a lot more flake eight support and and, and flake eight extensions. And then also I sort and PI upgrade are part of rough now also, but the rough format is just kind of like black, but faster. So why not?

12:10 Anyway there's some, some cool stuff about it. It's more, a little more configurable. There's a couple extra configurations you can do. I think that you covered that not too long ago.

12:22 Yeah. I covered just the string side of things, 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. And I'm not changing. I also since it's been wide, widely adopted, we also have extensions for VS Code and and in PI charm that you can end intelligent by charm that you can, you can add on so that you can have the formatting done just right in your editor, which is great. So yeah. And you can do things like when you, I think in the PI charm one, if you just hit the reformat code, I think it might even use rough format.

13:00 Not entirely sure, but I think you can make rough format be the format my code for me.

13:06 Yeah. So I'm, I'm pretty excited about this. I wasn't going to roll it out to the team with when it is in alpha, but if they, if they say it's good, I'm good with it. I trust Charlie and the end team to Charlie and team now. So it's pretty exciting. Also kind of in this, the, the, the, the article we're linking to, he talks about why they, they wanted to do a formatter, but also it's kind of cool. He talks about the astral tools, tool chain. So the company is called astral now, and they talk about how this is the first non linting you know, application that they've done. So they are, they were planning on branching out and doing more things around Python tool chains but faster with building it with the rest. So this is, this is the first, so I'm excited to see where they go with this. So excellent. Yeah. So, you know, 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 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 super, super matters, but most people don't, right.

14:24 Like running across 350 Python files that make up talk by then 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 4k monitor. Do I want like a little thin column of code because you know, I want to 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 about this, I talked about how using the single quote is 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.

15:38 Yeah. I, 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, 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 a lot of, we have to pass in double quotes into the, the API. So all of the strings that we're past setting up is single quoting. It makes way more sense. So yeah.

16:10 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. 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.

16:43 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. I'm not sure. I wasn't, 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.

16:58 Yeah. It was always getting that. Yeah. Whereas you can't do that in black. Marco out there also points out that rough has a plugin to help upgrade from NumPy one to two, which is pretty awesome.

17:09 Okay. Didn't know that. Oh yeah. That's cool. Yeah. That's really cool. That's pretty, pretty great actually. So cool. It sure is. All right. Well, what's next, Brian?

17:16 Well, we'd like to thank our sponsor. So this episode is brought to you by Scout APM.

17:22 Are you tired of spending hours trying to find the root cause of issues impacting performance?

17:27 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.

17:53 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 in stint 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. Yeah, that's awesome. Thank you, Scout. And being able to look at your code and see like, okay, here's 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. What have we got for the next one? This is so big, Brian. Is it really big? 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 gill minus minus semicolon because it's CPython and Python has the gill, but the Python Steering Council has now formally accepted the removal of the gill in Python. Oh, cool. That is massive, right? 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?

19:59 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 three. So I have to stay on Python two. And that went on insanely long.

20:21 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 of, sort of in short, this comes from comes from Hugo on Mastodon. So again, follow us on Mastodon. That's where a lot of the action is, but quotes the discussion over on discuss.python.org 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.

21:06 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.

21:24 So there's a couple of things to note, like go over to the discuss here. Actually I had it already pulled up. Didn't I go to the Scott? 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 sender and speed stuff has been inspired by Sam Gross and the folks over there. So it says CPython'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 instruction, 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. This, 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 Gill, then you'll get a special output of Python that doesn't have the Gill. 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, you know, 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, it's pretty wild. So let's see, there's a couple of things worth covering here. It's a really long, it's a really long PEP. So let's see. So the Gill affects 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 and 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 data lower 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 and processes, right? If it was threads, they could be, but they're not. So they can't be, et cetera. So it's accessing GPUs with a data loader or 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, about this. So yeah, you can look through, like I said, it's quite the, quite the deal, but one of the things that's interesting, like I, 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, right? There's no reason to like, oh, true's gone. No one's using true. Oh, true's back. There's just the one true.

25:43 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? 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 a 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's shared is way less. So the reference counting is changing to make that work. And what else? There's a bunch of pseudo code telling you this is some intense stuff, a bunch of things about memory management, how that works, garbage collection, et cetera, et cetera. 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. There's no reason for that not to be in there. That would just be useful for everyone. But other ones like this biased reference counting, maybe it'd be slower, maybe take more memory. So maybe you don't want that, for example. Yeah, maybe.

27:42 What do you think? Oh, I think that removing the gill will be a sea change in Python. Sorry.

27:48 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 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. I don't care if it goes a little slower because of this. It's going to go faster eventually anyway, wait till the next round of CPUs come out. Right. The next faster CPython release. Yeah, as well. And then also just people's, 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, just, oh, just do it and we'll clean up the mess afterwards. Yeah. I understand the caution.

29:06 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.

29:18 Right. But eventually we're going to, eventually that won't be the case. Eventually we're going to try to get rid of that. If it all goes well in a couple of versions later or something, it'll be the default will be the no gill version or something. And with my guess, 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.

29:39 Yep. Excellent. I agree. We'll see where it goes. 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, maybe in Python, it'll be the default. You never know.

30:06 Yeah. You have to pause and like do the eye thing. Python.

30:11 Exactly.

30:13 Yeah.

30:13 It'd be fun to have that, that episode is going to be nonstop when we, 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, when the release of 3.14.15 will come out, like that'll be maybe a couple of years after it'd be like a security release or something. Anyway. Yeah. So, oh, well, it'd be good.

30:44 Speaking of, I don't know, know what I was speaking of, but 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.

30:57 You're going to get mail.

30:58 No, Vince will. Anyway, I've noticed this before and, and kind of, I understand it now, but 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. And it 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? The, there's like 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.

31:38 It looks like a developer made it. Oh, okay. I understand.

31:42 And that's from Ken Whitesell. The, 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. So the, 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 Jacob Kaplan Moss. Phil being the, what, Phil was the Phil Cothan? The then editor of Lawrence.com. Yeah. Because the history of Django is it's around like a newspaper publishing. And, and so the, I, it's for, it's a, basically it's a database front end for people that are adminning a site. It's not intended for end user stuff. So I'm going to jump down at, 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's from, comes from Curtis Maloney 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. It's supposed to be ugly. It's not, it's not ugly. It's just not supposed to be pretty. Chris also says it's meant to be ugly. Yeah. Anyway. I, I, I appreciate the honesty of like, yeah, we know it's look, it looks like that, but it works. It's, it's like the, it's like the Craigslist of admin interfaces. So it's fancy for Craigslist. Yeah. Anyway, good write up Vince. 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 the writers writing stuff. But if, if there was like a quick like typo or something like that, it was somebody can just hop in and change the database. So, and, and I've appreciated it. There's been a lot of things that I've put together that the having the admin interface there is better than going right into the database, you know, do using SQL to change stuff. And, and often I don't have any user facing admin. It's just it's, it's just showing the data that's stored in there. So anyway, it's fine. Yeah. Blaze out there suggests maybe like using textual to create a Tui admin. That'll do it. Yeah. Let's replace it with something. Yeah.

34:27 I'm not going to say you won't get nor, you definitely won't get regular users to fire up an SSH session and do we, and do it. No. Yeah. But I'm, I'm, I'm waiting for somebody to build like, cause textual can build textual can have web interfaces now too. Actually. Yeah. So you could have a, you could do a, like 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, the PSF as an at the PSF no longer is going to use X Twitter. I've, you know, so many places are saying X with place, you know, 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?

35:45 Like just take, take off the TW and it'd just be a zitter. Yeah, there you go. So 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.

36:12 Yeah. That's like dark years, but yes, exactly. So now the, the post is updated saying, Oh, they might actually come back. Cause they originally said they're, they're leaving Twitter.

36:22 They're leaving X 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.

36:30 I have a feeling that there's a lot of like Twitter people that are, it's right only like I'm a right on, I've got a Twitter account, but it's right only I don't, I check it like once a month or something. So yeah, mine's kind of like regular expressions as well. Right. Only.

36:42 Yeah. So I, 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.

36:55 I have others, a big new announcement for a new course, data science jumpstart with 10 projects.

37:01 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 datasets, like working with student CSV information, Excel integration, merging, merging data across different datasets, like an Airbnb dataset 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 AI's chat, AI's 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 ChatGPT 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 macOS, but whatever. And Ubuntu. so you can get, 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. 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.

38:45 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.

38:55 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 Fosted on again, there's like a thousand instances on mastodon go crazy. Pick the one that's for you. But if Fosted on like the, the at PSF folks, they're on Fosted on, you require it's requiring an invite now. So I have a invite that is good until November 7th and you can go and click it and accept this. If you, as long as you, like the policies, don't make us look bad. Be nice. That's what it's about.

39:27 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 us. Cool. Nice. you're done with your extras.

39:40 I've done my extra. You got anything? Okay. We're talking about PyCon and I want to plug, local conferences. So, when people thinking about the footprint of traveling across the country or traveling to a different country, I like the idea of more local conferences and, I liked the, like a pet pie cascades is great. And it travels between, Vancouver and Seattle and in Portland, it's going to be in Seattle next, this, the, this article I'm highlighting is, talking about Copenhagen Django day Copenhagen, which has already passed. So don't try to go there. but it's just basically talking about how maybe it's better. Maybe we would be better to, instead of shipping the people around to see speakers, maybe we could just ship the speakers around to the people, and doing that.

40:26 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, local, yay, local conferences. I wanted to highlight what I was doing at 11 o'clock on Tuesday. I was getting ready for Halloween. so on, fostered on, I've got, I've got some, pictures of our decorations. So we were getting ready for that. Speaking of, fostered on one of the, some of my saw today was, this, this awesome, crossword puzzle with hints in regular expression. No way. This is, this is great. well, got, got a link to he, this person, a 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 the crossword puzzle goes and it's not where it is when you solve it, you can check and see if you've got it, right? Yeah, but it's not where it is. It's just random. I I'd like to see it have actual words. Be fun to do that. So those are my extras.

41:37 Excellent. That, that crossword puzzles nuts. It reminds me of a 25 way rock, paper, scissor.

41:42 Yeah. Have you seen that? It's amazing. Yeah. It's pretty good. Yeah. All right. You ready for a joke?

41:50 I am. So this one, says when you search YouTube for days to fix a specific bug.

41:57 Okay. You know, my, 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 this is kind of that version. Like when you search YouTube for days to fix a specific bug, what's it starts the video and suggests not everyone should code recommended for you. That's good.

42:29 So bad. You don't want me to cook in eight minutes of 47 seconds. You should abandon all hope says the video. How long it is. I kind of want to watch that video now though. Just try to find that. I do too. It's not everyone should code by poly matter. Apparently it's what it says in the screenshot. Yeah. And they've got a black check Mark. 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.

Back to show page