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


Transcript #230: PyMars? Yes! FLoC? No!

Return to episode page view on github
Recorded on Wednesday, Apr 21, 2021.

00:00 Hey all, Michael here. Thank you so much for listening to this episode. Before we jump right into it, I just wanna make a quick announcement, I'm sure you've noticed that we've talked about certain people being on the live stream or the live chat. And I want to make sure you know how to get to that if you're interested in being part of the show. So if you just go to Python by set FM, up in the menu, there's a live stream link, click on that, it'll take you over to our YouTube channel where you can subscribe and get notified about upcoming live streams. Most people just listen to the audio and that's fantastic. But it's really cool to be able to interact with some of the audience to get that broader perspective. So hopefully, we can see you on the live stream recording some time. Either way, so happy to have you here. Enjoy the show.

00:41 Hello, and welcome to Python bytes, where we deliver Python news and headlines directly to your ear buds. This is Episode 230. Recorded April 21, one day before Earth Day, I guess Earth Day Eve, Brian 2021. And Michael Kennedy. I'm Brian knockin. Hi, I'm Peter Sarnoff. Hey, Peter, welcome to the show. So good to have you here. Yeah, thanks so much for having me. So I work as an instructor at Portland Community College, and I teach engineering. And I also blog at Python for undergrad engineers. And I'm a book author two. So if you're interested in like that NumPy, Jupiter, kind of matplotlib sort of stuff. That's the kind of stuff that I'm into. Yeah, fantastic. You do like engineering work at a local university. Right? Yeah, at the local community college. And that includes teaching Python in our engineering programming class. Yeah. Awesome. Well, you've spoken at the Python, Portland Python meetup. You've been on talk Python to me. Now here on Python bites. You're making the rounds. Awesome. I'm excited to be here. Thanks for having me. Yeah, you bet. Well, Brian, are you feeling calm today? Feeling a little chill, keep calm and program in Python. Right. Right. Yeah. So this was suggested by Rennes demin dome, that's something like that cool name. This is a site. But we've we've covered some events and stuff before, this is a site by Vinson warmerdam, called comm code.io. And what he's got is he's got a whole bunch of basically a whole bunch of tutorial videos on software topics. But what I end their their little tutorials to go with them. I checked out the there's a whole bunch of stuff, there's a PI test, there's rich data set, and others, I was checking out data set this morning. And I got kind of hooked, and I watched like the entire series, because it took like 20 minutes or something like that, then like watch all of them. It was pretty quick. And, and I kind of like the minimalists kind of the minimalist style, it's a, it seems to be a balance of like, not just overview and not a deep dive, but somewhere in between. And it's kind of a nice place to be for. And I was like kind of blown away at how much he did with data set just really quickly. So the dataset one, I started with a CSV file with a bunch of data in it, turn that into a sequel lite database with a tool that he PIP installed.

03:08 Use data set to open that and that opens a server on your own computer. And then you use that to explore the data, and then use a plug in to visualize the data with plots and charts and stuff. And then showed us how to like actually just use raw See, see, see what the exploration is in raw SQL and see what that looks like. And then

03:31 and then take that take in. But one of the things is it's a it's a legal service. So you could share that on your in your internal network with somebody else to look at it. But the question of its raw SQL should really let raw SQL be running. He said, yeah, it's fine. Because what data set does is open up the SQL database in a read only mode, so you can't write anything. So you're safe there. You can't delete anything or anything. Yeah, this is interesting in that it's like really intended to be 100% shared data. And like you said, it's read only so little Bobby tables won't be a problem. Exactly. But and then, then there's a couple buttons that are like JSON or CSV, but they actually open up, they just open up queries. And you can use those as an API into the data. And you essentially have just with the data set of add an API that you can use directly for some something else then. And then he's like, Okay, well, what this is good enough, could you stick it out on the cloud. And apparently, data set has a tool to do that. And you can just go ahead and create a Docker around it with a couple commands, and stick it on, stick it on the cloud service. I was just blown away at how much you can do with data set and just watching somebody play with it is good. And like I said, it's not a complete data set tutorial. It's just scratching the surface a little bit more than scratching the surface, seeing what kicking the tires sort of video

