Booking.com and Red Roof Inn Dearborn Michigan did the right thing

I screwed up. I had put in my cancellation on my airline flight during my lunch break months ago, but was running late. I couldn’t find the email for the hotel. Turns out it was because it was with Booking.com instead of my legacy booking site. And then life got distracting, and I forgot that I needed to deal with this.

The morning that I was supposed to check in, I got a reminder email. D’oh!

I called them up, and explained that I needed to cancel, and yes it was my fault. I fully understand that they deserve their cancellation fee. The Booking.com agent also asked that I telephone Red Roof Inn, Dearborn, and let them know I wouldn’t make it. I did.

They refunded me in full. That was very gracious of them. I am thankful. Although I doubt that I will ever have a need to go to Detroit for the rest of my life, if I were to go, I absolutely would book again with Booking.com and the Red Roof Inn, Dearborn.

The other thing the whole thing reminds me of, is that Search in Mozilla Thunderbird is really poor. I’m spoiled, of course, because in my work life, the email system I run has an excellent indexer + search. Rather than be a failure and cause these people the headache of having to refund (and waiving the cancellation fee), I would rather have found the right email and gotten the cancellation done in a timely manner.

(UPDATE: Delta eventually did the right thing)Airline travel insurance is a scam – we should never have bailed out AIG

Important follow up to this post.

I had bought a ticket to Detroit back in September, and I did buy travel insurance. The insurance company, AIG, played me for a sucker. That is a lesson learned.

The event I was going to attend was cancelled due to the pandemic. This is pretty much the definition of unforeseen event I had no power over; or in other words, the reason one buys insurance.

AIG however, is saying that Delta has offered me a credit to use in the near future, therefore I have not suffered a loss, so go kick rocks, stupid.

The event was cancelled, and it is only held once every five years. The next one won’t be in Detroit, either.

I have zero plans to fly anywhere in the next, well, ever. I mean, it could happen. The last time I flew, it was to attend a funeral. So maybe if someone in my circle of friends gets deathly ill, I’ll need to fly. But those are anti-plans.

The deceit AIG and Delta are implementing here is that a flight to anywhere is as valuable as a flight to a specific place at specific dates – which I am now denied the opportunity to, because of things beyond my control. I cannot wave a magic wand and recreate this event some time in the future.

I’m just out the money. Salt in the wound is that I stupidly paid an additional fee for insurance for the flight.

It was a mistake to bail out “too big to fail AIG”. I hope when it comes time to bail out Delta, we refuse that. And if AIG can suffer some amazing losses, that would make me smile too. Certainly I will try to never be a customer of either of them, ever, in the future.

Roku survey email – willfully blind? Or ignorant?

Got a survey email from Roku. “Take our survey, maybe win a prize.” Sure, I like Roku. The guy that started it had done the original ReplayTV and I loved those. Autoskip commercials? I’m in.

“What reasons do you most enjoy streaming on a Roku? Pick an answer, or we won’t let you continue the survey.”

1) “No fucking commercials”

2) “None of the above”

Oh wait – neither of those are an option. I’m out.

The options they wanted to railroad me to were (pick one):

  • Choice (content)
  • Free (I do subscriptions, they are not free)
  • Choice (time-shifting)
  • Choice (content)
  • Choice (time-shifting)
  • Higher quality. This one is actually interesting, but not the reason I go with streaming. I enjoy the higher quality, but that was really more about the display resolution that came from upgrading the hardware.
  • “It’s cheaper” – well, this one probably comes closest, but in no way does it imply the real reason it’s cheaper. I value my serenity, and all commercials (promotion of consumerism) are exactly the opposite of serenity. They are active destroyers of serenity. That’s their job. So for me, no commercials is cheaper from a stop-wasting-my-time point of view. But “It’s cheaper” implies dollars, and streaming Netflix and Amazon Prime is not less dollars.
  • Choice (content)
  • Choice (content)

I don’t need to fill out your survey, Roku. And from your ReplayTV history, you should remember and embrace your past of getting rid of commercials. That’s what people really want.

