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 #211:
Will a black hole devour this episode?

Recorded on Wednesday, Dec 2, 2020.

00:00 Hello and welcome to Python bytes where we deliver Python news and headlines directly to your earbuds. This is Episode 211. Recorded December 2 2020. I'm Michael Kennedy, Embry naki and we have a special guest, Yankee fighter, welcome. Yeah. Thanks so much for having me on. Yeah, it's great to have you here. You've been over on talk Python before, right? Yeah, talking about some cool, high energy physics and all that kind of stuff. Yeah, I looked it up last night, just to try and remind myself that was Episode 145. I was I was on with my colleagues, Michaela peg needy and Michael Kagan's talk with you about machine machine learning applications at the LSC. Yeah, and you do stuff over with CERN at the Large Hadron Collider and things like that. Yeah. Yeah. So I'm a, I'm a postdoctoral researcher at the University of Illinois at Urbana Champaign. And so there I split my time between working on the ATLAS experiment and working as a software researcher at the Institute for Research and Innovation and software for high energy physics. ireceptor and so like an atlas Atlas is this like, huge five story tall particle detector that lives 100 meters underground at CERN's Large Hadron Collider that's just outside beautiful Geneva, Switzerland. And so there, I work with a few thousand of my closest colleagues and friends to try and look for evidence of new physics and make measurement precision measurements of physics we do know about. And then my ireceptor work is kind of focused on working in an interdisciplinary and inter experimental team to try and improve the necessary cyber infrastructure and software for us to be able to use an upcoming runs of the high level of the Large Hadron Collider, and in what we call like a high luminosity run, which is going to be

01:42 to full power and full power yet no. So yeah, the design luminosity, or the design energy of the LFC is at something called 14 tera electron volts 14 TV and we've been running intentionally at a lower operating energy for last couple of years at just a little bit below that, but in the late 2020s, and suck the entire Earth into it and

02:05 you know, no experimental evidence of black hole creations. Yeah, but it kind of the cool thing is that if we even did make a black hole, the LMC due to something called Hawking radiation, it would evaporate well before could actually ever do anything interesting, gravitationally. But yeah, it's really exciting. Really. I'm joking, but it's such a cool place. Such a cool technology. I mean, that's right out of the edge of physics these days is the technology side is neat, too. Ya know, it's super fun. Cool. Well, welcome over to Python bytes. Yeah, it's good to be here. So I yeah, it's good to have you. Thanks for coming. And Brian, I think let's let's start with another one of my favorite topics, farms. I love farming. I you know, you see the bumper sticker, no farms, no food. I like food a lot. Say I Love farms. No, no, but the farm stack. We've heard his LAMP stack. Other stacks, like lamp is not as useful as farm right farm sounds more useful. So tell us about farm. So Aaron bass is he's I, I'm not sure. I think he's one of the spokes people for Mongo or something like advocate or something like that. Anyway, he's, he's doing, he wrote this article. But they've also done I think that there's been some some talks given but this is, this is a nice article. It's a called Introducing formstack, which is fast API, react and MongoDB. And so the, I really actually appreciated the the article and the the code with it, because there's a GitHub, little GitHub to do crud app that they've put together. And the article describes basically all of the pieces of the the application using it like a little to do app. But with fast API, you've got this is interactive, interactive documentation mode, where you can interact with the application, just almost immediately, you don't have to really do much to put it all together, in and then for all your endpoints, you can actually interact with them send, send data, do queries, and there's a little animated GIF to show how that's done. But the article then, you know, goes through it says, basically how how the inputs and routes get hooked up, and then uses UVA corn to set up an async event loop. And get that going, shows how easy it is to connect to a database. And then defining models with and how easy it is to set up a schema goes through. And then kind of hooks up Dart talks through the code discussion of you, you do have to write code for the endpoints. And really how easy those are with all of these these pieces. The react application is, is kind of a minimal app react application. I'm not sure why they have included that but it's kind of a neat addition. There's a react application that's running that just sort of shows some of the interaction with the

