Amazon Echo abandonment, a month in.

I’m trying Apple HomeKit stuff instead. It is very disappointing. Amazon understands “cloud” and Apple does not. Or maybe Apple’s heart just isn’t in it. Perhaps someone there felt a need to compete with Amazon, so they started HomeKit. But, once the reality hit of how much change it would take to do a great job, they grew disheartened and gave up.

Either way, the Apple HomeKit stuff is a Yugo to Amazon’s Porsche.

Of course, the Apple stuff is as expensive as a Porsche, so it’s a bad deal.

I was watching the television show Silicon Valley and at one point they openly mocked Apple that Apple Maps was so bad. Worse was Microsoft Zune which made me LOL. Point is, Apple then decided to make Apple Maps good, and today it is. In fact I had an address here in town I needed to get to, and Google Maps completely failed it. So I tried Apple Maps and it worked. That was quite a good accomplishment in my view: Apple delivers a better app than Google.

But HomeKit today is no bueno.

It increasing looks like I need to invest some time and effort into

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.

PHP Upgrade for Bitnami Lightsail WordPress

Turns out the way to upgrade is to spin up a new box (or two) and migrate.

Step 1) Spin up a new instance. At the moment I’m using Amazon Lightsail.

Step 2) assign a DNS entry to it. At the moment I’m using Hover. I do have the DNS entries set to a 15 minute time-to-live. Whatever IP address that Lightsail assigned is what I put into Hover.

Step 3) Set the new machine to know it’s new host name.

  1. Of course, the what-used-to-work is different now. The command is now sudo /opt/bitnami/bncert-tool

Step 4) Get logged in to the new instance of WordPress. BTW, the login user name has changed. It used to be bitnami now it is user

Step 5) Update WordPress to the current version, if it’s out of date.

Step 6) Delete the plugins in the base image that won’t be migrating over. BTW, one of the plugins, TaxoPress, apparently had a different name prior to updated and would err out instead of deleting. Do upgrade the ones I’m keeping.

Step 7) I use NS Cloner and NS Cloner Pro to migrate between servers. I like the people there; they did actually help me when I was having an error getting it to run. I was migrating a site with All-in-One Event Calendar by and apparently that plugin just does not play nice with database records or something. I am lucky that I bought a licence a long time ago; since then they have had to raise their prices. As a tool, it has been working great, but the price increase was really steep. If I did this for a living, I’d have no qualms about paying the annual license fee.

And then ….

The problem is that I just migrated to, but I really want the web site on

Okay, so there are two ways out of the problem here.

Alternative 1 is to go to the old and run sudo /opt/bitnami/bncert-tool and change it to something else and then go to and run sudo /opt/bitnami/bncert-tool and change it to AND THEN do database search and replace to swap out to be instead – all on the new machine. My experience with these sort of database search and replaces hasn’t been wonderful. There’s also the problem of being logged in to the web site I’m changing the name of; at some point I cut off my own feet while I’m trying to stand on them (DNS -wise).

I went with alternative 2:

  1. In Lightsail, detach the static IP that is pointing to.
  2. In Lightsail, delete machine (old)
  3. In Lightsail, spin up (new)
  4. In Lightsail, attach the static IP for to this new machine.
  5. Run sudo /opt/bitnami/bncert-tool to assign the machine it’s new name
    1. Note that with alternative 2, the Hover domain name registration hasn’t changed. The public IP is on a different box (running an out-of-the-box WordPress install), but from the DNS point of view, this is simpler – nothing has changed. DNS name is still pointing the same IP address it always has.
    2. With alternative 1, I had the problem that the old box “knew” it was, so I had to run bncert-tool to change it to something else. If I didn’t, and I just ran bncert-tool on the new box, trying to claim, the Let’s Encrypt people would complain, correctly, that this domain name is currently in use on a box it can talk to right now, and that box has a different IP address. Am I trying to steal it’s identity?
  6. Do the top steps 4, 5, 6, and 7 again: Update WordPress, plugins, and migrate with NS Cloner Pro.
  7. Delete the running machine – it was only every going to be a temporary container anyway.
  8. Change all the Hover entries to point to the same IP as

My site is pretty small, so the migration with NS Cloner Pro takes under five minutes. If I had more data and it was going to take longer, I’d probably figure out how to enable FTP so that NS Cloner Pro could use that.

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.