05:00 So see? Yeah, cool. Yeah, it seems really neat. And there's a ton of small little tools and things you can go explore there. Yeah. Nice. Nice. Nice. All right, Peter, what you think about this? Well, I loved it, I think this is a great resource for students to because they're all free. And the one I really liked was the one on sim pi, which is doing symbolic math with Python. And that's kind of a confusing topic, because there's like a difference between using the regular square root function that will give you a float as an output compared to like the sim pi function. That is a symbolic math representation of a square root. And I was I was hoping maybe it would be so like, the ASMR videos that there would be very calming music while you were doing it. But there wasn't. The instruction, though, is really calming, and really good. So I'd love to share this with students. Yeah. Okay. Very cool. Nice. All right. On to the next one. This one comes to us from Brian skin pointed out that here's a cool thing that I don't believe we've spoken about yet. So Brian, thank you for telling us about natural short or netzwerk. Have you guys heard of this one? No, I've never seen this before. So one of the things that can be frustrating is if you sort with something that is really strings, but it has some other meaning, like version numbers, if I have a bunch of strings, and they'll have version numbers, and I say sort that, of course it's gonna go, you know, like 2.0, then 12, than 100, you know, or maybe 112, I guess, the way it sorts will just be I guess, Lexa. Graphically, it would be nice if I could just go to certain things and say sorted, and it automatically kind of understood others, there's separators. And there's like meaning between these and if they're numbers, you know, look at the number part and then sort based on the size of the number, not the, whether it starts with a one or a two, but if it's a two or a 10, right. And so that's what this simple little library does, is it's simple, natural sorting, and Python. So one cool example, this one actually might be interesting for you, Peter, for your students, is if I had this list of strings, like quote, two feet, seven inches, one foot, five inches, five feet, two inches, and so on, if I sort it is just gonna go one foot, 10 feet, two feet, two feet, seven feet, right, you know, the Luxor graphical version of you natural sort, it does exactly what humans would do.

07:36 One foot, five inches, two foot, seven inches, two feet, 11 inches, seven feet, six inches, and so on. So that's pretty cool, right? You can just go and basically, use Nat sorted instead of sorted, right, the sorted built in, just Nat sorted. And you could also import Nat sorted as sorted. If you wanted to go off the hook and just, you know, kind of globally, replace that on a file there, too, there's different things that you can do, you know, not just that one, you can sort versions, you can sort file paths, real numbers, like scientific numbers, you know, 1.72 times 10, to the 20th, or whatever, that kind of stuff. You do locale aware sorting, like, basically case insensitive sorting, you can customize it, you can sort custom types. But then, if you select a key out of the like, say, a class or an object, a bunch of the instances of that class, then that key would then be naturally sorted as if, as this thing does. So here's an example with versions like version dash 1.9, version, dash two version dash 111. And of course, it sorts the way humans would sort it right 191 10 111, then two, oh, and so on. That's pretty cool. You can get sorted directories. Now some of these come from not the same Nat sorted, but like, for example, there's an OS sorted. And there's, for the real numbers, there's real sorted, and so on. There's ways to customize it. There's ways to build like custom sorters, like I create an algorithm, which is like real, or, and locale and ignoring case, and all of these things, right? Like, throw them all together with like the or bitwise, or operator, and so on. Yeah, and I think that pretty much covers it. But it's, it's pretty neat. It has like some cool debugging stuff.

09:21 z docs is asking if it Nat sort handles non ASCII Unicode? I think. So. There is talk about that actually, working with bytes directly, but I think it's works on strings itself. So I don't know why it would necessarily be different. I mean, unless you tried to treat the Unicode as binary, then that might be something else. But yeah, thanks for that. And one other thing that's interesting. Just looking through here, I'm like, Okay, this is neat. Kind of cool. Here's how you customize it. Oh, wait, there's this thing called fast numbers. most efficient, the most efficient sorting can be done if you install the fast numbers package, which appears

10:00 You know, it has nothing to do with this, right? But it's something that it uses. And what fast numbers does is it allows you to have different behaviors for like float and, and, and stuff, parsing strings into floats and integers. And apparently, it does it faster as well. So for example, instead of saying float of a string, that is a floating point number, you can say fast float of that. And of course, you could go crazy and import as wiped out, right? But you can do things kind of like the dictionary that get so you can say, bass float, try to parse this, but instead of throwing a value error, whatever type of exception it is, you can say the default that I'm going to get if I can't parse it as 04 bad input, or, you know, what number will I treat as not a number and all sorts of interesting stuff. So if you're doing parsing of numbers, vast numbers, it's kind of cool. Yeah, I gotta check this out. I do that all the time.

