Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to
your earbuds. This is episode 416, recorded January 13th, 2025. I'm Michael Kennedy.
And I'm Brian Okken.
This episode is brought to you by us. Check out our stuff that we're doing
over at Brian's course. Where's your course, Brian? I forgot the URL.
pythontest.com.
pythontest.com. That's right. And over at Talk Python Training. Links are in the podcast
player show notes or on the homepage, all of those things. Follow us on Mastodon and Blue Sky.
We love to connect with people over there. In fact, Brian, you don't really have visibility
into this yet, but there's a bunch of recommendations I got from, I think it was Blue Sky,
which fills out many of my topics today.
Nice.
Yes. And I encourage people to follow us out there. Use the starter pack on my profile if they wish.
And if you want to get all this stuff sent to you automatically as an email, and this might be
getting an upgrade. We're not entirely sure yet. We're playing around with some ideas here.
Yeah.
Content-wise. But you should definitely subscribe to the email.
I don't buy stat.fm. Click on newsletter. Guess what? You'll get a newsletter if you do it. That'd
be awesome. We'd love to talk to you there. And with that, Happy New Year, Brian. It's been a
couple of weeks we've been on break. Some of it by decision, some of it mandatory by family stuff,
all those kinds of things. That's on my end. But welcome back. Happy New Year.
Welcome back. Yes. Thanks. It's really good to be back. I'm glad to start talking coding and Python
on the air again.
Yeah, absolutely. You get to this age where you get phone calls out of the blue. You've got to come
help your father with this because he's old and can't do stuff. And just sometimes you jump on a
plane for non-vacation reasons and it's not as fun as it could be, but you got to do it. That was me
last week. Okay. Well, how about this week? What do you got for us? Well, I was thinking that this
week at the start of the new year, people might be thinking of some changes. So some of the changes
they might be thinking about is terminal or shell changes. If you're kind of a terminal person,
and especially if you were a macOS or Linux user, one of the things that just came out recently is
ghosty. So at G H O S T T Y, get it go T T Y. Yeah, that's clever. That's clever. It's a it's a fast
feature rich and cross platform terminal emulator that uses platform native UI and GPU acceleration.
So super fast, super featured. Why am I covering this? It's kind of fun actually. So ghosty,
have you heard about this? I have absolutely heard about it. I haven't installed. I have played with
it. It is fun. It is not yet dethroned warp as my way to my go to yet, but I like it. Both of them
are written in high speed languages. I think ghosted is zig of all zig language is awesome. And yeah,
warp is rust, but yeah, I love it. Okay. Yep. So ghosty just came out. Let's see. They did the
announcement announcement of a release in October, but it it just came out at the end of the year. I
think it was the 31st of December or something like that in into the year. But it's so what, why,
why am I talking about this? Because it's it's kind of fun. And also it has some interesting heritage.
So this is started by Mitchell Hashimoto, which is one of the co-founders of HashiCorp. He think he
left HashiCorp in 2023, but anyway, some, some, some nice heritage. It's a feature rich. What does
feature rich mean? That's a, it's a fast feature rich, fast. It's got themes. It's got all that stuff,
sort of stuff. But a couple of reviews that I was reading of it were saying that it really is pretty
fast and partly because it's less code. They really, the, the code for it is a lot stream,
more streamlined than a lot of other things. And, and having it be native and really focusing on some
of the speed and as well as features. So the, the tagline really, when you go to the about page,
it says there are many, many excellent terminal emulators available, but they all kind of force you
to either choose speed features or a native UI and ghost D wants to do all three. And I kind of like
that. I've had issues with things that don't really look like, you know, they're not, they don't really
look like a native feel. Anyway. I kind of, I haven't, I've just downloaded it, started playing with it a
little bit. I haven't done much with it, but a lot of people on a blue sky were talking about it and
masked over the break. as far as shells go, so ghosty does integrate with, with shells,
with different shells that integrates with, it says, some of the features require integrating with
your shell. It automatically does automatic injection of shell integration for bash, Z shell,
fish and elvish. And I've been thinking about fish because fish was actually in the news as well.
fish, you're, you're into jam bands. I got it. Yeah. I kind of forgot about fish anyway.
but, and then the announcement at in December as well is that fish shell, is the 4.0 is in beta
and it is rewritten in rust. So, that's kind of fun. Do you know what it was written in before?
I think it was CVC or C++. Yeah. a port from C++ to rust. So, not sure about
the reasons around that, but it's kind of fun. if you, it'd be fun to get, if you want to contribute
or whatever, I think there's more energy around rust than C++ right now. Yeah. one of the
things that I'm, I'm intrigued by with fish because I I've been setting up new environments
lately and stuff and, and I, I like my environment, my shell environment, but, keeping it all
like all the extras on different machines is, is a little tricky. and, apparently fish has a,
I haven't used fish, but apparently fish has a lot of stuff built in that, that other people have
have to configure later. So, okay. Yeah. Yeah. I'll check that out. Very nice. Yeah. Are you,
you used to do a Z shell and oh my Z shell? Are you still? Yeah. Yeah. Yeah. Okay. If,
if I use the regular terminal or I term or stuff like that, then I am, but I think with warp,
I'm pretty sure. Yeah. I'm sure that it, it doesn't run Z shell, not directly anyway. It may
underneath the cover somehow, but it feels like it kind of does its own thing, you know? Yeah. And I'm
enjoying it. It comes to be built with a lot of stuff that I used to install like McFly and other
types of stuff. Well, so I used to have, it used to be a heavy duty Z shell user and had tons of
configuration changes. But when I started doing a bunch of machines, I kind of just went back to
vanilla bash and with a, with just a, like a bash or C file. but we'll see.
It's the history. The history is so hard on bash compared to some of the other things,
unless you configure it, right? Yeah. Yeah. Anyway, what you got for us?
All right. Let's take it for a loop here. This one comes to us from Owen Lamont. And I told you
stuff was coming from blue sky and Owen has a special honor in this episode. He doesn't know it,
but he might have a, a perfect, perfect, trifecta sort of thing going on here. So this,
this one that we're going to cover, he pointed out. And then the next one we're going to cover
is, the next one I'm going to cover is my second main topic is actually created by him.
Then something else, I can't remember exactly what it was, was referred to. So he's got three things in
three different sections, which is pretty wild. So Owen, thanks for sending this in. And like,
like I said, I encourage lots of people, to send their stuff in because that is a super helpful
and we'd love to have it up. So this one is called wind loop. Now, something that's a hassle is if
you're working in asyncio, well, asyncio is not as high performance as it could be, right? So there
are things like uv lib, which is the backend powering things like uv loop, hence wind loop, uv loop.
The problem is uv loop is not compatible with windows, even though the foundation of
lib uv is compatible. Make that make sense, huh? So this person came along and worked on it,
Vizonext and said, all right, I've been waiting for people to set this up and make it work. And well,
I guess I'm going to have to do it myself. So he said, because nobody was willing to step up after so
many years of waiting, I went ahead and downloaded the source code for uv loop, started modifying the
source code, to be windows compatible by carefully removing and changing parts that were
not made for windows, such as forking processes rather than launching sub processes and so on and
so on. So here's a, does it have any, any, benchmarks? Where are your benchmarks? I think
it might actually, no. Yeah, it does have some benchmarks. So this is a way to replace the asyncio
event loop to upgrade it to have faster performance, much like uv lib, uv loop does for Mac and Linux.
But you can just do that here and you can kind of use them both, right? You can just do sort of a
import, try, except like try to import this or check your platform and import the right thing and just
sort of swap between them. Okay, cool. Yeah. So, it says if you run it, with the different
policies, it'll show you like how much faster, you can get like, it gets, I don't know,
is this like five times faster or something for some benchmark, you know, all those things go.
And then where are we? They've got some nice examples. Yeah. It says, check out the,
how to use when loop when uv loop is not available. So it just basically says if the platform is when
32 sigwin or CLI, just import the run method from when loop, otherwise import it from uv lib. You could
also probably, you know, probably a nice way would just to be set the asyncio event loop policy before
an event loop comes into existence, which then when it goes and creates a no event loop automatically,
it'll use the when, when loop or uv loop one or whatever, but yeah, people can check it out.
It shows how to use it with FastAPI, and things like that. So pretty neat, I think.
Yeah, that's cool. Yeah. So if you're doing asyncio stuff and you're on windows and you've been like,
people keep telling me uv loop is awesome. I hear you. I can't use it. When loop, check it out.
And thanks Owen for sending that in. I also kind of, I really liked that it kind of works with
both or you can, you can have, have some examples to use both because there are people that are test,
you know, test developing on windows and pushing to the Linux. So yeah. Or you're a framework creator
and you have users on both. Yeah. Which you should think about because like we've said before,
it's like over half of the Python users are using windows. So yeah, the majority,
if you single down to a single platform, the majority, the biggest one is windows and then
it breaks into pieces. Right. Yeah. Luckily all the other pieces are Linux sort of things.
That's right. And that, I think that's the problem is right. Everything is POSIX like
except for windows. Right. That's a challenge. So yeah. Oh, well, anyway. Okay. Well, let's,
let's take a look to get this right. Oh, I've got some news from, from both from astral,
a couple of astral topics, uv and rough. first off, I saw this like little notice that there's
a rough 2025 style guide and I'm like, well, what do we need a new style guide for 2025? but,
but I'm really, there's a bunch of stuff in here, but what I'm really excited about is the,
the modifications to the F string formatting. And yeah. I, we're getting really nerdy here. If,
if you're getting excited about F string format, but F yes, there was a great sticker for us that
F yes, when the strings came out. so one of the cool things is, I guess it didn't do deal
with the, formatting the expressions inside, the interpolated expressions inside of the curly
braces inside of an F string. And so, yeah, often it's just a variable name, which isn't a big deal,
but you can put code in there and, and now, now rough, we'll, we'll,
we'll format that correctly. So, it's doing like, like here's, it shows an example of like,
uh, you know, layer layer method plus five and it was two stuck together. So now, rough will
spread it out a little bit. I do that all the time. Like if I have a time delta and I want to know how
much time I want to represent that in milliseconds, but it has a total seconds. So I'll just times a
thousand. Yeah. And actually more and more now I'm like, do I really need to assign this to a variable
just so I can stick it into an F string. I'll just stick the code in the F string.
Um, so I'm doing that more and more. So having a rough deal with that is great. But with that also,
there's a bunch of other cool things like, quotes are now normalized in f-strings according
to a project configuration. So if you want, if you set it to be double quotes or single quotes,
it'll deal with that. But, and they're left untouched if normalizing would result in an invalid
F string, of course it checks to make sure it doesn't make things up, looks for,
unnecessary, escape, like back tick or the, you know, the backslash, if it doesn't,
if it's not needed to be there. So that's nice. Yeah. That's excellent. Like for example,
you have single quote and then you will have another single quote in the string. You've got to escape it.
It'll rather than leave it there, it'll convert it, the outer strength to double quotes. So you
just don't need that escape at all, which is perfect. Yeah. Yeah. and then,
one of the last things is, it looks at the interpolated expressions in an F string to see
whether it might be acceptable to split the F string over multiple lines. So, and, and it has done
that with strings of splitting it on multiple lines. But I don't think it did that with f-strings before
because it could have mucked up the interpolation. Now it's figuring that out.
And doing the right thing. So, it just lots, lots of good cleanup work for F string.
Um, there's other stuff in here too, that, that I think is really nice. There's a,
prefer wrapping the assert message. Basically, do I care about this? Not really, except for,
I like the new one better. It looks better. so sure. better looking code is always a good thing.
So thanks Astral for not like ignore it. I mean, rough is why we've got fell in love with these guys
in the first place. And yeah, so, so I'm glad that there's still work going on here.
Um, now I've got a bit of a tangent that seems like a tangent, but not really.
the Python 3.14, 314, the PI release of Python is in alpha right now. December, as of December
17th, there's the alpha three. So it's been an alpha for a while. but so you can play with it,
but how do you play with it if you're kind of a uv person? Well, Charlie Marsh posted,
uh, in just on the seventh that you can use, what was that uv Python? Yeah. 3.14. And then you
do --preview because 3.14 isn't there yet, but if you use the preview, it works. And after I've,
after I did this now I can just, now I don't have to use preview when I just say like UV, V and V,
uh, and then pick up. Yeah. Yeah. Yeah. Yeah. Yeah. 3.14 or whatever. Yeah. It just works because
this is now it's on my machine. So, so there's a preview mode to grab that, which is really nice.
I like it. Oh, that's excellent. Yeah. They're doing really good work over there and you're right that,
that rough started it all. So that's, that's really cool to see. And one of the things that I've noticed
that I'm, I, I wasn't really up for a lot of the, like the big packagers to create my PI project
Toml for me and to start a project, but uv in it, it rocks. it does just enough. Like if you
pop into a new, a new project and just say uv and like you, you start coding and you say uv in it,
it creates enough boiler plate. That's good, but not too much. Like it'll generate a PI project. Toml for
you. but it's not too big. You can just, you know, add more stuff. Yeah. That is such a balancing act,
right? Like I'm going to create a new project, run this cookie cutter or this other template.
Do you want to use Postgres? How about celery? Do you like caching? What kind of are like,
whoa, whoa, I just, I just don't, I just need to like a PI project Toml on a few things and what's
the right layout relative structure. Let's, let's not overdo it, you know? Yeah.
That's too much opinion. and then, also uv sync. I'm using a uv sync all the time. So you
clone a project and do uv sync and it'll pick up the project Toml and create a virtual environment and
all that. So nice. Well, I really appreciate your perfect segue because this next topic of mine is
called uv dash secure. Nice. Pretty awesome. This was the one created by Owen Lamont and he just
released, he's been working on for a little while and people might be familiar with pip audit. So pip
audit will go and look at what is installed in your virtual environment. So I've got a virtual environment.
I've installed some packages through whatever pip install dash E or through just pip install or dash
requirements, however you get it, right? You've got all those requirements installed. And what if there's
some kind of malware or some other horrible thing that you mistyped like Jane, Jane Gagu or I don't know,
whatever, like you, somehow you miss a letter and you get something terrible or something was just
taken over. It was fine. And then it wasn't fine. This will go, pip audit will go back and talk to,
you can't remember exactly what it's going back to, but there's an API that checks for vulnerabilities
in different packages. And basically if a vulnerability is found, it's listed there. You'll know, right?
Cool. Cool. So that's great. But that requires you to have all those things installed.
Oh yeah. And it doesn't work. It doesn't like look at things like the uv lock file. So uv secure allows you
to ask, Hey, what is the status and vulnerability story of my project before I install them? Right. It's, it's good to
know, Hey, you've installed a virus that is now running loose in your computer. You'll want to try to work on that,
get it out. It's better to know before you install it. Okay. Right. And so when Owen submitted this to us, I'm like, this is awesome,
but I'm not a uv sync kind of guy. I'm a uv pip install and a uv pip compile to generate a requirements.txt file.
So he said, no problem. I'll update it to also do requirements files. And then I ran that just go in
to the working folder for Python bytes and say uv dash secure. So first of all, you can install it with
UV as a tool or with pip X or however you want. Then you say uv dash secure, and it'll say, I'm looking at
this requirements file, or I'm looking at this lock file or whatever it is. And it'll take a minute.
Cause it's, you know, the Python bytes project has 86 packages it uses. So it calls that API 86 times
and gets a response. There's a bit of a delay there. Sure. You could parallelize that, but maybe harm the
API. I don't know how much it can take in parallel, but anyway, it says if there's a problem or whether
everything looks safe and Hey, everything looks good. Gotta love that. Nice. Yeah. So, nice work on that,
Owen and yeah, people can check out uv secure. Cool. Yep. And yeah, there it is. I'm being checked to see if
I'm secure trying to pull it up, but yeah, scan your uv lock file for dependencies with known vulnerabilities.
And now also works with requirements.txt files that were generated by uv. I imagine with others as well,
pinned ones at least, you know? Yeah. I mean, people might write their own now. Who knows? Whatever.
Yeah. They might, they might. All right. that's it for our main items, isn't it?
It is. Yeah. You got any extras? just, I guess, a little bit over the
the, break I did, I did play around with PI test, more and, and, started testing
code again. So, we'd talked about doing seasons. So I thought, yeah, what the heck I'll do. I'll,
I'll shift over. And so after nine and a half years and 223 episodes, season two is starting.
Um, so I'm going to do PI test plugins. So please, anybody, so there's an episode up just
introducing the, introducing the season that there'll be probably short, short or long,
depending on what we want to talk about for different plugins. some of them are going to
combine, plugins, like all the orderings together or something or whatever, or individual ones.
So, if you'd like to submit your favorite plugin or something you'd like me to take a look at,
um, go ahead. And how would you do that? you would, either go to, to blue sky or mastodon.
or I recently added a contact form on python test.com. Oh, I have to add my blue sky to that contact
form also. Oh, come on now. Don't forget it. Anyway. So that's my extra. Excellent. And real-time follow-up,
uh, you have Henny, out there points out that sneak maybe as possible does something similar.
Yeah. And that's for sure. I wonder if it's using the sneak API for that uv secure. Not sure anyway,
but MP bought it, but yeah, that's another thing to consider. Okay. I have a few extras. This is the
try. This is the trifecta part and I'm just going to link to it. I'm not going to play it. We've already
all had plenty of heavy metal, but Owen, was inspired by the funny song that we did with, remember
the curl heavy metal, like super heavy metal. That was awesome. TLS connect. Oh, so,
he did one for HTTP status codes and it goes through all the different HTTP status codes. So I'll link to
that. You can play it. You make sure you turn on the audio cause it's off by default because it's
pretty good. It's pretty good. I'm I do enjoy it. gosh, I wonder if it has, I'm a teapot in there.
I didn't listen that hard before 18, 19, whatever it is. That's a pretty good one. Okay. So,
people can check that out. That's, that's pretty fun following on that. And, who knows, maybe I
might do some more fun stuff with songs later as well with some of these episodes. I think we can do it,
but we're not doing this episode. We've got to play around. So another thing to announce is
Picon Austria is coming. When is it coming in April 6th and 7th? And it's opening party on the 5th. I mean,
who wouldn't want to go to a party in Austria, have some good beer. Yeah. Great. Yeah. So I met
some of the folks behind this at Picon Slovakia 2018 when I was there giving a talk and they're
putting this on. I think it is free. Yeah. Attendance is free, but space is limited. So you
still got to sign up. So if you're near Austria in Austria or can take a train over to Austria and like
to do that, you know, check it out. I would absolutely go if I could, but it intersects with some
family stuff that I can't get out of. So I'm not going this year, unfortunately, because of the
dates, but it still would be fun and people can check it out. Right? Yeah. Yeah. Very cool. All
right. Another one, Leonard Richardson, the guy who created beautiful soup. this was sent into
me. I want to give a little bit of a credit here as well. This one was sent in by Sue mana and she said,
Hey, check it out. New updates for beautiful soup. Apparently this is a pretty big change for 13 beta
three was just updated, uploaded to pipe AI and hoping to get another round of feedback says
Leonard before the final release, because apparently some, there's some kind of changes and stuff and you
can check it out. There's a Google groups link to talk about the changes that he's proposing and trying
out and so on. That's pretty awesome. I think I've been using beautiful soup since I started using
Python. yeah, yeah, I agree. If you scroll through the comments here, Eric Holscher says,
I just want to say thanks. Beautiful soup has been a constant utility, basically as long as I've been
doing Python. So I thought that was a pretty apparent you're on the same vibe. They're pretty awesome.
Yeah. Cool. So beautiful soup certainly rocks and I've used it a ton as well. Okay. I have one more
extra Brian, but I want to close out the show with something special and unexpected for people. Okay.
Okay. Okay. So in order to do that at the end, I think let's do the joke first.
Oh, I'm all for jokes.
Yeah. So you know what it's like to go to stack overflow, right? It's not, it's super helpful,
but it can be a little prickly. Let's say, yeah, yeah. You'll submit a question like,
well, that question was answered seven, asked and answered seven years ago over there. Like, well,
yes, but it doesn't work that way anymore. Or, you know, you just, you shouldn't,
why are you even asking this? You shouldn't do this. Right. So this comes back to a very common
sort of question, you know, optimist versus pessimist, but we have a third category,
a stack overflowist. Okay. So here's a glass. It's exactly 50% full of water. I mean,
you can debate it's full of, it's a hundred percent full, but whatever. Like that's,
that's not the debate. That's the chemistry joke. This one is the optimist pessimist versus stack
overflowist. The first one is the optimist says the glass is half full. The pessimist says the glass
is half empty. The stack over for this says the glass is a stupid question. And so I've in the show
notes, I entitled the joke. That's a stupid cup, stupid glass. I like it. Pretty good. Right? Yeah.
Yeah. And then like, of course, I'm, I'm the nerd in me is looking at this going,
well, visually it's halfway up, but the, since the cup is wider at the top,
it's got more, more air than it does. Anyway, I would say pessimist wins.
It's going to go for this comes in second. Optimist. No, no, no, no. That's a stupid cup. Okay.
That's a stupid cup. All right. You ready for the last thing? This is pretty awesome. This is,
this is pretty wild. We live in, we live in incredible times. So I've started doing this thing over at
Talk Python. This is only tangentially the actual topic it is, but it isn't. I've started doing this
thing called episode deep dive. So I wrote up on the Talk Python blog, introducing episode deep dives
at Talk Python. And so if you go to a, any, I'm embarrassed to say it took me a while to understand
the snorkel reference, but deep dive. Yeah. Well, you got to pick something from your font. Awesome
icons. And I'd already used up some other stuff. So it's a snorkel as the icon to click the button.
I like it. Yeah. So now for every episode that I publish, I'm putting together what's called a deep
dive. And actually it's ironic that the older ones are better because the more of them I've done,
the better I've got at, you know, figure them out. Let's yeah. It's so weird. So here, let's see.
Space science. Does this have a deep dive? It does. Okay. So space science, this one is,
I interviewed Thomas Alban, Alban about his YouTube channel and his work. I think it was a European
space, yeah, or European space agency and so on. But instead of just having the show notes, now it has
this thing called the deep dive, which comes into their background. It says, Hey, if you're new to
Python, these are the types of things you want to like research a little bit to understand this topic
really well. Like this one's about visualization. So it talks about Matplotlib and pandas and spicy pie
and visvis. And then it goes into all the like the takeaways and links and documents and tools and
excellent stuff to just make it way more useful. Right. Okay. So yeah, thanks. We might start doing
that here. I'm trying to decide because we're shown us are pretty close to this, but they're not exactly,
we can play with it, but you know, we've looked at a little, right. It's a ton of work though. I don't
have them all done. I'm back. I don't know. I'm back to like 2022 and I've got to go back to 2016.
So there you go. But many of the new ones are done, which is awesome. So here's the thing that,
here's the thing I'm going to close out the show with that I think is crazy. And I think people will
enjoy. This is kind of a separate topic, but it just, that was a lead in because you'll see in a
second why notebook LM. Have you played with notebook LM? No. So notebook LM is originally came out,
it's from Google and it came out as a way to help people understand documents like researchers,
professors, and so on. So what you do is you give notebook LM a PDF or a couple of PDFs,
and then you can ask it questions like, what are the, what are the researchers think about this?
And it's based on all of their thing, but the most insane thing, and this is what we're going to close
out the show with is you can push a button. Literally, you don't have to give it prompts
or anything. You just push a button and say, create a talk show, like similar to what we're doing here,
talk show, like podcast episode of this paper. It is so insane. So if I was researching,
I don't know if I was researching something between FastAPI and Django and somebody written up a really
detailed report, I could upload that. And I could just say, Hey, I want to have a couple of people
talk to me about the trade-offs and it brings in other world knowledge, right? It's not just the
words in there. Like, it's kind of like ChatGPT in that it knows everything. And then it also just
talks about this and it is insane. So going back to what the heck with these deep dives,
if you scroll down a little bit, there's a, listen to a conversation about our deep dives.
So those of you watching just the live stream, I'm not going to play this here because it's 13 minutes
and 54 seconds, but you can go to this link here and just click the play button if you want to hear it.
Okay. Okay. For everyone else, Brian, I'm going to put it as the closeout to the show. So there's
nothing else, but I'm going to play this because it is an insane view into what is possible. So
what I did is I took this deep dive conversation, blog posts, the deep dive blog posts, gave it to
notebook LM. And I said, I want to hear people talk about it. So I'm going to drop that in and people
can hear about it now. I think your mind's going to be blown, but if you don't want to listen to it,
you can just, you know, this is the end of the show.
That's funny because you sent this to me and I started listening and I totally thought you just
like, like somebody else was doing a podcast about your deep dives.
It's crazy if you haven't heard it and it has interruptions like, oh yeah. Uh huh. Or,
you know, and it's, it's got that kind of artificial back and forth, but it's done in a really nice way.
It's, it is, it's not just speech to text. It is something entirely on unworldly. It is weird.
And I thought it'd be fun to close out the show just to, just to give people a weird glimpse into
this world. And it'll talk about the deep dives if you care. Cool. All right. Well, with that later,
everyone later, you ever listened to a podcast and it's packed with like all this insightful info,
but then like a week later, you're like, wait, what was that again?
It's like trying to, I don't know, grasp smoke or something. Yeah, exactly.
Try to remember those key takeaways. You're not alone. If you're like that.
Not at all. A lot of us struggle with that kind of thing.
Making podcast knowledge stick. So that's what we're going to deep dive into today.
We're looking at what Talk Python is calling episode deep dives.
Okay.
This could be the solution for that podcast information overload.
Interesting. I'm intrigued by how Talk Python is, you know, going beyond just the audio.
They're realizing that people consume information in different ways.
Right.
And so they're providing tools to deal with that.
It's not about ditching the podcast. It's about having something to go along with it.
Like imagine you're panning for gold, right? You're swirling the pan around and you see those
little flecks of gold. Yeah.
A deep dive is like having a tool that magically extracts those golden nuggets.
Saves you a ton of time and effort.
I like that analogy. It definitely captures that essence of efficiency.
But how are these deep dives? Like, are they really that much different from just detailed
show notes?
Oh, that's a good question. Think of it like this. Typical show notes give you like the bullet
points.
Right.
The bare minimum.
Yeah.
Deep dives are like, it's like getting the director's cut of the episode.
Oh.
With all the behind the scenes insights.
Interesting.
Deleted scenes.
Yeah.
Bonus features. So you get guest backgrounds.
Key quotes, code examples, links to resources, all that stuff. It's just a much richer experience.
So all that richness, that must lead to a lot of practical benefits. I mean, let's be honest,
re-listening to a whole episode to find one specific thing, that can be a real time suck.
Yeah, for sure.
The deep dive, you can just quickly skim and locate what you need.
That's such a time saver.
Yeah.
Doesn't this risk kind of discouraging people from actively listening during the podcast
itself?
Yeah.
Because they're like, oh, I don't really need to pay attention.
Yeah.
There's going to be a summary waiting for me later.
That's a good point. That's a valid concern. But think of it like taking notes during a lecture.
Taking notes doesn't replace listening, right? It just enhances it.
Right.
It forces you to engage more actively.
Makes sense.
Knowing you're creating that reference for later.
Yeah.
Deep dives can serve a similar function. They can prompt more focused listening.
Okay. Yeah, I see that. It's about being more intentional with how you absorb the information.
Yeah.
So we've established that deep dives go beyond typical show notes, and they can actually improve
how we engage with a podcast. But what about people who, you know, maybe they're visual learners
or they just prefer reading? Can these deep dives cater to different learning styles?
Oh, absolutely. Podcasts are fantastic for auditory learners.
Right.
But not everybody learns the same way. Some people just, you know, they prefer reading. Some people
have a hard time focusing solely on audio.
Yeah, that's true.
Deep dives give you that alternative pathway. It makes it accessible to more people.
I like that.
Yeah.
So how are these deep dives structured? Is it just like a wall of text summarizing the whole
thing?
Oh, no, no, no. Not at all. They're really well designed, very scannable, digestible. Each
one starts with what they call a guest spotlight section.
Okay.
It's like a mini biography of the guest. It gives you insight into their background, their expertise.
Yeah.
That adds context to their perspective. So you're not just hearing opinions, you're understanding
where they're coming from.
I like that. It's like getting to peek behind the curtain a little bit.
Yeah.
So we've got the guest spotlight setting the stage. What comes after that?
So then the content is broken up. It follows the flow of the conversation. They've got clear
headings and subheadings, you know, guiding you through the topics. And of course, it's
got all the links to libraries, code examples, resources, all that.
So it's really structured in a way that respects your time, lets you prioritize the information
that matters most to you. I'm still a little skeptical, though. Can we look at a specific
example to see how it all plays out?
Absolutely. Let's look at the deep dive for the episode, secure coding for Python with
She Hacks Purple.
Okay. Sounds intriguing. This episode was all about threat modeling for Python developers,
right?
Exactly. And even if you haven't listened to the whole episode, the deep dive gives you
a ton of insight. It starts with a background on Tanya Janca. She's the guest, also known
as She Hacks Purple. It highlights her journey, you know, from software developer to penetration
tester, and then how she eventually landed in application security.
So you get a sense of her expertise and how her experience informs her view on secure
coding. But why She Hacks Purple?
The deep dive explains that, too. It comes from her role blending offensive and defensive security,
which is often called like purple teaming.
Ah, okay. Makes sense. So now we're starting to understand who we're dealing with. But let's
go beyond the introduction. What were some of the key takeaways from the actual secure coding
discussion?
Well, one central concept was threat modeling, which they described as like a structured brainstorming
session where the developers, a security person, and a product owner all come together to, as Tanya
put it, brainstorm evil. They ask four key questions. Based on the work of Adam Shostak, who's, you know,
kind of a big name in security.
Hold on. Four questions to brainstorm evil. I like that. What are they?
Well, the first one is, what are we building?
Okay.
That involves sketching out an architectural diagram to understand the components of the system.
And then it's what can go wrong.
Oh, okay.
And that's where they put on their black hats and brainstorm potential risks and vulnerabilities.
Okay. So far, so good. What about the next two?
The third question is, what are we going to do about it?
Makes sense.
And that's where they shift gears and start discussing mitigation strategies. And then the final question
is, did we do a good job?
Okay.
That involves validating the process, making sure those mitigations are actually effective.
So it's a comprehensive process that goes beyond just identifying threats. It's about
proactively addressing them. Are we getting a little too deep into the weeds here though?
Yeah, you're right. We are getting a little ahead of ourselves. The point is,
the deep dive breaks this concept down in a really clear and concise way,
even if you're not familiar with threat modeling at all. And it does this for all the key topics from
the episode.
Okay. I see the value there. It's like having a condensed version of the conversation.
Yeah.
Highlighting the most important points. But let's pull back for a second.
Back to the deep dives themselves. We've seen how they're structured,
the benefits they offer. We've even gotten a glimpse of what they actually look like.
But what about availability? Are these deep dives available for every single Talk Python episode?
That's where it gets interesting. They are available for all Talk Python episodes from
number 440 onwards, which is November 30th, 2023.
Oh, okay. So fairly recent episodes are covered.
Yeah.
What about the older ones? Are they just out of luck?
No, no, no. Not at all. Michael Kennedy and the Talk Python team are actually working on
updating older episodes with deep dives.
That's great.
It's a big job. But they're steadily making progress.
What if there's a specific older episode that I really want to deep dive for? Can I do anything
about that?
You absolutely can. Michael is really receptive to feedback.
Okay.
So if there's an episode you really want, you can reach out to him directly through his website,
himkennedy.codes.
So it's kind of a community effort then. Listeners can help decide which episodes get the deep dive
treatment sooner. I like that. But some people might argue that, you know, just reading a summary
isn't really enough, especially for these, you know, complex technical topics. What are your
thoughts on that?
I mean, that's fair. Deep dives aren't meant to replace listening to the episode. They're designed
to work together. Think of it like this. You watch a fascinating documentary. You're captivated. You
love it. But later on, some of the details get a little fuzzy.
Yeah, that happened.
Would you rather struggle to remember or have a nice, concise recap?
Oh, a recap is nice.
Yeah, to refresh your memory. Deep dives provide that extra layer. They help solidify that knowledge.
Yeah, it's like having a study guide for your favorite podcasts. You get the big picture from
listening, and then the deep dive helps you focus on the important details. Let's zoom out for a second.
Away from Talk Python, what do you think this trend towards more structured and interactive podcast
content? What do you think it says about how we're consuming information these days?
It's really fascinating, isn't it? We're moving beyond passive consumption.
For sure.
People are demanding more. They want to engage with the content.
Right.
Dissect it, make it their own. Podcasts are evolving from just entertainment.
Yeah.
To really powerful learning platforms.
I like that. The lines are blurring between education and entertainment, which I think is really
exciting. But are we risking losing something in this shift, you know, by focusing on efficiency
and structure? Could it make podcasts feel less? Less human?
Oh, that is a really thoughtful question. We definitely need to retain that human element,
that personal connection. That's what draws people to podcasts in the first place. The host's voice,
you know, the curiosity in their questions, those unscripted moments. All of that is essential.
It's that personal touch that makes you feel like you're part of a conversation, not just listening
to a lecture. Can these structured summaries, like deep dives, can they go exist with that human
element?
I think they can. And they might even enhance it.
Oh, interesting.
By providing the tools to understand and retain the information, it deepens their connection to the
content and to the creators.
So instead of replacing the human element, it's more about creating a richer experience.
Exactly.
That caters to different learning styles.
It's about empowering the listeners to engage on their own terms.
I like that.
In a way that resonates with them. And that, in turn, creates a more vibrant and engaged community
around the podcast.
Okay, I'm seeing deep dives in a whole new light. It's not just about summarizing. It's about fostering
deeper engagement, making information more accessible, and ultimately empowering listeners
to get more out of their podcast experience.
It's recognizing that learning is a journey. And podcasts are an incredible vehicle for that
journey. But like any journey, having the right tools and resources makes all the difference.
So if these deep dives are the tools, what kind of impact can they have on the journey itself?
What does this mean for the future of podcasts as a learning medium?
It feels like we're on the cusp of something big.
Yeah, podcasts have definitely transformed how we listen to things.
For sure. But now it's like we're moving beyond just listening to actually learning from podcasts.
Yeah.
Like podcasts in the future, where they all come with these detailed summaries and maybe
interactive exercises, even community forums.
Whoa.
All built right in.
That would be pretty cool. It would really make knowledge accessible to everybody.
Exactly. It's like no longer would these valuable insights be trapped in an audio stream,
lost forever. As soon as the episode ends, they'd be readily available, searchable. You could
share them easily.
And it would really help people learn, too.
Oh, yeah, for sure. What about the impact on the creators, the podcasters themselves?
Oh, that's a great point. This kind of engagement, you know, it could really strengthen the bond
between podcasters and their audience.
It's like building a community.
Yeah.
Instead of just having a bunch of listeners.
Exactly. It could take podcasting to a whole new level.
This is really eye-opening.
Yeah.
What started as a deep dive into episode deep dives has turned into this, like, exploration
of the future of podcasts.
Yeah.
And I'm excited about it.
Me, too. It's clear that podcasting is still young.
It's got so much potential.
And innovations like deep dives are just the beginning.
So if you're listening to this.
Yeah.
And you want to see how deep dives work, I really encourage you to check out talkpython.fm
and explore for yourself.
Yeah.
You might be surprised at how much more you get out of your podcasts.
It could even inspire you to think about how you learn and connect with information in new ways.
It's all about embracing this evolution.
Absolutely.
How we learn, how we connect with information.
Because knowledge is most powerful when we share it, when we explore it.
Yeah.
And when we put it into action.
So on that note, we'll wrap up this deep dive.
Hopefully this has given you some new ideas.
Yeah.
And inspired you to look at the world of podcasts with a fresh perspective.
Happy listening.
I think we are, yeah.
Podcasts have come a long way.
They really have.
But now it's like we're talking about not just passive listening anymore.
It's active learning.
Right.
It's exciting.
Yeah.
And think about the impact this could have on, you know, on creators, on podcasters.
Oh, yeah.
For sure.
This deeper level of engagement, I think it could lead to like a much stronger connection between the people making the podcasts.
Yeah.
And the people listening.
Yeah.
It's like you're building a community, not just broadcasting to an audience.
Exactly.
Yeah.
It's turning podcasting into this collaborative learning experience.
I love that.
This has been really eye-opening.
I mean, we started by diving into episode deep dives.
Yeah.
But it's turned into this whole exploration of the future of podcasts.
It has.
And I'm feeling pretty optimistic about it.
I do.
It's clear that podcasting is still in its early stages.
And there's so much potential.
And I think things like deep dives are just paving the way.
They're leading the charge.
So to all our listeners out there, if you want to see how deep dives work and practice, head over to talkpython.fm.
Yeah.
Explore a little bit.
You might be surprised at how much more you can get out of your podcast listening.
It might even inspire you to think about how you can incorporate some of these ideas into your own work or learning or whatever you're doing.
Yeah, for sure.
It's all about embracing this evolution and how we learn, how we connect with information.
Exactly.
And on that note, we'll wrap up this deep dive.
We hope you enjoyed it.
We hope it gave you some new ideas and inspired you to explore the world of podcasts with a fresh perspective.
Absolutely.
Happy listening, everyone.