Quarterly inventory – 2025 Q4

Dear FutureMe,

Today would be a good day to do a quarterly inventory.

How is your personal life going?

How is your work life going?

How is your Volunteer Service life going?

Future Me

Personal Life

This quarter gave me the opportunity to attend two weekend conferences out of town, and I enjoyed both of them.

I’m a little depressed because cold-and-overcast season is here again. I can see why people like living in the desert. I have relatives who live in the Pacific Northwest, on the coast, and man, that would be depressing nine months out of twelve.

A walk to remember

Mildly amusing, I needed to get some car work done, so I took it to the dealer I bought the car from. This is probably not the best idea because they don’t treat me as well as I would like. No matter, I dropped off the car first thing in the morning, went to a little cafe and got breakfast, and then texted a retired friend in town that I’m in town, and would he mind if I dropped by for a visit? He said, Sure, did I want a ride? No thank you, I’ll walk – I need the exercise; it will only be a 25 minute walk from downtown to his house.

I was about five minutes into the walk when the gastric distress kicked in.

I successfully did not poop my pants. Let’s get that said right up front. But man, it was an excruciating walk: go some number of feet, stop, pause, clamp down, and wait for the spasm to pass. Nowhere along the walk was a public park with a public restroom. I wasn’t going to walk up to a random house (if anyone is even home) and request to destroy their bathroom. Anyway, the mildly amusing part was that at some point, I paused, crossed the street, and paused again right behind a small pickup truck sitting in front of a house. I look up, and on the back of the pickup truck was a sticker that was essentially this:

 

(click the + sign to reveal the spoiler)

Thank you, God, for reminding me You have a sense of humor. 😉

Public sector Uber / Lyft

Another thing that happened is that I became miffed with the City of Visalia for using my tax dollars to play the big shot. Visalia Connect

You see, I have friends who supplement their income by driving for Uber and/or Lyft. I’m 100% in favor of people who want a side hustle getting out there and doing the work – in the private sector. I despise when the public sector tries to undermine them, because they are doing so with your and my tax dollars. If the city wants to spend tax dollars on police and fire, I’m 100% in favor of that. If the city wants to spend tax dollars on a bus system with fixed routes, okay, that’s not the worst spend of tax dollars. It’s not a great spend of tax dollars, but sure, when someone gets so elderly that they cannot drive anymore, that there is a bus system they can use is a public good. Walking would probably be better exercise for them, but sure, it’s not the worst spend of tax dollars.

But Uber and Lyft? Why the hell should the city be trying to compete with that?

WORSE – the City of Visalia contracted with a French company to provide the service.

You can barely make it out on the photograph, but the side of the van says “Operated by RATp Dev USA”. RATP Dev USA is the North American subsidiary of RATP Dev, the international arm of the Paris-based RATP Group that operates public transportation systems worldwide.

My USA tax dollars are enriching a French company to undermine local taxpayers trying to improve their lives with a side hustle.

What the hell

Microtransit is a luxury, not a necessity. Let the people who want to bask in luxury pay their own way at private sector prices. Let local people make some money. Let Uber and Lyft, both based in California, make some money. Don’t be taking money away from our local police and sending it off to Paris, France.

Cynical me thinks that really, some corrupt official at the City of Visalia pushed through the idea to get kickbacks. I have no proof of it, but it wouldn’t surprise me. We’ve had lots of corruption in other areas. But yeah, I wouldn’t mind seeing the officials and bureaucrats behind this tarred and feathered.

Amazon shopping this Christmas (not)

I did just about zero Christmas shopping with Amazon this year. Their “Black Friday” prices are not better value than the rest of the year. I did buy a large Christmas gift from Costco.

Personal mail server

For about nineteen months now, my personal mail server has been rebooting. I just replaced it with a different installation here the third week of December. I expect that it will be rock-solid now.

Way back when, I built it as a combination WordPress (this blog), Dovecot/Postfix, and Nextcloud server. On Ubuntu. Well, the machine I was renting was too small, so I started splitting things off. Nextcloud I moved in-house onto bare metal. WordPress I moved to a different machine, but on Debian. I left Dovecot and Postfix on the Ubuntu box, because it was probably going to be the most painful to move.

