Brought to you by Michael and Brian - take a Talk Python course or get Brian's pytest book


Transcript #334: Packaging Organizations

Return to episode page view on github
Recorded on Wednesday, May 3, 2023.

00:00 - Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to your earbuds.

00:05 This is episode 300 and 334, recorded May 3rd, 2023.

00:11 I'm Michael Kennedy.

00:12 - And I'm Brian Atkin.

00:13 - This episode is brought to you this time by us.

00:16 Support our work through our courses over at Talk Python Training.

00:20 Check out Brian's pytest course.

00:21 Check out a lot of the other courses I did there.

00:23 Check out the Test and Code podcasts.

00:25 And we have Patreon supporters as well.

00:27 link on the episode pages on the website.

00:30 Connect with us over on Fosstodon@mkennedy@brianhawkin@pythonbytes over there.

00:35 And if you're not part of the YouTube livestream and you wanna be, we generally do this on Tuesdays at 11 Pacific time in the morning.

00:44 But today we had to move it, so plus one, plus 23 hours.

00:47 >> Yep. >> All right, yeah, Brian.

00:49 >> Sometimes life happens.

00:50 >> Life does happen, and sometimes PyCons happen.

00:53 >> Yeah. >> Yeah, that was a lot of fun to see there.

00:56 - Yeah, it was a blast.

00:58 I guess I had a great time.

01:01 How about you?

01:02 You got a lot of work done.

01:02 - I got a lot of recording done.

01:05 Looking forward to releasing some of those episodes.

01:06 Met a bunch of great people.

01:08 Saw some old friends, got to hang out with you.

01:10 You brought the staff of the Python staff of power and battled the snake, which was the episode album art from last time, which was a lot of fun.

01:20 So yeah, it's starting to come back, isn't it?

01:23 I mean, but still quite as many people or as vendors, but it's good to see it coming back to life.

01:28 - Yeah, I really enjoyed it.

01:30 So should we kick in?

01:32 - Let's do it.

01:33 Yeah, jump in.

01:35 - Well, I was actually talking with one of our friends from PyCon that I'm blanking right now.

01:41 So somebody from PyCon, so thank you and apologies for forgetting your name right now.

01:48 But I came across, actually from several people mentioned Rye because we had talked about Hwak.

01:56 Anyway, H-U-A-K, and I think I got corrected that the intended pronunciation is Hwak, I think.

02:05 Anyway. (laughs)

02:07 - I'm on board with that, let's do it.

02:09 - So a similar, so that's what it was, was a Rust-based Python project workflow tool.

02:16 So now we have another one.

02:18 This one's called Rye.

02:19 And I don't know what came first, but actually this doesn't look that old.

02:24 This is from Armin Ronacher.

02:26 Ronacher, Ronacher, I'm okay.

02:28 I gotta practice this stuff.

02:30 The dude from Flask that started Flask.

02:32 So I was curious about it because he usually kind of knows what he's doing.

02:37 And this is a really pretty interesting project.

02:40 So I tried it out this morning.

02:42 Rye, it says it's Armin's personal one-stop shop for all of his Python needs.

02:47 So that, and there's a video, which I didn't watch, but it's a nine minute intro video.

02:52 So what am I excited about with this?

02:56 So it's more than just project.toml workflow tools.

03:00 It does that.

03:01 So you can do things like initializing a project, adding a dependency, removing.

03:05 You can remove a dependency.

03:07 That's kind of a neat trick.

03:08 And then build a wheel and even add lock files, which is kind of nice.

03:13 So the other thing that, One of the things that I thought was really kind of cool is it also manages, I'm not gonna find all the details here, but it manages Python.

03:26 So you can, what are people using for Pion for something to install Python?

03:31 This installs Python also.

03:33 So you can say, you can say what, Rai fetch and then give it like 3.9 and it'll download and install Python 3.9 for you, which like, wow, that's kind of cool.

03:46 And it does it in an interesting way.

03:49 So it uses these IndieGreg Python build standalone releases, which I was not familiar with.

03:56 So there's these different standalone distributions builds of Python, so neat.

04:02 I forgot to add, this is not a Windows thing yet.

04:06 It's just Linux and macOS, so I tried it on Mac.