Amazon Transcribe gotcha

I needed to transcribe some minutes from a meeting, and only one person was speaking during a particular three minute piece. So I copied that segement out to it’s own MP3 file.

I uploaded the file to s3:// and ran a default transcription job. Whoops.

By default, I mean that, mostly I clicked Next, Next, Next. I supplied a job name, an input file, and an output file. (That I used an output file location other than default means it wasn’t exactly default settings).

After the transcription job was done, because I had not specified the quantity of speakers, it left out the 'speaker_labels' data from the JSON file.

I have been using to simplify the JSON into text, but it does not handle files with missing speaker labels.

Sigh. Now I have to re-do the transcription, which will incur another charge. Those speaker_labels are all over the file when present.

For what it is worth, the tasks were essentially:

  1. Upload the file to S3
    1. aws s3 cp /home/david/Documents/some_path/review_of_previous_board_meeting.mp3 s3://some_s3_bucket/
  2. Log in to Amazon Transcribe and create a job
    1. Job name was review_of_previous_board_meeting
    2. Input file was s3://some_s3_bucket/review_of_previous_board_meeting.mp3
    3. Output file was s3://some_s3_bucket/review_of_previous_board_meeting.json
      1. This did require clicking the button “Customer specified S3 bucket”
      2. I used the AWS CLI commands to copy between my local machine and the S3 bucket, so it is easier if I name the bucket I want the files in.
    4. Click Next
    5. THE IMPORTANT PIECE: Audio Identification = On, and audio identification type = speaker identification
      1. Stupidly, you have to define the count of speakers, and 1 single speaker is an invalid minimum. So I have to tell it there were two speakers, when I had clipped the MP3 file to only contain one.
  3. Download the file from S3
    1. aws s3 cp s3://some-s3-bucket/review_of_previous_board_meeting.json /home/david/Documents/some_path/
  4. Clean up the transcription
    1. /home/david/Documents/some_path/review_of_previous_board_meeting.json
    2. And then runs without errors. The result is file review_of_previous_board_meeting.json.text

Amazon Echo as an alarm clock with playlists

Don’t bother.

It can be done, but man, what a pain in the ass.

First, create your play lists in the Amazon Music App. I prefer to have the Amazon Music App in offline mode, but for this step it must be in online mode. This makes sense, because the Echo devices are online devices.

Creating a playlist

  • Click on Library, then Playlists, then +NewPlaylist
  • Give your playlist a name. I’ll use Friday Morning Playlist
  • Hit Save
  • Hit Done
    • This is because, immediately after creating a new playlist, the only songs available to me are Recently Played with no option to pick a different list. From my point of view, this is a UI failure.
    • I was doing this on my smartphone. The process may suck less on a desktop.
  • You will be on the name of the playlist with a message that you have not added any songs yet. Click the three vertical dots button for more options.
  • Click the +AddMoreSongs button
  • Now you have your choice of Artists, Albums, or Songs
    • What songs do you want to wake up to, in what order? You decide. 😍
    • I should probably point out that I had previously gone into the Amazon Music App and fully populated “My Songs” in my library. If you haven’t done this, well it is one more step to do. The only good thing about this is that you can get the Amazon Music App on your desktop computer, and (while in online mode) it syncs up to AWS.
  • Click Done

At this point, you want to exit the Amazon Music App on your smartphone. It wouldn’t hurt to give it a few seconds to sync up to AWS before exiting. The reason you need to exit the app on your smartphone is because it is listening, and you are about to give a voice command to your Amazon Echo. If you don’t exit the app on your smartphone, it will respond instead of your Echo.

Implementing an alarm with playlist

  • Speak at your Amazon Echo “Alexa, set alarm for every Friday to play Friday Morning Playlist”
  • Your Echo will respond with “Alarm set for what time?” Say your alarm time.
  • Your Echo will respond that it has set an alarm.

Checking your work

  • Open the Amazon Alexa App
  • Find your way to Alarms & Reminders
  • The things I have had to look for was if the alarm was set for every week versus do-not-repeat, and if it was actually set for the playlist I want. It seems to me that the programmers at Amazon don’t want to play me what I want, they want to play me what their algorithm comes up with. I suspect that they think that by forcing new songs down my throat, they will entice me into signing up for their monthly service for even more variety.

Follow up commentary

