Python Bytes - #359 gil--;

Episode Date: November 2, 2023

Topics 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)
Starting point is 00:00:00 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.
Starting point is 00:00:23 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
Starting point is 00:00:58 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.
Starting point is 00:01:22 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.
Starting point is 00:01:32 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
Starting point is 00:02:07 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.
Starting point is 00:02:29 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
Starting point is 00:03:00 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.
Starting point is 00:03:41 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,
Starting point is 00:04:34 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
Starting point is 00:05:21 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.
Starting point is 00:05:55 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.
Starting point is 00:06:14 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
Starting point is 00:06:45 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.
Starting point is 00:07:19 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.
Starting point is 00:07:42 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,
Starting point is 00:08:06 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,
Starting point is 00:08:26 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,
Starting point is 00:08:58 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.
Starting point is 00:09:31 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.
Starting point is 00:09:51 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.
Starting point is 00:10:35 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,
Starting point is 00:11:08 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
Starting point is 00:11:25 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
Starting point is 00:11:59 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.
Starting point is 00:12:26 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.
Starting point is 00:13:06 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,
Starting point is 00:13:40 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.
Starting point is 00:14:03 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.
Starting point is 00:14:46 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
Starting point is 00:15:13 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,
Starting point is 00:15:43 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.
Starting point is 00:16:03 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.
Starting point is 00:16:26 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,
Starting point is 00:16:39 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.
Starting point is 00:16:49 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
Starting point is 00:17:06 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?
Starting point is 00:17:16 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
Starting point is 00:17:34 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
Starting point is 00:17:55 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.
Starting point is 00:18:22 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.
Starting point is 00:18:41 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.
Starting point is 00:19:08 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,
Starting point is 00:19:39 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
Starting point is 00:20:26 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,
Starting point is 00:21:01 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
Starting point is 00:21:25 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.
Starting point is 00:21:57 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
Starting point is 00:22:40 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.
Starting point is 00:22:58 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
Starting point is 00:23:29 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
Starting point is 00:24:16 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,
Starting point is 00:24:49 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
Starting point is 00:25:15 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.
Starting point is 00:25:41 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,
Starting point is 00:26:14 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,
Starting point is 00:26:39 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
Starting point is 00:27:14 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.
Starting point is 00:27:42 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,
Starting point is 00:27:56 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.
Starting point is 00:28:22 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.
Starting point is 00:29:03 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.
Starting point is 00:29:24 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.
Starting point is 00:30:00 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.
Starting point is 00:30:58 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.
Starting point is 00:31:35 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.
Starting point is 00:31:56 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.
Starting point is 00:32:30 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
Starting point is 00:33:11 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
Starting point is 00:33:57 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
Starting point is 00:34:20 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
Starting point is 00:34:35 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.
Starting point is 00:34:54 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?
Starting point is 00:35:11 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
Starting point is 00:35:52 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.
Starting point is 00:36:15 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
Starting point is 00:36:57 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
Starting point is 00:37:41 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.
Starting point is 00:37:59 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,
Starting point is 00:38:28 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,
Starting point is 00:38:35 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.
Starting point is 00:38:52 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.
Starting point is 00:39:09 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.
Starting point is 00: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 me. Cool.
Starting point is 00:39:36 Nice. Um, uh, are you done with your extras? I'm done. My extras, you got anything? Okay.
Starting point is 00:39:42 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
Starting point is 00:40:22 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.
Starting point is 00:41:02 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.
Starting point is 00:41:47 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.
Starting point is 00:41:58 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
Starting point is 00:42:22 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.
Starting point is 00:42:40 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
Starting point is 00:42:51 a black checkmark. Yeah, awesome. Well, thanks again for a wonderful episode. And thanks, Scout APM, for sponsoring. And thanks, everybody, for showing up
Starting point is 00:43:00 and watching the show. Yeah, you bet. Bye, everyone. Bye.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.