What’s going on with me? How should I know?

Today I was giving this blog a minor visual refresh — slight color tweaks, new fonts, adding back just a slight hint of the skeuomorphism we all so violently rejected after the release of iOS 7 — when I realized that a lot of my posts were… missing.

Oh, they weren’t gone. They were just switched to draft mode. For some reason, at some point in the last year, I decided I needed to unpublish over 2/3 of the posts on this blog (going back over 20 years). Why? Beats me. Something probably set me off and I decided it was easier just to hide my past thoughts away than deal with whatever minor stir something had caused.

But I don’t remember. I vaguely remember doing it, but I don’t remember why.

Then again, I’ve done a lot of rash things over the past year. Selling all of my basses (and buying a whole new set to replace them). Cleaning out the basement with such fervor that I just put my entire CD collection, going back to 1989, out in the alley for anyone to take. Erasing the past. Or, at least, pushing it aside.

My mom died in September 2022. My dad was a shell of himself after that, even before he took a nasty fall in the Kwik Trip parking lot the next April. By June, after more falls, I was moving him into assisted living, and I was tasked with cleaning out their apartment in Rochester. I’m an only child. The entirety of physical artifacts left behind by two fully lived human lives were placed in my hands, to decide what to do with.

There were countless loads of kitchenware, decorative vases, blankets, clothes, and small furniture pieces, piled into my dad’s SUV and driven to Goodwill. A bin of photo albums transferred to our basement in Minneapolis. A few cherished items in a tin box in my mom kept in her beside table. That tin box is now on a bookshelf next to my desk.

The TV.

My parents still lived in their house in Austin when I bought the TV for them, two days before Christmas 2021. Their old one had died just before we came for the holidays. I was still avoiding going inside stores if I could help it, even though I was fully vaccinated against covid by that time — which was the only reason we were there for Christmas in the first place. I ordered the TV for curbside pickup at the local Walmart. Brought it home and set it up for them.

That’s the TV my mom watched her escapist Hallmark movies on as she was slowly dying of lung cancer. It’s the TV my parents and I watched as CNN reported on the Supreme Court overturning Roe v. Wade, and I was proud that my parents were as outraged as I was. (This was not a Fox News household.) It’s the TV my dad left tuned to MSNBC or old cowboy reruns, the volume muted, listlessly scrolling his iPhone, in the months after the apartment became his alone.

It’s the TV that made its way to the assisted living apartment in Richfield last summer, and that was left on by the staff on the morning of September 1, quietly playing soothing music, in the bedroom where his lifeless body awaited the mortuary. Where I touched his cold hand and said my final goodbye.

Now that TV sits in our living room, and I curse its slow webOS interface as I try to stream Seinfeld reruns on Netflix.

You see, objects carry a history. And while I spent a lot of time last year making room in our house for objects from my parents’ lives — over 150 years of human life, combined — and the history they contain, I needed to push some of my own history aside. To make physical space, and to make mental space. I couldn’t think about the repercussions, because that thinking takes up space, too.

Somewhere in the midst of all of the literal and metaphorical housecleaning, I decided my blog posts needed to go away too, at least for a while. But in this case, it’s possible to bring them back. Unlike the CDs. Unlike my parents.

Why you’ve stopped receiving emails from your website

Email is terrible. Just don’t use it.

OK, that’s not realistic. Unfortunately. So I’ll address the question, and offer somewhat of an explanation.

First off, you need to understand how email works. I don’t think a lot of people do. Email doesn’t just leave your device, shoot across the Internet, and land directly in the recipient’s inbox. There are servers involved on both ends. (A server is a specialized computer sitting in a large data center that runs software for purposes like this.)

When you hit “Send,” your message goes from your device to your sending mail server. Then your sending mail server looks at the domain name on the recipient’s email address — the part after @ — and figures out where that domain’s receiving mail server is. It sends the message to that server.

Then, when the recipient wants to check their email, their device connects to their receiving mail server, which sends over the new messages. (The way this works is a lot different now than it was in the early days of the Internet, with the switch from POP3 to IMAP, but if you don’t know what those acronyms mean, just be thankful and move on. It’s not really relevant to this post.)

All of this is relatively straightforward when you’re directly creating the email message in your mail app. In most cases, your own sending and receiving server are one and the same. But it’s different when the email is coming from your website.