10:51 Yeah, yeah. That's, that's cool. So I think this is just, you know, that's not the main topic. But I do think it's a neat one there. So anyway, yeah, people who do sorting of strings and stuff, they should check it out. And see docs is talking about like sorting, like a boom out over a, I don't know the name of the nice little circle above a Val. But there's the locale aware sorting, and so you can give it how you can give it like the Swedish locale. And I bet it does sorted. Okay, but I don't know for sure. I haven't. I haven't actually tested the Swedish locale. But I you know, that's it does seem to have like something that addresses that.

11:28 For me, the use case is always the one versus 01. So if I've got something that's 10, and something that's one, the way that that automatically gets sorted, and then I don't always like putting the zeros in front. So it seems really useful. Right? You don't have to left pad it type of thing. Yeah, absolutely. Well, how about Mars heater? So how about Mars. So this is something I'm super excited about. The Mars perseverance rover, and the rover, landed on Mars in February. But just a couple days before this recording, on March 19, the Mars helicopter, which is called ingenuity, lifted off for the first time. And so this was the first power controlled flight on another planet, which is so cool. And you can go to the NASA website and take a look at the Mars helicopter, like lifting off for the first time, it's kind of got two counter rotating rotors, and the little solar panel up at the top and little antenna up at the top. And the cool thing about this is that some of the software that's running the Mars helicopter is built with Python. It's also totally open source. So on GitHub, there's this package for something called f prime. And NASA writes that F apostrophe, and f prime is the flight control software that Mars helicopter uses. And if you look at the GitHub repo, you'll notice in the installation instructions, that you have to make sure that you have Python three and PIP installed in order to install f prime the Mars helicopter software. So I just think that that's super, super neat. That pythons being used as part of the Mars mission. And that open source to make this f prime flight software was used in order to make this happen. So Brian, you excited about space and the Mars rover?

13:51 Yeah, and also, one of the things that happened with this as GitHub, put a bunch of Achievement Awards on it, a whole bunch of people's GitHub accounts to anybody that contributed to a project that was used by f prime.

14:07 And it may have been other packages too, but at the very least, with this, and so a bunch of us got these like, you know, you contributed to the Mars helicopter MERS mission thing. So yeah, I felt cool about being an Arctic code. vaultek contributor, and now that that's out of this world, man, it's awesome. Yeah.

14:28 Yeah, I live in that post how they showed like a screen capture for Mario one of the core devs and showed like her little shield. So I thought that that was awesome. Yeah, that's really cool. Yeah. Sam Morley also called that out that she got a badge for contributor helicopter. Yeah. And apparently, I got one for contributing to pi test, which is cool. So I didn't know pi test was used by this, but that's neat. No kidding. You have one of these badges. Yeah. Let me pull it up. Oh my gosh. Oh, that is

15:00 So awesome. That is super cool. Yeah. And while you're pulling it up Xeroxes, super amazing, great work by NASA crazy that Python is considered stable enough to be used by them. I totally agree. Where's it there? Yeah. Oh my gosh, you have the badge. Dude, I'm so jealous.

15:17 It's pretty cool. Yeah, that's really cool. So one of the things I was going to talk about is some extra extra extra stuff. But to those have to do a little bit with like what we're talking about now. So I mentioned them the moment. So I ram mentioned on Twitter that

15:34 points out for us. There's this quote from Dustin Ingram, who runs ipi along with some other folks and says Python packaging sucks and sort of quotes, but now it sucks on multiple planets, which is pretty awesome. And then it goes off on this long like this. He goes for a long thread of like, how it's being used, what it's being used with. And I link to this in the show notes. There's like a ton of stuff you can follow along there. And then also, a lot of work points to an article over here that talks about this badge that you were referring to Brian and the various people are getting in the repositories that qualified for it. So Linux f prime, C, Python, Boto three but a core. Do what else jumps out at me, that's Python matplotlib NumPy, open CV, Python, Python date, util. requests. Yes. I Kenneth writes, saying how humble he was to see that s3 transfer, which I use. I mean, the list is like, this is a list on GitHub. But this is actually like a list of many of the big hitters of Python it talks to us about hints at how important Python is for this whole mission is awesome. That's great. Cool. Yeah. Yeah, absolutely. Absolutely. Super cool. All right. I guess real quick, before we move on to the next thing, just point out that this episode is brought to you by us. So if you want to support us, check out the things that we're doing. Like check out the top Python training courses, check out Python, Brian's pi test book, and things like that. And yeah, Anthony Lister gives you a little shout out there. Well, then Brian, you're basically you're basically basically an astronaut.

