Python Bytes - #331 Python From the Future
Episode Date: April 12, 2023Topics 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)
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.
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.
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.
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,
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
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
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,
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.
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.
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?
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,
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,
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
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,
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?
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.
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.
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?
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,
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,
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.
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,
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,
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.
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
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?
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
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
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,
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.
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
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.
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
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
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
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.
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,
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.
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,
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
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
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
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
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.
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,
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
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
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
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.
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.
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?
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
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,
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,
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
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
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
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.
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.
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.
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
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.
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?
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
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
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?
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.
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?
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.