04:09 So installing a bunch of stuff, but where does it install it?

04:13 It doesn't install it in the normal place, it installs it in your home directory under .ry, R-Y-E.

04:19 And that was surprising to me at first, but it's kind of neat that everything's there.

04:25 So, okay, so it does pyenv sort of stuff.

04:29 It can install Pythons for you, which is kind of cool with the command line.

04:32 You can install a Python and it's pretty fast.

04:35 It also handles virtual environments.

04:37 So you can do things like add, run within your virtual environment.

04:43 You can run a command without actually going into it.

04:45 You can say like, "rai run black" and it'll run black on your project.

04:50 You can say sync and it'll take all of the dependencies in your project.toml and install them in your virtual environment.

04:56 That's kind of neat.

04:58 And also it's kind of like PIPX also.

05:00 So you can do things like install a global tool, like, you know, PIPX install cards or PIPX install really whatever you want or black, for instance, if you wanted to.

05:12 if you're gonna like have any global tools on your machine.

05:17 It confused me at first, 'cause I tried it and I couldn't get it in the thing to run, but it doesn't really, it isn't invasive.

05:26 So it's not modifying your .zhrc or your RC files itself.

05:31 You have to do that.

05:33 So it's all going into your home directory.ry.

05:38 And then I think there's a bin directory in there something like that that you just add to your path.

05:45 It's doing that. The neat thing about that all that isolation in the .ry directory is that, if you decide you don't like it, you can just delete it and then delete that directory, and all that stuff's gone. Kind of cool.

05:59 >> Yeah. I do like that it just blow away the directory and it's gone or it's reset.

06:04 That's pretty cool. It's also interesting to see that this is not a package or tool within Python, but outside of Python.

06:13 Yeah, I mean, it does.

06:15 It says it uses like uses virtual environment.

06:17 It uses actually uses virtual end, which is a third party package that's a little faster than the VNB.

06:25 But it also uses a pip, but it doesn't expose any of those.

06:30 So it is kind of interesting that it's outside.

06:32 I kind of like that it's outside because you can do things like like pip X and and PY and V.

06:37 And for me, it like just worked better.

06:40 I've still had trouble getting, pyenv is a cool idea, but it mucks with everything in your environment.

06:46 I don't like that part of it.

06:48 >> Yeah, I don't like that either.

06:50 I think the trend, I've been talking, I did the Python packaging discussion on Talk Python a while ago and there's been a lot of talk about this.

07:01 Talked to Ofek about Hatch and it's looking like there's a little more interest in saying like, okay, what if we had a tool that actually not just manages environments and packages, but actually manages Python like it, for example, like this one, like install the version of Python you want and do a bunch of other things along those lines. So yeah, it's interesting.

07:24 Another just a side note, Simon Wilson wrote up some notes on his when he tried Rai. So we'll link that article as well.

07:31 Okay, excellent. All right. What is next? PyPI is next.

07:36 Okay.

07:37 Okay, so remarkably PyPI has 452,000 packages.

07:42 That is insane.

07:47 But what is more insane is the traffic, right?

07:50 So there's some, one of the themes from PyCon this year was about sustainability and kind of building for the future.

07:57 Carol Willing gave a great keynote talking about, let's make sure that we're investing in the front end story for Python, investing in a mobile and deployment story for Python and you know, PyPI and the Python Packaging Authority, it's kind of there as well, right?

08:15 Like as we grow in traffic, we need things like somebody to watch over the security and some, you know, somebody to make sure all this stuff is developed and polished.

08:27 And people have been doing that, but to a large degree in a volunteer way, right?

08:31 But how does Python pay somebody to work on this?

08:34 Well, there's been some grants, I think, I don't wanna say the wrong company, it was from some of the big tech companies are hiring people to do specifically security work, like a supply chain type of security for PyPI, which is great, right?

08:49 But those are year by year things.

08:51 So what could be done?

08:53 Well, right now, if I go over here on PyPI and I search for like, Botocore, this is the way to talk to AWS basically, from Python to a large degree.

09:04 Who's it run by?

09:05 Oh, it's Garnot, amongst others.

09:09 Wait a minute, this is like the official AWS thing.

