93: iOS 12 wish – a better phone

WWDC 2018 is fast approaching and Apple-watchers everywhere are preparing their iOS feature wish lists. There’s plenty of low-hanging fruit available to make the iPad and iPhone better internet communicators and content-creation and content-consumption devices. But what about making the iPhone a better phone?

I know. “Who uses their phone as a phone?!” Like email, voice phone calls have become a bizarre, legacy, mostly inbound communication channel. As Google controversially pointed out recently, sometimes a phone call is the best or only way to find certain information or accomplish a task. But 90% or more of the calls to my iPhone are junk.

Apple must have realized that spam calls were of rising concern to their users, as they added call blocking capabilities in the CallKit API introduced in iOS 10. This led to an explosion of call-blocking apps in the App Store, some of them scammy in their own right, requiring access to all your contacts in order to function. A few are above-board, not needing your private data. One of them is WideProtect, which I’ve been using for several months now.

These mass blockers are useful for the latest pattern in spam calls here in the United States: spoofing a number similar to the one being dialed, in hopes that it will look “familiar” and get you to pick up. I started by blocking numbers that were extremely similar to mine, differing only in the last three digits. That didn’t stop enough of the spam, so I expanded the range to anything differing in the last 4 digits — 10,000 numbers in total. That seems like a lot, but I’m only using 1% of WideProtect’s blocking potential! CallKit allows each blocker extension to cover 100,000 numbers, but apps can have multiple extensions. WideProtect has 10 extensions for a maximum of 1 million total blocked numbers.

Blocking extensions are far more effective than my old tactic of putting repeat offender numbers into a single contact named “spammers”, but they don’t eliminate the annoyance. CallKit blocking prevents the phone from ringing, but voicemails still come through as notifications. These too are predictable: most are just 2 or 3 seconds of dead air, while others are a robot reading a script about senior care medical devices they want me to purchase. Needless to say, these are the most garbage-y notifications I receive on any given day.

Not helpful.

Not helpful.


So why can’t iOS eliminate them entirely? Smart handling of voicemail has always been part of the iPhone’s “revolutionary mobile phone” features (Visual Voicemail, as it was then called, was truly unheard of in 2008.) Today, iPhones analyze voicemails on-device to create transcriptions, which are available within notifications via 3D touch. Using that transcription data to suppress notifications could be dressed up as fancy machine learning, but really all that’s required is the type of basic pattern matching that has powered email spam filters for decades. And any good spam filter needs a safeguard against false positives, so offending voicemails could be sorted into the separate Blocked Messages view in the Phone app, rather than being blackholed entirely.

Perhaps the average iPhone user is accustomed to their device being a constantly buzzing annoyance box, and a couple spam calls per day are nothing amongst their dozens of other spam notifications. But I try to keep those annoyances as close to zero as possible. So even though the phone is, most likely, the least important part of the iPhone, robust spam filtering would help it be the best phone available.

92: Alto's Odyssey

It’s been a couple months since the game’s release, and for some, it may be already forgotten. But many of the initial reviews placed the followup to Alto’s Adventure directly into the pantheon of iOS games. I agreed with those reviews then, and after dozens of hours of flipping, wingsuiting, grinding, and wallriding, I agree with them now.

At least, I agree with their conclusion. Many glowing reviews praised Odyssey for bringing unprecedented nuance and refinement to a “casual” game. But I would argue that these traits break Odyssey out of the casual category and into uncharted territory. Part of what keeps me playing Odyssey is the leaderboard, where I’ve bounced around the top twenty but never broken into the top ten. Sitting down to attempt that feat is not casual at all — a significant chunk of time needs to be set aside to aim for three, four, or five million points when they’re earned by the tens of thousands.

If Odyssey didn’t constantly delight, 40 minutes on the mountain would be a slog. I think anyone who views Alto as a one-button endless runner would feel that way. I’m not going to try to convince you that the balloons, birds, storms, and total solar eclipses make Odyssey the best one-button endless runner ever on iOS. No, that would be Tiny Wings. Why not Alto? Because it is, crucially, a two-button endless runner.

And there, if it lies anywhere, is Alto’s single flaw: the failure to reveal at the outset that the wingsuit and its control scheme is vital to the game. It’s all too easy for a truly casual player to entirely miss its importance, and thereby miss out on the incredible combination play that makes Alto unique and addictive.

Back when tvOS was launched — and Picomac was new! — Alto’s Adventure was hailed as the perfect game for the one-button Siri remote. There’s no doubt that the snowy and sandy environments look stunning on a big screen, but trying to toggle the wingsuit with a firm press is just a recipe for a crash. This is, of course, to Alto’s credit and the Apple TV’s detriment. The lament all along about Apple TV games has been that without a dedicated controller, they are forced to give up complexity and be shadows of what they can be on other platforms.

So if you still haven’t played Alto’s Odyssey, I cannot recommend it highly enough (at least on your iPhone or iPad). Or if you did give it a try and found it too simple, too casual, give it another go. And remember: save up all those coins for wingsuit upgrades. You won’t regret it.

91: Seeing double with regular expressions

