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


Transcript #340: Snorkel not included

Return to episode page view on github
Recorded on Tuesday, Jun 13, 2023.

00:00 Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to your earbuds.

00:05 This is episode 340, recorded June 13th, 2023.

00:10 I'm Michael Kennedy.

00:12 - And I'm Brian Okken.

00:13 - And this episode is brought to you by InfluxDB from InfluxData.

00:16 Awesome, real-time DB.

00:19 So time series database.

00:20 So we're excited to tell you about that later.

00:23 If you want to connect with us, you can find us all on fostadon.org, @mkennedy, @brianokken and @pythonbytes.

00:29 Join us for the live show at pythonbytes.fm/live.

00:32 If you want to be part of the live stream and be in the audience, all the older video versions are there as well.

00:38 And Brian, before we jump into your first topic, I've got some ideas, a request from the audience.

00:46 - Okay.

00:46 - Okay, so we are going to do an Ask Me Anything episode.

00:51 And really that should be Ask Us Anything, but the A-U-A is not typically how people announce it.

00:57 It's the AMA, not AWA.

00:59 So following convention standard acronyms there, ask us anything.

01:07 I put together a Google form.

01:09 It is super short.

01:10 It says, what is your name?

01:11 What is your question?

01:12 And if you want, there's a few other fields for like second question, you know, and things like that, but they're optional.

01:17 So if you're listening and you've ever wondered, like, I wonder if Brian has a thought on an opinion on this.

01:24 Does he have an opinion on pytest plugins?

01:26 I don't know, maybe.

01:27 Does Michael have a thought on podcasts or whatever?

01:30 You know, please take the time and put that in there and we'll give you credit on the show as well.

01:36 If you don't wanna have your name in there, just put anonymous or something.

01:39 So everyone check that out.

01:41 It is at, I created a short URL for it, let's see.

01:46 Pythonbytes.fm/ama2023.

01:49 So people can just go over there and check it out.

01:53 So that's gonna be a lot of fun, Brian.

01:54 I don't know when we're scheduling it.

01:56 I probably pretty much when we get enough questions.

01:59 - And that link will be in the show notes, right?

02:00 - Absolutely.

02:01 Let's talk GUIs.

02:02 We haven't been on a GUI rant for a while.

02:04 - Yeah, I don't know if we've ever talked about GUIs.

02:07 I think maybe we have.

02:08 (laughing)

02:09 - Perhaps.

02:10 - It's been a while.

02:11 So I ran across this website called Python GUIs, and it's like a whole website dedicated to Python GUIs.

02:19 And it's from a fellow named Martin Fitzpatrick.

02:25 He does consulting and some other stuff.

02:28 And this is pretty kind of cool.

02:29 This is a fairly comprehensive.

02:31 He has tutorials and references to books and everything like that, but it's kind of a neat walkthrough, just the website itself.

02:41 Like for instance, where do I begin?

02:43 His recommendation is doing PyQt6 to start with, if you don't have a preference.

02:49 However, so let's like walk through a couple.

02:53 So if you just kind of walk through, he talks about what you should look about, learn what tutorials are available.

03:00 And then it says continue.

03:04 So if you continue on with the PyQt 6, you just sort of walk through a tutorial around how to get Qt Designer up and everything.

03:13 But there's a lot more than just Qt here.

03:16 He's got tutorials on PyQt 6, Qt 5, PySide, TkAndr.

03:23 There's even a tutorial, most recent tutorial I saw was getting started with Kivy for GUI development.

03:31 And it's a pretty lengthy getting started with Kivy thing.

03:34 So, and it covers Mac, Windows, Linux.

03:39 So it's pretty comprehensive, it's kind of nice.

03:41 - Yeah, this looks really nice.

03:43 I think choosing, I always feel like there's this paradox of choice.

03:46 And when I'm thinking about Python GUIs and there's like, well, there's no real clear answer and they're all kind of got their own oddities into them or their own restrictions.

03:55 But this is really cool to see them put all side by side and then different tutorials helping you get started.

04:00 >> Yeah. I like it.

04:04 I think a lot of people start with Tkinter.