Why did you send out a survey that ignores the obvious?

Willful ignorance implies you have an advertiser. They want to hear that they should spend advertising dollars with you; so you are sending out a survey to bolster that position. Sorry, my answer is that advertisers suck, and I’m happier in my life without them.

Or it could be that you’re just Ignorant. What do people really want? Are you too busy for some introspection to figure it out? Here’s a question to ask:

“If you have the choice of watching something with commercials, or without commercials: which would you pick?”

No other factors; just the simple choice: which would you pick?

And now you are a little less ignorant. You’re welcome. 🙂

Update on my last rant (Perl PAR::Packer sucks) – it got better, thanks to HÃ¥kon Hægland on Stackoverflow

I was quite frustrated, because I really needed to be able to deploy a utility to about 30 people, and I could not see any way out.

I’m not sure, but I think the reason it didn’t work is that the author of PAR::Packer thinks including shared libraries are out of scope. For all I know, they are really out of scope. But I needed the shared SSL library to be able to perform the task.

I put a request out on Stackoverflow, and HÃ¥kon took it as a challenge. He was successful, and I am hugely thankful for that.

My failure was not seeing that App::PP::Autolink was a thing. HÃ¥kon asked the maintainer of PAR::Packer (Roderich Schupp) the question I didn’t think I could ask. Roderich knew the answer, and supplied it. HÃ¥kon used that to educate the world (and me) that yes there is an answer: App::PP::Autolink.

Thank you, HÃ¥kon. You made my world a better place. I hope your work makes many people’s world a better place.

Wow Perl PAR::Packer sucks

I presented a problem to my boss, where I need to let about 30 desktop technicians run some code I’ve written. My boss said when he is in that position, he writes it in PowerShell, and uses PS2EXE. This is good idea. I found that in the Perl world, the same idea is in PAR::Packer.

A super simple script, running on my Linux box, takes less than one second to run. Open up an SQLite database, fetch all 20 records, sort them, print them. Simple. Less than one second.

The Windows .exe version takes 19 seconds.

Every. single. run.

There is no way that the on-call technicians who have to run the scripts I’m writing are going to be happy with that. And it would make me feel bad, inflicting that sort of this-is-time-of-my-life-that-I-am-not-getting-back on some poor soul who got a call at two in the morning, to deal with whomever for whatever.

Normally, on Windows, I used WinBatch. Did so for 20 years. But alas, WinBatch was always a for-pay product, and eventually hobbyists wrote AutoHotKey (or was it Auto-It?) (for free) to do everything WinBatch does. Also, the real goal was to take my Perl scripts that use REST to get and put JSON or XML at a web service. WinBatch has lots of old extenders, but rarely any new ones. I don’t know of a REST extender for WinBatch. I don’t know of anything in WinBatch that does what DBI does in the Perl world. The WinBatch answer is to install MS Access (or whatever) and use COM to drive the actual database client. Avoiding installing software is part of the goal here. I need something That Just Works.

And preferably works in a second or two; not twenty.

I’ve got REST modules written in Perl. I’ve gotten far enough in my Perl skills to put standardized code in modules, and then use those modules. But that meant putting modifying the search environment for finding modules. Guess what doesn’t work with PAR::Packer?

Okay, crap, I can move all my modules into the root directory where my scripts are. This is stupid, but I’ll do it.

And then I find that the execution speed of even a simple script is terrible.

Searching for a solution, of course the answer is “You’re doing Perl wrong, if you don’t want to install an entire development environment on every workstation”.

Well, thanks for nothing. Apparently I need to give up Perl and start learning PowerShell. PowerShell does rather look like Perl, so maybe it won’t be too terrible of a transition.

Donald Trump was better when Steve Bannon was whispering in his ear

In one of the books in The Hitchhiker’s Guide to the Galaxy series the character Zaphod Beeblebrox is elected President of the Galaxy. The description (from Wikipedia):

