Subdirectories, Apache, and ActivityPub

I have this terrible feeling that I may have fixed my ActivityPub issue. I was able to find this blog from my Mastodon account and follow it. If it continues to function, that’ll be the next unexpectedly pleasant surprise.

Turns out, my blog lives in a subdirectory. https://www.windchilde.com/bluedepth. The plugin flavor text, at the shallow end of the pool makes absolutely no mention of blogs living in subdirectories. It took a Github issue that ended up being one of maybe six that I ended up checking out. Here’s the page that won the day:

https://github.com/Automattic/wordpress-activitypub/issues/538

And the most important part was the blind axe-throw at .htaccess from the root of my hosting account, to cajole Apache into behaving differently than was intended. Here’s the missing bit:

“RedirectMatch “^/.well-known/(webfinger|nodeinfo|x-nodeinfo2)(.*)$” /blog/.well-known/$1$2″ – without the quotes around it, and replacing “blog” with your subdirectory.

After that was done and saved, went back to Mastodon.social, search, and put in the term @admin and poof! There it is! It found it, I could follow it. Suddenly feeling very strange because I had given up on ActivityPub completely. Apparently it works. Huh.

Well, I say that it works. This post might show up on my Home feed in Mastodon.social, if all the trained hamsters aren’t smoking meth, I guess. LOL. Only one way to find out… and hit that publish button!

ActivityPub Lulz

Looks like adding ActivityPub plugin to this updated WordPress install isn’t working. Site Health says everything is absolutely fine, and that’s the end of the Troubleshooting guidance from the plugin.

It didn’t work before, it’s not working now, and we’re really not surprised in the least. I seriously doubt the plugin will ever work. It might work on any other host, but not iPage. Without being able to find @admin from Mastodon, there can’t possibly be any followers, and since the plugin doesn’t actually *do* anything by itself, this blog will never be visible from the Fediverse.

I’d be shocked if it ever worked. So, this blog will likely go back to being ignored and derelict. I seriously doubt anyone reads this trash, so it’s for the best.

Noises Off! LOL!

ActivityPub and the Fediverse

I just updated my blog, finally. It took forever, because the automatic-by-the-link update method no longer works, so I had to download WordPress fresh, put it somewhere handy, and then follow the upgrade instructions I found on the Automattic site for this sort of thing. Once I had all the files updated, I refreshed my blog and it asked if it was okay to update the database, which took only moments.

Then once that was accomplished, the next step was to update PHP on my silly host, they are not helpful at all, and now that I have updated my WordPress manually, I don’t know if I ever will need their help again.

After all of that, I installed the ActivityPub plugin. It says it is functioning, but I have no idea if it really is or not, I can’t seem to get it to come up on Mastodon.Social, so perhaps a new post will trip some trigger.

The notion of writing in my blog, for long form pieces is something that might be really useful again, now that I am no longer on Facebook and this promise of expanding my social reach using ActivityPub certainly is attractive. I suppose only time will tell.

Kludgey

This post was written on Mastodon so it has an informal writing style with jargon and a manner for a specific audience. All the spelling and grammatical errors are intended.


I love creating my own problems and then finding a rabbit hole and chasing it until I have a geek solution that is likely foolish. If I load too many tabs on my Macbook, it gets sluggish. So, can I start xQuartz? Sure! Update however…

Okay, that done, can I SSH with the -X flag to my little Raspberry Pi? Yes! Sluggish. Wah.

How about to my “Security” laptop, running Linux? Yes. Sluggish still.

Google Search, find x2go, install it. MUCH BETTER.

So I’m using x2go, running Firefox-esr and connected to my not-work-tabs, including this one. Not seamless, but it works acceptably well enough.

Sitting here, marveling at all this exceptionally complicated computing technology before me, everything has “multiple cores” yet you really couldn’t tell. So instead of running everything from one single computer, we’ve got serious work stuff on one, then a remote desktop window to another running “fluffy stuff”, and then playing Spotify from my !@#$ iPhone. HAHAHAHAHAHA.

Shitty apps, each written by devs that believe that their app is the “King Of The Realm” and you can malloc() forever without having to fret over anything at all. Leaks? Who cares! Look how pretty it is! So, multiple computers, multiple OSes, failures aren’t less, but they are spread out so they don’t block real work quite as badly.

Of course, there is also I/O Blocking to contend with. When the filesystem is doing anything, everything stops. Because I/O is super smexy.

So we contend with shitty development choices by simply throwing entire chunks of technology at the problem. Two laptops, a Raspberry Pi, an iPhone, and an iPad. Each device is good at individual things, but no, we can’t do everything on one single device. Watch that device just chug right to the fucking ground. Ah well. The modern response is “throw a hypervisor on it” and that, wow, what a great way to make an even bigger mess of things.

