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