05:00 The crud app, and it gets updated while, you know while you're changing things through the interactive API. And I just like the demonstrates demonstration of working through working with an API and working through changing things and seeing it show up having a, like a react app at the other end. It's kind of a fun way to kind of experiment with an API. This is a really neat thing. And one of the other major stacks it's been used around Mongo is the mean stack. And the farm stack is way nicer than the mean stack, not just because it uses Python, and not JavaScript. But there's some interesting things here. One of the examples is actually kind of blowing my mind in that it's an if statement using the walrus operator awaiting an asynchronous call in a in an API method, like the walrus operator and async, the await keyword. I've never seen those together. And it's kind of like, it's inspiring. It's nice. It's good. Yes. Yeah. Such succinct code as well. It's super nice. I mean, it uses fast API, which is fantastic. It's using motor, which is MongoDB is officially supported Python async library, because you need an async capable library in order to do things against MongoDB. You know, this actually comes from the developer blog at MongoDB. There also are some ORM, like things, some odium, object document mapper stuff that also supports async and await for MongoDB. So if you're more in the ORM style, you might check that out. But other than that, this looks pretty neat to me. Yeah. Yeah. And I do know that a lot of people use the ORM. But I like I appreciated the example without an ORM for people because you throw an ORM example in there, and then people that don't use that particular one get lost. So yeah, Matthew, do you guys do anything in MongoDB? need these kind of things? Fast API? Uh, yeah, I have some friends that do. I personally, myself, I'm not too versed in Mongo. But I've heard it on the show. And many, many times elsewhere. So this is I think, also just just kind of paging through the article, as Brian was talking about, it is pretty impressive. So it's really concise. Like, here's your four lines sitting completely implement the API. Yeah, everything's right. asynchronous fast. Like all the cool stuff. Yeah. Yeah, I there was an example. Case Study of MongoDB you being used at the Large Hadron Collider, but that was many years ago. And I don't know if it still is. So it's, I've completely forgotten where that is. Yeah. But um, yeah, yeah. Cool. Cool. So next thing I want to talk about another programming language. Last time, Brian, I went on and on. He was a time before a few times, about dotnet, and C sharp, because Anthony Shaw had had done that work on Pidgin to get Python to run on dotnet. And we're like, Well, why are we talking about C sharp on this project? Right, on this podcast? Well, that we're gonna talk about something even more advanced AppleScript.

07:51 Wow, cutting edge? Yes. It's like the CMD. shell script of apple. It's, have you ever programmed an apple script? It's painful? No, no. It's like, you say, like, tell this application that I want to like make a command. Oh, it's, it's Bad News Bears? Let me tell you. So.

08:10 So what I've come across is this thing called pi AppleScript. Now, this is not brand new, but it's brand new to me. And there's a lot of talk about Macs and pay me people may be getting new Macs. But I thought I would say hey, look, here's a cool way to automate your Mac, or, you know, Mac's within your company or whatever, with Python instead of this dreaded ns Apple script. Okay, so So basically, it's a Python wrapper around ns AppleScript, allowing Python scripts or applications to communicate with AppleScript, and Apple scriptable applications. So apps for which they basically implement AppleScript. And they do that. So scripts get compiled, either from source or they can be loaded from disk, they have these some of these ideas are from AppleScript, as a standard run handler, and user defined handlers can be invoked with or without arguments are automatically converted, the responses to and from AppleScript are automatically converted either from AppleScript to Python types, like Python string versus AppleScript. One or vice versa, right. So you have to do the type coercion, which is cool, and they're persistent. So you can call your handle multiple times. And it retains its state like AppleScript would, and it also has no dependency on the legacy Apple script library, or the so called flawed scripting bridge framework, which is limited to OS a script executables. So that's pretty cool. If you want to automate things on your Mac, you obviously could use bash. But if you're talking to some kind of application that implements one of these scripts, like for example, you want to tell this other application to grab something out of the clipboard and then tell it to do something or something like that, right? Like you couldn't reasonably do that with bash, right? Once it starts up, you kind of want to go back and forth with it. So it sounds like AppleScript might be the thing to do. Pretty cool. Yeah.

