Python Bytes - #258 Python built us an anime dog!
Episode Date: November 11, 2021Topics covered in this episode: stale: github bot to “Close Stale Issues and PRs” jut - JUpyter notebook Terminal viewer JupyterLyte Feature comparison of ack, ag, git-grep, GNU grep and ripgre...p Python Client for Airtable: pyairtable Black can now format notebooks Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/258
Transcript
Discussion (0)
Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to your earbuds.
This is episode 258, recorded November 10th, 2021. I'm Michael Kennedy.
And I'm Brian Ocken.
And I'm Karen Dalton.
Yay.
Yay. Welcome, Karen. So good to have you here.
It is quite a delight and an honor. I've been a longtime fan, as they say in the radio, long-time listener, first-time caller of both of your podcasts and
books and Slack channels and training. And so I'm really excited to be here.
Well, thanks for being part of the community in all those ways. And
you and I got to meet down at Pi Bay in San Francisco. That was a lot of fun.
Yeah. I, Brian, I don't know if Brian uh, I arrived at Pi Bay and I was going to
be one of the MCs and I saw Michael Kennedy who I cherry picked to introduce.
I, you know, I was one of the organizers and, uh, MCs for the event and I approached him
and overwhelmed him.
I'm like, you're a super fan.
And he was like, um, so, but he was very gracious about being fangirled just at the registration table.
Yeah, no, you were great to help me out with the talk.
Thank you so much.
And hey, it's Anthony Shaw on the live stream.
Hey, says, hi, Karen.
Great to have you on the show.
Nice.
Hi, Anthony.
Anthony and I just did a show on Pigeon, P-Y-J-I-O-N, the JIT compiler that he just released, version 1.0.
That TalkPython episode will be out today, tomorrow, fingers crossed, very, very soon.
So stay tuned for more on that.
But let's start with whatever you brought us, Brian.
Number one.
Well, I figure we really need to talk about Will McCougan because, you know, get that.
Has it been a show since we've done that?
So just get that out of the way.
So on Twitter,
Will asked a general question
to everybody.
Something like if I've got
an open source project
and somebody files an issue with it,
but I have a question about it
and I asked them a question
and they don't ever respond
for a really long time.
So is there a way to just
automatically clean those up or clean them up easily? Because we could just assume that the
person has figured out or solved the problem or it's not a problem anymore, or they don't care.
So one of the responses, which I liked, which I thought was pretty cool was a bot, a GitHub bot. It's actually from GitHub. It's a bot called stale. So it's a bot that closes
stale issues and PRs. And the gist of it, like on the 10, it says it warns and then closes issues
and PRs that have had no activity for a specified amount of time. That sounds perfect. Uh, configuration must be on the default branch and the default values will be,
um,
it will add a stale label to issues or PRS that are six with after 60 days of
inactivity,
um,
and close stale issues or NPRS after seven days of inactivity.
And if an update or comment occurs during that timeframe,
it restarts the clock. But all of those are not for me, since I'm an open source maintainer,
but I don't like, sometimes I don't pay attention to them for a couple months.
I would definitely want to bump that up to make sure that it's at least within my timeframe so
that, you know, my own, if my own inactivity problems might
not be the case. So I totally hear that. I would love to see one minor change, one more bullet
point on the things that does add a stale label after 60 days, close it after seven days of
inactivity. Um, a comment will bring it back, but I would love to see this bot put a comment on
their saying, if we don't deal with this, it's going away.
That way, the people who submitted the PR will get an email.
The maintainer will get an email.
And so, like, you're notified the seven-day clock has begun, you know?
Karen, you're shaking your head.
Yeah, I mean, I've certainly seen it on open-source repos,
and it's nice to have that there
but sometimes it's an issue that's
important to you and you don't want
it to necessarily go away.
And I wish there
was a way to say, this is
actually really important to me, please don't
close it even if you can't pay attention to it.
Yeah, absolutely.
For instance, in one of the settings, there's a bunch
of settings. One of the settings is a stale issue message or comment on stale issue.
So it looks like it does that one.
And I think there's exempt issue labels, labels on issues exempted.
So you can mark something as, you know, keep this around or something.
Oh, see, I don't have that window up, so I didn't scroll.
Perfect.
Yeah, so it looks like it.
Yeah, this looks well thought out then.
I love it now.
Yeah, and it's been around for a while, and it's got like,
I guess only 498 stars, but it'll be more than that after we do this show.
That's right.
Exactly.
It'll be at least 500.
Yeah, 499.
No, this is a great find.
I really like it.
So yeah, good one, Brian.
Yeah, I think I'm really impressed with GitHub
that they've added so many features.
I use it more than I have GitLab.
So GitLab may have as many, you know, in all fairness.
But GitHub has added lots of cool features and ongoing
development to make things easier.
As you know, many things have evolved, lots more features added, but things like this
that make it easier to maintain things.
I'm really happy with the way, the direction of GitHub these days.
So it seems like it's going really well.
Yeah.
Yeah.
I'm definitely happy there.
I use both.
I like them both. But Gab definitely has a focus on the,
or at least it feels like it's listening
to open source maintainers and their needs.
Yeah, for sure, for sure.
All right.
So I want to show you another one
that I think also may involve Wilma Coogan.
I got to do a quick check here.
It's called JUT, JUT, JUT.
Maybe if you're German, it's JUT.
I don't know.
But we could look at the Pyre project. Tom will see if Rich is in here. It is. Okay. So yeah, it definitely involves
Rich and Wilma Guggen. And what it is, is it's a renderer, not a interactive environment,
but a renderer for Jupyter notebooks. And we've had that, you know, in Bviewer and things like
that, like on the web,
but this one is in your terminal. So here's the scenario, like you're in the terminal remote,
maybe SSH into a remote machine. And you're like, Oh, there's this notebook file that what the heck
is this? What is it? I'm like, I don't have a browser or whatever. And so the way that it works,
let me pull up this little animation for everyone and have it go, is if you're somewhere, you just say, I'm going to go with jute, give it a URL, and you can literally give it something off of the internet.
And you can even give it like tail commands.
So I want to see the last 10 cells instead of lines.
And it uses rich to colorize and style what the notebook has, including the data cells,
as well as the actual output,
the computation,
you know how the notebooks will store their output
from the last time they were run,
unless you clear them.
It'll show that as well.
What do you all think?
I love that.
I mean, sometimes you get a file
and you just want to check some,
introspect some portion of it
and you can't just do more for cat on a Jupiter notebook.
Yeah.
You get something completely wrong.
And I don't sometimes in the space that you're in, you don't, you just want to quickly be
able to check what it is and move on.
And so I love that.
And I love rich.
That's that it's, you know, the color, the colorized terminal is really helpful.
Honestly, it might have better syntax highlighting
than notebooks themselves.
Brian, what were you going to say?
No, no, just I really like the focus
of tools making things usable on command line
because I'm a command line lover.
And I mean, I've got nothing against doing notebooks
on a web browser, but things like this make it possible
to do things like put them in a pipeline
and automate them more easily.
And like this, it's not really automating using the notebook,
but it might be, you might make sure that like something is,
you know, a regression thing.
You want to make sure that things are visible so you can use this to to grab grab one off your hub repo or something
and make sure nothing weird happened yeah for sure yeah looks good and to bring it back around
full circle will mcgougan out in the audience says neat that's a new one for me hey will
yeah it's always fun to show you projects using your library because there's a bunch of cool ones out there.
Awesome.
All right.
Well, I'm not sure what else I have to say about this one other than it was sent into us by KidPixo.
Thank you for that.
That was awesome.
Keep them coming.
He sent a bunch of things along.
Like I said, you can display the different cells like the first five, last five, you know, whatever you want to pass over.
You can also do things like show it to me just in plain text if you for some reason want to copy it and you don't want the formatting pretty straightforward
to use but also really nice all right karen you're up next uh adding on to the the jupiter thread uh
one of the interesting things that's coming out is jupiter light uh it's uh it is being developed
by core jupiter developers but it's still unofficial.
And one of the nice things is static.
And if you share it with somebody,
they can just go to a webpage
and you can just, you can cache it.
So you don't have to have a Jupyter notebook server running.
It's a static page.
Obviously there's JavaScript and other elements involved.
And so if you just click on one of those things, try it with JupyterLab, it takes you to a browser.
That window, as you can see, is a static page.
It's going to take a second to come up because it's got some JavaScript.
And if you click on that pile light and then just do like an import this to see a standard kind of notebook.
Yeah, it has a little, it has a notebook tour.
If you do an import this, which is a standard kind of test to do the Python
mantras, it, you know, it runs simply and that's all just running in a browser.
So obviously it's, uh, if you wanted to share things with some somebody, it's,
uh, it's an easy way for them to see it.
You would just send them that file and they can open it up and do some additional things.
It's probably you won't want to run your core data pipelines in a static web browser window,
but it does allow you to do a variety of things.
And there's some sample notebooks included with it that let you do some things.
So you can run through either step-by-step
that you can actually add text into,
as you saw, into the window.
So it's a nice feature add
to be able to run a notebook in a browser window
and show some examples of your code in a static way.
I know that people have sent me Jupyter notebooks
or shared them or sometimes
you can see them on github there's even tools now that you can do um uh get diffs uh there's a
service that allows you to do diffs of jupiter notebooks that you can do that for your pull
request reviews but uh sometimes it's nice to be able to see like i would like to change this a
little bit without like starting up a server yourself. So, yeah.
Yeah.
We've been able to host these.
We've been able to set up notebook servers and host them, but there's issues with letting people run code.
Maybe you don't want to let them run it.
It's only read only.
But this is cool because it will let you run it in the browser, right?
Which is using WebAssembly.
Yeah, exactly.
And you can have the JupyterLab look or kind of retro look, which is just very minimalist without that kind of UI. So it's a really nice feature.
I've never tried RetroLab.
Yeah, it's just more of a basic like bio list. It doesn't have that nice kind of look and feel of the newer version of JupyterLab, but it works.
Yeah, fantastic.
Just run all the cells and it runs, I guess, in WebAssembly.
Super cool.
Oh, yeah, that's a good one.
Brian, what do you think?
A simple pip install and then you run another command to generate all the JavaScript and things it needs. And then once that index file is made,
that directory is made, then it's really easy.
You just open up that index.html on your,
you can run it on local host,
you can Python start at HTTP server
with, you know, easily with Python 3
so that it will serve that page as well.
You can even deploy it to GitHub pages
or something like Netlify or some other static host.
Yeah.
Pretty sweet.
I definitely think, I agree that you don't want to do big, heavy workloads on this, but especially for graphing and interactive stuff and just like tweaking the data a little bit.
I think this is amazing to be able to, especially for reports and things.
There's a lot of places where this is useful. Yep. And you have no
security issues or worried about people running code or messing with it because
whatever they do, they're doing this themselves. Yeah, exactly. Right. There's
no little Bobby Tables issues that you have to worry about with
a static web browser on your site. Yeah, you definitely want to
lower your surface area there.
All right, Brian, a bit of an intermission. Yeah. Let's talk about our sponsor today. So
today's sponsor is Shortcut, which is formerly Clubhouse. And thank you for sponsoring the
episode. There are a lot of project management tools out there and I've used a ton of them,
but most suffer from a few common problems. They're either too complex and it's hard to get started. And
there's all tons of options all the time. Get you, make you confused or they're too simple.
And you really, you can get started on one project, but you can't use it for multiple
projects and stuff. Um, or they seem to be like geared towards managers, but difficult for
engineers or geared towards
engineers and difficult for managers.
I think shortcut is different.
So shortcut is built for software teams and based on making workflows easy, which I like.
So let's say you have a big scale objectives, goals, and roadmaps topics in those and items
in those big goals and roadmaps can easily be tied to teams and individual work sprints.
And progress on those can be easily easily flow back into reports at the top level.
It's keyboard friendly, so you can hook up shortcodes and stuff.
So you don't the UI is intuitive and it's pretty easy to use.
But the things you do every day, you can tie those to keyboard shortcuts and make them even faster.
And it has tight VCS integration.
So you can update your task progress
by just adding a comment
or a little key code into your commit or PR
and it flows back upstream.
This is really cool.
Iteration planning is also a breeze.
You can see your team activity when you need it, but you can see your activity team activity when you need it but
you can see your own work really easily when you need that too and burden down charts and cycle
time and lead time charts are just built in for you it's really really great to see all that so
finally a project management tool for both engineers and managers give it a try at shortcut.com
slash python bytes awesome thanks shortcut hey brian before we move on to your next item, that Jupiter Lite was sent in by Marcel
Millicent.
So thank you, Marcel, for sending that over.
Yeah, nice.
Yeah.
We always appreciate when our listeners help us do our research because they have all these
ideas that we don't know about.
Yeah.
Yeah, thanks for picking that up, Michael.
For sure.
Yeah, of course.
Well, ACK now.
Supplies are limited.
No.
I don't actually use it.
But wait.
We get more.
Yeah.
I want to talk about grep a little bit.
I use grep all the time for finding stuff within my code,
command line tool for finding stuff in files. And I'm not going to cover it in the show,
but I threw in, in the show notes, if you're not,
if you don't use grep or tools like grep I threw in a couple of examples in the
show notes to get you started really easily. It's a, I think,
I think it's useful to find stuff.
One question I did have is like,
I've got a command sequence in the show notes that I'd like to have people
take a look at. I don't have a screenshot for it, but if I want to find like, say,
foo in recursively in all the folders and directories, I can do that easily.
And I want to try to eliminate a directory, like don't look in my virtual environment folder.
I've got a weird thing about using just grep and then piping it to another grep.
I don't know how to do it easier.
So please help me out.
But anyway,
this article I'm,
I'd like to point to is called feature comparison of ACK,
Silver Surfer,
Git grep,
GNU grep,
and RIP grep.
And this is actually really cool.
So it's,
it's put out by the ACK people themselves at beyond grep.com.
ACK is a kind of a grep alternative that's written in Perl,
but this comparison chart says we need more comparison charts like this.
And, and, and it, it compares all these different alternatives to grep.
Silver surfer, silver searcher, uh is ag ag for silver it's
kind of clever but the the chart from the chemical is symbol table yeah and also kind of a play on
silver surfer the the superhero as well so um the um the chart shows like kind of a whole bunch of
stuff about all these tools like what languages are written in.
Most of them are in C, but ACK is in Perl and RG or RipGrip is in Rust.
So that kind of intrigues me.
I've been enjoying some Rust tools lately.
But it goes through a whole bunch of features. So I didn't really know that these were all that different.
So if you're going to try something new, it's kind of nice to see if the thing that you really need qualifies.
And it's got some high-level features, but then also dives into specifics, like if you have specific pattern matching needs or output needs.
But kind of a cool tool to decide which grep alternative to use.
That's cool. I'd never heard of git grep. That'll let you grep, but against git repo?
I don't know it says up at the top
that it lets you search a git repository by default unlike search where right at the bottom
of your screen there oh yeah so that was pretty it's interesting a repo by default oh nice search
your git history that sounds useful yeah let's try that out too this is cool exactly i'm gonna
make me learn grep but actually so one of the things I do appreciate is if people that write tool, like little
tools that are alternatives to something else, often they do look at the landscape to find
out what else is out there and try things out.
So actually one of the, one of the reasons I'm highlighting is that this is, I agree
with the, with the author that says we need more of these.
Take that research you've done and actually publish it. Because some of the, sometimes one of these tool authors is
the, is one of the best people to compare all the different alternatives. So. Yeah, this is cool.
Nice one. I don't use grep nearly as much as I should, or hardly at all, but it seems very useful
in this get, like I said, this get one might make me learn grep. Karen, do you do anything with grep?
No, it's all good.
We're happy to have your puppy on the show as well.
Yeah, featuring a five-month-old golden retriever.
It's very vocal.
Yeah, I love Silver Surter.
I think it's really super fast.
That's my favorite of these.
A long time ago, I started programming in my backgrounds in molecular
biology. I started in academic publishing and putting academic journals online. And so Perl is,
you know, close to my heart, but I'm surprised that, you know, like these Perl tools that are
still around, they still work perfectly fine. I learned a lot of role-compatible regular expression.
You know, that PCREs,
and I remember asking some years ago,
you know, in another language,
they had PCRE regular expression.
They're like, what's PCRE?
You know, it's role-compatible regular expression.
So, but AG is great.
I think in my world,
a lot of people are submitting data
and sometimes you're looking
for bets and places and things.
And, uh, so these kinds of tools are really helpful.
Um, I use.
Grab mostly because that's, you know, it's easy to pipe it to something else,
but AG is great, great because it colorizes your results without passing
a color flag, which is usually more convenient and it's a little bit
different syntax.
But I haven't used some of these other ones,
so this is cool to know about.
Yeah, it's always good to learn about more of them.
Maybe I'll try all of them, just for the heck of it. Nice.
Yeah, all right.
I want to talk about Airtable real quick.
So Airtable is like Excel,
but it kind of has a database backend.
It's also got like a Trello aspect to it. So I don't
know if people are using Airtable for things. It also has kind of a Gantt chart or a project
management thing. I don't exactly want to talk about Airtable, but I want to set the stage.
I want to talk about PyAirtable. So I just had Guy, the maintainer of this on the OnTalk Python
to talk about Python and architecture and what they were doing where he was working was a lot of things were backed by Airtable.
So PyAirtable is this API to talk to it through Python, which is pretty interesting already.
But then if you look a little bit more on the docs, it's got, where's the right spot to go look?
There is under the API.
Somewhere in here, there's an ORM aspect as well.
So you can even use Airtable like an ORM
where you create classes that map to the stuff
you're doing over there and do select statements against it
and delete them and whatnot.
So if people are doing stuff with Airtable,
here's a pretty awesome way to automate it, I just think.
I think it's great.
Is it done by the same people?
No, no, it's done by a guy named Gui.
Last name, I'm going to look.
Sorry, Gui.
I just think it's pretty cool to have.
Oh, nice name, Gui.
Yeah, Gui Talarico.
Yeah, Guido Talarico. And he's also
in San Francisco, so he's
one of your extended neighbors, Karen.
Yeah, the Bay Area
is big.
Yeah, he was also at Pi Bay.
Yeah, well, there was a lot of people
at Mass, so even people that are
in my community, I'm a co-organizer
for a Bay Area Python interest group, one of the longest running Python groups.
Obviously, I didn't start it, but I recently started helping out.
And even people that I'm in meetings with every month and for a number of years, they'd have to say like, oh, Karen, and even with badges on.
So I, I, I'm, you try to like spy people or, you know, based on their silhouette, if that's
the right person.
So yeah.
And it was out of the eyes.
A lot of people had sunglasses or a hat.
Yeah.
It was tricky, but yeah.
So he was there.
So yeah, he maintains this, but it's sort of endorsed by the Airtable folks.
It's like listed as one of the independent things
that they might recommend for people doing Python.
So yeah, I think it's great to have Python APIs
for a lot of services,
you know, have a Python client to help support them.
It's really helpful that,
whether it's written by the company or somebody else. And sometimes it's really helpful that, whether it's written by the company or somebody else.
And sometimes it's really helpful if you're a small team as the kinds of teams, I'm in a research community.
We have small teams to be able to like, look at the tests, look at
their code to see how to use it.
Sometimes the company's documentation is not great on how to use their API.
And sometimes these extra Python components help you understand their
API a little better and what you can do with their API. And sometimes these extra Python components help you understand their API a little better
and what you can do with their API.
Some companies are better than others
in documenting their own APIs
to be able to interact with them.
But I know that people use Airtable
for a variety of different things
and use things like Zapier to connect it to,
you know, it's like a Rube Goldberg kind of like
stitching together all these kinds of services to do, you know, a thing at the end, like make toast.
Yeah. Yeah. Cause you want to let the business people still just use Airtable,
but you need other things to happen or something like that. Right. Right. So when they intercept
and they insert this, it's going to heat up that thing, which knock over a cup,
which will then trigger an API like that kind of thing. Yeah. Yeah. Or send a meeting invite. So. Or exactly. One of the things
I like is if like a company that's using one of these tools, having a Python API allows individual
hackers like me to be able to just say, how do I find just the stuff I need to care about? And I
can write my own little application just to pull out the bits that I need to care about
and do it on the command line
and probably use Rich if I'm doing that.
And only see this stuff.
Grep Airtable for things to assign to the brain.
Yeah, no, yeah, I've actually done that.
You can search within GitHub itself
or sometimes I'll clone it
and kind of prep for some keywords that help might
help me uh figure out what I need to do a little bit faster yeah yeah for sure and uh Neil Heather
out there just giving a quick shout out to Bay Piggies the meetup group out there awesome nice
very cool all right um we have a we have we're pretty fortunate in the Bay Area that we have
a several different from all the way from down in Santa Cruz so for people who don't know that All right. Um, we have a, we have, we're, we're pretty fortunate in the Bay area that we have a
several different from all the way from down in Santa Cruz. So for people who don't know that,
you know, the Bay area is, um, or depending on how you're looking at it, you know, the San Francisco
Bay and, and, and there's meetup groups and Python groups all along. And we're kind of a mid to South
peninsula. Um, there's all the way from Santaanta cruz to up to uh essex python which
runs pi bay uh grace law and there's other ones in the north bay so we're pretty fortunate to have
a lot of a really rich strong python community yeah a lot of great local stuff going on there
for sure which is no surprise in san francisco but it's also necessary because even though things
are close together you can't get there from here. Usually they're separated far by time, if not by distance.
Perhaps the traffic has started to pick up again for sure. Yeah. Same here. All right,
Karen, you want to do our last item here? Touch one more time on some notebook things.
Yeah. One of the, the ways of you're part of a team, everyone probably knows about the black formatter that helps you make opinionated decisions or it makes opinionated decisions for you about how things should be formatted.
So your team's a little bit more streamlined. Marco Gorelli, who is a creator of a package called NBQA for Notebook QA that did things like iSort and other things, has added into the Blackformatter itself an ability to do black formatting on notebooks.
Which is great because then it's part of the core package and support will be even richer.
Very powerful.
So you can just run, once you've installed it, there's a command there shown on the screen, pip install black, that you can run black on a notebook.
There's probably some hotkey or something within Jupyter itself, right?
Say that again there's probably like some kind of little icon or hotkey or something in there automatically right i would guess uh i i don't know i've run it on the command line
and the instructions have it run on a command line i don't know if you can run it on itself
it would be like you know modifying an array that you're iterating over.
I don't know if you can.
I guess I have it backwards.
You can format yourself.
This is actually going into black, not into Jupyter.
Right.
So, yeah.
So it's more from the black side.
Got it.
Yeah.
You're running it against a notebook to apply black formatting to a notebook itself.
Yeah.
But at this point, how long until somebody puts a button into Jupyter to do this?
Yeah, I imagine that certainly can happen.
I think that you have like in VS code, you already can apply black or other kinds of
F8 formatting, um, within something.
So I imagine that totally makes sense that you'd be able to apply it.
But I guess I think about it in that sense.
It's not the notebook itself that's applying that standardization.
It's a package runs running against whatever kind of thing that you're using, whether it's
PyCharm or a VS code or some other tool.
So I still think it's running against it rather than the notebook itself, changing itself,
like spinning around like Wonder Woman and becoming a super sorted,
I sort, you know, package import. Absolutely. Yeah, this is cool. I really like this.
I've always thought that the notebooks lacked a little bit of coding assistance.
Standardization too. Yeah, yeah. And also Black brings that, right? But I felt like,
you know, if you type a thing dot, it doesn't pull up any autocomplete. You have to do the research to know, well, now I have to proactively hit tab to trigger
an autocomplete.
And, you know, also formatting is not just a hotkey for format my code or command palette
thing to format my code as easily.
I imagine that, you know, we're lucky that this, the Jupyter community is really rich and people are committed to it and enhancing on it.
I know that there's other kinds of notebook systems that are being developed by places like Netflix where they're like, what is the bare bones we can do so that our data scientists can run something else?
But the Jupyter notebook community is really extensively used.
The community is very active.
So I'm glad that things like this are being added to enhance its usability and readability and standardize it in an easier way for everyone.
Yeah, absolutely.
Well done, Marco.
All right, Brian, I think that brings us to the extras.
Extras?
Yeah.
You got any extras you want to throw out there?
No,
I,
I just,
I'm not going to like put a link or anything,
but I just wanted to comment.
Some of the times I've been giggling today is because Anthony shows on the
show and we talked about pigeon briefly.
And every time I hear the,
about pigeon,
I think of the Bert and Ernie skit with doing the pigeon.
I don't know if anybody else remembers that.
But anyway, that's my quick extra.
Well, I know that Anthony Shaw likes to run VS Code Pets.
Are you sure that's right?
I wonder if there's a pigeon in this.
Yes, maybe.
Maybe it could come full circle and it could be some kind of pigeon in the pets in the pets in the like below the project settings that'd be fantastic
what are the what are these pets that you're talking about in let me see if i can find let's
see if i can see vs code pets yeah i'm i don't have a link i don't do that much vs code so i
don't know all that much but what it is is it will literally put like a little animated animal
in your editor and it can be simple like this this is like a cat it will literally put like a little animated animal in your editor. And it can be simple like this.
This is like a cat that's crawling along like a get diff section.
Or they can be way more complicated.
Like here, like see this one, for example.
There's like a castle and there's a cat that lives in the end.
Alas, Anthony Shaw says, but there is no pigeon on the pets extension.
There's a lot of stuff happening.
Like here, here we go.
There's like a hunting cat in the forest and all kinds of things.
So, and Chris may have in the live stream says yet there's no pigeon.
Well, pull request accepted.
Exactly.
Exactly.
Who's going to be adding this anyway, this, this is how we should bring it around full circle, Brian.
Well, do you have any extras?
I do, but I always have them.
So let me ask Karen if she has anything she wants to add or throw out while we're here.
Yeah.
Well, it's a general thing.
I just helped out at Pi Bay.
I help out at Bay Piggies.
And I just want to just tell people, wherever your community is, they're always looking for lightning talks.
It's good practice.
It's as as both of, you know, Michael and Brian, that, you know, coming up with show ideas or, you know, meet up talks and finding speakers is a challenge.
And so, you know, offering something that you want to talk about is good practice.
And the people in the communities around you are really supportive and welcoming.
And a lightning talk is great practice.
It gets you feedback.
And I know that for somebody who talked at Bay Piggies and also for some of the speakers at Pi Bay, you know, I've been willing to work with them on their slides and talk to them how to give the talk and everything to it's it's great practice both you
know professionally and then you have a recording of what you talked about so um contribute you
contribute in code or you can contribute in ideas and experience in your learning journey even if
you're just starting out talking about that journey is really helpful.
Talking about a new package that came out
and you guys are doing a fantastic job
bringing things up to date,
but maybe in these other communities,
people can do that.
I just want to just open it up.
It's not just the experts who are contributing,
people at every level in your local meetups
can give a talk.
It's a good experience And it's good experience.
It's good for you.
It's good for them.
And so I'm just going to encourage everybody to volunteer in your Python community.
Yeah, absolutely.
And if you're thinking about doing like submitting a talk to say PyCon or another big conference,
doing it locally at your local meetup with people you know, with just 10 people,
is a really good way to practice that and get a sense for what it's going to be like if you do get accepted and hone it a little bit.
Yeah, great feedback and great questions too. So perfect prep. Great.
Yep. All right. My Apple Watch wants me to stand up, but instead I'm going to talk about some extras. So first one is I've been playing around with a new password manager. I use one password.
I love one password.
I use it on all my things.
But I've decided that there are certain things
I would like to put on the systems
I don't want to set up my super important passwords on
or I want to share with people and so on.
I was like, all right, well, what else could I use?
So I came across Bitwarden,
which is an open source password manager
that also has like a cloud backend
and mobile apps
and all sorts of stuff, browser integration. So instead of just running a local encrypted
file or something, this is a really good option from what I can tell for setting up. It does,
it does have a paid plan if you want, but if you look at a paid plan, um, the paid personal plan,
it's like $10 a year, you know, like 80 cents a month or something. So it plan, it's like $10 a year or $0.80 a month or something. So it's
totally doable. For only $0.80 a month, you too could be secure.
Exactly. For the coffee that you spilled on yourself, the price of that you could have.
I like this, but actually just, I know you have a bunch of other stuff, but it's driving me kind
of nuts that even like $5 or $10 a month or $20 a month for some things, everything is going towards these
subscription plans.
And it's like, it's just storing my password.
I don't want to pay $20 a month.
So this also has a self-hosted version, I believe, because it's open source.
You could run it at your company if that was not the kind of thing you wanted to do.
So anyway, cool.
Good recommendation.
I think this is a pretty neat option. Again, I'm still using 1Password for my personal main stuff,
but this is like my, I want another one that doesn't hold all that stuff. And it's pretty
neat. Also, Chris May, I'll give you a shout out for Pi RVA for the Virginia meetup is also looking
for speakers because Chris, as Karen, and as we know, booking people to come for this kind of stuff is never easy.
Lightning talks, long talks, whatever, you know, there's lots of options.
Show up and help us out.
All right.
So Bitwarden, check it out.
Seems cool.
Open source bonus as well.
This one is both a joke and a real thing.
Okay.
So I love it that it all comes together and it's for Python.
So Patrick Mason sent out a message.
The at PSF is on Twitter.
The at PSF is searching for an executive director.
So Iwa has been the executive director for 10 years.
Thank you so much for that.
She's finally retiring or moving on, I suppose.
And so they're looking for a new person,
but that's the real part.
So if you want to apply for that, that'd be excellent.
The joke is the at PSF is actually the Pacific Salmon Foundation.
So they said-
So if you want to swim upstream.
Exactly.
But here's the thing that's funny is the Salmon Foundation replied saying,
at the PSF is looking for an executive director.
At just PSF without the the
is not currently looking for one. Cheers on a successful search. So Patrick come back and says,
sorry for the confusion. The Salmon Foundation says, it happens. We're starting to feel like
at the PSF family. It's not like at Java ever calls us broken heart.
Isn't that fantastic? Yeah, that's great. Yeah. Yeah. Good, good, uh,
sense of humor. Now, now I kind of want to give to the salmon foundation just for being cool people.
Yeah. All right. I got it. I had a quick pull up a little bit extra for this one. So, um,
Karen, this will, this will, uh, relate to you as well. So there's a, um, this thing called the
anime GAN V2 face portrait
thing that will take a picture that you put up here and it will turn it into anime in like
some really wild looking ways. Oh, wow. Isn't this crazy? Yeah. I want to animate me.
So you can take a picture and throw it up here and get these. They're not very anime. Like I
don't think there's exaggerated as anime often is, but you put a picture up here. get these they're not very anime like i don't think they're as exaggerated as anime
often is but you put a picture up here doesn't work very well for me with glasses but i did put
up here a picture of my dog so there's a picture of my dog which uh i'll try to link to this in
the show notes or something and i threw it up there that is a carrier mix of like 10 different
things it's very very sweet but i can't really give it a type
but if you turn it into anime it looks like this which is pretty awesome well i i think you should
have some kind of battle sword or a helmet i feel like yeah it's just way too chill this dog it
needs to be much more uh ready to go yeah and battle so with a slowly forming tear well go back to the other the the anime the the
other the humans yeah so it looks like there's there's moving can you have yeah i don't know
what this move i i couldn't make it move maybe if you drop a movie or something up there there's
like an elon musk and a bill gates uh anime so i was hoping that you could do real-time filters so we could possibly do our
youtube all in anime sometime oh my gosh if we could do it we could do an episode like once a
year where we're in anime that would be fantastic i would be all about it yeah they've got tim apple
there or a snapchat filter you know i'm really on fight on bites i'm not a cat exactly your honor
i'm not a cat i'm ready to proceed oh I'm not a cat. I'm ready to proceed.
Maybe we could ask StreamYard to update that in our new update.
Oh, yeah, that would be fantastic.
All right.
And then finally, a couple of versions of Python are out.
The interesting one is 3.11 Alpha 2 is now available for people to download.
We've spoken about Mark Shannon's plan to make Python faster.
Guido van Rossum has
been helping over the last year. Talk Python. Yeah, I interviewed them on Talk Python. Go listen to it.
Yeah, I recently had, at the moment, the most recent episode on Talk Python to me is Guido and
Mark talking about the work they're doing to make Python five times faster. This is the first release
that has some of those features in it.
And you can test to see
if this is any faster on your code.
So they said they'd love people to try it out.
So a double shout out there to that.
All right, I think that's enough time for a joke.
Although I feel like the salmon one
is really kind of also a joke,
but it was also real.
Like if you're looking for a job within the PSF,
the PSF, not just PSF, check it out.
All right.
But as somebody who does testing, Brian, I'm hoping this one touches heart here a little
bit.
You ready?
Yeah.
So here's a picture.
It's a meme type of picture and it has some text on it.
It says hot fix in production.
Could you describe that for our audience, please?
This is an awesome picture.
So you've got like a drainage
pipe coming out in the water and it's clearly not not attached to there's and then it kind of
it's coming out at an angle then going down there the pipe goes down and uh straight down it's
supposed to be connected as one big pipe it's supposed to be connected but it's not but actually
there's a hole in the lower pipe so the upper pipe actually just
directly hit it all works the broken pipe on top is being poured into a broken pipe a hole in a
broken pipe that is disconnected so it it works yeah so it's a hot fix in production just make
it work i'm guessing somebody like just uh noticed the break and then just popped a hole in the pipe in the bottom to fix it.
Something like that.
Yeah.
This is great.
I feel like this is that rush to get that broken website, the website is down type of thing, running as fast as possible.
Well, yeah.
Or it could be Facebook and the whole internal network could be broken and you have to break out like a saw to saw open the data center door because the network is required to open
the door, but the network is down and you've got to get in the door to restore
the network.
Well, actually, you know,
stuff like this happens all the time because you've got like a team that
finds a problem, but the problem isn't in their code.
It's in like some other component that happens to be written by the team in
Germany that's on vacation because it's one of their million holidays.
And so you just fix it in the other layer or something like that.
Yeah, absolutely.
That's awesome.
All right, we got a little audience participation in this joke.
Anthony Shaw says, integration test pass.
Exactly.
And Will McCugan says, leaky abstractions.
Oh, nice.
Well done. Yeah, well done, you all out there. And well done toogan says leaky abstractions. Oh, nice. Well done.
Yeah, well done, you all out there.
And well done to you, Karen, as well.
Thanks for being here.
I'm super excited.
I've been a longtime fan of both of your work.
Oh, thanks.
I just thank you for letting me be here.
And thank you for inviting me after I super fangirled you at Pi Bay.
Because I appreciate both of your work.
Everybody should also help out
these two wonderful podcasts,
TalkPython and the Python Testing Podcast
and Python Bytes on Patreon
as I have for a number of years.
So super exciting to be here.
Thank you so much for the invite.
Yeah, it's great to have you here.
Thanks again.
Brian, thanks as always.
Bye.
See you all later.