Python Bytes - #212 SQLite as a file format (like docx)
Episode Date: December 16, 2020Topics 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)
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.
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.
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.
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
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.
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,
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,
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
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?
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.
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.
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.
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.
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,
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
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
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
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
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.
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.
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.
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.
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
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.
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.
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
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.
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
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.
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.
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.
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.
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?
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
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
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.
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.
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.
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,
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,
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.
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.
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.
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.
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,
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.
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.
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.
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.
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.
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.
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.
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.
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
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
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.
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
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
we have
the
Python steering council
selected
we have Pablo
Galindo
we have
Carol Willing
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.
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.
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.
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
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.
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.
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.
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?
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
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.
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.
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.
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.
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
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.
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
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?
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,
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?
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
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.
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.
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.
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
in the German pronunciation, Args.
Yeah. Yeah.
Awesome.
All right.
Well,
thanks so much,
Sherry.
Thanks for being here.
Thank you so much.
Thank you.
That was really fun.
Yeah,
you bet.
Bye.
Bye everyone.
Thanks for watching.
Bye.