10:00 Yeah, yeah, I mean, not not a lot to it. Like, if you've got a script, you're out your your, your Apple, Mac OS stuff, do it with Python. You don't have to do it with that Apple script stuff. No, it's deep. Yeah, yeah. So Matthew, you probably brought some something to do with physics, data science, I'm guessing what's your? Yeah, but so we we currently live in this, like, really nice age of having awesome ci services, and all these really nice metrics for all your GitHub projects and everything. So, you know, if you're thinking of like coverage, so if you're, you know, using pi tests, and, you know, making sure that you're reporting your coverage, you have all these really great services to also track your coverage and report that in a nice, shiny badge. But let's say you're developing some tool or some library and you have some, some sort of performance metric that you care about, let's say like how fast some, some the speed of evaluation for certain expensive functions. And you actually want to try and like track that through the entire history of your codebase. And that's not something that's like traditionally very, super easy to do. So recently, I was really happy to find so like if you're making changes. So if you're going to be adding some feature or whatever, you are refactoring it, so it's easier to write, but you're not sure if that makes it faster or slower. This would sort of give you that information from week to week or something like that. Exactly. Yeah. So you might like, oh, cool, you might go ahead and say like, Okay, well, you know, I have like some, some tests that make sure that this function evaluates and under some period of time, if it's an expensive function, some for your test, but let's say you actually want to like track across like different, different parameter parameterizations. How that function actually is about is being performing an evaluation in your whole codebase. So I recently found this super cool tool written in Python called airspeed velocity. And so from the docs ASV airspeed velocity is a tool for benchmarking Python packages over their lifetime. So it deals with runtime memory consumption, and even custom compute values. And the results are then displayed in a super nice web front end that's interactive and basically just requires like static webpage hosting. So it's, it's pretty impressive. And just if you click on the docks, you can see that's developed by a community of people but led by Michael durrett. Boom, I'm probably getting your name wrong. Very sorry. And Polly Burton. But if you look at that, he's the guy that who was behind pi oxidizer of Mozilla. Oh, really? Oh, okay. Yeah, that's,

12:33 yeah, for sure. Yeah. Um, yeah. So I mean, if you look at the other people that are on the contributor list, you can, you know, spot a lot of names that are common in the sci fi and Jupiter ecosystem. So it's, uh, you already know that this is a nice community built tool. And then also, as kind of some example cases, they give current projects that are using it, like NumPy, and sci fi and Astro pi. So pretty well established, established projects. And just as kind of like an example, if you click on like the sci fi project and go to the interpolate function there, you can, you can just kind of look at a very nice visualization of the actual evaluation in time on the vertical axis across a whole bunch of parameterizations, such as like, C Python version, and number of samples that are being run. And you can see this for the entire lifetime of the codebase. And you can zoom in on any section just with the mouse. And something I think that is super, super cool is if you if you're looking at the visualization of the plot, and you see that, oh, there's like one commit, where all of a sudden, things go funky, and the evaluation time just jumps up, you can just click on that node, and it immediately opens up to that commit, and GitHub, which is, I think, super awesome that you don't have to go and like search through your commit history to figure out what like where that spawns to. It's just boom, right? I'm looking, it shows the the SHA from GitHub. Yeah, the unique identifier of the commit. That's crazy. Yeah. So Wow. Yeah. So I've, I've, you know, a project that I'm working on, we've been interested in trying to have the sort of like metric tracking for some of our for some of our work. So this is something that I'm actively kind of looking at how we might be able to employ this for one of my projects with my co authors, but it's overly developed on GitHub, it's up on pipe pipeline as well. So just pip install ASV and then I think something that's kind of very cute and very kind of pythonic is that if you when you go to the reporting dashboard for the different libraries that you're actually benchmarking, it will up at the top say the airspeed velocity of an unladen x so the airspeed velocity of an unladen like NumPy or unladen sipi. So, you know, keeping very true to the, you know, pythons roots there. There's some Monty Python. The the show Zen in there for sure. Exactly. Yeah, this is impressive. I am Brian. How do you see this fit in into like testing and stuff. I actually love this. Like, I could use this right away. There's lots of well like

15:00 It's not a performance of performance is always something we care about in in benchmarking systems. And, you know, testing.