When I built my personal mail server before, I used the excellent guide by Christoph Haas (workaround.org) to build it. Back then, I’d struggled a little bit with the difference that Christoph’s instructions were for Debian, and I was installing on Ubuntu, but I made it work okay. Let’s Encrypt certbot was a little tough because I wanted a wildcard certificate for multiple domain names.

But then the server started running out of memory. I built a script that checked for an out-of-memory condition, and if so, I rebooted the box automatically.

That was twenty-seven months ago. Initially, it would go three or four days without rebooting. Nineteen months ago, it was rebooting one to three times per day. Last month, it was rebooting at least three times per day and up to six times per day. I knew I wanted to work on it, but I also expected it to be a big job. Being ruled by a hundred forms of fear, I made it into a larger problem than it was – go figure.

I’d scheduled some vacation time for Christmas and even took off the Friday before Christmas week. Then my mom called me and changed my plans on when we were going (to later). Suddenly I have four days off before I need to be on the road, and that should be plenty of time – no matter how hard the migration went. It actually took about a day.

One thing Christoph doesn’t go into is fail2ban for the webmail. I did have that on the original Ubuntu box, although it was more for WordPress than anything. But for all I know, that was the source of the memory leak. I had also done a sort of funky disk layout, so I was running Restic for local backups. Maybe Restic was the source of the memory leak? I don’t know. But the new box has the email-on-reboot script in place, so I’ll see if it doesn’t reboot on its own any time soon.1

Since I re-enabled comments on this blog with the spam protection coming from hCaptcha, I thought I’d try it with my webmail client. It is working great.

KDE Donation

I’ve donated to the EFF and Internet Archive for close to a decade now – I’m happy to support projects I think are worthwhile. I started donating to the Thunderbird project two years ago in November.

This quarter the KDE project did a request for donations, and I have really liked KDE, so I signed up for a small, $5 monthly contribution. Not very long later, over on the KDE mailing list, their community manager called everyone on X/Twitter Nazis. Maybe I’m the one off-kilter here, but I thought a community manager was supposed to grow their community. The exclusionary stance ends up alienating normal people and stunting the growth of the community instead. Later, the KDE community said they supported their community manager being a bigot.

Yeah, I’m out.

If these people are so infected with TDS that they don’t see the damage they are causing, I’m certainly not going to be an enabler and continue donating to their project. It is sad because I was first exposed to KDE back in 2006, and I like the desktop environment. But perverse behavior should not be rewarded. I’ve cancelled my donation going forward. If a different desktop environment shows up that is as good or better, I’ll switch.

Work Life

Well, I found out I’d miscalculated my retirement date; the pay period ends one week later than I’d thought.

It is mildly amusing to me that February 2026 has perfect alignment, with the first Sunday being on the 1st and the last Saturday being on the 28th. On the calendar, February takes the space of exactly four weeks. May and August 2026 have the worst alignment, spanning six weeks. I did a post this quarter about programming in RPG II under the heading Helping Sales make promises they could keep. May and August were the sorts of configurations that RPG II was not naturally a good fit for.

I got (probably my last ever) Performance Appraisal and my boss was kind. I’ve been feeling guilty about how much work I’m not doing, but my boss said this is a good thing. Proper succession planning means I must train everyone else what to do when I’m not here, and the best way to test my training is to let them do the work.

Volunteer Service Life

The Events Calendar Pro (TEC)

Well, I added TEC to the website for the fellowship, but it has bugs. I’m having to watch for errant behavior and then run a MySQL statement on the server:

DELETE FROM wp_options WHERE option_name LIKE '_transient_tribe_views_v2_cache_%';

DELETE FROM wp_options WHERE option_name LIKE '_site_transient_feed__%';

Still, TEC is remarkably better than Sugar Calendar, so overall it is a win. We might try out ticket sales next.

Flyers for events

One thing where AI has been a blessing and a danger is in adding events from outside sources. I uploaded a flyer for an event to an AI and asked it to convert the flyer into WordPress-compatible HTML. In one minute it did the job that would have taken me an hour or two. So that was great.

Then for another event, I pointed the AI at a series of pages the organizing committee had put up. That went great.