Bullshit hypervisors make for hilarious blown-out-afternoons. So, Windows 10 on an HP Elitebook laptop, install Hyper-V from the OS, and the Radeon display driver commits hairy suicide. Not only does the driver break, but it cannot be “upgraded” or “fixed”, the only thing you can do, is remove HyperV and… poof, uh, there was a problem? No! No problem! So, you shrug and chuckle and look at the icon for VirtualBox. Yeah, hey buddy…

There are some situations where I start thinking that I should buy a cheap $200 Chromebook just for some things. More technology. SMH. Of course.

Two days ago I remembered the glory-promise of X-Windows and SSH tunnels, with the Display being sent elsewhere. Oh my god, the promise of that… so glittering. So… disappointing.

Oh it works. But it’s like watching slugs have a romantic dinner. Maybe I should just read a book while you request that website, hmmm?

Obviously you turn to Google, the eminent sage and eternal junkie for answers. Ah yes, X-Windows over SSH is a ping/pong nightmare, half the traffic is consumed by just making sure that all the lower layers are functioning properly, constantly. Fine. But then you spot things like x2go, give that a shot, eh… it’s somewhat better.

In the end, the promise bends to tools you already have. Like TeamViewer connected to Windows 10 on a different laptop.

Heh, assuming TeamViewer stays functional that is.

Technology is bittersweet. We have such command of so many wonders. I can’t shake the feeling that it’s all an immense house-of-cards. I suppose I’ve seen too much, I know too much, “I’ve seen things you people wouldn’t believe” kind of running through my head. Like looking at Layer 1 connections secured by… chewed bubble gum.

And all the various cheats and hacks, because you naturally want something, but you can’t get it because the people who provide the thing, won’t provide the tools for the extra things you want. They aren’t going to write the code, their codebase is secret, you can’t submit code yourself, and so you just sit there, google searching and finding kludgy-as-fuck solutions to your headaches.

Yeah, that’s fine, be a prat. I’ve got a python script that scrapes your shit and does what I wanted to do.

Case in point, Signal. I love Signal. I will always love Signal. But I want to search on metadata within the Signal app. No. Like the soup nazi, no metadata for you! Only search on stuff in primary stream. Fuuuuuuuu.

So I have a group chat, it’s all my friends, in Signal, and we use it as a blazing-bright thread, it connects us all, geographically spread throughout the United States. It made the COVID-19 Pandemic less lonely. It was a community of dear friends and we could be together without risk.

So, I journal, have an app for that, but obviously Signal doesn’t work with the journal app, so I can’t just hoover all the Signal content into the journaling software. Sometimes I forget to review everything we said in Signal, so the date-of-chat just slides off primary display. You could scroll, but wouldn’t it be nice to search on metadata? Like take me to the first thing shared on Sep 01, 2021? That would be nifty! NO. NO SOUP FOR YOU.

So, no metadata searching. Fine. So, enter the raw kludgy “fuck it, this is also a solution, damn you all” solution. Can’t search on metadata, but just on raw data, so, lets add the data markers we want to the stream! At 6am, write the date into the stream, every day. Then you can use the tools in the app to search on what was shared, and since the metadata you want is “shared”, now you can search on it! Well, okay! “Sep 01, 2021” look! YAY! That’s what I wanted!

Obviously this creates a “Forking House Of Mirrors”… one bullshit kludgy solution leads to a new problem. I don’t want to wake up at 6am to put the date into Signal stream. OK. Lets automate that. Enter Signal-CLI. shakes head fine. So, lets try to connect to the service, that was a hard climb. Okay, now it’s as group, what groups are there? No groups. What? No. Send something to someone, then ask again. Okay. <<send>> how about now? OH YES, THIS GROUP!? You need a special hex code for this.

If you have this hex code, you’d think you could use that without having to ask going forward. No. New install? You can’t just simply use what you know to peek around the corner, no. You need to run around Robin Hoods Barn all over again, and now you can use it! HUZZAH. FUUUUUUUUUUU.

So, finally, we can send signal data from the CLI. Next, lets figure out the date commands picky-picky formatting rules. How to get Sep 01, 2021?

We’ve got that! YAY! Okay, so lets write a Bash script! Get the date, and at 6am write it out to the Signal group. Write script, change mode on script so it can execute, plumb the foggy memories you have of crontab, and boom. Failure.

FUUUUUUUUUUU

