Transcript #210: Analyzing Kickstarter Campaigns with Python
Return to episode page view on github00:00 Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to
00:05 your earbuds, or in this case, your eyeballs also. This is episode 210, recorded November 23rd,
00:12 2020. And I'm Brian Okken. I'm Michael Kennedy. Yeah, I'm Jay.
00:16 Hi. Jay Miller. Welcome to Python Bytes, man.
00:19 I'm glad to be here. I will say this is hard because coming up with picks for
00:24 the show that you normally get all your picks from is quite the challenge.
00:30 Have we pulled the rug out from you? Like normally you would just listen and then go,
00:33 here we go. But now it's...
00:35 I'm not going to lie. I went to the search page and typed in like my first three picks and sure
00:40 enough, they were taken.
00:41 No, there's 210 episodes. So we just have been recycling them for like the last four months.
00:46 We just started with zero and started over again.
00:49 Yeah. If people listen, like, what are we on? I caught in episode 40 again.
00:52 Yeah. Funny. We probably could, but you know, anyway.
00:57 Only our best fans would know. And Brian, we're live streaming as well. We should tell
01:01 the non-live stream listeners that this might be a thing in the future.
01:04 Yeah, this might be a thing. We're going to see how it goes. It's kind of fun. We're live
01:08 streaming right now, but that's boring for people that are listening to us in the future.
01:13 But anyway.
01:13 Yeah, we'll put a link and like a way to know when we're live streaming and stuff like
01:17 that. So we'll talk more about that later.
01:19 Yeah.
01:19 Well, let's start it off. I want to talk about Kickstarter. So you had a Kickstarter campaign
01:23 once a long time ago, right?
01:25 I did. I've actually done three Kickstarter campaigns. One for a bunch of t-shirts, which
01:30 was a ton of work and was fun, but shipping thousand shirts or something was quite the deal.
01:35 Maybe not that many, but many shirts. And I did one to start the training company around
01:41 the Python Jumpstart course, which was awesome. And I did one with Matt McKay for the Python
01:46 for Entrepreneurs course. So yeah, I love Kickstarter.
01:48 So I think Kickstarter is a pretty cool thing. And so I was interested to see, there was an
01:52 article called Kickstarter projects. Do they succeed? But yes, the success or failure of
01:58 them is sort of interesting. I really loved that this was an analysis done with Python data
02:04 science tools. So it looks like, I think it's Aditya. It was the author. And it looks like this
02:10 may have been a university project or something. I'm not quite sure, but I guess it doesn't matter.
02:15 It's a pretty cool article. So he used a Kaggle information that went, that used all the projects
02:22 up through 2018, I think. So it's not, it's not up through today, but that's pretty big data set.
02:29 There's like 370 plus thousand projects in the data set. So that's neat. Came from Kaggle.
02:35 And then the article goes through using Panda's data frames to explore the data using describe,
02:41 describe, which is a cool thing for the data frames have to just learn. You can learn quite a bit about
02:46 your data just with describe. But then he goes on and uses matplotlib and Seaborn to analyze the data
02:52 further. And I really, I kind of really liked that. I've seen articles like this before of how to use
02:57 pandas and stuff and graphics to explore data. But this is data I actually really kind of cared about
03:03 learning about Kickstarter. I may want to go back and, and use some of the, some of the techniques
03:09 that he talked about in this article to kind of explore it more. I got to point out, there was a
03:14 interesting line in there that said the data set goes back, has a 1970 listing. And it said the data
03:21 from 1970 seems to be bad or insignificant data. I wasn't sure if this was just like a misunderstanding
03:28 of when Kickstarter started or a joke, but yeah, it wasn't around in 1970.
03:33 That's not when the song kickstart my heart came out, is it?
03:36 Oh, I don't know.
03:37 That was Motley Crue, but I think that was like late eighties.
03:40 Yeah.
03:40 Yeah.
03:42 Yeah.
03:42 Yeah.
03:43 You know, there's a bunch of punchlines. One of the punchlines is 30, about 35% are successful,
03:49 although they describe success as meeting the goal.
03:53 And one of the things-
03:54 Right, it's funded, right?
03:55 Yeah, it's funded.
03:55 Not necessarily shipped, delivered the product, right?
03:57 Yeah. Well, I'm not sure. But one of the things I love about Kickstarter is the feedback. So I
04:01 personally think that a failed Kickstarter is also a success because people, people learn that there's
04:08 not enough demand to push forward. So that's information and that's successful too. But,
04:13 you know, maybe I'm just an optimist.
04:14 There's a lot of research that's been done on like the idea of Kickstarter and how now Kickstarter is almost
04:21 80% marketing and 20% product idea. There have been Kickstarters that have failed, that have
04:28 retried on Kickstarter with a different marketing approach and like wildly succeeded.
04:33 So interesting.
04:34 It would be interesting to see like out of the ones that did succeed, like how many of them had videos,
04:39 like how long were their posts? Because I think a lot of times people want to jump on these projects
04:45 like, hey, fund me, please, please give me money. And it's like, you almost have to do a little bit
04:50 more work than that to even get to the bare minimum opportunity of success.
04:54 I did a lot of research on Kickstarter success and failure and stuff in the early days. And yeah,
04:59 it's, there's a whole thing that you don't see about getting the word out about if you get a high
05:03 enough growth in the early days, Kickstarter will feature you. Like my first one, when I launched
05:08 Talk Python training, it became for like two weeks, my Python course was the number one software product
05:17 on Kickstarter. And we got like 40% of the people who bought the course discovered it on Kickstarter,
05:23 not because I told them about it or someone else told them about it. But the reason it got there is
05:27 the podcast, the podcast listeners who heard about it all went and quickly funded it. And so it,
05:32 Kickstarter saw like this trajectory of going up and yeah, it worked well.
05:38 I think that's good information though. Also, I mean, that's, yes, it's marketing, but yes,
05:43 selling a product is also marketing. It's also having a platform to tell people about it. It's,
05:48 you can't really sell stuff into a vacuum and expect to make money. So yeah.
05:54 One really final interesting thought, if people are kind of interested in Kickstarter, there's a
05:58 fantastic movie. One of my favorite documentaries of all time called capital C capital, the letter C,
06:03 the movie you search for that. It's like, it's in 19, not 2015, following people around who got funded.
06:11 And like when Kickstarter was all the brand new rage and it's just super cool to see those people go
06:17 through there. It's, it's amazing.
06:18 I'll check it out.
06:18 But you know, what was not super commonly used back then, at least compared to now is using GPUs
06:25 for machine learning and high end computation. Like that's a pretty new thing, right? Not brand new,
06:30 but it's definitely gaining momentum.
06:31 Yeah. Let's hear about it.
06:32 All right. So often you hear about, Oh, you can just do like PI CUDA this and CUDA that. And CUDA
06:38 means NVIDIA. CUDA is not a general thing. So when something says you can do this cool machine
06:44 learning on GPUs with CUDA. And then I look at my MacBook pro here that has an AMD, I don't know,
06:50 560, whatever graphics card in it. Nope. Don't get to do CUDA. No CUDA. I actually do have a gaming
06:58 sim racing computer that has like a NVIDIA card if I really wanted to. But the point is like a lot of
07:04 these laptops and other machines don't have some way to run NVIDIA stuff on them. Right. And that's,
07:11 you know, that takes the wind out of the sails of a lot of data science and computational projects.
07:15 Yeah.
07:16 Unless you could bring in the Vulcans. So there's an article which talks about an open source set of
07:24 libraries, I guess. Articles entitled GPU accelerated Python for machine learning on cross vendor graphics
07:30 cards. That's pretty cool. Yeah.
07:32 And so apparently it uses this project called Vulcan compute, the Vulcan compute Python framework.
07:39 And the idea is that a lot of the modern machine learning libraries like Google TensorFlow,
07:47 Facebook's PyTorch, a bunch of others, they've all been adopting Vulcan, which is a C++ library,
07:54 as their cross platform GPU SDK. So that means, yeah, I can do it on my computer or I don't have
08:02 to have NVIDIA or whatever. Right. So that's really awesome. However, they say, you know, in order to use
08:06 this Vulcan library is 500 to 2000 lines of C++ code just to get like the boilerplate set up.
08:14 As a Python developer, that strikes me as a lot. And how do you feel, Jay? Does that seem like a lot?
08:18 Yeah, that's a hard pass on my part.
08:21 Yeah, exactly.
08:22 Well, you kind of have like a thousand lines of code just for a print statement. So
08:26 exactly. Yeah. Like that's all the header files and all. So then there's the compute Python package,
08:33 which is built on top of the Vulcan SDK using C++ bindings. And that thing is nice and simple.
08:40 And it's a GPU framework, a general purpose graphics processing unit framework, I guess,
08:46 is the acronym police there. And so if you're interested in building stuff for GPUs and you
08:52 don't want to be tied to CUDA cores, then check out this compute Python package. It sounds pretty cool.
08:58 Yeah. Except for the logo looks like it was like designed in 1983 or something.
09:05 You know what? Maybe hold on, hold on, hold on. I think there's a little animation,
09:11 like the Cylon type animation here for the animated GIF with the Python. And it has like ray tracing
09:19 reflections of the logos. Oh, I kind of dig it, man.
09:22 Well, okay. Yeah. It's a little video.
09:24 Jay split the vote here. Come on. What's it going to be?
09:26 They're probably using all of their GPU power to do something in the background,
09:30 which is why they couldn't come up with a good logo.
09:32 It sounds like a useful framework that people could talk about. And the article talks about,
09:37 walks you through some examples of using it and stuff. I'm not going to go in the details there,
09:41 but yeah, pretty neat.
09:43 I like that this is mobile enabled too. So you can, you can take some of your work on the go.
09:48 Yeah. Quite cool. Put it on your small devices. Quite neat.
09:52 Yeah.
09:52 Speaking of small devices, Jay.
09:55 Oh, you stole my segue. I was going to say we could use some Vulcan technology to open up a portal,
09:59 but we could, what kind of portal?
10:01 A pie portal at that. So my pick, we're getting closer to the holiday season, which
10:07 I can't believe I'm the one that's saying that normally I'm the one that gets angry when
10:11 people talk about Christmas before Thanksgiving. But yeah, I, I received a little gift from Santa pie.
10:21 And from there, I thought this would be a great gift for the tinkering Pythonista.
10:25 And it is a pie portal, which I'm actually glad we're live streaming this because I can kind of
10:31 show it off.
10:31 Yeah.
10:32 Oh, nice.
10:32 Oh yeah. So when I think of like circuit Python and these devices, like it's usually just little
10:37 chips and maybe you've got an led you can make blink, but that's like a screen.
10:41 This is like all of the little things that we think about when we think of circuit pie on one device. So
10:48 it has a touchscreen. So not just a regular screen, it's a touchscreen. It has the actual IO that's
10:55 running right now as a light sensor. So there's a little sensor on the side that if I cover it up,
11:00 you probably can't see it, but the numbers will actually start changing. There we go.
11:04 Oh yeah. Yeah.
11:05 And of course, since it's running circuit pie, it is like the easiest thing in the world to,
11:10 to work with because at its core foundation, it's just Python and it's a limited scope of Python. So
11:19 you kind of have to figure out, you know, what you're importing, what you're exporting. But
11:22 I was able to display my light sensor output in 20 lines of code and five of those were import
11:31 statements. So about 15 lines. That's pretty awesome. And I've seen some pretty cool projects
11:36 with it. So what's the, graphics programming language look like? Is it like draw text? Is it
11:43 draw pixel? No, actually it's, it's really interesting because of like, they have like actual pie portal
11:52 module that you can import. And from there you actually load the screen and you can display
11:56 full images on. So what you would do is you'll set your background almost like how the old Atari
12:02 systems, you would come like with these paper backgrounds and then you would just overlay
12:05 your actual game data over it. You kind of do that with this.
12:09 It's like a 2d layered sprite type thing almost.
12:12 Exactly. You load up like a small bitmap onto the screen and then you just tell your text where you
12:20 want it to be placed. And I've seen people do like weather sensors. I actually did a thing with
12:25 like Twitter lists so I could check and see like which Twitter lists that I follow for work or
12:29 like having to have the most traffic. You can also throw some audio on there has built in speaker. So
12:35 we played some practical jokes on, on relatives by having this, having it randomly every few seconds,
12:43 just shout names and they didn't know where it was coming from. So, that's always fun.
12:48 That looks really cool. Do you know what it costs?
12:49 I want to say it's 50 bucks.
12:51 Yeah. So not too expensive of a thing. Oh, that's a nice one. I like it. I'm still looking for that
12:58 good use case where I can make some use out of some of these little devices. I think as somebody that
13:04 does a lot of recording, I really want something that I can put on my door that is have like a sign
13:09 like recording, please don't open up and yell and ask if I'm recording.
13:12 That was the game plan, but I need to get a case for it. And this is actually why a wifi enabled. So
13:18 if you are pulling data in, you can, tap into the add a fruit API and they give you your own little
13:25 dashboard. You can store data there to retrieve later. You can pull up data from it. It has its
13:30 own request library. So you can actually pull stuff down from the web. And, that was actually my game
13:36 plan too, was to say, all right, have some little server on my Mac that whenever I open up, you know,
13:43 zoom or Skype or something like that, it changes the status to now recording. And then like,
13:48 because this is wireless, it would just pick up that signal and change on the door.
13:53 Yeah. Maybe some serverless function thing where you talk to a database that literally has one entry
13:58 recording or not, you just push it up there and it's all good to go. Awesome. I'm pretty sure this is
14:03 going to exist for at least one of us someday, right? Like it seems like such a nice thing to
14:08 have. Yeah, we should do it. Even all this COVID work from home stuff. Like you've seen those videos
14:12 of like kids being like crawling in and mom's dragging the kid back out. Like, okay. So maybe it doesn't
14:18 work for a two-year-old, but still it would be nice. So Brian, I'm not the only one with machine
14:21 learning here. What do you got? Well, we've got, yeah. So I guess this is a machine learning stuff.
14:26 We've got an introduction to linear, an article called introduction to linear algebra
14:31 for applied machine learning with Python. Now I do want to do some machine learning in the future and
14:38 definitely, and that's the target for this article. But you still got to learn about it.
14:42 Sorry, Clyde. That was bad. It was very bad. Actually, I use, we use linear, linear algebra is used for
14:51 communication systems as well. And so I kind of would like to brush up on my linear algebra. I didn't,
14:56 it was a long time ago when I took it in college. So this article is from Pablo Ciceras and
15:03 it's a big article. He says it's intended as a reference and not a comprehensive review.
15:08 However, it's a really big reference.
15:11 This is a book. It has an epilogue.
15:13 Yeah, it is a book, but there's also links. He includes links to both free and paid resources that
15:20 where he suggests learning linear algebra, including some video classes that are free,
15:25 which would be neat. But anyway, I think the level that he's got this is really just right for me.
15:31 And he talks about sets and ordered pairs and relations and functions, then gets into vectors
15:38 and matrices and, and mappings and matrix decomposition. So he gets pretty deep into the linear algebra.
15:45 And in some of the examples, he's got diagrams and stuff, which help, help me learn the visuals.
15:50 And, he's using NumPy, pandas and Altair for some of the examples. And, I think that's pretty cool to show not only kind of how you do this, how you use linear algebra or really what it is.
16:05 And then how to apply those, principles with NumPy and, show the examples with Python. It's really kind of nice.
16:12 So anyway, top, it's a really useful thing for me.
16:16 That's cool.
16:17 Your linear algebra, it's one of these weird things that like appears in places that you don't expect it.
16:21 It was definitely one of my favorite parts of my math studies is the, like the advanced linear algebra stuff.
16:28 But like in 3D computer graphics, the way you rotate, like the viewport and stuff is you just multiply everything by like a rotation matrix.
16:35 Or if you move something, you multiply it by a matrix or you make it bigger or smaller.
16:39 Like there's just all these crazy applications of linear algebra. so yeah, it seems pretty neat.
16:44 Yeah. A lot of the, it comes up a lot in, like you said, with, with graphics also with, changing, well, really anything where you've got like massively parallel systems can be described as a linear algebra problems.
16:57 Yeah. Very nice. Next up, I want to talk about a new notebook framework. We seem to be catering to the data science crowd or scientific computing crowd this, this time around, but not always.
17:07 So I recently did a show with Philip Guo and Sam and we talked about, I think it was 60 different notebook frameworks.
17:18 It was, Sam Lau and Philip Guo back on episode 268. So, you know, you think Jupyter and now, is there something else? Oh, there's that Google collab thing.
17:28 60.
17:29 Well, 60 different things.
17:31 Wow.
17:32 Yeah. And 61 now, because there's another one called deep note.
17:36 Okay.
17:36 Jay, have you heard of deep note?
17:37 I have actually, I'm kind of upset because this was going to be one of my picks, but I hadn't used it yet.
17:45 I was looking at it for a lightning talk that I gave last week and I was like, Oh, this is so cool. Too bad. I don't have anyone to collaborate with on this project. Otherwise I would have tried it. So you beat me to it.
17:58 I sniped. Yeah. I got it out of there. Yeah. So deep note is an interesting one. It's Jupyter compatible, like many of the other ones that I sort of indirectly referenced there, but not exactly Jupyter. It's not like it just runs in Jupyter or JupyterLab or something.
18:13 So it's, I'm pretty sure like that means import export from Jupyter. And then it runs in the cloud, which is kind of cool. A lot of times it's a hosted thing. So you have to maybe pay for it, depending on how you use it. It's free for individuals. But if you're on a team or you're in a company, it's going to cost some money.
18:29 And like Jay was hinting at the main feature of it is real time collaboration, not like just the Jupyter stuff, but you know, let's log in and work on this together and start typing and start reviewing. It has some cool features. Like it has code review within the notebook coming. It has built in version control coming, obviously the real time collaboration that I talked about. And it even has dashboards kind of like streamlet coming soon. So you can like turn a notebook into an interactive dashboard website.
18:57 I'm really excited for the code review stuff. I think that that's something that as Python itself is becoming more and more and more a tool for people outside of the traditional developer space, we still need to have good review tools. And even just a matter of having the ability to do collaboration and say, Hey, can you take a look at this code? And then you can actually see it running instead of just imagining what it's going to do.
19:24 I think adding version tracking, adding code review. That's just the next step to really teach some of the fundamentals of developer work to skill sets that aren't traditionally designed to work that way.
19:38 Yeah. And so much of the Jupyter computation data exploration comes from an individual working on the thing. Like Jupyter notebooks are not particularly friendly to version control, like GitHub. Like every time you make a change, or just the output changes, it clashes in GitHub and things like that. There's like a merge conflict and all those sorts of things. So it can be a challenging. So I think you're right. Like moving to a more collaborative, like sort of Google Docs style of world makes a lot of sense, not for everyone, but for many people.
20:07 Yeah, I'm curious if something like this might be useful for like, say, instructor sort of thing. So you tutor somebody by two people hopping on a on one of these collaborations and working through a problem.
20:21 Yeah, looks cool. Jay, what's this last one you got here? You and I've talked a bit about this offline.
20:25 We have this is a tool that I found working on my own blog. It's called image kit. And I'm sure everyone here, you know, listening might or has a good idea of what a CDN is. And the too long didn't read part of it is they also make CDN specifically for images. So you can actually store your images on something like S3 storage, point this CD into it. And instead of calling that S3 storage, you would just call your CDN.
20:55 URL. And I mean, this is great because you can do things like compression, you can do responsive types and different sizes. But the thing that about image kit that I really liked was that it also does a little bit of machine learningness, like image magic behind the scenes.
21:13 So of course, you can do your own scaling of these images, but you can also do smart cropping. So if you take a picture of your face, and you say, I want the focal point of this image to be my face, you can crop it around your face and not just around the center of the image, which I think is a really good idea.
21:30 Oh, that's cool. That's great. Like if you had a site where you're accepting like user profile images, or people were posting stuff, you could say, emphasize this, and they don't have to know, how do I crop an image? And why won't it accept a BMP?
21:42 Yeah, it's just here.
22:12 I can just say, here's the URL, here's the text that I want. And of course, because this is Python bytes, it has a Python API, it actually has a ton of API. So like, they have like first party API's for most of the primary languages. But if you don't have time to play with the API, you don't have a way to access the API before you render your page. It also has a URL schema. So you can also give all of those commands directly into the URL itself. And it's pretty cheap.
22:42 I mean, right now, I'm not paying for it at all, just using their free tier. But if you want things like a custom domain name, we can say images dot Python bytes, or something else. That's when you start having to look at it. But I think even then, it's not for an image CD. And it's not too bad.
22:58 Yeah, that's cool. And you can put like resizing in there. Just like I want this size to be such and such. That's important for like Google page speed, especially on mobile devices. If you want to put like a 2000, whatever 2000 by whatever picture, you don't want to just show that directly, right? So you can just make it part of the URL, even do like responsive design, like use different URLs for different screen media queries and stuff.
23:20 It also supports fuzzy or lazy loading, which is really cool to where you can get like a blurred image until it finishes rendering the entire site. And then once it's done the entire site, it'll go back and then load the high def image.
23:32 Oh, nice.
23:34 Yeah, this is cool.
23:35 I like it. And you mentioned your podcast, like tell people real quick, your podcast.
23:40 Oh, sure. Yeah. So I do a weekly show called the pit show. Pit is short for productivity and tech. It's been around for a few years. I think once upon a time on some RSS feed far, far away, I had Michael Kennedy on the show.
23:54 That was fun.
23:55 I think I'm still trying to get that Brian fellow on there as well. But I'm sure we'll make that happen at some point.
24:00 I thought we already did that. We haven't done that yet.
24:03 Never did. But I blame my schedule. So it's okay. I guess as a developer advocate now, I get a lot of questions about, you know, hey, what's your journey in tech? How did you do this? Where did you get these things? What's it like, you know, not just for you, but for your family and other things like that. So it's a combination of two things. One, it's my walk through this journey out loud, showing people what I'm going through, some of the things that I'm doing, some of the things that I'm playing with, practicing on, but also interviewing folks from around.
24:32 interviewing folks from around the internet, from all sorts of disciplines and asking the questions because I can, because I have them on my show for 30 minutes at a time.
24:42 Yeah, that's awesome.
24:44 Nice.
24:44 Yeah, Brian, you got to get on there. We got to hear your story. So maybe that's, that was the last item. So maybe we should just roll into the extras. Jay, you want to keep going? You said you were a developer advocate now. Congratulations. That's an exciting new role. You just got, right?
24:58 Yeah, been at that for a few months now, really enjoying it. And of course, because I'm doing this in the middle of the day, I'm going to take this opportunity to promote two of the things that I've been doing a lot, which are our contributor program.
25:11 I work for Elastic, the company behind Elasticsearch. We also are responsible for Logstash and Kibana. I think that was how I got, I snuck onto this show is because I messaged Mike after he said that Elasticsearch wasn't a real database.
25:24 So shots fired. But then from there, yeah, if you're doing anything with Elasticsearch, Kibana, Logstash, Beats, even some of our Python specific clients, we have a contributor program. If you do a blog post video tutorial, let us know.
25:39 We have a whole platform. There's a link here in the show notes. And if you do enough of it, we actually give you credits to Elastic Cloud. So you can host some of your projects for free.
25:49 And then also we have our YouTube channel, the Elastic Community YouTube channel, where you can see meetup talks, lightning talks. I just, the lightning talk I talked about earlier in the show is on there as well. You've got a lot of great folks that are teaching and sharing that information. And here's a single point where you can go and you can watch hours and hours of good information and good content on it.
26:13 Awesome. That's really cool. And people are in Elasticsearch. They should definitely check that out.
26:17 Yeah, definitely.
26:18 So, Michael, I would just bring up, I've been plugging away at testing code at testingcode.com. That's a podcast I do. But I think I'm going to try to change the direction a little bit. So since I really like this short format.
26:34 Oh, look what Jay has.
26:36 In reach.
26:38 Always.
26:39 Do it again, but you got to say something so that you get on the video thing.
26:42 If you like testing code, you should totally check out this book. It's called Python Testing with pytest. It's by this Brian Arkin.
26:50 I thought that was how to build rockets with Python.
26:52 At first I was like, man, he needs to talk to those PyTorch characters, you know, maybe they can help him, you know, blast off or something. But no, I really, I genuinely say this is probably the most opened book that I have, like, within reach of me, because I'm always screwing up testing.
27:11 And luckily, I don't have to message Brian every five minutes on how do I do this. I can just use his words.
27:16 I don't need any extras more than that. So thanks, Jay.
27:19 Well, you said you changed your direction. What's your direction?
27:21 I kind of want to hear what people would like to do. I was thinking about possibly doing shorter episodes or more focused, like maybe 10 minute episodes about individual topics.
27:31 But I kind of like to hear from other people about what they'd like to hear. So yeah, just open it up.
27:35 I love a podcast only about mocking, because that's just the one thing that no one understands.
27:40 That's because nobody should do it.
27:42 Hey, how am I going to fix my dependency inversion and inversion control stuff in my Java app without some mocking? Come on.
27:52 Well, yeah. With Java, you might need it.
27:54 All right. I've got a few things. One, my Apple M1 chip, Silicon Apple Mac mini weight continues.
28:03 But eventually, I will give you all. It's like mid-December. Eventually, I'll give you all of like the state of Python on Apple M1 chips.
28:12 But until I know that, I can't share it. So over at Talk Python Training, we are running, we're participating in the Python Software Foundation fundraiser to close out the year.
28:24 So because of time travel, that is not announced. That's probably not even known yet.
28:29 But at the time of the release of this, it should be out. It starts December 1st.
28:34 So if you visit pythonbytes.fm/PSF 2020, right now, it's going to go to a page that says nothing yet.
28:41 But I'm going to change that redirect to end on the right place when it goes live.
28:45 So there's going to be some discounts on some of our courses.
28:49 Half of all the payments will go like half of the revenue, not profits, half the revenue will go to fund the PSF.
28:57 So I teamed up with the PSF team and a couple other folks like RealPython and Dan Bader over there.
29:04 And a few others to try to, you know, give some money to PSF.
29:07 Keep them going strong.
29:09 And last but not least, trying something new as podcasters.
29:12 You guys can tell me what you think of this idea.
29:14 I wanted to give something back to the people that supported the training course the most and the podcast the most.
29:19 So I launched this thing called Talk Python to Me Pro Edition, which basically means it just has no ads.
29:25 And it has all the history of like, you know, back five years worth of shows in the podcast player.
29:30 So anyway, people can check that out as well at talkpython.fm/pro.
29:34 And yeah, anyway, that's kind of fun to put together.
29:38 And those are all my items, I think.
29:40 Yeah, let's do a joke.
29:41 Oh, man.
29:42 All right.
29:43 You ask the question.
29:44 I'll do the answer.
29:45 Okay.
29:45 Why can't SQL and NoSQL developers date one another?
29:49 I don't know.
29:49 It's rough.
29:50 I guess because they don't agree on relationships.
29:52 It's so bad.
29:54 It's so bad.
29:55 Jay, as a professional at a database company, how do you feel about this?
30:00 I would have said because date time formatting is hard, but I can definitely vouch for this.
30:10 But even though they can't date, they can still get along.
30:12 They can still get along.
30:14 They still have ETL.
30:15 Come on.
30:16 To close this out, I'll post the video of the live stream here once it gets recorded and saved.
30:21 So maybe we'll do this again.
30:23 People can let us know if they think that's a cool idea.
30:24 And if people are wondering why I'm at a weird angle in the dark, it's because the power in my neighborhood went out.
30:30 I've been doing this show from my phone.
30:31 So anyway.
30:32 Nice.
30:33 It won't always be like that.
30:35 That's good.
30:36 Well, thanks a lot.
30:37 Thanks, Jay, for showing up.
30:38 I enjoyed having you here.
30:39 Thank you.
30:40 Thank you for having me.
30:41 All right.
30:42 Thanks, Michael.
30:42 Thanks, Brian.
30:43 Bye.
30:43 See you, everyone.
30:44 Thank you for listening to Python Bytes.
30:46 Follow the show on Twitter at Python Bytes.
30:48 That's Python Bytes as in B-Y-T-E-S.
30:51 And get the full show notes at Python Bytes.fm.
30:54 If you have a news item you want featured, just visit Python Bytes.fm and send it our way.
30:59 We're always on the lookout for sharing something cool.
31:01 This is Brian Okken.
31:02 And on behalf of myself and Michael Kennedy, thank you for listening and sharing this podcast with your friends and colleagues.