Then for a third event, I did the same, but the information was wildly off. I went to the web page, copied the URL, and prompted the AI to read that web page and create HTML from it suitable for pasting into WordPress. It looked okay, but… the event is at a Sheraton hotel, and this says Hilton… and the Hilton is 25 miles away! Oof. I asked where the information it gave me came from, and it said the web page, “This is what it says”. I put into the AI prompt “No it doesn’t” – and of course, then it apologized and actually read the website and created correct content. Apparently, it had pulled information from ten years ago and had simply run with that. AI is not intelligent (yet).

Contact Form 7 and Captcha

Our office manager is a part of a community of other office managers. One of them did a demo of their website, and that office had an email contact form. My office manager requested we do the same. I’d tried Contact Form 7 back in 2018, but the spam was immediate and incessant – I quickly deleted it.

So now I need to add it back in, but not subject my office manager to the onslaught of porn, supplements, and cheap junk email. The nature of the fellowship is not a great fit for ratting out people to Google as members of this fellowship. Well, if reCAPTCHA is off the table, how about hCaptcha?

I implemented hCaptcha for the contact forms on the website, and it has worked great. I was happy enough with it that I signed up for a personal account and added it to this blog’s login form for user comments. Later I used the same account to protect webmail on my rebuilt personal mail server.

The only thing I’d like better is if there were a pricing plan between Free and Pro. I do believe in paying my own way.2 But for the month of December, I’ve used it twenty times (their dashboard tells me this). I cannot justify the Pro membership at $99 per month ($1,200 per year). The fellowship also believes in paying its own way, but also, we cannot afford $1,200 per year. $60 per year would be ideal – and I don’t actually want any additional features. I know that serving up their images and comparing the results takes CPU cycles. I just don’t want to be a freeloader.

  1. 2026-01-13 addendum: it did finally run out of memory and need to be rebooted after 17 days. ↩︎
  2. Unless you’re going to be an asshole and call me a Nazi for my choice in social networks (duh!) ↩︎

At Microsoft, some stupid people are in charge

I got prompt to try out the New Outlook (preview release). Sure, why not? Probably some of our clients are going to upgrade, and it would be good to know ahead of time what they will encounter.

I chose the button to “switch” and got a prompt to import the old settings. Sure, go for it. I got a progress bar as it imported.

I don’t know if Microsoft invented the progress bar; probably it was on the Apple Lisa (and before that, the Xerox Alto). The first one I ever saw was on Windows, though. They are fundamentally a good idea, and a kindness to the user. “We know this is taking a while, so here’s an estimate of how long it’s going to take, with real time updates.”

And they can be tough to do, too. The amount of time it takes to project when a thing is done isn’t necessarily known ahead of time. Just figuring how long something might take could be as long as simply doing the thing. If you have to traverse a list to find out how long the list is, and the amount of time to work on each item in the list is small, you might have been better off just working the list in the first traversal, and not bothering with the progress bar.

Turns out, the “progress bar” in the new Outlook import settings dialog box is not a progress bar at all. It’s a flag wave. It does nothing except to waste your time and try to keep your attention.

Back in the 1990’s, there was a Spanish language television show, the Xuxa Show, which used to employ people to stand in the background and slowly wave flags. That’s all they did. You could tell the flag wavers were bored. They needed to keep the flags (slowly) waving, but they brought nothing to the show except (visual) background noise. It was known that people’s attention can be grabbed by seeing movement. Since the show was aimed at children, the audience was known to have short attention spans. How to increase attention? Wave a flag.

It’s stupid, but it works.

Someone at Microsoft decided that this import settings dialog box should have a flag wave; but wait – we’ll make it even better: we’ll disguise it as a progress bar!

The flag wave kind of an insult to the audience though. You aren’t worth actual content, but we want to keep you staring at the screen, so here’s a waving flag. I also see this in a lot of news type television shows, where the camera slowly slides around or gradually zooms in. It’s like the Ken Burn’s Effect, except they attempt to be so slow that you don’t notice it consciously. When I do notice it, I’m annoyed. It’s a cheap trick and an insult.

So I’m annoyed that someone at Microsoft proposed a flag wave instead of a progress bar, and, they disguised it as a progress bar, and no-one at Microsoft has enough respect for their end users to say “stop it!”

The year 2022: Late stage 2021 but with new, higher prices

h/t to one of Scott Adams Twitter followers, responding to a challenge to summarize 2022 in the snarkiest way possible.

The whole thing is a psy op run by incompetents at behest of elites inflicted upon the aimless. It came about through sixty years of indoctrination: “Buy this shit from our advertiser; that will make you happy.”

