Archive for June 15, 2018

Friday, June 15, 2018

On the Sad State of Macintosh Hardware

Quentin Carnicelli (tweet, Hacker News, John Siracusa, MacRumors):

The inevitable march of technology means Mojave won’t install on all of our older hardware. There’s no shock there, but the situation is rather distressing when it comes to spending money to purchase new equipment. Here is the situation, as reported by the wonderful MacRumor’s Buyers Guide[…]

At the time of the writing, with the exception of the $5,000 iMac Pro, no Macintosh has been updated at all in the past year.


It’s very difficult to recommend much from the current crop of Macs to customers, and that’s deeply worrisome to us, as a Mac-based software company. For our own internal needs, we’ve wound up purchasing used hardware for testing, rather than opting to compromise heavily on a new machine. That isn’t good for Apple, nor is it what we want.

Rogue Amoeba:

We really didn’t think of it as especially gutsy or brave, because a stagnant Mac lineup is an existential threat to our company. We only hope this penetrates Apple’s bubble.

Sebastiaan de With:

I wrote this a year ago, hopeful that Apple would truly put more effort into the Mac.

It didn’t happen. I’m so stupefied as to why a company so big, ambitious and wealthy can’t maintain the Mac. Heartbreaking seeing so many creatives leave the platform.

John Gruber (tweet):

I’d really love to see Apple get Mac hardware on a roughly annual schedule, even if most years they’re just speed bumps, like they were a decade ago.

Nick Heer:

What is the acceptable shelf life of a Mac? How old can a model be before it becomes uncouth to sell it as new? I remember when Macs used to get regular, approximately-annual spec bumps. It wasn’t that long ago — maybe five years or so. Has something changed since 2013 that seemingly makes difficult for the Mac to be updated more frequently?

When Apple launched the 2016 MacBook Pro models — the first models with the Touch Bar — members of their executive team spoke with Shara Tibken and Connie Guglielmo of CNet. Schiller mentioned that the new models took a while to be launched because they “didn’t want to just create a speed bump on the MacBook Pro”. I hope that’s not their attitude across the product line. People love spec bumps; it helps customers know that they’re getting the newest model they can, and reassures them that it will last longer.

Michael Rockwell:

It feels like the folks at Apple believe that they need to introduce brand new features and top-down redesigns every time they update a Mac. But that couldn’t be further from the truth. Minor updates to the internal components every 6-12 months is all we really need — just enough to keep us from feeling like we’re getting ripped off when we go to buy something in the lineup.

Nick Heer:

At what point does it become disingenuous to mark a product as “new”? The iMac was last updated over a year ago, as far as I can tell.

John Gruber (tweet, Hacker News):

But the striking thing to me is just how much smaller the Intel NUC is. It’s only a little bit bigger than an Apple TV. Calling the Mac Mini “mini” is absurd in 2018.

Previously: New Mac Pro Won’t Arrive Until 2019, Mac mini Turning 3.5 Years Old, How Apple Alienated Mac Loyalists, Understanding Apple’s Marginalization of the Mac.

Update (2018-06-16): Bob Burrough:

Phil Schiller says using a 5 year old computer is sad, while other Apple executives look on and laugh.

Update (2018-06-18): Tony Arnold:

The fact I (a die hard Apple fan since the Apple II) even considered a Hackintosh, let alone spent money to build one should give Apple’s management some idea of how bad their maintenance and stewardship of the Mac hardware platform really is.

Parsing AppleScript

Chris Nebel:

AppleScript’s parser works mostly like any other parser: there’s a tokenizer that breaks the input into meaningful pieces, in particular, identifiers. The key difference is that there’s an extra phase to handle multi-word identifiers.


When reading an app’s dictionary, AppleScript takes all the terminology identifiers, which consist of one or more words, and runs the tokenizer on them to break them into word sequences.

When parsing source and it comes to a word, it starts looking for more immediately following words, greedily matching the longest valid sequence.


Precedence is fixed. Mostly. There used to be a “tightBindingFunction” flag you could attach to commands, I suspect so you could define a “cos” function that would work in expressions without needing parentheses. I never saw anyone use it, though.

The Unified Log in macOS Mojave: Signposts and Instruments

Howard Oakley:

Mojave is set to offer no respite or solution for the system administrator or advanced user. Console and the log command may have gained a few tweaks, but there are no signs of their being any more capable. However, Apple is introducing new features which should be very helpful to developers, particularly when optimising and tuning their products. As with WWDC 2018 as a whole, Mojave’s log is now about ‘doubling down’ on performance.


Signposts can have ‘metadata’ attached, which are roughly comparable to the contents of a normal eventMessage in os_log. Signposts additionally support an .event type as well as .begin and .end.