17:08 Yo, what's it's like, I'm almost embarrassed though, because I like I contributed one test to a defect defect report, and then wrote the test to show the defect. That was my contribution to pi test. But

17:23 that's okay. It's all good. Go. Alright, take us back to Earth. Well, let's, so we there's a lot of cool projects. In Python. One of the cool projects is fast API. And that's built on pedantic and tactics used by itself for lots of stuff. And anyway, why am I talking about this? Well, one at school, but we've talked about it before. But this topic was we've been following it anyway. But I gotta give a shout out to the person's name that mentioned it as somebody named angry dwarf said we should cover it. And I just loved that he had his name. And his email was angry dwarf. So Cool, thanks, angry dwarf. Anyway, it's been a bit of an emotional roller coaster. But the punchline is identic, fast API and typer will work just fine in 310. And they'll work in three levels. And they'll always work. They're going to work forever. I mean, I don't know that for sure. But that's my that's my guess. So why am I saying that people should calm down is going to be fine. Because people were freaking out last week. So people were freaking out that maybe that fast API and pedantic weren't going to work in 310, including the creator pedantic not this random people on the internet, like, Oh, really? Good projects. Yeah, they were like, this is this is gonna be nakid. Okay, so this starts. Okay, I'll jump into a little bit of the details. There was a there's a pep 563 that was titled postponed evaluation of annotations. And there was a little bit in there. And this was this went into Python three, seven. And this said, In Python three in it went into three, seven. But there was a clause in there that said, In Python 310, the functions and variable annotations will no longer be evaluated at definition time. They'll be lazy, evaluated later.

19:19 And, or something like that. I didn't read it that closely. But that's the bit that makes people scared about 310, and three tenths coming out, like really pretty soon. So does that mean that pedantic in, in best API, they kind of rely on this and they're not? Are they not going to work in 310? And it turns out, there was some corner cases there was, at least that's my understanding of it. Sebastian Ramirez, who did best API, he wrote,

19:50 there's been some incorrect conclusions that fast API and identic can't be used with 310. Let's be clear that up the worst case scenario, which hasn't been decided

20:00 Good is that some corner cases would not work and require small refactors. So the and then he goes on to show the refactor. So the refactor is really just there, that if you define your types within a function, they can't, you won't be able to do that you got to pull the types out of the function and put it at a top level or something like that. And even if you're stressed about this, you can try it out by saying, in the code you have, you can say from from Dunder future import annotations. And that will show you what the future implementation is. So you can try it out and see if there's any problem. But then we got, and I don't have a link to this, but we had a notice from who was it from missing the name. Anyway, I've noticed just the other day that basically said, they're not going to do it for 310. So basically, they're putting the brakes on 563, the the switchover and 310, four 310, they're gonna push that to 311. So that they all have time to figure out what to do about it and how to figure it out. So we got another year, to figure out what's or approximately, we, as users, I have another year to not worry about it. But I, but the steering Council, they know what they're doing. They're aware of this, they're aware of this issue. They're aware of the that everybody loves fast API, and pedantic, and things that are built on that. So there's gonna be a solution. And I think people's just trust the people involved that things are going to be okay. So, anyway, yeah, it's there's a really

21:45 energetic, energetic conversation over on the Atlantic issue tracker, and it just closed a little bit, just a little bit. But you know, last six days, just recently closed, which is good, but it was basically important 563 and 649, in the future of identic. And I just had salmon Samuel Colvin, who is the creator and maintainer of ionic on talk Python, that episode should be out this week, actually. But on there, he talked about how some things looked very bad for how things work. But then they've talked it through and it looks like some of the changes are not going to be super significant. Basically, the problem was, a lot of the IP annotation evaluation is no longer concrete types, like a Python type, you go to the and say, give me your type, what are you, it was converting those two strings, so that they could be evaluated more quickly. But then in doing so, by have a string called customer that's very different than having the actual customer class that I can then use for type information? So then, how does HP identity go back and find the customer class? Like, throughout all the things? What if there's two of them, and so on? So that was the concern, and it sounds like it's things are looking better? So that's all good. So Brian, what's kind of the take home message of this? Well, one of the, I don't know, my take home messages, the people involved, like Samuel, and Sebastian and the steering Council, they're talking with each other, they know what that's going on. And occasionally, stress happens as to what's going to, you know, I don't know how to fix this. But they, they're, they're talking with it, I'm going to try as a as a bystandard, I'm not going to jump on the bandwagon and try to like, one of the things that that came out was people, some people started sending a bunch of emails and jumping on the threads, and you have to fix this, you have to fix this. And that doesn't help but it just adds noise and adds work to the steering Council. So making, I think it's fine to make sure that it's addressed, but it's gonna be addressed. And I don't know, I actually was one of the people because I use fast API, I use typer. And I was like, uh, do I need to be worried about this, and in, especially somebody using it, just take a deep breath and realize that something is large as fast API or pedantic, is somebody is going to figure out how to fix it.