Ah yes, cardinal sin, I didn’t explicitly declare the specific paths to signal-cli, echo, mv, fuck, any command at all. Call the script yourself, works, cron calls? Lost. Fixup. Dive into vim. Find your cheatsheet. Gah.

Finally, good god watch it work. 6am every day, a machine you “rescued from the landfill” with some half-forgotten linux distro you can’t remember is actually working and that’s fine. Now, when it’s Sep 03, 2021, you can search on Sep 01, 2021, to get back and manually journal what you remember telling people, because there it is. Click-drag.

All because metadata isn’t searchable. I got what I wanted. Everyone can benefit from it too. But it is complete mess.

This is why entire afternoons are incinerated on the pyre of “Fuck, I wanted XYZ, but the devs don’t speak English, their angel investors aren’t interested, and nobody but me would ever want this feature… so… fuuuuuuuuuuu”

I suppose I could attempt to ask for whatever it is I think would be good, but devs live on the moon, or as much as would be useful, they do. So no. We don’t tell devs anything. We just muck about, finding fragments on GitHub, trying not to get sick that Microsoft owns them now.

So you find gists, you find forked projects, you find python code fragments. The dependencies aren’t circular-misadventures-into-the-fog, you try to remember basic linux stuff because you haven’t had to screw around with any of it for decades and crontab went off to the same Elysium Fields that Trigonometry went off to…

Google Fu. Another worrisome “house of cards” right there too, but lets not look too closely at it, lest it collapse. Or sell our identity to Belorussians.

It doesn’t take much at all. Fragile houses of cards built on other fragile houses of cards. People mobbing on top, like hapless Eloi sitting down at the picnic tables and never having a single bright shiny thought in their pretty little heads because food is always right there, on the table, same time every day. Meanwhile, underneath, the Morlocks are banging on pipes, and every once in a while grabbing an Eloi for a snack.

That’s the Internet. Humanity on top of the Internet. The rot in Layer 8.

And all you really do is shrug. You hope for a better world. Every once in a really long while you stumble blindly over something truly elegant. It’s like tripping over Rivendell and spotting an Elf walking along a curated beautiful path of perfectly carved scrollwork.

And it’s only momentary. The pile of constantly shifting wreckage we call the modern world continues to shudder and throb. It all works, and you marvel that these people manage to continue to live in all of this… wreckage.

Ugly White People, Wearing Masks, and Leaving Facebook

So earlier today, after leaving our local megamart, which in this case is Meijer I was beset by wave after wave of ugly white people not wearing masks. I just cannot stand it, the absolute gall to put the public health at risk all because you want to be a dick about it. It is just beyond acceptable, even in our broken world, so I wrote a Facebook Post. I called them for what they are. Ugly White Pig Fuckers.

The Facebook AI flagged it as “Hate Speech” and so, since I have a long track record of calling out Russians for their shenanigans along with I’m sure other infractions that I have long since forgotten, I have been put in a time-out corner for three days on Facebook.

Almost everyone that I care about is on a shared Signal group, it’s a virtual pub where all my loved ones are also there and I can vent, and listen to my loved ones vent, and we can laugh and share things and because Signal is end-to-end encrypted, there is nobody there to tell me what I can or cannot say.

Very much like this blog too. I always mean to write more here on the blog, and this time-out from Facebook for 3 days is actually not a punishment but rather an invitation I think, to fully abandon the platform. The toxic people, the toxic stories, the endless and sensationalized bottom-of-the-barrel scrape that the wall has become. If I want to visit a wreched den of scum and villainy, at least Reddit doesn’t pretend that it is anything else than just another cultural latrine. Facebook is just a lemon-scented cultural latrine.

I pay for this blog and the service, so I can say whatever I please here without an obnoxious censorship AI locking my account out. Plus, it’s like TV, if you don’t like what I write on this blog, you are very much invited to forget all about it. Just don’t point your browser here, I will not be offended.

So instead of sharing things on Facebook, I’ll share them on this blog. The activity will pick up, maybe if I’m very lucky there will be a new community like Imzy, or perhaps something like LiveJournal before the filthy Russians got their grasping little fingers all over it. Everyone who reads the blog should know, I’m left AF, and while I am not Antifa, I am Antifa sympathetic, especially with the notion that anyone of good standing and solid heart will not hesitate to punch Nazi scum in the face.

So don’t look for me on Facebook. Look for me here. To Hell with Facebook.

Also… WEAR YOUR !@#$ MASKS IN PUBLIC!

Ulysses 18.7 and WordPress 5.4

Aside

I just had a devil of a time with my Ulysses to WordPress integration. Something underhanded happened on the way to the Forum. Either it was something that WordPress tweaked in 5.4, or my host did something clever to get in the way and didn’t tell me. Someone left a very important bit out, which broke Ulysses, my editor of choice for blogging.

