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

« Return to show page

Transcript for Episode #232:
PyPI in a box and a revolutionary keyboard

Recorded on Wednesday, May 5, 2021.

00:00 Hello, and welcome to Python bytes where we deliver Python news and headlines directly to your earbuds. This is Episode 232. Recorded may 5 2021. I'm Michael Kennedy.

00:09 And I'm Brian arkin.

00:10 And I'm a net was a net. Welcome to the show. It's so great to have you here. Thank you. It's

00:15 great to be here. Thanks for inviting me.

00:17 Yeah, of course. We were on a panel together at the Python web camp. And that was a lot of fun. It was like, blows out the conference, trivia show or something like that, right?

00:27 Yes, that was a ton of fun. It was nerve wracking, but I really enjoyed it.

00:31 Yeah, absolutely. So tell people a bit about yourself before we jump into the topics.

00:36 So as I said, Hi, I'm Annette. I am a plone and Python developer with six feet up. I've been working professionally in the web development world for five, eight years now. But my interests with working with web technologies started back in 1999. It's just been a passion that's followed me all the way till now.

00:54 Oh, that's awesome. Did you start in Python? Or?

00:57 Oh, no, I didn't start in Python. I actually started just HTML CSS. And as I got more year, I just put more and more languages. And then plone was my gateway into the Python world.

01:06 Yeah. Fantastic.

01:08 Interesting. There's clone is a kind of a microcosm now. So yeah,

01:13 it definitely seems like it. Hi, Brian. Well, you want to kick us off with web topic?

01:19 Yeah, this was just announced last week, the Sphinx theme gallery, which it has has an update updated look. And I actually be honest, I hadn't didn't look at it before. So it wasn't sure what it looked like before. But I have a new product Sphinx project that I'm working on. So I was interested in this. And it looks awesome. So the theme gallery has if you go to the theme gallery page, you see, you can just browse through and all the themes are just like these images. But the

01:47 Oh yeah. If you want to look like read the docs, you can do that. Or you get like a plain white one, right? Yeah,

01:52 very nice. Yeah. And it doesn't, it wasn't obvious to me at first, although it's kind of obvious. Now. The each theme is shown in three different sizes, so you get the full wide layout, or you get the narrower layout or what it would might look on your phone.

02:06 Interesting. So like this, press one on the screen here, which actually like a lot, you tell it's clearly responsive, and adapting, like the design to bone, but like the celery one is just lots of sidescrolling.

02:18 Yeah, and then click on one. So if you click on any of them, you get a demo of what it looks like. And right away, you get like, some instructions on how to install it if you want to. And then a link to the documentation for the theme. And then, and then you also have there's a, there's a nice kitchen sink feature. So you can go ahead and you can see all the different markup that's possible. And what I really like is there's a specific API documentation example. Because for the project I'm working on, I really want the museum to document some code. So I really want the API documentation to be really clean and easy to read. That's the most important feature for me. So I think we're gonna go with the book theme, because the book themes, APA documentation looks pretty good. So we're going to start with at least. And anyway, I think this is just a really nice way to, to review everything. So drop down the kitchen sink thing, and then click on API. Now. Yeah, it's a very nice looking to break up the different API, it shows you how

03:21 the API of your project will be presented through the documentation. Right?

03:26 Yeah, yep. So I'm using the API. I don't know, I'm still on the fence about how I'm gonna put all this in. But I'm listing all the API of the project I'm working on. It's gonna be an internal documentation project. But this is, this is really helpful. And I really think it's, it's really nice looking. So Good job, guys.

03:44 Yeah, yeah, that's pretty. You got to write in restructured text. Is that right? By default?

03:50 No, no, no, I'm doing all markdown now. So the cool thing is, and I probably should do a write up of this at some point, but But Paul Everett's doing a talk for Python about doing Sphinx in markdown. And that's what I'm going with. So there's, there's Yeah, the misc parser using that. And then there's also a way that you can actually put markdown in your doc strings. So you can even write markdown within your within your code. Oh, that's