24:08 Hopefully, I mean, it's possible that something might break. I mean, that is the dynamic language. I just don't there's there's enough people paying attention that, I don't know. That's probably a long winded takeaway. It's probably it's like a repeat of what I just said. But anyway.

24:24 So if you're using fast API right now, there's not a whole lot to be worried about nothing to be worried at all. And if you are worried about it at all, you can use this future important thing to try out your code to see what it'll be like in the change. And even if it even if that breaks, they'll probably fix it by 311. Yep. And then Nick Harvey, throughout that you can test this from future Dunder future right now. So that's cool. Yep. Cool. Hi, Brian. I tried. I tried to keep it down to just a couple of things. But then they started piling up in my extra section to where I didn't know we wouldn't be getting through it in a reasonable amount of time. So welcome to

25:00 Another section of extra extra extra extra here all about it, but minus one extra because I already told you about the one with the the package list and so on. Alright, so let me take you through a couple of things first, here. Did you know we're live streaming right now, by the way, on bytes.fm Hello, I'm by them bytes that FM. I say that because there's a huge banner on this site I pulled up, we had something that would let us get some real time analytics and sort of know where people coming from your advertisers, some asks sometimes asked for that. But what I've noticed is a lot of the new browsers are the good ones anyway, are very much blocking those things, right. So for example, Firefox automatically blocks our analytics anyway, brave automatically blocks our analytics anyway. So we're not getting a lot of information back we're getting I don't know, my theory is about 40% of the traffic is being measured, which gives you some stuff like what countries people are coming from and whatnot, but I decided, you know what, we already have our ads, like in our ads, we do no tracking, no retargeting, no cookie setting, and so on. So why don't we just do that with our analytics? Like, we don't? How much do we really need that? Anyway, we got downloads, and so on. So if you go over here, and you click on the little shield, we now have a perfect privacy score on Python bytes. Oh, very cool. Check this out. Tracking content, none detected. No social media, no cross site, no finger printers, no crypto miners, nothing. And same, by the way for talk Python training and Python itself and so on. No known trackers to Firefox were detected on this page. Cool, huh? Yeah. I didn't know about that little badge thing. Yeah, you get it's like a security score, like how much is blocked? How bad is it? and so on. But because so many of them are blocking them by default. I'm like, you know, like, let's just take this stuff off. Right? It's somewhat useful, but not that useful. Related to that. Have you heard of this flock? federated learning of cohorts? Have either you heard of this?

