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


Transcript #402: How to monetize your blog

Return to episode page view on github
Recorded on Monday, Sep 23, 2024.

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

00:04 your earbuds. This is episode 402, recorded September 23rd, 2024. I'm Michael Kennedy.

00:12 And I'm Brian Okken.

00:13 This episode is brought to you by Scout APM. We'll tell you more about them later. If you

00:19 want to keep up with us or the show, follow us on Mastodon. Links are in the show notes

00:24 or over on X if you really, really want to. You can find the links there in the footer

00:28 of the website. We typically live stream on Mondays now. We used to do Tuesdays. Remember,

00:34 we moved to Mondays. So Mondays, 10 a.m. Pacific time on YouTube. If you want to check that out,

00:39 we'd love to have you. Always great to have people in the audience, but certainly not environment.

00:43 And finally, if you want to get artisanal and crafted summary put together by your very own

00:50 Brian Okken about the show right after it ships, sign up for the newsletter. Just go to pythonbytes.fm

00:56 slash right there and just click newsletter right at the front. It's probably the easiest way,

00:59 actually, put in your email. We won't do bad things with it. We'll just send you updates.

01:04 And things about like horses and other stuff.

01:06 Horses.

01:07 Courses. Okay.

01:08 Horses. Courses for horses. No, this is a totally different kind of show. We can go down that path.

01:14 What path do you want to take?

01:17 Actually, let's make some decisions. How about that?

01:20 Yes. Okay.

01:21 I actually, this was suggested to me actually at a work setting. A friend of mine, Christian

01:26 Gazelle said, Hey, architectural decision records are pretty cool. Do you use them? And I had not

01:33 heard of these things. So I was excited to explore the rabbit hole. So this was a, there's an article

01:39 that we're going to link to. This is the original from 2011 called documenting architecture decisions

01:44 from Michael Nygaard. 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 context is, what, you know,

01:58 what the current situation is. And then the decision, what you're going to do. And so the context is why,

02:05 why you're doing it. The decision is what you're going to do. And then, you know, status, like if

02:09 you're, whether you're proposing it or whatever, I'm playing with status right now. So,

02:13 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 is, it is awesome.

02:24 And I've started using it just for a few days. So we're, we'll see. But so there's another article

02:30 I'd like to link to, and it's from, from Red Hat called why you should be using ADRs or

02:36 architectural decision records to document your project. And it's a, that's, that's a really nice,

02:41 introduction. And it shows you basically, you just have a handful of things and there's a bunch of

02:48 templates people are using. I'm using Markdown. And I'm going to show you the, essentially the

02:53 template I'm using. It's just a Markdown file. And I've got like a template, just a zero, zero,

02:59 ADR template.md that just copy paste modify. And it's just a few lines. And I've likely,

03:06 sometimes I just put none in, if I'm not contingent any options, I'll just put none,

03:10 but I might fill it in later, but including pros and cons for options. This isn't, this is really only

03:16 taking me a few minutes to get the stuff that I'm thinking about of the project and the things I want

03:20 to change out of my head and somewhere. And since it's in Markdown and I'm storing it with the,

03:26 with the code in the repository, it works great because, because the, because it's a GitHub or

03:33 GitLab just renders it. It's Markdown. So it just gets rendered and it looks beautiful. But it's super

03:39 fast to just write this down. And I'm, I'm already like in, so the step, okay. I want to talk about the

03:45 status a little bit. The proposed status there, the status that was recommended in the original is

03:49 like proposed, accepted, rejected, deprecated, superseded. And it's kind of formally. So I've

03:55 been using things like trying it out. Haven't decided yet because I'm like documenting the process

04:03 as I'm going. And I'm guessing like, by the time I say accepted, I'm going to stop editing this,

04:08 these documents, but I've got a couple architecture things that I'm just trying out playing with,

04:13 you know, do being agile about it. And, and it's helping me to actually go even just back a day to

04:20 say, what was I thinking yesterday? And, and having that written down someplace. And then I'm also working

04:25 with a remote team. So it's good to have the remote team to be able to like, they can see what I'm

04:30 thinking by reading these docs and other people can do too. So anyway, highly recommend architecture

04:35 decision records. Yeah, that's great. You know, one thing that's might be cool to pair this with