15:10 It's always it's something you forget about sometimes he like running, running stuff and it still works. But like over time things slow down. It's good to good to know that. Yeah. And if this could just be automatic, and just part of your ci, just go back and see the updates. That'd be very cool. Definitely. Yeah, I don't think that this is something that at the moment, and I'm happy to be corrected about this. I don't think at the moment, there's some way that this is currently being given as like a CI service. But I think that this is something that you could like, set up and run for yourself pretty easily. Yeah, you could probably plug it in. Yeah, yeah, exactly. But you could probably do some kind of web hook, when when there's a check in, automatically kick it off, and then save a result, right, you could just hook into the GitHub actions, and then have a call back and start your you know, let's take a take a record of this or whatever. Yeah, yeah, very cool. Is is a great idea. Yeah. Something else that I haven't really investigated yet. But that I'm looking into is if this can also be used to do like, GPU benchmarking. So like, let's say you have a library that you know, also that is going to be you can transparently use the API's to transparently move from CPU to GPU, like you have something like jacks or TensorFlow or pi torch, then this might be kind of a nice way. If it's, if it's based on those to be able to like benchmark your GPU performance as well. Yeah, well, and that's one of the things you might not test, right? If it could run either way, you might just run it on your machine, whichever one of those it is and forget to try the other style. Right? Exactly. Yeah. And I don't think there's too many ci services that are gonna you know, generously give you some, like, really nice GPUs to be doing benchmarking on. Yeah, that's for sure. For sure. All right. Now, for the fu n x, y item, let me tell you about our sponsor, this episode is brought to you by tech meme, the tech meme ride home podcast, they've been for two years, recording episodes every single day. So they're Silicon Valley's favorite tech news podcast. And you can get them daily 15 to 20 minutes, exactly by 5pm. Eastern, all the tech news you want. But it's not just headlines, much like buy them by it's actually it's a very similar show. But for the broader tech industry, you could have a robot read the headlines, or just flip through them. But it has the context and the analysis all around it. So it's like tech news as a service, if you will. So the folks over at Tech meme, they're online all day reading to catch you up, and just search your podcast app for the ride home and ride home and subscribe to the tech mean, ride home podcasts or just visit Python slash ride to subscribe. I have a theory, a hypothesis about this, I think that probably actually be a ton of work to put together a show daily on a time like that, but it's great that they're doing it. Do you have any other hypotheses? Brian? Yes. My hypothesis is that there's not enough examples out in the world of how people are using hypothesis in the field in, in real world applications. So

18:09 I'm excited that parsec put it together so far. So let's, let's take a real quick step back just for people who don't know, what is hypothesis? Oh, okay. Right. hypothesis is a testing framework? Well, it's not really, it attaches to other testing frameworks. So you can use it with unit test or pi test, you probably should use it with PI test. But it's it's a way instead of writing declarative, single test or test case, you can, it's a property based testing. So you describe kind of, it's not like I expect one plus two equals three, I it's I expect if I add two integers, at the end, they're both positive that the result is going to be greater than both of them or, you know, you, you have like these properties that you describe what the answer is. And there's a, there's a, the examples, that hypothesis and other, you know, tutorials on how to use hypothesis have given are more of these, like a plus b sort of things. There's simplistic things. And I and I do see a lot of value in hypothesis. And I know a lot of people are using it. But there haven't been a lot of good descriptions for really how it's being used, like a real world example of how it's being used. Because I'm, I'm probably not going to, I don't have those little tiny algorithm things. I've got big chunks of stuff. And in hypothesis does have to run the test many times. So how do you do this effectively in a large project, so I love seeing this article. So parsec is a is a it's a client side encrypted file sharing service. I'd never heard of them before. This this blog, but since it's cool, they described themselves as the zero trust file sharing service like Dropbox where it is end to end encryption for Dropbox. You could share the files but it only matters if you actually have the key right?

20:00 Right. Actually, I have no idea.

20:03 Sure, I suspect so yeah, a cool service. Actually, it sounds pretty neat. But they so they describe what kind of what they're doing there, this and some of the problems. It's a it's a large, four year old asynchronous Python project. And, and then they describe this raid, redundancy algorithm that they need. It's fairly complex with a bunch of servers and stuff a bunch of data stores going on. And what they need to test is they need to check things like if the blocks can be split into chunks, and if the blocks can be rebuilt from the chunks that were split up before, and then if you can rebuild them if you've got missing chunks. And, and so this, this all sounds fairly, you know, yeah, I can understand how you could try to test that. But there's a lot of variables in there, how big is the chunk size? How many chunks? How much stuff should be missing, and, and all that sort of stuff? And

20:59 in that, then they're thinking, yeah, hypothesis would be good for that. They do the normal tutorials, talk about a stateless way to test with hypothesis, but they're saying that for them, the stateful method that is supported is very useful. And because they're a synchronous system, and they describe how to do that, it's actually a fairly complex description. And it's, it's kind of a lot to get through. But it's neat that the power is there. So it does, you know, walks through how they have exactly how they set up a test like this. And this is something I think the testing community of considering hypothesis has been missing. So this is great. They, they end with a some recommendations, which I it's great. So the recommendation is for parts of your system that which parts should you throw hypothesis at? That's a really good question. Because you don't want to get everything, right. Because there is some expense to set it up and also to run everything. So there they describe it as if you're, if the piece you're testing is kind of an encoder decoder thing. Like there's is you're splitting things into chunks, and then rebuilding things. That it's a hypothesis is a no brainer for that. Because you can you can compare is that is my input the same as the encoded than decoded output? Yeah. The other cases, if you have a simple Oracle, simple Oracle, like it's simple to test the answer, but it's complex to come up with an answer. I'm not sure how, what that is. But in the case, you know, some of the cases are, you know, I've got a complex system. And in I just there's properties about the output that are easy to describe. The other one is a Yeah, it's I guess, similar is, if it's hard to compute, but easy to check. Well, one example that just jumps out at me right away is anytime you have a file format, I'm going to save this thing, be able to save and load these files, right? Because all you got to do is load up a whole bunch of random data say save load, is it the same? If it's not? That's a problem. Yeah, yeah. Yeah. And actually, I have talked with some people that, that have thrown this at some of this, the standard library