04:16 cool. So cool. And that's it. We

04:18 think this projects, I think it's really cool. I mean, when you work with so many clients, and so many pieces of thing, anything where you can get nice clear documentation and any themes or like a passion of mine, especially starting in front end.

04:32 That's cool. Yeah. That your work with six feet up is primarily like a consulting role like you guys help other? Yes. With their Python and web apps and stuff, right?

04:43 Yes. So we get to do lots of different projects. And the best thing about that is we're always trying to solve different types of complex problems. So any tools that we can use or introduce them to this is a great asset.

04:54 Yeah. Very, very cool. All right. Well, this next one that I want to talk about is near and dear to my heart, Brian. You may have heard me talk about MongoDB before. Yeah, yeah, I'm actually a huge fan of MongoDB. Like our site runs with MongoDB as the back end. And one of the things I've been jealous about is SQL Lite. So if I was working with Postgres, and I wanted to use, say, tortoise ORM, I wanted to use SQL alchemy, I want to just a simple little version, well, I could use SQL lite, and then change the connection string over to Postgres and get a real proper database. But I don't have to always have that in place, right? various reasons. We even talked about using SQL lite as a database file format, which was super cool. So MongoDB doesn't really have something like that to a great degree, there was tiny dB, which is like it, but yeah, similar, but tiny dB. I don't believe it's actually MongoDB compatible. I could be wrong about that. But I believe tiny DB is a little bit different. Yeah, it's different. Yeah, it's a document database. But it's not just swap the connection string for MongoDB, I believe. So let me tell you about Mongo. I don't know how it's really meant to be pronounced, but I'm going with it. It sounds fun. So Scott, Scott Rogowski created this thing called mon Gita, and he says ma Geeta is to MongoDB as SQL lite is to SQL, which is really, really nice. So it has a cool, I know Meerkat type of animal or something. mongoose, I'm guessing maybe that's a mongoose. Anyway, I love I love the cool little animals and whatnot. But it's quite new. But it also seems to be coming along. And you know, he I lights a couple of uses here, like for embedded applications you might use it for so an embedded database, right? If I want to ship an app, and it needs a database storage, but I would rather use a document type of database instead of relational one, you can use it for that. Also for testing. This is kind of cool, because it's not 100%. But it's a non trivial amount of the underlying MongoDB. Python API is implemented. So you might be able to just swap it out and use like an in memory. So one of the connection strings or clients you can use is just an in memory one. So you could write like a PI test fixture, Brian that like loads of your test data, and then swap things out. And then just from there on out, you think you're talking to MongoDB, but you're talking to something in memory through Makita, which is pretty cool. And Sam asked, Can we run this in memory? Yes, exactly. Exactly.

07:21 I can't wait to try this. This is this is pretty cool.

07:24 Yeah, it looks pretty cool. And Dean has pointed out, this may be the most popular DB in the country of Mongolia. Anyway, so I

07:35 get the joke at first, that's bad.

07:40 So it's meant to be compatible with MongoDB. and implement, commonly used subset of the PI Mongo API. It's embedded. So instead of having a separate database server, you can just have this, which is really cool. Like for workshops and stuff is supposed to be not super fast, but decent enough to work with fast. It's all tested. It's only dependencies are pi Mongo, which is the thing you've got to replace, and then sort of containers. And theoretically, it's thread safe. Obviously, it's not a real database. So I still think it's pretty cool. So you come along and just say, instead of creating a high Mongo client, a pi, Mongo dot MongoDB client, you could create like a monkey client disk or a monkey client memory, and then just do the queries against it, which is pretty cool. There's some performance comparisons and whatnot about how it works. And then I'm going to point out one thing that we were talking about over here recently, connection with Mongo engine. So if you're working with an ODM, yeah, and you don't want to write raw queries and dictionaries, which I encourage you not to do work with some kind of ODM, it would be nice if you could just change something, and then all of your code keeps working. So this person rocky homes comm says it'd be really awesome if I could, like, connect this through Mongo engine. He's like, I'm not sure what's going on, like, well, so I wrote some code and said, Alright, here's all the things that have to change to plug Mongo engine directly into it. And basically, there's just certain things you have to say, yeah, sure, I'll do that for you like setting the host, you have to be able to set the host because the underlying library tries to set the host, but obviously, there's no host. But if it's not there, the code won't run. Right. So there's a few things. And Scott went through and merge that back. So now there's a subset of working with Mongo engine as well by just swapping out the the client basically, monkey patching the client.

