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


Transcript #254: Do Excel things, get notebook Python code with Mito

Return to episode page view on github
Recorded on Wednesday, Oct 13, 2021.

00:00 Hey there, thanks for listening. Before we jump into this episode, I just want to remind you

00:03 that this episode is brought to you by us over at Talk Python Training and Brian through his pytest

00:09 book. So if you want to get hands-on and learn something with Python, be sure to consider our

00:14 courses over at Talk Python Training. Visit them via pythonbytes.fm/courses. And if you're

00:21 looking to do testing and get better with pytest, check out Brian's book at pythonbytes.fm slash

00:27 pytest. Enjoy the episode. Hello and welcome to Python Bytes, where we deliver Python news and

00:32 headlines directly to your earbuds. This is episode 254, recorded on October 13th, 2021. I'm Michael

00:40 Kennedy. And I'm Brian Okken. I'm Mohamed Raza. Yeah. Hey, Mohamed. Welcome. It's great to have

00:45 you here. Good to have you on the show. Hi, Michael and Brian. I'm really excited to be on the show.

00:49 It's been one of my goals. I started listening to podcasts when I was in college back as an

00:54 undergrad. Wow. And your podcast, that was one of the reasons I developed a love for Python. So

00:59 that's super amazing. Tell people a bit about yourself before we jump into this.

01:02 I currently work at AWS, Amazon Web Services, as a professional service consultant. So my job

01:07 is to help our customers in their cloud journey. So we basically do help them with our...

01:14 We help them with different cloud services, such as if they want to do cloud migration or if they want

01:19 like put some service on AWS cloud. So that's where professional services comes in to like

01:24 implement and help them with their cloud journey. You must see a lot of different implementations and

01:30 configurations and teams and types of software. You get exposed to a lot of things quickly like this,

01:35 right? Yep. So it's pretty, it's pretty fun job. Like you work with different, wide,

01:40 different customers. Like any customer has a different problem. So like you get to

01:44 touch upon like different problems. So as a consultant, so it's a really amazing job.

01:49 Yeah, that's awesome. That's one of the things I think, you know, for people who are early in their

01:53 career to help them go fast and level up is get a lot of exposure to a lot of different things.

01:58 Yep. And I totally agree with you.

02:00 Awesome. Well, I think maybe Brian should kick us off with the first item. What do you think, Brian?

02:06 So Python 310, we talked about this last week. Python 310 is out. It came out October 4th,

02:12 it looks like. And I've been using it and a lot of people have been using it. But one of the things we

02:16 do is we update our, with a project. If you support a package, you want to make sure to go and change your,

02:24 your testing, your CI testing to make sure that you're using Python 310 instead of Python 3 dev,

02:29 310 dev. That's what I was testing before. So as, but there's an issue. So

02:35 Python or Anthony Shaw brought it up on Twitter, a bunch of other people did too.

02:41 But I'm grabbing his, his tweet. It says basically, you can use 310 on GitHub actions now,

02:49 but you need to make sure that you quote the 310. So this is...

02:54 So you don't test on 3.1?

02:55 Yeah, exactly.

02:57 That's insane. The zero at the end matters.

03:01 So I'm going to just grab my, one of my projects. I went and changed mine. And, and I just went ahead and put quotes on all of the versions on three,

03:11 you don't have to do 3.7, 3.8, 3.9. Those are fine by themselves. But 3.10, if you, if you go from,

03:17 if I had dash dot dev or dash dev, YAML convert, like thinks of it as a string. But as soon as I go to 3.10,

03:24 it's 3.1. So yeah, you want to make sure to quote those. That's really it. And that's really what I wanted to cover is to make sure that people change their CI system to be testing with 3.10, but do it with quotes. If you're using YAML.

03:40 Doesn't YAML understand significant digits? Come on.

03:43 It's an interesting find though. Like, like YAML reading a 3.1, but it should read as 3.10.

03:52 Yeah. I mean, I could see how you get there. Yeah.

03:54 But at the same time, if you're talking versions and not just floating points, obviously the dots are not, you know, not, not decimal separators. They're separating full whole numbers, right?

04:04 Which obviously then the zero matters. Interesting. That's a good find and good advice. I have a quick real-time follow-up for you, Brian.

04:10 Remember I had complained about not being able to deploy to 3.10 in production. Yeah.

