Python Bytes - #331 Python From the Future

Episode Date: April 12, 2023

Topics covered in this episode: makeapp Looking forward to Python 3.12 Python 3.11.3 is out How to Make a Great Conference Talk Extras Joke See the full show notes for this episode on the websit...e at pythonbytes.fm/331

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 331, recorded April 11th, 2023. And I'm Brian Ocken. And I'm Michael Kennedy. So I want to thank everybody that's showing up on the live stream and watches it on YouTube as well. I know a lot of people just listening to the audio, which is great. Thank you. But sometimes it's nice to pop over and join the chat. We usually record it Tuesday at 11.
Starting point is 00:00:30 Tuesdays at 11 Pacific time. So if you can catch it, great. If not, we enjoy your presence anyway. Also want to thank InfluxDB for sponsoring this episode. We'll hear more about them later in the show. But first, what do you got for us, Michael? How about we make an application? Yeah.
Starting point is 00:00:49 Yeah, let's do it. Let's do it. So this one was actually thrown out just in passing over on TalkPython when I had that panel about sort of the direction of packaging in Python in general. Like we've got all these different choices. We've got poetry.
Starting point is 00:01:10 We've got pipdmv. We've got hatch. We've got straight pip. We've got pipduals, right? So I had a bunch of folks on the show to talk about that. And Paul mentioned like, oh, make app is something that I'm really dreaming about right now. That might be a nice way to think about how we work with packages. And so Felix Ingram noticed this, maybe more than even that I did while we were watching,
Starting point is 00:01:31 or while he's listening, and thought, you know, maybe I should talk a bit more about this. So I didn't, I wasn't really aware of this before I dug into it, but MakeApp, it's a little bit like cookie cutter and those kinds of things, but it'll guide you through creating your application as well as helping you test certain things. Like, for example, if I want to create some Python package having to do with secure, I can't call it secure because guess what? That's already taken on PyPI as a package. So I'm never going to be able to publish that. I'm going to have to rename it. I might find that out later along the way. So
Starting point is 00:02:09 MakeApp will do things like check to see that the thing you're trying to create could be uploaded to PyPI if you later chose to do so, right? And also worth a quick point out, Felix said, hey, look, here's where you can link to it over onto the TalkPython transcript page and it has every paragraph I guess more or less has its own little link that you can link to and play and hear what it's talking about and I don't think we have that on ours and I'm wondering how much people care like that's work that Michael has to do but a bunch of people like yes please then let me know Anyway, that's how they shared it with me and I figured out what we're talking about. So this is an app that simplifies creating applications, rolling them out and publishing them. And what it does is it will
Starting point is 00:02:54 make a skeleton for your new application in one command. That's kind of the cookie cutter equivalent. Although there's absolutely fewer templates or project types, right? There's like five or six project types instead of five or 6,000 for cookie cutter. So that's a consideration there. But then it'll automatically create a Git repository for you. I'm guessing just locally and you've got to link it to GitHub or wherever. As I said, it'll check whether the application name is available on PyPI. You pick your layout,
Starting point is 00:03:25 and then it also allows you to sort of manage your app over time so you can easily add entries like, here's a new item, or here's a breaking change to your change log. Oh, cool. You can also publish your application, push to source control, push to PyPI, those kinds of things in a single command.
Starting point is 00:03:44 I don't know if I'd use that. I think I kind of just am always pushing to GitHub. I don't really wait until I'm ready to publish something. Like I'm pushing like stuff. I always kind of feel bad. I think GitHub, why does this person commit so often? But it's just like, you know what? I'm done with this little thing.
Starting point is 00:04:00 I want to save it. What if I'm on my other computer? I don't want to have to try to remember how to get it back. Anyway, that's a cool feature. I'm not sure I would use. So when you create a new one, you say make app new, and you give it a name. You give it a location and other things like, what is the name?
Starting point is 00:04:13 What is the author? And you can also take things like the author, which you would put on the CLI. You can put that into a config file and say, you know what? It's me. It's always me. When I'm logged into this user profile,
Starting point is 00:04:25 my name is still the same as it was before, right? So don't ask me about that, right? So that's kind of cool that you can do that. It'll create templates for things like a click powered app, something based on PyTest. It'll, Brian, let you create a PyTest plugin project. That's intended to be a PyTest thing. A Django web app or this thing called WebScaff, which is also a scaffolding thing for web apps. And then when you're ready to publish it, you say make app release and that'll bump a version or you can say make app release,
Starting point is 00:04:56 increment the major version. Like that's a major change that you want to make, right? So this will automatically bump the version number, tag it in source control, push the source and the tag up to github or gitlab or wherever you're acting on and publish it to pypi all in one fail swoop then again if you want to make changes you can say make app change and then you put the text of that change and it'll put that into changelog in the right place so you put like quote like here it's plus new
Starting point is 00:05:25 change command implemented or whatever. And it has certain prefixes like plus for a new feature addition, exclamation mark for important change minus for a deprecation or star for some minor change. Right. Pretty cool. And then on top of that, you, it comes with autocomplete in your shell. So if you're using bash or oh my z shell or something like that and you want to hit tab and have it know about make app what are its commands right after that then you can put something into your profile your rc file and it will activate the autocomplete which is cool that's cool yeah anyway so people can check this out comes um lightly recommended from that episode,
Starting point is 00:06:06 but yeah, pretty cool. It looks interesting, worth all. Nice. Well, one of the things I've been thinking about and looking forward to is Python 3.12, actually. So 3.12 is not here yet, but it is kind of here, right? So it's a yearly development cycle Python's on. Where are we at right now?
Starting point is 00:06:31 Well, we just had, so we just passed Alpha 7. So Alpha 7 was released recently. I don't think it was right on the group. Definitely days ago, yeah. Yeah. But yeah. So 3.12, Alpha 7. And it's nice that they've published the schedule, the expected schedule.
Starting point is 00:06:52 So we've got up through a couple more months of, you know, four or five months. Bad at math. And this early in the morning of betas. And then candidate releases. And then the final on in October, which is awesome. So the so why am I bringing this up? I'm bringing it up because a couple things happened recently. So the alpha seven, if we took a little release notes, there's some fun stuff in here. And I'm not sure when this came in, but the thing that I really am looking forward to in three 12, uh, is, uh, well, there's some stuff that isn't really mentioned here, but I think we're going to get more speed improvements, which I'm pretty excited about.
Starting point is 00:07:33 Um, but there's, uh, there's some, some cool stuff with, uh, um, oh, this is just the, the major, major, major new features. Uh, we've got even more improved error messages, which are great. And that's one of the things I wanted to talk about. A whole bunch of great stuff. But these are pretty cool. Also, invalid backslash escape sequences now warn for syntax warning and deprecation warning. That's kind of neat. So in the what's new article for 3.12, this does have some examples of the new error messages. So these are really kind of neat things. If you just kind of use sys version info, but if you forgot to import it, there's some new error logs of, did you forget to import sys? So did you forget to import?
Starting point is 00:08:22 Those are nice error messages. There's a, an, another one from, uh, like if you're, uh, using a variable within a, within a class that's not around, maybe it's a self variable that you forgot or self member variable. So there's a, did you mean self dot black? Nice example. Um, syntax error from, uh, from, and I've done this a lot, of import from and messing this up. So it's import something from this other thing. It's not that. You're supposed to say from something, import something. And the syntax error now says,
Starting point is 00:09:00 did you mean to use this instead? Which also, I don't know, to me begs the question of, like, can't you just figure it out if you know what I meant? But anyway, yeah, some other, like import error messages, some cleanup, more specific error messages, always exciting. The other, there's always new exciting things in new versions. One of the- Off of that bit, I just want new exciting things and new versions. One of the- Off of that bit,
Starting point is 00:09:26 I just want to bring a little audience feedback. Sean Tibor from Teaching Python out there says, hooray for better error messages. And Pamela Fox says, yay, I've already been benefiting from 3.11 error message improvements, some of which I requested myself in the Python forum. Tell Pablo what you need.
Starting point is 00:09:45 I think this is really great. It's certainly getting nice to have those, especially for people getting started in Python to be less confused. Yeah, and I'm finding myself just, I'm in a hurry more often than I, I guess I'm always in more of a hurry getting stuff done. And if the error message can help me solve something quicker,
Starting point is 00:10:05 that's a nice win. So just one of the announcements that came out recently so i i was this is like tight schedule so we've only got we're on alpha 7 we've got um no more alphas we've got some betas coming but um i thought we were no new feet no new features beyond the beta one. And one of the new features that I don't see so far, but it's supposedly coming in is, is this, this per, per interpreter, Gil pep,
Starting point is 00:10:34 six 84. It's it's good. Three 12. It just got approved. And it's, I'm pretty, I think I'm excited about it. I'm not sure.
Starting point is 00:10:43 I don't know if you know much about it, Michael. But it says here, okay, so I'm just going to quickly summarize the abstract. So CPython users can run multiple interpreters in the same process. However, interpreters in the same process always share the same global state. So one gill. It is a source of bugs. uh with a growing impact as more people use the feature furthermore sufficient isolation would facilitate true multi-core parallelism oh i like multi-core parallelism uh so i think we want this and uh so there's
Starting point is 00:11:22 outlines in the proposal so we're going to have, they're moving the data surrounding the GIL into the per interpreter data. And I think I'm excited about it, but then later on it does say there's a reference like for how do we teach this? And it mentions, oh, I think I lost the link. Oh, this is an advanced feature meant for a narrow set of users of the C API. So I'm not sure how this will affect normal people in the future, but I still think it's a good thing. Do you have any idea, Michael? I have no idea. Yeah, I think the trick is how do you start a new interpreter?
Starting point is 00:12:01 And what I would imagine might come out of this is there might be right now in python we can create threads and we can create multi-processing and we can do async i o right yeah um async io it's just one thread it doesn't do any of that so kind of put that to a side it doesn't really fall into the same realm but with threading versus multi-processing it's always been this trade-off of like well i really just want to run more than one thing at a time and you know like i've got 32 cores why can i only use one of them i i have this work i want to do and this might be interesting for um you as a data scientist or a scientist or somebody doing computational work
Starting point is 00:12:42 say on like hardware devices, a lot. But then it also could be interesting for web developers and APIs and stuff, right? Like those threads might be, you know, you're still blocked on the gill on the server side for each process that you spin off. And that's why we have a bunch of worker processes that run like you have eight worker processes
Starting point is 00:13:04 already in a copy of your entire app consuming all that memory, right? That's, why do you do that? Well, because you don't want to be subjected to the gill for among other reasons, but that's a primary reason because you can't really do it in parallel. But if you had a bunch of processes that are independent,
Starting point is 00:13:19 so I can certainly see there might be some kind of API or something in the future where when you create a thread, you can say, and this thread lives inside this process, but I want more isolation. Like interpreter isolation equals true when you create the thread or whatever. And then when you run that work, there's two things that happen. One, it should run in true parallel form, but let the OS, it'll be an OS thread. The OS will schedule that on its own course. But then you also will have to actually care about lock.
Starting point is 00:13:49 Like other languages like C and C sharp and stuff, you do parallelism. You're all about, okay, when do I lock this? How do I lock that? How do I unlock it? What about a deadlock? And in Python, kind of the gill will help us a lot. Like that's gone, right? And so it kind of levels up the difficulty of thread safety
Starting point is 00:14:04 because there's more of a chance that these things run in parallel so anyway so we had so i think the gist around it is there were a lot of people that were a lot there are some people that are trying to utilize the multi-interpreter or sub-interpreter systems and they were running into problems because of this, this, the, the gill is global sort of a thing. And so push, it's not just the gill, but there's other things involved with this pep that push more of the data around the per interpreter thing into isolation.
Starting point is 00:14:36 So it's increased isolation of the per interpreter stuff, including the gill. And, and those kinds of people, like it says maintainers of any extension module that uh that created isolated interpreters um they'll now be able to utilize this better so there's some people making some cool things that'll continue so yay anyway i'm very excited for this i'm i'm excited for this i'm excited for the no gill python i think it's one of these sort of
Starting point is 00:15:03 chicken and egg type issues be like i don't really need the threading stuff i don't really use it because it's python a lot of people like well there's no point in trying it so there's just not like a culture of yeah really leveraging the hardware outside of these very specialized c apis or certain rust scenarios but then when you do see them you're like oh it's like 50 times faster like hmm wouldn't it be kind of nice to go 50 times faster sometimes if you might need it or or yeah but have as much ram on a server because you don't need to scale out as much for the guild like you said in other languages we have to like freak out about like like locks or using a message queue system for different processes instead and uh we don't have to deal with that now. But so I think it's good
Starting point is 00:15:46 that we're taking slow steps towards it. So it's good. Anyway. Yeah, no, I think this is good. I talked to Eric Snow about it long ago. It sounds like it's created better data isolation within the CPython source code anyway. There's a bunch of global shared variables
Starting point is 00:16:01 that weren't really meant to be shared, but they were because there's really only one thing. And this refactoring, I think, has also made it a little bit better inside. Yeah. Okay. Cool. All right. Do you know what else is cool? Databases. Yeah, databases are great.
Starting point is 00:16:18 And we want to thank InfluxDB for sponsoring this episode. InfluxDB is a database purpose-built for handling time series data at massive scale for real-time analytics. Developers can ingest, store, and analyze all types of time series data, metrics, events, traces in a single platform. So, dear listener, let me ask you a question. How would boundless cardinality and lightning fast SQL queries impact the way you develop real-time applications? InfluxDB processes large time series data sets and provides low latency SQL queries, making it a go-to choice for developers building real-time applications and seeking crucial insights. For developer efficiency, InfluxDB helps you create IoT,
Starting point is 00:17:03 analytics, and cloud applications using time-stamped data rapidly and at scale. It's designed to ingest billions of data points in real time with unlimited cardinality. InfluxDB streamlines building once and deploying across various products and environments from the edge, on-premise, and to the cloud. Try it for free at pythonbytes.fm slash influxdb. The link is also in your show notes. Thanks, Influx, for supporting the show. Very, very awesome. Thank you for supporting the show. Now, Brian, you live in the future in this world of Python 3.12. Yeah. I live in the present, as in just a few days ago, Python 3.11.3 was released.
Starting point is 00:17:49 How about that? Oh, cool. Yeah. I don't know. My feeling is a lot of times when it's one of these point releases, maybe it's worth upgrading. Sometimes there's something cool in there, sometimes not. This one, you probably want to get in there and check it out because, number one,
Starting point is 00:18:04 and this is not very common in the Python world, that there's a security update. So they updated the underlying open SSL version for Windows and Mac OS to 1.1.1T. And we talked about like semantic version and calendar version. This one's the T versioning style to address, let's see, one, two, and three CVEs. And if you go pop over there to read a bit about that, it says severity high. Okay. That doesn't sound absolutely incredible. And the other one is moderate and another one is moderate, right? So those are probably worth paying attention to then. So that's, I just realized
Starting point is 00:18:46 like 20 minutes ago that actually, I know it came out last week, but I just noticed it this little bit ago. And because of the security stuff, I decided I'm kicking out something I was going to cover before and putting this one in here. So. Yeah, that's pretty important. Yeah. I just want to be a little timely on that. So there's also some other things, you know, there's always a few things like, huh, I wonder if that, that might be causing a problem. For example, example, stack top value on tracing entries to avoid corruption on the garbage collection. Like, I don't know that I do that, but maybe things that I use do that. And I don't want a corrupted garbage collector, right? That would be bad. Who knows if, like, if it lose, if it it leaks data that's bad, but if it goes and
Starting point is 00:19:25 collects something that's not bad, that's really going to be a problem. Overflow when creating very large dictionaries. Causes a crash when deallocating nested filter objects. Seg fault from a race condition during garbage collection. All right, so there's enough stuff in here that I'm like, you know what? This thing's getting an update. So those are the cores and built-in. And then there's a bunch of things, a bunch of improvements to the standard library people can check out. So it's just always interesting how many things get changed, even though you think, like, standard library is kind of static and fixed. But, like, fix dunder weak ref descriptor generation for custom data classes and you know for binary mode file hook compressed doesn't set the encoding and even if the value is um is none
Starting point is 00:20:12 and so on so just a bunch of little things getting fixed but the reason i i put it to the top of the list is the security stuff yeah one of the security things that's interesting to me, I haven't looked into that yet, is that subprocess P open thing is a lot of people use Python to coordinate other activities on, you know, like DevOps and and systems admin and stuff like that. So security patches around that you probably should pay attention to. So that's pretty interesting. So absolutely. Yeah, specifically for windows users right so now this is a safer approach to find cmd.exe when launching with shell equals true though yeah and i can't imagine like i didn't even think that if you found the wrong command you'd be passing all your stuff to the wrong shot like you know some evil cmd yeah yikes okay cool all right well that's
Starting point is 00:21:09 that one what's your last um i want to do something fun because we're i'm looking forward to pycon uh uh coming up right right pretty soon are you pretty excited about that um i am excited i think it's approaching faster than i'm ready to prepare for being there for all that time and getting the most out of it. But yeah, I'm excited. Yeah. So there's an article, who's this by? Sebastian Witowski, How to Make a Great Conference Talk. And I kind of like this. There's some really great advice in here. So I know it's kind of late. A lot of people that are speaking, people speak at all sorts of conferences though.
Starting point is 00:21:48 So it's good. But if you're speaking at PyCon, there's a couple of things I want to highlight. You probably already have your slides set up, hopefully. And no, you've already been accepted. So you don't need to worry. You can maybe skip the benefits of speaking at a conference,
Starting point is 00:22:04 but I highly recommend people try. I think there the benefits of speaking at a conference, but I, I recommend people try. I think there's benefits of even submitting and trying to get an idea together, even if you don't present it because it's, it's nice. Anyway. Then there's call for proposals, research preparation slides. There's a whole bunch of stuff in here. That's great. I want to skip to the end. So you're, you're, you're in the middle of, of maybe trying to do rehearsing. So I say skip to the, this part, the, the live demos part and rehearsing and what to do on the day of the presentation and make sure you review these because these are great. And the greatest advice I've ever seen for live demos is, do you really need a demo? I have, we've probably all, I don't know if anybody's, anybody that's tried to do a live
Starting point is 00:22:52 demo has had one not go as they expected. Even if it turned out okay, it's a stressful thing. So especially if you are new to presenting, I would say skip the live demo. It's cool when it works, when it doesn't. It's we and the other thing is, if you're going to do it anyway, and something goes wrong, the Python people in the audience are not going to like heckle you or anything like that. We're a nice bunch of people. And we've all had it happen to us. So so you're not going to you shouldn't feel too embarrassed, but prepare for it. Prefer, prefer, what are you going to do if the wifi goes out? Things like
Starting point is 00:23:28 that. Um, so, uh, and also, and also I just don't do them anymore because, uh, cause, cause they've always gone wrong for me. Okay. Moving on at the very least practice them, uh, rehearsing. I see a lot of people and I, I used to be like this to forget to rehearse. The rehearsing i see a lot of people and i i used to be like this to forget to rehearse the rehearsing is the most important part um and i i can't remember where it is in here but it's good advice of uh taking uh practicing the first five minutes making sure you've like got the five minutes first five minutes the last five minutes memorized you can like you can like you know exactly what you're gonna say because it's hard if you think you kind of know what you're going to say, when you get up there, it's blank page. You have to, how do you start? So knowing how to start and knowing how
Starting point is 00:24:14 to finish is a, is a good thing. I so practice. And I also see, I've seen people practice quietly and I've done this before in your head. Practicing in your head doesn't count. Do it out loud and do it standing. You're going to be standing at a conference. So don't sit and practice it. Stand up and practice it. I was at the at PyCascades. I was in the hotel room.
Starting point is 00:24:36 And what did I use for a standing desk? The ironing board. The ironing board works great in a hotel for your standing desk to practice it. Anyway, practice your talk. And I take one of these. So I'm going to have a link in this. I'm going to take a look at this in a second. But one of these time timers.
Starting point is 00:24:54 So it's $36 for a little tiny timer. So what's the big deal? You can visually see what's going on. And I love these things. And that's what I used to practice with. And the other comment in here was to pay attention to where you are in your slides at different points, which is a great idea. Like at 15 minutes or 10 minutes, 20 minutes, whatever. Where are you approximately in your slides?
Starting point is 00:25:19 The reason for that is while you're doing your presentation, if you're at the 10 minute mark and you're already halfway through your talk, slow down a little bit. If you're at the 10 minute mark and you've only gone through the first three slides, you're going to have to speed up a little bit or else you're not going to get into it. Or skip something. Yeah, or skip something. Know what you're going to skip, but practice it. And then some great advice for day of the presentation. Don't drink too much water or coffee. You're going to want to, but don't. And then some great advice for day over the presentation. Don't drink too much water or coffee. You're going to want to, but don't because, but drink, drink some, make sure you're
Starting point is 00:25:50 hydrated, but not too hydrated because you know so anyway, some great advice here. Packing checklist, make sure you have extra chargers. I I've got like the little dongle thing because conferences usually have whatever you need to hook up to, but I don't trust that. So I make sure that my laptop can get to the HDMI, can get to, uh, uh, yeah, whatever it needs to, um, extra charger if you've got one. So just prepare. Yeah. It's a good article. Uh, Sebastian's a great presenter. So yeah, he's done a bunch. I, I also have some thoughts I would say regarding the live demo part, I'm, I'm on board with Marco. Like I think not that one, this one that I find talks of live demos. He says more exciting. I say more, more real, right? Like if, and I think it applies an important role. Like there's certain things you show picture, picture, picture. You're like, Oh, that's cool. But I bet that's really hard. But if you show, actually, there's these three lines that I wrote in a minute in front of you. And now the thing happens like,
Starting point is 00:26:54 Oh, that's totally approachable. I could do it. And I think it just sets a different tone. I don't think every talk has to have it. Like there's storytelling talks and like big picture talks and like those don't need it but if you're trying to talk about as focused technology i i think it's almost table stakes so i disagree a bit with sebastian on that okay however i that said you can go into it with a blank file and get confused you can get distracted. You can make mistakes. You can forget things. So two things, leave a lot. If you do do it, leave lots of breadcrumbs, like maybe put a comment, like here, I want to create a flask app here. I want to make a view that responds to this URL. And like, it might be hard to remember, do all the steps, but if you see make the flask app,
Starting point is 00:27:41 you're like, yeah, I remember how to do that. Create a view that call it responds to this URL with like the actual variable passing thing. And Oh, okay. Well, that's easy. We'll drop that, right? Like you can make it hard on yourself or easy on yourself. And then second, have a backup. Pample says at his research lab, they were actually saying, keep a spare laptop. I didn't know necessarily about that, but I would at least have a finished version that you're like, oh my gosh, well, let me pull this up and show you. Then we'll talk like some kind of fallback, right? There's like levels of live demo. Do I say file a new project and we write a thousand lines or do I strategically highlight the important bits and not distract people with like boilerplate and get potentially
Starting point is 00:28:24 lost, right right i don't know so i think one of the one of the halfway betweens is to script your demo and um there's a tool that the the sebastian links to called demo magic and what you do with this is basically you you have these commands of uh pei or pe and and other things and wait for prompts and whatever. And these, what happens is you, your demo, it looks like you're demoing, but all you're doing is hitting enter to go to the next thing. And, and then people can see in real time what it looks like, but they don't have to wait for you to type. It just sort of, you know, it kind of types it out as if it's doing. Yeah. So this is kind of nice. I also, one of the things of all conference advice, um, Sebastian does talk about
Starting point is 00:29:10 this, but keep it in mind. This is what works for him. I disagree with some of it and, and you disagree with some of it and be, it's okay if you disagree with it, cause it works different for everybody. Um, like one of the examples, one of his advice, pieces of advice also is to write out your talk before you write your slides. I never do that because I'm writing my slides in Markdown. I'm thinking about what I'm going to show while I'm, while I'm talking and while I'm thinking about the topic. So my, my slides really are kind of outlining to begin with. And, and then I, you know, I can put junk in there and cut it out whatever um also a code i don't know how to do and it says you should be able to
Starting point is 00:29:51 do your talk without slides i just i i don't think that's true this is a for for the kind of demo or kind of stuff i'm doing there's a lot of code i'm showing i'm not going to describe that code if the slides don't work i don't know what i would do if my slides didn't work, but anyway. So yeah. One, one other piece of advice that I want to emphasize is Sean out there says, I always take three slow breaths before I start talking. Try to talk slow and smooth for the first minute. That's really good advice. And you know, your body reacts to stressful situations like this in weird ways, right? Like you think your body's like, you're going to be eaten by a bear if you like say something wrong.
Starting point is 00:30:30 Like, no, you won't be eaten by a bear. But, you know, your heart does race. And a lot of times, especially when you're new, it's easy to perceive that as like, oh my gosh, I'm so nervous. I hope I don't screw up. But an equal interpretation, viable interpretation, that would be, I'm really excited. Like, my body's going, like, really, those butterflies in my stomach are like, I am psyched to do this. And so I just convince myself, rightly or wrongly, kind of lie to myself.
Starting point is 00:30:55 Like, well, if you feel nervous, that's because you're getting excited and you're just about to do something awesome. So, you know, get ready for it, right? Rather than, oh, my gosh, I'm nervous. I'm going to make a mistake. So I think it's okay to lie to yourself in that regard. I also, um, I've been like, I don't want to go over. Um, I don't think anybody's going to be mad if you go under. So I, my personal, I personally, if it's 25 minute talk, I practice it in 20 minutes. Absolutely. It's easy to expand. It's hard to shrink in real time. And also if you, if you're done early, nobody's going to complain about that.
Starting point is 00:31:27 But also, also if something goes wrong at the beginning and you have trouble with your, the, the video setup, you're still, you still have enough time to finish it. So I think that's cool. The other, the other thing is pauses within. I just keep, I just talk constantly and I don't, I have to remind myself if I'm showing something that I think is going to be shocking, let people take a second to be shocked by it. Um, and if I, and if people laugh, take a moment and let them laugh, um, before you move on to the next thing. So yeah, absolutely. Very good. Cool. And good article, Sebastian. Okay. Well, those are our topics do you
Starting point is 00:32:05 have anything extra for us i sure do i got a few things i finally got that uh cdn python web apps that fly with cdn's course published and online like i said that i would but now i officially have it up so people can go check that out it's super fun speaking of releases, Django 4.2 was released last week also, one day before Python 3.11.3. Major highlights include PsychoPG version 3 support, comments on columns and tables, support for asynchronous streaming responses and async interfaces related to managers and models.
Starting point is 00:32:40 So you can go check that out if you're doing the Django. Also, it's a LTS release so um oh yeah that's important yeah it has been designated a long-term support LTS release which means it will be around for three years all right that's it for my extras you uh no no extras this time oh I forgot I realized I forgot um there's a lamp in the. That's new. I had a big Easter party and the lamp got moved in here to save space in the rest of the house. I forgot to move that. Because why wouldn't you cram it into your office? Why not?
Starting point is 00:33:15 I had a lovely experience where we had to remodel the inside of our garage, basically do a bunch of drywall and stuff. And so everything had to come out. So pretty much the entire garage moved up into my office into a mountain of junk behind me. It was awesome for a while. I'm very glad to have that mostly gone. Yeah. Well, how about a joke? Yeah. All right, then. This one comes from Programming Humor. And we are in this time of a thousand flowers blooming AI revolution. See where it goes. You know, we've got chat GPT, got mid journey, got stable diffusion. And it seems like everyone is plugging AI into their tools and email, copywriting, all those, there's a bunch of things like Notion, for example, you can get an AI plugged in to help you write
Starting point is 00:34:01 your app, right? And so here, this is like two views. People sent an email to each other, a couple of coworkers on one side, a couple on the other, and they don't know about each other, right? The first one is just one bullet point. You could see like a dot and a line. There's like one line
Starting point is 00:34:18 and this person's bragging to their coworker, AI turns this single bullet point into a long email so I can pretend I wrote it. Boom, send. The person who receives it is talking happily to their coworker. Says, AI makes a single bullet point out of this long email so I can pretend I read it. Oh, here we are. When you talk about stuff getting sent over, how does that work?
Starting point is 00:34:41 Well, first you connect over TCP and then there's DNS and then there's TLS and then there's the HTTP layer. And now there's like this AI translation layer that rewrites it to be sent. But it's kind of the opposite of efficiency. Instead of sending the single bullet point, it expands it to a whole paragraph, sends it and then shrinks it back down.
Starting point is 00:35:03 It's the opposite of compression. AI is kind of freaking me out i hope that i still have a job five years from now um but anyway well we'll ask we'll ask chat gpt about that later yeah at some point and you know more about this than i do so at some point you're gonna be like uh like can i get a an ai brian to to host the podcast with me yeah yeah i'm already digging my bunker to for when skynet activates as sean says yeah anyway start growing carrots um yeah exactly why it's goats no actually i'm gonna go right to go back to writing Python code. But as always- Chat GPT, make me a goat. How do I start a goat farm and live off grid?
Starting point is 00:35:50 Fantastic. All right, well, Brian, thanks as always. Thanks. Talk to you later. Bye. Bye. And thanks to everyone out in the audience. That was fun.

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