09:12 Shouldn't this somehow be kind of more official than that?

09:16 And how do I find the other AWS projects?

09:19 I can like email the person or something.

09:22 I guess I could go over here and see this, the projects if I go to their user account, but it's kind of just, you know, AWS sort of hacked the system by creating an account named AWS, but it's not really official.

09:34 You don't get a branded story, you just use your profile.

09:39 GitHub has something like this.

09:41 If you went to github.com/talkpython, this is the official organization.

09:46 We have 47 repositories, we have six people involved, and you can put this together officially as not Michael, but this group.

09:58 the big announcement is introducing PyPI organizations by E-Durban.

10:03 So today we are rolling out, today being a few days ago, today we are rolling out the first step in our plan to build financial support and long-term sustainability for the Python packaging index, while simultaneously giving our users one of the most requested features, organization accounts.

10:22 So these are self-managed teams with their own exclusive branded web addresses, And the goal is to make PyPI easier for large community projects, organizations, and companies to manage multiple sub-teams and multiple packages.

10:35 So much like the GitHub org that I was talking about, you can say, "Okay, this person is an admin of it, and this person can have write access to that thing, but not this thing." So kind of those types of things instead of, "Hey, everyone in the company, here's the one and only username and password for PyPI Go." Interesting. Yeah. Yeah. And it's like I opened this conversation, increase the idea is to increase sustainability. This last year, PyPI served 235 billion downloads for those packages and saw 57% a year over year growth on download counts and bandwidth alike. That's great, but it also means costs and effort and infrastructure and all that is just going up. Also, these organizations are not required. AWS can still manage it however they are now they want. So these are opt-in and it does cost it says a small fee. I would love to see small fee equals $100 a month or a dollar a month. I don't know what this is. Maybe it says somewhere. Maybe I got to go on a sliding scale. Yes, exactly. If you got to ask, no, just kidding. It says small fee. If you ask, it's not for you. Anyway, PyPI organizations coming now. Check it out.

11:53 - Okay, so is it just, okay, we don't know this yet, but is it just for things like companies, or could it be for like pytest or something like that?

12:03 - Sure, it could be like for pytest.

12:04 I mean, you talked about, it says for large community projects, for example.

12:09 Like you talked about Flask, well, you talked about Armin, who was the original creator of Flask, but that's now under the Palettes project, which runs a bunch of different projects and has a bunch of contributors.

12:20 Like I think a Palettes organization would be, potentially reasonable, you know?

12:24 Yeah.

12:24 Yeah.

12:25 It's gotta be tough to come up with like pricing for something like this, because like we said, some of it is a bunch of volunteer organizations and some of it is, yeah, companies.

12:34 so yeah.

12:35 Interesting.

12:36 I, yeah, I don't know.

12:37 I, it probably says somewhere, but I didn't see it in this article on the pipe.

12:42 Yeah.

12:42 Nice.

12:42 Cool.

12:43 Well, should we jump into the next topic?

12:47 Yeah, go.

12:48 Okay.

12:49 Well, I just, we.

12:51 I like this article by Bob Belderbos.

12:54 It's five tips to learn any new Python library faster.

12:59 This is actually near and dear to my heart because we do this on a weekly basis, trying something new.

13:09 I think I have a condensed version of this, but let's walk through.

13:14 These are pretty good tips on if you're thinking about using something or just want to learn, you hear something cool, you want to learn about it, what do you do?

13:23 So his first step is quickly read the main docs.

13:28 So read the manual, RTFM.

13:31 Especially, I like things like if they have a quick start or getting started, like I like to read that.

13:39 If there's a video, go ahead and watch it, especially if it's a short video.

13:43 Go ahead and try that.

13:45 So, okay, so you know what it does, great, and you kind of know how it works.

13:49 And then install, number two is install it.

13:52 I think this is funny.

13:53 I mean, obviously you have to install it in order to play with it, but okay, install it.

13:57 Number three is explore the library.

14:01 Essentially play with it.

14:02 Play around, see what you do.

14:05 Bob has a great idea of doing this within Jupyter Notebooks to just kind of explore what it does.

14:12 That's pretty great.

14:14 And then you have to kind of make it more deliberate.