04:16 Well, guess what? This is all 3.10. Woo. Oh, sweet.

04:20 Yeah. I managed to get it working. MicroWSGI got updated so that it will now work on 3.10 install, building a wheel locally on Linux. And there was another dependency I couldn't make work, but then I realized, oh my gosh, I'm not even using this anymore. So I just took it out and then it works. So I put it on Talk Python, the podcast page for now. And if it doesn't freak out or cause problems,

04:40 I'll roll out across like Talk Python training and Python bytes and stuff. So this is the guinea pig or the canary out there just hanging around. But so far it's perfect.

04:48 Nice.

04:48 Yeah. A couple of live stream thoughts here. Sam Morley. Hey, Sam. Says, oh my, that is interesting about 3.10. And Henry Schreiner. Hey, Henry. Henry and I are going to be talking on Talk Python really soon, by the way.

05:01 Many YAML projects choose to accept floats and then just convert them to strings. Not specific to YAML. You could disallow floats here if you wrote that, if you wrote the action. Okay. Interesting. I didn't realize you could do that. Very cool.

05:14 I didn't know that either.

05:15 Okay. Did you know that Python's popular?

05:18 Yeah.

05:19 Yes.

05:21 And it has found its way to be a little bit more popular than it has been recently. So, you know, it continues to grow. Brian Skin sent this over. Thank you, Brian. And the headline here is pretty neat.

05:34 Beating C and Java, Python becomes the number one most popular programming language. Boom. Says Tobe.

05:40 So, the Tobe index is interesting. To me, it feels like a little bit more of a lagging indicator. And it's also a bit more of a enterprise-focused indicator.

05:49 So, that's why Java and C have been popular for so long. But apparently, Python has sort of made its way into that world as well.

05:59 And they're quoting this article over here on ZDNet. And this is the thing I'm linking to. And it says,

06:05 For the first time in more than 20 years, we have a new leader of the pack. The longstanding hegemi of Java and C is over.

06:11 It's pretty good, right?

06:14 It is. And I think it's one of the reasons that, like you said, the business community is using it a lot more in large companies.

06:22 That might also be why we're seeing the numbers in surveys of Windows users using Python.

06:29 Oh, yeah.

06:30 Staying really high.

06:31 Maybe it's because of that.

06:33 I think one of the big reasons is, like, the entry to the language, the barrier entry is, like, pretty easy.

06:38 Like, anybody could learn the language and get into the language.

06:40 And the ecosystem and the libraries around the language, it just makes stuff so much easier to do.

06:45 So that's one of the reasons it's at the top.

06:47 I was also reading on Stack Overflow.

06:49 Somebody shared on Reddit that Python has now most number of asked questions compared to Java now.

06:55 Oh, interesting.

06:57 Probably on Stack Overflow.

06:58 Yeah.

06:58 Nice.

06:59 Somebody shared on Reddit as a discussion.

07:02 Interesting.

07:03 Yeah.

07:03 So if we look here.

07:04 You're going to do this.

07:05 Oh, I want the most popular languages.

07:07 Yeah.

07:08 This is real time.

07:08 Look at that.

07:09 Oh, yeah.

07:09 It's not even close.

07:10 It's not even close.

07:12 It is.

07:12 I remember seeing that when this was back here, back in this area, 2017, and they predicted this.

07:18 And they predicted something, like, a little bit even less than reality.

07:22 And people are like, no way.

07:23 There's no way it's going to just do that.

07:25 And it's even more real wild than this.

07:28 So very, very cool.

07:30 So, yeah, super neat.

07:31 I'm thinking this is just another sign that, you know, focusing on Python is good.

07:36 Muhammad, I think you touched on a lot of reasons why, you know, people get attracted to it because

07:41 it's easy and it's simple and it's clean and they just want to do a small thing.

07:45 But then your small thing, as everyone knows, just gets slightly more complicated and more

07:49 complicated.

07:50 And a lot of times the thing you start with as something simple, it can't do, it can't grow

07:55 to become the thing it eventually needs to become.

07:58 But Python allows you to build way more complex software.

08:01 So you don't get injected into like, well, I have to leave because, you know, I want to

08:05 use threads and I'm using VB6 and it doesn't have threads.

08:07 So I guess I'll go learn C or like, there's not that kind of story that happens around Python

08:11 nearly as often.

08:12 So people just stick in it, like accumulates like a snowball going downhill.

