Python Bytes - #212 SQLite as a file format (like docx)

Episode Date: December 16, 2020

Topics covered in this episode: pytest 6.2 is out SQLite as a file format (like docx) A Day in Code: Python – A picture book written in code PythonLabs is now hosted by Azure. and “Yes, Barry, ...there is a PythonLabs” * Extra, extra, extra, extra, extra, extra, hear all about it* OpenMV Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/212

Transcript
Discussion (0)
Starting point is 00:00:00 Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to your earbuds. This is episode 212. I can't believe the numbers keep going up. I know. We're recording this December 16th, 2020. I'm Brian Ocken, of course. I'm Michael Kennedy. I'm Sherry Eskenaz. Yay, we have a guest. Yes, welcome Sherry. Yeah, it's great to have you here.
Starting point is 00:00:25 Thanks for coming. Thank you so much for having me. Great to be here. Yeah, yeah. You got some cool projects and you wrote to us and said, hey, here's a project I'm working on. And we're like, well, why don't you just come on the show and tell people about it? So we'll get to that later. And it'll be a lot of fun.
Starting point is 00:00:39 Yeah. Brian, you should do something with PyTest. I heard it's popular. Yeah. So yeah, it might not be a surprise. I am a fan with PyTest. I heard it's popular. Yeah. So, yeah, it might not be a surprise. I am a fan of PyTest. But I wanted to shout out because the people at PyTest have been working pretty hard at making things better. And they've got, so right now we've got Python 6.2.
Starting point is 00:00:58 I think we're at 6.2.1 now. But 6.2 came up recently. Ooh, neat. Look, changed a lot.2.1 now, but 6.2 came up recently. Ooh, neat. Look, changed a lot. Cool. So there's a few things that I really like that came up with the 6.2 release. So PyTester, there used to be, I mean, plugin authors, are they going to be the only ones that really care about this? Maybe. but there was a a fixture called test der that um that works fine to test your uh plugins but pi tester is got a way better name and it also uses uh python path.lib instead of the old the os path well it was it was a pi path thing it was a similar to pathlet but their own thing so this is better that's cool
Starting point is 00:01:46 yeah unless clay would use what's built in yeah uh a couple other features i like um uh verbose mode uh well there used to be a way to you you had to if you had a test that was skipped or x failed or x passed you could add a reason but to get the reason was a little, little extra work. And now you can just turn it into verb. If you pass verbose mode, you get those reasons out. That's pretty cool.
Starting point is 00:02:12 Um, and the, the, the last one I wanted to highlight last feature that came up is a change to the monkey patch. So, um, monkey patch,
Starting point is 00:02:22 uh, is, is a way, it's kind of like mocking. It's a little kind of like a way to easily mock, but the, the thing that changed was a context manager. So they added a context manager. And so we either within a test, you can just for part of the test, do the, the, the patch change,
Starting point is 00:02:44 or it's also exposed in at PyTest namespace level. So you can even use monkey patches in helper functions and stuff like that. So that's pretty neat. How's that compared to like the patching with context block? Well, yeah, it's exactly like that. So you could use a with block to to to patch it so fantastic cool i i think this is great like it's it's cool to see pytest moving along and
Starting point is 00:03:13 you know there aren't really that many challengers these days right it's it's pretty much the leading way to go yeah i mean there's still projects that use unit test and there's i don't know why they're still using it but um pytest is there the one that use unit test, and I don't know why they're still using it, but PyTest is there. The one that makes sense to me is I don't want a dependency. I just want to be able to run it. Okay, but yeah, sure. You're not convinced? Well, I mean, how many projects don't have dependencies?
Starting point is 00:03:40 Yeah, that's true um and the other uh the other bit i kind of like it being outside of python because you can um like let's say you upgrade your python uh you don't i don't think you really want to upgrade your test runner at the same time you're upgrading well and also you get a lot higher velocity right like the reason they didn't bring requests in to replace the internal url htp stuff in python was, it's going to slow requests down. Yeah. Yeah. So it would slow PyTest down too.
Starting point is 00:04:10 And then I got a ping kind of on a related note from somebody that was using a plugin I wrote called PyTest check and said, Hey, I'm having trouble running this with PyTest six. I'm like, Oh my gosh, people are using that. So yeah, apparently there are some people using it.
Starting point is 00:04:27 So I updated it to run with PyTest 6. Now it's compatible? Yeah. Sweet. Sherry, do you do any testing? Not with PyTest. I don't have experience with that yet. Yeah.
Starting point is 00:04:41 Definitely a good one. I know I have a good book if you want to learn. That's right. That's right. Well, the next thing I want to talk about, it takes a minute for this to sink in here and it's a SQLite as an application file format. So we've all heard of SQLite, right? It's a database, but it's not a server. It's just the file, and it's embedded into your application, so it's in process, which actually makes it incredibly fast, right? It also, SQLite ships with Python, so you don't have to have any dependencies even to use it.
Starting point is 00:05:19 You just connect to it. You probably do want to have dependencies like, say, SQL Alchemy or something like that, but you don't have to, right? So there's a cool thing that's actually part of the documentation, more or less, for SQLite, but it was brought to my attention by, over here, let me pull up my notes, by John Boltmeyer. John Boltmeyer, thanks for letting us know about this one. And the idea is that we so often, if we have some kind of custom file format for our application, whether it's a command line tool or a GUI or maybe even a website,
Starting point is 00:05:56 although those often default to databases anyway, you have to think about how am I going to store this file? Should we put it in JSON? And we could use some XML, Brian, does that sound good? No, no, no, no XML. But you know, JSON is super popular, right? But even with JSON, you've got to figure out, okay, well, these are the blocks, and here's how you read it. And if some other application wants to talk to it, they need to work with it. And there's all these really interesting advantages of saying, well, let's just have a single binary file that is a SQLite database. And just that's our file
Starting point is 00:06:31 format. Much like DocX has its, you know, is the file format for Word or XLSX for Excel or, you know, you name it, right? All these different apps have their own file format. Camtasia has its own and so on. That could easily just be a SQLite file. So if you go down here in this thing, there's a bunch of things that are highlights. It says, look, simplified app development. You don't have to write any code
Starting point is 00:06:58 to figure out how to work with this file, right? Like you've already got the SQLite built into Python. Everything's contained into a single file, right? Like you've already got the SQLite built into Python. Everything's contained into a single file, right? So you can just easily move it around. It becomes queryable because it's SQL, right? So you just select star from table where such and such, and now your app has search built in. That's pretty cool. A bunch of tools, like we've talked about Beekeeper Studio and things like that. They would just load this up and work with it, right? So anything that works with SQLite is now working on it. Cross-platform, right? 32-bit, 64-bit, Windows, Mac OS. Atomic, right? So multiple things can be working with it concurrently if you make changes
Starting point is 00:07:47 to it you could do like three changes and something goes wrong there's an exception just rolls it back these things are all pretty cool right yeah yeah so let's see incremental updates this is another one that's interesting is with say uh something like a JSON file, you'd have to load the whole thing up unless you're doing something really intense. You would change something small about the file, then you'd write the whole thing back. But the way SQLite works is you just make changes
Starting point is 00:08:15 to little spots in the binary file as you insert stuff. So writes are a lot simpler. Super extensible. And what else? Performance. It's a lot simpler, super extensible. And what else? Performance, right? It's a lot faster than, you know, they have compared some other styles. Like you could have a pile of files like Git or something like that. It's multi-threaded safe.
Starting point is 00:08:35 So multiple processes can access it, multiple languages, all sorts of stuff. And also finally documentation. Like you want to document how your file format works. You just describe what the tables are and what the columns mean that's it what do you think i actually really like using um uh single file database styles like like sqlite yeah um uh for persistence layers because you don't really have to think about it at this point. I've also used tiny DB for a similar reason, but. Yeah. Yeah. Tiny DB is interesting. I think that uses JSON blocks, little bunch of JSON files. It kind of organizes, right? Yeah.
Starting point is 00:09:15 Something like that. Shari, what do you think of this? Yeah, it's, it's, it's, it's, this is actually new material for me. So. Well, honestly, me too. I looked at it and I was like, well, of course I know I can use SQLite, but I just hadn't really put it together. Like, well, this is actually a really cool use of a file format that other people can use. Yeah. Yeah.
Starting point is 00:09:36 There's also a really cool project called Datasette, D-A-T-A-S-E-T-T-E, something like that. And another one related to it called DogSheep, which is a really interesting project that takes all these SQLite and SQL-oriented data inputs and allows you to bring them together and do reporting and analysis on them. So I did an interview recently with Simon, the guy behind the project over on TalkPython.
Starting point is 00:10:09 It's not out yet, but it's already recorded and it will be out. And there's just all these interesting things you can do once data gets into these common formats. So this just is another example. And he also pointed out that there's all these different sqlite databases already on your machine like the photos library for mac os that's a sqlite file wow yeah so there's like hundreds of these on your computer and you just you just didn't know it so anyway this this is hopefully uh solve some problems for people trying to create you know what are we going to do for our app format you know our equivalent of docx what's that going to be? Well, it definitely could be one of
Starting point is 00:10:47 these. Yeah, that's pretty cool. Yeah, definitely. All right, next up, Sherry, tell us about your project. This is the one I mentioned before. Yeah. so I'll start off by saying I noticed that kids' programming books are either really abstract or they don't teach the reader how to write a simple program. It's either that or they're too intensive in the format of a textbook or a book made up of a lot of tutorials with step-by-step instructions. And so that's why I thought of taking a different approach by creating a programming book in the form of a picture book that tells a story with complete computer programs that represent real life situations. So my latest book is called A Day in Code Python, and it's now live on Kickstarter. It tells a story using Python programs that describe real life situations in the code. And so for each two page spread in the story, there's a code page that has a complete Python program that describes a situation in the story and a full-page illustration next to it that shows the scene that's being described.
Starting point is 00:11:51 So in that way, the book is presenting Python code examples in a continuous story, and the code is explained below each program. And each program presents a new Python concept. And so you might be wondering, like, why did I choose a picture book? And so there's a few main reasons why I thought of doing that. And so, of course, the most obvious is that a picture book is fun and colorful, and who doesn't like a picture book? But I also wanted to show that everyday events can be described with the logic of code. And I think the programming concepts can be better understood by making the code relatable.
Starting point is 00:12:26 And I also wanted the book to be compact and show code examples conveniently. So as a beginner, you don't need to dig through a big book looking for basic code examples. And also by having nice full page illustrations, my aim is that the reader and kids especially will enjoy the book in the same way as a normal picture book that is flipped through again and again. And while they're enjoying the pictures, they'll be looking at the code too. And their understanding of the programming concepts will be reinforced. And so this book will be in the same format as my first book, A Day in Code, which is written in the C programming language. And that book was actually
Starting point is 00:13:05 released a few weeks ago on Amazon. And I had previously launched a Kickstarter campaign for it. And after delivering the book, I got a great response from kids to college students to adults. So it's really for all ages. And so now I'm focused on creating a Python version of that book. And you can preorder. Yeah, I think a Python book makes a lot of sense because it's the most popular learning programming languages these days, right? Yeah, it's definitely been gaining in popularity. Yeah, very popular.
Starting point is 00:13:36 It's everywhere. I like the idea of just sort of letting it wash over kids, right? Maybe the goal isn't necessarily it might not be to teach them programming and have them come out the other side of interact with the book actually writing code but kind of seeing the examples and just making code something that you kind of talk about like reading or like writing or like history or or anything so it's it's a cool format what do you think brian i think this is great so
Starting point is 00:14:05 do you have like a a target age in mind or so that's why i say like well of course being a picture book it's it's great for kids but i've also gotten a lot of people adults who say that they enjoy it too and it's just a fun format for anyone to enjoy starting to learn programming or even just looking at it as a reference. Even if you're experienced in programming or maybe you want to refresh your memory, it's just a convenient way to look back at simple code examples that go over all the basics of Python. So functions, dictionaries, lists, tuples and all that stuff. Yeah. And it's almost funded on Kickstarter. So it sounds like you're going to make it happen.
Starting point is 00:14:50 You're like $1,000 away. And I'm sure people are interested. Well, I'm going to order one. Thank you. This looks great. Yeah. So once you get it funded, when do they come out? So right now, the estimated delivery time is in April and it'll be a special edition book.
Starting point is 00:15:11 So I'm actually getting it printed at a U.S. based facility that allows me to print with glossy paper, 100 pound paper and have a feature of having printed end sheets at the front and back of the book, which, and so these features, um, aren't available once the book goes on Amazon. So. Cool. Yeah. Great project. Happy to see it gaining some, some traction. Hopefully people can make it happen because, uh, it'll be neat. Yeah. Thank you so much. Yeah, absolutely. So Brian, before we move on to the next one uh speaking of books maybe uh tell people about what we're up to so they can uh support us if they wish yeah well the best way to support uh uh let's say me is uh by picking up a copy of python testing with pytest um i i still get feedback all the time of people thanking me for writing this because it helps them in their job, helps them get stuff done better.
Starting point is 00:16:08 So it's really awesome. Yeah, absolutely. And then if they want to learn some more about all sorts of types of Python, they should probably check out training. They should. We've got a couple of new courses. I just released the Fast API course a couple of weeks ago, and that's such a neat framework.
Starting point is 00:16:25 We also have our Excel to Python and the Python Memory Management Tips Deep Dive course. So those and many more are out there for people to take. If they're interested and they want to learn Python, there's a whole bunch of ways, the day in the code, PyTest, and then these courses as well. I always forget that you have a memory management one. Yeah, that's ironic, isn't it?
Starting point is 00:16:50 So I think Barry, I don't, are we doing this next? Okay. Yeah. This is what's next. Yeah. Nice. So I, so I can't believe we haven't done this, but actually partly because I can't believe I just noticed this so I didn't know about this yes Barry there is a Python lab so it's pretty funny so this is at azure.pythonlabs.com
Starting point is 00:17:22 and it used to be just normally at www.pythonlabs.com and it used to be just normally at www.pythonlabs.com so it's moved but this is back from this is kind of an inside Python joke it's back Tim Peters posted it in 2004 and
Starting point is 00:17:37 apparently there was a question from Barry, it just says Barry I'm assuming it's Barry Warsaw asked the question what is Python Labs now question from Barry. It just says Barry. I'm assuming it's Barry Warsaw. Yeah, I would guess. Ask the question, what is Python Labs now? Or is there a Python Labs now? I don't know. Guido owns the domain name, which is probably the biggest claim to Python Lab hood there is. And then Tim Peters replies with a very, yes, Virginia, there is a Santa Claus-esque answer. And I just encourage people to go read it. It's hilarious.
Starting point is 00:18:12 There's stuff like, Barry, your little friends are wrong. They've been affected by the skepticism of a skeptical age. Yes, Barry, there is a Python Labs. It exists as certainly as love and generosity and devotion exist. Alas, how dreary would be a world with no Python labs. So it goes on like that. And it's pretty funny. So I encourage people to check it out.
Starting point is 00:18:33 How funny. Have you seen this before? I've never seen this. And apparently it's from 2004 originally. But now it's on Microsoft Azure. And I'm wondering if this has anything to do with Peter Van Rossum moving over to Microsoft. Yeah, I assume so. I was going to try to look at where I found this. And I think just somebody mentioned that it moved to Azure a couple months ago or recently.
Starting point is 00:18:58 Yeah, yeah. Funny. You know, another piece of news I caught that was not officially on the radar, but a friend of the show and our friend, Anthony Shaw, he is headed towards Guido as well. You hear that? I did. He joined Microsoft as a, some, some kind of Python specialist. I'm not sure. So I hope,
Starting point is 00:19:20 I hope they throw some money on him to try to move him to the Northwest. That'd be cool. That would be cool. That would be cool. Yeah. Then we can hang out with him more. He's far away. He's in Australia, which is a long way,
Starting point is 00:19:29 but it's going to be hard for him to leave. He lives on the beach. Yeah. He keeps, he always posts his like, you know, surfing report and stuff like that. Exactly.
Starting point is 00:19:40 Cause life's hard. Sometimes we surf in Oregon. Yeah. With about five seconds. Yeah. With wetsuits. For about five seconds. Yeah. And we change color, then we come out. All right.
Starting point is 00:19:51 Let's see. What's the next one here? I think. Yeah. So remember, Brian, I did an extra, extra, extra, extra the other day? Yeah. That was fun. Do more of that.
Starting point is 00:20:01 Because I had so much stuff. Well, let's do an extra, extra, extra, extra, extra, extra this time because, oh my goodness, there is so much stuff. I'm not just going to turn this into another element here of the show. So first of all, we spoke about NumPy in installing. I think it was on Big Sur. It was having some problems. It wouldn't install correctly.
Starting point is 00:20:23 I don't remember if it was Windows or Linux or Mac OS. I think it felt like it was Mac OS. But anyway, it was a problem with one of the platforms. But what was interesting is I got a message from Grice that, hey, quick follow-up on episode 208. Did you know, I didn't know, did you know that in your requirements TXT file, you can say like NumPy equal equal 1.19.3 semicolon and then platform. So you can say platform underscore system equal equal Windows. Then another different version of NumPy,
Starting point is 00:20:57 platform equals Linux. Another one, platform equals Darwin. Isn't that cool? Yeah. I had no idea you could kind of split the requirements file to say the Windows install gets this and the Linux install gets that. Oh, that's cool. Yeah.
Starting point is 00:21:15 Yeah. I had never seen this, but the problem was NumPy was not, it was Windows update that broke NumPy. That's what it was. And so here's a way to pin the Windows version to an older NumPy, but let the other stuff be newer. That's what it was. So here's a really simple way to fix that, huh? Yeah. I hope I never need this trick. Yes, exactly. And then I got another message from William Silva and he said, hey, check this thing out.
Starting point is 00:21:47 You probably heard of material design, the way that Google styles some of their apps and so on. And we've all heard of probably the best way to build cross-platform apps with sort of native widgets. Maybe Electron's the best way, but native widgets would be with Qt and PySide 6 and probably PyQt, I don't know if it's upgraded yet, but there's this cool theme that you can put on to make it look material. Doesn't that look neat? Oh, that is neat. I like it. Yeah, yeah.
Starting point is 00:22:20 So often these cross-platform apps, they just look, boy, I don't know. They just look like they're standing out weird. But this looks really nice here. I totally like it. So I'll put that in the show notes. People can check that out. Number three, I just announced this. I thought it was pretty neat.
Starting point is 00:22:38 I wrote a blog post that talked Python hit 20 million downloads and is the number two developer podcast out there, I just found out. I wrote a blog post sort of celebrating that. That's very impressive. Yeah. That's crazy. Yeah. Thanks.
Starting point is 00:22:54 Thanks. And by the way, Python Bytes is around 6 million and going. So we're pretty strong over here as well. Nice. Yeah. Awesome. Pyramid. Pyramid 2, the web framework, is coming out.
Starting point is 00:23:06 And I actually tested it. Talk Python training, which is about 25,000 lines of Python, is written in it. Just upgraded it. Ran everything. All the PyTest pass. Everything else is good. So Pyramid 2 is looking solid. Not too much change, but it's good to see how it's going.
Starting point is 00:23:23 Python 3.9.1 is out with 282 changes. That's a lot. Well, let's go through them all. Yeah, okay. Well, I'm going to say like 10x speed, if you don't mind. Now, the other notable thing, almost the reason I'm bringing this out, is that the Python on macOS also ships as a universal binary, which means it has an Intel version and an Apple M1 version.
Starting point is 00:23:46 Oh, nice. Which leads to all sorts of interesting weirdness when you pip install things that expect Intel. But nonetheless, it's out there and people can start playing with it. I actually did a stream, live stream, number six, with Paul Everett from JetBrains. So we're exploring what's the python experience on the apple m1 mac mini so that's like an hour-long video he and i did last friday and i'll link to
Starting point is 00:24:13 that you can check it out well what's the punchline though the punchline is almost everything works but we couldn't get jupiter lab to work for some reason okay but everything else seemed to be pretty much fine but the trick is you kind of need a lot of times you're going to work with something that maybe doesn't have an m1 version of the package or the wheel but if you go to the terminal and you create a copy of it and then you tell it to run under rosetta every every Python command you issue becomes an Intel Python command. So if you pip install something, it'll use the wheels for the Intel version of Mac, not
Starting point is 00:24:54 the M1 version of Mac and stuff like that. So it's kind of your escape hatch. Like once you open up that terminal, you've fallen back into the Intel world. So you don't have compatibility issues there. Okay. Anyway, we did a ton of that with stuff. Sherry, do you have an M1 Mac? Are you on? No, actually.
Starting point is 00:25:14 Are you excited about these? I'm not on a Mac. I'm not on that. What's your OS of choice? Well, Microsoft. Yeah, Windows? Yeah. Awesome. Yeah. Yeah, they're doing good stuff. Like, there's a ton of Python things happening well Microsoft yeah Windows yeah awesome yeah
Starting point is 00:25:25 yeah they're doing good stuff like there's a ton of Python things happening over there that's pretty exciting alright and then last thing this is brand shiny new is
Starting point is 00:25:34 we have the Python steering council selected we have Pablo Galindo we have Carol Willing
Starting point is 00:25:43 Brett Cannon, Barry Warsaw, and last one, T. Wooters were all selected to be the new steering council folks. So that's exciting. And yeah, that's it.
Starting point is 00:25:59 Those are my extra, extra 6X extras. Well, cool. Yeah, awesome. And I guess last thing to talk about is a little computer vision. Yeah. So this is like a really cool product I found out about a few years ago. And it's called OpenMVCam H7 is the latest one.
Starting point is 00:26:21 It's a microcontroller development board with an onboard camera that runs machine vision algorithms with MicroPython. The OpenMV IDE and libraries make it really easy to run complex machine vision algorithms with simple Python code for things like color tracking, face detection, eye tracking.
Starting point is 00:26:39 One particular application that I really like, which I did, is detecting April tags, which are like QR codes in that they're 2D binary pattern squares, but they encode a much smaller amount of bits between 4 and 12 bits rather than a QR code, which can store up to 3 kilobytes. And so by encoding a smaller amount of data, it makes them easier to detect and be able to be robustly detected with
Starting point is 00:27:05 variations in the camera viewing angle and the lighting conditions. And they can be detected from a longer distance. And so it's just so convenient because the OpenMVIDE has an April tag generator. So you can easily create the tags and print them out. And it has an April tag, my micro Python library. So you can easily implement the algorithm and the code will return the rotation and the ID code among other information about it. And the company OpenMV has said they want to be the Arduino of machine vision because they have such an Arduino like user interface and you can view the output of the camera in the IDE.
Starting point is 00:27:47 And they actually just announced a few weeks ago that they're now partnered with Arduino to support computer vision on a new wireless Arduino board called Portenta H7 with OpenMV firmware and the OpenMV IDE programmed in MicroPython. So it's really cool to be able to easily implement these complex machine vision algorithms with just a few lines of Python code on a plug and play STM32 microcontroller board.
Starting point is 00:28:15 And yeah. Do you know what it costs? Um, the latest one, I think it's, I got it. It's like 60 around $60. I'm trying to remember now. Oh, yeah. 65. now. Yeah, $65. To set up a little computer vision system for $65? That's cool.
Starting point is 00:28:32 Yeah, I was very impressed how it was just taken out of the box and running this example code that came with the IDE and was able to detect these April tags. And it's interesting to see how it compares to QR codes and they're more robust in detecting. Yeah, okay. Yeah, and they have a little code example here that's quite straightforward, right?
Starting point is 00:28:55 You just set the pixel format, how many frames, and then take a snapshot and run things like image.findblobs and like magic happens on that line. Yeah. Yeah, that's super cool. So one of the things that I've always wanted to do, and I don't know if I'll ever do, but I want to create an IoT course. And I would like the final exercise of the course to be setting up a camera so you can have a multiplayer or a computer against human game, but have the computer do it through computer vision. So over like a checkers board or a tic-tac-toe, like you draw on it, the computer looks at it and says, I want to go there
Starting point is 00:29:38 or something. That would be so fun. It looks like this might be something I could use to make that happen. Yeah, definitely. I read that you can run TensorFlow Lite on it too. So you can train be so fun it looks like this might be something i could use to make that happen uh yeah definitely i read that you can run tensorflow light on it too so you can train um ai you can train models for ai with tensorflow running on this run it right on right on the device not shipping it to the cloud yeah yeah that'd make it really responsive that's cool brian what do you think what would you do with it? I think you should run with the board thing and do a chess thing and then have a – and actually have the – you should get into robotics also and have it just move it. The claw comes out, grabs it.
Starting point is 00:30:23 You know, how about Sett katan come on if we could automate settlers of katan and you'll be even better actually would be not just have the computer play but in this like whole weird social distancing bizarro world we live in like you could set it up so you and your friends just play and like both have a board and the thing just tells you and your friends just play and both have a board. And the thing just tells you, oh, your friend moved here. You got to move that over. That'd be great. I've never even got through the instructions on Settlers of Catan yet.
Starting point is 00:30:53 One of my daughters loves it and one of them hates it. They're like, please, we can't play. It takes so long. We can't do that. Yeah, that's funny. But anyway, I think this is a cool device and it would be really fun to play around with it. $65 for the whole thing, that seems pretty affordable. Yeah.
Starting point is 00:31:10 Yeah, definitely. Yeah, awesome. All right, well, what else have we got? I don't have any extras, Brian. I've already gone through my six extras. You got any extras? I just have one shout-out to, I guess, the Python community on Twitter. I just want to say, I don't know.
Starting point is 00:31:30 I'm getting a little cheesy today near Christmas. But this is a sort of a silly thing. But I saw there was a discussion on Twitter. It happened last night and today. There was somebody named Nicole Carl that um started this question of uh do you say for kwargs do you pronounce that keyword arguments or do you pronounce it quarks oh my gosh um and i had never considered pronouncing it quarks before how about you michael i think i did i think i do say quarks no no i say kw args that's what i
Starting point is 00:32:07 say okay yeah so that was brought up by a couple people that they use that yeah kw args that's what i say and so i just i'd never even consider i like quarks i'm gonna i'm gonna start using that now something comes from star trek but uh yeah cling on a cling on word i don't know or yeah or quark from uh deep space nine yeah so um vicky boyka said i've never even considered not saying quarks and a whole bunch of other people had different comments and it just the i just wanted to bring this up because it reminded me of like a conversation we'd have over beer or something at PyCon or in the, you know, in the hallway or something like that. And that little bit of just stupid conversation around Python, I just really appreciate it.
Starting point is 00:32:55 And I like that that little bit is alive on Twitter, at least a little bit. Yeah, funny. Sherry, how do you say it? Oh, gosh, I am am actually i don't normally say what's funny is like when you there's all these different little acronymy words and programming and it's it's funny when people they mostly just read them the whole time and all of a sudden they have to say them right like yeah i pypi.org right
Starting point is 00:33:27 like some people say pi pi and some people say ipi and so on right i'm on the pi pi side but it's it's just you know sometimes you don't have to pronounce it but sometimes you do it's yeah i'm not sure what to take on this issue yeah this changed my life though i'm gonna quarks all the time now. Right on. Sounds good. Sure. Anything else you want to give a shout out to while we're here?
Starting point is 00:33:52 I don't know. I mean, just thank you. Thank you so much for listening and thank you for checking out my Kickstarter campaign for a day in code Python. Yeah. Yeah. It's good to have you here this time. All right,
Starting point is 00:34:01 Brian, I think we should finish it with a joke. What do you think? Sure. All right. So I I'm having this problem i was i lived in this apartment complex the fourth floor the fourth apartment on that floor and uh yeah the the number of the apartment was 404 but you know what's the problem? 404, probably not found. Exactly. Every time I order a pizza, the delivery guy tells me he couldn't find the place. Was that, was that really your apartment?
Starting point is 00:34:33 No, I wish it was. They've been awesome. No, I lived on 214. I don't know if that's an HTTP status code, but that's as close as it's been. 108. I don't know what 100s even really do and I know they are their status codes but I haven't I don't know 108 off the top of my head either but this one this is a good one I like it a lot I like that too
Starting point is 00:34:53 well I got one last joke okay so why do software developers or many of them prefer dark mode why tell us because bugs are attracted to light developers or many of them prefer dark mode. Why? Tell us. Because bugs are attracted to light.
Starting point is 00:35:10 Oh, yes. Awesome. I heard this on Twitter. It's terrible. And I told this to my family. It's one of those, you tell a joke, sometimes some jokes you tell your family and they just stare at you. Yeah. Yeah.
Starting point is 00:35:23 They don't get it. All right. Really quick. I want to follow up with one comment from the live stream. And if you're not listening, not interested, you know, you don't know about yet the live stream. We're also streaming this onto YouTube now. So check out pythonbytes.fm slash YouTube, and you can subscribe to upcoming live streams. But Brian, there's a question here. When's your second edition coming out? Come on, man.
Starting point is 00:35:46 There is no plan to date. Okay. And then also we have the German version of KW Args. I say KV Args. KV Args. That's just like saying KW
Starting point is 00:36:02 in the German pronunciation, Args. Yeah. Yeah. Awesome. All right. Well, thanks so much, Sherry. Thanks for being here.
Starting point is 00:36:09 Thank you so much. Thank you. That was really fun. Yeah, you bet. Bye. Bye everyone. Thanks for watching.
Starting point is 00:36:14 Bye.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.