The solution was to be found in these two sites:

David Bosman’s Blog – Ulysses and WordPress and

Hans Bruins’s Medium Post – Ulysses and WordPress

So if you were using Ulysses all along, and it suddenly crapped out on you with WordPress, these instructions seem to do the trick, it did so for me!

Alternatives

Censorship reminds me that there are a few things really worth buying into for your online peace of mind. The first is a VPN. You should not connect to the Internet without a VPN. There are many great options to choose from, there is NordVPN and Private Internet Access, or PIA. I strongly suggest that people buy a year’s worth of service from a VPN provider and then connect to it every time you use the network.

I also can strongly suggest that people download the Signal application on your Smartphone or Tablet. Signal uses End-to-End Encryption so that whatever you want to talk about is secured from your device to the other device, preventing anyone on the network who may be snooping in, from reading your private conversations.

Since Twitter censored one of my tweets, which resulted in me losing faith in their service, I downloaded the entire Twitter archive for my account and then I set virtual fire to it, burning it to the ground. I then (mostly) left Facebook and found a different community in the Federated Universe or Fediverse based on ActivityPub technology, specifically the Mastodon system. Mastodon is a lot like Twitter, only with better filters and controls and a generally better group of people. After Facebook slapped their gag on me, I went right over to my Mastodon instances and laughed it up.

It goes without saying that everyone should get at least some rudimentary apps for your privacy downloaded into your phone and set up. If you install Signal, it will offer to show you people on the system who are registered, and I will pop right up!

Another Smartphone app that is worth your while is Bridgefy. It allows you to use Bluetooth as a short-range communications radio, about 30 feet. The neat part of Bridgefy is that it creates a Bluetooth Mesh, allowing messages to spread across Bluetooth from participant to participant, so if you are in close proximity with others, and everyone has Bridgefy, you can have an ad-hoc mesh network where you can communicate with your phones without the need of the Internet. This is really important if the government or the Internet providers try to control the flow of information by active denial of service. While the Internet provider can simply just turn off their data services, they cannot touch Bluetooth radio. The Bridgefy app really leverages large populations of people, enabling long-range communications over the mesh network. It is really something everyone should have, just in case.

Vim’s Red Pill

I started this foray into Vim a few days ago. I’ve been talking with folks on
Mastodon.technology about exploring Vim and inspired by their learning and
exploration of this application that has been around publicly since 1991.

Vim is just a plain text editor, it’s ubiquitous on a lot of Linux and Unix
based operating systems, and less so on others. While I was in college the
professors in computer science were very fond of Emacs, so I sort of remember a
bit about Emacs and that I didn’t know Vim at all, nor did I really care for
it. Now that I’m older, I’m looking for new things to learn and Vim is quite a
good challenge for that.

The Learning Curve for Vim Resembles The Cliffs of Insanity

Learning this editor is a sheer climb straight up, on an imaginary learning
curve. There is very little that anyone who comes at Vim without any knowledge
of it will be able to understand. You get a little motd blurb on a blind open
with the name of the application and its version detail. You can’t really write
anything into the screen until you accidentally hit a command for getting into
the — INSERT — mode, like A, O, or I, or the lowercase equivalents. Over time
you start to accumulate more skills and you rely on the cheatsheets a lot less
than you were at the start.

Once the learning is done, then you start to move forward with the
customization part of the application. Vim is improved by plugins that enhance
or sometimes detract from the core use of the application. If you can get a
plugin to work, that is. Sometimes they just don’t, and there isn’t any clear
way to force the issue. Much of the plugins now live on GitHub, and sometimes
your mileage may vary when you are looking for help. For example, one plugin
which is for autocompletion at first seemed to be exactly what I was looking
for, but the fit wasn’t right for me. There is nothing on GitHub, for that
project, that even mentioned Q&A or anything like that. One thing that I have
learned is that sometimes when you add plugins to Vim, they can get “stuck” in
the Session system which forces you to dump your session details and start from
scratch. But once I was happy with how everything came together, it is a very
powerful editor.

Once You Pop A Red Pill, You Can’t Stop!

The first foray into Vim starts with editing. Then I started to look at some of
the other things that this editor could do. I fiddled a bit with Markdown, that
went well, and then afterwards I moved on to installing the Mutt mail
application. I have dwelled, perhaps malingered at Mac OSX Yosemite so when I
started to look into Mutt on my Macbook Pro, the Homebrew system complained a
lot about how some things would likely be broken because I was unwilling to
install the latest and greatest version of the Mac OSX operating system.
Everything worked out for the best in the end, and I got Mutt working for both
my Gmail account as well as my Office365 Hosted Exchange account at work. As a
funny side note, Mutt works well with IMAP servers however there was a bit of
skullduggery with the SMTP authenticator settings. For Mutt, this is the
general plan for a standard IMAP .muttrc file:

set ssl_starttls=yes
set ssl_force_tls=yes
set imap_user ='username@gmail.com'
set imap_pass = 'password'
set from='username@gmail.com'
set realname='First Last'
set folder = imaps://imap.gmail.com/
set spoolfile = imaps://imap.gmail.com/INBOX
set postponed="imaps://imap.gmail.com/[Gmail]/Drafts"
set header_cache ="~/.mutt/cache/headers"
set message_cachedir = "~/.mutt/cache/bodies"
set certificate_file = "~/.mutt/certificates"
set smtp_url ='smtp://username@gmail.com:password@smtp.gmail.com:587/'
set move = no
set imap_keepalive = 900
set smtp_authenticators = 'gssapi:login'
set signature ="~/.mutt/gmailsig"
unset sig_dashes

While the last bit, for smtp_authenticators simply won’t work with Office365.
To get that to work with Mutt, you’ll need this line in its place:

set smtp_authenticators = 'login'

Once I was able to get all that figured out, I then had another way to see my
email, through the Mutt email client. It wasn’t until this point, after being
able to login and logout, and receive new email and send new email that I
looked over my email to discover that almost all of it is HTML encoded. Which
makes reading it a headache in Mutt. But that wasn’t the point! The point was,
Mutt helped bring Vim closer to me. I may use it, or I might not. The HTML is a
definite headache so it’ll die a slow death because of HTML.

Distraction Free Writing

Vim’s editing powers are one part of it, the other part is the sheer speed and
usefulness of the application. There are a lot of systems that I use that seem
to have these little lags for text entry, like the system is always a few
microseconds behind registering what I want to do, which when typing in text,
is to do just that. It’s only slightly present on my Macbook, but often times
very present in apps on my iPhone. I’ll never know why user text input isn’t
the number one thing for any device to do first. Everything else can wait, be
put aside, but my typing? That should take top billing each and every time! So
with a full-screen iTerm2 screen, Vim is almost a killer app for distraction
free writing. I like line numbers on the side, and margins on either side, so
for me, this is almost a perfect arrangement. Plus the cost can’t be beat, Vim
is free. Another big draw for me is that Vim should be useful still even on
very low-powered computers, if it turns on, if it can run Linux (or Mac, or
Windows even) then it can run Vim.

Where Do We Go From Here?

We’ll see where I take Vim in the weeks to come. There is a lot of travel
coming up for me and I expect I’ll be doing a lot of blogging during it.
Writing everything out in Vim, saving it as Markdown, and then importing it
into WordPress. I suppose I could very well just email it into my blog as well,
we’ll have to work on that workflow in the future. Maybe I’ll find a WordPress
installation that works and be able to leverage Vim more directly with that
system. We shall see.

Cream of Mushroom Soup & Grilled Cheese with Sauteed Onions and Peppers

Oh, oh my God. First I started with Pressure Luck’s Cream of Mushroom Soup and then put the spurs to a small pile of onions and green peppers, then slipped them into grilled cheese with Meunster cheese, which is my favorite.

Some adjustments I made to the soup was double the Sherry, double the Garlic, ramped up the Thyme to 1 tbsp, and used Chicken Stock instead of the BTB Mushroom Base. I think the BTB would have rocked it, but I think 5 cups is too much, so next time I’ll go with 4 cups, instead.

Such a delightful dinner! The instant pot only took five minutes to bring it all together. Bravo!

C2E2: Will I Be On Camera?

Spotted this gem this morning. There’s something in the tall grass here at C2E2:

The paragraph covering “Will I Be On Camera?” has us scratching our noggins. What does it mean? It could mean facial tracking technology and data sales between customer flow in the exhibitors hall and their subsequent selections on the app for their fandoms. And since all our demographic data is online with ReedPOP, the managing company, they’d have to be dullards to not take advantage of this in all the ways I can think of. So, pinnacle of corruption and deep-cut privacy violations galore! But hey, we all accepted it and frankly my dear, nobody cares or even is worried over it. So I am going to be, in perpetuity (heh heh) the only Watchman shaking his canary cage.

It’s all good. I expect nothing less. Companies are corrupt, all the way to the core. That’s what they are. That is their basic nature. Paging Marcus Aurelius, and Dr. Lecter.

Moo goes the cow. Baa goes the sheep.