08:16 Yeah.

08:17 So Sam morally brought up that he thinks that some of this might be around the data science

08:22 community coming into Python.

08:24 Oh, I totally agree with that.

08:26 Yeah.

08:26 Yep.

08:26 Yep.

08:27 Very good.

08:27 Very good.

08:28 Okay.

08:29 So yeah, Mohamed, I guess we got your item up next is the first one, right?

08:33 Yeah.

08:34 So the item that I chose was newspaper 3k.

08:36 It's named a newspaper where the original name is 3k.

08:39 It supports Python 3 now.

08:41 It's an amazing library.

08:43 I use it at work.

08:44 I was helping auditors to generate news reports.

08:47 So what they were doing was like going onto internet, finding news reports manually.

08:51 So I was just using my job was to like write a flask web application and using this library

08:57 and Google RSS feeds to find the news articles and then pass those links to this library to

09:02 like generate useful information such as the description, the title, the length of the article and stuff like that.

09:10 So like it helped me a lot.

09:12 And then it'll help us like it helped me a lot in terms of automating the process, which people were doing manually where I was working.

09:18 So this is an amazing.

09:20 Oh, fantastic.

09:20 Yeah.

09:21 So newspaper 3k, it's like web scraping.

09:24 Yeah.

09:25 It's like web scraping.

09:27 Yeah.

09:27 But it has higher level semantics built into it.

09:31 Like you can ask the title.

09:32 When was it published?

09:34 Not the some sort of e-tag weird thing on the server, but like when did the article declare that it was written sort of thing.

09:41 Right.

09:41 And who's the author?

09:42 Yep.

09:43 All sorts of cool stuff in there.

09:44 And the best thing is like it also does the summary of the article.

09:47 Like it's not to like 100%, right?

09:50 But it's just like extractive summary of the article, which is pretty useful.

09:53 Like if you like doing newspaper creation articles and stuff like that for like auditors I was doing this week, they found it really useful.

10:00 Yeah.

10:01 I'm totally going to use this.

10:03 Yeah.

10:03 I'm still one of those RSS readers.

10:05 So, yeah.

10:06 Yeah.

10:07 Yeah.

10:07 Super cool.

10:08 So the API is basically you give it a URL and you say download and then parse and then you have article.authors, article.publishdate,

10:17 article.text, top image, movies.

10:20 If it contains any embedded video, you can even do keyword analysis on it.

10:24 Keywords in summary.

10:25 Yeah.

10:26 Nice.

10:26 But you can do all sorts of things that might be useful to you.

10:30 So I can see that this is a cool input into other things, right?

10:35 Like not just straight consuming the information, but if you're trying to understand trends and stuff, right?

10:42 You could go around and just hit all the main websites and go and say, okay, show us the keywords and show us anything that's new or that is new and also appearing more frequently.

10:52 If I remember correctly with this, there's also things you can do where you can follow, you can point it at a homepage and it'll give you like categories and all the articles in the categories.

11:04 Like you could point it at CNN.com or something like that.

11:07 Yeah.

11:07 Yeah.

11:07 Yeah.

11:08 You can do all sorts of things with this.

11:10 It just makes so much stuff easier compared to using BeautifulSoup.

11:13 Like in BeautifulSoup, you like have to do and go scrape up yourself.

11:17 But like this makes so much stuff easier.

11:19 Yeah.

11:20 So it's just an amazing library.

11:21 Cool.

11:22 Awesome.

11:22 A good one for sure.

11:24 All right, Brian, you're up next, I think.

11:25 All right.

11:26 Well, I'm going to cover something I'm like super excited about, but it's a little niche.

11:31 Anyway, so editable install.

11:35 So when you're working with a package, Python package and developing it, one of the things that I do a lot is I have it open in my editor, but I also have like a window open where I'm running pytest and stuff.

11:47 So I need to, I want the package to be installed and it really helps if you're editable.

11:51 It's editable so that when I make changes in the code, it's instantly appears in my, you know, my test window or whatever.

11:59 And so pip supports this.

12:03 It's a, you say pip install dash E and then give it a path to your local project.

12:07 And apparently you can do a Git repos like this too.

12:11 I don't know how that will work.

12:13 Okay.

12:13 That's interesting because you can do Git for PIP.

12:16 And so I guess instead of saying install it as a package installed as edible, but does it like clone it locally?