Next, you need to understand how email coming from a website works. When you’re getting an email such as an automated notification that someone has filled out a form on your website, who is “sending” the email? It’s not the site visitor who filled out the form. It’s the website itself. So the email doesn’t go through the visitor’s sending server. The website has to have its own sending server.

In the past (up until around early 2020), this was straightforward. Web servers — yes, another specialized computer in a data center, this time the one where your website “lives” — typically would also be running sending mail server software too. The most common early software for this purpose was called, creatively, Sendmail. But there were some serious shortcomings with Sendmail that needed to be fixed, and the replacement software was called, creatively, Postfix.

For years I would set up web servers running Postfix, and there was never any problem. A website user would submit a form, the site would generate a notification email and put it in the Postfix queue, Postfix would send it along to the recipient’s (i.e. the website administrator’s) receiving mail server, and the recipient would receive it.

So why did this stop working? In a word, spam. This kind of setup was very slick and easy to build. So easy, in fact, that hosting providers — especially the ones offering “Virtual Private Servers” where you can configure any software you want — became havens for spammers.

For years there were increasingly convoluted methods to validate these servers as legitimate senders. (Here are some more fun acronyms you don’t want to know: SPF, DKIM, DMARC.) But it was a cat-and-mouse game as spammers continually found ways around every new restriction.

Eventually, so many spammers started using hosting providers like Digital Ocean to send out their garbage, that large mail providers like Gmail and Microsoft Office 365 just decided it wasn’t worth dealing with, and started automatically flagging any email that originated anywhere on Digital Ocean’s network (to cite one example) as being spam.

Now, legitimate websites, sending only legitimate emails, are getting flagged as spam, solely because they happen to exist on the same network as spammers.

OK, so shouldn’t Digital Ocean (and other similar VPS providers) do something about this? Yes. Yes, they should. But instead they’ve decided to just throw up their hands and say, “you should not be using our network to send out email.” Other VPS providers like Linode actually just block port 25 altogether. (Again, if you don’t know what that is, just be happy and move on.)

Is there a solution? Yes. Stop using email. OK, I still know that’s not realistic. There is a solution, but it is cumbersome to set up. You need to configure your website to route outgoing emails through a real mail account on a real mail server. If you’re on WordPress, plugins like WP Mail SMTP and WPO365 can help — but bear in mind that this does mean connecting a real, actual email account to your website through these tools. (And an interesting side effect is that you’ll see these outgoing messages in the Sent folder in your mail app.)

Alternately, you can use a service like Amazon SES or Sendgrid. But however you choose to do it, there are extra configuration steps, extra technical knowledge required, and extra costs. What used to be straightforward and easy is now complicated and costly, and we have sleazy spammers and intransigent corporations to thank for it.

SMS texts not coming to your Mac? Mac sure you’re signed into the same Apple ID for both Messages and FaceTime on your iPhone. (Seriously.)

The subject line is the answer, but here’s the longer story.

I recently switched iPhones. Through a series of stupid errors, I ended up having to set it up as a totally new phone instead of transferring my old phone data over.

Ever since I did that, some conversations refused to sync between Messages on my iPhone and Messages on my Mac, even though they were both set up properly and various online tutorials didn’t help me solve the problem.

That last tutorial hung me up on one particular detail though. The Text Message Forwarding option was not appearing for me in the Messages settings on my iPhone.

I figured this was just, once again, an outdated tutorial that hadn’t caught up to changes Apple had made in the Settings app. But… those screenshots looked current. Hmm.

I don’t even remember exactly how I made this mental leap, but I found the solution not in anything to do with Messages, but rather with the FaceTime settings.

Due to the long and complicated history of Apple’s online services, I have two separate Apple IDs. One I use for App Store purchases, and a different one I use for iCloud.

Well… on both the Mac and the iPhone I had Messages logged into my iCloud account. But on my iPhone, I had FaceTime logged into my App Store account. And that’s why the Settings app wasn’t showing me Text Message Forwarding in the Messages settings.

I logged out of my App Store account for FaceTime and logged into my iCloud account, and suddenly the Text Message Forwarding option appeared under Messages. I turned on forwarding to my Mac and my iPad, and now everything is working!

Scott’s No-Canned-Cream-of-Mushroom-Soup Green Bean Casserole

Over on Threads I offered to share this if anyone wanted me to, and someone took me up on it. It’s too long to put in a Threads post though, so I’m posting it here.