Points of Interest allow the developer to track where in the app a user is at a given moment, using the category .pointsOfInterest.


Apple has not stated how Signposts work with respect to the unified log.

See also: Measuring Performance Using Logging.

Previously: macOS 10.12.4 Locks Console Log Away From Normal Users, Sierra Logging Spew.

How to Improve Your Productivity as a Working Programmer

Michael Malis (via Dan Luu):

I now schedule meetings specifically at the times of the day when I’m least productive. It doesn’t take a ton of energy to sit through a meeting, and scheduling my day this way allows me to work when I’m most productive. Think of it this way. If I can move a single 30 minute meeting from the time when I’m most productive to the time of the time at which I’m the least productive, I just added 30 minutes of productive time to my day.


After watching a recording of myself writing code, I realized I was spending about a quarter of the total time implementing the feature tracking down which functions the bugs were in! This was completely non-obvious to me and I wouldn’t have found it out without recording myself. Now that I’m aware that I spent so much time isolating which function a bugs are in, I now test each function as I write it to make sure they work. This allows me to write code a lot faster as it dramatically reduces the amount of time it takes to debug my code.


At the end of every day, I spend 15 minutes thinking about my day. I think about what went right, as well as what went wrong and how I could have done better. At the end of the 15 minutes, I’ll write up my thoughts. Every Saturday, I’ll reread what I wrote for the week and implement changes based on any patterns I noticed.

You Are Probably Using the Wrong HDMI Cord

Alex Cranz (via John Gordon):

The first thing to understand is that the HDMI cable is not like the component, composite, or S-video cables you might have plugged into your TV in years past. All that mattered with those cables is that they were well made and had the right plugs. HDMI cables are more like USB or ethernet cables, however. There are different versions that look identical on the outside, but can grossly affect how much data you’re moving from point A to point B. You know how that old USB 2.0 cord slows down your external hard drive compared to a USB 3.0? HDMI is subject to the same kind of limitation—specifically, bandwidth.

There are, to date, seven different HDMI versions, starting with 1.0, which was introduced back in 2002, and currently ending with 2.1, which was only announced back in November of 2017.


At this point, you might think you cracked the code, as if you could just go out, find an HDMI 2.0 or 2.1 cable, plug it in, and you’re good to go. Unfortunately, in 2012 HDMI pulled a truly bonehead move and essentially forbid anyone from actually saying what standards their cables support.

Update (2018-06-23): Ashley Bischoff:

And I gather that compatibility is less of a concern than the author makes it out to be.

This comment from spoonTRex seems to sum things up decently.

We Are All Trapped in the “Feed”

Om Malik:

No matter where I go on the Internet, I feel like I am trapped in the “feed,” held down by algorithms that are like axes trying to make bespoke shirts out of silk. And no one illustrates it better than Facebook and Twitter, two more services that should know better, but they don’t. Fake news, unintelligent information and radically dumb statements are getting more attention than what matters. The likes, retweets, re-posts are nothing more than steroids for noise. Even when you are sarcastic in your retweets or re-shares, the system has the understanding of a one-year-old monkey baby: it is a vote on popularity.

Thumbs down, a feature that should have more adoption and utility, doesn’t work, because it doesn’t bring the dopamine rush of the like. I mean, to dislike something, you have to think. As a result, with every day that passes, the noise increases. What is essential, remains buried in the background, looking, seeking and praying for attention.


The question then is who will save us from the feed? It has to be someone whose principal business is not monetizing their customers by selling their data and advertising. For now, I think Apple is one of the companies which can do something about this. Apple News is a credible application, but it needs to embrace the web and become more open.

A New Home for ToothFairy

ToothFairy has been one of my favorite little Mac utilities since I first heard about it last year. If you’ve used AirPods with a Mac, you know that they don’t auto-switch the way you might expect. ToothFairy fixes that, as much as third-party utility can, by letting you click a menu bar icon (or press a hotkey) to connect the AirPods to your Mac. It also shows you the battery level and can help ensure that you’re getting the best audio quality. I keep referring to AirPods because that’s what I use, but it also works with other Bluetooth headphones and headsets.

I use ToothFairy nearly every day, so I was sorry to see that it had been removed from sale. The developer, Robin Lu (whose code is also in the IAPKit that I mentioned yesterday), got a new job and was no longer able to work on it. Happily, he’s let me acquire the app so that I can ensure that development continues. I’m pleased to report that ToothFairy is now back in the Mac App Store (exclusively, for now), and I’ve released a maintenance update. My thanks to Robin for developing ToothFairy in the first place and for trusting me with his creation.