14:17 So instead of just playing around with like, maybe the things it does, try to do something with it.

14:22 Try to have a task.

14:22 And this is a deliberate practice, but this is where I think you're really gonna start learning something is actually trying to get something done because often there'll be extra features you don't need right away.

14:38 With a lot of projects, most people use 20% of the functionality.

14:44 So you don't learn a hundred percent of the functionality.

14:46 you learn the 20% that you need to get something done.

14:49 So deliberate exercise, and then maybe actually build something or change something.

14:55 So number five is build something.

14:57 So going into a deeper level is actually incorporate this library in a project of yours, or if it's similar to another project that you're already using, and you're just thinking about switching, go ahead and try switching it.

15:09 You might not stick with it, but kind of feel how easy it is to change over to this new project.

15:16 And you might not publish it, but you might.

15:18 It might be great.

15:20 Building something small is a good idea to just kind of get your hands dirty.

15:25 And then the bonus, number six--

15:28 I always like it when people lie about how many tips there are.

15:31 The real bonus is teaching it.

15:34 And this is massive.

15:38 And it just ties the bow on the whole learning process is trying to teach it back to somebody.

15:44 And this could be a today I learned thing on your blog or an actual longer blog post or maybe a little tutorial video or something or actually just sit down with somebody and try to talk to them about it.

15:55 One of the things that I find even just for ourselves for this podcast, trying to look at it and go, if I was trying to teach this to somebody or tell somebody why they should use it, why?

16:07 I mean, what are the different points?

16:08 So like just earlier when I was talking about Rai, what's different about that?

16:12 well, it's different because it's, it handles the Python installs also, and it also kind of works like PIPX.

16:19 I mean, the different things about it.

16:21 And then think about like, and then actually try it.

16:23 So I tried it out.

16:24 I went through, set up an extra little project directory and tried it out a few times and saw what it did, looked at the project Toml output.

16:33 So yeah, and then just doing that.

16:36 So some great things.

16:39 - Yeah, I think, you know, teach it is really cool.

16:42 You don't have to be an expert at something to give a presentation on it, if you structure, long as you're genuine about it, right?

16:50 If you said, hey, I'm gonna teach you everything you need to know and how awesome this thing is, and really you just learned it last week at a conference talk, people might call you out, like you don't seem to really know as much as you came, but if you say, you know, I'm excited about this thing, I just learned it, I wanted to share my excitement and just show you a quick getting started thing.

17:12 Then people won't go like, well, why doesn't he know it?

17:15 Like you start out, well, I just learned it, but I'm excited and I think you'll be excited too if you.

17:20 So I do think those presentations are awesome.

17:23 I mean, there's plenty of places.

17:24 There's user groups and meetups, regional conferences, like online meetups.

17:30 Those people are always looking for presenters.

17:32 They're like, gosh, it's a week away and we don't have a speaker yet, right?

17:35 So reach out.

17:36 and there's a ton of opportunity to do that, or even brown bags at your company.

17:39 - Yeah, I like that you brought up that be honest about it, that you can even say, I just got excited about this, learned a little bit, and I wanna show you what it is.

17:52 Yeah, don't make yourself out to be an expert in the field, but that's great.

17:59 This process actually is exactly how I got started blogging about testing is just learning something new, writing an article about it, and then writing a bunch.

18:09 If you really want to deep dive into a module or a package, you can write a series of them.

18:16 Write your getting started one of the first thoughts, and then move on to, well, how do I do this other thing with it?

18:23 How do I do authentication?

18:24 We'll do a little article on that.

18:27 The whole thing could end up being a book.

18:30 You could make a book or a course or something out of it eventually.

18:33 But if you just want to do a quick one, this is a great way to.

18:36 >> Yeah.

18:37 >> All right.

18:38 >> Speaking of just like a open bubble, but it's conversation here with like, and some of the things I'm learning are PyScript, Flat, PySimple, GUI, PyWrite, HTMX, Redis, Leaflet.

18:48 Those are all awesome.

18:49 So I can see why you would want to learn those.

18:51 Liz out there says, "I'm excited about this type of presentations, tend to be more to the point." Which is indeed.

18:58 >> Yeah.

18:58 >> All right. What's next?

19:00 We have GPUs next.

