Python Bytes - #308 Conference season is heating up

Episode Date: November 1, 2022

Topics covered in this episode: It’s PyCon US 2023 CFP time Any.io How to propose a winning conference talk Sanic release adds background workers Extras Joke See the full show notes for this e...pisode on the website at pythonbytes.fm/308

Transcript
Discussion (0)
Starting point is 00:00:00 Hey, Brian. Hey. I see that you've come wielding a staff of mighty power. I was cleaning my office and I found the Python staff. So I'm like, I'm bringing this out for the show. Yeah. That was when we used to go to conferences. Do you remember that?
Starting point is 00:00:12 Like people, they'd all get together. I think they might be making a comeback. I think so. I think I might be attending some conferences in the future. Awesome. So am I. I'm looking forward to it. Before we get to our topics, I also want to say thank you to new sponsor this week, or not totally new, but new for recent times,
Starting point is 00:00:29 Compiler, the podcast from Red Hat. So awesome to have the support from Red Hat. We're going to be telling you more about them later, but Brian, let's just mix it up. Let's make it different. This is episode 308, recorded November 1st, 2022. I'm Michael Kennedy. And I'm Brian Atkin. Let's do it. I did want to talk about PyCon. Yeah, so PyCon is coming up. So when is it?
Starting point is 00:00:52 I wrote this down even so I could remember. It's April 19th to the 23rd. But we bring up PyCon US because the site just launched recently. So pretty excited about that. Linking to a blog post about the site launch and the call for proposals. So again, it's going to be, let's just hop over to the big one. It's kind of a cool look to it now. It's an homage to some of the old ones.
Starting point is 00:01:22 Because there's, what's the 20th anniversary special? So it's some of the old ones uh because there's um what's the 20th anniversary special so it's some of the old pictures so you can oh i see so it's a bunch of tiles and the different tiles are actually like the hero image or whatever yeah from that year or bits of it or something so yeah um it's it's it looks cool um so pycon us is going to be April 19th through the 23rd. Well, that's when the talks are. It's longer. So there's tutorials ahead of time, and then there's hack days or whatever you call those afterwards. So if you can stay longer, awesome.
Starting point is 00:01:56 But the talk part is the 19th through the 23rd. Salt Lake City, the site looks great. The call for proposals is up. And that's really kind of what I wanted to highlight is so people start thinking about your talks. And, of course, yeah, we've got some more information about talks coming up later in the show. But the deadlines, what are the deadlines? So we've got the CFP just opened, just opened the 18th. And then it's through December 9thth so um but don't wait until
Starting point is 00:02:26 december get those get those in early um so anyway yeah excellent i think i'm gonna submit some because i kind of think i want to go to python this year uh i didn't go last year are you what do you have you thought about it yet michael yeah i've definitely thought about it i'm very much considering going you know for me it's like, is TalkPython going to get a booth and have like a bunch of presence there? In which case going to the conference means hanging out at the booth for three days, which is kind of awesome, but also it's like not exactly a conference. Or maybe I'll go low key and submit a talk and then just like cruise around the halls. I haven't decided, right? Do a bunch of podcast recording live there, right? So there's,
Starting point is 00:03:03 there's trade-offs to both obviously. So I I got to think about what I might want to do. Yeah. I think I'm going to submit some talks, but one of the things I wanted to bring up with submitting talks is to not, to do it because it's a good experience to submit a talk. Even if you don't get the talk, it's the process of going through that submittal process. I think it's, it's, uh, it's a growing, a growth experience, even if, even if it gets rejected and don't feel bad because tons of people submit talks and they can't accept all of them, obviously. So yeah. Yeah. Anyway. Cool. Cool. Well, yeah, that'd be exciting. I actually want to do a bit of bookkeeping before we move on. Oh yeah. It's a good idea for people who typically attend our live stream recording, which we really appreciate that.
Starting point is 00:03:47 That's awesome. We see a bunch of familiar faces in the chat already out here. And we do that live on YouTube. And then we polish it up and send it out to the world over the audio channels. So I think you can get a lot out of the video version. That said, we're moving the video version, right? We are. And it's my fault. So I've got a periodic meeting that happens in my day job and it happens at noon on Tuesdays.
Starting point is 00:04:15 And that's when we usually used to record. So we're just shifting it a little bit. So we're going to do 11 a.m. on Tuesdays. Exactly. Just an hour earlier on Tuesdays. So I want to encourage people to go to pythonbyte.fm slash YouTube and it'll take you over to our channel. If you subscribe and get notified, you'll just get a pop-up when we're streaming live. And if you've got time, you can drop in.
Starting point is 00:04:38 You don't have to plan too much about it. So anyway, encourage people to be part of the YouTube experience here because we put a lot of stuff on the screen and it makes it even a little bit cooler, I think. And while we're bookkeeping, and it's 11, if you can make it 11 a.m. on Tuesdays, maybe you want to be on the show. So reach out if you'd like to be a guest host. We still do those. Yeah, exactly. I do. I wonder if I got anything to talk about. Let's see. How about Any.io? Any.io is a framework that lets you build async things. And when you first hear about it, it looks like it's kind of for making network libraries. Like
Starting point is 00:05:13 if you were making a low-level network app and you wanted it to be concurrent and asynchronous, like, well, you could use Any.io, which would be cool. And it has the ability to be, how did Alex, the creator of it, put it? Something like a framework that goes above the async IO frameworks. So it doesn't, like, if you think of Trio or Curio, those are replacements for async IO. Whereas any IO will run on top and integrate with async IO, or it will run on top of and integrate with Trio. So you can kind of add it into whatever you're doing, which I think is pretty sweet. But I think its little elevator pitch or whatever here sells it a bit short. So I just wanted to talk about some awesome building blocks that people can use from any IO that I
Starting point is 00:05:55 think would make them make it really fun. All right. So one of the 3.11 features actually is this idea of task groups. And they also have this concept of task groups over, they had it originally in Trio, and then it comes over here about these groups. And what you can do is you can basically create a task group, do a bunch of work on them, and then when it exits that width block, it's all finished. So if you're not ready to go to 3.11, but you want to have task groups, here's one way to get it. So that's one thing that's kind of cool. It supports cancellation and timeout, which is important, especially as a group of related things. But one of the things I want to touch on here that's pretty cool is the synchronization primitives.
Starting point is 00:06:39 Remember a few weeks ago, Guido wrote that article about people at a table and semaphores and stuff? Yeah. Yeah. So yeah, exactly. So there's a couple, a couple of those types of primitives weeks ago guido wrote that article about people at a table and semaphores and stuff yeah yeah so yeah exactly so there's a couple couple of those types of primitives here that are really neat so they've got events which allow you to just run up to a point and wait until some other async io thing comes along and says now go and these are similar to the events that are built into the standard library but they're not reentrant and they have a little bit, they claim to have a better way of presenting a race condition and a little bit closer to Trio.
Starting point is 00:07:14 So there's those. And one of the ones over here that's cool is capacity limiters. I think I did talk about this one before. So you can go over here and just say, I want to only do, in this case, the example says create a capacity of a number of two. I only want to do two things at a time. But yeah. Then let's see. Another one is this working with threads.
Starting point is 00:07:33 Pretty awesome. So you can, given some function that is just a regular function, you can turn it into async, but actually have it execute on a background thread with two thread. I'll give it that. And then you can await it just like other things that mix into your async IO world.
Starting point is 00:07:50 You can also do it in reverse. If you're over in a thread and you need to run it on the async event loop, you can also push it. You can say from thread and to thread, right? The to thread is the, I believe the one that, no, the from thread will push it back, back to the async event loop, which is cool. Let's see. Also subprocesses are pretty awesome. So you can do,
Starting point is 00:08:10 like you have this idea of running your code in a thread because it's not async, but you want it to be kind of concurrent and mix it in. You can do the same thing with subprocess. And this is super cool. So you can say just run process and then it becomes something that's a task that you can await along with your other things. Nice. Which things nice sweet and then you can even go as far as to open the process
Starting point is 00:08:30 and then like asynchronously work with it so here's an example of where you open some process and then you create a text receive stream from its standard out and you just cruise around and read from it while it's running awaiting all the time wow that's neat right yeah so it just it grabs it while it's printing out so yeah so basically what i think it does is it creates a stream that you can await and then it's just listening for process messages to come to come through and then it you know like the task kind of partially completes right because it's a an async for loop so you asynchronously wait for an item to come in and then it kicks it one time around the loop and then it waits again.
Starting point is 00:09:08 And yeah, it's pretty cool how it juggles that. And then finally here, the file support. So you can now, instead of saying open, you just say in the IO.open file, but you can async await it. You know, it's crazy. Async with await. There's a lot of crazy stuff happening. But then you can awaitync await it. You know, it's crazy. Async with await is a lot of crazy stuff happening, but then you can await the reads and so on. Now there's not actual asynchronous behavior
Starting point is 00:09:32 in Python. So how does it manage this? Basically it creates a wrapper that uses threads that does the file IO, and then it just sort of coordinates the communication of the IO back and forth on the threads. As soon as it comes back from IO, which should release the GIL because it's off doing its own thing in the OS. So it should be pretty good anyway. It looks like maybe I haven't used this, but it looks like it makes things like subprocesses and threads and normal async and await all kind of look the same. Yeah, exactly. It's like a unifying API across the different scenarios, which is really cool. Once you kind of wrap it, you're like, oh, there's just a bunch
Starting point is 00:10:10 of tasks. I just call a wait on them. Good to go. Nice. And then possibly it wouldn't be too much if you had to change your mind and have something be a sub-process or a thread. Instead, it might not wreak havoc on your design too much yeah exactly you almost don't even have to worry about it as long as the long as the parameters are um can be passed right they've got to be a little bowl to go across and to go across the wire there but as long as they can be passed the process as well as to a thread then like you just get a task back that talks to you it's cool i'll definitely take a look at this. Just before I move off of this,
Starting point is 00:10:47 I just want to say also, I interviewed Alex Grunholm over on TalkPython. When was that? September. Actually released it in October, though. So effectively October, or a couple of weeks ago. And people can check that out
Starting point is 00:11:00 if they want to dive deep into it and hear. Nice. Anyway, I feel like, yeah, yeah, thanks. I do just feel like NEIO sells itself a bit short say no it's like a network library and like oh i don't need a network library but no there's like all these little cool building blocks in there pretty cool um have you used it is it uh pretty nice to use i've not used it i'm still working on on getting my interesting projects more async capable you you know, before, like, for example, getting some of the web stuff in the front
Starting point is 00:11:28 and it can be more async and so on. Then I can start bringing these fun ideas in and more Unreal projects. Back to your topic real quick. Brandon in the audience says, if one was looking at submitting to PyCon, what's the difference between a tutorial versus a talk? Time?
Starting point is 00:11:43 What else, Brian? Hands-on exercises? Right, so tutorials are, what, like three hours hours or something i can't remember how long they're um and uh and okay so they're three hours they're also at a different time so they're like not on the same day before or something i mean yeah i think they're like two or three days before i can't remember how many days before they they run them i shouldn't look this up yeah but they're before the conference so you have to, you have more hotel tickets to get for instance,
Starting point is 00:12:10 but since it's three hours and a talk is what, like 25 minutes or something. Um, since there are more work to prepare for a tutorial, you get paid for them. You get a little, a little stipend, but also people have to pay to talk, go to the tutorial.
Starting point is 00:12:23 So, you know, um, but I think there are cool things. I know a handful of the people we know do, like to do tutorials if they can. Yeah. I think it's also a lot more guiding people through hands-on coding than it is. I'm here to like present. Yeah. It's not a three hour. It shouldn't be a three hour presentation.
Starting point is 00:12:40 It's like we're going to present something and then have exercises for people to work on. People bring their laptops in and stuff like that yeah it's good um but then there's also uh one of the things that people forget about is posters posters are also pretty cool um on the last day of the con sunday um i think it's on sunday they uh have the posters up and posters in the job fair right yeah i think so the job fair and the posters at the same time. And it really literally is a poster. So if you get one of the poster spots, you get a section where you get to have your poster up and you can describe whatever you want on there.
Starting point is 00:13:15 Hopefully it's fairly entertaining to look at and read. And then you get to hang out. So let's say you've got a project you want to talk to people about. It's not really a presentation. You have your poster up and you just hang out there and then people come around and ask you questions. Yeah. That's pretty neat. Absolutely. Yeah. Yeah. If you want to have a chance to just have a conversation around something you're working on, but not go all in on a talk. I tried to submit a
Starting point is 00:13:36 keynote once. It turns out you can't do it. Oh, are they, did they ask people or something? Keynotes are invite only, Michael. You can't submit a keynote. I'm like, well, I'm submitting one. You can turn it down if you want. They did. It's all right. Okay. Now I want to tell you about one more thing. Awesome. One awesome thing before we move on, Brian, I'll tell you about compiler podcasts from Red Hat. So super cool to have Red Hat come along and supporting the show. And, you know, like pretty much everyone listening, you and I, we're fans of podcasts. And so it's awesome to have this compiler from Red Hat supporting the show.
Starting point is 00:14:10 Really, really good show that they have themselves. It's very highly edited and polished. So that's excellent. If you want to stay on top of tech without dedicating tons of time to it, you can listen to the compiler. They present different perspectives and topics and insights from the tech industry,
Starting point is 00:14:24 free from jargon and judgment. If They want to discover where technology is headed beyond the headlines and create a place for new IT professionals to learn, grow, and thrive. They help people break through barriers and challenges, turning code into community at all the levels of the enterprise. One recent interesting episode is the one about the great stack debate. I love, love, love talking about, talking to people about their architecture and the trade-offs and choices that they made and what the costs and challenges and, you know, it's smiled and frowns that result from that. So you can definitely check out the great stack debate. That's a fun one. They answer the question of whether software is like an onion or like it's lasagna or whether it's some other more
Starting point is 00:15:02 complicated dish. So you can check that. That's a lot of fun. And it's actually- Yeah, go ahead. Looks like the most recent one's about testing too. I better check that out. Yeah, you got to get in there. They have a whole series on the compiler, the compiler series on software stacks.
Starting point is 00:15:17 And I guess testing is an important part of that. That's awesome. Yeah, so learn about compiler at pythonbytes.fm slash compiler. The link is in your podcast player show notes. I know you could just search for Compiler and sign up, but follow the link and click on your podcast player there and subscribe that way.
Starting point is 00:15:32 It would really help us let them know that you heard about them from us. So thanks to Compiler for keeping this show going strong. All right, Brian, what's next? Well, I was going to talk about conference talks. So some more. So I think everybody should try because I actually I was terrified to do my first talk and I think it was a good experience. So Reuven Lerner, Reuven Lerner, friend of the show and all around awesome guy, wrote an article called How to propose a winning conference talk. So we're linking to that and what there's a lot of, there's a lot of articles on how to do a talk. And what I like, what I really like about this is it's short. Um, um, there's a, there's a few things that he
Starting point is 00:16:15 focuses on. Uh, one of the, the first is like coming up with ideas and, um, he like part of his audience is also other trainers. So, um, but I think that more people are trainers than you realize. So maybe you're, maybe you actually teach people like Reuven does, or, you know, you have a training gig, but you could teach mentor or lead or coach in other ways, just by being the resident Python guy or girl or woman or whatever at your company. And when people come to you and ask questions. So one of the, some of those things are to come up with a list of things to talk about. Uh, what questions do people ask you all the time? Um, those are great things to write talks about maybe, uh, what knowledge, what knowledge do you think people should have that
Starting point is 00:17:00 they just don't know to ask about? Um, also great topics. And then also, where do you see that people just don't seem to get it? And so somehow they're not getting some concept. They don't quite get it from whatever they've sought out. Those are also great things. And if, and if that, if you're still stumped, he says, well, check out stack overflow. What kind of questions come up there all the time? Those are, those are good things to maybe give a talk about. Hey, I got a cheat code for people listening. Okay. What awesome thing did you hear about on Python Bytes that was like new to you?
Starting point is 00:17:33 And there's not a talk at the conference. I'm serious. Yeah, exactly. You know, rewind a handful of episodes and go through and go, that sounds interesting. And, you know, spend a few hours researching it and come up with a talk. Why not? Right, right. It's interesting to me. I want to learn it. And, you know, spend a few hours researching it and come up with a talk. Why not? Right, right. It's interesting to me.
Starting point is 00:17:47 I want to learn it. And then I could present it. You know, you could test drive these things also at smaller regional conferences. You could test drive them at meetups. You could test drive them as like a YouTube video that you post somewhere or even a blog post you write. Like there's a bunch of, let me take a shot at it and then build some confidence and then submit it to Pycon us or europe or whatever yeah um he goes on to talk about uh using um uh using an outline um and to in a lot even if
Starting point is 00:18:14 you don't go for a talk maybe i don't remember if i think pycon us does ask for this but some don't but even if it's not asked for uh come up with an outline with times. And that part freaked me out. I'm like, how do I do that? But his example is fairly not scary. It's kind of the bullet points of the sort of stuff you're going to talk about and how long you intend to talk about it. And this is actually really important. I when I when I finally embraced this and went, I got to think about this. Um, and I kind of do this hand in hand with this, the next step, the next step he said is you don't just need, um, an outline, you need a summary and you kind of need a short summary and a long summary
Starting point is 00:18:55 possibly. Um, and that's, and you should include, I can't remember where we write this, wrote this down, but you should include, what is it? The value that people get, what benefit they'll get from your talk and what knowledge they'll get, what they'll have when they leave your talk and how will that help them? And think about those. And that while you're putting through your outline together too, as to where you want to spend your time and, you know, be paying attention that you do want to have some wrap up time possibly, and you might want some introduction time. So include that and think
Starting point is 00:19:30 about those times. And then you've got just these little tiny one or two minutes, one or two or three or four minute segments that you've got to come up with words for. And that's actually a lot easier to deal with than thinking I got to come up with 25 minutes. Right. Yeah. Like an example here, it says generate warnings. Two minutes. Could you spend two minutes talking about generating warnings?
Starting point is 00:19:52 I imagine you could. Yeah. And if it's important, put throw throw some time into it. But the one of the things I wanted to highlight on this, I really like this write up. He also a couple more things. One is submit the same talk to multiple conferences. You can do that and you don't even have, it doesn't even have to be new. You could have already submitted, presented it somewhere and it might already be on YouTube. And you're like, really? I can do that? Yes, really. You
Starting point is 00:20:21 can do that. Some people give talks at multiple conferences, and it's fine. You don't have to come up with a brand new talk for every conference. The other thing is the list of topics. My mistake the first time I gave a talk was I did this. I went, what are all the things I'd like to talk about? And then I crammed them all into one talk. This is not what you want to do. You want to pick like, you know, one focused thing so that you can go at a reasonably comfortable pace. You don't want to be talking a hundred miles an hour. People can't keep up with you. There are some people I'm don't get me wrong. There's some people that can talk really fast and pack a lot of information and they're really good about it. And it's still entertaining, but I think the average person would be better at trying to go
Starting point is 00:21:04 at a little slower pace. Yeah. Yeah. I totally agree about that. And, you know, that could be your, like, you could come up with that list of all the things you want to talk about. And then that could be the source for two or three talks. Yeah.
Starting point is 00:21:16 Yeah. God, this is too, this is kind of like, this all stuff seems to be about fixtures. So let's do like five things that are awesome about fixtures you didn't know. And here's like why you should care about structuring your, I don't know, whatever. And if they get rejected, but from every conference that you submitted to, you're still one because you did all that work. Just turn it into like a blog post or a YouTube video or something. Yeah, absolutely. A bunch of good feedback from the audience.
Starting point is 00:21:42 John out there says a great place to give a talk is at the user group. Kind of matched exactly the same time I said that. So definitely agree in there. Brandon says, give it a lunch and learn at your company. Great idea. Yeah, that's a really good idea. And casual viewer number three
Starting point is 00:21:56 says my team has a show and tell like meeting on Fridays, a show off stuff people can talk about that'd be impactful. Also a good place. Yeah, a lot of good ideas. If the venue doesn't exist, you may well be able to create it. And you might get, you might get promoted because of it. Cause you're like, Oh, people will know that you're the expert in the company that they didn't know before.
Starting point is 00:22:14 It's good. That's right. That's right. All right. I want to come back to something that I know we talked about before, but a feature of it. So we talked about Sanic when it came out, there was Sanic and Gepronto and a couple other things. This, I believe, predates FastAPI even. And it was one of the very first high performance async frameworks for Python. Very cool. I hadn't really been tracking it that much lately,
Starting point is 00:22:38 but if you drop over by the GitHub, github.com slash sanic-org, go to Sanic, 16,000 stars, 1,500 forks. It's going really strong. I, I totally did not, I've not been tracking it well enough. So this is, this is really fantastic. So cool way to build asynchronous web apps in Python. It's, it claims to be unopinionated and flexible. It is the plastic that you build your APIs and your web apps out of as you like, rather than being very structured
Starting point is 00:23:09 in the way you put stuff together. So if you're looking for that good, it's, like I said, super fast. That was its original selling point and apparently used by millions of people, which is pretty awesome. So what I want to point out here is not Sanic exactly, but rather a new feature that was
Starting point is 00:23:26 shared with us by Felix. And Felix pointed out that Adam, one of the maintainers, just added this concept of a worker manager into the new version of Sanic. So if you want to run background work, like I want to send an email or I want to send and do other like lots of processing or computational work in the background, it's going to block up not just a single request, but it's going to block up potentially the whole web server. You get a bunch of things that are querying tons of data or doing a bunch of computation, then all of a sudden or even calling other APIs, potentially that could log up the server, especially if it can't be done asynchronously. So they added this concept of kind of like a lightweight Celery type of thing where you can push the work off to it
Starting point is 00:24:12 and have it run in the background and manage that. Okay. Step four is just an API inside of Sanic and it starts a sub process that hangs around and does that background work for you. So it's like, you don't have to manage another server. You don't have to set up Celery or Redis and then some worker mechanism
Starting point is 00:24:28 to process the messages coming out of there. You just kick the work over to this worker manager and off it goes. Yeah. That's pretty cool. Pretty cool, huh? Yeah. Yeah, and the way that it works is
Starting point is 00:24:38 basically you can hook into some lifetime events. Like you can use a decorator app dot before server start. And you can go make sure that there's a queue that can be used for the communication across that. And then you can handle on request. And then when a request comes in, you can like push work over to it.
Starting point is 00:24:57 Yeah. Anyway, you can even get it to do like some cool little printout of like the status of what the workers are up to and so on. So anyway anyway pretty neat uh if you need to run asynchronous work and you're looking at a web framework you know maybe check out sanic it's got this this cool feature and it's got a lot of nice async and await features as well
Starting point is 00:25:15 cool nice all right uh that's it for our main items isn't it i guess it is yeah uh before we move off this real quick casual viewer says Viewer says FastAPI is something similar called Background Task. Okay, good to know. Yeah, and you can also build those on your own using like multi-processing or something. Or any IO. Or any IO, for sure.
Starting point is 00:25:35 One of the real challenges of all of those like roll your own things are usually what happens is you farm out your web server. So for example, on TalkP on talk python training i think we have eight worker processes that are cruising around waiting and like as far as they're concerned they are the website right and if all those things start kicking off background work and they start starting their own processes it'll be like why are there 17 worker processes cruising around i don't know what's going on so yeah it's kind of cool to have something that's a little more
Starting point is 00:26:03 structured uh like that all right uh extras you said you got some extras tell us about them uh well stuck on the presentation thing um but uh i ran across this uh article called create presentations with from jupiter notebooks and um i just wanted to link to it if you if you're thinking about doing a presentation and you want to possibly just use your Jupyter notebook, apparently it's built in. I didn't know that it was just built in. So this just walks through the built-in features of how to. So you've got a Jupyter notebook. You can even do some Markdown.
Starting point is 00:26:37 You can do Markdown Jupyter anyway. But there's ways to have both code and Markdown together with this, um, uh, with iPython display markdown, which is cool. Um, and then it, it goes through a couple more examples of things, but then there's this, uh, dropdown. You can just say view, uh, view cell toolbar slideshow, and then you select, um, you select slide for each of your, uh, little cells and they become slides in your presentation. And then you can use the built-in NB convert to convert it to a presentation. So just got an HTML presentation right there. So that's pretty neat.
Starting point is 00:27:19 You can say slide. You can say it's a sub slide, a fragment. You could skip and you could even make it notes just for like a presentation view. That's pretty flexible per cell in Jupyter. That's awesome. And then there's ways to either show it by default, it shows the code, but you can have it hide the code apparently. And then if you want to be able to, instead of doing the command line thing, if you want to toggle back and forth while you're developing it, they're recommending using the rise extension and i tried i'm like is it really this easy and so i tried it out and sure enough um it's just i just went through some of the examples and it's really pretty cool and with
Starting point is 00:27:57 rise we got like these examples and then you can just with rise you can just select this little this little uh icon here it looks like a. And it just enters into slideshow mode. Oh, nice. Within it. What happens if you hit space in that mode? Does it automatically take you from one to one? Okay, cool. Very nice.
Starting point is 00:28:16 And you can do the arrows back and forth and stuff. So it doesn't look as good as the actual presentation at the output. But especially if you're trying to toggle back and forth to see, you kind of, it doesn't look as good as the, the actual presentation at the output, but especially if you're trying to like kind of toggle back and forth to see, isn't it like, is my, uh, is my stuff too big? Like right now I would totally alter this because it, it looks too, it doesn't look good right now. Um, but that's kind of what you do with slideshows is you sort of work, work with them until they look good. But anyway, so this something i wanted to share it was just this um if you want to try using jupiter for your presentation here's a link kind of maybe take a look at this article um the other thing
Starting point is 00:28:55 i wanted to point out as an extra is uh um what python pi test as 7.2 pi test 7.2, PyTest 7.2 released, I don't normally like, I mean, I'm personally, I'm like ready to try every new release that comes out. But why I'm bringing this up is there's a couple of things that bit us at work. And I want to, if they might bite you, the PyLibrary is now separated from PyTest. So you don't get the PyLibrary by default when you import, when you're installing PyTest. So you don't get the PyLibrary by default when you're installing PyTest. So if you are using the PyLibrary, you just have to make that one of your own requirements. You were cheating and not stating it as a requirement
Starting point is 00:29:35 because it'll always be there, we know. I don't think we were using it at all, but I think we may have declared like PyPath or something like that. Yeah, whatever. A couple more things that I think we may have declared like, like PyPath or something like that. Yeah. Whatever. A couple more things that I think is neat. A few releases ago, I added the test paths so that you can add import path to your,
Starting point is 00:29:56 for where, like where your source code is. And for this release, they added a shell style wildcard support. So that's pretty cool. And there's a whole bunch of cool features. So yeah, check out PyTest if you're up for it. Oh, one of the things I'm really glad, they deprecated nodes.
Starting point is 00:30:14 I can't remember where it's listed here. But they're not using, so setup, that's just the keywords setup and teardown. You could define functions. You were able to define functions setup and te tear down, and those were run automatically, but those were run automatically because they were part of the nose support. So even if you don't know what nose is, if you're using those, those are deprecated. So stop using those. Um, there's other ways to, to do set up and tear down with PyTest. And so check that out if you're using that. And I'm, and then the first edition of the PyTest book, I actually talked out if you're using that. And the first edition of the PyTest book,
Starting point is 00:30:45 I actually talked about setup and teardown. And luckily in the second edition, I took those out. So yeah. Very good, you saw that coming. Awesome. Awesome. Cool. Bit of follow-up on your Jupyter item here.
Starting point is 00:30:59 Henry Schreiner says, you can also use this in labs in JupyterLab, not the old notebook. So if you want to use RISE live editable presentationsupiter lab not the old notebook so if you want to use rise live editable presentations that still requires the old notebook same okay okay so you can use jupiter lab for presentations too awesome yeah yeah very cool and then also brandon points out that background task from when we credited fast api may actually come from starlet for those of you don't know fast api is a layer on top of Starlet. So a lot of times what people perceive
Starting point is 00:31:26 as a FastAPI feature is actually a Starlet feature. And it also, Henry says, it also now, the notebooks now warn you if you return from a test, sorry, now also warns you if you return from a PyTest function, this would be an error in PyTest 8. Okay.
Starting point is 00:31:43 Yeah. Well, yeah, apparently some people were like returning true or false from their test functions term from a pytest function this would be an error in pytest eight okay yeah well yeah apparently some people were like returning true or false from their test functions and and wanting that to like indicate whether a test passed or failed don't do that don't you just parse the print statements no it's an exception if an exception happens that's a failure so of course all right i got a few extras and we'll bust out some jokes these are quick rich the colorizing formatting awesome 2e foundation is great now available on piescript so rich uh yeah you just you can just do rich things and just you know print the stuff all out
Starting point is 00:32:19 and guess what it now comes out as like colorized output and HTML, I guess. I'm not sure where the destination is going to land, but it says REPL. So I'm guessing maybe it prints out in the REPL there. Anyway, there's a bunch of notes on how to use Rich in PyScript. So if you like PyScript and you're tracking that project and you like Rich, put them together. Also, we talked about YouTube videos and you could make a talk. You could just make a video. So I did a Python 3.11 in 100 seconds video that I released yesterday, the day before. I think it was yesterday, actually.
Starting point is 00:32:52 Anyway, people can check that out if they've got 100 seconds to spare and they want to know what's cool about Python 3.11 and why it's neat. That's fun. Links in the show notes there. All right. Ready for some jokes? Yes. Okay.
Starting point is 00:33:03 So here's one. It's titled Laughter in Linux, but there. All right. Ready for some jokes? Yes. Okay. So here's one. It's titled Laughter in Linux, but it's about Windows. So you might have to go back a ways for people to get this joke, but let's see. I know you spend some time in Windows, Brian. Let me see what you think about this. So here's like a sort of a karate master type of scenario. And like sensei says, just time for you to look inward and start asking yourself the big question what happened to the a and b drive because it's all you see right we're doing things to make that noise pretty much if it's not a c drive it makes noise it's my understanding from my history some of them make that uh sort of a disky noise other like a cd seeking noise
Starting point is 00:33:44 but there's always a noise associated with a non-C drive. I know that's not always true, but it's fun. All right, other one. This one is not about OSs and disks, but rather databases, and it's dating advice. So here's a woman talking to a clearly nerdy programmer type, and it says, what do you need for a good relationship? The guy looks at her, obviously primary keys.
Starting point is 00:34:07 Primary keys. Yeah. So bad. Anyway, that's what I got. Dude from the IT crowd. Okay. Yeah. Yeah.
Starting point is 00:34:16 I need to watch more TV to fully catch the memes, don't I? So. Yeah. Cool. All right. Well, always fun to have you here and do the show. Definitely. Thanks. And thanks everybody for showing up an hour early. I really appreciate right. Well, always fun to have you here. Thanks. And thanks everybody for showing up an hour early.
Starting point is 00:34:29 I really appreciate it. Yeah, absolutely. Try to be the, we'll try to stick to that time for a while and I guess we'll let you know if we don't. All right. See y'all later. Thanks.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.