26:52 No, no. joke is coming, though. No, this is this is just Orwellian business right here like, it has this eye looking at you. So there's an article on Ars Technica, everybody hates flock Google's tracking plan for Chrome ads. The E FF has a beautiful article that you really should read, if you at all care about the future of the web, the future of tracking the future of privacy, called Google's flock is a terrible idea from the E FF. And they've got some pretty insane quotes in there. For example, one of them from the E FF is Google's pitch to privacy advocates. I'll tell you what slack is in a second. But Google's pitch to privacy advocates is a world with block is that the world will flock will be better than a world that we have today. We're data brokers and ad tech giants can track and profile with impunity. But that framing is based on a false premise that we have to choose between old tracking and new tracking. It's not either, or we can reinvent the world where we're not being tracked in every way and sliced and diced and so on. And I totally concur with that statement. So yeah, check this thing out. This Google spark is a terrible idea. The idea is, instead of having third party cookies, which so if I go to cnn.com, you know, we could try that, it probably won't show up here, because I have it blocked it like a higher level. So now it's not sure up here, how many things get blocked. But anyway, if you were to go there, very likely, they would set a cookie from say, double click that you saw this ad, or not this ad that you saw this article, and then you go over to I don't know, your dentist, or you or your psychologist or whatever. And then they also can have this thing. So they actually were just reading this article, basically, right? Like they can, they can profile what type of person you are very, very buying grain through these cookies. So flock now basically, Google said they're going to get rid of these cookies, because as I already pointed out, everyone's blocking these third party cookies, Firefox, brave, VPN, and so on. So what do you do to keep the ad retargeting happy? And like the super analysis of what everyone's doing happy, you come up with a new idea. The idea is your browser is gonna use machine learning to put you into these cohorts like are you a young, female lesbian? Are you a divorcee? woman in her 40s? Like, what group are you in? And then every advertiser that you visit can basically receive like, oh, what what kind of person Oh, this is a divorcee who's coming even if they've never been to your site, or anything, right? They you sort of get your flock advertised to you, your your group. It's not private data, but it's pretty private eye. It's like this group, it means a lot. Anyway, I thought that this was a pretty big deal on the web, and people should check it out. So I put that out there. For for y'all to consider what to think, like tracking is a terrible idea. And it's mean to I don't have the link to it. But I was reading an article recently about how somebody had, I don't know they were expecting a baby. So they were looking up all sorts of baby stuff. And then they lost the baby with the miscarriage. And they still got tracked for that and so they get that

30:00 Good stuff. And then somebody, a couple of stores figured out what their address was and figured out when the due date probably was. And then they get like, they keep getting these things like your child's probably about four now. Maybe they need a bike.

30:14 And that's terrible. Yeah. So yeah, yeah. But here's here's part of the thing like all this is not so good, right? Like, I mean, they're both not good. But how do you clear your flock? Right? Like I can hit command, shift, delete and clear my history, my cookies? How do you clear out your flock? Like you just know, you're just a divorcee? And it's precomputed every week. So like, it goes like you could actually track like the stages of somebody's life, the different groups they but it's, it's super bad news. So anyway, I mean, this, we don't need it at all. I mean, don't. You don't need it all. People did advertising in magazines and newspapers for a really long time with no tracking. Yep. Yep. And as I've already pointed out, so do we not newspapers, but nonetheless.

30:57 Yeah, so anyway, there's people should check this out. That's worth pointing out. And then also kind of related to that. I recently started using Nord VPN. And it's not an ad. I know, they sponsor a lot of podcasts. But there's not that I just started using it. It's super cool. You can set this up to automatically like when you log in, just join your VPN. Like, I go to Seattle right now. And it also it does all that cookie blocking, and all those different kinds of things like automatically at the network level. So now for example, I it automatically does that when I turn on my iPhone, it's just always on the VPN. And if I fire up an app that doesn't allow ad blocking, that app is already blocking ads, because the ads are blocked at the network level. So for example, I'll use like Flipboard or like Apple news, like the ads are blocked. So anyway, that's worth throwing out there. And yeah, that's that's all my extras, but kind of a privacy intensive one. But I thought they'd all kind of go together well, so I ended up making that thing. And then Alexander seminoff says, I believe that a human classifier trackers will backfire. Yeah, I think there's a lot. I agree with you, Alexander. And I think there's a lot of negative effects. Like for example, you can take target and disadvantage marginalized groups. And Google actually talks about like, when they detect that enough marginalized groups have been harmed the recompute the block is like, a No. Yes. Yeah, exactly. It's really Orwellian. I'm not, you know, trying to be hyperbolic when I say that, like actually is, so people should check that out. And just be aware. And yeah, Peter, you want to talk about your last item here? Jupiter book? Yeah, I'd love to talk about Jupiter book. So there are a lot of static site generators for Python as well as for other languages. So this is like a good party game. How many static site generators Can you list? Like Sphinx Pelican? MK docs? Do you have any other ones off the top of your head? Michael? Oh, I think probably is ghost one. I think ghost might be one,

32:58 like Hugo, all of all of those. But I do a lot of my work in Jupyter notebooks. And when I'm working with students, a lot of our notes are in Jupyter notebooks. And this package called Jupiter dash book is a Python package that allows you to take Jupyter notebooks and build static sites out of them. And primarily, it's designed. So that's cool. Yeah, you can build free online books based on Jupyter notebooks, but also markdown files.