04:41 is the old style GitHub projects, not the crummy new ones, but the good new, good old ones. Okay.

04:47 Where you have Kanban boards and they go through different stages, right? So the status could have,

04:53 be the columns of your projects and you could have just a project for decisions and you could just see

04:58 where they've gone and you know, maybe somehow reference. Yeah. And a great issue is something to

05:03 link it all together through GitHub, but that'd be cool.

05:06 Definitely. 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. But to me, now it feels official and I don't want it to feel

05:16 official. I want it to just be like dumping stuff out of my head. There's also a different, a different

05:20 mind, a different thing of like, how much things do you put in there? Is it everything? Is it,

05:25 just big, important architectural changes? And that you just sort of have, I'm just playing with it to

05:31 see what it is. I'm not putting bug fixes in here, but I'm putting things like, I'm really

05:36 changing a component, taking it here and moving over here. Why am I doing that?

05:40 Right. We're switching from FastAPI to flask and here's why I'm like that. Right. So yeah.

05:46 Theoretically. Awesome. Well, let's go to the sea and visit some narwhals. So I just had this,

05:53 this project, had Marco Garelli on talk Python. This is a project he's doing a lot of work with

05:59 and narwhals. It solves a problem. You can see their logo. If you go to their website is a pandas

06:04 and a polar bear and a narwhal kind of hanging out behind them. And the idea is if you have,

06:10 if you are writing a library that takes a data frame source. So if you have users who are doing pandas

06:18 and they want to, you want to write a library and say, Hey, send me your pandas data frame and

06:23 I'll graph it or I'll analyze 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 use polars.

06:34 How do I work with that? I want to convert everything to pandas. I want to use polars. Like,

06:38 now how do I take these two? And then you're like, well, we actually use

06:41 modem or we use, QPy for, GPU programming. Can we pass our data frames? You're like,

06:49 great. Cause nobody wants to convert out of their native framework into this thing. And it's just

06:54 some other one. Cause it's probably going to make it slow. Like if you convert out of a GPU into pandas,

06:59 well, what's the point, you know? So that's what the goal of this narwhals thing is. It lets you

07:03 primarily, it's primarily for people who are creating graphing libraries, analysis libraries,

07:09 others that can take all these different frameworks. Okay. Right. And then what you do as the library

07:16 writer is use a subset of the polars API, a real simple one program that comes from narwhals, but

07:23 it's the same API, right? And so you basically do that. And then narwhals itself knows how to figure

07:28 out which data frame library you're working with, how to work with it. If it's polars and it does,

07:33 it's lazy operations. It won't turn it into eager operations. It'll continue to be

07:38 lazy until it gets evaluated, which is really good for performance and memory. But if it's an eager

07:43 API from pandas, also that very low overhead, if you go check it out, full static typing, lots of

07:49 promises of stability. Cause the point is to be a foundational library for other libraries, not

07:55 cutting edge new features. So anyway, if people are out there and they want to work with multiple

08:00 frameworks for whatever reason, especially if you're creating libraries that you wouldn't let

08:04 people from different slices of the data science world use, then this is pretty awesome.

08:08 So do you know, is it, it's not converting things as it brings it in, it's leaving it in the native

08:14 data.

08:14 Yes, exactly. Yeah, exactly. That's part of the bonus here is that it does that. And then basically

08:20 you write to the subset of the polars API, but then narwhals, it's okay. Well, is it really

08:25 a pandas thing or whatever? Yeah. What's the underlying thing?

08:29 Yeah. Yeah. Yeah. I don't have a direct use for it because I don't data science as much,

08:34 but I think it's cool and wanted to share it. It will be on talk Python in much greater detail

08:39 than I just explained in a couple of weeks. You can find it on the Python live stream YouTube

08:45 section already, but the full edited version will be out later.

08:48 All right. That's pretty cool.

08:50 Yes, indeed. And sure is. How about we talk about our sponsor real quick, Brian, before we move on.

08:56 That sounds great. Let me tell you real quick about Scout APM. They're big supporters of Python

09:03 bytes. So we appreciate that very much. So if you are tired of spending hours trying to find the root

09:08 cause of issues 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, that helps you identify and