I am happy sad that I can now no longer wake up to exactly the songs I want to, in order. All is not perfect, however. My life is happiest when I have a particular routine, and that routine starts with waking up. What I would like to do is:

  1. Alarm clock plays Song Number 1. I wake up and (mentally) sing along with the song.
  2. I hit the snooze, climb out of bed, and start the shower on hot water, at a trickle.
  3. Climb back into bed, and start praying. Thanks first, grattitude list second, and people on my prayer list third.
  4. Snooze timer expires, and more music plays. Maybe I sing along, maybe I hit snooze again and go back to praying.
  5. Repeat step 4 until it is time to climb out of bed and hit the shower. I also have some Alexa routines which turn on the lights and brighten them as time passes.

So the problem is the “snooze” function. If I speak at the Echo device “Alexa, snooze” then it does so; but, when the snooze timer expires, the Echo starts back on Song Number 1 of the playlist.

Kind of makes the playlist work pointless.

Not entirely, however. “Friday Morning Playlist” is not likely to be mistaken by Alexa for some random song, and, is short and sweet and understandible. If I were to say “Alexa, set alarm for every Friday to play Timbuk3 The Future’s So Bright, I Gotta Wear Shades” I can almost guarantee you that Alexa would not get it. Yes, I have tried. Wow did it take a lot of tries to get Alexa to finally figure out which song I was referring to. In retrospect, it would have been a lot easier to create a playlist of one song with a short sweet name and use that.

I did try “Alexa, pause playlist for six minutes” That was interpreted as “Alexa, stop” 😒

So a good snooze function still eludes me.

Also, I would like an Echo device with a snooze button, and the LCD display like the Echo Dot with Clock except with the good speaker of the six inch Echo with premium sound.

Apple is smarter than I am so I’m buying an Amazon Echo alarm clock

It’s been a week, and apparently that was Apple Music’s reset timer for re-enabling all the songs I told it I hate.

Okay then. Time to take it to the next level: delete every song in iTunes. THAT will keep the stupid app from offending me.

Problem is, I used some of the songs in the iTunes library as my alarm clock songs. I loved that feature. But this is the dilemma: keep iTunes and wake up to inspirational music, but, also have Apple Music assault me in my car when I don’t pre-launch some other audio app. I can have one, but would have to accept the other too. That feels like a violation I shouldn’t have to put up with.

The Apple Clock app does play ringtones even with the music library empty – because I didn’t empty the ringtones library. This would have been a nice work-around, but the songs I listen to are 3 – 4 minutes long, and ring tones are limited to 30 seconds.

How about a third option? Instead of using my iPhone as an alarm clock, I can buy a stand-alone alarm clock that knows how to access my Amazon Music library. That would be Echo Dot (4th Gen) Smart speaker with clock.

This still leaves me in a bind when I’m traveling. Normally, every day or so I go through all the open apps in my iPhone and “swipe up” to get rid of them – all of them. If I need an app I can launch it again. The Apple Clock app doesn’t have that choice, so it is always running (which is a good thing). My alarms in the morning were set it once and forget it which was pretty nice. But now, none of those alarms are going to work*.

This means that when I am traveling, I’m going to have to 1) remember to be running the Alexa app on my iPhone when I go to sleep, and 2) set alarms to launch in the Alexa app “on this device” which is the iPhone. This is definitely worse than when I was able to rely on the Apple Clock app.

It sure would have been better if Apple would give me an option of which app to launch when some Bluetooth device (my car) announces it is ready to play.

Still, if this is the worst thing to happen to me in a week, I’m living a pretty charmed life.

*It would more accurate to say they will launch, but no sound is going to come out of them, because the Apple Music Library has been emptied.

The Helm email server – now blocked by Microsoft

This is an automated email from your Helm Server.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For information about why this might happen visit our support
article here:

<>: host[]
    said: 550 5.7.1 Unfortunately, messages from [] weren't sent.
    Please contact your Internet service provider since part of their network
    is on our block list (S3140). You can also refer your provider to
    [] (in reply to MAIL
    FROM command)

I don’t know who is at fault here. On the one hand, I’m sympathetic to the problem of spam. I am an email administrator, after all.

And by the way, it used to work. Last time I successfully sent mail to the same guy was on May 7th. So the change has been within the last week.

If Microsoft really is getting spam from then I can’t blame them for blocking it.