04:07 It's not Tk in there, it's Tinker.

04:11 I forget what they call it with Python.

04:14 But I don't think that's a great place to start.

04:18 If you want something to look really nice, if you're going to support it, I think I kind of agree with them.

04:24 Maybe starting with Qt, or Qt, sorry.

04:28 I grew up using Qt without knowing how to pronounce it.

04:33 People do pronounce it Qt, but yeah, anyway.

04:38 So if you want to learn about Python GUIs, maybe check out pythonguis.com.

04:43 So what do you got for us?

04:45 Oh, you're muted.

04:46 - Before we move on, Brian, I do want to also just sort of second that, I think Qt, those look like native applications that belong on your platform, right?

04:56 When you're not like, "Oh, clearly some funky cross-platform API is what we're working with here." Right now, this stuff looks pretty solid, right?

05:05 Yeah.

05:05 But it is TK-Enter.

05:07 Why do we call it TK-Enter?

05:09 Or Tkinter?

05:10 I don't know.

05:11 Because it's not TK.

05:12 Oh, because it's from the TK toolkit.

05:14 Got it.

05:14 Ah, makes sense.

05:16 Got it.

05:16 That makes sense.

05:16 All right.

05:17 I have some bleed for all the data scientists out there.

05:20 How about that?

05:21 >> Okay.

05:22 >> JupyterLab, which is the more capable, the more IDE-like experience for Jupyter Notebooks, 4.0 is here and it looks like a pretty mega release.

05:34 They say, they being Jason Weil, say the next major release of the full feature development environment for Jupyter is here.

05:43 It is available for install right off PyPI in Conda Forge.

05:48 If you have it, all you got to do is pip install --upgrade jupyterlab or conda install --conda-forge-jupyterlab and it'll just upgrade in place for you.

05:58 So that's pretty excellent.

05:59 That's low maintenance, low effort upgrade.

06:02 I suspect there's a lot of stuff happening when you run those commands.

06:05 One of the big deals is JupyterLab is now faster.

06:08 There's a bunch of different ways in which they made that happening.

06:11 They made that happen, or that's happening.

06:14 Notebook windowing is one of them, where for a long notebook, instead of trying to process and load the whole thing, it'll just show the web browser viewport in terms of rendering, which will make some of the rendering faster.

06:27 Got CSS rule optimizations, CodeMirror, CodeMirror is the text editor of the cell.

06:35 So CodeMirror 6 is out and MathJax 2 as well.

06:38 So if you're working with large notebooks, it should be much more efficient than JupyterLab 3, they say.

06:45 - Awesome. - That's encouraging, right?

06:46 - Yeah. - Yeah.

06:47 - Yeah, so cool.

06:49 Let's see what else.

06:51 There's additional performance improvements, but you have to turn these on.

06:54 So you can get faster tab switching on Chromium-based browsers, which is unfortunately almost all of them, but that's the world we live in.

07:04 So you can do, but you gotta go settings, and JupyterLab Shell, switch hidden mode to content visibility, and for even more better performance with long notebooks, you're going to go settings, notebooks, switch on a windowing mode to full.

07:20 So those are all options.

07:22 I told you there's a new CodeMirror.

07:24 That's the text editor for cells and file editors, and it's upgraded to CodeMirror 6, which has a bunch of accessibility and performance improvements.

07:32 So people can check that out. Let's change there.

07:35 Also, JupyterLab, I'm not sure I knew this, comes with a real-time collaboration, aka Google Docs style of collaboration.

07:42 >> Okay. I didn't know that they do that.

07:44 I did not either. I knew there were some notebook platforms that did, but I didn't realize JupyterLab did.

07:49 So they moved this RTC, real-time collaboration to a separate package, JupyterCollaboration, and that's available.

07:56 It's its own thing, includes support for multiple cursors and selections, new shared types.

08:03 There's also a new extension manager for JupyterLab extensions, improved document search, UI enhancements, like more hotkeys and other styles, accessibility improvements, DevTool updates, like how they build JupyterLab, so TypeScript v5 and React v18.