Amazon disappointment – I’ve removed my Echo (Alexa) devices

There was a recent policy change at Amazon which I hate, and as a result, I have removed the Amazon Echo (Alexa) devices and app from my life. It does mean I’ll be carrying my phone with me more.

A part of the Vision Statement for Amazon is “Our vision is to be earth’s most customer-centric company”. Well, this change in policy belies that; trying to annoy their customers for more money is the new practice. That’s the nice way to put it; predation is the stark reality.

So, what happened?

  1. Amazon Music started inserting audio advertising into my morning music play. This happened four days ago.
  2. Amazon raised their prices on Prime membership, and I opted-out at the beginning of October (about one month ago).

I’ve mentioned before that I hate bullies, and dislike advertising. I also really liked setting up my morning wakeup routine to start the day with inspirational music. This change by Amazon crossed all three lines.

So if my morning wakeup routine is spoiled anyway, what really do I need these devices for?

Other than as voice controlled light switches, they are sometimes a convenient voice controlled timer. I don’t need this – it’s a nicety at best.

The bargain was they would listen in, the app on my phone would do tracking, and Amazon would do (whatever) with that data. I assumed they were monetizing it somehow; that was fine – that was the bargain. But now that they’ve crossed the line and spoiled my morning wakeup routine, I’m out.

Really, the only power consumers have is the power of money; either the boycott or favored trade.

Part of the annoyance is that I purchased the .mp3 files outright. I made my playlists out of only these files. Yes, I wanted the artists to get paid for their work, and thought is was only fair that Amazon also got paid for doing the work to set up the deal, import the files and handle the transactions to the artists. My point is that I paid for these files. Anyone that would wrap my files inside their advertising is a bully / predator.

This morning, the advertisement specifically said “Buy Amazon Music Unlimited and you won’t get advertisements”. Or, I can just completely opt out. Spotify costs the same as Amazon Music Unlimited, they do have Joe Rogan, and they have an API I can use to create my morning playlist programatically.

In that way, Spotify is better: I can write a Python script to classify songs into lists, and pick two from the spirtitual category, one from the energetic category, build today’s list and program Spotify to play that. I could even then put the songs in a FIFO queue (perhaps with some randomization). Much better than anything I could get with Amazon Music.

It’s not lost on me that the Open Source community has a project, Mycroft, which would let me connect to my IoT devices without the data tracking which was the part of the Amazon Echo bargain. I’ve already got one Raspberry Pi. All it really needs is a microphone. Guess what I’ve got on order?

Maybe I don’t even need Spotify. Maybe I can just get Mycroft or Home Assistant to play .mp3 files on various Bluetooth connected devices.

Until I get that set up, I’ll have to use my phone apps for controlling the lights and keeping timers. This is a minor inconvenience at worst. And if eventually I hook Mycroft up to a Home Assistant and a Magic Mirror, the better.

Amazon Music fails gapless playback

Not that long ago, my desktop install of Amazon Music Player (which is really their web app inside a Windows .exe wrapper) asked if I wanted to update to the latest version. I did, and that was a mistake. The new program turned on “gapless playback”. This would be nice if Amazon hadn’t fouled up the implementation. I’m not against gapless playback; I’m against gapless playback done badly.

The two problems are:

  1. Gapless playback cannot be disabled.
  2. The gapless settings are per-song, and are sometimes wrong.

Problem Number One is annoying, but can result from an immature developer, or someone on the design team who deep down inside is fearful that people don’t respect them. Because people do not do what he or she wants, he or she becomes a bully. Either way, the implementation of a new feature without the ability for the end-user to turn it off is arrogant.

One of the Tenets of IT is “Have the user show you the problem, often it is the user doing something in an unusual way.” Weird things happen. So to implement a new feature without giving the user the option to turn it off is the assumption that the developer is smarter than God, and things could never be imperfect, so no, plebeian, you don’t get a choice in the matter.

In this case, it isn’t the user doing something in an unusual way; it is Amazon’s algorithm for tagging the end of the song for gapless playback that fouled up.

I know that mistakes happen; this is normal. This is not a surprise. Therefore robust programming behavior is: make new features optional. Or at least have a back-out plan, for when things break instead of getting better. Amazon did not do that here.