On the other hand, the link they provide says essentially “sign up with ReturnPath, Inc, and we won’t piss on your head any more”. I have no idea how much an investment Microsoft has in ReturnPath, nor do I know what ReturnPath’s revenue model is.

I do not know how many IP addresses Helm uses for their outbound mail. It could be just the one. If that’s the case, I’m screwed. If they have multiple, then they need to figure out who the bad actors are, and move them. Bad guys over there, good guys over here.

That assumes that there are bad actors. I don’t know that spammers would actually go to the expense of buying a Helm email server. It wasn’t inexpensive. To just send spam, I could hire a cloud mail server far cheaper. But if someone is stupid enough to think they can make money sending spam, then maybe they are stupid enough to think that the Helm service would give them a pass. And if they did, and Helm doesn’t try to scan and block for such a thing, then yeah, it could be that I side with Microsoft here. I’d hate that; but I’d have to admit that they are on the correct side of the problem here. is Amazon, of course. Helm is sending the mail from AWS. Of course, the Amazon model is that they will sell their services to anyone; including dirty filthy spammers, may they all get Covid-19 and expire painfully. If Amazon has lumped the Helm customers in with their spammer customers, then there may be nothing Helm can do about it.

But then, I have no way to know if Microsoft is simply pissing on email senders for using AWS. It wouldn’t be the first time Microsoft sabotaged customers for using a competing product. Is this yet another example of “DOS isn’t done until Lotus won’t run“? Does Microsoft happen to be running ads now, with a picture of a crash helmet, and the caption “Wouldn’t you rather host your email with a cloud provider that isn’t on ReturnPath’s block list?”

Anyway. I’ve moved most of my email over to the Helm email server, and now it’s turning out to be a bad thing. Perhaps my corporate overlords are trying to punish me for straying from their cage.

New site steps

Note this is for a new WordPress Multisite

  • Log into AWS Management Console
  • Lightsail Create a new instance (Linux, WordPress Multisite)
  • Create a new static IP address
  • Assign the static IP address to the new instance.
  • Buy a new domain name (if I don’t have one available) – in this case,
  • Update DNS with the new static IP address
  • ssh – i path-to-pem-file-for-AWS-instances
  • Make Ubuntu like OpenSUSE
  • Log out, and log back in (get the benefits of pageup for history search, and .. as the cd .. alias)
  • cd /opt/bitnami/apps/wordpress
  • sudo ./bnconfig --machine_hostname
  • sudo mv bnconfig bnconfig.disabled
  • sudo apt upgrade
  • sudo init 6
  • wait for reboot to finish
  • ssh – i path-to-pem-file-for-AWS-instances
  • sudo /opt/bitnami/bncert-tool

At this point, I get a warning:

Warning: Custom redirections are not supported in the Bitnami WordPress Multisite Stack. This tool will not be able to enable/disable redirections.
Press [Enter] to continue:

An updated version is available. Would you like to download it? You would need to run it manually later. [Y/n]:

sudo /opt/bitnami/bncert-tool

Welcome to the Bitnami HTTPS Configuration tool.


Please provide a valid space-separated list of domains for which you wish to configure your web server.

Domain list []:

The following domains were not included: Do you want to add them? [Y/n]:

The interesting thing here is that (if I’m interpreting things correctly) that WordPress Multisite really does not want one of the subdomains to be – yet here, Bitnami, through the Let’s Encrypt really does want one of the domains to be www

I hit <Enter> which signifies yes

Changes to perform

The following changes will be performed to your Bitnami installation:

  1. Stop web server
  2. Configure web server to use a free Let’s Encrypt certificate for the domains:
  3. Configure a cron job to automatically renew the certificate each month
  4. Configure web server name to:
  5. Start web server once all changes have been performed

Do you agree to these changes? [Y/n]:

I hit <Enter> which signifies yes

Create a free HTTPS certificate with Let’s Encrypt

Please provide a valid e-mail address for which to associate your Let’s Encrypt certificate.

Domain list:

Server name:

E-mail address []:

I put in my personal email address

The Let’s Encrypt Subscriber Agreement can be found at:

Do you agree to the Let’s Encrypt Subscriber Agreement? [Y/n]:

I hit <Enter> which signifies yes

And after a bit of work, the configuration of my new web site to be SSL protected is complete.