08:23 Most people won't care about that, but if you work on or try to customize the JupyterLab itself then you create an extension or something, you probably care.

08:31 Finally, more than 100 bugs have been addressed and resolved, making it more stable and faster.

08:38 So that sounds like a pretty big deal, doesn't it?

08:40 >> Yeah. Yes. I think addressed means fixed and not just said hello to.

08:47 >> Exactly. Hello, bug.

08:49 How shall I address you?

08:51 You shall call me a CVE, remote code execution.

08:54 Hey, nice to meet you. Probably not like that, right?

08:57 >> Yeah. That's cool.

08:59 >> Yeah, that is cool. Getting some thumbs up from the audience as well.

09:03 Now, before we move on, I want to just talk about our sponsor real quick, InfluxDB.

09:09 So thanks to Influx for supporting the show.

09:13 So this episode of Python Bytes is brought to you by Influx Data, the makers of InfluxDB.

09:19 InfluxDB is the database purpose built for handling time series data at a massive scale for real-time analytics.

09:26 And developers can ingest, store, and analyze all types of time series data, metrics, events, traces in a single platform.

09:33 So how would boundless cardinality and lightning-fast SQL queries impact the way you develop real-time applications?

09:39 Check out Influx.

09:40 InfluxDB processes a large time series data sets and provides a low latency SQL queries, making it the go-to choice for developers building real-time apps and seeking crucial insights.

09:52 For developer efficiency, InfluxDB helps you create IoT, analytics, and cloud applications using timestamp data rapidly and at scale.

10:01 It's designed to ingest billions of data points from real time.

10:04 In real time with unlimited cardinality, InfluxDB streamlines building ones and deploying across the various platforms and environments from the edge on-premises and to the cloud.

10:14 So try them for free at pythonbytes.fm/influxdb.

10:19 The link is in your podcast player show notes.

10:21 Thank you to InfluxData for supporting the show.

10:25 - Yeah, thank you.

10:25 I would like to talk about data, but not databases, but data types.

10:33 So this is kind of early to talk about, but hey, Brett Cannon can write about it on his blog.

10:41 I think it's fair game to talk about.

10:43 So Brett Cannon had a proposal for a new kind of data type in Python called a struct.

10:52 Structs are new things.

10:53 We've lived with them in C for a long time and other languages have other types.

10:58 I wanna take a slight detour before I talk about the Struct proposal from Brett.

11:06 And by proposal, I don't mean it's a pep.

11:09 I don't think it's a pep yet.

11:10 I think it's just an idea that he had, but I think it's a cool idea.

11:15 But one of the things he talked about was algebraic data types.

11:18 And I gotta admit, I haven't run across that term, algebraic data types, before like a week ago or so.

11:25 And then I've read two articles referring to it.

11:27 I'm used to ADTs being abstract data types, which are user-defined data types.

11:36 I don't know what the abstract means, but anyway.

11:40 Algebraic ones are things that you can compose.

11:44 They're like abstract data types, but the things that you can compose like a list is a nil, plus I don't know what that means.

11:53 But anyway, or trees either is composed of empty or leaf or node or something.

11:59 I don't, I'm still not quite sure how this makes anything to do with it.

12:04 That's our side diversion anyway.

12:06 So, so what, what does this look like?

12:10 And it's kind of a neat idea.

12:11 So jumping down to an example, with a struct, you could just say, a, a point is a struct that takes X and Y and they're both integers say, and they have to be named or either positional or named, but they cannot be unnamed only.

12:29 I don't know why, but and then it'd be kind of like named classes or named tuples to access it.

12:36 So you just access the stuff.

12:38 So you just declare this point, it takes x and y, and then you can get at it with like, say, p.x or p.y.

12:46 And that's it, really.

12:47 So what is this?

12:49 Why would we need this?

12:50 And I think it'd be really pretty cool to have something that simple.

12:54 and these structs would be, they'd not allow inheritance.

12:59 They would have no methods currently.

13:02 No methods, no inheritance, and they're not mutable.

13:06 So you can't change the thing in it.

13:07 Why is that important?

13:08 Well, then you can use these things for keys and dictionaries and things like that.

