Apple’s loss of focus

It’s been bugging me for a while with Mojave. I’ll be working along in a window, and suddenly there’s a flicker, and the current window is no longer current. Something grabbed focus and didn’t give it back. With all the crap that ends up running in the background on modern MacOS, it’s hard to figure out exactly what might be at fault, but I just had one pop up that can’t be blamed on anyone but Apple.

For my recent trip to Japan, I took along a Western Digital 1TB SSD as a Time Machine backup drive, and put it in my checked luggage for redundancy. I turned on Apple’s full-disk encryption (for the laptop as well), so when I plug it in, it pops up a password dialog box.

100% of the time, this dialog box steals focus, and then doesn’t give it back. The front-most application does not have an active window, and I either need to click on it or switch to another app and back again.

The drive is fantastic, by the way. I prefer it to the Samsung T3 and T5 models I’ve used, not the least because it comes with the only high-performance USB3(male)-to-USBC(female) adapter I’ve found, carefully designed to mate securely with the supplied short USBC cable. All the other small adapters I’ve tried significantly degrade performance despite claiming otherwise, but if I could buy a dozen of these (with or without the matched cable), I would. Sadly, WD doesn’t offer them separately.

Related, if you have multiple Time Machine backup sets for your machine, and you want to manually kick off a backup to a specific one (say, /Volumes/BackMe), the script looks like this (note that this requires the third-party jq tool in /usr/local/bin, because Apple plist format is garbage):

export PATH=/usr/bin:/usr/local/bin

if [ ! -d "/Volumes/$VOL" ]; then
        echo "TM backup '$VOL' not mounted!"
        exit 1

ID=$(tmutil destinationinfo -X |
	plutil -convert json -o - - |
	jq -r '.Destinations[]|select(.Name == "'"$VOL"'").ID')
time tmutil startbackup -a -b -d "$ID"

Dear Apple keyboard ‘designers’,

It wasn’t cheap, but I finally have a fully-functional keyboard on my MacBook Pro:

Yes, that’s a one-key mechanical USB keyboard with an Escape key. I wish the case were a bit shorter (the USB port’s on the bottom side of the board, sadly), but even with the extra height, it’s so much easier to work now. I may try to CNC something that lets it “clip” onto the side with a very short USB cable; longer reach but better height, might be worthwhile.

Dear Apple QA,

I like to think that there’s someone out there to address this message to, but all signs point to “no”.

Let’s look at the intersection of several features:

  1. Quick Look, activated by pressing spacebar.
  2. “Display as Folder” view for the Downloads folder in the Dock.
  3. Keyboard event passthrough to the active application.
  4. Spacebar as “mark item completed” in Reminders.
  5. Auto-select next item.

Now, let’s suppose that I have recently downloaded some items to which quicklook can be applied, perhaps pictures of scantily clad young ladies. While the Reminders app is active and an item is selected, I click on the Downloads icon, bringing up thumbnail images of these downloads, which I wish to view more closely.

I do this by pressing the spacebar, once to preview an image, once to make it go away again. I repeat these keystrokes several times, examining several images. When I click the Downloads folder again, I am returned to the Reminders app, which is now empty, because I’ve just marked every single item as completed.

This behavior is not consistent between applications. It never happens with Terminal, sometimes happens with Safari, where it’s a minor nuisance, and always happens with Reminders, where it is destructive.

Begun, the login-button wars have

Want to let users sign in to your iOS app using Google, Facebook, Github, or any other third-party service? Better put the new Apple login button first on the list, or you’re fucked.

Did I hear something recently about antitrust investigations in Silicon Valley? Will I hear more soon?

APFS considered harmful…

…or at least “not ready for prime time”.

It seems I wasn’t quite correct in my assessment of why my MacBook was sluggish. Full-disk encryption was indeed having a visible effect on performance, but even after turning it back off, I’ve still been seeing some pretty awful performance… after a few days of uptime.

There are two primary symptoms, both connected to filesystem performance: first, Time Machine backups take progressively longer each time (no matter how much data is being backed up), until it starts reporting that a typical 300MB backup will take more than an hour; and second, image-heavy web sites start loading very slowly, with JPEGs showing up ‘blocky’ while they’re rendering. If I don’t reboot when I detect these two issues (usually after about four days of uptime), then I’ll start having difficulty mounting and unmounting external devices and network volumes, and Disk Utility will show a SPoD. I’ve had to disable automatic backups, because I can’t put it to sleep until they finish (Time Machine will cheerfully corrupt your backup history if you disconnect from the file server while it’s running).