23:19 modules just on the side to test, because there's a lot of standard library stuff that's, like, kind of encoding decoding sort of thing or can two way conversions. Yeah, cool. Yeah, this is super nice. I'm gonna have to really dig into this article in more detail. I remember the first time I like learned about hypothesis was when one core devs gave a talk at pike. That's sci fi. 2019. And it just blew my mind then. And so this is so cool to see this like very, very interesting application here. Yeah, yeah. Me, it seems like there's a lot of uses in data science, data science seems tough to test like that sign inside, because slight variations, you might not get perfectly quality. Exactly. Close enough, right. It's like, well, it's off, but it's like, you know, 10 to the negative 10th. Or something off right. That doesn't actually matter. But the equality fails. Yeah, yeah. You end up using NumPy as a you know,

24:15 NumPy as approximation comparison scheme is quite a bit in your in your Yeah, i pi test. I can't imagine. I can't imagine. Very cool. All right, next one. Brian, I told you about last time I talked about I'm still waiting on my Mac Mini right. I ordered the apple the in one Mac Mini maxed out, and I'm a little bit jealous. My my daughter is getting a new Mac Mini she doesn't earn Mac

24:42 air she doesn't know about but it's supposed to show up tomorrow and mine still weeks away. And I don't think that that's very fair. But if you are an organization that depends on cloud computing, and you know what organizations don't these days, right, they almost all do. It was just announced at reinvent that AWS is going to be offering

25:00 Mac instances as a type of VM. So until now you've been able to get Windows, Linux. That's it. For all those people out there who are offering some kind of iOS app, even if they're not like a Mac shop, they still have to have Mac's around because you can't compile and sign your IPA or Mac, whatever iPhone app format is, you can create those without a Mac. So there's all these Mac's that are around for like continuous, you know, ci CD, or checking those things, and whatnot. So now, you can go to AWS and say, I'll take a Mac Mini, please. It's pretty cool. That's good. Yeah, you can do your test up there. And they don't have one yet. Those are the Intel ones, but the M one chips are coming later. So you'll be able to do it. What's interesting about this offering from AWS as basically any cloud service, you would imagine it's a VM, right? But these when you say I want one of these, you actually get a dedicated Mac Mini that's you get your hardware. Well, that's why you can't get yours because Amazon barmah did, they had a huge truck full of them? Well, they bought the Intel one. So those were on sale, I bet anyway.

26:04 But

26:06 now they have some interesting, where they call it nytro. I think they call it their nytro service or something like that, which allows them to virtualize actual real hardware. So this is pretty neat, you can sign up, the billion is interesting, you have to pay for at least one day's worth, if you get it, which I think is like $24. If you're going to run it continuously, all the time is one pricey sucker like the heart, the the Mac Mini you can get now is $700. This is $770 a month.