13:13 And I just think this would be kind of cool because I still, with data types, even with data types, and all the other goodies and adders and other goodies we have within Python.

13:25 I still use named tuple a lot, and I would totally use this for a lot of stuff, and make it, especially if it was super fast.

13:32 So that's the idea.

13:34 Got any ideas?

13:35 - It looks interesting, and the defining syntax, it's kind of a one-liner, a little bit, as you pointed out, like a named tuple, but it actually, it defines class-like thing with these optimizations, for example, dunder slots.

13:49 And kind of an add data classes type thing with dunder equal and dunder hash.

13:54 So for people listening, you just say all in one line, struct, point, a capital B for the type, parenthesis, x, comma, y, that's the whole thing, right?

14:03 - Yeah.

14:04 - Tony out in the audience does wonder if it actually requires type annotations or if those are optional.

14:09 I would guess they're optional, but I like them, so I don't know.

14:13 - No, Brett says in his article, he would propose that they would be optional if you just had two elements in something.

14:21 >> It seems consistent with Python that it would be optional.

14:25 >> Yeah.

14:26 >> Tony also says, "Oh boy, I just started writing some Rust code at work, so I'm interested in this for Python." >> Yeah. The example that Brett gave of this point, he then showed the example of what under the hood that would give you that you don't have to write.

14:45 This example of being able to convert it to a dictionary and replace parameters and using slots.

14:53 I mean, there's a lot of code here that you don't need to write.

14:57 Yes, we do have data classes that do this, but data classes, they're not optimized for having lots and lots of them.

15:09 This would be like an optimization to have just huge data structure full of these things and have it still be fast.

15:17 I think it'd be cool.

15:19 and having it be part of the language, maybe they could do optimizations around it for Python 3.14 or whatever, you know, the faster CPython story.

15:31 Like for example, if you know it's immutable, could you make it allocate on just the stack and not actually go to the heap or things like this, right?

15:38 It'd be interesting.

15:39 - Yeah.

15:40 - Maybe that's a bridge too far, but.

15:41 - I'm also interested in how this maps to hardware, because dealing with registers and hardware interfaces, there's, in using C, we often have structs that we overlay over the top of shared memory systems.

15:57 And this might be a great use for something like that.

16:01 - Few more thoughts out there.

16:04 Grant says, "This is in line with what Mojo expresses.

16:07 "We recently spoke about them.

16:09 "Would love, love to have a struct in Python." And Blaze points out, "Waiting for Henek's opinion." Maybe something like this will get into Adders.

16:15 >> Yeah, we'll see. Sometimes, Brian, it's about putting new stuff, new things into Python.

16:24 Sometimes, however, it's about ripping it out.

16:27 >> Yes.

16:28 >> My next item is the realization of PEP 594.

16:33 PEP 594, for those of you who don't know, I interviewed in Himes and Brett Cannon.

16:42 Speaking of Brett Cannon, it gets a back-to-back mention here about removing Python's dead batteries and this PEP-594.

16:51 And the idea is there is stuff in Python that makes no sense to be in Python.

16:55 It made sense when we had a world without the internet, when there was no concept of pip install, and you really needed to kind of have Python come with a lot of its capabilities.

17:05 But now, if you go over to pypi.org, what is the current number?

17:10 we have 460,000 packages.

17:14 They're revolving, like a larger definition of what Python is, really, really fast, right?

17:18 >> Yeah.

17:19 >> So for example, do you think it would make sense potentially to have an implementation of an async chat client built into the standard library of Python?

17:28 >> I didn't know we had that.

17:31 >> Well, apparently we did until 3.12.

17:35 So that's not actually out yet, but it's gone.

17:38 Or like an SMTP daemon built into Python, right?

17:43 Who should be running their own mail client as part of Python itself?

17:49 Not even a separate package.

17:51 But more importantly, as was discussed over on the podcast, like this is overhead for all the core devs.

17:57 Do we want them working on things like the struct or do we want them still managing--

18:01 - CGI. - Yeah, like audio parsing for expired nobody uses anymore audio formats or CGI or telnet libraries or you know like chat clients.