My recent vacation makes it difficult to be sure, since I turned the MacBook off after every use, instead of my usual “leave it up until it crashes”, but I think this is specific to the OS 10.14.4 release.

With all the problems they’re having with hardware and software, it seems the old cliché about “there’s no I in TEAM” could be rewritten as “there’s no QA in APPLE”.

Related, when I do reboot, the first thing I do is open top in a Terminal window and wait a minute or two until the load drops from ~50 to under 5; then I kick off a backup and start working.


After a lot more testing, it seems that APFS is only responsible for about a third of the slowdown. The rest is coming from the TCP stack. Rebooting is still the only fix; I’ve tried switching between wired and wireless, changing out the USB-C ethernet adapter (I have like five brands of them, between home and office), manually resetting the interfaces, etc, etc.

If I work completely offline, local I/O still slows down over a few days, but if I’m online, network I/O gets worse faster. Still a problem after the 10.14.5 update, and I’m thinking it’s specific to the 12-inch MacBook hardware, since I don’t see it at all on the 15-inch MacBook Pro that’s usually on the other side of the kitchen table.

Filevault, unvaulted

Even though I ended up having to work while in Japan, I didn’t pack my work laptop, a 15-inch MacBook Pro with all kinds of corporate IP goodness on it. I just took my little 12-inch MacBook, with all kinds of personal goodness on it. So I backed it up three times, encrypted the SSD with Filevault, and took along an encrypted backup drive that I stored in a separate bag.

In theory, between modern CPUs and modern SSDs, the penalty for full-disk encryption should be pretty small. This is sadly untrue for the 12-inch MacBook, even with a Core i7; I could cope with the N% I/O slowdown, but it rippled through the system, causing other things to either slow down or get a touch flaky. The most visible culprit was kernel_task chewing up a lot of CPU, which generally indicates thermal throttling, but the temperature sensors reported all-is-well, so I’m guessing something about Filevault was setting it off. APFS was also getting really sluggish after a few days, requiring reboots.

Now that I’m safely home and more or less caught up on life, I made three backups and turned Filevault off. Currently the system’s grinding away rebuilding the Spotlight indexes (cache-like stuff is skipped in the encryption/decryption process), and kernel_task is nowhere in sight.

Dear Apple,

Will you ever figure out how to sync data between devices?

Seriously, how long have you been shipping the Reminders app now, which is, I note, one of the single most useful features of your watches, now in their fourth generation?

You know, the one that constantly gets out of sync if you own more than one device, like, say, a Mac, an iPhone, and an iPad?

That’s right, the one where the only reliable fix is to open the Calendar app on each device and manually refresh your list of Calendars.

Hell, you could buy 2/3 of the third-party sync solutions in the world out of petty cash, and your entire iCloud platform would benefit.

Another day, another iPhone

Got the call that my new new new phone arrived at the Monterey Apple Store on Friday afternoon, and since I had no interest in fighting traffic, I went over first thing Saturday morning to pick it up.

Yes, I made sure to test for the presence of wireless antennas before leaving the store this time, and was pleasantly surprised that this one had up-to-date firmware on it as well. I let it charge all day before restoring my backup to it just after midnight.

Why? Because after it’s all done, I have to erase and re-pair the watch, which wipes out the day’s activity and exercise, and it won’t re-sync music until it’s hooked up to the charger. So, as soon as 9,000+ songs finish syncing to the phone, I can pair the watch, plug them both in to charge overnight, and go to bed. Then spend the morning re-authorizing apps to use the fingerprint reader, refresh cached data, re-download in-app purchases, re-assign ringtones and alarm songs, erase all but three of the auto-synced watch apps, etc, etc.

Special thanks to Neal for the iPhone 7 loaner that was actually useful, unlike the Apple Store loaner.

Bonus: the Del Rey Oaks Safeway has a fully-stocked Boar’s Head deli. It’d be nice if the ones near my house upgraded, but this is closer than Morgan Hill, unless I’m coming from my office.