A few weeks ago, David and Katie were kind enough to have me on Mac Power Users to talk (to the extent that's possible) about regular expressions. It's a massive topic and we barely scratched the surface, but having listened back to the segment, I think it gives Mac users a number of points of entry. Even so, there was one big topic on my outline that I forgot to cover: multiple matches.

As David said, the basic conceit of regex is "find and replace on steroids". I think even that description is limiting, since the basic model of find and replace is to find one thing and replace it with one other thing. But once you're proficient in the basic search syntax, you can go much further by learning the replacement syntax. (Frustratingly, this tends to vary from app to app. I'll describe things with BBEdit's syntax, which I'm most familiar with.)

If you want to match multiple components of your overall regular expression, all you have to do is enclose them in parentheses. Then, each of these can be referenced in order, left to right, in your replacement string by using \1, \2, \3, and so on — though it gets pretty unwieldy after 4 or 5. This can be used for mundane tasks, like reordering parts of a date string, but it's also endlessly flexible, especially because you can refer to a captured group more than once.

This past week at work I applied multiple matches to what would have otherwise been a tedious clicky-draggy spreadsheet task. I was setting up software for some computer-based tests, including mapping the number of questions answered correctly to a standard score. (Remember the SAT? It's out of 1600 points, but there aren't 1600 questions. Thankfully.)

I had an Excel spreadsheet that a coworker made, but the software required a CSV, with each row having the low raw score, high raw score, low scaled score, and high scaled score for different ranges. We had already run an analysis and decided these correspondences for every possible value, so I needed those pairs of columns to be duplicates of one another. Yes, I could do that in Excel or Numbers, duplicating columns and saving out CSV files via an Export dialog. Or I could make a much faster round trip to BBEdit.

The routine was simple: paste two spreadsheet columns into a text file, giving me numbers separated by a tab. I captured the first number, matched a tab, and captured the second number: (\d+)\t(\d+). Then, since I needed to both flip the column order and duplicate them, I replaced the string with \2,\2,\1,\1. And thanks to BBEdit making the "Replace all" command available even without opening the Find and Replace window, transforming new data only took one keystroke: ⌥⌘=. 15 repetitions of the process only took a couple minutes. (This was right on the threshold of "should I automate this?" If it was 100 repetitions, the answer would have been a definite "yes".)

Now, chances are you'll never have to perform this exact task. In fact, the chance that I'll have to do this again are near zero. But the chances that you'll have to rearrange some lines of text are pretty high. Even if you have to look up the syntax, just knowing that the apps you have on your Mac are up to the task will enable you to solve the problem and get the work done faster.

90: Envisioning a Mac Pro-bo

I've been crafting a vision of what the Mac Pro (Mid 2018) may look like ever since the line was declared definitely-not-dead in April. I don't have many pro needs; podcast production, light image editing, and the occasional Handbrake session are as intensive as my computing gets. Even so, I built my core idea around the one thing I struggled with when configuring an iMac: storage (especially the question of to NAS or not to NAS).

I'm sure Jony can do better than this.

I'm sure Jony can do better than this.

There's a lot that's appealing about network attached storage. It offers redundancy, it's available from everywhere in the world, and it can be shared among devices while at home. But it has major downsides too. It's essentially a second computer and carries the price tag to match, even before you fill it with hard drives or SSDs. And because NASes like those from Drobo and especially Synology are computers, they run their own operating system…which isn't Mac OS. I don't care how lightweight and convenient it is; I want no part in managing a Linux box through a fake Windows GUI in a browser. Even if I took that leap, dealing with network drives still isn't a native Mac experience. (I see this frequently at work with our office-wide Samba share. You can't put files in the trash and Spotlight is nonexistent. It's no way to live.) So I configured my iMac with a 2TB Fusion Drive and hung a 4TB USB drive off the back.

Even though the drives I hooked up to my iMac are nowhere near full, I would love to see a device that integrates the mass storage of a NAS with the power and software of a high-end Mac — a Mac Pro-bo, if you will. I considered it a total pipe dream for a while. Remember, the last Mac to offer expandable, multiple drive storage was a 40-pound cheese grater from 2012. But the recent sneak peek at the iMac Pro actually gives me more hope than ever that we'll see something like it.

On the WWDC slides and on the iMac Pro website, there's a new schema for what Apple considers the pro setup, and it's a 5K display sitting next to a box full of hard drives. Given the current lineup, that involves an iMac display and a third-party box to the side. The converse — a trash can Mac Pro with a third-party display — proved less than viable. The big design question for the future Mac Pro is whether these two components, one centered around the display and one centered around storage, are the "modules" Apple referred to in the Mac Pro roundtable.

The other future of computing.

The other future of computing.

Swappable storage, backed by APFS and macOS would certainly be a unique product. Many assume that the Mac Pro has to be even more expensive than the iMac Pro, but Myke Hurley and Jason Snell pointed out on Upgrade that it might be best if the Mac Pro sat in the middle. Tim Cook's Apple loves to hit every price point, and there's a huge gulf between $2300 at the top of the iMac range and $5000. I imagine that $3500 could offer a lot in terms of CPU, RAM, and storage in a compact Mac — especially with no display and nothing but air in some storage bays. Max out the storage or add a putative $1500 Apple 5K display and the Mac Pro would be comparable in features and price to its all-in-one cousin, with room to grow. It's still just a dream, but maybe it's not so farfetched after all.