09:28 That's so cool. That's nice.

09:30 Yeah, right. Yeah, I've

09:32 been using tiny DB in small projects. And I think I'm gonna definitely want to try this out. Because the the road between path between, you know, starting with tiny dB, and then going to Mongo is a kind of a big hurdle. But this looks like a small generalize

09:46 much closer. Yeah. And if you use the disk, the disk writer thing, I think it's going to save it indirect pisan instead of JSON, so it should make it parse less and whatnot. I don't haven't tried that yet. But it does store MB On, which is the binary version of JSON that MongoDB uses. So I would suspect that's a smaller, faster lighter file format then actually go into JSON and parsing the strings back. Yes, yes. Yeah. Pretty cool. Pretty cool. All right. Next up is. And that's what's your first item.

10:17 My first item is about world clone day. So last week, the punk community actually put together world plan day. And I was kind of blown away by it because it was a 24 hour online streaming event. And it was held this is it last week, and they put together over 50 videos, 16 countries, it was like 1011 languages of content, just introducing all types of different parts of plone. So they went through, like some general interest, they went through some technical talks, case studies. And it's all available on YouTube right now. So you can go and watch it. And it's a great primer, if you're familiar with clone, if you're not familiar with clone, even if you just want to learn some new techniques, or see some case studies, they have some great case studies about different universities that they were using. So here, they actually put together a nice list of highlights. And of course, yeah, so if you're overwhelmed with looking at everything here is like a good list that you can go through. But like I laser focused, of course, on plone six, because that is something I have been waiting to come out. And the more like breadcrumbs to get me the more excited I get. And they actually did this boon, six introduction, and I believe seven languages already, they're trying to add a couple more so that everyone can get this introduction to what plone six is going to be like,

11:35 and then they amazing, I've never heard of a conference doing that. Even places like WWDC, or Google IO or Microsoft build, like, there might be subtitles, but not different versions.

11:46 Yeah, so it's amazing. And like at the very bottom, you can see that part of the link where they actually have a couple hours of content and just Italian. So it's for everybody, it truly is a worldwide event. And with plone, six, they're talking about like volto, and under the hood. So if you're not familiar with pollun, six, or plone, in general, it's a Python content management system. But plone six is also going to have a react front end available to you in the form, okay. So you'll have the volto front end, you can decouple that and use any front end you want because it has the REST API, they're making it easier to install. So I just I can't wait to get my hands on it. Okay,

12:26 yeah, here we go. We've got the, if I can pull this up, we've got the volto a new experience for editing the web is that this is what you're talking about? Yes. Okay. It's like burn your CMS into kind of WordPress that you write in place or something like that,

12:42 right. So what it does is the volto gives you the ability to dynamically make your layout, so they break the content into little blocks. So you can kind of drag and drop blocks and arrange your areas. So it takes someone who might not be really technical or not be able to do front end or such, you can kind of just drag and drop them in, get that modern layout experience without having to know all of that. But then if you have that skill, you can make more blocks, you can present clients with more options. So you can use as little or as much as you want. And you get all the speediness and fastness of a react front end.

13:15 Okay, yeah, that's really, really cool, because there's a lot of competition for CMS is, you know, there's wagtail Jango. And then there's obviously WordPress that seems to run way more of the internet than it should. And you might wonder, like, Okay, why am I gonna use this one or that one, this is a really compelling idea to put in front of a CMS, and I'm sure this will give plone a big leg up.

13:35 Yes. So I guess maybe I missed it is plunge six, something that's out already or something that's coming,