12:21 What happens there?

12:22 Well, it does.

12:23 I mean, installing from a Git does clone it first, but I don't know what the point would be because you're still, you're not editing it on Git.

12:31 Anyway, I used it for local directory.

12:34 It's a cool feature.

12:35 It's a cool feature.

12:35 It's a cool feature.

12:35 But it didn't.

12:37 And I also like Flit, but Flit, but Flit uses PyProject.automal and pip installable dash E install dash.

12:45 She didn't work with, with PyProject Intel last, this week, last week, really recently.

12:52 So a workaround for Flit was you would have to install a PTH file or with a dash and you have to do, you have to install Flit first then.

13:01 And this is a, if somebody's helping you, but they're not, they're not used to Flit, this is a weird thing to tell them about.

13:11 You can do PTH file or sim length.

13:14 But then there, there came along somebody that said, Hey, a PEP 660 said, Hey, we should do editable installs for project PyProject.automal projects.

13:22 Also, it requires that the backend supports this also.

13:26 So there's changes needed to both pip and Flit.

13:29 However, now we have it.

13:31 So, just recently, oh, let's jump back.

13:36 pip 21.3 came out.

13:39 When was it?

13:39 October 11th.

13:41 Yeah, very recently.

13:42 Flit 3.4 came out October 10th.

13:45 And with these two things in place, you can now, you have to, you have to regenerate your project file or change it to use 3.4 for Flit.

13:55 But, but editable installs work.

13:57 and so I was playing with it.

13:59 I'm like, this is so cool.

14:00 I love doing this.

14:01 but I was like, how do I get my, dependencies in there?

14:06 So one of the things that, Flit allows and PyProject.automal allows is optional dependencies.

14:11 So the normal dependencies, your project dependencies automatically get installed when you do a, install dashi.

14:19 But the optional ones don't.

14:21 So you have to give it a bracket.

14:23 you know, you have to say like install the, my thing with the optional like test or doc or something.

14:29 Well, the way you do that with, with a local directories, you have to just make sure you put it in quotes.

14:34 So quote dot bracket test, close bracket, close quote.

14:38 Okay.

14:39 Totally obvious.

14:40 Not totally obvious, but, not bad either.

14:43 So, anyway, I'm excited about this a lot.

14:46 Yeah.

14:46 Yeah.

14:47 That's really cool.

14:48 Good find.

14:48 let's see.

14:50 out there.

14:50 Follow up for you.

14:51 Muhammad Okwai.

14:52 Sam says, I still have nightmares of BS4 and feed parser.

14:55 Yeah.

14:56 Yeah, man.

14:57 It's, it's really hard to work with BS4.

14:58 BS4 is great for what it's for, but it's like assembly language is great.

15:02 It doesn't mean I should write in it all the time.

15:04 Right?

15:05 No, I agree.

15:05 And plus, I don't think BS4 does like scraping of dynamic pages for that.

15:09 You like have to use, I forgot the package name.

15:12 Selenium for that.

15:13 Yeah.

15:14 Yeah, you do.

15:15 Okay.

15:16 So the next one I want to talk about here is, is pretty cool.

15:20 And it's, it's an unusual project because if you're going to go work on some Python data

15:27 science, you usually want to go do that in notebooks, but you might just want to think

15:32 about it as kind of like an Excel spreadsheet.

15:34 You might want to walk up to it and go, okay, well, let me just see a grid of this.

15:37 I'll filter it this way.

15:38 I'm going to hide that column.

15:39 I'm going to like remove, you know, only show data with some property and then look at it.

15:44 That would be nice if you could visually do that.

15:46 Right?

15:46 So what we've got here, this one comes to us from, let me make sure to give attribution

15:51 from Tomas Rolo.

15:53 Thank you for sending that in.

15:55 So it's this thing called Mido and Mido is a spreadsheet that helps you complete your Python

16:00 analysis.

16:01 What you do is you create the Mido sheet, which is like an embedded Excel thing, like

16:06 thing or Google sheets thing into your notebook.

16:09 You play around with that.

16:10 And then the cell below, it writes the code.

16:12 So let me see if I can show you an example here.

16:14 So there's this spreadsheet up at the top.

16:17 And as you interact with it, you can see there's this cell down here that says import Pandas

16:21 is PD, Netflix titles equals PD dot read CSV.