09:20 solve performance abnormalities faster and easier. Scout APM ties bottlenecks such as memory leaks,

09:26 slow database queries, background jobs, and the dreaded N plus one queries that you can end up if you do

09:31 lazy loading in your ORM. And then you say, oh, no, why is it so slow? Why are you doing 200 database

09:37 queries for what should be one? So you can find out things like that. And it links it back directly to

09:40 source code. So you can spend less time in the debugger and healing logs and just finding the

09:46 problems and moving on. And you'll love it because it's built for developers by developers. It makes it easy

09:51 to get set up. Seriously, you can do it in less than four minutes. So that's awesome. And the best part

09:55 is the pricing is straightforward. You only pay for the data that you use with no hidden overage fees or

10:02 per seat pricing. And I just learned this, Brian. They also have, they provide the pro version for free to

10:09 all open source projects. 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. So you can start

10:19 your free trial and get instant insights today. Visit by them by set of him slash Scout. The link is in

10:25 your podcast player show notes as well. And please use that link. Don't just search for them because

10:30 otherwise they don't think you came from us. And then they'd stop supporting the show. So please

10:34 use our link by them by set of him slash Scout. Check them out. It really supports the show.

10:39 Next is a little bit of bizarre news from the Northwest. You're probably so I'm a little bit older than you,

10:47 I think. So I don't directly remember it. But I kind of remember the the the meltdown at Three Mile Island.

10:54 I'm 27. How old are you?

10:56 So I was born in 1970. So I was nine years old. So it wasn't really something I was completely aware of. But we, you

11:04 know, we heard about it later, because it was kind of a big deal. So what this was, was a nuclear nuclear

11:10 facility in near near Seattle, I don't know, I'm not that good at geography. A Three Mile Island in

11:19 Washington. And there were two reactors, and one of them did a partial meltdown. And it was a big

11:24 big thing. But it was it's the worst nuclear accident we've had in the United States. And okay,

11:31 so why am I talking about this? Well, I didn't, I guess I guess I didn't realize it was still operating

11:37 up until 2019. Not those reactors, there were other reactors nearby safer. I mean, in nuclear energy has

11:44 come a long way. There's an actually this Three Mile thing was the reason why we have a lot of the nuclear

11:49 regulations we have now, it did sort of put nuclear energy on the back burner more than it probably should

11:56 have been. And I'm not going to get into the politics of whether or not we should have nuclear energy

12:00 too much with that. 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. It might open again in

12:11 2028. And it's only going to be for Microsoft. This is the bizarre bit. So Microsoft, wow,

12:18 Microsoft wants to start this up again, and have an exclusive 20 year deal for what 835 megawatts of

12:25 energy. Just going to AI. This seems bizarre to me. So AI needs a lot of power. And yeah, so they're

12:35 just going to, they hope, this isn't, this is still in proposal phase. Regulators have to approve it. But

12:42 we're going to start up another nuclear power plant just for, just for Microsoft AI. This, I just don't get

12:49 so there's, there's that. And then it was, this was, we linked to the verge article. I found it on

12:56 the verge, but then I searched for it again, some more, and there's a CNN article as well. And also

13:01 what it looks like there's only one picture of this thing that's being used everywhere. Anyway. Oh, I

13:06 guess that's a different picture, but so going to start up again. It seems odd. And then

13:14 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

13:21 start a nuclear power plant just for AI. Maybe that's a problem. Anyway. The article I found was

13:29 just, it's kind of a mock news article, but this is just a mixed weenies internet tendency. The article

13:35 is the department of energy wants you to know that your conservation efforts are making a difference.

13:41 So I thought we were trying to like save the planet by saving energy and stuff. And,

13:47 this has got some interesting bits. says, by turning off your lights all day, every day,

13:52 you can serve about 1% of the energy needed for AI to generate a picture of a duck wearing sunglasses.

13:58 Isn't he cute? Aside from the fact that he has feet that are a human of a human man, of course.

14:04 so AI is consuming tons of energy and we're in the rest of our lives. We're trying to conserve energy.

14:10 It's just a, I don't know. I, maybe I shouldn't brought it up as a topic. It's just seems bizarre

14:16 to me. So I'll leave it there. Well, so I love these. Let's put your, your feeling bad about wasting