18:15 So this basically is the announcement by Victor Stinner I believe saying we just removed 19 modules from Python 3.13 standard library.

18:29 These are the ones that have already been deprecated in 3.11 by pep 594.

18:35 Yeah, it's a big long list of them.

18:37 Like I said, like you pointed out some CGI image header, you know, male stuff.

18:42 Also talks a little bit about the 312 and 311 ones, which are gone.

18:46 And then finally, it does say like, if this affects you, here's what you can do.

18:50 Do nothing, just stay on 311.

18:53 It says, in my opinion, it is a dangerous long-term choice.

18:57 However, you can do nothing.

19:00 You could create a group of volunteers to give life to this module, right?

19:03 The module is open source in the sense that Python's standard library is open source.

19:10 So you go in there, you copy the files out, you make a PyPI package for it, and you find people who want to keep it going.

19:17 >> Yeah.

19:18 >> Or you vendor it.

19:20 You could copy them or remove module just into your code itself.

19:24 Often it's just a .py files, you just vendor it in if you have to.

19:28 Honestly, that seems like a pretty decent idea if you're going low-key, and you don't want to take on an open source project to remain, to maintain CGI.

19:36 You just like, I just need this to run.

19:38 So you can copy that over.

19:39 And then there's a whole discussion on stuff around this.

19:42 Right, if you want.

19:43 So anyway, 20 standard lib modules, they're out.

19:47 - Yeah, I think it's a good thing.

19:49 Just like, yeah.

19:50 Changing your batteries, kind of like your smoke detectors.

19:54 - Yeah, exactly.

19:55 One more audience comment on this before we move on.

19:58 Grant says, happy for the Python core devs to kill all these modules.

20:01 Nothing makes senior engineers happier than calling bodies of code that aren't worth their weight.

20:06 - I totally agree.

20:07 I would be happy, honestly, to see even a thinner, smaller Python standard library and then have more of these as pip installs, but then when you install Python, it could kinda come pre-installed with 20 or 30 packages that if you wanna upgrade them separately, I don't know.

20:23 So for things like if I wanna run this on MicroPython, I wouldn't run it on WebAssembly under PyScript.

20:29 those situations are like, you don't, the whole huge standard library is a problem.

20:33 So I don't know, I feel like there's interesting stuff happening here, but this is a good start.

20:37 - Yeah, definitely.

20:39 I think it is, so.

20:42 - It is.

20:42 And is that all of our items?

20:44 I believe it is, isn't it?

20:45 - It is.

20:46 And so some of these decisions are made by some of the core Python people on the, maybe on the Python board, have something to do with some of this, perhaps.

20:57 So if the elections for, so one of our extras, I'd like to mention that the PSF announced that you need, if you care about elections, you kinda need to affirm your PSF membership voting status before the 15th.

21:14 So the cutoff is only a couple days from now.

21:16 And I'm glad somebody mentioned this, I can't remember where I saw it, because it sort of went in my email inbox and I forgot to look.

21:27 So I just affirmed my voting status this morning.

21:31 - Excellent, well I definitely affirmed mine a couple days ago.

21:36 So it's all good, but yeah, thanks for pointing out here, this is great.

21:40 - Okay, do you have any extras?

21:41 - I do, I just released a video collab with Julian Siquiera and Bob Belderbose from the PyBytes guys.

21:50 About five tips for budding Python developers, five career tips for budding Python developers as a 25 minute YouTube video.

21:58 So people can check that out.

22:00 That link is in your show notes if that sounds interesting to you.

22:04 - It looks like Julian and Iron Man are looking at the same thing.

22:07 (laughing)

22:08 - They are.

22:09 Julian has an Iron Man painting in the background behind him.

22:12 They've got the same basic expression.

22:14 Pretty awesome.

22:15 So people can check that out.

22:17 Also, PyCon US 2023.

22:21 Remember that, Brian?

22:22 It was a while ago.

22:23 >> Yeah. All the videos are in.

22:24 >> The videos are out.

22:26 >> Yay.

22:26 >> Yay. There are some that are unavailable that are hidden.