26:37 Okay. So if what you need is like a couple of Mac minis, you're probably and you need them on all the time, you're probably better off just buying a few and sticking them in a closet, especially the M ones. But if you just need one on demand every now and then or you need to burst into them or something like that. That could be interesting. Yeah, yeah, if you're back old school, and you only release like once every three months? Well, there was some some conversations like, well, if your data is already stored in s3, and you have like, a huge quantity of data, and what you need to run is actually running like some video processing on the Mac, you could do it by the data set of transferring that kind of things like that might be interesting. I don't know, I would go ahead and throw out there also, that this is all interesting, I have links to this kind of stuff and whatnot. Like the blog post announcing it, and so on. But there's also this thing called Mac stadium. And if you look at Mac Stadium, it's pretty interesting. You go over there and say, give me a dedicated bare mini a bare metal Mac Mini in their data center. $60 a month. So so you can actually get like, a decent one for a decent price over there. So if you want one running all the time, it might be good. But the thing is, if you're already like deeply integrated to AWS, maybe maybe that's a good thing. Yeah, yeah, that's Is there anything you got? I was just gonna say that seems pretty interesting. Um, I mean, I know one of the reasons that I love using GitHub actions and Azure pipelines is the ability to be able to get access to Mac VMs for four builds. But if you could also see this being really interesting and useful if you have like some very huge application, or some like very large stack that you want to be able to be able to do ci or, or tests on that this could be really, really nice, especially if you don't just want to be like, you know, pounding and destroying, like one, one Mac over and over and over again. This Yeah, this is nice, especially if you have a distributed team. Yeah, which every team is basically a distributed. Yeah, welcome to that. One thing that's interesting about this is you can literally press a button or even just through the AWS, probably the Boto API, you can just make a new Mac, instantly, like within seconds, you can have a clean, pre configured Mac, you can create ami, the Amazon machine, image machine image, which is like, install a bunch of stuff and get it set up and then like, save it so I can respond new machines from it. Those are pretty interesting options, that just having a Mac Mini in a closet, you know, push a button, make a brand new one, try this sort of way, make it a different way, throw it away, like there are some use cases here. That could be interesting. That's it, I won't be using it.

29:10 I'm just gonna buy a Mac Mini if I can ever get it. Alright, Matthew, what's his last one? You got worse? Yeah, I don't have any clever transition. But Alright, so maybe I don't know about you. But I end up having to deal with a lot of JSON, serialization of different statistical models and different and you know, sometimes also getting a CSV of different data sets that I want to be doing analysis on. And, you know, your first instinct might just be to say, okay, just gonna open this up in pandas and start to get to work on it. But if you kind of are used and comfortable to work in the Linux command line, kind of ecosystem of data tools, you might be itching a little bit and want to kind of just, you know, peek inside at the command line level and kind of get to work there. And so, in that case, you might be really interested in this tool called visit data.

30:00 So visit data is written all this is blowing my mind, actually, yeah. When I saw this, my job was kind of on the floor. So well, I'm will make sure this is linked in the show notes because it has some really cool videos. But so from the docs, so it's visited as described as data science without the drudgery. So it's an interactive multi tool for tabular data combines clarity of spreadsheets with efficiencies of being at the terminal. And also, you know, the power of Python three on a really lightweight utility that can handle millions of rows with rows with ease, I can attest to that. Personally, I've opened up to like four gigabyte CSV files before and it just, you know, drops right in and starts asynchronously loading like a champ. It's an addition to that it supports kind of a really astounding number of file formats that it supports. Currently, on the website. It says it supports 42 different file formats. So you know, supports things that you would expect, like CSV and JSON, but then it also supports things like JIRA, I guess, like whatever Jerry uses for their sort of like tabular stuff, it also can like read my sequel. And I guess it can also even deal with PNG, the image file format, which I was impressed by. So this is all openly developed, the output is a terminal, right? Yeah. Like, text? Yeah.

31:21 Yeah. So this is all openly developed on GitHub by a guy named Saul Paulson, I think, and if you go to the, if you go to the visitor website, it also has plenty of links to live demos of him doing kind of interactive examples of visualizations, there's one lightning talk that he's given that I think pi cascades 2018, or something like that, where he's able to just call up a CSV file of have like 311 complaints in New York City, and then through the through using visit data, just kind of hone down on certain boroughs and then be able to do a

32:00 filter on on different complaint types to be able to basically find complaints about rodents, and then filter on rent complaints, and then plot that inside of visit eight is still on the terminals basically make a visualization of like rodent distribution in the New York City boroughs. So I thought that was, you know, quite amusing, and really cool. And it's also, you know, this is a Python application. So you might not want to, you know, continuously install this in every single virtual environment you make. So, I mean, it is up on API's, so you can just do pip install visit data. But since it's an application, you probably might also want to just kind of as a generic tool on your machine. So it's distributed through a lot of, you know, nice common package managers. So if you're on Linux, they've got it on apt, as well as things like nx and go x. But I didn't see it on yum. So if you're on Fedora or CentOS, you might be a little bit of luck may have to do it manually. So of course, on homebrew, and even conda Forge, and it's not listed there. But