14:25 energy or your effort to save some energy and perspective. And it's just like, yeah, I mean,

14:31 I still go around and turn off the lights after my kid who just like leaves them on. Well, yeah. And

14:36 also we're, I've like stopped buying 25 cent light bulbs and now we buy $8 led light bulbs that last

14:44 about the same as the other bulbs used to. And they are more, I mean, I, we're spending way more on light

14:50 bulbs and for what? So that AI can have more energy, I guess. Yeah. So on one side, I totally see the point

14:59 there on the other, if we're going to dump tons of energy into AI, I would much rather see it coming

15:05 from carbon neutral sources than coal plants, you know? True. Fair. Right. Like, are you going to make

15:10 the duck or are you going to not make the duck? Like regardless of what light bulbs you're using, people

15:14 are making ducks and let's do that better. I think it's super bizarre that three mile Island is the choice

15:19 because if there's anything in at least American culture that says nuclear energy bad, it's three

15:26 mile Island. Like couldn't pick anywhere else, you know? Yeah. Well, they're going to change the name.

15:30 It's going to be called the crane clean energy center. Oh, there's a good rebranding

15:35 that said, I'm super optimistic on nuclear energy as a climate solution, not necessarily old school

15:45 three mile Island stuff, but the molten salt reactors, the things that fail safe and not fail

15:50 explosive like Fukushima. Right. I know there's nuclear waste. They're less, those new ones are less

15:55 bad. And, you know, I feel like a lot of the pushback against it, it's a little bit like, well,

16:00 there's this rare endangered lizard in the desert. 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. And I feel like, you know, nuclear energy is that sort

16:16 of in the extreme, right? People have such strong reactions, but there's so much better attack now.

16:20 And I would love to see that. Yeah. My personal views are that I think it would be good to utilize

16:26 what we have, including nuclear energy as a stopgap to get us off carbon based fuel. And then once we

16:35 get that, we can get carbon neutral, then we can go to, then we can be as we beef up solar and wind

16:43 and everything, then we can maybe draw away from nuclear. That's a great way to put it. Like,

16:47 let's get rid of the carbon pollution. Yeah. And then we can debate of the things that are working,

16:52 which ones are working best. Very well. I also, I also wanted to point out the excellent pun that

16:58 you made intentional or not that with nuclear energy, people have strong reactions.

17:02 That's very good. All right. People might have a strong reaction to this as well, but I got to say

17:08 it's way less, way less out there. So here's the strong reaction. I think when people use Docker,

17:13 so this is a Docker topic, when people use Docker, there's two philosophies. One philosophy is I want

17:20 the lightest weight, simplest, most basic thing that I can possibly use to build my containers.

17:26 So they're insanely small, right? I want almost nothing there. I just want, if it is not needed for

17:32 whatever I'm trying to do to execute, it doesn't belong there. Let's get it out of there. Yeah.

17:37 That's one side. This topic is not from that. This topic is from the other side of perspective

17:42 that I would say the Michael side lives on that I live on. And that is Docker can be more difficult

17:48 to understand what's going wrong. When something goes wrong, how do you fix it? How do you get other

17:53 tools to see what's happening inside there? Right. And so I think there's a bunch of people that stay

17:58 away from Docker because they're like, Oh, I just want to have access to the logs and the tools that I

18:04 normally use and all that kind of stuff inside my server or my VM. So I can understand what's

18:09 happening better. Right. So one of the tools I really like is, Oh, my Z shell, right. With all of

18:14 his plugins, his auto-complete, his cool history. And so I present to you ZSH in Docker. It installs

18:22 Z shell, Oh, my Z shell and the plugins like auto-complete for source control and for, you know,

18:29 all the, all the various plugins that you get right from Z shell and it's one line. So you put this run

18:35 shell out of this repo and it just installs Z shell and installs, Oh, my Z shell. It makes it the default

18:44 shell or you just run it when you get into it, whatever. And then all the plugins, et cetera.

18:48 So really, really nice. You even get to pick your theme as part of the one liner so that you can see like

18:54 what version of Python is active. What is the state of a get repo? If you copy to get repo in as part of

19:00 setting up your Docker container and all those kinds of things. So super simple. If you believe in that,

19:05 I want some tools inside of my container. So when things are not working, I can exec into it and ask