19:03 - Brian, I know you heard that we can do all sorts of amazing things by programming GPUs.

19:08 And if we want to process tons of data, maybe we're doing medical research on protein folding, we're running around a cluster of GPUs, and we could solve some kind of huge computational biological problem and make a big impact.

19:23 But if you're gonna do that, you sure better hope that you, if you're gonna do something like CUDA, you better hope that you have not just GPUs, that's way too broad, no, no, no, you have NVIDIA GPUs.

19:35 And NVIDIA GPUs are sometimes hard to come by.

19:38 Couple years ago, they were very hard to come by, unless you're using the cloud where you can go get them, right?

19:43 I have an awesome Mac here.

19:45 I've got my M2 Pro Mac mini now, and that thing has 16 GPU cores on it.

19:53 Can I do CUDA or use PyCUDA on it?

19:57 Nope, that's not an NVIDIA one.

19:59 And so like, honestly, on Mac especially, it's been extremely hard to do any sort of GPU computation, right?

20:06 We had the afterburner cards and those like weird external graphics cards on the older Intel ones, but those are not even an option in the last four years.

20:15 So, you know, that's a drawback.

20:18 And on Mac, the graphics language like DirectX on Windows or OpenGL and a lot of things is called Metal.

20:25 And so I want to introduce you to a library and an article called Python gets down to the metal, not like CPU, but GPU.

20:33 And it says, are you a Mac and Python person?

20:36 Do you have a trillion numbers to multiply together?

20:38 You don't have all day to wait for them?

20:40 Says, well, Python is quite slow, although the person acknowledges, I've been a happy Python user for quite a while.

20:46 You know, for pure number crunching, Python is not as fast as the compiled languages like C and REST, which is totally true.

20:54 Is it plenty fast to drive your web API?

20:56 Probably, it's probably really fast for that.

20:57 But if you literally have a trillion numbers, you want to just crunch them in a loop.

21:01 The advice is not to do that.

21:03 The advice is to use something like Pandas or NumPy or Dask, or something like that, which are really all C-base.

21:10 Or if you had a NVIDIA graphics card, maybe you could use some thing like PyCuda.

21:18 But again, on the super powerful computer, it is just you can't do it.

21:23 There's no way to get an NVIDIA graphics card.

21:26 However, if you could somehow program this metal, it says metal does have a way to program it.

21:32 It's just there's not a lot of things for it.

21:34 And it says there's a language to do on GPU computation that looks very C++ like.

21:40 And it says on an M2, this is not the pro, but the regular one has 8 GP cores, which means, let's see, they give some numbers here.

21:49 Yeah, it says on the 8 GPU core version, you could do about a trillion floating point operations a second.

21:57 And that's the base version, right?

21:59 And so the bigger models like mine, those are up towards 10 trillion, right?

22:04 So mine's probably like six or seven trillion.

22:07 But, you know, the ultra max, I don't know, whatever, the bigger ones can do even more than that, right?

22:13 So that is a ton of power.

22:16 And so we introduce Metal Compute.

22:19 So pip install Metal Compute.

22:21 With this, it's a little bit like doing SQL, raw SQL database stuff in that you define a thing that you want to run on the graphics card.

22:32 That looks a lot like C++, I think you would imagine, Brian, what do you say?

22:37 >> Yeah.

22:38 >> Yeah, it's just hash include metal standard lib, using namespace metal, write a function, do the operations.

22:45 There's a lot of const device float star buffer.

22:48 I mean, it's not easy, right?

22:50 But it's also not that easy on CUDA and other things as well, generally speaking.

22:55 So they come up and say, "All right, what we're going to do is going to come up with a bunch of a vector and a matrix, then we're going to multiply them and do a bunch of work and get the answers out." Off it goes, prints out the answer. Very cool.

23:08 >> It's cool that you don't have to compile it or anything though.

23:12 >> Yeah, it is cool.

23:14 >> Or have it in a separate file.

23:15 It's just a string there. That's neat.

23:18 It is. And if I was a, if this was my job and someone said, Michael, you're writing this program, I would not do what they are doing in this example and put triple quotes and put metal code, which is like C++ in there. I would write a metal file. Yeah. Or a C, call it CPP or whatever is going to give you the best auto complete and color syntax highlighting. And then just do the old path, read text, get that, you know, in one line, get that out, but have that in a separate file. So you could sort of more properly reason about it.