He was briefly the President of the Galaxy (a role that involves no power whatsoever, and merely requires the incumbent to attract attention so no one wonders who’s really in charge, a role for which Zaphod was perfectly suited).

source

Donald Trump was made for the USA Presidency.

Now, there’s a whole other argument regarding Hillary Clinton as a truly terrible candidate. The mainstream media dearly wanted The Donald to be Hillary’s final opponent, because there was no way that Hillary could lose against Donald effing Trump. That’s worthy of a whole other post. Putting this aside, what else caused Donald Trump to win?

I think it was because Donald Trump knew that his role would involve no power whatsoever, and merely require him to attract attention so no one wonders who’s really in charge. And Donald (or Steve) saw that Twitter was a new form of communication. One so new, so significant, and so free of gatekeeping that they could wield it masterfully before any of the old guard caught on.

I think Donald Trump has been in business long enough to know to surround himself with super competent people. Steve Bannon was that expert in this new field (to Donald) of running a presidential election campaign. Trump listened to him, and the results were great.

Hillary was the weasel government insider, so Steve Bannon and Donald Trump cast Donald as the opposite.

Do government weasels make promises? No. Therefore, Donald would make 100 promises to be carried out in the first 100 days. And immediately after the inauguration, he tried really hard to make those come true. That was while Steve Bannon was still whispering in Donald’s ear.

Do government weasels sell out to corporate interests, and thus become the lackeys of big money? Yes. So Steve and Donald tweeted to high heaven that The Donald is financially independent and beholden to no-one.

Did this particular government weasel happen to be married to the guy who backstabbed all of the Midwest by signing legislation to ship their jobs and careers to Mexico, Canada, and China? Yes. So Steve and Donald tweeted “Let’s Make America Great Again”. Hillary (late in the campaign) had said that by electing Hillary, you’d get Bill, too (she would put him in charge of the economy). So first, Bill outsourced the manufacturing jobs; what was left to outsource? Engineering and tech services? “Make America Great Again” was a good foil to it’s opposite.

Did this particular government weasel call off the rescue team trying to save the Americans in the Benghazi attack? Someone decided that the rescue team should be grounded. That all the weasels involved dodged as many questions as possible was grist for the Trump Campaign mill. Particularly damning was the administration’s blame that the attack was due to a Youtube video. Anyone with a calendar and a brain could identify September 11 as a significant date.

Emailgate was another opportunity for Steve and Donald to highlight the reality that Hillary is a weasel. And they did so.

After Donald Trump was elected and inaugurated, he and Steve Bannon went to work to keep those campaign promises he had made. I remember being in a management meeting where it was announced that the Trump Administration would no longer fund employees who aren’t there. Turns out that some departments have positions to fill, haven’t filled them, but bill for the funding money anyway – and the previous administrations paid it. These unfilled positions became a sort of a slush fund; and some departments had up to 20% of their positions unfilled.

Then there was the new executive order that every new regulation can only be adopted when two other regulations are removed. To me, this is a clever way to trim back some of the cruft that has accumulated over the years. It is neither drastic nor urgent; and, it allows the regulators to figure out on their own how to clean up the worst of the trash still on the books.

One of the themes of the Donald Trump campaign was that Donald was elected to “drain the swamp of corruption” that is Washington, D.C. This was a great message, and one I’m sure Steve and Donald agreed would work well.

And then, someone figured out how to drive a wedge between Steve Bannon and Donald Trump. Steve left. With Steve no longer whispering in Donald’s ear, a power vacuum developed. Who filled it?

The Republicans.

The very alligators Donald was supposed to get rid of.

And the reformation by way of electing an outsider, is dead.

At least Donald is still (somewhat) aware that his role involves almost no power, and merely requires him to wield Twitter to attract attention so no one wonders who’s really in charge; a role for which Zaphod, er, The Donald, is perfectly suited.

iPhone fails at phone calls too much

Around April 1st, T-Mobile and Sprint called the merger done. Also around that time, there was an iPhone update. Since then, my iPhone has a bad time receiving phone calls. Not always, but way more than ought to happen.