19:11 what's going on. Then this is really awesome. if you don't want that, if you're the opposite side,

19:15 this is not for you. All right, cool. Indeed. So do you, how much time do you spend in Docker?

19:20 very little, but when things are, are not quite working or I'm trying to figure out a command,

19:26 you know, maybe you've got a database running in there. You're like, I really need to see,

19:30 I just want to see what's going on with this. And you know that inside the container, there's some

19:34 database management tools. If you just Docker exec Z shell, and then you start typing, it's like,

19:40 you're, you're, you're on SSH and effectively. So yeah, I'm going to have to check that out.

19:45 So I'm changing my doc. Like I used to use Docker a lot for like actually cross compiling,

19:50 C++ code and I'm using it more now for web stuff. and so, yeah, absolutely. I think it's great.

19:57 And obviously I do a ton of stuff with Docker and we're running the web apps and things, but I don't

20:03 go into the web apps unless I have questions, you know, but when you do, it's nice to just go,

20:08 Oh, okay. Well, here's the thing. And you just make this one of your base layers of your Docker

20:13 image and it builds nice and fast. Nice. Okay. well we're, ran through our topics.

20:20 I don't have any extras today. So you're extra less. I'm extra less. What is the opposite of extra?

20:26 I don't know. I got a few basic maybe. I guess bear the bare minimums. Okay. So first one is I,

20:35 remember I spoke about this thing, this uptime Kuma while ago. Uptime Kuma is great. So it's self-hosted,

20:43 free uptime monitoring. Okay. Well, I put in a bunch of things like, for example,

20:49 if you go to Python bytes and you go to the bottom and hit server status, it'll show you the server

20:53 status of Python bytes, how old the SSL search from let's encrypt are and all those kinds of things.

20:59 Right. Very cool. Well, I turned that on all of my web things, including my personal blog, which this

21:05 might resonate with you, Brian is my personal blog built with Hugo, which is a static site. So it cannot

21:10 crash. It is HTML CSS image. Like it can't crash. Right. And I thought, Oh, I'm going to host this on

21:18 Netlify because Netlify is pretty awesome. Right. Right. Well, I started getting every single day or every

21:24 other day. Your site has a five Oh two error and it's been down for 10 minutes. Now it's back. It's

21:30 been down. What, how could it possibly, it's a static site. So something about the Netlify infrastructure

21:36 was going bonkers. And I will tell you, if you already have an internet server laying around somewhere,

21:43 it's about eight or nine lines of code of internet configuration to just host it yourself. So I switched

21:50 this over to running on server that runs all the other things that I got, but because Netlify was

21:55 crashing. So I think the takeaway is not that in Kennedy.codes, my personal blog website, et cetera,

22:01 is hosted anywhere different. Like why do you care? But if you're hosted on Netlify, maybe point some

22:06 uptime status at your thing, even though it's a static site, shouldn't fail. Look at it anyway. Mine was

22:12 for a week or two. I would say at least two weeks. It has been all sorts of broken temporarily.

22:18 Yeah. Is it better now?

22:19 Yeah. It's perfect. Cause why would it have any problems now? It's on our server.

22:22 Yeah. It's better now. Okay. So that's number one. That's just a check that out. Number two,

22:29 over at Talk Python, if you go to the courses and you go to the apps, we have really nice new version

22:38 that came out, I think last year of our mobile apps for all the courses, including Brian's pytest course.

22:43 You can take it that way. The one that comes from Talk Python that is.

22:46 Well, the guy who wrote this, Lauren Augie, I had him on Talk Python when we talked about Python and

22:53 mobile apps, along with some other folks. 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 detailed story of his life

23:05 journey. And I just wanted to share that. If people are interested in that, maybe you're making that

23:10 transition as well, then check that out. It's pretty cool. That's pretty cool. Yeah.

23:13 This other short one comes to us from it. Itmar Turner, Turner Trowing says it's time to stop using

23:22 Python 3.8. I can't believe that, but it is. He puts it, he puts it onto our radar that, you know,

23:27 14% of the packages downloaded from PyPI are for Python 3.8 installations. And by the way, next month,

23:35 it's going end of life, out of supported, no security fixes, nothing. So you might not want