13:42 it's coming. So, um, they're still in the alpha phase, it's not completely out. But what happens is, you can basically put together the poan six experience by downloading the volto front end, and then also having the poem back end. So you have two parts, but they're getting it to the point where it's going to be a real easy install process we're installing Python will install both halves that you need, and get you up and running. So you can start practicing if you're an early adopter. Now, if you go through the volto documentation, but then the official poned sec, six will be all ready for you package to go.

14:16 Cool. Yeah, really cool. Thanks for pointing out both those things that conference in volto. Alright, Brian, you beat me beat me to this one here. Today. That's about it. Well, I was considering covering it. But you got it, man. Go for it. It's a good one.

14:29 Yeah, so Brett cannon he he gave is interesting. Anyway, he gave a great talk a few years ago. And one of the icons about a did a keynote about basically burnout in open source developers. But this is a he wrote another article today or wasn't today it was in April but called the social contract of open source. But the highlight I really like his view every commit as a gift. So this is this is a really great Article, it's some interesting thoughts on what the contract is and the relationship and what of the relationship exists between a maintainer and the users of, of a project. And there's a really interesting analogy that he talks about of the open source developers like somebody that's just giving away free software, but they just have like a pile of USB drives in their front yard with a sign this is free. So you can drive by, you can pick one up. And if you need a new version, you can drive by and see if there's a new version there. And you can get one if you want. So that kind of analogy is interesting. Because if that was the case, the things that you would not want to do, you would not want to go up to the door and knock on the front door and yell at the developer, you wouldn't want to leave an angry letter in their in their mailbox, when they were

15:47 in their house, because you're mad. Yeah, that

15:50 feature TP their tree, you wouldn't go down into the middle of the street in their town and start yelling about how much how much you hate their software around an idiot, the developer is, you would treat each one as a gift, it's like free. And if it disappeared, if it didn't show up anymore, if there were no versions, you're kind of on your own, it's a gift, take it or leave it. He brought up an interesting quote from Emmanuel Kant, which I didn't quite get, but he kind of translated. And his translate his translation really is, when you treat a maintainer, as a fellow human being who may be able to do you a favor of their own volition, then you end up in an appropriate relationship where you're not trying to use the maintainer for something specific,

16:34 so you're not using them as a means to an end, you're treating them as somebody that's giving you a gift. And just like this attitude, and it's great. And Brian's real thought leader on this whole area, and that you work with, people are probably coming to consume some of this technology on a corporate side. And they, they might have different expectations, you know, maybe they're switching from, you know, Java or dotnet, where they had somebody to go to an ask, like, we need you to support us in this world. And we asked for a feature for fixing a bug or something. Here's our SLA to make that happen. Right? Is that something you run into any?

17:10 Um, well, they always, of course, they set up the expectation. So I'd like to say at least, I've been very lucky. So like, I think most of the clients I've run into do treat it like everything that we provide. for them. every interaction is a gift interaction. So we're very fortunate in that front. But I definitely know especially when you have the in, do hobby programming, that is especially where you see this come up, if you contribute anything, I always think if I ever, ever, ever want to contribute, then not to be scared. But if I put something out there in the world, someone's gonna expect me to support it sooner or later.

17:47 Yeah, yeah, I have a couple of projects that I'm like, these are really neat. And if I put them on pi pi, that would be great. But I'm not sure I'm ready to commit the energy and, and time to it. So I think putting it out there fully, in that way, signals some degree, like I'm making something of a commitment, at least, you know, some people will see it that way. So yeah, I've held back a bit. Oh,

18:10 I actually. So that's interesting. I was talking with Brett, actually, there's a testing code episode this we're getting released this week with Brett. And he, we were talking about packaging. And on one of my projects, I don't I don't list which Python version it is compatible with. But it really isn't compatible with everything. So I, I asked him about that. And he said, Well, if you only like, for instance, he said, If you only want to test on three, nine, and like three, eight and three, nine, just list those as well. Shouldn't I try to expand it to more Python versions? He said if you can, if you want to, but but it's really up to you. It's your code, you can share it however you want to share it. So that's it. Yeah. It's kind of a freeing mindset also. Yeah,