16:24 And it gives it a file because you clicked a button and said open CSV for your data source

16:28 in that spreadsheet.

16:29 And then they said, I want to, what do they say?

16:33 They remove some of the columns like rating and type and so on.

16:36 And then create a pivot table off of that.

16:40 And it just writes all the Python code for you below.

16:42 Yeah, I think right in the notebook.

16:44 I kind of really like this library.

16:45 Like it's going to make a lot of stuff easy for like people who are just doing data analysis

16:50 because like what they do most of the time is like they're browsing Stack Overflow to like

16:53 write the find and find the right answer to like solve their problem.

16:59 So like this is going to save them a lot of time.

17:01 I totally agree.

17:02 And if you go and play with it, you'll see a section that says Mido code start.

17:05 Do not edit.

17:06 Mido code end.

17:07 Do not edit.

17:08 A totally reasonable use case for this, which might not be what Mido themselves recommend

17:13 because they want to promote their tool and sort of be part of the story.

17:17 But a reasonable thing to do would be to like embed this, play around with it to get just the

17:22 right thing and then strip out the Mido bits and just leave the fragments that it wrote

17:28 in there.

17:28 Yeah, that would be amazing though.

17:30 Yeah.

17:31 Yeah.

17:31 I mean, you don't have to tell anybody.

17:33 He's just read you to do it.

17:34 Yeah.

17:34 Yeah.

17:34 Yeah.

17:35 No, that would be amazing.

17:36 Yeah.

17:37 And it even does really cool comments on the section.

17:40 So it puts it all into one cell, right?

17:42 Instead of a whole bunch of cells, which I think is reasonable.

17:44 But it does like the comments that it writes are imported Netflix title CSV, pivoted Netflix

17:51 title CSV into data frame two, flattened the column headers, reset the column name and indexes.

17:58 Like those are meaningful comments, right?

18:00 Like this is pretty nice actually what it generates.

18:02 It's not horrible code that you would, you know, run away from.

18:05 That's cool.

18:06 Isn't that neat?

18:07 So people who are really familiar with spreadsheets can kind of ease into data analysis.

18:12 Yes, exactly.

18:14 And they can do like really like easy tasks.

18:16 Like if they want to filter out data instead of like going out and finding out how to use

18:20 Pandas to like filter out data, they can directly use Mito for that.

18:23 So it's going to like save them a lot of time on that.

18:26 I agree.

18:26 I could see myself using this.

18:27 No, no doubt.

18:28 I think Pandas is great, but I don't know it super well.

18:31 And if I know, like I kind of want to do this thing, but I don't really know how I can select

18:35 select to do that.

18:36 Yeah.

18:36 Okay.

18:37 Yeah.

18:37 That's, that's the thing about Pandas.

18:39 Like Pandas is amazing, but there's like so much stuff in Pandas that you don't know top

18:44 of your head.

18:44 So you have to do like searching the documentation, like Google Stack Overflow for that.

18:49 And I can see this library being really useful though.

18:52 Like for that specific reason, like you want to do quick analysis, you use Mito for that

18:56 and boom, you have the code right down generated.

18:59 Yeah.

19:00 Super cool.

19:00 The other thing worth pointing out is you don't have to start your notebook this way.

19:04 You can actually hand it an existing data frame.

19:06 So you could do your work down until you get some data frame generated from who knows where

19:11 and then hand that off to Mito and then have it write the, you know, the next fragment

19:15 of code that you're going to write.

19:16 So I think this is neat.

19:18 I could totally see myself using it.

19:19 There's a cool tutorial you can go through, but I recommend you watch the data slicing with

19:24 Mito 2 video.

19:25 That's right at the top of that.

19:27 It's like, I don't know, a couple of minutes.

19:28 How long is it?

19:29 It's six and a half minutes.

19:30 It'll give you a really good sense of what's happening there.

19:33 The other thing worth pointing out is when you see plans at the top, that means it costs

19:37 money, but there's a individual one that's just totally free forever.

19:43 Works with JupyterLab 2 and 3.

19:44 But if you want like team support, there's a paid thing.

19:47 And given that they're creating this and giving out to the world, it seems fair enough.

19:50 It's something you can plug in.

19:51 You don't depend massively upon it.

19:54 Like I said, you could even like use it to generate your code and then take it back out

19:57 if you want.

19:58 Yeah.

19:58 So pretty cool props to Mito team.

