Transcript #288: Performance benchmarks for Python 3.11 are amazing
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 288. Recorded June 14 2020, to Michael Kennedy,
00:11 and I am Brian Aachen, Brian, how you doing? I'm excellent today.
00:15 I hear you're a little busy.
00:17 But it's just, you know, being a parent and having side jobs and stuff like that,
00:21 of course, well, it's better than the alternative.
00:25 I was talking to somebody this weekend about like their one job and trying to balance job and life and I'm like, I don't even remember what that's like with just one job.
00:33 I know, or you have a job where you go to work and you do the work. And then when you go home, you there's no real reason to do the job anymore. So you can just step away from it sounds glorious. And yet, I continue to choose the opposite, which I also love. All right. Well, speaking of stuff people might love. You want to kick us off for the first time?
00:50 Yeah, we're going to talk about polar bears. No, not polar bears a project called polars. And actually, it's, it's like super fun and cool. So polars was suggested to us by actually several listeners, we got several people sent in. And I'm sorry, don't have their names. But thank you always send send great stuff our way we love it. But polars is billed as a lightning fast data frame library for rust and Python. And it is it is written in Python. No, it's written in rust. And but they have, they have like they've have a full the full API is, is present in Python. And it's just, it's kind of neat, actually how they've done it. But so we've got up on the screen the splash screen for for for the Polish project. There's a user guide API reference, of course, but one of the things I wanted to talk about is their some of their, their, why you would consider it. So polars is lightning fast data frame library. It uses an in memory query engine and it in the it says it's embarrassingly parallel in execution. And it has a cache cache efficient algorithms and expressive API. And they say it makes it perfect for efficient data wrangling data pipelines, snappy API's, and so much more. But I just also is fun. It's a played with it a little bit, it's Zippy and fun. They have both the ability to do lazy execution and eager execution, whichever you prefer for your use. It's multi threaded, has a has a notion of single single instruction multiple data. I'm not exactly sure what that means, but makes it faster apparently. And the I was looking through the the whole, the introduction of the user's guide is, is actually written like a very well written book. And it looks like the whole guide, as far as I can tell, is, is written for the pen or the Python API. So I think that was part of the intent all along is to write it quickly and rest, expose it to rest users also, but also run it with Python. And it's just really pretty clean. And super fast. One of these benchmark results, performance things was, it's like, spark was taken 332 seconds, and they took 43 seconds. So I know,
03:19 it's 100 million rows. Yeah, and seven columns. That's not just like, let's load up a couple of pieces of data or something.
03:27 Right. So the, there's a lot of focus on this, making it making sure that it's fast, especially when you don't need everything, like doing lazy evaluation, or making sure you do multiprocessing one of the things I thought was really kind of cool about it, I was looking through the documentation is there's a section on that says it was a section that was talking about paralyzation it says do not kill the parallelisation Because with Python, we know we there is basically there's ways to use polars that can kill parallel processing because of the Gil, if you're if you're using if you don't do it the way they've set it up. You can use it in a way that makes it a little slower, I guess is what I'm saying. But so there's a section on this talking about the polar expressions polars expressions and these are all set up so that you can pass these expressive queries into polars and have it run in the background and just make things really fast with and sort of skirt around the the GIL because you're doing all the work in the Rust part of part of the world and then collecting the data later. So there's like a set up the query and then collect the query. It's kind of cool. So I just thought this is a really looks fun. It's it's just there's nothing to you don't have to do know that it's in rust. You just say pip install polars and It works. So
05:01 yeah, that's great. Out in the audience. Rob asks, Why rust did not see maybe maybe an example there is pandas versus this. also probably the person who wrote it just really likes Russ. And I think Russ has a little bit more thread safety than straight C does. I'm not 100% Sure. But this uses threads as you point out, whereas the other one, and as in others, in C, don't.
05:24 I also think that we're gonna see a lot more things like this, like, because I think some of the early, faster packages for Python were written in C, because rust wasn't around, or it wasn't mature enough, but I think we're gonna see more people saying, well, I want to, I want it to be closer to the processor for some of this stuff. Why not rust? Because I think I think Rust is a cleaner development environment than Pepsi right now. So
05:51 yeah, I agree. Absolutely. It's just a more modern language. Right.
05:56 I you know, sees keeping up so isn't isn't isn't is never going to be old? I don't think but yeah.
06:01 Yeah. Yeah. I don't mean to say that c is out. Not modern in the sense that people are not using it, but it doesn't embrace in its sort of natural form the most, you know, smart pointers and things like that. Yeah, there's there's C++ maybe but not see their safety features
06:15 written built into rust to make sure you don't, that just make it easier to not do dumb things. I guess. Suppose that was
06:24 emptied. Alright, well, let's jump on to my first item, which is a follow up from last week Python developer survey. 2021. Yes, you heard that, right. I know, it's 2022. These are the results from the survey that was at the end of last year. So let's I'm gonna kind of skim through this and just hit on some of the main ideas here. There's a ton of information. And I encourage people to go over and scroll through it. This is done in conjunction with the folks over at JetBrains, the PI charm team and all that. So it was collected and analyzed by the JetBrains folks, but put together independently by the PSF. Right. So it's not intended to not be skewed in any way towards them. Alright, so first thing is if you're using Python, is it your main language or your secondary language? 84% of the people say it's their main language with 16%. Taking up the balance of not so much. It's been pretty stable over the last four years. What do you think that's right.
07:16 I think that there's a lot of people like me, I think that it, it started out as my secondary language. And now it's my main language.
07:25 Yeah, interesting. Yeah. I got sucked in like, yeah, maybe I'll use it to test my stuff. Wait, actually, this is kind of nice. Maybe we'll do more of this. Yeah. There's always the the next question or analysis is always fraught with weird overlaps. But I liked the way they asked us a little bit better than a lot of times it says Python usage with other languages. What other languages do use Python with, rather than maybe a more general one where they ask, well, what is the most popular language? And you'll see weird stuff like, well, most people code and CSS, like, I'm a full stack CSS developer, like, No, you're not just everyone has to use it. Like, what is that? That's a horrible question. Yeah. All right. So this is like if you're doing Python, what other languages do you bring into the mix? And I guess maybe we just hit the top five JavaScript, because you might be doing front end back end HTML, CSS, same reason. bash shell because you're doing automation and build so on sequel, a sequel, I'm surprised there's that much direct sequel, but there it is. And then C and C++. Speaking of that language? Yeah. So to sort of address the thing that I brought up before, Rust is at 6%. Last year, it was at 5%. So it's compared to C 30. And 29. So they both grew by 1%. This year. Okay. Yeah,
08:34 I think they both grew. That's interesting. Yeah, exactly.
08:37 Another thing that people might want to pay attention to is you'll see year over year stuff all over the place. And these reports, because they've been doing this for a while. So like the top bar, that darker or sorry, brighter is this year, but they always also put last year so for example, people are doing less bash, you can see like, it's lower bar is higher, and they're doing less PHP probably means they love themselves a little bit more. Crying, okay. Let's see languages for web and data science. This is kind of like if you're doing these things. What use more so if you're doing data science, you do more a sequel is your most common thing. If you're doing web surprise, JavaScript in HTML is the most common other thing. Yeah. Let's see. What do you use Python for work and personal 50%. Personal is 29 and work 20%. It's kind of interesting that more people use it for side projects. If they use it for just one or the other of work or personal. As people who know Python at work. They want to go home. They're like, You know what, I could automate my house with us humans do that?
09:42 I think that yeah, I would take it like that. I think more. It isn't just even automate your house. It's just playing around with it at home like Yeah, I heard about this, this new web framework, FastAPI. I want to try it out. Things like that. So
09:55 yeah, absolutely. I'm going to skip down here through a bunch of stuff. What do you use Python for the most web development. But that fell year over year, data analysis stayed the same year over year, machine learning fell year over year, and a bunch of stuff. But so sort of the growth areas URI or education, and desktop development, and then other think is pretty also game development doubled,
10:19 doubled from one to 2%. A for one to two is probably like,
10:23 there was, you know, that might be within the margin of error type of thing, but still a double. But I think just the other, no other didn't grow. There's just I think it's just more spread out. I don't know, because there's still I think similar people using Python. Alright, are you a data scientist? 1/3? Yes, two thirds. No, that's, that fits with my mental model of the Python space 1/3 Data Science 1/3 Web API and 1/3. Massively diverse other, the way I see the ecosystem, python three versus two, I think we're asymptotically as a limit approaching python three only, but year over year, it goes 25% from 2017, then 16% to python two, then 10%, then six, then five. And then they're just there's just huge code bases that are stuck on Python two, like some of the big banks have, like 5000, Python developers working on Python, two code bases that are so specialized and tweaked so that they can't just swap out stuff die, you know, that might represent by person bank usage. I don't know.
11:21 I just, I feel bad for you. We're rooting for you, everybody out there. But to stick in approach that
11:28 limit Yeah, let's divide by n factorial, n for your limit there. Let's go get in there. Alright, python three, nine is the most common version 310 being 16%, and three, eight being 27% versus 35. So that's, that's pretty interesting. I feel like this is, hey, this is what comes with my Linux. This is what comes with my Docker. So amusing that, but maybe it's more.
11:51 Yeah, it's interesting. Because you and I like, are interesting space, because we're always looking at the new stuff. So I I met, I met 310. And I can't wait to jump to 311. Yeah, and actually switch to 311 for some projects. So. But there's a lot of people is like, man, pythons pretty good. And it's been good for a while. So I don't need a lot of the new features. So
12:14 yeah, for sure. I'm going to later talk about something that might shift that Yeah, to the right. I've actually been thinking like, should I maybe install 311 beta? See how stable that is on the servers? We'll see that might be eventually might be a good choice. That's okay. Where do you install Python from 30%. Just download the thing from python.org. And run with that. Yeah, the next most common option is to install it via your OS package manager, apt, homebrew, whatever. Navarro has a great little recommendation out there. For people who are stuck on Python two, there probably is a support group for Python two users.
12:54 Hi, my name is Brian and I use Ubuntu.
12:58 Hi, Brian. All right. Another one I thought was pretty interesting is the packaging stuff, the isolation stuff. Before we get there really quick web frameworks. FastAPI continues to grow. Yeah, pretty strong. Here. We've got flask is now maybe within the margin of error, but just edged ahead of Django. But FastAPI almost doubled in usage over the last year, it grew nine percentage points, but it was at 12%. Last year. And so now it's at 21%, which is that's a pretty big chunk to take out of established frameworks.
13:32 Yeah. Well, it looks like the third is none. I haven't tried that yet.
13:38 Yeah, it gets a lot of attribute errors. But it's really efficient, because it doesn't do much work. Yeah. Yeah. People who maybe don't know, FastAPI, the name would indicate it's only for building API's. But you can build web apps with it as well. And it's pretty good at that.
13:52 Especially sickly. Yeah, especially if you check out my courses. He's got like two courses on building web apps with
13:59 nest eggs. I do. And I also have some sort of template extensions for it make it easier. All right. Data Science libraries. I don't know how I feel about this one to use NumPy. Well, yes. But if you use other libraries, then you also use NumPy. So
14:12 yeah, it's like all of A's are using NumPy. So. Exactly,
14:16 exactly. Yeah. A bunch of other stuff like that for unit testing. What is surprising that pi test is winning. No. They just overtook not in this year, didn't it?
14:30 Yeah, so
14:32 Alright, orams, SQLAlchemy is ahead. And then there's Django ORM. Django is tied to Django SQLAlchemy is broad. So there's, there's that and then kind of the none of the ORM world is raw SQL at 16%. That's pretty interesting. Postgres is the most common database by far at 43%. Then you have SQLite, which is a little bit of a side case, you can use it directly, but it's also used for development, and then MySQL, the MongoDB and then Redis, and Microsoft SQL servers.
15:00 though, yeah, actually SQL Server and Oracle are higher than I would have expected, even though you know, but it's okay.
15:06 Well, I think what you're gonna find is that there's like certain places, especially in the enterprise, where it's like, we're SQL Server shop, or we're an Oracle shop and our DBAs manage our databases. So here, you put in a file a ticket, and they'll create a database for you.
15:21 Yeah. Or there's, there's already an existing database, and you're connecting to it. Yep,
15:25 yep. Yep, exactly. Definitely. All right, let's keep going cloud platforms, AWS is at the top, then you got Google Cloud at 50%, then GCP, Google Cloud Platform, then Azure than Heroku, DigitalOcean. Linode. has made it on the list here. So you know, nice, former, or sometimes sponsor the show. It's good for them. And let's see, do you run? How do you run stuff in the cloud? Let's skip over this, I think a bunch of interesting, a few more interesting things. And we'll we'll call it compare to 2020. Linux and macOS popularity decreased by 5%, while Windows usage has risen by 10%. Wow. Yeah, we're the windows people now double more than double the macOS people in our almost rivaling the Linux people.
16:06 That's, I think that's just towards the growth of Python. Pythons just making it more into everybody's using it sort of thing.
16:16 Yeah. And there's also Windows subsystem for Linux. It's been coming along pretty strong, which makes windows a more viable, more, have had more parity with your cloud targets, right. And it feels like sadly on it's it's because of WsL. Yeah, maybe. Okay. Let's see a few more things. Documentation. It's cool. They're asking about like, what documentation frameworks you use. This one's interesting to me, what's your main editor? VS Code or PI charm? I asked this question a lot at the end of talk Python, and it feels like vs. Code vs. Code vs. Code vs. Code is what people are saying all the time, but it's 35% VS Code. 31% by charm. And Brian right there for you. 7% Vim, but okay, yeah, I just did you. Yeah.
16:56 To be fair, it's both vs. Code. It's all three or top? Yeah, top four for me. But yeah,
17:03 yeah, exactly. Well, often, you can probably just use Vim bindings within the other two, right? Yep. Yeah. Let's see. I think also, maybe another interesting breakdown, is that if you look at the use scenarios, or the type of development done with the editors, you get different answers. So like, for data science, you've got more py charm, and for web development, I think Hollinger, I have that right. Oh, interesting. For data science. You have a lot more Vyas code for web development, you have more pi charm, you have a lot less other data science, aka Jupyter. Yeah. Okay. How did you learn about your editor? By first one here is from a friend. So basically, friends like push editors, like drug dealers, like gotta get out? What do you do? And I think getting here
17:50 Oh, I think it's like it. If I'm, if I'm watching somebody do something cool. I want to do it also, because it looks Yeah,
17:57 exactly. You sit down next year for me, like how did you do that? That's awesome. I want that feature. I think you're probably right. Okay, let's just bust down a few things better. One, do you know or what do you think about the new developer in residence role? This is like a shilling that's going on right now. 77% are like the what? Never heard of it. So maybe like we got it. We got a little more advocate advocacy job to do here. But he's been doing a great job. Really speeding things up and sort of greasing the wheels of open source contributions and whatnot.
18:29 i Yeah, I'm gonna take it like design, because if designs done well, nobody knows it's there. And yeah, I think the same thing. I think if he's doing his job really, really well. Most people won't notice things will just work.
18:41 Yep. Quick real time follow up Felix that in the eyes because I use Python? Because if Michael.
18:50 It should have been one of the options in the survey because of Mike.
18:53 Oh, come on. But no. Let's see. There's a bunch of questions about that. And the final thing I want to touch on is Python packaging. Let's see here. Which tools related to Python packaging do you use directly? And we've talked about poetry. We've talked about flit pip envy, and so on. And 81% of people are like I use pip for packaging. Compare, as opposed to flutter. So that and then compare sort of parallel to that is for virtual environment. Do you use the what do you use for virtual environments? Basically? Yeah, like 42% is like, I just use the built in one or I use the virtual env wrapper, and then it's like poetry, pipi and V. Talks and so on. There's a few I don't know what this is.
19:42 Yeah, well, I'm, I'm glad they included that because the one of the original questions didn't include, like the built in V and V. B. And that's Yeah, I think that's what most people use. So it is
19:53 right. Yeah. Yeah, absolutely. All right. Well, I think there's there's more in my progress bar here. This is a super detailed report. Link into it in the show notes. So just go over there and check it out if you want to see all the cool graphs and play with the interactive aspects, but thanks again to the PSF and JetBrains. Putting this together, it's really good to have this insight. And these these projections of where things are going, yeah.
20:14 Hey, all right, I'm gonna grab the next one, smoothly this time. Nice. So, Jin config is, is a is, is just jet and actually, but the the project's called Gen config. And it's, it's kind of a neat little thing, it's a different way to think about configuration files. So like you have you have your pipe project or your tomo files, you could have dot ini files, there's a lot of ways to have configuration files, but But Jen takes the perspective of, oh, well, what, what if you just want if you're not really into all that stuff, and you're a machine learning person, and you just have a whole bunch of stuff to configure in your changes stuff a lot, maybe let's make it easier. So I actually came across this because of, because of Vincent, Vincent want warm, Vincent Warmerdam. He's got an excellent intro to gin on his comm code site. And the idea is, you've got this, you just have for a function that you want to in your code, you got some code, and you have, like part of it that you want configurable, you just slap a gin configurable decorator onto it. And then all of the parameters to that function are now something that can show up in a config file. And it's not an ini file, I actually don't know the exact syntax, but it just kind of looks like Python, it's a, you just have names, like in the in this example that I'm showing, there's a, there's a file called simulate. And there's actually a function called simulate and a parameter called in samples. And in your config file, you can just say simulate.in samples equals 100, or something like that.
22:02 Oh, wow. And this is like, it basically sets the default parameters for all your functions you're calling. Yeah,
22:09 the ones that you want to be configurable, and you can just do that. Now, it's still work, you can still set defaults within your code. And, and just like you normally would, and then, and then you can configure the ones that you want to be different than the defaults. So that's a, that's a possibility. And there's a whole bunch of, I'm gonna expand this a little bit, there's a whole bunch of different things that Vincent goes through, like required settings, you can have, you can specify like a.or Does it GN dot required it as a function, and it makes it so that are as your parameter and then it makes it so that your user has to put it in their config file. That's kind of cool. And then you can also, if you don't want somebody to configure something, you can, you can mark it as, oh, he's got blacklist the in samples. So if you want, like in this example, he's got a simulate function with two parameters, random funk and n samples, you want people to configure the random funk, but you don't want them to touch the n samples, you can, you can say don't do that. So it's kind of a, there's a whole bunch of cool features around it like, like being able to specify different functions. So you can name things and do it. Like, like to say, like, in his example, he's got random functions. And if you, you can specify, you know, one of the other one of the other like a random triangle function, you can specify a function and assign it to that he's got named things. It's a really, it's a interesting way to think about configuration. And the the, the motivation section of the documentation for Jin says that often modern machine learning experiments require just configuring a whole bunch of parameters, and, and then you're tweaking them and stuff. And, and to have that be as easy as possible and as simple as possible. Because it is and you're going to add some and take some away and things like that, because some things you want to configure it and then you decide not to not having to go through a config parser system. And just making it as trivial as possible to add parameters is a really cool idea. So
24:24 it is a cool idea. It reminds me of like dependency injection a little bit. Yeah. You know, where you would like configure, say, like, if somebody asked for a function that implements this, or that that goes here, like this is the data access layer to use or here's the ORM. I want you to pick this time. It's not super common in Python, but it's pretty common in a lot of languages. And it feels a little bit like that. Can we configure stuff? So we have these parameters that we might use for testing or something, but it just they get filled in automatically? Yeah, even FastAPI has that for example. Yeah.
24:58 So cool. Somebody the audience's Isn't? Isn't Jen used with go? And I'm not sure about that. But Jen is not an officially supported Google product. But it's under the Google like GitHub repo group. So maybe,
25:15 yeah, maybe. So it does look very Python like, though for the config files, and that's cool. Yeah. Good one. All right. Let me switch back before I swap over. Okay. Here we go. Now, this next one, I think universally, will be well accepted. Although the comments section about it was a little bit rough and tumble. Nonetheless, I think it should be universally exciting to everyone. And this comes to us from Eduardo or Chyna, who sent over this article that said, the so called the Python 311. performance benchmarks are looking fantastic. And oh, boy, are they? We're talking beta code, six months out, right. And still, still, we've got some pretty neat stuff. So this, this blinks over to an article with that same title, by Michael Lara Bell basically says, Look, we took a whole bunch of different performance benchmarks for Python and ran them on Python 311 beta, which this is the thing I was hinting at, like, you might really want to consider this for if you're thinking Should we upgrade from nine to 10? Maybe you want to just go straight to 11. Right? I mean, you know, sort of aside that, Brian, it's an awesome that the one that goes like crazy performance, this one goes to 11. All right, so they show all this stuff that they're testing on like AMD risin, 16, core 32, with hyperthreading, the motherboard, I mean, like down to the motherboard, and the chipset and the memory and all that. So a pretty decent stuff. And then also the build commands and all sorts of things here. So pretty repeatable, I think, rather than just like, hey, I ran it. And here's a graph without without axes, or something like that. So you can kind of click through here and you see some pictures, and it says, All right, well, there's the pie bench, which I think is like the standard, simple one, it says, look at the Python 311 beta is faster than 310, which by the way, was slightly slower than the previous ones. But you know, what is that 10% or something to already? Actually 16%? Better. So that's already pretty awesome. But there's a whole bunch of other ones, they did one called go. I don't know what these benchmarks are, this is I don't think this has anything to do with the language go, just the name of the benchmark, and then there's two to three and chaos. So that one sounds like the funnest, but if you look at this go one. This one is like, almost 50%, faster. 50% faster. That's insane, right? Yeah. Well, he come down to the two to three is, these are all estimates. 25% Faster, see 40% faster. With the chaos one, come down to the float operations, and Python 310 was already better than the others. But this is again, maybe 30% faster. And let's roll into the next page. You can just kind of see this across the board. Better better. Some of them are super better. Some are like a little bit better, like pathlab is better, but not crazy. Ray tracing is like, again, 40% better here and keep going. There's another one or this huge crypto, i e s, some sort of encryption thing. There's just a bunch of a couple of these are there's like this one at the end, you're like, oh, wait, this one went got way worse. Be careful, because it says more is better on this composition, I guess is the result here. Like how much more computing power do you get? Or CPU cycle or whatever? What is that? That's a massive jump, you saw a little bit better improvements from 383939 to 310. But 310 to 11 is like a 40% 41% better on the beta before it's even final. Wow. That's pretty exciting,
28:51 right? That's very exciting. And yeah, actually, I think I'm curious what some of these negative comments are. But the interesting thing is to run lots of different metrics and or lots of lots of different benchmarks. And having them all be it's faster, kind of means that I mean, I take it as you know, your mileage may vary, but it's gonna be better. For whatever you're doing, probably,
29:16 yeah, yeah, this it feels like this is the thing you could just install and things get better. The negative comments are mostly like, well, if Python was so slow, it could be made this faster than pythons a crappy language. It's pretty much summed up like 65 comments right there. By the way, so I interviewed Guido van Rossum and Mark Shannon a little while ago about this whole project about making Python five times not 40%, but five times faster. And the goal is to make it a little bit faster like this, each release for five releases in a row. And because of compounding, that'll get you to like 5%. So it looks like they're delivering which is awesome. Yeah, this is good. Yeah. Cool. All right. Yeah, I think that's it for all of our items. Yeah, got any extras?
30:01 no, I was gonna pull up the the so yeah, the this one goes to 11 If people don't know that that's a spinal tap reference.
30:10 This? Yeah, exactly. Alright, I got a few extra to throw out real quick Python 310. Five is out with a bunch of bug fixes, like, what happens if you create an F string that doesn't have a closing curly, and just a bunch of crashes and bug fixes. So if you've been running into issues, you know, maybe there's a decent amount of stuff in the changelog. Here, nice. People can check that out. Also, real quick, people might if they're on a Mac, they might check out raycast, which is a replacement for the Command Space spotlight thing that has like all these developer plugins, so you can do like, interact with your GitHub, repo through Command space and stuff, you can create little macros. And there's a bunch of extensions, like the things pre leased for not for team if you're not on a team, but there's a bunch of different things you can get that are cool, like managing processes, doing searches, VS Code, project management, from Command space and whatnot. The one that I set up is I can now do Command space, and then just type pipe pi. And then I'll just search pi pi for whatever I type. Here's an example type in pi pi, then FastAPI No, like, pull up all the FastAPI packages. So anyway, people might find that fun to check out.
31:18 That's cool. Yeah,
31:19 it's pretty neat. All right. Well, I think I'm not talking about my other one. And then joke, shall we close it out with a joke?
31:26 Yeah, let's do a joke.
31:27 So I think this ties really well back to the PSF survey, we talked about, well, what framework do you use? What data science framework do you use? Or what web framework you want to use Django or flask or FastAPI? Or what? So here's one, that is a pretty interesting analysis. And the title is, why wouldn't you choose parrot for your next application? Not a framework, but literally, apparently, this is, this is compared to machine learning. So it has like this breakdown of features like a Feature Table, and it has a parent, which literally just has a picture of a pair. And this is machine learning algorithms with a neural network. And then it lists off the features learns random phrases, check check. Does it understand anything about what it learns? Check, check. Occasionally speaks nonsense check check is a cute birdie parrot. Check fail. Why wouldn't you choose this, Brian?
32:20 This is funny. I love it. Pretty good. Pretty good stuff. I actually reminds me of like, have to pull up this article. So I was reading about some machine learning stuff to try to get models like even closer and closer to reality. There's a whole bunch of tricks people do. And then and then there's some analysis of like, sometimes it's actually not doing anything more than just a linear regression. So yeah, it simple for an
32:47 if statement. Yeah, for sure. So they're using artificial intelligence to make the computer decide now it's an if statement. Like, it's just computers deciding things the old fashioned way. Yeah. Yeah. Awesome. All right. Well, thanks for being here. Thank you, everyone for listening. Bye. Yep. See ya.