23:49 But anyway, it says, look, we run this together and did a whole bunch of work.

23:55 Took 70 milliseconds to do 10 multiplications.

23:58 Not that impressive because there's a startup cost.

24:00 What if we gave it a billion multiplications to multiply that vector and that matrix?

24:05 Oh, that takes 0.3 seconds.

24:07 A billion times, that's a lot.

24:09 - Yeah.

24:10 - So that's pretty good.

24:11 It does say though, look, part of the speed or part of the challenge is moving data into memory and then out of memory.

24:19 And so the more you move stuff in and out rather than kind of load it up with the data and then do operations on it, it will be slower.

24:25 So it talks a bit about some of the performance things that you can do to make it faster.

24:30 It gives some examples on how to do that.

24:32 There's probably some interesting trade-offs with the Apple Silicon having a shared memory between memory memory and GPU memory, right?

24:40 You don't actually have to copy it between there.

24:41 But I suspect that you're going from Python to C++ memory and back through some kind of serialization.

24:48 That's going to have some kind of cost, who knows.

24:50 Anyway, there's some cool examples of a Mandelbrot set being computed with this, or Julia set, rather.

24:57 But yeah, people have been dreaming of doing GPU processing on their Macs.

25:02 Well, this might be worth checking out.

25:04 - Nice.

25:05 - The other thing that's kind of cool about it, it doesn't, you know, it's not like a library that takes Python code and compiles it or transpiles it to run on the GPU, which would be awesome, but at the same time, if it doesn't quite get it right, how much control do you have?

25:20 How useful is it? You don't know.

25:22 Here, if you can just give it the data as an array, then you're just writing straight metal, which is a bit of a pain if you don't know it, but at the same time, it means that it's super flexible, like a DB API.

25:36 You open a connection, you say, "Here's a string, run that on the database." you can give it a selector, some kind of query or update, and it kind of gets out of the way.

25:45 So it seems pretty flexible in that regard.

25:47 - Yeah. - Yeah.

25:49 - Interesting, and this is Mac only, right?

25:50 So this is-- - Yeah, it's Mac only.

25:53 Take that, NVIDIA.

25:54 You can't run Mac, no, just kidding.

25:56 I have both an NVIDIA card and this, but I don't really have, I would like to do more GPU stuff, but I just don't have a trillion numbers that need multiplying right now.

26:04 (laughing)

26:05 - Well, you know, it's not a bad thing.

26:06 - Someday, no.

26:08 All right, over to you.

26:09 - I've got, so we're onto extras.

26:12 I've got just one extra that I wanted to bring up, and that was just the textual.

26:18 So Will McGugin posted like this picture and like with no explanation.

26:26 Apparently it's the weird, I'm showing a weird bird with a large mouth.

26:31 It's kind of an ugly thing, I think.

26:33 But it's the logo for Frogmouth.

26:36 And what is Frogmouth?

26:37 Frogmouth is the first, apparently first of possibly more to come, applications that the textual team is releasing that are built on textual.

26:46 So Frogmouth is a markdown viewer and browser for your terminal.

26:50 And it looks pretty clean.

26:52 I tried it out as well.

26:54 I haven't been able to get like these menu bar thing or the tree things on the side, but it's like a navigation thing with like, You can browse your markdown within Textual.

27:08 So it's kind of fun.

27:09 - Yeah, continues to impress with what they can build with that stuff.

27:13 - Yeah, and this is the application that I tried when I was talking about Rai.

27:17 I tried installing this as a global application and it worked just fine.

27:22 - Yeah, cool.

27:23 All right, I would like to serenade the audience, Brian.

27:26 - Oh, yay.

27:27 - Yeah, I was gonna talk about this as a main item.

27:29 This thing called Serenade at serenade.ai And it's really neat.

27:34 What it does is you install a plugin for your editor, where your editor equals VS Code or JetBrains IDs, one of them too.

27:44 And then you run this in the background and you can speak to it, like you hit a hotkey or whatever.

27:49 And you basically start speaking code-oriented operations.