20:01 That's pretty nice.

20:02 Brian, real-time follow-up here from Henry out in the audience.

20:07 Editable installs aren't niche, but since we got editable installs for setup CFG only projects

20:15 in pip 21.1, it's now just supported for arbitrary build backends in pip 21.3.

20:21 Yeah.

20:22 Thanks for the extra info.

20:23 Also, ZDocs says edible installs.

20:28 We probably said editable.

20:32 Yeah.

20:32 Editable.

20:33 When we say editable.

20:34 Editable.

20:34 Indeed.

20:37 Indeed.

20:38 All right.

20:39 Let's see.

20:40 So, Mohamed, you got yours.

20:42 You're up next, right?

20:44 Yep.

20:44 So, I have this library called TroposWriter.

20:46 It's an amazing library and helps you generate CloudFormation templates writing Python.

20:51 So, I do this on my job a lot.

20:53 Like, I work with DevOps people writing CloudFormation templates.

20:56 And sometimes it's hard to write CloudFormation templates because of the formatting part in YAML.

21:00 YAML can get messy.

21:02 Like, you might mess up the format and then your file won't even run.

21:05 And then you'd be, like, hunting down where did I add extra space.

21:09 So, this library solves a specific problem, like, helping you write templates using Python language.

21:17 So, like, this is an amazing library.

21:18 If you like writing a lot of CloudFormation template, I would definitely recommend using this.

21:22 I see.

21:23 So, normally you use an AWS CloudFormation JSON.

21:25 Yeah.

21:26 Most people use JSON and some people, like, so, it's, like, it's up to you.

21:31 Like, it's, you can either write in JSON or write in, like, YAML.

21:34 But let's say you're writing in JSON and, like, say you mess up the format.

21:38 Like, let's say you mess up a bracket or a comma somewhere.

21:40 Then you might be, like, if you don't have the right linter, then you might be, like,

21:44 hunting down the files looking for, like, where did I miss the comma to fix this?

21:48 So, like, when you, like, having large templates, it gets harder to, like, I would say, debug them.

21:53 Yeah.

21:54 Another thing that's nice is JSON is static, right?

21:57 But Python code executes.

21:58 So, you could, like, loop over stuff and say, I'm going to need 10 of these.

22:01 So, let's call it this one, you know, one, two, three, you know, machine one, machine two,

22:05 machine three, or whatever, right?

22:06 Yeah.

22:06 I was going to actually point that out.

22:08 But, like, thank you for pointing that out.

22:09 Like, I was going to say, like, you can actually, like, leverage the power of Python language

22:14 to, like, iterator with stuff.

22:16 Like, let's say you need 10 subnets.

22:17 Instead of, like, writing 10 subnets in JSON, you could just iterate and then produce, like,

22:22 10 subnets.

22:22 Yeah.

22:23 Exactly.

22:24 That's awesome.

22:25 Yeah.

22:25 It just makes stuff so much easier.

22:27 Yeah.

22:27 Yeah.

22:28 You know, you hear all the time with cloud stuff, infrastructure as code or.

22:31 Yeah.

22:32 You know, that kind of stuff.

22:33 And it's just, it's like another layer, right?

22:35 Yeah.

22:36 No, I agree.

22:37 I agree.

22:38 Yeah.

22:38 Very cool.

22:39 Brian, you guys do anything with cloud stuff in your world?

22:42 No.

22:42 It's all hardware.

22:45 Yeah.

22:46 All behind the scenes.

22:47 Well, I mean, we use them.

22:49 We've got a lot of servers and stuff, and we've got a lot of services running, but they're

22:52 all internal.

22:54 We don't use a lot of cloud services.

22:55 Some things are easing up a little bit that we're using because there's a lot of things

23:01 that are just so much easier when you go into the open cloud.

23:05 But there's security issues.

23:06 Yeah.

23:07 Yeah.

23:07 For sure.

23:08 All right.

23:09 Awesome.

23:09 Well, another good one for people doing AWS stuff.

23:12 There's also the AWS cloud SDK or something like that.

23:17 Yeah.

23:17 Cloud SDK.

23:17 What's the relationship with these two things?

23:20 It's pretty similar.

23:21 But it also has support for TypeScript.

23:25 It also has support for Python and TypeScript.

23:27 But it's more like a personal preference.

23:29 So I prefer this library because it's pretty much supported in Python.