22:30 I'm wondering if that's intentional or if that's like they were uploaded and they're just forgot to be set to public.

22:36 Whoever's in charge of this might want to look why there's hidden videos published to this playlist.

22:41 But I don't know how many there are.

22:43 There's 142 videos, possibly some others as well that are hidden on this playlist.

22:48 People can check it out.

22:49 This is basically all of PyCon, including the tutorials if you want to go and going to be part of that side of PyCon, which is excellent.

22:57 >> Nice. Some are white and some are this gray color.

23:01 Do you know what the difference is?

23:03 >> No.

23:04 >> No idea. I think it's just the opening slide they use for their presentation.

23:10 I don't know if there's more to read into it than that.

23:13 I would like to maybe, I don't know if the people who are organizing next year's PyCon are listening.

23:21 I would like to propose just some kind of suggestion that might make this a little easier for them, because this seems to be a huge challenge from what I can tell.

23:31 PyCon was in April, it's the middle of June, and now the videos have come out.

23:37 Somebody has spent a month and a half working on these videos, and the community has been waiting a month and a half to get them right.

23:45 How quickly is our video for Python Bytes out when we're done with it?

23:48 Like right when we're done.

23:50 >> I mean, literally you could seek around in it as part of the stream.

23:55 We're just live streaming this using something like StreamYard.

23:58 I know that there's a pay to attend virtually, so maybe you don't want to have a public stream that people can use.

24:05 Maybe there's, but this just live streaming it to YouTube, even if that's an unlisted URL that you then, when the conference is over, is flipped to public because I know that you don't necessarily don't want that to be going, have that whole live experience if you're not part of the, like I signed up for the virtual pass, which is great.

24:23 It's fine.

24:24 But I think we could get these videos in a lot quicker and help people a lot if you did something like, you just like kind of live streamed it.

24:31 I know people might worry about the connectivity and it cutting out the quality, but with like, for example, StreamYard, it records local video.

24:38 It's like maximum quality, right?

24:40 So there's, if they had a stream deck where they can switch to the views and they had this going and recording locally, these videos would be out as quick as you could click from unlisted to public on YouTube.

24:50 >> I do want to, I guess, disagree with you on that.

24:54 >> Okay.

24:55 >> PyCascades, for one, I don't know if it was available right away, but it was available soon after the entire day recordings.

25:05 You have the day recordings.

25:07 If you wanted to find yours or something or find somebody's, you could scroll through and find it.

25:12 It was just sort of going, there wasn't any editing, so it was hard to deal with.

25:19 I don't know how many people really watch those, but the PyCon US videos, I didn't realize this at first, somebody corrected me.

25:29 They were available to people that either attended live or attended virtually but didn't get to go to all the videos.

25:38 The online experience included being able to go in and watch videos, the other videos that you missed.

25:45 So those were available right away.

25:48 I didn't know about it, so maybe advertising it more.

25:51 And also, it was a little hard to get to.

25:54 I gotta say, it wasn't easy.

25:56 I kind of would like to have the schedule that you go into.

26:00 If you're logged in and you can see the schedule, why not have that be able to just link to the video that you missed or something like that?

26:10 I don't know. There's better ways to make it a little bit easier.

26:13 It was a little hard to deal with, but it was available.

26:16 I also think, for instance, going back to PyCascades, I did a talk.

26:22 The recording, the full day one, had glitches and had me up there at the beginning trying to get the audio ready.

26:30 There's this getting started stuff, whereas having somebody be able to clean that up a bit would be good.

26:36 Also, but I don't think that this is a long time from when PyCon really was to now.

26:43 That's what, a month and a half?

26:45 That's too long.

26:46 - Yeah, I think it's too long.

26:47 Last year, 2022 was three months, I believe.

26:50 I mean, it's a long time.

26:51 - And I know it's a lot of work, but maybe we could do something.

26:55 Either having rough cut ones out there initially, or maybe have some of us volunteer.

27:01 I mean, I think we could have some volunteers to help clean them up for good enough for now or sort of things.

27:08 I don't know, something.

27:09 - Yeah, I agree.