18:53 absolutely. Well, nice article. Brett, I have one more for you. And I'm pretty excited about this. I think this is a pretty cool idea. Brad, we spoken before about some of the tools that allow people to have private peipsi or ipi servers for several reasons. You know, one might be, we want to be able to publish, like one of our teams creates a package that we want to share throughout our other code, you could publish that internally not make that a public thing, but you know, have a private PI Server for that. But this is a pretty cool article I saw through this place called built in Africa within And it's about creating a portable pi PI Server for offline access. So if your Mac also if you're in some place, where internet is not super reliable, or maybe it's reliable, but it's really slow, and you want to work with things like all the packages on pi pi, you know, those can start to be a big problem or especially if you have got an or minute downtime or something like that. So that's what this project is about. And this person who vewy Seeley and nod love And I'd love you, if I'm sorry, I'm sure I mess it up your name, but they created this thing called pi pi in a box. And the idea is, here is a real simple way to take a Raspberry Pi and turn it into a portable pi PI Server and offline caching here, I guess, though, of all the PI PIP infrastructure. Pretty cool, right? I, apparently I got to use cookies. But you know, I'm talking. So the idea is, basically, it's a standard Raspberry Pi. And it's supposed to be super affordable, should be very, very little setup. And it uses a couple of cool libraries that might be relevant to people. Anyway, right. So you get this little 200 gigs, SD card, use mini repo, which is a thing that will clone pi pi, use PI PI Server to serve it up, serve up the packages, and then put nginx in front of the PI PI Server, because pi PI Server apparently doesn't do caching and is slow to like reread, if you'd like literally cloned pi pi would be like a little bit hard on it. So you can put caching in front of it for different search requests and install requests to make it much faster using nginx. So this article really just talks about all the things you got to do, you know, you start with the Raspberry Pi, you get a boon to on it, you configure DHCP, create an access point, you add routing to it, you clone pi pi with this mini repo library, that was pretty cool. It's just a CI, a thing you can get, which is cool that you set up pi PI server running on the stuff that you've cloned, and then you put up nginx in front of it to make it much, much quicker. Yeah. And that's pretty much it. You could even do like SSL over it. And then it talks about how do you integrate this into somewhere down here, talks about how you integrate this into Pip, you can pip install things, and so on. Anyway, I think this is a fantastic idea that this person put together. And yeah, I like it, I think it's it could be a huge benefit to people, not just in places where the internet is not as reliable or as good. But maybe you're traveling and your internet is super, super slow. While you're you're out of town for two months with your family or I was just camping with my family. And there was literally no internet, no cell coverage, nothing. And if I wanted to work on a project, it'd be cool to be able to have this if we were staying for a long time to still continue to work in reasonable ways. What do you think? What do you think about this?

22:23 I think it's amazing. Um, like, I know, I've I've traveled a lot in this, there's some times I used to take train rides that were 14 hour train rides, and every tunnel, every bridge, you have no idea what your service is gonna be like. So something like this would be so great to when you're sitting in a chair for that many hours, you can get a lot done. And if I had pie pie in a box, it would be so much easier.

22:45 Yeah, absolutely. Like Sam Morley out there says for traveling definitely. And then this actually, I believe was sent over by Jared chunks. Thank you, Jared. He says, you know, also on an intercontinental flight or when the power goes out or something like that. You know, there's a lot of people who are sort of living the digital nomad life doesn't work for me. There's too many people in the life in schools and stuff. But if you were, this seems like a really cool idea. The another thing to point out in here, there's a nice little comment that I can't make, I don't see any instructions for but this thing is a Raspberry Pi with Stack Overflow and pi pi cloned into it. So the two things you need,

23:27 oh, if I had those two things, I probably really not need the internet again for quite some time.

23:32 This would give it an entire new meaning to like a stealth startup and you come out of stealth mode means like, he would literally just reconnect to the internet. Yeah, I like this idea. This looks really, really useful for lots of reasons. And it's not very expensive. And to the extent that it can empower people who are struggling with these kinds of things, I think that's all the better,