Like I said, arrogance.

Problem Number Two wouldn’t be a problem if Problem Number One weren’t present.

Problem Number Two means I get a better music experience from YouTube than from Amazon Music Player. I paid you money for this song, Amazon. You should be ashamed of yourselves.

The problem showed up immediately after I did the suggested “upgrade” of the new version of Amazon Music Player on Windows. A quick search indicated that yes, gapless playback is a new feature that was added, and, no end users do not get a choice for this breakage to be enabled or disabled. It is enabled, end of story, go kick rocks if you don’t like it.

I should spell the problem out fully.

Context: I have playlists defined, and I start a playlist while working from home. It’s a particular set of songs with no vocals. It’s also a long playlist, since I don’t want to hear a song too many times. Sometimes I click the “randomize” button instead of the “play” button. Five or six hours later, I need to start the playlist over again.

Problem: After the “upgrade” some of the songs in the playlist are truncated by a large number of seconds, as the playlist advances to the next song early. Instead of a zero second gap between the next song and the current one, it’s a negative number of seconds. 30 seconds? 45 seconds? 60 seconds? I don’t know. It’s not like five (or less).

This did not happen prior to the “upgrade”. It does affect particular songs, whether the playlist is in order versus random play mode. I notice it in two or three songs (of 105 in the playlist I play); but with the one song, it is extremely noticeable because the song is great, and it has a nice ending – which I never get to any more! This song comes on, I’m rocking out, and pow – next song without warning. Man I hate this.

The version prior to the upgrade was better, because every song ended after it fully played. There wasn’t gapless playback, though. There was about a one second pause between songs. I understand that for some music, gapless playback is super; I just don’t happen to have any of those albums. My gapped playback was fine for me.

I also have this same song in another playlist, and it gets truncated there too. This is why I think the end-of-song tagging is connected to the particular track.

This does not happen if I play the song on my iPhone (not in a playlist). It does not happen if I play the song from my Amazon Echo. It only happens in the Amazon Music Player on Windows.

I did open a few enhancement requests / feedback comments (and even put a request in Amazon’s public forum), but it’s been almost two months and nothing has happened.

So here we are; me whining on the Internet. Yay (not).

Overall, I really like Amazon Music. I like that I can buy an MP3 file and download it. I can copy it to a USB stick and plug that into my car. I can wrangle a snippet of an MP3 into an iPhone ringtone. The playlists are not terrible to manage (although they must be managed on my iPhone) (which isn’t a great interface because the screen is too small to make things easy).

Anyway, if you want to hear a song with a great beat (without getting cut off early), here it is on YouTube: Timmy Trumpet and Scndl – Bleed It’s in the category of EDM (Electronic Dance Music) so it might not be to everyone’s taste; but I love it.

I can’t link to it on Amazon because you’d have to sign up with Amazon’s Spotify clone to hear it. I bought the single from Amazon, so that’s how I have it in my playlist.

This also happens on Harold Faltermeyer – Axel F

Another song it happened on was Old Skool. I watched the Amazon Music Player, and it cuts over to the next song with 25 seconds to go. In other words, Amazon Music Player knows the song should be 3 minutes 44 seconds long, but at the 3:19 mark, it skips to the next song.

Another song that fails is Crab Rave by Noisestorm. This one is truncated 12 seconds from the end.

It is information that Amazon Music Player playback failures (truncation time) differ per song.

Everything would be fine if you would just do everything I say

This is, in essence, a form of bullying.

Lately, I see it everywhere.

I don’t know if it’s always been this way; but I think not. I think that as legacy media is in it’s death throes, they have amped up the noise something terrible. Or maybe they are just in servitude to their masters, who want to bully the planet into greater servitude.

Anyway, people feel a need to push their idea of nirvana onto other people. They wouldn’t call themselves bullies, but if you don’t want to be called a bully, you need to not be a bullly.

Latest bully: Mozilla Firefox, with a push of a fucking tab that starts with “Why am I seeing this adorable red panda?”

You assholes. Stop it! I don’t care and am completely annoyed that you idiots think my time and attention are your playthings. Fuck you and the horse you rode in on.

Actually, I kind of feel bad for the horse, because the poor horse didn’t ask for you to ride in on it.

If you’d asked the horse, it would have said “I don’t want to be ridden by bullies.”