23:41 that to be your foundation if you get to choose. And we got like seven days left in September.

23:45 Yeah. I would say it's, yeah, five weeks. What could go wrong? Anyway, just put it on your radar. Maybe

23:51 Python 3.12. It's been out for a long time. Version six of that just came out. So I think we're good.

23:56 You know, 3.12.6. I also want to add to that, that since like, it's been years since I've ever had any,

24:03 any significant issue upgrading. At most, I'll see deprecations that I have to go through and

24:09 clean up or warnings or something, but I, maybe other people have, but I haven't had any issues

24:15 for a really long time upgrading. So. Yeah. Same. I did have an issue with, I can't remember. There

24:22 was some, it was packages that didn't support 3.12. There was some deprecation in there that

24:28 I had to wait three or four weeks before I could start using 3.12 when it first came out for some

24:33 of my apps. However, that's not the same as to say that Python itself is unreliable. You would know

24:39 right away if the imports fail or whatever, right? Like you'll, you'll find out straight away.

24:43 Yeah. And I don't remember the reason why, but on a couple of the projects that I've converted from

24:48 3.8 to 3.12 work projects, I jumped to from 3.8 to 3.10 with no issues or minor issues. And then to

24:57 3.12 fairly easy. And for some reason it just helped me to go from the 3.10 and then 3.12.

25:02 Yeah.

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 end up saying,

25:10 we have a 2.6 app and a half million lines of code and it's still running on Python 2.6. So

25:16 don't talk to me about your fancy new libraries and your typing and your async. We're just trying to

25:21 survive, you know, like, but if you keep, if you get into the practice of just like, okay, well,

25:24 let's just keep this stuff moving. All those steps are generally small unless you try to take them

25:29 10 years at a time.

25:30 You're stressing me out, man. PTSD from 2.6.

25:35 All right. Last thing. So passkeys, let me ask you really quick, Brian, are you a passkey user?

25:41 Yes. Well, passkey is in...

25:44 A believer.

25:44 Well, yeah, I use passkeys. Yeah.

25:46 I do too. I've been resisting using passkeys. So passkeys are cryptographic, kind of like,

25:52 almost like SSH keys, but for the normal folks for just web authentication, right? It's a cryptographic

25:59 thing blob that gets put into your whatever thing is signing in. And if it shares that back,

26:04 it's supposed to be dedicated to that instance, it knows it's you. Often you can skip to a phase,

26:08 all those kinds of things, right? But one of the things that really turned me off on passkeys

26:13 is they felt to me like a couple of the tech giants are like, hey, this is a sweet opportunity for

26:20 lock-in. So let's see how much lock-in we can get, you know, Android and Apple, especially,

26:25 right? Like, hey, just save your passkey to your iPhone. What could go wrong? I was like, well...

26:30 I could lose my iPhone. Yeah. 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. It's a super pain to type in,

26:40 but you can do it. 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. It's login. Log in again at the

26:52 boot screen. So I don't get access to anything. It's like, oh my gosh, this is a pain. But those

26:57 situations get way worse if you have passkeys that are dedicated to, you know, one provider,

27:02 right? That's just mega lock-in. So I realized that if you're a one password user, or I think

27:09 also Bitwarden, I'm a user of both of them and I really like them. If you store your passkeys there,

27:14 all of a sudden they live everywhere. It's beautiful. And if your computer gets destroyed,

27:18 just log into one password or Bitwarden or whatever again, and you have them all again. So if you,

27:23 at least for one password, if you go into the watchtower, there's a section that says,

27:27 show me all the sites that could have passkeys that I don't have stored passkeys for here.

27:32 And it'll help you go through and basically add them to one password, which is a form of lock-in,

27:38 but a much lower grade form of lock-in in my feeling. So anyway, I am now a believer of passkeys,

27:45 I believe. I went through and did that this weekend. I added like 35 accounts or so that have

27:49 passkeys and now life's a little easier. Like GitHub, for example.

27:52 Yeah, nice.

27:54 Yeah. All right. You have the joke for us this week, do you not?

27:58 I do. And I actually, I thought it was going to be a topic. I just had it in my backlog of how to

28:05 monetize a blog. And then I started reading it and realized this is just a hilarious joke.