27:54 So there's a cool example that it shows somewhere in here.

27:59 Let's see.

28:00 Yeah, if you go and click on the docs, you'll see a bit of a video thing here.

28:05 And basically you can go into it and you can say, teach you to do tests.

28:13 You can navigate around, this is kind of cool.

28:15 So if you're typing in the editor, you're kind of good.

28:18 I mean, I know if you have RSI and stuff, that's not ideal.

28:21 But one of the challenges is like, okay, I need to leave this and navigate over there.

28:25 So you can say things like, open some file name and it'll actually go through your editor and say, "Oh, that's over in this directory.

28:33 You need to expand the section and it'll jump to it." Or you can say, "Go to this function," or those things you can speak to it and it'll do it.

28:42 Anyway, it's really cool.

28:43 Why is it not the main item?

28:45 Because I'm super excited about these things.

28:47 The reason it's not is it hasn't really been touched for coming up on a year, and that was just a merge of some PR.

28:55 Is it still going? I don't know.

28:57 It was working pretty good, but then it was throwing errors.

29:02 I don't know, I love the idea.

29:03 If this thing comes back to life, someone out there let us know because this is super cool, but it doesn't quite seem to be getting kept up with the editors and tools and so on.

29:14 >> I liked your comment in the show notes, serenade has seemed to gone silent.

29:19 >> It has gone silent. Thank you.

29:22 But it's still worth checking out. It's cool.

29:25 Then Brian Skin, we've been We're gonna talk a lot about packaging on this episode.

29:32 And I did my packaging discussion, and sort of inspired by that, or maybe just the discussion that I was also inspired by, they're setting up a Python distribution packaging round table, not just of the people inside Python Core Devs world, but in the broader ecosystem for like Anaconda and data science and that, all right.

29:58 Do they have 13 maintainers across nine projects lined up for Tuesday, May 9th, and a link to go attend it.

30:06 So if you're interested, you can go check that out.

30:10 Yeah, so I'll put a link in the show notes, yeah?

30:14 - Cool. - Yeah.

30:15 That's it for the extras on my end.

30:16 How about a joke?

30:18 - Yeah, but before we go there, I just wanted to say I just remembered the person that told me about Rai in the first place, and now I feel like a dork.

30:26 It was Paul Everett.

30:28 So thanks, Paul, from JetBrains.

30:30 - Awesome, yeah.

30:31 Paul was quite the host at PyCon and did a bunch of awesome stuff for many people.

30:36 Much appreciated.

30:38 - All right, how about a joke?

30:39 - All right, before I put this on the screen, I'll tell you about it.

30:43 Sometimes programming is just amazing.

30:46 You just get in the zone and you just go, look what I built, boom, boom, boom, boom.

30:50 Other times, you end up with a bald patch where you've been tearing your hair out.

30:54 You're like, no, why?

30:56 You may end up yelling at the computer, right?

30:58 There's just like a bunch of stuff.

30:59 And this joke highlights the small wins you might make in this situation, okay?

31:05 So it's just a person with two monitors, a bunch of energy drinks crushed next to them, bunch of wrappers, empty coffee.

31:14 They've clearly been here for a while.

31:16 And the arms are up like, "Yes!

31:18 "Wow, a different error message.

31:20 "Finally, some progress." (laughing)

31:23 - Yes.

31:24 I mentioned I've been working with a guy named Lauren on a Flutter mobile app.

31:31 Let me tell you, there are a lot of tools in that tool chain and more than once, here I have been like, "Yes, that's not the same error, we're making progress." - Yeah.

31:42 (laughs)

31:44 This was me yesterday for half the day.

31:48 Working with a Docker compile that used Docker and artifactory and a whole bunch of C++ stuff.

31:57 >> Indeed. All right.

31:59 Well, let's hope for different error messages for anyone out there struggling, and then eventually, more error messages.

32:06 >> That's a good one.

32:08 May you have a different error message tomorrow.

32:11 >> Exactly. May you live in interesting times and may you have different error messages.

32:17 All right. Well, thanks for being here, Brian.

32:18 >> Thank you.

32:18 >> Thanks everyone for listening.

32:19 >> All right. Bye.

Back to show page