This isn’t a recipe website, and I hate it when those sites start recipe posts with 5,000 word essays, so I’ll just get into it. The title says it all anyway.

As I noted on Threads, I’m winging it these days, so the ratios might be slightly off. (Specifically, I’m not sure I used 3 pounds of beans… it was just a big bag at the supermarket.)

INGREDIENTS:

  • 3 lb fresh green beans, ends trimmed
  • 8 oz fresh mushrooms, cleaned and sliced
  • 1 medium-large onion, thinly sliced in half rings
  • 1 Tbsp olive oil
  • 4 Tbsp butter
  • 4 Tbsp flour
  • 1/2 cup dry white wine
  • 2 cups vegetable broth
  • 1 cup milk or cream
  • About 1 cup crushed potato chips (or panko; I used chips this year because I forgot to get panko, and it was good)
  • Salt, pepper & seasoning blend to taste (I like Trader Joe’s 21 Seasoning Salute)

PREPARATION:

  1. Blanch the beans for 5-6 minutes in boiling, heavily salted water. Drain and shock with cold water, drain thoroughly and set aside.
  2. In a small skillet, heat oil over medium-high heat. Add sliced onion and a generous amount of seasoning and cook (stirring occasionally) until soft and just starting to brown at the edges. Set onions aside on a paper towel to drain.
  3. In a 12″ skillet, melt butter over medium heat. Add mushrooms and cook (stirring occasionally) until soft and liquid is released. Add white wine and cook down for another 2-3 minutes.
  4. Add flour and some of the seasonings and whisk until flour is thoroughly blended in, about 30 seconds to 1 minute.
  5. Add broth about 1/4 cup at a time and whisk gently until completely absorbed and smooth before adding more. (Trick to a smooth gravy/roux/white sauce!)
  6. After all broth is added, stir in the milk and continue whisking as sauce thickens for 5-8 minutes. Taste and season as needed.
  7. Remove from heat and stir in beans. Transfer the mixture to a 13×9 casserole.
  8. In a small bowl, toss cooked onions and crushed potato chips (or panko). Sprinkle evenly over top of casserole.
  9. Bake uncovered at 375°F (190ºC) for 30-40 minutes or until bubbling and top is golden brown.

How to transfer files over 4 GB from Android to a Mac

I had to do some fairly deep digging to get this answer, so maybe I can help someone else.

I’m an Apple guy. But lately I’ve been having to record some video with a phone on a tripod, unattended. I don’t want to risk getting my iPhone stolen, so I’ve been using my Android testing phone instead (a Google Pixel 3a). It actually shoots pretty decent video, but getting that video off the Pixel and onto my Mac has been… a challenge.

After some initial digging the first time around, I discovered Android File Transfer. It’s a Mac app that lets you access the Android file system and transfer files over a USB connection. It’s just hard to remember exactly how to get it to work, at least for someone like me who is not super familiar with Android. The short version is you have to go into the Android device’s USB settings and turn on File Transfer mode.

Today I had a new problem. Once I got connected, I started to transfer two very large video files (16 GB and 9 GB) over to my Mac. All seemed to be going well, until I hit exactly 4.00 GB in the transfer, then it just stalled. No warning, no error. It just stopped transferring. Trying to cancel the transfer also didn’t work.

It’s really stupid that the app doesn’t just tell you this up front — or, like, you know, ever — but after digging into the issue, I learned the app has a 4 GB file size limit. I didn’t investigate why, but having dealt with this kind of nonsense on the Windows FAT file system in the past, I suspect it’s a stupid legacy quirk no one has ever considered important enough to fix.

Anyway, I needed another solution, and I found it. FTP. Specifically, I chose to use the WiFi FTP Server app. I mean really, you could use an FTP client app to transfer files to an FTP server, or install an FTP server on your Mac, but it just seemed easier to me to make the Android phone the FTP server, and let my Mac connect to it with Panic’s trusty (well… it used to be trusty, but that’s another blog post) FTP client, Transmit.

The FTP transfer is over WiFi, as the name implies, so yes, it’s slower than the wired USB connection. But… and here’s the key thing… it works.


P.S. After several minutes of the transfer running, I glanced down and noticed that the WiFi FTP Server app (which, of course, like most Android apps, is free to download) has an ad bar at the bottom. I hate to break it to those advertisers, but they are not getting any kind of R.O.I.