17 Feb 2025

Ramblings on my digital life

Are you in control of your digital life, or is it controlling you?
Who decides what you see online?
What information is being collected about you?

Like many, I'm going through a phase of re-evaluating my interaction with social media and to some extent, computer technology as a whole. I'm not entirely "degoogling," like some are trying to do, rather I'm trying to tailor my digital life to me instead of the other way around. I don't want to be fed a "curated" stream content that some algorithm has decided that I'm most likely to "engage" with, but rather content I want contant that I want to see, in a format that I've chosen to see it in.

I want control.



Blogs

One step towards achieving this goal is what you're reading now. This blog. I decided on the software. I built the server that it's running on. I picked the ugly colors (unless you're reading this via gopher). I can delete posts, create new posts, or destroy the blog entirely. There are no trackers, ads, AI, or other garbage unless I decide that there should be. This doesn't get the readership that I would if I were writing this on Facebook, but the few people who do read it are reading it because they want to, and that's what's important.

I've also started following other blogs, too, some of which are listed in the "Links" section in the menu to the left. Reading personal blogs is great, because you're just reading what a person wrote. There's no algorithm, it's just delivering whatever they typed straight into your eyeballs.

Websites

I maintain my personal homepage and I've been visiting other personal websites. While I personally self-host my homepage, sites like Neocities are making it easy for individuals to create personal webpages without needing to manage a webserver themselves. Searching for new personal homepages can be a little difficult compared to massive SEO'd sites, but services like "webrings" can help you find other similar homepages and provide plenty of rabbit holes to travel down. My homepage is part of the "No AI" webring, whose membership consists of personal pages free of AI generated content.

Email

I still use gmail, it's true, but I now interact with it through Thunderbird. I know that doesn't remove all of the Google tracking and whatnot, but it does allow me to access my email in a presentation that I prefer, and it allows me to use PGP/GPG, which does prevent Google from reading my emails, if it's actually used. Unfortunately I don't receive many PGP encrypted emails, but I've published my public key and my domain supports WKD, so it's easy to access if anyone wants to use it. My address is just "me" @ this domain, by the way, if anyone wants to send something my way.


RSS Feeds

Another advantage to Thunderbird is the built-in RSS reader. Instead of visiting, say, reddit.com, I can import my favorite subreddits directly into Thunderbird as RSS feeds, as well as following other blogs, podcasts, forums, and so-on. No ads, no trackers, just the content I actually want to see.


Fediverse

Of course the Fediverse has to play a role. The "fediverse" is a network of social media applications that can all communicate with each other. It's sort of like if Facebook, Reddit, Snapchat, Youtube, ~~Twitter~~ "X", and so on were all interconnected… Except that each service is actually composed of thousands of individually-owned servers instead of a massive server farm owned by a single entity. If I decide to take down my server, my posts will eventually disappear but the fediverse will live on. No single entity controls the fediverse. Owning the server also means that I control the server. I can decide not to federate (interact with) other servers or limit which servers I want to federate with. I'm in control of my own social media.

SearXNG

"SearXNG is a metasearch engine, aggregating the results of other search engines while not storing information about its users." Essentially, instead of directly using Google or Bing, I search via my own SearNGX server which will create a new "identity" for every search, aggregate the results from dozens of other search engines, and then strip out all of the ads and sponsored results. That means I can search for things like "political news" and get results from all across the internet without getting blasted with advertisements for MAGA baseball caps for the next month.

Last thoughts

Breaking away from major social media and massive corporate entities isn't easy (or even totally feasible) I do feel a lot better knowing that I have al little more control over this aspect of my digital life.

4 Feb 2025

New look!

I know absolutely nothing about CSS.

My very first webpage was coded in straight HTML (as is my current homepage), and when I decided I wanted something fancier, WYSIWYG editors were becoming popular, so I sort of skipped over the whole "learning css" thing.

This blog is "powered by DotClear" which offers a simple way to import "themes". The Themes actually provide the color themes and the structure of the blog. The theme I'm using here is called "atopa", but I wanted something a little bit different. I poked and prodded around in the mysterious stylesheet code, made some educated guesses, and ended up with what you see now. It's inspired by the color scheme of the Counter Strike mod for the first Half Life game. In addition to being a mod I played a ton when it came out (20 years ago, oh my!), I also just enjoy the subdued earthy tones (my closet is full of greens, browns, tans, and greys), and I find that it's easier on the eyes than bright white, while still being more colorful than the typical "dark mode" website. I also tweaked the spacing a bit, since I felt that the default spacing squished all of the content into the middle of the screen and left huge empty gaps on each side.

Anyway, if you don't like the colors, this blog is also available via RSS feed and gopher, both of which will leave the coloring up to the client you're using.

1 Feb 2025

A rambling on the topic of generative AI.

While trying to write the script mentioned in a prior post, I decided that I would use an XML parsing module of some sort rather than writing my own.  A quick google search turned up a number options, but I wasn't quite sure which would be best for my use-case.  I knew that I wanted to specifically read RSS feeds, so using a general purpose XML parser was probably overkill if there was a more RSS-focused option available. I found several RSS-focused modules to choose from, including XML::RSSLite; which sounded promising as a light-weight RSS-specific module. 

The documentation was rather sparse, though, and I thought I might get a better idea of how to use it if I could see some examples. When a google search didn't turn up much in the way of results, I decided I would just ask an AI to create an example for me.

In its example, it makes this call:

my $rss = XML::RSSlite->new();

...Which might look reasonable on the surface, but it didn't actually work. Now, instead of understanding how the module works by reviewing a working example, I get to learn by trying to troubleshoot something else's broken code. After actually checking the documentation, it seems that "XML::RSSlite" isn't an object and the module never uses a "new" method.   After I pointed this out, the AI gave it another go:

my $rss = XML::RSSlite->parse_url($feed_url);

Closer, I guess?  It still doesn't work, though, because it's still trying to call on objects and functions that don't exist. I pointed that out again and let it try one more:

my $rss = XML::RSSlite->new();

Really?

Despite trying to prompt it into a correct answer, it kept admitting that each answer was wrong and then produced the same incorrect code again and again.

For reference, here's how the module is intended to be used:

use XML::RSSLite;
parseRSS(\%result, \$content);
Yep. That's it. Super simple. One function that takes two arguments: a reference to an input scaler and an output hash.
 
It's a little baffling that the AI had this much trouble with such a simple request, but my guess is that it comes down to one fact: XML::RSSlite doesn't get a lot of use.
An AI "learns" by slurping up other examples and building a model based on what it sees. It doesn't actually "understand" any of it, it just knows that things generally happen a particular way.  Essentially, it just constructed something that looked like working code, without any knowledge of whether it would function or why. Even when it was told that it was wrong, it still produced the wrong code because it looked the most "right". It doesn't read man pages or reference documents to better understand how to answer a problem, it reads man pages to understand how a man page should look and reads answers to understand how an answer should look.
 
And I feel like this is really where the "AI is going to take over the world" thing gets a bit silly. The AIs of today can't create new things, they can only create variants of things they've already seen. They can write a story because they know what a story should look like.
They can create an image of a cat riding a Craftsman lawnmower, because they know what cats and Craftsman lawnmowers should look like.
 
I asked a Generative AI to "create an image of something entirely new, that has no analogs in the current world."
It produced an admittedly, very pretty, picture of a cave with a river running through it:
 
 
I'm sure that exact cave doesn't exist in the known world, but it's far from an entirely new concept of a thing.
On the other hand, human artists like H R Giger can create surreal nightmare bullshit that looks like nothing you've even seen or ever want to see again. 
 
I guess my conclusion is that If you're going to fear anything in the current world, it should be us humans.