23:33 From the start, it was built for Python.

23:35 So that's why I like this library more than AWS cloud CDKs.

23:39 But they both do the same job, basically.

23:42 The only missing part is whenever the cloud CDK generates a template for you, it also allows

23:48 you to deploy directly using the CDKs.

23:51 But what Troposphere does, it allows you to generate the template, but it doesn't allow you

23:56 to deploy it directly on the cloud.

23:59 So you basically have to take the template and put it onto CloudFormation to deploy the

24:04 resources.

24:04 Yeah.

24:05 That seems reasonable.

24:06 You know, we could store those in version control and stuff like that.

24:10 Like, here's what we did to change our cloud setup.

24:13 And here it is in version control, right?

24:15 Yep.

24:15 Nice.

24:16 Well, I think that brings us to our extras, Brian.

24:19 Is that right?

24:20 I guess so.

24:21 Yeah.

24:21 Yeah.

24:22 I think so.

24:23 You got anything you want to share with folks?

24:24 Just that the PyCon 2022 site is there now.

24:29 You can't sign up yet, but there's the 2222 site.

24:32 I've seen some Salt Lake City mountains there.

24:36 Yeah.

24:36 I'm so excited to go to Salt Lake City.

24:38 I assume you're going, hopefully.

24:40 Hopefully, if I can.

24:42 Yeah.

24:42 I definitely have plans to.

24:44 I can't wait to see everybody in person again.

24:47 Yeah.

24:48 It's so interesting to think about where we are with conferences and stuff.

24:53 So, I was just at PyBay, which is really cool.

24:57 And I'll pull up that on the screen here.

25:00 Like, this is where the PyBay conference was held.

25:03 Like, literally in this outdoor food cart area where there's a bunch of cabanas.

25:07 And each cabana had its own TV and its audio video feed.

25:11 So, you could be in groups of like six or seven outside.

25:14 But there was like hundreds of people there, right?

25:16 Which is really cool.

25:17 And I think that that's kind of a template for going forward for a lot of things happening

25:23 these days.

25:23 I've actually invited Grace, who was one of the people who helped put this on the show.

25:27 So, maybe we'll have her tell us more about this later.

25:29 But I don't know how this works into an event as big as PyCon or as big as any of those,

25:34 right?

25:35 Yeah.

25:35 I mean, you got to have a really big outdoor space.

25:37 Would you be awesome?

25:38 Maybe like a theme park?

25:40 Like, I'm going to watch this one from the roller coaster.

25:42 Yeah.

25:45 Awesome.

25:46 Yeah.

25:47 So, Jose out there says, looking forward to attending my first PyCon.

25:50 Yeah.

25:50 It's super fun.

25:52 And Teddy, hey, Teddy says, whoop, whoop, whoop, whoop, whoop, whoop, whoop, whoop, whoop,

25:54 for the PyCon announcement.

25:55 Yeah, that's great.

25:56 How about you?

25:57 Any extras?

25:57 You know what?

25:59 I didn't have any until I did.

26:01 I actually wanted to just point out this tweet that I saw you put out here about.

26:04 Oh, I think I just saw the tweet in the morning.

26:07 Yeah.

26:08 About PyE and V.

26:10 Yeah.

26:10 As having a challenge for Windows users.

26:14 And if you make that the core part of your tutorial, then you're starting out putting Windows users who represent, what, 45% of the developers

26:23 or something on the back foot on your tutorial.

26:26 So, yeah.

26:27 What do you think?

26:27 Well, it was just like a comment.

26:31 I saw a tutorial and I was like, why is this?

26:33 I mean, that's not the default way to install Python.

26:35 So, I put this out there and it kind of blew up a little bit.

26:39 Yeah, exactly.

26:40 Yeah, it's got like 121 likes.

26:42 So, anyway, I think that's an interesting thing to add.

26:45 Muhammad, you got any extras as well before we get to the next thing?

26:50 So, my extra is like how to learn Linux.

26:52 So, I read this article a long time ago, but like it's an amazing article for especially

26:56 people who are like getting to Linux world and like learning command lines.

27:01 So, like it talks about how you can use tools like using man pages and like help flags with

27:07 the tool.

27:08 So, like it gives you like info and insights about how do you actually use the tool and

27:11 like exploring wikis and like stack of questions.

27:14 I think it was an amazing article for like beginners who want to like, we're just getting