23:50 I definitely need to try this, especially the the mini repo thing. I was taking a look at that looks great. And also it looks like you can boil it down and only, like only have certain Python versions. So if you're only going to work on Python three, you don't need to download all the two seven stuff.

23:50 He's like, all right. Yeah, that's super cool. That's a good idea.

23:50 So yeah, this is neat.

23:50 Nice. Alright, and that you got the last one, right?

23:50 Yes, I do. So this was a fun project that I just came across browsing the internet. It's a blog post by Kevin Martin Jose. And it was about films, human simulations from scratch using Python. In particular, this goes over implementing a color lookup table to an image with Python in like image processing, almost like in the film industry when you want to color grade something. And I thought, that's an amazing project. And the way this is broken down, is they kind of walk you through the pieces and build you up to getting to a more complex project and they explained the lookup tables while they're at it. So the primer, I'm going to give a real quick primer on the color lookup table. So basically, you have this magical 3d cube of color. color or some representation of color, and of all the colors in the world do you want to map it to a certain amount of numbers. So I might say, if I have whatever, many colors, I want to map it to just eight colors, and I want every red to be this red and every blue to be this blue and such. So what they end up doing is they just start with pill an image. And they just start with a red image. And then they make their own lookup table. And they're using NumPy. So they're using those arrays to make the reference table that they look for. And then afterwards, they say, Okay, I'm going to take all these red values, and I'm going to write a new method that's going to pass this image through and reapply the colors depending on what my lookup table is. So in the first example, it's just a red cube. And since they're using NumPy zeroes, their entire table is zero. So that comes out to black. So their little red square just turns black. And they're like, well, that's not quite as interesting. Yeah, so they actually take a specific address in that table. And they say, we want to reassign this one to green. So the next time they apply this, it turns to green. And then as you get through the article further and further, they take up this charming little truck from Rome image. And they say, Okay, let's map all of the Reds to green. And of course, well, that means all of the other colors end up being black. So it's, it's like those things in Microsoft pain. If you take a big image and you open it with two bit color, that kind of image,

23:50 you want to feel like you're back on a Commodore 64. Yeah.

23:50 So then afterwards, they say, Okay, well, now we've got to make this a little more detailed. So they make a more complex table. And magic happens in code and such, there'll be a link to this article. So if you want to read through it, it's actually a really interesting read. But then afterwards, they make a bigger table, and they try and get more color. So they bring it up to like, I believe, 12 representations. And now it looks recognizable. But then finally, now that they've gotten through all of this color, and the for loop, where they're actually iterating, through all of the pixels in the array, and then reassigning it and they use a scale. They're also using lumpy rindt, rounding it to round the scale to certain values. So they can say, Okay, I'm taking this entire block of color and assigning it to this color block.

23:50 quantizing it? Yeah, exactly.

23:50 I think they, they take the table size, divide by the number of colors, and then they reassign them as they need to. But then afterwards, they actually say, Okay, now we've gotten you through all of those pieces. And they have nice side by side. So you can kind of see Oh,

23:50 yeah, I noticed that about that article. That's so amazing that you have slider to like, sort of see the image effects like,

23:50 yeah, blog post. And that's just what the identity of the 12 it's not even that many colors. So it's amazing how the human eye just says, well, that looks good enough. But then afterwards, they're like, okay, now we've made our own lookup table. Now we can download lookup tables and start manipulating. So they reassign the value to green. So you get that truck, they just patch green into the red areas. And then finally, they end up using a hauled clots.