I think I’ve seen this four times since the beginning of April. The symptoms are that the iPhone rings, to let me know of an incoming call. I see that it is someone I want to talk with, so I hit the button to accept the call. The call stalls in the not-quite-complete starting phase. One time, I could hear a friend on the other end, saying hello and could I hear him.

The iPhone is just completely stuck. The call cannot be ended. The call cannot be removed from the active list by swiping upward. The only thing I can do, is to power down the phone.

I paid way too much money for this telephone to fail at phone calls.

I’d like to also mention that before that (not much before – maybe a month or two), and still today, sometimes iMessage loses it’s brains too. The symptoms are very similar: non-responsive, and closing does nothing. For iMessage, I have to go into airplane mode, then power down, then power up, and then get out airplane mode. Finally, iMessage recognizes that it didn’t actually have a connection before, so it tries again and this time doesn’t fail.

For as much as this device cost, I expect better. If I wanted a bad device, I could have gone with four different bad devices for the price of this one.

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: 
https://support.thehelm.com/hc/en-us/articles/360024507754
                  Helm 

<tccof@hotmail.com>: host hotmail-com.olc.protection.outlook.com[104.47.9.33]
    said: 550 5.7.1 Unfortunately, messages from [35.162.166.161] 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
    http://mail.live.com/mail/troubleshooting.aspx#errors.
    [VE1EUR03FT024.eop-EUR03.prod.protection.outlook.com] (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 35.162.166.161 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.

35.162.166.0 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.

Minor traffic accident

No injuries, thank God. But some serious resentment at the old loser guy on the bicycle. First, he chose to deliberately cut off the kid in the minivan; then, he laughed at the kid when the kid honked at him. This infuriated the kid, but that was bad, because the kid’s attention was no longer focused on where the minivan was heading.

I happened to get a dash cam for Christmas, so here’s the video.

Full screen is good, because I figured out how to highlight the bicyclist while he was still on the sidewalk.

My little scream at the end is freaking hilarious. I’m sure to be a chick magnet now.

My car is pretty hurt. The fender was just barely not rubbing on the tire (and sometimes it was). The steering wheel needed to be at about 2 o’clock to drive straight down the road. I didn’t go faster than 25 MPH the whole way home (which made people behind me wonder).

Bitnami phpmyadmin

Just a quick note for me to easily find and remember how to access PHP My Admin on a Bitnami WordPress instance

From the command line on my local machine:

ssh -4 -N -L 8888:www.gerisch.org:443 -i $insertpathtopemfilehere nottheadmin@gerisch.org

And then in a browser:

https://www.gerisch.org:8888/phpmyadmin

Lastly, remember that the login name to phpmyadmin is root (not the Bitnami application password, or any other user name).

Because public Internet access to PHP My Admin would be a Very Bad Idea, the Bitnami WordPress image is configured such that PHP My Admin refuses to run, if the requests don’t come through www.gerisch.org

This is a good idea.

But what that also means is that I need something listening on my www.gerisch.org address, that can forward the network traffic to the remote web server.

ssh -4 says use IP v4 addresses only (suppresses IP v6 errors if your machine doesn’t have that).

ssh -N says do not execute remote commands (all we’re going to be doing here is port forwarding).

ssh -L says local to remote port forwarding will be done.

8888:www.gerisch.org:443 says the local port to listen on is port 8888, the local address to listen on is the home address of www.gerisch.org, and when listening on the “server” www.gerisch.org, know that it will be listening for port 443 traffic (https instead of http). Another way of thinking about this is that your web browser that is throwing HTTP GETs and PUTs will be throwing them at port 8888, since that is the port the service is listening on. But when the traffic is thrown across the Internet, ssh is going to throw the traffic to www.gerisch.org port 443. Yet, www.gerisch.org:443 is really just a front for gerisch.org:443

ssh -i says to use a public/private key pair for logging in (instead of a password). $insertpathtopemfilehere is the variable that holds the path to the .pem file.

ssh nottheadmin@gerisch.org is the actual remote login name and server name.