33:05 a very, very cool tool that's been featured on the show before, which is PIP x, by chance x is awesome. It's so good. I love it. I tested this last night, I just fired up a Python three, eight Docker, Docker container. And, you know, went ahead and install PIP x and then use PIP X to install visit data and was able to drop right into visit data as expected. So it's a very, very cool, and just the power that you can have with it, I think is worth checking out. For anybody who is doing data analysis with tabular data. This is super cool. I love when people build these tools that are kind of you don't really expect them to be so powerful. And you talked about, hey, just dropped in and grab some random data and started answering questions. And that's super neat. Yeah, yeah, the number of inputs and because it's open source, and because the all the other examples of data types, I think even if you have a different data type, it shouldn't be too hard to to modify this to handle something different. I do notice I'm excited about it. It does have pcap files for packet capture is your for communication packets, but talking to all your devices and all your hardware. Right? Well, this is like even like Wi Fi packets and cellular packets. That's how we debug those. So nice. Very cool. Very cool. And PIP x is great. I install a bunch of apps like glances, which is a fantastic, like visualize the state, you know, like top but way, way better than AC pi, which is great for it's a better but much much better curl. But the most important thing I installed that way is a PI joke. So now I can type pi joke on my command line, or always right there.

34:43 So speaking of which,

34:46 move on to our extras. That's that's our all of our main topics. Brian, you got anything this week? Oh, I did. I was dropped him in my extras go. Well,

34:56 I just wanted to bring up the the pike on 2021

35:00 There's going to be virtual. And there's a website up, us up slash 2021. And there's not a lot there yet, but you can check out what's going to have happen. I'm, it's not surprising that this there, they have to start planning it. And there may as a planet as a virtual event, I'm kind of hoping that we would have live but I understand. Yeah.

35:25 icon is my geek holiday. I love and it's both work, but it's also just such a nice getaway to connect with everybody. You everyone else we know from the community. listeners. I'm gonna miss not having it. Yeah, I'm glad you attend. Sorry, right. That's good that they there? I always check whenever they announce the date to make sure it doesn't overlap Mother's Day. And oh, yeah, does not that's not good.

35:51 So I have Unfortunately, not intended

35:56 pi con yet and in person or I mean, while it was canceled this year. So maybe maybe I'll tend to see remote. But I'm a regular attendee of the sci fi conference which this so this past year, sci fi 2020 was moved online. And I thought that the organizers did a fantastic job of actually writing it online, while still, you know, keeping kind of that sci fi community feel. So those helped a lot also by, you know, plenty of bad puns. So I think that might might be something that still comes through for pi con 20 and 21. Maybe? Yeah, absolutely.

36:31 One of the live listeners, Mohammed said, Ask if it's gonna cost money, or if it's going to be free this year to attend? Did you notice anything? Brian, I haven't looked. I'm looking around. And I don't know that it costs anything. It's from what I can tell. I don't see any pricing, what I saw his sponsor information to get sponsors to sign up to be part of whatever they're doing there. But I can't go there somebody else, throw it in the chat or put it into the you know, visit, I think by set FM slash 211. And put it in the comments down there. All right, I got a couple here. First of all, we're trying out live streaming here. And I think it's going pretty well seems like it's working out there's a bunch of people watching. So if you want to get notified, and we happen to keep doing this, just visit Python by sight FM slash YouTube. And it should have like the scheduled upcoming live stream, you can like get notified there. So well, maybe we'll keep doing this. It's been fun. Thanks for everyone out there who's watching right now. And in addition to pi con, which you just announced or mentioned, the announcement of that is the main way that the PSF is funded, but they're also doing a dedicated offering sort of fundraiser thing with six companies to help raise some money for the PSF. And talk Python training is being part of that. And 50% of the revenue of a certain set of our courses that are sold during the month of December, goes directly to the PSF. And people who buy those courses to the PSF fundraiser also get like 20% of a discount. So there's a link in the show notes for people to take some of our courses and donate to the PSF. If you'd rather just directly donate that's fine. But if you're looking to get some of our courses Anyway, you can do it this way and support the PSF they're hoping to raise $60,000 yeah, hopefully we can do that for them. And we'll see. And Brian, you announced big pie con. I'll another thing that got announced is small pecan pie cascades, cascades being the mountain range that connects Portland, Seattle, and Vancouver. And traditionally this conference has cycled between those three cities, right? Who remember anymore what it was supposed to be this year, I think it's supposed to go back to Vancouver, but not going to Vancouver because nobody's going anywhere. So pi cascades is online. And those do cost money. It's $10 for students, $20 for individuals and $50 for professionals to support that conference. But I'll link to that one, since that's one of our local conferences, if you will, yeah, they're trying to push the often push What's going on? We're trying new things. So it's a neat conference. Yeah, yeah. My time there as well. All right, Matthew, where you got for us anything else you wanna get a shout out to? Yeah, just just a few items. So add benefit code 2020 is started now It's day two. But there's still plenty of time to get involved with that if you want to. And for those of you who might not know, advent of code is just an annual kind of coding challenge that takes place every December. And it's just basically 25 days of like, fun and interesting programming challenges. So it's a always a great opportunity to try and brush up on your Python and maybe learn about some interesting, you know, collections that you might not have known about the standard library. So that's going on right now worth checking out, I think. And then as I'm going to sneak in some very small physics related follow up to Python bytes, Episode 205, in which awkward arrays we're talking about. So the lead developer of awkward arrays is my friend and colleague, Jim kovarsky, who is one of my