23:50 Yeah, so they actually they download a PNG version of this table. So instead of a 3d cube, and just numbers, it's an image. And then this is what I thought was the coolest part about all of this is they scroll, scroll, scroll, magic numbers. But what they basically do is they take that image, they open it with pill, they use the NumPy array to make that an array of values that they can use against, they bring in the image of the truck. And then they have all of this magic code there, that they reassign those values one by one, so it iterates through all the pixels, and then it spits out the filtered image. And then he'll put it back into an image form so you can see what you got. And I'll skip to the very last one. Oh, did I miss one? Oh, there we go. You can see it like how this is like less desaturated? Oh, yeah. So like, that's just that particular type that they applied there. And they thought there was one more in here somewhere. Oh, there we go. There's the green tin, where they just added a little bit of green to every color. And it was so cool. Because I spend so much time in the web Python world that it's so easy to forget that Python is it's got such a wider range of things that you can do with it and just image processing just blew my mind.

23:50 Yeah, I agree. This is super neat. And it's the kind of stuff that I wouldn't do that often. But it's it's also really cool to see you can do is kind of think Instagram filters type of thing, right?

23:50 Yeah, some of the image processing stuff is really cool. I remember in university, but a class where we took took the colors that we took it looked at the colors that the human eye sees best, and then tried to map those two colors that I like different animals see different colors better or different frequency ranges. So you can translate those and highlight, kind of translate other other frequencies and shift them so that you can kind of represent what an image might look like to a different kind of animal. Those are interesting things to the bird eye,

23:50 the dog guy, the cat eye.

23:50 Yeah, well, like for instance of birds and insects often see different senses. see different frequencies are flat, the flowers have some lot of flowers have patterns in them that we can't see because they're not intended for us to see. So very cool.

23:50 Okay, awesome. Yeah, Jerry Chung out there. I'll says always want to play around with images using Python but haven't gotten around to yet. This is a really neat example explore. I totally agree. And then a couple comments just going back, Tim Morley says you know about the API in a box, like for an on system package, you could actually do this in Docker on localhost. So if you just wanted it for you, he didn't want to share it. That might be pretty neat, as well. And of course, if you removed all the duplicate questions and the comments, and you're doing it wrong, you could probably just fit it on a Raspberry Pi, the stack overflows. And then Kelly Perez from teaching Python podcasts and former guests here, the super cool share, thanks even a simple thought of turning simple pixels into another color to be really nice for students. Because, yeah, she and Shawn teach middle schoolers how to do Python, which is awesome. Awesome. All right. Well, I think that's all of our items. And then Brian,

23:50 Yeah, yep. Do you have any extra information for us? Oh, you know, it, it was almost

23:50 almost an extra extra extra extra here all about it. It just I'll be quick, though. Do many of the Python things are available in new form, most notably, python 310. Beta one. I saw that in PI coders today. So thanks, Dan, and team for putting that out there. But yeah, this is the first beta of 310, which is sort of the stable version, right, which is pretty neat. Let's see, then. I covered HTML not too long ago, a couple episodes ago. And that's a really cool way to basically add JavaScript to dynamic front end stuff without doing almost anything. It's more like declarative stuff. But someone pointed out that hyper script is sort of a companion type thing. It's pretty new. But really simple. You can say like button on click toggle this CSS element. And yeah, super, duper neat ways to add little bits of interactivity to your web page without really doing a ton of JavaScript stuff. And apparently, it is accompanied with a haiku, which is always cool. And then lastly, is not quite last, maybe last also want to point out that we just released a new course I talked about it coming, but now it is out getting started with dask. So if you wanted to take pandas code, and run it on all 16 cores on your machine, or you don't have enough memory, but you had this space, just to load up the data, or you want to run it on a cluster vasque is like the next level scaled out pandas. So here's a free course I put together with Matthew Rocklin, and team over at coiled on working with desk just getting started with it. So people should check that out if they want. And I believe that is it for all of my extra items. Either view, or anything else. Oh, I have something. Yeah. Awesome.