27:18 into like command line or Linux world.

27:20 That's cool.

27:21 That's my experience.

27:22 I find, I found the Linux command line macOS a little bit less because there's often an

27:28 alternative, but certainly the Linux where the sole access to it was through an SSH.

27:33 I found it intimidating when I first got into it.

27:35 No, I actually, I actually got into Linux right after my first semester of college.

27:40 I was just trying it.

27:41 It was fun.

27:42 And when I just took command line, I was like, wow, you can do so much in command line.

27:46 And that rest is history.

27:47 Like I've been using Linux for like, I would say five years now, but now I'm recently switched

27:52 to macOS because of my work and I'm having hard time managing windows now.

27:55 I guess I, I had trouble switching to PCs because I, oh my, it was in Solaris when I was

28:00 in college.

28:01 Oh, interesting.

28:02 I remember walking by the Solaris going, oh, those are different.

28:05 Very interesting.

28:08 Yeah, cool.

28:09 But no, this will be super helpful, especially to a lot of folks out there who don't work

28:12 with a lot.

28:13 I mean, now I'm totally comfortable with Linux, but I remember the learning experience.

28:17 So I'm sure this will help others as well.

28:18 Nice.

28:19 All right.

28:19 Well, I believe it is time for a joke.

28:23 And speaking of real conferences, this is something that I, we've done before at the PyCon's.

28:29 We did this at PyCon in Portland with the Portland Art Museum there.

28:33 It was really fun.

28:34 And it's the classic programmer paintings.

28:37 I love these.

28:39 Yeah.

28:39 Yeah.

28:39 So the idea is you take a legitimate historical, maybe 400 year old piece of fine art, and then

28:47 you ignore the actual name and you put your own sort of techie interpretation upon it.

28:53 So here, this one, we've got this balloon taking off into like a dark, cloudy red sky,

29:03 and two wolves just like sort of forlorn watching it go.

29:06 The ground is kind of on fire, but it's also snowy.

29:08 I don't really understand that.

29:09 Yeah.

29:10 But that, you know, this is some proper painting that who knows what it is, right?

29:14 But if you look at the title, the title is Alphabet Cancels Loon, right?

29:19 Loon was their project where they'd put balloons up over places without much internet, and that

29:23 would beam down internet.

29:25 So here's like the final balloon balloon going off into the smoky sky.

29:29 It's in Ziedislaw Besinski, 1979, oil on Masonite.

29:35 Beautiful.

29:36 Alphabet Cancels Loon.

29:38 So we used to go around to the art museum there, and we would like at the conference

29:43 or it would have like a dinner there or something.

29:44 We'd just go around and like try to one-up each other on doing this to like real paintings.

29:50 It was fun.

29:50 But this whole classicprogrammerpaintings.com, endless joy right there.

29:54 I'm definitely going to check these guys out.

29:58 Yeah, you can spend a long time going through.

30:00 It's been around for a while, so it's good stuff.

30:03 I'm chuckling at some right now.

30:06 I got to stop looking at it.

30:07 Yeah, exactly.

30:07 I'm strongly resisting the urge to just scroll through them because we're doing a show.

30:12 I'll do it later.

30:13 Thanks, Michael.

30:14 Yeah.

30:15 Yeah, you bet, Brian.

30:15 Thanks for being here as always.

30:16 And Mohamed, thank you for joining us.

30:18 It's been great.

30:18 And it was a pleasure to be here.

30:20 Yeah.

30:21 Thank you.

30:21 You're welcome.

30:22 Bye, everyone out there.

30:23 Bye, everyone.

30:24 Thanks for listening to Python Bytes.

30:26 Follow the show on Twitter via at Python Bytes.

30:29 That's Python Bytes as in B-Y-T-E-S.

30:32 Get the full show notes over at Python Bytes.fm.

30:35 If you have a news item we should cover, just visit Python Bytes.fm and click Submit in the

30:39 nav bar.

30:40 We're always on the lookout for sharing something cool.

30:42 If you want to join us for the live recording, just visit the website and click Livestream to

30:47 get notified of when our next episode goes live.

30:50 That's usually happening at noon Pacific on Wednesdays over at YouTube.

30:54 On behalf of myself and Brian Okken, this is Michael Kennedy.

30:57 Thank you for listening and sharing this podcast with your friends and colleagues.

Back to show page