33:36 So I've got like a little, like a little scientific website that has some like analysis and various things, you could kind of put that together as a series of notebooks and publish it, right? Yeah, yeah. And you can even do it with interactivity, too. So this is part of the executable books project. And kind of the idea is that you'll be able to interact with things like plots if you make them with bouquet or Altair. And the code output that you see in the Jupyter Notebook that actually came from the code that was written in the Jupyter Notebook. And I think that's pretty neat. Like as well. And on the docks, there's like this way that you can automatically deploy your book to GitHub Pages for free, which I think is really nice. And then there's also a

34:32 git hook, so that you can hook into

34:37 GitHub, and then automatically every time that you push, your book gets republished. So every time you change that notebook, and you push up to GitHub, now your book gets republished with all of your new content. And I think that that's really, really neat allows you to make like revisions and publish super easily. So the that's it

35:00 Yeah, got like, you could probably put it on a specific branch. If you like, you make all your changes, and then you're like ready to push out the next version of the book, you could, like, push to the main deploy branch or whatever. Yeah, yeah, I mean, in your GitHub action, you can set whichever branch you want is the one that kicks off the action that builds your book. One thing I'm kind of interested in is could we make a GitHub action that would kick off a build of the PDF of your book, and then you could have like a releases page where it would be like the PDF, if people want to print it out, or, you know, kind of have more of a hard copy of it. I think that's pretty cool. And like the book gallery that they have, they've got some awesome titles that they have listed, like geographic data science with Python, that sounds interesting, quantitative economics with Python, the U dub, data visualization curriculum from the University of Washington, how to use a lot of Python, plotting tools. Oh, yeah, this looks super like it came out of Jupiter. But it's a legit website, it has a read the docs type of feel. Yeah, yeah, definitely. And up in the right hand corner of these, you've got these buttons that you could like, download a PDF or download the notebook, you can launch bynder instance, so that you could like run that Jupyter Notebook. And you can have a default button that will automatically take you to GitHub where that notebook is hosted. So it's, it's pretty slick, I think. Yeah, this is super cool. Brian, it's a book author. What do you think? Well, it's one of the things that confused me when I was thinking about this is what is in it did with Jupiter Jupiter notebook in the first place is, what does a book mean? If it's not a book? There's I mean, this this idea of a book is, is it's not a book anymore. It's something else. I never, I never really got it, why Jupyter Notebooks went to the I don't get the tie in between book and book, but maybe somebody can explain it to me.

37:09 Yeah, I mean, it's sort of blurring that like release line, that it's officially version one of the book and version two of the book, if you do it every single push as a new version, then it's sort of like just rolling like ci CD book release, which, which I think is kind of neat. But in my area, teaching engineering,

37:31 textbook costs are huge. Textbooks can cost hundreds of dollars for college students. So if there's a way that we can make a lot of open education, resources books, I think that that would be great for college students. I really like the design of having like the table of contents on the left of the book. And then on the right, there's the contents of the individual page. So you can jump to it. That's a really cool idea. I actually, I was joking a little bit. I really think that would be cool if maybe it already does this, but if there's a way to turn one of these into a, into an ebook,

38:11 or a PDF, from from, where's the Kindle version of this? Exactly. And I'm gonna I'm joking, I think a lot, a lot of these sorts of things would be great to be able to throw onto a Kindle, to be able to walk around and read. So yeah, you can definitely output PDFs and latech documents with it. But I don't know about like Kindle ebook format. Maybe somebody can, like write that in and give them a contribution? That'd be cool. Yeah, yeah, for sure. Tim Morley says having free interactive coding textbooks would be a real game changer for a lot of people, particularly somebody five figures out how to make this portable to mobile devices. Yeah, for sure. Alright, a couple other comments also from Sam. He says Congrats, Brian about your, your badge. It's nice to know that NASA does test their software, I bet they test the heck out of that software.

39:10 Before he set it up, it's got to get tested, maybe to a fault. I don't know. But it's got to get really, really tested. And then also, just so I'm in the comments, James abbo. Hey, James says, and Mike will be presenting at the Python meetup tonight. Yeah, I didn't necessarily think to cover it because it's so close to you know, it's like six hours from when I'll be presenting. But yeah, I will be doing fun memory deep dive sort of live coding and type of thing over there. The Python meetup in San Francisco, you know, virtually because that's the world we live in. But yeah, nice vehicle. Yeah. And then john Sheehan says it's a short hop from lead tech eba with pandoc.

