Transcript #279: Autocorrect and other Git Tricks
Return to episode page view on github00:00 Hello, and welcome to python bytes where we deliver Python news and headlines directly to your earbuds. This is Episode 279, recorded on lucky April 13 2022. I'm Michael Kennedy.
00:12 And I'm Brian Arkin.
00:13 And I'm Brian skin.
00:15 Hello, Brian's Great to have you. Hello.
00:20 Great brands think alike.
00:22 That's right. That's that's the same. Brian skin. Welcome. It's great to have you here. You've you are now completing the trifecta of podcasts, I understand.
00:31 Yes, indeed, I was on a panel for talk Python and an episode of testing code a little while back and excited to be here for Python bytes.
00:40 Yes, you've been a big contributor in terms of sending topics our way. So it's only fitting that you're here. Tell people real quick about yourself before we jump into the topics.
00:50 Sure. I'm a chemical engineer by training. I'm not actually a software dev by day. I have a PhD in chemical engineering. I've been working for the last 10 years or so at a company here in Dayton, Ohio, Faraday technology working on electrochemical process r&d. So there's a lot of science there some programming, mostly for data analysis, things like that. But I also have done a quite a bit of Python on the side in documentation area and various things like that. So
01:19 extol chemical engineering, it's pretty awesome. And it's great to have someone here who's not a straight software developer, you know, we get a lot of throw myopic views, and I think you'll have some interesting perspectives. I hope so. Yeah, I hope so as well, I'm sure. Now before we kick this off, I want to say this episode is brought to you by data dog, check them out at buy them bytes.fm/data Dog. We'll talk more about them later. Right now, Brian, maybe we could talk about f-strings. What do you think? Yeah,
01:45 I mean, I love f-strings. I use them all the time. But I was like, really thought it was cool. There were a couple of new resources that I kind of wish I had had earlier. This one a couple, they're new. So we've got from Florian Bruin. And he's he's was hugely helpful to, to getting doing the code review, or book review and code review and all that stuff on the PI test book. So I definitely want to shout out to him for thank thank him for doing that. But so he generated this, this Python f-strings, it's called f-strings dot help. And it's just like, it's a Jupyter Notebook looking thing I think he created, created it with Jupyter Notebook. But it's it just quickly goes through all of the formatting stuff of f-strings. And there's a little bit of explanation, but it just sort of exactly shows you, you know, what the syntax is and what the output is really concisely. This is a nice, nice run through of the F string features.
02:47 Yeah, that's cool. It looks like if you were trying to either learn Python strings or trying to help someone learn Python three strings, you could just send them this and go here, scan this, you'll be good to go.
02:57 What I like about it is that just the terseness as well. So this is a decent a decent reference to bookmark for looking things up. Yet. The other thing I wanted to point out was an article called Python f-strings are more powerful than you might think. And that's exactly kind of the gist of it. It's it kind of it's more discussion. It doesn't mean it does sort of tell you what they are, but it kind of assumes you already know. But systems some really cool things like date, date and time formatting. Have using it for debugging with variable names. We've talked about that on the show. Making advanced taking advantage of string representations. There's a there's even embedded, I didn't know you could put f-strings inside of f-strings. So there's, there's part nested f-strings is it they call it so interesting stuff. Yes,
03:49 yes. So yeah, that's it f strings. I had no idea. I didn't either.
03:53 I just totally
03:56 relate totally. Yeah. templating. One thing to then template into another thing? Absolutely. It's super helpful. Okay, cool.
04:03 So yeah, it's easy to forget that you can apply the standard, I guess string dot format, type of operators like, colon point three F or colon comma to put digit grouping. But in f-strings, right, because it's, it feels more like you're working with a variable than you are with a format. Character. I
04:23 mean, short examples like this of here's a cool thing you can do with even though a well established basic feature like that can really help people go oh, hey, that's just what I need and run with it.
04:33 Yeah. Very nice. Oh, that's a great brain. I love it. Now, are we ready to move on? Yeah, definitely. Cool. All right. I kind of want to blow your mind with this thing here. You've probably heard about Bloomberg terminals. So if you're in the vestment space, like if you work at a hedge fund or an investment company, specially in Manhattan, you know, you'll sit down you'll see like these huge Six monitor crazy setups that would make gamers jealous around them and I look at what is going on here. And one of the tools they use a lot. It's a thing called the Bloomberg terminal that lets them look at all kinds of different visualisations and real time instant updating things around the stock market and whatnot. That is a commercial product project that, as best I can tell, I mean, there's probably discounts or whatever, but it costs around $2,000 per user per month, which is a non trivial amount of
05:32 time. Cost, right?
05:36 I mean, no wonder we're all getting like little percentages of money sucked out of our 401k retirements, because all those people are like paying that much money to like manage our accounts. Yes, exactly. So I want to introduce you all to open BB at open bb.co. This is the equivalent thing. But several interesting aspects. One, it's open source two, it's free. That's cheaper. It's not necessarily the most important thing. But it also gives you access to all sorts of tools that we know and love from Python, especially on the data science side. So this open BB thing is this terminal type thing you can instal it's really got this sort of weird blend of like CLI no will McGuigan would be super impressed with all of its like, terminal UI, it's two aspects. But then it also pops open interactive windows that are like graphs and all those kinds of things. I'll pull up some examples in a minute. So you get access. It's not just that it's free, but you get access to all the Python data science stack. And it is itself created in Python. So pretty cool. It's pretty popular, it's got 11,000 github stars. And what you do is you show up at this terminal, and there's even an interactive live version, you can have dark mode or not dark mode turned on on the website. I mean, I love it. This is really a Polish thing. And you can type things like stocks, if you could spell stocks, you could type socks, and you know, come up with all these ways that you could explore them that you could type BA and it'll come and give you these things. And eventually, if you get to the right spot, it doesn't happen on the website, but it'll pop up these extra windows that then like let you explore things with graphs, and so on. So very cool. Let's pull up some of the terminal things here. And look at the features, or the features. So you can instal it through its own installer, you can instal it through Anaconda. Or you can run a Docker image of it to get it to run. So it's sort of summary is Python based, integrated environment for investing research that leverages state of the art data science tools and machine learning technology, then navigate through over 500 different views and functionality. So here's some of the pictures that we can look at. If you go to the product terminal and just scroll down. You can have these really cool graphs of like significant events happening along here and extra information. You can look at basically an Excel View, you can look at 3d volatility sections, you can look it's sentiment analysis here. The bit coin rainbow chart. I don't know how to read rainbow charts. But isn't this an amazing view for something that runs in the terminal?
08:32 This is great. That's astonishing. Yeah,
08:35 it really is pretty astonishing. And like the things just keep coming and so if you just keep scrolling through this they're stuffed away to like to understand how is the economy doing apply AI predictions to like GDP, and all sorts of wild stuff. So it's this really crazy blend of terminal tui plus pop open a bunch of data science explorations and then being Python. I'm sure you can explore it yourself. My I looked at the requirements file. It's like maxed on requirements in there. But I think it's based on tornado, as far as I can tell. So but and
09:14 yeah, good. Will points out it also uses rich.
09:18 Yeah, well, it uses
09:20 rich, a very cool thing and tested with PI test. So
09:23 Oh, my goodness. Yeah, so that's awesome. Anyway, I am super impressed with this. It's an open source project based on Python sort of democratising a lot of these things. And if that wasn't enough, I think here's one more sort of side story that I think is interesting. So I'm sure you too, have seen you go. It's not as common as it used to be, but you go to some open source project or some application and says, buy us a coffee help help make that next feature happen. This one has a different banner at the top of instead of coffee. It says We've just landed our $8.5 million seed funding round and we're about ready to get started. I mean, that's some kind of crushing it for open source isn't Yeah,
10:03 definitely. That's a lot of coffee. That is, they're gonna be
10:07 so jittery. Just like the stock prices.
10:13 Exactly. Look so much fluctuation Oh, no, no, that's just me. It's actually very still,
10:17 maybe that's why stocks go up and down.
10:21 Too many traders have too much coffee.
10:23 Yeah, that's probably actually true. Anyway, I think this is a really cool Python application, it looks well done. And it looks pretty modern. And yeah, it just looks like a neat way to apply some data science to investing.
10:35 Do you have a sense of the learning curve? Like is it mainly pointed at directed at investment professionals? Or is there an on ramp for casual use?
10:44 When you look at their description, it does seem to be focused on casual, sort of a casual use case here. We only see it says a terminal built by the community shape our tastes that way I see this somewhere that I can't remember where I ran across it. But they do talk about sort of like individual investors getting access to the tools that the companies that the big people at the big banks and hedge funds would have. So it does it does sort of seem to be aimed at that. And my experience is pretty easy to use. I don't know, it's easy to understand the output, right? That's more of us investing economics problem, though.
11:23 That's a perpetual problem. Yeah. Yeah.
11:26 Indeed. All right. Well, people can check this out if it sounds interesting to them. Right skin, what do you got for us?
11:32 So my first item is pipe project at Kamaal and PEP 621 for Project metadata and property pipe project, got pommel coming to setup tools. So people in Python land are going to be pretty well familiar with pipe Project dot Tamil at this point, you know, originally was the PEP 517 and PEP 518. You know, that created it and, you know, started the basics there. And then you had black doing project configuration in there. And it's kind of been slowly snowballing over the past few years. And one of the big pushes of PEP 621 Who's Who of of Python packaging authors here was trying to standardise project metadata and also standardise it in a way that the metadata could be specified statically. Because that, you know, for things to get uploaded to PI API, if you want to have information about dependencies or various other things like that, if you have the metadata specified statically, it's much easier to get to it's you can trust it more. So the PEP, it's how it's defining how to put project metadata in Pi project at Tonle. How to tell the build tools like build or flit, what is a static defined in declaratively in the metadata and what's dynamic that is going to be provided dynamically later on. And a number of tools had implemented pipe project with humble support. Things like flit hatch PDM, not poetry yet, though they're discussing it, but set up tools was still missing it. It's been an issue on the set of tools GitHub tracker for a while, and with a lot of discussion there about what it would take to bring it in. One of the big appeals of moving to this for setup tool, specifically, there have been the move from to try to bring static metadata in the setup that cfg. But there are some, you know, in the in that discussion, there's some serious problems with the INI format, because it's not structured, it doesn't have good, like complex data type support,
13:38 right, nested embedded things don't work. Yeah. You
13:41 know, like, there's no ini has no sense of of an array. So if you had to set up that CFG with an array in it, set of tools actually had to take that as a string representation of an array and then can ratify it by executing it basically, instead of the tumble where it actually knows it as a an array in a table. But in any event, Anderson Bramble Harry has just within the last month or so I think it was finished an experimental implementation of PEP 621 Instead of tools. There was a discus thread, seeking feedback from the community try it out report bugs. I tried it on one of my projects, and it mostly worked actually turned up a bug that interesting fix super quickly, where I do dynamic, long description, which turns into the readme for for the PI page.
14:35 Do you mean you read it out of a text file or something? Well, so
14:38 what I have is I've got documentation links on in my readme that point into like the main branch, but when I do a build to PI API to do a release, I want it to point to an archival version of the docs on read the docs, and so I dynamically do a replace on the docs branch for those links.
14:58 will argue a special butterfly I
15:01 have complicated needs, it's I'm sorry. But you know, so I do have that setup and it broke. And I reported it and he fixed it. So as far as I can tell, you know, it's it may be experimental, and it probably will change, especially some of the issues around specifying dynamic metadata. But it's, it's at least working reasonably. And so, check it, check it out. If you're using setup tools, take a look at switching over to that he made a tool that will that can convert set up that CFG to pi pipe Project dot Tamil, the project is ini to Tamil. And there's some others, check the show notes. I've got a number of things listed there.
15:47 Very cool. I suspect that ini to Tamil might be more generally useful. Actually.
15:52 I think that's why he titled it that way. Instead of the setup dot CFG to tumble or whatever.
15:58 Right. So cool. Yeah, this is great. More progress on the pipe project, that tumble stuff. Definitely. Cool. Now, before we move on, let me tell you all about our sponsor this week, data dog, they've been supporting the show for a really, really long time, they did all this great. They have a real time monitoring platform that unifies metrics, traces and logs into one integrated system. Their APM empowers developers and teams to identify anomalies and resolve issues and improve application performance. So you can begin collecting stack traces and visualising them as flame graphs and organising them into profile types such as CPU or IO types of reports. Teams can search for specific profiles and correlate them into distributed traces and identify slower underperforming code for later analysis and optimization. And with data dogs APM live search, you can perform searches across the full stream of ingest traces of your app over the last 15 minutes. Like I need to figure out what the database is doing and the API and the front end and all those things. So try them for free. With a 14 day free trial and data dog, we'll send you a free T shirt. So just check them out and support the show by visiting Python bytes data, FM slash data dog, or just click the link in your podcast player shownotes to get started. Nice, indeed. All right. All right. Well, what do you got Next, I've
17:23 got get so this isn't necessarily Python only related, but But I use get a lot. And I was I didn't know you could do autocorrect with Git. So this is Wayland Walker, he's, I think he's been submitted other things to us on the show. But he wrote this article called configure get to autocorrect your fat fingers, you know, or just just your sloppy typing. So so there's this, like, let's say you do git checkout, Dev, but you spell checkout, CH e k, O UT and misspell it will get will like tell you that you did it wrong. And it guesses what your your what you meant and tells you this is a similar command is this. But there's a configuration option, that option that I didn't know about called to help dot autocorrect that you can set a timeout, and it just automatically runs the command it thinks you want it. So I'm playing with it. And so far, it hasn't got anything wrong. So you can I've set it to one second also. But you can set it to things like 10 seconds or I don't know why you'd want
18:31 Did you mean for Did you mean RM dash RF applying?
18:35 Just get commands. It's not everything. So
18:39 formatting hard drive, so resetting is hard. Oh, yeah, that one actually would be kind of destructive. That was bad.
18:48 But I so I realised that I added this to my workflow. But I realised that I hadn't really talked about my workflow at all on my blog. So I went ahead and just showed the things that I do normally for a quick change, I usually check out main do a pull, then create a branch with Checkout dash b, and then a commit, I usually do commit dash a dash m with a message that I want to talk about diesel, that one a little bit, the dash a and then also push because I want that to be faster. So the dash a, what that does is that's the push anyway, I got got these backwards anyway, the dash a will just say instead of having to to stage a file or or add them so normally you have to add your changes and then you commit them. But I I just want to usually just want to commit everything that I've changed or delete it also if I delete something I want that to change. So the dash a does that I just learned about that recently. So
19:53 Oh, interesting. So you can basically skip the git add dot Yeah, or something equivalent to that or the git add file name
19:59 right? In the ad.is a little dangerous because it'll add everything he unstaged stuff to so if you have temporary files or or just play, you know, you get a test file or a goofy file that you're just playing out with. I don't want to add that stuff I, I intentionally add things that I want or I mean, add, what's the other one, you know, uncommitted things, I don't usually want to have that. So the dash a is nice that it doesn't do that. And then the last thing that I did was the the global, there's another configuration change of global push dot default current. So weird. But what this does is that the, there's a bunch of values for that, I'm going to have a link to the other show notes and the other the documentation about all the values in the show notes, but the I like current because what that says is the branch that I'm using branch name I'm using now, just make that the one on online. So if you are fantast upstream, if you don't do that, it says oh, there's no upstream named this branch. And you have to do this, like, okay, and that you can do it with push, you can do a dash you in push to make it automatically do that. But it's just verbose. And I always wanted to do that. So anyway, that's, that's my new Git workflow for simple stuff.
21:19 I love it. Very nice.
21:20 Yeah, I really like that, that that current having to do without all that extra typing, even with Autocomplete is just annoying. Yeah.
21:27 So
21:29 Brian s, it sounds like you get a lot. What's your view of source control from a chemical engineer perspective, like in that ecosystem? And that that environment? How do people view this kind of stuff?
21:41 they don't. Basically, I mean, if anyone who's who's familiar with, with the much development probably uses it, some actually, there's a 3d physics modelling multiphysics modelling tool COMSOL, that just added a source control like feature into it. So it's starting to give the the data reproducibility and the history tracking is starting to become more of a thing. But yeah, it's it's very often the, you know, V two V 320 2020.
22:14 V three V. Final, final, final final?
22:18 Yeah. So I mean, it, you know, I have blog posts churning about strategies for version control on data analysis code, because of the reproducibility and needing to track environments precisely for reproducibility at a point in the past. And, you know, tagging tagging commits for, you know, just like, oh, this, basically, every time I run the code, I need to know what the state of it was. And the tooling is not that great for doing doing that. At least I haven't found much. So yeah, it's still evolving, I think,
22:54 indeed. Okay, cool. Alvaro, points out at work, they have a project with 6000 lines of an an ini final that i and i tamo might be just what they need. That sounds like sounds like a lot.
23:07 It definitely have to, you have to you have to prove them afterwards. Because you know, there, there may be some stuff that doesn't translate cleanly. But yeah,
23:15 yeah, we need a Tamil to ini. And if you can round trip it, and it's the same, then you're good to go. Yeah, that'll work. Keep your sanity. All right. This next one's a quick one for me. But it'd be useful for people who are working with JSON web tokens to JSON Web Tokens are a thing that you can exchange with maybe a distributed login system. So instead of using like an API key that you just pass around all the time, you could say, I'm going to either share certificate or somehow log into some other system. And I'll get back this token that I can share on to other places to communicate who I am, communicate what roles or permissions I should be granted, and so on. So if you work in that world, you work in a world of dealing with cryptographic signatures, and picky algorithms and stuff like that. So I just wanted to give a shout out to JW t.io. So this is a place that allows you to decode, verify, and debug JW. TS is pretty cool. So you come down here. And what you do is you put in some encoded token, and you say which algorithm of the encryption algorithms are using. And then what pops out is the separated JSON result that says here's the header it says what algorithm and what type it is, what version of JW T and so on. And then what the actual data was like, This person is a subscriber, their name is John Doe. Shouldn't scroll because it doesn't seem to work. And then here's like the signature and whether or not the signature was verified, and stuff like that. So I think that's pretty cool. You can hit Share JW T and it'll just copy that. You can send it along. But anyway, I think if If you're working on this stuff, this might be pretty handy. And while you're at it, there's somewhere in here, that libraries, you can say see the JW T libraries. And let me make that smaller ish. So the way it shows it's a little bit weird. It has the technology, and then a whole bunch of checklists. And if you were to go down to the bottom, you can see the actual package name. So like, there's a bunch of dotnet ones here. Don't care about those. But the Python ones are down here and says, who's created them, right, like SEMO source, or Michael Davis. And then this one's called Python, Jose, che W crypto or PI JW shows you which algorithms are supported and how it works, and so on. So I think this is pretty cool. If you're going to work with these things, you'll think
25:47 I don't have a lot of expertise with authentication and tokens of this sort. How is this different for someone like macaroons, where it's more like a advanced cookie? Is this separate from the browser or
25:59 this, this is done and several ways, I think so you can go like to a federated identity provider. So something like auth, zero or Microsoft Azure Active Directory or something like that. Or you can have your own identity provider from like identity servers, like one of these implementations. And basically, it allows you to do single sign on and federated sign on across different platforms without just taking and using straight cookies. Okay, it works both for API's and for other types of you can do it within an app or with an API. So like, if I call an API, if I log in with me, and I call an API, and I want to communicate on to my identity on to the API's that API is calling. It's like those kinds of sort of more complicated scenarios. Yeah, gotcha. Yeah. Yeah. Anyway, JW t.io, check it out. We got Brian's again.
26:58 Okay. For my second item, I'm gonna appreciate the opportunity, Michael and Brian Aachen to do a little bit of self promotion. I have a new project, I'm calling Jupyter 10 fires. So one of the really powerful things about Jupyter Notebooks are great, you can do a whole lot with them. They're obviously being used everywhere, data science, science, scientific analysis. And one of the features of at least the Python kernel of Jupyter is that you have a global namespace that you work in. And this really adds to the power of it in some ways, because everything you do in the notebook flows from one cell to another, you don't have to worry about shuttling things back and forth. But you know, as has come up, you know, countless times here and elsewhere, you have namespace contamination problems, where you accidentally assigned something in one cell, and then you forgot yourself, because either you use something and have a typo, and accidentally use something from another cell, or you something's lingering on, and you have the same variable name and multiple cells, and all of a sudden, your analysis behaves funny, or it's not reproducible, or, you know, you close down for the day and start back up, and the whole worksheet blows up. And so what I've put together is a, it's a notebook extension for Jupyter. It's based upon another library of mine temp RS, which I need to freshen a bit. But this is a it's a front end extension for Jupyter. And so what the underlying library does is you import from 10 VARs, you import the capital temp VARs context manager, then I'll just define a variable here. And then in this cell, I've got a context manager temp VARS. And I declare to it, alright, anything, this syntax says anything that starts with T underscore is gonna be treated as a temporary variable. And so when I run this, the first line is checks to see if T underscore a is in the namespace. And it's not because it's inside of the temporary variables, a context, then I assign it, and indeed, it assigns. And then when I pop out the back end, the previous value five is now restored to it. So what this does is it it makes sure that you don't have contamination coming into the cell, and anything you do in here is reverted to the prior state out the back end. That's us. Yeah, so that's using the underlying library. But what I did is like, you know, okay, fine, it works. But you have to have this whole thing that you type out, and it's cumbersome. So what the the, the Jupyter plugin extension does is it lets you, you can turn on this toolbar for tags for each cell. And then if you define, go, and if you define a tag with this syntax, you can also do a temp VARs end but here temp var start T underscore. Now this variable will automatically be treated as a temporary variable. It's no longer in the namespace when you execute the cell. And what is doing behind the scenes is it's actually taking the code patching the execute functionality for the cell and wrapping it in a temp RS context manager behind the scenes. So that anything you use Send here. Tt underscore is a temporary variable, you don't have to worry about it. Getting contamination from the rest of the namespace. And then just like the other it still there. Yeah. Yeah. So it's brand new 0.1 is out on on pi pi. The README is in order to satisfy the audience here. I have animated GIFs,
30:22 those screenshots on a UI tool. I love it. Yeah.
30:27 Animated to boot. So readme has the views, it uses instructions, it's on pi pi, just to pip instal Jupyter temp bars, and then I have a shortcut script to actually instal the extension into your Jupyter environment. I have a number of features that could be added to it. Different things that the underlying library could could have added to it. But I'd really love it if anybody who is intrigued would try it out. Finding report bugs suggests features that you want. Because you know, it's a small thing, but it can be a big problem. And if this could be at least a partial or substantial solution for people, that would be awesome. Yeah. Yeah. Nice work. This
31:04 looks great. This is a good.
31:06 Yeah, the problem of having variables shared across those things when you didn't intend them to be so tricky in so many ways. I mean, Jupyter's or, like, go to Jupyter cells, or like, go to statements with no traceability, right? Because it's, you could run them down, then you could go back and run the one in the middle again, and then you could go run another like, you do have, except for just a little in and out numbering. Like you have no idea the order they ran in.
31:32 Yeah, dope. Like hygiene is really tricky. And yeah.
31:36 Right. I can I feel like I cut you off, we can see
31:38 oh, just he commented that to satisfy us. He's got or the the entire Python community has got animated GIFs. But to be fair, I it's not just technical books and READMEs. I don't use cookbooks that don't have pictures either. So yeah, it sounds good. I do read novels that don't have pictures. But so it's not everything.
32:00 I really hate there was the pictures in your head. So
32:03 I really hate the graphical novels that don't have pictures.
32:07 Those are the worst. They're the worst.
32:08 All right, real time follow up Brandon brainer. Former co host here says this is talking about going back to why Jebi jadibooti over something like cookies. So So imagine having something like auto zero when you look maybe at zero, when you log in, it gives you back this JW T, which has a timeout, the front end has this it can send it to your API. And then also it has the signature to the verifies it wasn't tampered with. And you can verify the sender because you can decrypt it and stuff like that.
32:40 Okay, better chain of custody. Okay. All that tricky.
32:43 Cryptography stuff. Speaking of other things, extra things. Guy's got some extras we should cover.
32:52 I have a few, actually some quick ones. All right, bring it on. So we've got GitHub issues are finally live like. So they're there. Their Python issues are now on GitHub. So now we didn't jinx it really, really is there. So Nuff said. I was you know, I've used lorem ipsum. Before, I think everybody doing front end stuff has. But I didn't know there's a there's a cool page like Lorem ipsum.com, that has some a translation. So you can read what it means at least a 1500s, of 1914 translation. So it's sort of an interesting read. I won't get into it here. But it's worth a read if you're curious. And then one of the things we do sometimes at the end is funny stuff. And one of the things we've covered is very various O'Reilly or really covers. So I found this dev to are really cover generator, I didn't know where it was somebody Oh, nice. And you can just make up your own. So I made one up, pass it around last night. So it's kind of a fun thing.
34:02 I put I pulled that from the show notes and pass it on to my friends and they've run with it. They're like
34:08 whatever sent test coverage unit test with no asserts at least CI is happy.
34:13 So anyway, this is awesome. How about you got any extras?
34:18 I have a few. No, I your mentioned made me add a third one or another one rather. Let's go here. So hipster if you just need a little more pzazz in that lorem ipsum and you want people asking questions. This is a Hipster Ipsum at hips, hips. some.co is a generator. You can give it your flavour. So you go over here and say like how many paragraphs we only need two paragraphs and hipster neat or you can do with a shot a Latin nice, and it starts out with a baby gentrify Tumblr butcher Crona succulence locos subway tile food truck letterpress tote bag tofu
35:06 doesn't flow quite the same as the Latin but it works.
35:08 Yeah, exactly. You get the fashion acts and all that. So anyway, that one, that one's kind of fun. More seriously, quick shout out worked with Christos mascus from the Microsoft Identity team speaking of JW Ts, and he and I just put together a course secure API's with FastAPI and the Microsoft Identity platform. So people can check that out if they want to do DWT and other types of federated identity with FastAPI. That's a fun course we just launched yesterday. Nice. Excellent, cool. Yeah, thanks. And then a quick shout out. Seth sent over this thing called Python virtual env for Windows sorta ish. And it's this idea to bring some of the pi E and V virtual environment features to Windows. I haven't really played with this. But trying I guess some of the features there for the virtual environments don't work on Windows, but his sort of plugin script does so you can check that out, which I think will be helpful for some people, for the Windows people. And you know, that's it for my items. Brian skin. Do you have anything you want to share as well?
36:14 Yep, I've got a few quick ones. First of all, as many probably know, Eva stepped down. Julissa Scott stepped down as the executive director of the PSF. Believe it was at the end of last year PSF has found their new Executive Director Deb Nicholson. So congratulate congratulations to all there is so and more generally the PSF is has been hiring lately. Last year, there was the packaging project manager Shamika Mohan and
36:46 there's the and the developer and residents. Absolutely. They also
36:50 there was a posting for an infrastructure engineer to assist with the facilities that the link now 404. So maybe they've made their hire I don't know. But the posting was there. Now it's not. And then actually in the steering Council notes released for March, there is beginnings of discussion about hiring a second developer in residence, which would be terrific. So
37:14 yeah, it seems like it's been a big success. So getting someone to help look, I shout would be really great. Definitely.
37:19 Two more quick things. One pi, Ohio, the regional Ohio conference, the call for proposals is open. It's going to be a fully virtual conference again this year. So anybody who is interested, submit, submit, submit. Nice and then and then one interesting tidbit relevant to you know, we have to talk about Pydantic at least once I think right along with Anthony Shaw and well McGuigan. This was a couple of days ago Samuel Colvin of Pydantic fame posted this somewhat cryptic tweet here, showing over a 10 fold increase in speed for some sort of Pydantic features here. So I don't believe the this has actually dropped yet. This is all I know. But this looks pretty exciting.
38:07 The magic magical Pydantic core is coming. Yes. Cool. I have no idea what it is. But very exciting.
38:14 But I want one faster.
38:18 Maybe it's the Pydantic pony.
38:21 The Pydantic Unicorn now that's great. All right, I got no more extras. But I have some jokes. Yay. All right, I think this first one might be from you, Brian skin. Is that right? Yeah, I can't, you want to tell us this joke here
38:37 go this way. So it's a riff off of the the various elements of a business enterprise trying to bring a product to a customer, that's what they actually want, you know, with the tree and the swing and the arm chair swing and the swing with no ropes and that this one is more cat directed. And the left panel says product features. And it shows this really nice multi level cat tower with beds and scratching posts, and, you know, very attractive. And on the right, it says user needs and it has a cat peeking up out of a cardboard box.
39:10 Exactly. Slightly over designed. Would you say? Oh, just
39:14 a bit. And I think there was somebody responded to that there was a tweet lower down saying, this is exactly my life. I have an untouched, you know, cat tree in the corner and all the cat sits in the box. So
39:26 this is also true for children. A lot of times the box is the best part. Definitely. Alright, I brought two more for us just because they're both they're all short. And I thought this would be fun. So here's one that says, junior developer. How did you find the bugs so fast? And has a senior developer who has this sort of lion meme? I was there when it was written.
39:49 Line which in the wardrobe reference there I think?
39:52 I think so. All right. And then this one really, I really appreciate this one. So there's two sort of time lapse Google search. She has pages with text overlaid on it. And it says 831 C++ Hello World 833 alternatives to see of course is complete with a top stand STD colon colon C out less than less than HelloWorld. less than less than standard out colon, colon, Endo, the formal C++ style like as print out or whatever. Yeah. Hello, C++, hello world alternatives to C++. I just leave it with that you guys.
40:34 I had one semester C++ in college and I don't miss the compiler errors at all.
40:38 Now, yeah, C++ has some some wild stuff happening. So we're working on it somewhat. I did a couple years of professional C++ and it was okay. But a lot a lot of craziness.
40:49 Yeah, you don't have to use the crazy parts, though. So with this least in the embedded world we use it's it's C++, but we just selectively use the cool features mostly looks like C.
41:03 Yeah, I think C++ is getting a big update as well, isn't it? I think there's
41:08 there's regular updates to it. There's so many new things coming on. It was fairly stagnant for like, like decades, and then yeah, in the last 10 years, there's been a lot of new changes.
41:20 I feel like I've read people griping that they're making C++ too much like Python or something, adding I don't know exactly what that means. But but
41:28 we proposed taking away the semicolons what?
41:34 Too much I could definitely get rid of the curly brackets. So
41:38 yeah, there's a lot of parentheses when you don't really need them. I O'Brien Aachen, thank you as always, and Brian skin. Thanks for being here.
41:47 Thank you. Thanks. Thanks for having me. You bet.
41:50 Bye, everyone. Bye bye.
41:50 Transcribed by https://otter.ai