Transcript #402: How to monetize your blog
Return to episode page view on github00:00 Hello and welcome to Python Bytes where we deliver Python news and headlines directly to your earbuds.
00:05 This is episode 402 recorded September 23rd, 2024.
00:11 I'm Michael Kennedy.
00:12 And I'm Brian Okken.
00:13 This episode is brought to you by Scout APM.
00:17 We'll tell you more about them later.
00:18 If you want to keep up with us or the show, follow us on Mastodon.
00:22 Links are in the show notes or over on X.
00:25 If you really, really want to, you can find the links there in the footer of the website.
00:29 We typically live stream on Mondays.
00:32 Now we used to do Tuesdays.
00:33 Remember we moved to Mondays.
00:35 So Mondays 10 a.m.
00:36 Pacific time on YouTube.
00:38 If you want to check that out, we'd love to have you.
00:39 Always great to have people in the audience, but certainly not the environment.
00:43 And finally, if you want to get artisanal handcrafted summary put together by your
00:50 very own Brian Okken about the show right after it ships, sign up for the newsletter.
00:55 Just go to PythonBites.fm/ right there and just click newsletter right at the front.
00:59 It's probably the easiest way actually.
01:00 But in your email, we won't, we won't do bad things with it.
01:02 We'll just send you updates.
01:04 So, and things about like horses and other stuff.
01:06 Horses, courses.
01:08 Okay.
01:08 Horses, courses for horses.
01:10 No, this is a totally different kind of show.
01:13 We go down that path.
01:14 Let's what path do you want to take?
01:16 let, actually let's make some decisions.
01:18 how about that?
01:20 Yes.
01:20 Okay.
01:21 I actually, this was suggested to me actually at a work setting.
01:25 a friend of mine, Christian Gazelle said, Hey, architectural decision records are pretty cool.
01:30 do you use them?
01:31 And I had not heard of these things.
01:34 So I was excited to explore the rabbit hole.
01:36 So, this was, there's a article that we're going to link to.
01:40 This is the original from 2011 called documenting architecture decisions from Michael Nygaard.
01:45 And, and it's, it, it's kind of this idea that you just have this lightweight
01:50 document to, to discuss things like, what you're deciding about, what the
01:57 context is, what, you know, what, what the current situation is, and then the
02:01 decision, what you're going to do.
02:03 And so the context is why, why you're doing it.
02:06 The decision is what you're going to do.
02:08 And then, you know, status, like if you're, whether you're proposing it or whatever, I'm playing with status right now.
02:13 So, and then the consequences, what you hope to will be the benefits of this decision.
02:18 This seems like, like, like so silly and simple that it can't be helpful, but it
02:23 is, it is awesome.
02:24 and I've started using it just for a few days, so we'll see.
02:28 But, so there's another article I'd like to link to, and it's from, from
02:32 Red Hat called why you should be using ADRs or architectural decision records
02:37 to document your project.
02:38 And it's a, that's, that's a really nice, lightweight introduction.
02:42 and, shows you basically you just had a handful of things and there's a bunch of templates people are using.
02:49 I'm using Markdown.
02:50 and I'm going to show you the, essentially the template I'm using.
02:54 It's just a Markdown file and I've got like a template, just a 0 0 0 ADR template
03:00 dot MD that just copy paste, modify.
03:02 And it's just a few lines.
03:04 And I've likely, sometimes I just put none in.
03:07 If I'm not considering any options, I'll just put none, but I might fill it in
03:11 later, but including pros and cons for options.
03:14 this isn't, this is really only taking me a few minutes to get the stuff that
03:18 I'm thinking about or the project and the things I want to change out of my head.
03:21 And somewhere.
03:23 and since it's in Markdown and I'm storing it with the, with the code in the
03:27 repository, it works great because, because the, because it's a GitHub or
03:33 GitLab just renders it it's Markdown.
03:35 So it just gets rendered and it looks beautiful.
03:37 but it's super fast to just write this down.
03:41 and I'm, I'm already like, in, so the step, okay.
03:44 I want to talk about the status a little bit.
03:46 The proposed status, the status that was recommended in the original is like
03:50 proposed, accepted, rejected, deprecated, superseded, and it's kind of formally.
03:55 So I've been using things like trying it out.
03:58 haven't decided yet because I'm like documenting the process as I'm going.
04:04 And I'm guessing like, by the time I say accepted, I'm going to stop editing these documents, but.
04:09 I've got a couple architecture things that I'm just trying out playing with,
04:13 you know, do be an agile about it.
04:14 And, and it's helping me to actually go even just back a day to say, what was I thinking yesterday?
04:21 And, and having that written down someplace.
04:24 And then I'm also working with a remote team, so it's good to have the remote
04:27 team to be able to like, they can see what I'm thinking by reading these docs
04:32 and other people can do too.
04:33 So anyway, highly recommend architecture decision records.
04:37 Yeah, that's great.
04:38 You know, one thing that's might be cool to pair this with is the old style
04:43 GitHub projects, not the crummy new ones, but the good new, good old ones.
04:47 Okay.
04:47 Where you have counter on boards and they go through different stages, right?
04:52 So the status could be the columns of your projects and you could have just a
04:56 project for decisions and you could just see where they've gone and you know,
04:59 maybe, somehow reference.
05:02 Yeah.
05:02 And a great issue is something to link it all together through GitHub, but that'd be cool.
05:05 Definitely.
05:06 And I've seen, there's a bunch of people that have done a bunch of extra stuff on
05:10 top of this to make it more processy.
05:12 But to me, now it feels official and I don't want it to feel official.
05:17 I want it to just be like dumping stuff out of my head.
05:19 There's also a different, a different thing of like, how much things do you put in there?
05:23 Is it everything?
05:25 Is it, just big, important architectural changes and that you just sort of have, I'm
05:30 just playing with it to see what it is.
05:32 I'm not putting bug fixes in here, but I'm putting things like, I'm really changing
05:37 a component, taking it here and putting it over here.
05:39 Why am I doing that?
05:40 Right.
05:41 We're switching from FastAPI to flask and here's why.
05:44 Something like that, right?
05:45 So yeah.
05:46 Theoretically.
05:47 Awesome.
05:47 Well, let's go to the sea and visit some narwhals.
05:51 So I just had this, this project, had Marco Corelli on talk Python.
05:57 This is a project he's doing a lot of work with and narwhals, it solves a problem.
06:02 You can see their logo.
06:03 If you go to their website, it's a pandas and a polar bear in a narwhal kind of hanging out behind them.
06:08 And the idea is if you have, if you are writing a library that takes a data frame
06:15 source, right?
06:16 So if you have users for doing pandas and they want to, you want to write, write a
06:21 library and say, Hey, send me your pandas data frame and I'll graph it or I'll analyze
06:25 it or I'll do AI around it or whatever it is you're doing with it.
06:28 You will probably get a message issue or something that says, Hey, we'd like you to
06:34 use polars.
06:34 How do I work with that?
06:36 I want to convert everything to pandas.
06:37 I want to use polar's like, now how do I take these two?
06:40 And then you're like, well, we actually use moden or we use, QPI for, GPU
06:46 programming.
06:46 Can we pass our data frames?
06:48 You're like, great.
06:50 Cause nobody wants to convert out of their native framework into this thing and into
06:54 some other one.
06:55 Cause it's probably going to make it slow.
06:56 Like if you convert out of a GPU into pandas, well, what's the point, you know?
07:00 So that's what the goal of this narwhals thing is.
07:02 It lets you primarily, it's primarily for people who are creating graphing libraries,
07:08 analysis libraries, others that can take all these different frameworks.
07:13 Okay.
07:13 Right.
07:14 And then what you do as the library writer is use a subset of the polar's API, a real
07:19 simple one program that comes from narwhals, but it's the same API.
07:24 Right.
07:24 And so you basically do that and then narwhals itself knows how to figure out
07:28 which data frame library you're working with, how to work with it.
07:31 If it's polar's and it does, it's lazy operations, it won't turn it into eager
07:37 operations that will continue to be lazy until it gets evaluated, which is really
07:41 good for performance and memory.
07:42 But if it's an eager API from pandas, also that very low overhead.
07:47 If you go check it out, full static typing, lots of promises of stability.
07:51 Because the point is to be a foundational library for other libraries, not cutting
07:55 edge, new features.
07:56 So anyway, if people are out there and they want to work with multiple frameworks for
08:01 whatever reason, especially if you're creating libraries that you want to let
08:04 people from different slices of the data science world use, then this is pretty
08:08 awesome.
08:08 So do you know, is it, it's not converting things as it brings it in, it's leaving it
08:13 in the native data.
08:14 Yes, exactly.
08:15 Yeah, exactly.
08:16 That's part of the bonus here is that it does that.
08:19 And then basically you write to the subset of the polar's API, but then narwhals
08:24 it's okay.
08:25 Well, is it really a pandas thing or whatever?
08:28 Yeah.
08:28 What's the underlying thing?
08:29 Yeah.
08:29 Yeah.
08:30 Yeah.
08:30 I don't have a direct use for it because I don't data science as much, but I think
08:35 it's cool and wanted to share it.
08:37 It will be on talk Python in much greater detail than I just explained in a couple of
08:42 weeks.
08:42 You can find it on the Python live stream YouTube section already, but the full
08:47 edited version will be out later.
08:49 All right.
08:49 That's pretty cool.
08:50 Yes, indeed.
08:51 And sure is.
08:52 How about we talk about our sponsor real quick, Brian, before we move on.
08:56 That sounds great.
08:57 Let me tell you real quick about Scout APM.
09:01 They're big supporters of Python bites.
09:03 So we appreciate that very much.
09:04 So if you are tired of spending hours trying to find the root cause of issues
09:09 impacting your performance, then you owe it to yourself to check out Scout APM.
09:13 They're a leading Python application performance monitoring tool, APM.
09:18 That helps you identify and solve performance abnormalities faster and easier.
09:22 Scout APM ties bottlenecks such as memory leaks, slow database queries, background
09:27 jobs, and the dreaded N plus one queries that you can end up if you do lazy loading
09:32 in your ORM, then you say, Oh no, why is it so slow?
09:36 Why are you doing 200 database queries for what should be one?
09:38 So you can find out things like that.
09:39 And it links it back directly to the source code.
09:41 So you can spend less time in the debugger and healing logs and just finding the
09:46 problems and moving on.
09:47 And you'll love it because it's built for developers by developers.
09:50 It makes it easy to get set up.
09:51 Seriously.
09:52 You can do it in less than four minutes.
09:54 So that's awesome.
09:55 And the best part is the pricing is straightforward.
09:58 You only pay for the data that used with no hidden overage fees or per seat pricing.
10:03 And I just learned this, Brian.
10:05 They also have, they provide the pro version for free to all open source projects.
10:11 So if you're an open source maintainer and you want to have Scout APM for that
10:14 project, just shoot them a message or something on their pricing page about that.
10:18 So you can start your free trial and get instant insights today.
10:22 Visit by them by set of him slash scout.
10:24 The link is in your podcast player show notes as well.
10:27 And please use that link.
10:28 Don't just search for them because otherwise they don't think you came from us.
10:32 And then they'd stop supporting the show.
10:33 So please use our link by them by set of him slash scout, check them out.
10:37 It really supports the show.
10:39 Well, next is, it's a little bit of bizarre news from the Northwest.
10:43 the you're probably, so I'm, I'm a little bit older than you, I think.
10:47 so I don't directly remember it, but I kind of remember the, the, the meltdown at three mile Island.
10:54 And then I'm 27.
10:55 How old are you?
10:56 I'm just, so I was born in 1970, so I was nine years old.
11:01 So it wasn't really something I was completely aware of, but we, you know,
11:04 we heard about it later cause it was kind of a big deal.
11:07 So what this was, was a, nuclear nuclear facility in near, near Seattle.
11:14 Ish.
11:14 I don't know.
11:15 I'm not that good at geography.
11:16 three mile Island in Washington.
11:19 And there were two reactors and one of them did a partial meltdown and it was a big, big thing, but it was, it's the worst nuclear accident
11:27 we've had in the United States.
11:29 and okay.
11:31 So why am I talking about this?
11:33 Well, I didn't, I guess, I guess I didn't realize it was still operating up until
11:37 2019, not those reactors.
11:39 There were other reactors nearby safer.
11:42 I mean, in nuclear energy has come a long way and there's, and actually this three
11:46 mile thing was the reason why we have a lot of the nuclear, regulations we
11:51 have now, it did sort of put nuclear energy on the back burner more than it
11:55 probably should have been.
11:56 And I'm not going to get into the politics of whether or not we should have nuclear energy too much with that.
12:02 I didn't want to get into that too much, but what I am want to talk about is that
12:06 it's going to start up again or it's proposed to, so it was closed in 2019.
12:10 It might open again in 2028 and it's only going to be for Microsoft.
12:15 This is the bizarre bit.
12:16 So Microsoft, Microsoft wants to start this up again and have an exclusive 20
12:22 year deal for what 835 megawatts of energy.
12:26 just going to AI.
12:28 this seems bizarre to me.
12:30 So the, so AI needs a lot of power and, and yeah, so that they're just going to, they hope this isn't the still in proposal phase, regulators,
12:40 regulators have to approve it.
12:41 But, we're going to start up another nuclear power plant just for, just for Microsoft AI.
12:48 This, I just don't get it.
12:49 so there's, there's that.
12:51 and then it was, this was, we linked to the verge article.
12:55 I, I found it on the verge, but then I searched for it again.
12:58 Some more, and there's just a CNN article as well.
13:01 And also what it looks like.
13:02 There's only one picture of this thing that's being used everywhere.
13:05 anyway.
13:06 Oh, I guess that's a different picture, but, so kind of start up again.
13:11 it seems odd.
13:13 and then, in a related news, I guess that's all I just wanted to say is, I think this is weird that we're going to start a nuclear power plant just for AI.
13:24 Maybe that's a problem.
13:25 anyway, the article I found was, just, it's kind of a mock news article,
13:31 but this is just a mixed weenies, internet tendency.
13:34 The article is the department of energy wants you to know that your conservation
13:39 efforts are making a difference.
13:41 So I thought we were trying to like save the planet by saving energy and stuff.
13:46 And, this has got some interesting bits.
13:49 it says, by turning off your lights all day, every day, you can serve about 1% of the energy needed for AI to generate a picture of a duck wearing
13:58 sunglasses is an EQ, aside from the fact that he has feet that are a human of a
14:03 human man, of course.
14:04 so AI is consuming tons of energy and we're in the rest of our lives.
14:09 We're trying to conserve energy.
14:11 That's just a, I don't know.
14:12 I, maybe I shouldn't brought it up as a topic.
14:14 It's just seems bizarre to me.
14:16 So I'll leave it there.
14:17 Well, so I love these.
14:22 Let's put your, your feeling bad about wasting energy or your effort to save
14:28 some energy and perspective.
14:30 And it's just like, yeah, I mean, I still go around and turn off the lights after
14:33 my kid who just like leaves them on.
14:35 Well, yeah.
14:36 And also we're, I've like stopped buying 25 cent light bulbs and now we buy $8 LED
14:43 light bulbs that last about the same as the other bulbs used to.
14:46 And they are more, I mean, we're spending way more on light bulbs and for what?
14:52 So that AI can have more energy, I guess.
14:54 Yeah.
14:55 So on one side, I totally see the point there on the other.
15:00 If we're going to dump tons of energy into AI, I would much rather see it coming from
15:05 carbon neutral sources than coal plants, you know, true fair, right?
15:09 Like, are you going to make the duck or are you going to not make the duck?
15:12 Like regardless of what light bulbs using people are making ducks and let's do that.
15:16 Better.
15:16 I think it's super bizarre that three mile Island is the choice because if there's
15:20 anything in at least American culture that says nuclear energy bad, it's three miles.
15:26 Like anywhere else, you know?
15:29 Yeah.
15:29 Well, they're going to change the name.
15:30 It's going to be called the crane clean energy center.
15:33 Oh, there's a good rebranding that, that said I'm super optimistic on nuclear energy as a climate solution.
15:44 Not necessarily old school three mile Island stuff, but the molten salt reactors, the things that fail safe and not fail explosive like Fukushima.
15:51 Right.
15:52 I know there's nuclear waste.
15:53 There are less, those new ones are less bad.
15:55 And you know, I feel like a lot of the pushback against it.
15:59 It's a little bit like, well, there's this rare endangered lizard in the desert.
16:04 So we can't have in this desert, any solar farms.
16:07 It's like, well, if it gets 20 degrees hotter, there's going to be no lizards in the desert.
16:11 We need to take some more positive action.
16:13 And I feel like, you know, nuclear energy is that sort of in the extreme, right?
16:18 People have such strong reactions, but there's so much better tech now.
16:20 And I would love to see that.
16:21 Yeah.
16:23 My personal views are that I think it would be good to utilize what we have,
16:27 including nuclear energy as a stop gap to get us off carbon based fuel.
16:34 And then once we get that, we can get carbon neutral.
16:37 Then we can go to, then we can be, as we beef up solar and, and wind and everything, then we can maybe draw away from nuclear.
16:46 That's a great way to put it.
16:47 Like let's get rid of the carbon pollution and then we can debate of the things that are working, which ones are working best.
16:54 Very well.
16:54 I also wanted to point out the excellent pun that you made intentional or not,
16:59 that with nuclear energy, people have strong reactions.
17:02 That's very good.
17:03 All right.
17:05 People might have a strong reaction to this as well, but I got to say it's way less, way less out there.
17:10 So here's the strong reaction.
17:12 I think when people use Docker, so this is a Docker topic.
17:15 When people use Docker, there's two philosophies.
17:18 One philosophy is I want the lightest weight, simplest, most basic thing that
17:24 I can possibly use to build my containers.
17:26 So they're insanely small, right?
17:28 I want almost nothing there.
17:30 I just want, if it is not needed for whatever I'm trying to do to execute,
17:34 it doesn't belong there.
17:35 Let's get it out of there.
17:36 Yeah.
17:37 That's one side.
17:38 Does this topic is not from that topic is from the other side of perspective
17:43 that I would say the Michael side lives on that I live on in that is Docker can be
17:48 more difficult to understand what's going wrong when something goes wrong.
17:51 How do you fix it?
17:52 How do you get other tools to see what's happening inside there?
17:55 Right.
17:56 And so I think there's a bunch of people that stay away from Docker because
17:59 they're like, Oh, I just want to have access to the logs and the, the tools
18:04 that I normally use and all that kind of stuff inside my server or my VM.
18:08 So I can understand what's happening better.
18:10 Right.
18:11 So one of the tools I really like is, Oh, my Z shell, right.
18:14 With all of his plugins is auto-complete is cool history.
18:16 And so I present to you ZSH in Docker.
18:21 It installs Z shell.
18:23 Oh, my Z shell and the plugins like auto-complete for source control and for,
18:28 you know, all the, all the various plugins that you get right from Z shell.
18:33 And it's one line.
18:34 So you put this run shell at the, the, the, out of this repo and it just installs
18:40 Z shell and installs, Oh, my Z shell.
18:42 It makes it the default shell.
18:44 Or you just run it when you get into it, whatever.
18:46 And then all the plugins, et cetera.
18:48 So really, really nice.
18:49 You even get to pick your theme as part of the one liner so that you can see
18:54 like what version of Python is active.
18:56 What is the state of a get repo?
18:58 If you copied a get repo in as part of setting up your Docker container and all those kinds of things.
19:02 So super simple.
19:04 If you believe in the, I want some tools inside of my container.
19:07 So when things are not working, I can exec into it and ask what's going on.
19:11 And this is really awesome.
19:13 if you don't want that, if you're in the opposite side, this is not for you.
19:16 All right, cool.
19:17 Indeed.
19:18 So do you, how much time do you spend in Docker?
19:20 very little, but when things are not quite working or I'm trying to figure out
19:26 a command, you know, maybe you've got a database running in there and you're
19:28 like, I really need to see, I just want to see what's going on with this.
19:31 And you know that inside the container, there's some database management tools.
19:36 If you just Docker exec Z shell, and then you start typing, it's like you're, you're
19:41 just on SSH in effectively.
19:43 So, yeah, I'm going to have to check that out.
19:45 So I'm changing my doc.
19:46 Like I used to use Docker a lot for like actually cross compiling, C++ code.
19:51 And I'm using it more now for web stuff.
19:53 and so, yeah, absolutely.
19:56 I think it's great.
19:57 And obviously I do a ton of stuff with Docker and for running the web apps and
20:01 things, but I don't go into the web apps unless I have questions.
20:06 You know, but when you do, it's nice to just go, oh, okay, well, here's the thing.
20:10 And you just make this one of your base layers of your Docker image and it builds nice and fast.
20:15 Nice.
20:15 Okay.
20:16 well, we're, ran through our topics.
20:19 I don't have any extras today, so you're extra less.
20:23 I'm extra list.
20:24 What is the opposite of extra?
20:26 I don't know.
20:27 I got a few basic, maybe I guess bear the bare minimums.
20:32 Okay.
20:33 So first one is I remember I spoke about this thing, this uptime Kuma while ago.
20:40 Uptime Kuma is great.
20:41 So it's self-hosted, free uptime monitoring.
20:46 Okay.
20:46 Well, I put in a bunch of things, like for example, if you go to Python bytes and you
20:50 go to the bottom and hit server status, it'll show you the server status of Python
20:54 bytes, how old the SSL search from let's encrypt are and all those kinds of things.
20:59 Right.
20:59 Very cool.
21:00 Well, I turned that on all of my web things.
21:03 Including my personal blog, which this might resonate with you, Brian is my
21:06 personal blog built with Hugo, which is a static site, so it cannot crash.
21:11 It is HTML, CSS image.
21:14 Like you can't crash.
21:15 Right.
21:16 And I thought, Oh, I'm going to host this on Netlify because Netlify is pretty awesome.
21:19 Right.
21:20 Right.
21:20 Yeah.
21:21 Well, I started getting every single day or every other day, your site has a five
21:26 Oh two error and it's been down for 10 minutes.
21:29 Now it's back.
21:30 It's been down.
21:31 What?
21:31 How could it possibly?
21:32 It's a static site.
21:34 So something about the Netlify infrastructure was going bonkers.
21:39 And I will tell you if you already have an Intunix server laying around somewhere,
21:43 it's about eight or nine lines of code of Intunix configuration to just host it yourself.
21:49 So I switched this over to running on server that runs all the other things that I got,
21:53 but because Netlify was crashing.
21:56 So I think the takeaway is not that mkennedy.code is my personal blog, website,
22:01 consider is hosted anywhere different.
22:03 Like, why do you care?
22:03 But if you're hosted on Netlify, maybe point some uptime status at your thing,
22:08 even though it's a static site, shouldn't fail.
22:10 Look at it anyway.
22:11 Mine was for a week or two.
22:13 I would say at least two weeks, it has been all sorts of broken temporarily.
22:17 So is it better now?
22:19 Yeah, it's perfect.
22:20 Cause why would it have any problems now?
22:21 It's on our server.
22:22 Yeah, it's better now.
22:25 Okay.
22:25 Okay.
22:26 So that's number one.
22:26 That's just a, check that out.
22:28 Number two, over at Talk Python, if you go to the courses and you go to the apps, we've
22:35 really nice new version that came out, I think last year of our mobile apps for all
22:41 the courses, including Brian's pytest course.
22:43 You can take it that way.
22:44 The one that comes from Talk Python that is.
22:46 Well, the guy who wrote this, Lauren Auge, I had him on Talk Python when we talked
22:52 about Python and mobile apps along with some other folks.
22:55 Anyway, he used to be a live sound engineer until COVID hit.
22:59 And then he moved over into software development and he wrote up a really
23:03 detailed story of his life journey.
23:05 And I just wanted to share that if people are interested in that, maybe you're making
23:09 that transition as well, then, you know, check that out.
23:12 It's pretty cool.
23:12 That's pretty cool.
23:13 Yeah.
23:13 This other short one comes to us from it.
23:17 Itmar Turner.
23:19 I Turner trowing says it's time to stop using Python three, eight.
23:23 I can't believe that, but it is.
23:24 He puts it, he puts it onto our radar that, you know, 14% of the packages
23:29 downloaded from PyPI are for Python three, eight installations.
23:33 And by the way, next month it's going end of life out of supported, no virus, no security fixes, nothing.
23:39 So you might not want that to be your foundation if you get to choose.
23:43 And we got like seven days left to September.
23:45 Yeah.
23:45 I would say it's yeah, five weeks.
23:48 What could go wrong?
23:49 Anyway, just put it on your radar.
23:51 Maybe Python three 12.
23:52 It's been out for a long time.
23:53 Version six of that one just came out.
23:55 So I think we're good.
23:56 You know, three, 12, six.
23:57 Oh, I also want to add to that, that since like, it's been years since I've ever
24:02 had any, any significant issue upgrading.
24:05 at most I'll see deprecations that I have to go through and, and clean up or warnings or something.
24:12 But I, maybe other people have, but I haven't had any issues, for really long time upgrading.
24:17 So, yeah, same.
24:19 I did have an issue with, I can't remember.
24:22 There was some, it was packages that didn't support three 12.
24:26 There was some deprecation in there that I had to wait three or four weeks before
24:30 I could start using three 12 when it first came out for some of my apps.
24:33 However, that's not the same as to say that Python itself is unreliable.
24:38 You would know right away if the imports fail or whatever, right?
24:42 Like you'll, you'll find out straight away.
24:44 And so, yeah.
24:44 And I don't remember the reason why, but on a couple of the projects that I've
24:47 converted from three eight to three 12, work projects, I jumped to from three
24:52 eight to three 10 with no issues or minor issues and then to three 12 fairly easy.
24:58 And for some reason it just helped me to go from three 10 and then three 12.
25:02 but anyway, your mileage may vary.
25:05 It's these, it's these kinds of things that if you don't do it, you eventually
25:09 end up saying we have a two six app and a half million lines of code and
25:14 it's still running on Python two six.
25:16 So don't talk to me about your fancy new libraries and your typing and your async.
25:20 We're just trying to survive, you know, like, but if you keep, if you get into
25:23 the practice of just like, okay, well, let's just keep this stuff moving.
25:26 All those steps are generally small unless you try to take them 10 years at a time.
25:30 They're stressing me out, man.
25:31 PTSD from two six.
25:34 All right.
25:36 Last thing.
25:37 So pass keys.
25:38 Let me ask you really quick, Brian, are you a pass key user?
25:41 Yes.
25:42 Well, pass key is in believer.
25:44 Well, yeah, I use pass keys.
25:46 Yeah.
25:46 I do too.
25:47 I've been resisting using pass keys.
25:49 So pass keys are cryptographic kind of like, almost like SSH keys, but for the
25:55 normal normal folks for just web authentication, right?
25:58 So cryptographic thing, blob that gets put into your, whatever thing is signing
26:02 in and if it shares that back, it's supposed to be dedicated to that instance.
26:06 It knows it's you.
26:07 Often you can skip to a phase, all those kinds of things.
26:09 Right.
26:10 But one of the things that really turned me off on pass keys is they felt to me,
26:16 like a couple of the tech giants are like, Hey, this is a sweet opportunity for lock-in.
26:21 So let's see how much lock-in we can get, you know, Android and Apple, especially
26:26 right, like, Hey, just save your pass key to your iPhone.
26:29 What could go wrong?
26:29 I was like, well, I could lose my, yeah.
26:32 If I could lose my iPhone or even if it's synced to iCloud, like what?
26:35 I have a smart TV that says, you know, log in with your password.
26:39 It's a super pain to type in, but you can do it.
26:41 Or maybe I'll go over to my windows PC and I have to type in some password to log in.
26:46 A lot of times it'll say like, Oh, your Microsoft account is expired.
26:50 It's login, login again at the boot screen.
26:52 So I don't get access to anything.
26:55 I was like, Oh my gosh, this is a pain.
26:56 But those situations get way worse.
26:58 If you have pass keys that are dedicated to, you know, one provider, right.
27:02 That's, that's just a mega lock-in.
27:04 So I realized that if you're a one password user or I think also bit warden, I'm a user of both of
27:11 them and I really like them.
27:13 If you store your pass keys there, all of a sudden they live everywhere.
27:16 It's beautiful.
27:16 And if your computer gets destroyed, just log into one password or it wouldn't or whatever
27:21 again, and you have them all again.
27:22 So if you at least for one password, if you go into the watchtower, there's a section that
27:27 says, show me all the sites that could have past keys that I don't have stored past keys for
27:32 here, and it'll help you go through and basically add the no one password, which is a form of
27:37 lock-in, but a much lower grade form of lock-in in my, my feeling.
27:41 So anyway, I am now a believer of past keys.
27:45 I believe I went through and did that this weekend.
27:47 I added like 35 accounts or so that have past keys and now life's a little easier.
27:51 Like GitHub, for example.
27:52 Yeah.
27:54 Nice.
27:54 Yeah.
27:55 So, all right.
27:56 You have the joke for us this week.
27:58 Do you not?
27:59 I do.
27:59 And I actually, I thought it was going to be a topic.
28:02 I just had it in my, in my backlog of how to monetize a blog.
28:06 And then I started reading it and realized this is just a hilarious joke.
28:11 And I love it.
28:13 So I wanted to bring it up here.
28:14 And so, and you should either, if you're listening and not, not on YouTube, you should
28:19 watch the, watch the video version or just go check it out yourself.
28:24 I'll link in the show notes.
28:26 Okay.
28:26 So how to monetize a blog.
28:28 I talked to, and I actually thought it was going to be advice, but it's just funny.
28:32 Maintaining a blog can be a lot of work.
28:35 I started reading it.
28:35 You don't really need to read it.
28:37 There's some fun font that shows up right away.
28:39 Like, like there's, it can become a fairly lucrative venture and the become is in this
28:44 wacky font.
28:45 I love the M that's cool.
28:47 And then so you're going down and you see these various things like, like TimberQuest
28:54 advertisement, your lumberyard awaits you, my Lord.
28:57 Play now.
28:58 And almost all the, the, the clickable things, if you click on them, they just like pop up
29:03 little coins.
29:04 You don't actually go anywhere.
29:06 And then talks about slapping this bad boy here can start raking in some cash through
29:12 true primary means CPM or CPA.
29:15 And and then you just sort of, if it's sort of seems reasonable, but it says, look, look,
29:21 how am I doing so far?
29:22 I've, I've made 0.123 cents so far on this.
29:27 And then it just adds it up.
29:30 There's different various various little links around that if you click on them, it
29:35 increases the how much money this person's made, even though it's not real.
29:38 But if you, I just started reading the ads, like there's an ad for minimal effort
29:44 graphic design, no proofing and time to say the ads are hilarious.
29:51 Here's one free cruise sign up today with eligible purchase meeting or exceeding value
29:58 of cruise, after which no purchase is necessary.
30:00 Of course, click on that guy for some extra cents.
30:05 Let's see.
30:07 I'll read one.
30:08 The more clicks and grizzly bear sales you can squeeze out of your beloved readers, the
30:12 more of their money you can siphon to spend on cheeseburger deliveries.
30:16 And of course, cheeseburger deliveries is clickable.
30:19 It's got to be an affiliate link, right?
30:21 Yeah.
30:21 All these things.
30:22 let's see.
30:24 here's a little, a little weird thing.
30:27 add on the side that looks like a Amazon or eBay thing.
30:31 Friendship assembly, 1595 collapsible by valve, and a that which molts beneath enclosures toy.
30:40 This is bizarre.
30:41 I love these.
30:42 I'm going to scroll down more literal snake oil, vials of freshly squeezing, squeezing oil from actual snakes.
30:49 befriend a sandwich.
30:51 No doctors allowed.
30:53 The first mystery grab bag of unmarked vitamins is free.
30:56 oh, and then it pops up.
31:00 We get a pop up, push notifications.
31:02 Would you like to enable push notifications so you can receive intrusive alert messages like these outside of the browser?
31:09 Yes.
31:09 Or ask me later.
31:10 I'm sure I said yes.
31:14 And see if you got a coin for that.
31:15 Yeah, maybe let's do it again.
31:17 Another one.
31:18 Yes.
31:18 Oh yeah.
31:19 Oh, you did.
31:20 You make, get some money for that.
31:21 Yeah.
31:21 And a weird pop-up cheese cube burger now open.
31:25 let's see.
31:27 We soon become, oh, it's too bad.
31:29 You can't see this.
31:30 This one is a ice cream holding tips.
31:33 there's, we have radishes that will change your life.
31:37 Add, let's see.
31:39 huh.
31:40 Oh, these, these are my, these are just my mind rending.
31:43 God radishes, old school.
31:47 excuse me, a virus was detected on a computer.
31:50 Send bit points like a Solaris window.
31:54 oh, anyway.
31:56 And then you, you just sort of scroll down.
31:58 It just comes, it becomes even more bizarre.
32:00 You've got sideways text.
32:02 and then, the, the spiral, this is awesome.
32:07 I don't even know.
32:07 So I was like, how did they do some of this stuff?
32:09 It's pretty cool.
32:10 It's some pretty cool stuff.
32:11 monetize.
32:12 That's how you do it.
32:13 Yeah.
32:13 If you go all the way down also in the, if you actually start reading it, it says
32:18 stuff like there's not actually, you just sort of have to spew out lots of words.
32:22 I didn't even edit this.
32:23 and then way at the bottom, there's a credits, how this was made.
32:27 And then, this person goes through and walks through, basically all the different, procedures for how, like how to do the spiral, how to do the
32:36 cool font, and all these sort of tricks, with HTML and CSS and whatnot.
32:42 So anyway, just a hilarious little, blog on stupid ads.
32:46 that's awesome.
32:47 Andre out there says this is art.
32:49 It's definitely art.
32:51 Yeah.
32:51 Not art, but real time follow up.
32:54 Bitwarden also supports pass keys, which Bitwarden being open source and the
33:00 paid version is insanely affordable.
33:03 It's like a dollar, a couple of dollars a year or something.
33:06 I can't remember exactly what it is, but maybe that's the proper recommendation there for, for pass keys.
33:12 But anyway, pretty cool.
33:13 Yeah.
33:13 Cool.
33:14 Yeah.
33:14 Well, let's call it a show, huh?
33:16 Yeah.
33:16 It sounds good.
33:17 All right.
33:17 Well, thanks for being here.
33:18 Thank you everyone for listening.
33:19 See y'all later.