27:11 We should have made this a whole item, I suppose, if we're talking this much.

27:13 The final thought is, like with StreamYard, I don't know about the other ones, you can literally go in before you hit publish, you can just say trim this end, go to click, click, okay, put it on YouTube now, and then that would be not very much.

27:24 I agree that you don't want all the setup in that chunk.

27:26 You want it like, welcome, I'm Brian, I'm talking about extensions, et cetera, et cetera, right, like straight away.

27:31 - And I can't get the slides to work, I know you want to skip all that crap.

27:36 OK, but good news.

27:38 The videos are out and people can check them out.

27:40 OK, next, next, next, next.

27:44 A couple version updates for Python.

27:47 Python 3.11.4, 3.10.12, 3.9.17, 3.8.17, 3.7.17, and importantly 3.12.beta2 are all out.

27:58 And you might be interested to know that both the 311 and 310, I suppose the others, include security fixes.

28:06 Oh, nice to meet you, Mr. CVE.

28:09 For example, some problems that were solved in OpenSSL are now included.

28:15 There's one, two, three, four, five, six, seven, eight, maybe, seven or eight CVEs that were addressed on OpenSSL and some URL parsing and UU decode and things that might look like you wanna get fixed.

28:29 So check that out and upgrade if you can.

28:31 Python Bytes is already running 3.11.4, so hooray for that, Python Bytes Set FM.

28:36 >> I had a friend say they were working on upgrading to 3.10, and I'm like, "I don't even remember 3.10.

28:41 I've been on 3.11 for so long." >> Yeah, absolutely.

28:46 Then final call, just remember the Python Bytes AMA form.

28:51 Please get out there and submit that one more time.

28:54 Link's in the show notes.

28:55 >> Yes.

28:56 >> Yes, right at the top. Yes.

28:58 Ready for a joke?

28:59 I am.

29:00 This one comes to us from Ken VanWick and it's a follow on from theample.com.

29:07 Where's their, there it is.

29:09 Their Vision Pro.

29:12 Right?

29:13 Now this thing is super expensive.

29:15 It looks really amazing.

29:17 I just, I don't, I've not got faith that it's going to take off.

29:20 But the ability to say like, I want to sit, I want to stand on the sideline right at the goal line at the Super Bowl and be able to look around and watch that as if I was there, like that would be epic.

29:31 Is that worth a $3,500 device?

29:35 Now Brian, it's expensive, but did you know, just like the Mac Pro, which was also recently announced, the Mac Pro, super expensive, $7,000 minimum, but it doesn't come with the wheels.

29:45 If you buy it with the wheels, the wheels are $400 separate, right?

29:49 (Brian laughs)

29:49 To get the wheel for your case.

29:51 So this is kind of like that.

29:52 Here's your, this comes to us from Kim Benwick, and he says, actually this is Paul Mason's thing.

29:58 So you got, (laughs)

30:00 so you've got your $3,499 Vision Pro and it comes with the Apple branded $899 snorkel.

30:08 (laughs)

30:10 What do you think of that?

30:11 - I think that's cool.

30:12 And actually, no, yeah, if you could, if this would actually work, would work underwater so that you could go back out in your swimming pool and it would, you could look like you're actually on a coral reef, that'd be cool.

30:26 - That would be awesome.

30:27 Imagine you were in here playing something like Subnautica, one of those types of games, which is just amazing.

30:34 Like a game where you're underwater and exploring.

30:37 But in VR with your Apple Snorkel on, think how real that would be.

30:42 - Yeah, but actually underwater.

30:43 But they're probably not--

30:45 - Yes, exactly.

30:46 - Yeah.

30:47 (laughing)

30:48 Be cool.

30:49 - Oh boy.

30:50 Well, that's what I got for you all.

30:51 $899 Apple snorkel not included.

30:55 Yeah.

30:56 Cool.

30:57 All right.

30:57 Nice.

30:57 Well, yeah, very fun.

30:59 Thank you everyone for the active chat in the live stream.

31:02 Thank you for everyone who listened no matter how you listen and Brian.

31:05 Thanks as always.

31:06 Thank you.

Back to show page