23:50 Yes. So the Python web conference 2021 happened in March. But we're getting a head start on the Python World Conference 2022. And their call for papers is open. So that's a conference that's put on by six feet up. And it focuses on Python, particularly in the world of the web. And that's actually where I met Michael Kennedy, doing our panel or fun quiz show panel. It's also where I've met like a lot of the Python nieces that have come to call my friends and in the community as a whole. So just want to say if you're interested in speaking, I will say this, and it probably seems ironic, since I'm on a live cast right now, I'm an introvert. I'm really shy. And I usually don't like speaking in public. But I always push myself and try and give a talk. Just because if you're passionate about it, you'll probably find somebody who's just as interested in you can learn and teach both the same way. So there's a variety of different topics. The we have speakers from all over the world. It's a great time. So whether you attend or just put in a talk, I hope to see you there.

23:50 That's a great shout out and this conference is quite large. You said you're seeking 60 speakers for topics related to like this big long list that yes, finding the link. Yeah, I was like four or five days, something like that. It was Yeah,

23:50 it was five days. They did half day, so you didn't get as much fatigue. That was really cool. I like that and four tracks and I know they even had a culture check. So even if you're not technical, they're still just with the Python community and culture, things to listen to.

23:50 Yeah, yeah, very nice. I want to second your thought about encouraging people to speak, even if they're introverts are shy or they don't feel like they're ready. A lot of times, just putting yourself out there can really help amplify your career. And it could be something like here's how I look. Learn to become a Python web dev. And these are the things that were struggles. And these are, how I overcame them like that might be really helpful to a large group of people. And just putting yourself outside of your comfort zone can make a big, big difference. And here's a pretty low stress, low risk way to do it. Yeah, I think,

23:50 I guess I want to reiterate that I think one of the things about either blogging or speaking in a conference or something, as a developer, and especially an introvert, I'm often looking just at the people that are better than me. So I'm looking at looking at learning. So either writing or talking gives you a chance to turn around and see how far you've come and start teaching some of that back. And I think it's good for mentally just to help people realize they've come a long ways. So

23:50 yeah, for sure, for sure. Alright,

23:50 funny.

23:50 Do I Do I sound funny? Okay. So this one, I found out about it, because of our friends. So Philip, who was just on the last episode, and he tweeted, This changes everything. And like I says, so this comes from Stack Overflow. It's a little bit old, but it's it's a goodie from April 1, it says the reviews are in the key is flawless. The key is a new keyboard from Stack Overflow, and it comes in this super tiny box. And it's here to help programmers code better. And so there's this video, I don't think I can get the I don't think I can get the audio into the streets, you have to watch it. I'll link to it. But the idea is, you have this keyboard here. And it only has three buttons. It has a Stack Overflow icon, which is like the command or the control button and that it has a C and A VI. It has a really beautiful like whisper click sound. And yeah, it says free for your keyboard with the unlimited copy and paste. The key is the name of the keyword. What do you think?

23:50 Oh my God, that's, that's great. Like, if I could have that in my normal keyboard, just so I know. It's like, Okay, it's time for some StackOverflow type. Copy, Paste. Exactly. I

23:50 mean, it's obviously a joke, but it could be kind of like, Alright, I'm going into the mode, I'm using the special three key keyboard. Let's do this.

23:50 Yeah, if you could have like, whatever you highlight your code, it just automatically looks that up and Stack Overflow. And then a key to copy the answer the top answer and yeah, there you go. Yeah,

23:50 exactly. Just automate all of programming.

23:50 Yeah, you can even tie this together that Stack Overflow in a box thing. I'm not sure I'm not a huge fan about the touch bar thing in the max. They're fine, but I hate them. But I don't really love them. But it seems like somebody could program one of those touch keyboards have just this. If it sees you're in a browser with that URL, it just it switches to just these three keys. Yeah. Fantastic. All right. Well, I think that is that's it. That's the show, Brian, thanks for being here. As always, so great to have you here. Thanks. Good to be here. Yep. Bye, everyone. Thank you for listening to Python bytes. Follow the show on Twitter via at Python bytes. That's Python bytes as in BYT s and get the full show notes at Python bytes dot f m. If you have a news item you want featured just visit Python by threat FM and send it our way. We're always on the lookout for sharing something cool. On behalf of myself and Brian Aachen, this is Michael Kennedy. Thank you for listening and sharing this podcast with your friends and colleagues.

Back to show page