39:48 You may all be right there, right there. All right, Why didn't my extra section already Brian, you got anything else you want to do a quick shout out to? Yeah, speaking of virtual

39:58 Python does

40:00 pica nzei, the South African Python is coming up, shout out to them. They're I don't I don't have a link to him up here. But it's a conference that's going to be on the seventh and eighth of October and be entirely online. And I was just curious because it sounds like it was curious about the whole virtual pneus. It's a little bit early in the morning for us. But they are. So I had a little bit of an exchange, email exchange, they are going to be able to have some pre recorded so you can pre record your talk if you want to. So if you're afraid of doing it live in the middle of the night, don't worry about that. But they you can submit anyway. And in there, they're allowed, but they'd like to have the the author be live while it's playing. So they can answer questions and stuff. And that seems fair.

40:52 The second update is last week, we covered dead dependency or dead dead dependency, say that dependencies.

41:03 And so one of the things we said was, it's too bad that it doesn't cover it doesn't do by Project automall. In within a day, it was it was a supporting it. So

41:13 the the there was an update the next very next day, that it supports both Flint and poetry with pipe project tamo. And since it's doing pipe project and timeline, I imagine it to do setup tools as well. If you're doing pipe project, Tom won't set of tools. So that's so awesome. Well done, folks about updating that straightaway. I mean, it did amazing. Brian will talk about random things like this is cool, but and then like the next day, we get to like the dependencies folks fixed, you know, added projects, automall support, I talked about being as though it needs a way to have indexes. Next episode, I hear they they heard us and they added indexing. So on part of the podcast, and also a part of it is, since I'm doing research for the podcast, I just reach out to people more often and say, I this is a cool project, but it doesn't do this. Is there plans to do that. And and you'll I mean, project owners love to hear back from people. And even if I wasn't I think other people should do that more often. Don't just complain about something, ask somebody if it's going to be supported or if you can help out. So yeah, absolutely. Peter, anything you want to throw out there, and it will extra as people tell people how they can find your book or something like that. Yeah, if you search for problem solving with Python, on Amazon, or there's a free open education resources version online, too.

42:37 And one little shout out I got is our community college is looking into how to integrate artificial intelligence into curriculum. So if anybody's in the Portland area that does AI stuff, reach out to me. And I'd love to talk to you about how we can integrate AI into community colleges. Oh, yeah, that'd be really cool. Yeah, it's a super fun project. Awesome. It does sound fun. You're ready for a joke. This is a team effort here. Yeah, I'm gonna close the other tabs. There we go. So that's a little large. This is again, one of these funny code comments. I guess I'll go last Brian, you want to do?

43:14 Let's have Peter go do the first one. So these are these are from comments that were found in real code, supposedly, and then they're just kind of funny. Peter, you want to do a first comment? Or sorry. First, our first comment is, Dear future me. Please forgive me. I can't even begin to express how sorry I am.

43:37 And here we go.

43:39 All right, Brian, this is one that I don't know is here to take on the optimist. I don't know what would you I don't I'm not sure you put this but at Exception Handling blog, what do we got?

43:49 Okay, so get a try block with a catch SQL exception. And a comment that says basically without saying too much, you're screwed royally and totally.

44:01 And then, and then another catch exception, like a wrong exception says if I if you thought you was good before? Boy, have I got news for you.

44:13 Favorite That was so good.

44:17 I'll just close it out with one of these ones, or you just kind of have to accept life. I guess it says this code is crap. This is crap code. But it's 3am. And I need to get it working.

44:29 Yeah, boy. Okay. I wanted to share one more. So because I was I was talking with my co workers the other day and we were talking somebody met. Somebody actually mentioned how hard the we had a problem with cache invalidation. And it reminded me of that old joke of there's only two hard things in computer science cache invalidation and naming things.

44:51 And so I went to look it up and then I found this, this other joke.

44:56 There's two hard problems in computer science. We only

45:00 Have one joke and it's not funny.

45:06 It's great. I love it. I love it. I will round it out with Nick Harvey here says exceptions while handling exceptions are just the best indeed they are. Yes, indeed they are. Alright. Well, Brian, it's great to chat with you and talk Python things. It's always good to talk to you. Yeah, Peter, thanks for joining this time. Thanks for having me. Yeah. Great to have you on the show. Bye, everyone.

Back to show page