40:00 I have co collaborators as well as also a member of Iris up. And as of today, which is recording December 2. Awkward v 1.0 is a really scandalous up on pipe Ei. So by the time that this goes live, if you just do pip install awkward, you should get awkward 1.0 releases instead of having to do the more awkward one exactly, no more awkward a lot more, zero, all that good to have the actual install statement be awkward itself. Exactly. So. So that's a nice little tidbit. And I think the there's some nice links in Episode 205 people to learn more about awkward, but it's kind of a backbone of kind of the pythonic ecosystem for physics right now. And then finally, I just want to give some kudos to Python bytes as well, specifically for making full transcripts of the shows available to view on Python bytes. FM. Not only is this I think like a cool idea in general. But I think this also makes the show more inclusive to the deaf Python community, which is definitely out there. And one of my good friends and co authors is as deaf and I know that he definitely appreciate appreciates this so. So good job and you guys for being more inclusive. Thank you What our community? Oh, that's so cool. I didn't know anybody was utilizing it. Yeah, that's awesome. Thank you. It's I think it's absolutely critical for that because the format is only audio, but a lot of folks have reached out and said they also appreciate it if they're English as a second language, and they're not as good with English as well. So yeah, that also help that I think, right, like what what, what would I say? And again, what a weird word, awkward array. Why would they talk about that? It doesn't make sense. Yeah, transfer. Getting Closed captioning is just more inclusive for everyone. So so that's awesome. Yeah, thanks. All right. Well, let's wrap it up with a joke. All right. Yeah. All right. So you guys, I'm gonna need your help here. I'm gonna let Matthew I'ma let you pick you want to be windows or Apple? I'll be windows. All right, Brian, you'd be apple. So a good idea is like the title here is how to fix a computer. Any computer. So instructions for Windows. Good, Matthew. So step one, reboot. And then the flowchart goes to did that fix it? If no, proceed to Step two. Step two, format your hard drive and then reinstall Windows, lose all of your files and quietly leap.

42:24 Brian, Apple doesn't have that problem. There's some totally different solution there. Okay, for Apple, it's step one, take it to an apple store. Did that fix it? If no procedure step two. Step two is buy a new Mac overdraw your account and quietly weep.

42:40 That's me right now I got the Linux fix. It's so easy. It's totally like your only those things. So you learn and go to sleep. You learn to code in c++, you recompile the kernel, you build your own microprocessor out of spare silicon you have laying around, you compile the kernel again, you switch distros you recompile the kernel again, but this time using a CPU powered by the fact reflected reflected light from Saturn, you grow a giant beard, you blame Sun Microsystems, you turn your bedroom into a server closet and spend 10 years falling asleep to the sound of worrying fans, you switch districts again, you abandon all hygiene, you write a regular expression that would make any programmers any other programmers cry blood, you learn to code in Java, you recompile again, but this time while wearing your lucky socks, did that fix it? No proceed to Step to revert back to using Windows Mac or Mac quietly weep.

43:30 There's really no good outcome here. They all in and quietly weep. As a Linux user for the better part of a decade. I can neither confirm nor deny. You know how accurate that last part is.

43:41 Yeah, they all have their own special angle. It just takes longer to get there until the next to get to your destination, I guess. Yeah. All right. Well, that's fun as always, and everyone watching on YouTube. Thanks for being here. Live and everyone listening. Just thank you for listening. Matthew, thanks for joining us. Thanks so much for having me. This was really fun. Yeah, great for vitamins brought. Enjoy them. And Brian, thanks as always, man. Thank you. It's been fun. Yep. See you. Bye. Thank you for listening to Python bytes. Follow the show on Twitter via at Python byte that's Python bytes as mb yts and get the full show notes at python If you have a news item you want featured just visit Python by set 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