28:11 And I love it. So I wanted to bring it up here. And so, and you should either, if you're listening

28:17 and not, not on YouTube, you should, watch the, watch the video version or just go check it

28:23 out yourself. I'll, we'll have link in the show notes. Okay. So how to monetize a blog.

28:28 it talks and I actually thought it was going to be advice, but it's just funny. maintaining blog

28:34 can be a lot of work. I start reading it. You don't really need to read it. there's some fun

28:38 font that shows up right away. Like, like here's a, it can become a fairly lucrative venture and the

28:44 become is in this wacky font. I love the M that's cool. and then she would get going down and you

28:50 see these various things like, like timber quest, advertisement, your lumber yard awaits you,

28:57 my Lord, play now. And almost all the, the, the clickable things, if you click on them,

29:02 they just like pop up little coins. you don't actually go anywhere. and then

29:07 talks about slapping this bad boy here can start raking in some cash through true primary

29:13 means CPM or CPA. And, and then you just sort of, if it's sort of seems reasonable, but it says,

29:20 look, look, how am I doing so far? I've, I've made 0.123 cents, so far on this. and then,

29:27 you, it, it just adds it up. There's different various, various little links around that.

29:34 If you click on them, it 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 graphic design,

29:45 no proofing time saved. The ads are hilarious. Here's one, free cruise, sign up today,

29:54 with eligible purchase meeting or exceeding value of cruise after which no purchase is necessary.

30:02 of course, click on that guy for some extra, let's see, I'll read one. The more clicks and grizzly bear sales,

30:10 you can squeeze out of your beloved readers, the 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 gotta be an affiliate link, right?

30:20 Yeah. All these things. let's see.

30:24 here's a little, a little weird thing, ad 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.

30:39 Oh, boy. This is bizarre. I love these. I want to scroll down more literal snake oil, vials of freshly squeezing,

30:47 squozen oil from actual snakes. befriend a sandwich. No doctors allowed. The first mystery grab bag of unmarked vitamins is free.

30:56 oh, and then it pops up. We get a pop-up, push notifications. Would you like to enable push notifications

31:04 so you can receive intrusive alert messages like these outside of the browser? Yes. Or ask me later.

31:10 I'm sure I said yes and see if you got a coin for that. Yeah, maybe let's do it again. Another one. Yes. Oh yeah.

31:19 Oh, you did. You're making some money for that. Yeah. And, a weird pop-up cheese cube burger now open. let's see.

31:27 We soon become, oh, it's too bad. You can't see this. This one is, ice cream holding tips.

31:33 there's, we have radishes that will change your life. Add, let's see. huh? Oh, these,

31:41 these are my, these are just my mind-rending god radishes. old school, excuse me,

31:47 a virus was detected on your computer. Send bitcoins. Like a Solaris window. oh, anyway,

31:56 and then you, you just sort of scroll down. It just comes, it becomes even more bizarre. You've got

32:01 side noise text. and then, the, the spiral. This is awesome. I don't even know.

32:07 So I was like, how do they do some of this stuff? It's pretty cool. It's pretty cool stuff.

32:11 That's how you monetize. That's how you do it. Yeah. If you go all the way down also in,

32:16 in the, if you actually start reading it, it says stuff like there's not actually,

32:19 you just sort of have to spew out lots of words. I didn't even edit this. and then

32:24 way at the bottom, there's a credits, how this was made. And then, this person goes through and

32:29 walks through, basically all of the different, procedures for how, like how to do the spiral,

32:35 how to do the cool font, and all these sort of tricks, with HTML and CSS and whatnot. So

32:42 anyway, just a hilarious little, blog on stupid ads. that's awesome. Andre out there says,

32:49 this is art. It's definitely art. Yeah. Not art, but real time followup. Bitwarden also supports

32:56 pass keys, which Bitwarden being open source and the paid version is insanely affordable. It's like

33:04 a dollar, a couple of dollars a year or something. I can't remember exactly what it is, but maybe that's

33:08 the proper recommendation there, for, for pass keys. But anyway, okay. Cool. Yeah. Cool. Yeah.

33:14 Well, let's call it a show, huh? Yeah. Sounds good. All right. Well, thanks for being here.

33:18 Thank you everyone for listening.

Back to show page