Archive for September 2017

Friday, September 29, 2017

Finder’s Unwanted Conversions to APFS

Mike Bombich:

Take any HFS+ formatted volume that does not have an installation of macOS on it (that part is key), right-click on the volume in the Finder and choose the option to encrypt it. Rather than simply converting the volume to a CoreStorage Encrypted volume and keeping the HFS+ format, macOS converts the volume to APFS with no warning, and then enables encryption.


APFS Encrypted volumes aren’t backwards compatible at all, so if you attach that converted disk to a Mac running an older version of the OS, you’re greeted with this heart-attack-inducing error message[…]


But if I disable encryption on my APFS volume, the APFS part sticks – it’s not possible to convert an APFS volume back to HFS+ without erasing it.

Cultural Insularity and Apple TV

Casey Newton and Chris Welch (Hacker News):

Amazon today introduced a new $69.99 Fire TV with HDR and 4K capabilities. The redesigned Fire TV is a small flat square dongle with an HDMI cable sticking out, and it again ships with an Alexa voice remote included. It’s basically a smaller version of the discontinued set-top box that now plugs into the back of your TV and hangs there. The previous Fire TV box already did 4K, but this one can now play it at 60 frames per second and adds HDR (high dynamic range) as a brand new feature to Amazon’s streaming devices.


The new Fire TV is powered by a 1.5Ghz quad-core processor and has access to tens of thousands of apps and Alexa skills; if you don’t want to bother with the remote, you can also pair the Fire TV with an Echo device in your home to control it with just your voice at any time.

John Gruber:

Earlier this week I wrote about my vague concern about Apple’s insular culture. Apple TV is the product line where I think that might really be a problem. Apple charges a significant premium over the average product in PCs, tablets, and phones. It works for them in those markets. That’s what Apple does and has always done: they make superior, premium products for people willing to pay for them.


I like Apple TV a lot, but I think Apple is ceding marketshare by not having a box that competes on price. I think there are a lot of people who look at iPhones, iPads, and MacBooks and see them as “expensive but worth it” but who look at Apple TV and see it as “ridiculously overpriced”.

Andrew Pontious:

Arguments why people buy things other than Apple TV (same basic thing, much lower prices) SO MUCH apply to rest of product line.

Bradley Chambers:

The real issue is that set top boxes for good portion of people = Netflix, Hulu, Amazon, Sling, etc. The experience is the content.

Abdel Ibrahim:

Hence why I argue that as TVs get more built-in apps, why would someone even bother with these boxes, let alone a $200 one.

Zac Cichy:

For all its UX superiority, Apple TV just isn’t meaningfully differentiated in terms of content or even as a platform. App Store is a joke.

Dave Wood:

#AppleTV is a premium device, just needs devs to make the apps, which they won’t do b/c the App Store is a shit show.

Josh Centers (tweet):

The big question is how Amazon’s content lineup will match up to Apple’s. Amazon Prime Video has offered 4K titles for a while, but its selection of 4K movies has been limited and expensive. However, Amazon recently slashed prices on 4K films. If the company can match iTunes by improving its collection of 4K HDR movies and upgrading HD movies that customers have purchased, Amazon will be hard to beat in the living room.

Similarly, Apple will have a tough time justifying the $349 price of the HomePod when you can buy four Amazon Echoes for that price — and don’t forget, Echo now does multi-room audio (see “Amazon Echo Gains Multi-Room Audio Capabilities,” 29 August 2017), so for the price of a single HomePod, you could fill your entire house with audio.

Previously: Apple TV 4K, Still a Hobby, Why Apple Should Make a Cheaper, Streamlined Apple TV.

Update (2017-10-06): Craig Grannell:

I like Apple, and write about the company a lot. I also like Apple TV. It’s a solid unit, with a decent UI, and a ton of potential. But if none of that potential is going to be realised in terms of the unit’s primary purpose, what’s the point in buying Apple TV over an Amazon box? That’s what Apple needs to address, rather than beaming that you can rapidly get an iCloud photo gallery on your telly.

Update (2017-10-13): Michael Rockwell:

John mentions iTunes as the primary selling point for the Apple TV, but I don’t see it that way and I don’t think Apple does either. When the default behavior of the remote’s home button was changed late last year, that was a clear signal about the device’s primary function — it’s all about the TV App.


The best case scenario is for Apple to do all of these things at the same time, but I’m not convinced they’ll do any of them. Apple should be well aware of the problems with their offering and the announcement of the Apple TV 4K was their opportunity to address them. They didn’t. I just hope they have something incredible coming to platform soon that will position the Apple TV as more than just the expensive option.

Thursday, September 28, 2017

Measuring Swift Compile Times in Xcode 9

Jesse Squires:

As mentioned, after you add these flags you will start getting warnings. Keep in mind that if the threshold is too low, for example 10ms, then you will get a ton of warnings that cannot be fixed. Experiment with these threshold values and adjust as needed. I suggesting starting at 200 and tuning from there. If your code base is large, it might make more sense to use a higher value for your project (say 500) and try to decrease it over time. Otherwise, you’ll be spending a lot of time trying to get all functions and expressions to compile in under 200ms. Also, I recommend setting these flags only for DEBUG build configurations.

There are two common scenarios where Xcode will start emitting warnings with these flags: (1) very complex expressions or functions, and (2) expressions that omit explicit types and rely on type inference. To silence the warnings — and thus improve compile times — try breaking up expressions into smaller steps with intermediate variables, and adding explicit types to variable declarations and closure parameters.

Previously: Guarding Against Long Swift Compiles.

Update (2018-04-29): See also: Marcin Krzyzanowski.

Time Machine vs.

Rob Griffiths:

In a nutshell, Apple recommends that if you’ve moved the System Photo Library to an external drive—as nearly anyone who takes lots of pictures will have done, given space-limited solid-state internal drives—you do not use Time Machine on that drive. Not just “don’t back up the Photos Library folder with Time Machine,” but “don’t back up the entire drive with Time Machine.” Yikes!


I know Apple’s answer to the second question is “You shouldn’t be storing photos locally, they should all be in the cloud.” But if you have a huge collection of photos and videos, and/or if you’ve got slow or limited internet, this is not a realistic option.

It’s also not a very reliable one. Aside from not really being a backup, iCloud Photo Library doesn’t even sync reliably. My mother has four devices that are supposedly syncing, but some of the photos don’t make it to some of the devices. Each device gets most of each batch of new photos, so at a glance it looks like it worked, but upon closer inspection some of the photos are missing. No errors are reported.

Alan Kay on the iPhone

Alan Kay:

If people could understand what computing was about, the iPhone would not be a bad thing. But because people don’t understand what computing is about, they think they have it in the iPhone, and that illusion is as bad as the illusion that Guitar Hero is the same as a real guitar. That’s the simple long and the short of it.

What’s interesting is, the computational ability of an iPhone is far beyond what we need to do good computing. What you wind up with is something that has enough stuff on it and is connected to enough stuff, so it seems like the entire thing.


So, I talked to Steve on the phone [about adding a standard pen and penholder]. I said, “Look Steve. You know, you’ve made something that is perfect for 2-year-olds and perfect for 92-year-olds. But everybody in-between learns to use tools.”


Well, a saying I made up at PARC was, “Simple things should be simple, complex things should be possible.” They’ve got simple things being simple and they have complex things being impossible, so that’s wrong.

Update (2017-09-28): Alan Kay (via Gok):

Let me try to help this community regarding this article by providing some context. First, you need to realize that in the more than 50 years of my career I have always waited to be asked: Every paper, talk, and interview has been invited, never solicited. But there is a body of results from these that do put forward my opinions.

This article was a surprise, because the interview was a few years ago for a book the interviewer was writing. It’s worth noting that nowhere in the actual interview did I advocate going back and doing a Dynabook. My comments are mostly about media and why it’s important to understand and design well any medium that will be spread and used en-mass.

If you looked closely, then you would have noticed the big difference between the interview and the front matter. For example, I’m not still waiting for my dream to come true. You need to be sophisticated enough to see that this is a headline written to attract. It has nothing to do with what I said.

And, if you looked closely, you might note a non seq right in the beginning, from “you want to see old media?” to no followup. This is because that section was taken from the chapter of the book but then edited by others.

The first version of the article said I was fired from Apple, but it was Steve who was fired, and some editor misunderstood.

EFF Resigns From W3C

Cory Doctorow (Hacker News):

In July, the Director of the World Wide Web Consortium overruled dozens of members’ objections to publishing a DRM standard without a compromise to protect accessibility, security research, archiving, and competition.

EFF appealed the decision, the first-ever appeal in W3C history, which concluded last week with a deeply divided membership. 58.4% of the group voted to go on with publication, and the W3C did so today, an unprecedented move in a body that has always operated on consensus and compromise. In their public statements about the standard, the W3C executive repeatedly said that they didn’t think the DRM advocates would be willing to compromise, and in the absence of such willingness, the exec have given them everything they demanded.


EFF no longer believes that the W3C process is suited to defending the open web. We have resigned from the Consortium, effective today.

John Gruber:

I’m no fan of DRM. Who is? But I am a fan of practicality, and there are practical reasons why web browsers should be able to play DRM-protected content without using proprietary plugins.


I’ll leave the original post as-is, because I think it expresses well my thoughts on why the W3C should support DRM, but this DMCA issue is important, and now I’m uncertain how to feel about the EFF’s decision to leave. The DMCA is an odious — and I think unconstitutional — law. DRM should be protected by its encryption and longstanding copyright law. Anything that’s “fair use” under copyright law should be “fair use” with DRM content if the DRM can be circumvented.

Previously: Encrypted Media Extensions (EME).

Wednesday, September 27, 2017

Swift 4 Weak References

Mike Ash:

In the old implementation, Swift objects have two reference counts: a strong count and a weak count. When the strong count reaches zero while the weak count is still non-zero, the object is destroyed but its memory is not deallocated. This leaves a sort of zombie object sitting in memory, which the remaining weak references point to.


Swift’s new implementation of weak references brings with it the concept of side tables.


To avoid reserving eight bytes for the side table, Swift makes a nifty optimization. Initially, the first word of an object is the class, and the next word stores the reference counts. When an object needs a side table, that second word is repurposed to be a side table pointer instead. Since the object still needs reference counts, the reference counts are stored in the side table. The two cases are distinguished by setting a bit in this field that indicates whether it holds reference counts or a pointer to the side table.

The side table allows Swift to maintain the basic form of the old weak reference system while fixing its flaws. Instead of pointing to the object, as it used to work, weak references now point directly at the side table.

Previously: Weak and Unowned References in Swift, How Swift Implements Unowned and Weak References, Swift’s Lazy Weak References.

Update (2019-02-22): David Smith:

I’ve seen some confusion about this recently, so figure it’s worth discussing: unowned in Swift is not like __unsafe_unretained in ObjC, and actually is pretty odd.

The difference is just that unowned deterministically guarantees a crash if misused, but that requires a lot:

In particular:

• A second reference count for unowned references is kept

• The object’s deinit runs when all strong references are gone, but it isn’t actually freed until unowned ones are too!

(Yes, unowned references still pay for atomic math; unowned(unsafe) avoids that)

This fixes the most common bizarre symptom of over-releases in ObjC: my object deallocated and a new unrelated object reused its memory. Usually this showed up as “unrecognized selector xyz sent to object of type <completely the wrong type how did this get here>”.

Fixing Twitter With Reputation Systems

Chuq Von Rospach:

As someone who does community management for a living and uses Twitter as my primary social network, I see the problems on a daily basis, I see the friends of mine who have cut back their usage or given up entirely, and I find myself constantly self-editing my use of the service to stay away from topics I know are more likely to bring out the trolls, because Twitter simply doesn’t have the tools in place for me to protect myself if they arrive.


It’s clear to me they don’t know how to fix it, and that management really isn’t committed to wanting it fixed. Here’s one problem: Twitter uses how many accounts exist on the system and Monthly Active Users (MAU) as numbers used to judge the health of the company in their reports to the financial markets.


Twitter actually needs two reputation systems: one is tied to the identity of its users, and one is tied to the links that are used in postings to twitter. That latter one actually needs to go one level deeper, because the reputation should be built based on the final content the link points to, so that all links that end up pointing to the same source end up with the same reputation.

Chuq Von Rospach:

So, by using user actions (positive and negative) about a single tweet to generate a ranked listing of the tweets generating the largest negative response, we can bring that tweet to the notice of the abuse team, who can evaluate it. If they decide the tweet is abusive, they can delete it and that act will affect the reputations of everyone who interacted with that tweet. If the tweet includes a URL (and things like graphics have internal URLs so would be included in this) then that action can be rippled out to all tweets that include that URL or any URL that ultimately links to that content, and the same actions can be taken on all users interacting with all tweets that involve that URL. So the single administrative action can remove a problematic piece of content from the entire system with thoughtful systems design in tracking the content in the system.


Second, these systems will bias a system towards a reduced diversity of opinion because it will be biased by the reporting tendency of the larger sets of users. That’s inevitable and one reason to weight the abuse team decisions heavily is to give them influence to counter-act that. It should be noted that communities tend towards this reduced diversity over time with or without systems like this and I haven’t seen a reporting system designed yet that doesn’t introduce some bias against diversity, but it’s something to be aware of so that your management policies can try to minimize the bias. Echo chambers are inevitable, they seem to be human nature. I used to feel they needed to be actively discouraged, but these days, I’m not so sure that the fight is worth the effort and stress to the community. It’s a big subjective grey area.


Can’t fit your Tweet into 140 characters? 🤔

We’re trying something new with a small group, and increasing the character limit to 280!

Aliza Rosen and Ikuhiro Ihara:

Sometimes, I have to remove a word that conveys an important meaning or emotion, or I don’t send my Tweet at all. But when Iku Tweets in Japanese, he doesn’t have the same problem. He finishes sharing his thought and still has room to spare. This is because in languages like Japanese, Korean, and Chinese you can convey about double the amount of information in one character as you can in many other languages, like English, Spanish, Portuguese, or French.

Jack Dorsey:

This is a small change, but a big move for us. 140 was an arbitrary choice based on the 160 character SMS limit. Proud of how thoughtful the team has been in solving a real problem people have when trying to tweet. And at the same time maintaining our brevity, speed, and essence!

John Gruber:

I’d rather see them keep the limit at 140 characters but add support for plain text media attachments[…]

Given that Twitter is not profitable, I’m kind of surprised that longer tweets are a free feature. They could have added a paid tier with this and other advanced features.

Update (2017-10-04): Kurt Wagner:

Fast-forward 18 months, and Twitter finally did ship longer tweets, though with a much smaller character limit still in place than originally planned.

But that fear of straying too far from what was comfortable — and the protracted two-year timeline from product conception to launch — sums up Dorsey’s return as CEO of the company he founded, which happened exactly two years ago this Thursday. In that time, Twitter has survived, but it has failed to take big swings or move with the kind of urgency necessary of a company that’s fighting for its life.

YouTube Drops Echo Show, Amazon Adds Apple TV

Tim Hardwick:

Google pulled access to YouTube through Amazon’s display-based Echo Show smart speaker on Tuesday, a move that appears to have angered Amazon and led to conflicting public statements by both companies over the sudden move.

Joe Rossignol:

Nearly two years after Amazon stopped selling the Apple TV, a listing for the Apple TV 4K has been spotted on the website by 9to5Mac.

The Apple TV 4K is currently listed as out of stock, but the fact that it has been added back is fueling speculation that Amazon may be prepared to launch its Prime Video app on the tvOS App Store imminently.

When I checked just now, the Apple TV 4K was not available from Amazon.

Previously: Amazon Prime Video Coming to Apple TV.

Update (2017-09-28): See also: Hacker News.

Update (2017-09-29): Casey Newton (via John Gruber):

Google won’t tell Amazon why it blocked access to YouTube on its Echo Show device, Amazon’s senior vice president of devices and services said. Speaking to reporters at Amazon’s headquarters today, longtime Amazon exec Dave Limp said he would “send a team to Mountain View” tonight if Google would just specify what went wrong.

Update (2017-11-27): Tim Hardwick:

Google has seen fit to return YouTube to Amazon’s display-based Echo Show smart speaker, two months after the video service was pulled from the device.

iOS 11 Smart Punctuation and Null Characters

Gabriel Hauber:

iOS 11 + smart punctuation: two dashes = en-dash. Three dashes = en-dash + null-byte? Why?

Big problems with this and core data: if you store a string where user entered three dashes, the null byte causes early string termination.

Relicensing React, Jest, Flow, and Immutable.js

Matt Mullenweg:

A few weeks ago, Facebook announced they have decided to dig in on their patent clause addition to the React license, even after Apache had said it’s no longer allowed for projects. In their words, removing the patent clause would “increase the amount of time and money we have to spend fighting meritless lawsuits.”


We had a many-thousand word announcement talking about how great React is and how we’re officially adopting it for WordPress, and encouraging plugins to do the same. I’ve been sitting on that post, hoping that the patent issue would be resolved in a way we were comfortable passing down to our users.

That post won’t be published, and instead I’m here to say that the Gutenberg team is going to take a step back and rewrite Gutenberg using a different library. It will likely delay Gutenberg at least a few weeks, and may push the release into next year.

Adam Wolff (Hacker News):

Next week, we are going to relicense our open source projects React, Jest, Flow, and Immutable.js under the MIT license. We’re relicensing these projects because React is the foundation of a broad ecosystem of open source software for the web, and we don’t want to hold back forward progress for nontechnical reasons.

This decision comes after several weeks of disappointment and uncertainty for our community. Although we still believe our BSD + Patents license provides some benefits to users of our projects, we acknowledge that we failed to decisively convince this community.

In the wake of uncertainty about our license, we know that many teams went through the process of selecting an alternative library to React. We’re sorry for the churn.

Matt Mullenweg:

I applaud Facebook for making this move, and I hope that patent clause use is re-examined across all their open source projects.

Tuesday, September 26, 2017

APFS Benchmarks

Malc (via Hacker News):

As you can see, APFS’ encryption takes about 53% of file system 4K read speed, 32% of 4K write speed, 65% of 1M read speed and 47% of 1M write speed. That is a lot compared to HFS+’s accordingly: 41, 7, 4 and 0.1%.

Even without encryption, the results show HFS+ as faster.

Michael Larabel:

Some have complained of slowdowns with APFS, but for the most part my benchmark numbers are showing faster results.

Bombich Software:

These tests also demonstrate that boot time performance between HFS+ and APFS are comparable, with only one notable exception. The pre-encrypted APFS volume (both as a source and destination) encountered a very noticeable stall during startup when the progress indicator had filled to approximately 25%. I would not conclude that these numbers reflect a degradation of performance of the filesystem when it is pre-encrypted, rather it seems there is a flaw in the startup process that is specific to this filesystem variant. Regardless, if boot-time performance is important to your workflow, we recommend that you establish macOS on a non-encrypted volume initially, then enable FileVault via the Security & Privacy Preference Pane.

His test Mac was a 2011 Mac mini. Presumably a newer Mac would have less of a performance penalty for enabling encryption.

Update (2017-09-29): Mac:

in some cases APFS appears to be slightly slower than HFS+ when it comes to writing data, especially in smaller chunks

AFFS appears to be a lot faster than HFS+ when it comes to reading data

AFPS’ built-in encryption shows decreased throughput speeds in comparison to HFS+ with FileVault2

seek rates seem a tiny bit higher with APFS but that would be unnoticeable on most workflows

Update (2018-01-11): fG! (via Peter Steinberger):

We can observe that the performance loss between Sierra to High Sierra (HFS+ to APFS) is considerable and around 40% or more.


APFS appears to introduce a considerable performance loss, even against an HFS+ encrypted filesystem. I heard before some buzz about APFS performance issues but this was the first time I installed High Sierra outside a virtual machine and measured its performance.

macOS 10.13 High Sierra Released

Chris Espinosa:

High Sierra is Apple’s 28th major operating system release for the Mac product line, spanning five processor architectures over 33 years.



Issues I’ve encountered:

Previously: macOS 10.13 High Sierra Shipping Soon.

Update (2017-09-27): Gus Mueller:

Mac OS 10.13 High Sierra includes support for decoding and viewing HEIF images. There are no OS supplied libraries for writing or converting images to the HEIF format.


If you look back at WWDC videos and remember looking at early SDK headers from the 10.13 seeds, you’ll see that support for HEIF looked like it was coming to Mac OS. I don’t know what happened, but the decision to ship it was pulled at some point.

Previously: H.265/HEVC and HEIF.

Rich Trouton:

Apple includes a command line tool named startosinstall as part of the macOS High Sierra OS installer application, inside Install macOS High

This tool has several options, including a –converttoapfs option which allows control over the APFS conversion process.

Howard Oakley:

It used to be that many Mac users, who needed to check their work with both the last and current releases of macOS, ran dual-boot systems. Start up from the internal drive, and you might be running Sierra; start from an external drive and you might be running High Sierra.

Having spent a lot of time trying to create this with my iMac, my experience is that it is very difficult, and a long, slow way to pain and grief.


If you want to install High Sierra onto an external SSD formatted in APFS, your best prospect is to make a bootable installer on a USB memory stick, start up from that, run Disk Utility to format your external SSD in APFS, and then run its installer to install High Sierra on that SSD.


Including a comma in the name or password of a APFS volume when creating it makes the process failing, miserably.

Update (2017-09-28): Daniel Jalkut:

Since I updated to macOS 10.13 High Sierra, some of my unit tests broke. Examining the failures more carefully, I discovered that they were making assumptions about the order that Foundation’s FileManager.contentsOfDirectory(atPath:) would return items.

Update (2017-09-29): Will Cosgrove:

MacOS updates are almost enough to make me quit coding. Always buggy, users blame us, we through our hands in the air. Repeat yearly.

Takes a month out of the year to workaround/fix bugs with each OS release. People expect us to find all the weird issues day one.

Ben Lovejoy:

Apple’s ‘just works’ philosophy has hit a snag for those shooting video on an iPhone for editing in Final Cut Pro X: the app doesn’t yet support the new H.265 High Efficiency Video Coding used in iOS 11.

Update (2017-10-01): Stephen Darlington:

Finding it hard to recommend that people upgrade to High Sierra at this point. Few new visible features, broken installer, glitchy UI.

Update (2017-10-02): Wil Shipley:

High Sierra locking up daily with SceneKit is not encouraging.

Daniel Jalkut:

Shortly after macOS 10.13 was released, I received an oddly specific bug report from a customer, who observed that the little square “swatches” in the standard Mac color panel no longer had any effect on MarsEdit’s rich text editor.

Howard Oakley:

To read most of the reviews, you’d have thought the whole thing went like clockwork, and most who have upgraded are impressed and delighted. From where I’m sitting, it was a succession of bad decisions which have caused serious problems for many of those who have upgraded. In short, High Sierra is currently a lemon.

I’m seeing a High Sierra bug where menus show a rainbow of colors when dismissed instead of just disappearing or fading out.

Update (2017-10-04): Steve Troughton-Smith:

10.12 doesn’t seem to be as compatible with 10.13’s APFS as you’d hope…

Thomas Tempelmann:

Even unencrypted APFS disks written by 10.13 may not be entirely readable by 10.12.6: Hard links are such as case that I found.

Tom Nelson:

It seems with each new release of the Mac operating system, there are some features that just don’t seem to work the way they used to. The tradition lives on with macOS High Sierra, so we’re gathering a list of what High Sierra broke and how to fix it (when you can).

Update (2017-10-10): Howard Oakley:

The really bizarre twist with High Sierra, though, is Apple’s handling of this and other major flaws with its urgent ‘Supplemental Update’. That update didn’t increment High Sierra’s minor version to, perhaps, but left the version unchanged at 10.13. Not only that, those apps which are replaced by this update, including Disk, retain the same version and build numbers as in the original release of High Sierra, although they have clearly changed.

It’s as if Apple is pretending that the original release of High Sierra never contained those dreadful bugs in the first place.

Update (2017-10-10): See also: Chris Locke.

Update (2017-10-13): Howard Oakley:

Digita Security has reported that installing the Supplemental Update may downgrade the XProtect data files from the current version, 2095, to the previous one, 2094, removing protection from the malware detailed here. Not only that, but Apple’s push updates may have failed to update that older version to the newer one, because your Mac was already so updated before installing the Supplemental Update!

Update (2017-10-19): Peter N Lewis:

Well, now I’m really happy I haven’t “upgraded” to High Sierra - ScanSnap S1300 never supported, and all others “Early December”. Sigh.

Update (2017-10-21): Marco Arment:

Random old things High Sierra broke[…]

And I ran into an icon API bug along with various bugs worked around in EagleFiler 1.8.1.

Update (2017-10-29): Jim Correia:

My 2016 TouchBar MBP panics/unexpectedly shuts down while sleeping on 10.13.0.

Dave Nanian:

So, two volumes share the same mount point, eh? Methinks you are very buggy, High Sierra. Very buggy indeed.

Update (2017-11-01): I and others have encountered graphics glitches that were introduced in macOS 10.13 and persist in macOS 10.13.1.

Update (2017-12-11): Here are some new issues that I encountered upon updating to macOS 10.13.2 from macOS 10.12.6:

Update (2017-12-12):

Update (2017-12-13):

Update (2017-12-16):

Update (2017-12-17):

Update (2017-12-18):

Update (2017-12-19):

Update (2017-12-29):

Update (2018-01-01): sckeedoo (via Hacker News):

I upgrated to high Sierra and have a big problem since then. About 3-4 times a day in my worktime my MacBook Pro (i7, 256 SSD, 16 GB RAM), is lagging and freezing. I even can't move the mouse on the screen, only music is playing. I don't know what is the problem because i cant even make a report on that. This is a real problem, because I am working and this still happens. Maybe anyone have this problem too? What can I do, because untill upgrade everything worked perfectly fine.

Nicholas Riley:

Wow, AFP sharing is really broken in High Sierra (server and client) and SMB is being flaky. Also the account I was using appeared to disappear until I rebooted. Glad I'm using NFS at home, but I'm sure not setting it up here!

Update (2018-01-03):

Update (2018-01-08):

Update (2018-01-09):

Update (2018-01-22): Samer Albahra:

High Sierra has been the biggest disappointment for me personally. None of the issues I had were fixed and many more introduced like preview unable to save an image after edited with certain tools in the Preview app.

Update (2018-01-29): ClassicHasClass:

Because the bottom line is this: Apple doesn’t want users anymore who just want things to keep working. Hell, on this Quad in 10.4, I can run most software for 68K Macs! (in fact, I do -- some of those old tools are very speedy). But Classic ended with the Intel Macs, and Rosetta crapped out after 10.6. Since then every OS release has broken a little here, and deprecated a little there, and deleted a little somewhere else, to where every year when WWDC came along and Apple announced what they were screwing around with next that I dreaded the inevitable OS upgrade on a relatively middling laptop I dropped $1800 on in 2014. What was it going to break? What new problems were lurking? What would be missing that I actually used? There was no time to adapt because soon it was onto next year’s new mousetrap and its own set of new problems. So now, with the clusterflub that Because I Got High Sierra’s turned out to be, I’ve simply had enough. I’m just done.

Update (2018-01-30): Bram Walraet (via Hacker News):

And since our OSX clients in the office, media library and editing studios started upgrading to High Sierra, they can’t search for files on these shares anymore.

Update (2018-02-28): Peter Steinberger quoting Docker:

“Revert the default disk format to qcow2 for users running macOS 10.13 (High Sierra). There are confirmed reports of file corruption using the raw format which uses sparse files on APFS.”

Update (2018-07-17): As of macOS 10.13.6, I’m still seeing PDF problems: crashes and hangs in Preview, blank thumbnails, and pages that don’t render properly.

Mac Keychain Vulnerability

Patrick Wardle (via Juli Clover):

on High Sierra (unsigned) apps can programmatically dump & exfil keychain (w/ your plaintext passwords)🍎🙈😭 vid #smh

other versions of macOS are vulnerable too ☠️😡 Not sure what🍎 is thinking 😭😭😭

Thomas Fox-Brewster:

If turned truly malicious, Wardle’s keychain exploit would likely be the second-stage of an attack, on top of an initial hack that would run rogue code on an Apple machine. He claimed it wasn’t hard to get malicious code running on a Mac today. Indeed, he’s repeatedly shown how to execute attacks on Apple’s operating system in recent years, and earlier this month highlighted problems in macOS High Sierra’s “Secure Kernel Extension Loading” (SKEL) feature, which was designed to require user approval before third-party code ran at the kernel level of the operating system. Wardle showcased an attack on an unpatched and previously-unknown vulnerability (i.e. a “zero-day”) that bypassed SKEL security.

“Most attacks we see today involve social engineering and seem to be successful targeting Mac users,” he added. “I’m not going to say the [keychain] exploit is elegant - but it does the job, doesn’t require root and is 100% successful.”

Roman Loyola:

Apple has released a statement on the issue:

macOS is designed to be secure by default, and Gatekeeper warns users against installing unsigned apps, like the one shown in this proof of concept, and prevents them from launching the app without explicit approval. We encourage users to download software only from trusted sources like the Mac App Store, and to pay careful attention to security dialogs that macOS presents.

This is a rather disingenuous response because Wardle specifically reported that the vulnerability equally affects signed apps.

Update (2017-09-27): Nick Heer:

Users are inundated with dialog boxes and security warnings — surely Apple knows that very few people actually read them. And, again, I stress that this malware could be attached to a totally legitimate signed app. Apple could invalidate the developer’s certificate if something like this were to be discovered in the wild, but that doesn’t mean that the security issue doesn’t exist.

Thomas Reed:

It’s important to understand that the idea that people should wait to install High Sierra because of this bug is a very bad one, for multiple reasons.

Update (2017-10-06): macOS High Sierra 10.13 Supplemental Update:

Impact: A malicious application can extract keychain passwords

Description: A method existed for applications to bypass the keychain access prompt with a synthetic click. This was addressed by requiring the user password when prompting for keychain access.

CVE-2017-7150: Patrick Wardle of Synack

Sandbox Inheritance Tax

Daniel Jalkut:

When my subprocess is launched, the system sees that extra “” entitlement in the context of “”, and unceremoniously crashes my the child process.

I’m not sure what Apple’s reasoning is for imposing this entitlement on sandboxed targets, but it appears to be doing so across the board, for literally every sandboxed target in my app. I confirmed that all of my apps, XPC processes, helper tools, etc., are all getting this bonus entitlement.


I’ve learned that Xcode’s “Export Archive” functionality causes the unwanted entitlement to be removed. Apparently the assumption is that everybody creates Xcode archives as part of their build and release process.

It’s still a bad bug, though, because you can’t run your app from Xcode during development. How did Apple not run into this when testing any of their own apps?

Update (2017-09-28): Daniel Jalkut:

So, if you’re a developer who doesn’t use archives, what are your options? I’ve come up with four workarounds, and I present them here, roughly sorted by advisability and level of tedium[…]

Update (2017-09-29): Erik Schwiebert:

yea, we dont use Xcode Achives due to restricted access to MSFT corp signing cert.

iOS Default File Associations

Federico Viticci:

As expected, one of the most common questions I’m getting. iOS needs a new system for default file associations.

Ian McDowell:

Turns out Google Drive registered as the owner of the ‘’ UTI. When they enabled LSSupportsOpenInPlace, they became the default opener for every file format who’s owner does not support open in-place.

It’s a shame that Apple didn’t put safeguards for apps that do this. As the developers of Office, our own apps won’t open our own documents until we support opening in-place, which requires lots of changes to our open/save logic.

Update (2017-09-27): Gabriel Hauber (via Juande SantanderVela):

Dropbox also registers for and public.content but doesn’t set Handler rank to Owner - I think that’s the key?

Text Replacements Do Not Sync

Brian Stucki (tweet):

In iOS 6 (2012), syncing between Mac and iOS devices was introduced. At least that is when Apple said it was introduced. I have yet to see the feature roll out. Therein lies the premise of this post.

Text replacement syncing is completely broken. Sometimes it works, sometimes it doesn’t. Sometimes it will only sync back old snippets that you have deleted. Sometimes the sync will work one direction, but not the other. Every time I ask about this on Twitter, it brings a strong response of similar experiences.


I mostly put forward this data to show just how random and far reaching the issue is on Apple devices.

Update (2017-09-27): Wojtek Pietrusiewicz:

I found my own solution. I had to go through this again, after updating to iOS 10 last year. So that’s twice since the feature was added — not bad, not perfect.

My method is supposed to isolate the one device on your account, which is causing problems. I personally have four — two Macs, an iPhone, and an iPad. Here is what I did, twice now, to fix the syncing of text shortcuts.

John Gruber:

I don’t know what’s going on with text replacement syncing, but it is the worst kind of buggy: it works just well enough to keep using it, but my machines are never in perfect sync. And, the feature is really useful, and really helpful to me on a daily basis. Apple: please get this fixed.

Nick Heer:

It’s truly astonishing that seemingly the buggiest part of iCloud is syncing plain text strings. As one person quipped in Slack, it’s amazing that I can make dozens of edits to a RAW photo and see that reflected nearly instantaneously on all my devices, but changes to text replacements remain entirely unreliable.

Brian Stucki (via Tim Hardwick):

Perhaps a clean install of High Sierra is now saving snippets correctly? It’s a start I guess. But who knows if it will still be working this afternoon.

Guilherme Rambo:

I just confirmed that text replacements sync through CloudKit on iOS 11 and High Sierra.

Update (2017-09-28): John Gruber:

Apple spokesperson emailed me to say they checked with the team, and an update that moves text replacement syncing to CloudKit should be rolling out to iOS 11 and MacOS 10.13 High Sierra users in the “next month or so”.

Update (2017-12-05): John Gruber:

In an update to his original report, Stucki reports that as of last week, this is now the case. So far so good for me personally. I think this deserves a non-sarcastic finally.

Update (2018-01-31): Meek Geek:

I’m on the latest versions of macOS and iOS, and text replacement shortcuts are still not syncing.

Update (2018-12-04): Federico Viticci:

More updates about my iCloud issues:

All my text replacements are now gone, replaced by ‘On my way!’ duplicates. I have no idea what is going on.


Update (2019-02-11): Mark Malström:

Went to add a new text replacement shortcut and discovered that all of my previous shortcuts have disappeared…

Seriously, how have these syncing issues not been resolved in the last 8 years, since the feature was released?

Monday, September 25, 2017

OmniFocus and Siri on iOS 11

Ryan Christoffel:

In iOS 11, Siri can fulfill all kinds of OmniFocus-related requests. Many of these will be similar commands to what you might use for Reminders, only with ‘in OmniFocus’ added to the end. For example, “Add ‘Write the history essay’ to my School list in OmniFocus.” There are three main areas of functionality:

  • Task creation: This includes the ability to add tasks to certain projects and create time or location-based reminders. You can even create a new project entirely.
  • Task completion: Simply put, you can mark items as complete with your voice.
  • Searching: This allows Siri to display a visual representation of different lists of tasks, such as ones due today, ones created today, or all tasks belonging to a certain project.

I went to try these and found that the new Siri features didn’t work because I was using OmniFocus 2.19.1, the last version supported by the “legacy support edition.” The current version is 2.21.1, but to get it I needed to download the “universal” version of app. Then I went to Preferences > Synchronization > Show Sync Details… > Unregister to prevent the old version of the app from bogging down syncing.

My primary concern is being able to dictate longish notes and have them show up as new tasks in OmniFocus. Previously, the best way I found to do this was to say “Make a reminder.” Then Siri would prompt me for the text, and I could dictate a complete sentence. This was much better than the “Add ___ to my reminder’s list” formulation. The problem with both of these, though, is that Siri would look for anything in the text that sounded like a day or a time, remove those words, and then try to stick them into the reminder’s due date. So it would mangle what I said and then assign an unwanted date.

Now, I can say “Add a task in OmniFocus.” This seems to bypass the unwanted parsing, and it also saves a step by creating the task directly in OmniFocus instead of using the shared Reminders list, which sometimes led to duplicates being imported.

There are still some problems, though. Sometimes, when I say “Add a task in OmniFocus” it will not go into the mode where it lets me dictate. Instead, Siri will say something like “I found 25 reminders” and then show a list of some OmniFocus tasks. I have no idea why this happens since the Siri screen shows that it understood what I had said.

Also, the length limit for OmniFocus seems to be even shorter than for Reminders. After a sentence, or even a long clause, even if I’m careful not to pause, Siri will decide she’s done listening, truncate my task, and throw away everything else I said.

This can be avoided by manually creating a new task in OmniFocus and tapping the microphone button. Then I can say as much as I want. But, as far as I know, there’s no way to initiate this via Siri.

Previously: Adventures in Siri Failures: Reminders Edition.

Update (2017-09-26): Gok:

You can use hold-to-talk to prevent recording from stopping. Hold down the Siri button (hardware or software) until you’re done.

However, I mostly use this feature in the car, where I don’t want to have to hold down the button.

Update (2024-05-28): I’m now using iOS 17, and “Add a task in OmniFocus.” does not bypass the unwanted parsing. There does not seem to be a way to make a task with literal text.

watchOS 4 and Podcast Apps

Matt Birchler:

So after all that said, how do I feel about watchOS 4? I think this is ultimately an update similar to watchOS 2. It’s a small update that makes some key features better, but it does not change the smart watch game in any meaningful way. I don’t mean that totally as an insult, but you should know that this update is not going to revolutionize the world of smart watches and make them something everyone just must have.

But while watchOS 4 is not a revolution, it is a good step in the right direction. This feels like a refinement year to me, which just means that you are going to enjoy your Apple Watch more than you did already. Media controls are a big win, as I now feel like my watch and my phone are more aware of what each other are doing.

Marco Arment (Hacker News):

The Apple Watch desperately needs standalone podcast playback, especially with the LTE-equipped Series 3, which was designed specifically for exercising without an iPhone.

Believe me, I’ve tried. But limitations in watchOS 4 make it impossible to deliver standalone podcast playback with the basic functionality and quality that people expect.


Requiring podcast apps to also be workout apps is a user- and developer-hostile hack that Apple probably doesn’t intend.


The lack of volume control is especially damaging with watchOS 4’s great new “Auto-launch Audio Apps” setting.


WKAudioFilePlayer will not play to the Watch’s built-in speaker — it only plays to headphones connected to the Watch via Bluetooth. If playback is attempted without headphones connected, WKAudioFilePlayer just silently fails to play, without returning any errors.


Transferring a podcast file to the Watch is a long-running task, often taking at least a few minutes per episode (and sometimes much longer), but the WCSessionFileTransfer class provides no progress information. So there’s no way for apps to inform users how long the transfers may take, or if they’re currently moving at all.

iStat Menus 6


Notifications, based on CPU, network, disk, battery, weather and other events.

Hotkeys to open and close menu dropdowns, for quick keyboard access.

Reorderable dropdown menus, with the ability to hide sections.

A compact Notification Center widget, covering some of the popular iStat Menus features.

There are more changes, including an indicator for AirPods battery level, though I already get that through Tooth Fairy. Also interesting is that it can show weather information, and that this is enabled by a subscription fee ($6/year for 15-minute updates).

Update (2017-09-26): See also: MacRumors.

Update (2017-09-29): See also: David Sparks and Agen G. N. Schmitz.

Surprising Behavior of Non-optional @NSManaged Properties

Arek Holko:

A few minutes (or more honestly hours) of debugging later, we notice that the name is an empty string only on instances that were deleted from a context and the context was saved. (Deletion of managed objects is unrelated to ARC, so we have objects living in memory even though they are already treated as deleted.)


As pointed out on Reddit replacement of nil with an empty string is actually caused by bridging from NSString to String.)


The same silent substitution happens for these types too:

  • numeric types use a value equal to 0
  • Data uses an empty Data instance

So this does not seem to be Core Data–specific. However:

This behavior spans relationships too. […] Can you guess what happens? We didn’t set up the user relationship, so we should get either a nil or a fatal error, right? Well, we don’t. An empty string is printed in this case too!

This is completely counter-intuitive when compared to the normal Swift code: event.user is nil, yet isn’t.

Here, event.user was declared as non-optional.

Sierra’s Unified Log Evolves

Howard Oakley:

When I assessed this in March 2017, the default period for which log entries remained, appeared to be determined by log size, and amounted to several days.

In Sierra 10.12.6, the current period is about 20 days, possibly even more.

The present structure of log files is also quite different from early releases of Sierra.

Previously: Logs Unite: Forensic Analysis of Apple Unified Logs, macOS 10.12.4 Locks Console Log Away From Normal Users.

Friday, September 22, 2017

Swift Proposal: Non-Exhaustive Enums

Jordan Rose:

Currently, adding a new case to an enum is a source-breaking change, which is very inconvenient for library authors. This proposal aims to distinguish between enums that are exhaustive (meaning they will never get any new cases) and those that are non-exhaustive, and to ensure that clients handle any future cases when dealing with the latter. This change only affects clients from outside the original module.


Public enums can be declared as exhaustive or as nonexhaustive. In Swift 4 mode, the default behavior will be exhaustive for source compatibility; in Swift 5 it will be nonexhaustive.

When a client tries to switch over a nonexhaustive enum, they must include a default case unless the enum is declared in the same module as the switch. In Swift 4 mode, omitting this case will result in a warning; in Swift 5, it will be an error.

Enums imported from C will be nonexhaustive by default, with a new C-side annotation to make them exhaustive. These enums conservatively always have the “cross-module” behavior.

Update (2017-12-20): See SE-0192.

iPhone 8 and iPhone X Cameras

DxOMark (via Phil Schiller, Hacker News):

The Apple iPhone 8 Plus is the best-performing mobile device camera we have ever tested. Its overall DxOMark Mobile score of 94 sets a new record, beating out the 90 points for both the Google Pixel and the HTC U11, as well as the 92 that its sibling iPhone 8 just scored. Its Photo score of 96 is also a new record, blowing past the Pixel’s 90. For Video, its score of 89 is among our highest, but tied with the HTC U11 and slightly below the Pixel’s 91. Of course, the Pixel is nearly a year old now, so it makes sense that Apple’s new flagship is breaking new ground.


In this case, DXOMark magically added a metric (bokeh and zoom) just one week after the iPhone 8 review. Of course this is a good plus for Apple. Before iPhones were behind Google Pixel, behind HTC U11, Samsung S8+. They were not in the top 10. Now magically, they get to be on top. I wouldn’t be surprised if there wasn’t a discussion or collaboration between doxmark and apple to review their metrics to have iPhone 8 and X under the best light possible.


On the other hand the iPhone 7 Plus was never reviewed while the Plus models always tended to be about 3-4 points better than the regular sized iPhones. But this was around the launch of the Google Pixel where they quoted (so I assume they paid) the DXO score to show how much better it was than the iPhone.


Comparing their subscores it’s obvious that without the new zoom and bokeh categories the Pixel would have stayed on top.

Regardless, the photos are impressive.

John Paczkowski:

This year’s leap, however, feels particularly meaningful. A number of early reviews of the iPhone 8 obsess over the camera — TechCrunch, for example, chose to review the phone exclusively as a camera. And there’s a decent argument to be made that the enhancements to the camera systems in the 8 Plus and the X are some of the biggest upgrades in the new line. The camera’s effects don’t rely on filters. They’re the result of Apple’s new dual camera system working in concert with machine learning to sense a scene, map it for depth, and then change lighting contours over the subject. It’s all done in real time, and you can even preview the results thanks to the company’s enormously powerful new A11 Bionic chip. The result, when applied to Apple scale, has the power to be transformative for modern photography, with millions of amateur shots suddenly professionalized. In many ways it’s the fullest realization of the democratization of high-quality imagery that the company has been working toward since the iPhone 4.


It’s worth noting that Apple has been working towards this in ways that are far less flashy than Portrait Lighting. The cameras on the 8 Plus and the X, for example, detect snow as a situation and automatically make adjustments to white balance, exposure, and whatnot so you don’t need to worry about it. “It’s all seamless; the camera just does what it needs to,” says Schiller. “The software knows how to take care of it for you. There are no settings.”

Austin Mann (Hacker News):

Almost no one is talking about it, but this year we got Slow Sync for the flash, and it’s actually pretty cool. Traditional photographers are already familiar with this, but for those of you who aren’t, basically Slow Sync is keeping the shutter open a bit longer to allow more natural light in when shooting with a flash. As a result, the image isn’t only lit by the light provided by the flash, but instead is balanced with the ambient light of the environment which creates a more balanced, natural shot.

See also: Stephen Su’s discussion of the original iPhone’s camera (via Bob Burrough).

Previously: iPhone 8 Reviews.

Update (2017-09-23): John Gruber:

Particularly with their “overall” score, DXO is pretending to assign an objective scientific-looking measurement to something that is inherently subjective. It’s horseshit, but everyone in the media falls for it. I said it was horseshit last year when they named a Pixel their “highest rated ever”, and I say it’s bullshit now when they said that about an iPhone.

Nick Heer:

Now, I don’t think there was any collusion with Google or any nonsense like that. There are some people who believe that DxOMark’s updated protocol conveniently aligns with Apple’s camera priorities and I, too, don’t believe that there’s any favouritism going on there either — their updated test suite is simply reflecting the changing reality of these products. But I think that DxOMark somewhat soiled their credibility with such an enormous lag in testing the 7 Plus, without great reason to do so.

Update (2017-10-04): Tim Hardwick:

Samsung’s Galaxy Note 8 produces generally better results than the iPhone 8 Plus when shooting still photography, but falls short of Apple’s handset when it comes to recording video. That’s according to the latest comprehensive smartphone camera test conducted by Dxo Labs, in which the two phones essentially came out tied overall.

Update (2017-10-23): Mark Spoonauer (via John Gruber):

The iPhone 8 Plus and Google Pixel 2 represent the pinnacle of camera phones right now. But which one is best? We put both of these sharpshooters to the test, comparing them head to head in all sorts of conditions. Apple’s camera came out on top, but Google’s won some key rounds.

Update (2017-11-15): Philip Greenspun:

Compared to the Huawei Mate 10, which scored the same overall, the iPhone X has much better “zoom” (switching from the wide to the normal perspective camera?) and much worse autofocus (not great for parents of the young and restless).


My take-away is surprise that the competition is so close. Apple has a vast advantage in money and engineering resources, yet they cannot beat Huawei or HTC and LG (the builders of the Pixel 2 and 2 XL, respectively). There is no getting around the physics when the case is that slim and therefore it is impossible to use a real sensor and real lens? Stuffing four more cameras in there and using them in parallel (see the Light L16) won’t help?

iTunes Rentals Increase From 24 to 48 Hours

Apple (via Jon Maddox):

You have 30 days to start watching a movie after you rent it. After you start watching the movie, you have 48 hours to finish it. You can watch the movie as often as you like until it expires.

This makes a lot of sense, as we often have trouble watching a movie in one sitting.

3D Touch App Switcher to Return

Craig Federighi (via Quinn Nelson):

We regretfully had to temporarily drop support for this gesture due to a technical constraint. We will be bringing it back in an upcoming iOS 11.x update.

I wonder what that constraint was and why it’s taking so long to fix given that people have been complaining about the gesture’s removal since the early iOS 11 betas.

Thursday, September 21, 2017

A11 Bionic

Lance Ulanoff (via Joe Rossignol):

Srouji told me that when Apple architects silicon, they start by looking three years out, which means the A11 Bionic was under development when Apple was shipping the iPhone 6 and its A8 chip. Back then we weren’t even talking about AI and machine learning at a mobile level and, yet, Srouji said, “The neural engine embed, it’s a bet we made three years ahead.”


The high-performance cores and efficiency cores introduced with the A10 Fusion CPU got an iterative update, including the addition of two more cores and the ability to handle asymmetric multi-processing, which means the chip can run 1, 2, 3, 4, 5, or 6 cores at once. Managing the core use on the now 10-nanometer CPU is one of the reasons the A11 Bionic, according to Apple, is 70 percent more energy efficient (even while being 25 percent faster than the A10). How the system decides which cores to use (high performance or high efficiency) and how many is a little non-obvious.


The secret sauce of a Neural Engine, what makes it different from other parts of the A11 Bionic, is its ability to handle matrix multiplications and floating-point processing.

Apple is not, however, opening this neural brain to everyone.


There are other things the A11 Bionic controls that Apple doesn’t often talk about, including the storage controller that includes custom error-correcting code (ECC) algorithms.

This last bit relates to APFS not checksumming its data blocks.

John Gruber:

I asked Apple last week what exactly was “bionic” about the A11 chip system. The answer, translated from Apple marketing-speak to plain English, is that The Bionic Man and Woman were cool, and the A11 chip is very cool. I think they’ve started giving these chips names in addition to numbers (last year’s was the A10 Fusion) because the numbers alone belie the true nature of how significant the improvements in these chips are. Going from A10 to A11 is like going from 10 to 11 mathematically, which implies a 10 percent improvement. That’s not the case at all here — the A11 is way more than a 10 percent improvement over the A10. So they’ve given it a name like “Bionic” to emphasize just how powerful it is.

Update (2017-09-22): Mark Spoonauer (via Phil Schiller):

The “Bionic” part in the name of Apple’s A11 Bionic chip isn’t just marketing speak. It’s the most powerful processor ever put in a mobile phone. We’ve put this chip to the test in both synthetic benchmarks and some real-world speed trials, and it obliterates every Android phone we tested.


The iPhone 8 even edged out the score from the 13-inch Apple MacBook Pro with a 7th-generation Core i5 processor. That notebook notched 9,213. Is Geekbench 4 really comparable from phone to desktop? According to the founder of Geekbench, John Poole, “the short is answer is yes that the scores are comparable across platforms, so if an iPhone 8 scores higher than an i5, then the iPhone 8 is faster than the i5.”

Update (2017-10-03): David Heinemeier Hansson:

Google Pixel scores a meager 50 on the JetStream JS benchmark. iPhone 8 is at 220. Almost 5x?!? Even iPhone 6S is at 128. Embarrassing.

Dan Masters:

As I’ve repeatedly said: if iOS is artificially slowing down basic tasks due to animations, it doesn’t matter how fast Apple’s chips become.

Apple Maps in iOS 11

Jason Snell:

At long last, Apple Maps provides lane guidance, so you can see at a glance which lane you need to be in so that you can make your turn (or not make a turn you don’t want to make). In my testing, this feature was a bit spotty—at one point, a trip up the freeway didn’t show proper lane guidance, but the return trip down the freeway did. Still, when it’s there, it’s great, because it’s awfully nerve-wracking to not know whether you need to get over another lane.

Similarly, Apple Maps now displays the current Speed Limit for the road you’re driving on, a feature I’ve been using in other navigation apps for years. Again, better late than never.

Google Maps for iOS has had good lane guidance for a long time but doesn’t show the speed limit.

Update (2017-09-21): Ed Marczak:

Google Maps does show the speed limit…sometimes. It does in California, but not in NY, so 🤷

Corbin Davenport:

According to a post on the Android Auto support forum, the speed limit indicator is only live in the San Francisco Bay Area and Rio de Janeiro, Brazil.

HHVM Chooses Hack Over PHP 7

Max Wang (via Hacker News):

PHP7 is charting a new course away from PHP5, and we want to do the same, via a renewed focus on Hack. Consequently, HHVM will not aim to target PHP7. The HHVM team believes that we have a clear path toward making Hack a fantastic language for web development, untethered from its PHP origins. We’d do ourselves and our users a disservice by positioning HHVM as an uncommon, less well-documented, less compatible PHP7 runtime.

iPhone X Design and the Notch

Riccardo Mori:

From a hardware perspective, the cameras and sensors in that part of the iPhone couldn’t have realistically been placed anywhere else, so what do you do if you want an edge-to-edge display? You either have the display reach them, surround them; or you maintain a minimum of bezel on the ‘front’ and ‘chin’ of the phone, and leave them out of the display area.


Well, I can’t believe I’m writing this, but I actually prefer these two design choices over what Apple has done with the iPhone X. Like with the notch on the iPhone X, my eye is immediately attracted by the Essential Phone’s front camera, ‘breaking’ the display’s continuity there in the middle. Yet I think that it’s small enough to get enough out of the way aesthetically, and not be a hindrance to the phone’s user interface. More information can be displayed both to the left and right of the camera. To be fair, Apple had too much technology to cram there to achieve a similar, less visually annoying result. Then why not opt for a Samsung-inspired approach?

John Gruber:

I’m not on board with Apple’s “embrace the notch” user interface, but I do find it commendable that they showed the notch everywhere during the keynote Tuesday.


Ben Bajarin did get an answer from Apple on this at the event, and I was correct: the default is for video not to zoom to fill every pixel, so you won’t see the notch in video playback unless you double-tap.

Bryan Irace:

Remember when we first saw all of this wasted space and thought “Surely this will make sense on the new phone”? 🙄

Marco Arment:

I was hoping that the long-rumored edge-to-edge iPhone screen would still be a rectangle, possibly even with room for a Home button on a narrower bezel, so I wouldn’t have to change my habits (or my app’s layout).


Apple would’ve lost what the iPhone has had since its introduction: a unique, recognizable shape that distinguishes itself from all of the other boring rectangles out there.

John Gruber:

My objection (again, after admittedly only spending 10-15 minutes with an iPhone X in hand) remains that Apple could embrace the notch on the lock and home screens, allowing for this new iconic silhouette, without embracing it all the time.

Keith Harrison:

If you are not using safe area layout guides or layout margins there is a good chance your controls will end up too close to the device edges. The rounded edges, top central housing or bottom home indicator can clip, hide or overlay controls that would be fine on other iPhone models.


There is a new property (insetsContentViewsToSafeArea) on table views in iOS 11 that controls whether the content view of a table view cell is inset for the safe area. This is true by default which causes a subtle change with table views in landscape on an iPhone X.

Paul Haddad:

Feels like so much wasted space, landscape has less “safe” area than the 8.

Marco Arment:

The X’s biggest UI-design problem for me isn’t the notch — it’s the home indicator and the rounded screen corners.

iPhone UIs basically can’t use the four corners anymore. That’s not a small deal.

We’re going to have to add a lot of margins everywhere.

Will be challenging to have the same UI scale between the iPhone SE, 6/7/8, Plus, and X.

SE owners will get the worst UIs forced on them.

Joe Cieplinski:

I do have to wonder as well, why so many people seem obsessed with this edge-to-edge screen concept. It’s important enough for Apple to make a major design tradeoff with the notch, so it’s clearly a big deal to people. But as I’m reworking my apps to behave correctly on the X's screen, what I’m learning quickly is that all four far corners of the screen (the areas that used to be blank “chin” areas) are too inconvenient for thumbs to reach easily. Which means they are lousy for UI interactive elements. Thanks to the notch, and the fact that the phone is no longer 16 x 9, watching video full screen is a poor experience as well. So most of what’s important is going to end up in the “safe” areas—in other words, the exact dimensions of your iPhone 8 screen. Basically, we’re lighting up the edges of the X screen with background color and calling it a revolution.


Don’t place interactive controls at the bottom of the screen. The spacing around the home indicator is purely created for gestures, swipe up to go home. Placing buttons near this indicator or in the bottom round corners of the display might not be great. Users might accidentally use the home gesture and your UI will be difficult to reach. You can however still use tab bars and function bars, but keep in mind that they should not interfere with the home indicator.

Previously: iPhone X, iPhone and iPad Resolutions.

Update (2017-09-22): Max Rudberg:

These are explorations on how certain design patterns can be adapted to the new screen.

Update (2017-09-23): Chris Pirillo:

Is the iOS “Plus” landscape keyboard layout artificially cramped because we’re paying for the screen sins of the iPhone X?

Update (2017-09-27): Dan Masters:

If “all screen” is so important, why draw attention to the non-screen part with iOS’ bleed-through status bar design?


If for brand differentiation, why not simply show the bleed status bar on the home and lock screens (much like Springboard has become iconic in its own right), while at least having it black inside apps to keep the focus on the software experience?

Update (2017-09-29): Timothy Horton (via John Gruber):

Other pages — especially those designed with full-width horizontal navigation bars, like the page below — can optionally go a little further to take full advantage of the features of the new display. The iPhone X Human Interface Guidelines detail a few of the general design principles to keep in mind, and the UIKit documentation discusses specific mechanisms native apps can adopt to ensure that they look good. Your website can make use of a few similar new pieces of WebKit API introduced in iOS 11 to take full advantage of the edge-to-edge nature of the display.

Update (2017-10-03): Todd Ditchendorf:

When u ask your engineers to invent these kinds of hacks to work around your HW design…don’t u stop & reconsider it?

Marco Arment:

Can I just look at my layout on the landscape X and cry?

I’m sure we’ll all like the notch eventually, but damn, landscape is just awful.

Colin Cornaby:

Not completely offended by the notch, but I’m definitely not sure rounded display corners is a good idea for phone UI in general.

The notch is less disruptive than adding massive right/left/top/bottom margins specifically because of the curves.

Bob Burrough:

Bondi Blue iMac: shape defined by display
iMac G4: shape defined by display
iPhone: shape defined by display
iPhone X: display defined by shape

Ken Segall:

That’s why it makes me nervous when I see today’s Apple playing loose with words and images to sell a product.

Case in point: the “all-screen” iPhone X.

Of course we can see with our own eyes that iPhone X is not all-screen. It has a noticeable edge around the entire display, which even the Samsung S8 does not have. And then there is “the notch” — the object of many a critic’s venom.


“It’s all screen,” says the headline. Yet, astonishingly, the image focuses almost entirely on the only two parts of the phone that are not screen—the visible edge and the notch.

Update (2017-10-04): Peter-Paul Koch (via Hacker News):

During the introduction of the iPhone X a hilarious gif made the Twitter rounds, showing a list scrolling past the new notch.

I asked the question any web developer would ask: “Hey, is this even possible with web technology?” Turns out it is.

Max Rudberg (via Nick Heer):

In the same spirit as the first post (UI Design for iPhone X: Bottom Elements), this post will deal with designing for the iPhone X. I use findings in our own apps in some of the examples.

Update (2017-10-20): John Gruber:

But with the notch? No way. Here’s one simple way to think about it: what does Apple do 2-3 years from now if they ship an iPhone with no notch? Describe it as “Really all screen this time”?

Update (2017-10-21): Bob Burrough:

iPhone 1 bezel width: 4.64 mm

iPhone X bezel width: 3.91 mm

This is according to Apple’s developer documentation.

iPhone 5, 5S, 5C, SE all have bezel widths narrower than iPhone X.

Update (2018-01-23): Brad Ellis:

iPhone X rounded screen corners don’t use the classic rounding method where you move in a straight line and then arc using a single quadrant of a circle. Instead, the math is a bit more complicated. Commonly called a squircle, the slope starts sooner, but is more gentle.

Update (2018-09-03): Ryan Jones:

iPhone XS wallpaper does a stellar job of hiding the notch. Apple not embracing the notch.

Update (2018-10-26): Rob Griffiths:

The notch adds nothing to the iOS experience, but takes away much. Those stupid ears grab my eyes every time I see them, and there’s no way to avoid them, save never using anything but an all-black screen. When not in an app, they show status items on a black background, which is fine…as long as your iPhone’s wallpaper is also black.

But once you’re in an app, you’re in Notchville…

iPhone and iPad Resolutions

PixelCut (via John Gruber):

We have added the new iPhone X, iPhone 8 and iPhone 8 Plus to the guide below. To learn more about the unique screen of iPhone X, check out our new iPhone X Screen Demystified article.

David Barnard:

The entire home screen of the original iPhone (320x480 pixels) is about the size of 2 icons on the iPhone X home screen (1125x2436 pixels).

Marko Karppinen:

The 10.5-inch iPad Pro launched 3 months ago but apps like Facebook, Netflix and Kindle still don’t natively support the new screen size.

Wednesday, September 20, 2017

Swift 4.0 Released

Ted Kremenek:

Swift 4 is now officially released! Swift 4 builds on the strengths of Swift 3, delivering greater robustness and stability, providing source code compatibility with Swift 3, making improvements to the standard library, and adding features like archival and serialization.


One advantage of these language modes is that you can start using the new Swift 4 compiler and migrate fully to Swift 4 at your own pace, taking advantage of new Swift 4 features, one module at a time.

I ended up updating all of my code at once, and it took less than an hour. This is by far the smoothest major Swift update so far.

Unfortunately, the tooling is still rough. Some of the new standard library methods don’t appear in the documentation (even searching with Dash), and Xcode’s “Jump to Definition” feature is inoperable much of the time, so the only way to actually see some of the new methods is via code completion. At least with Objective-C there is an actual header file I can open or search.

Mike Ash:

We’re not getting a radical rework of the syntax like we did last year, nor are we getting a breathtaking pile of new features like we did for Swift 2, but there are some nice additions you can use to improve your code. Let’s take a look!

Ole Begemann:

An Xcode playground showcasing the new features in Swift 4.0.

Chris Eidhof:

Swift 4 really helps to clean up many examples in Advanced Swift[…]

Previously: Swift.Codable, Swift 4: Key-Value Observation, Swift’s Error Handling Implementation, Swift 4: Bridging Peephole for “as” Casts, Swift 4: Synthesizing Equatable and Hashable Conformance, Swift 4: JSON With Encoder and Encodable, Swift 4 String Manifesto, Provide Custom Collections for Dictionary Keys and Values.

Update (2017-09-25): See also: Updating Strings For Swift 4.

Update (2017-10-04): Nate Cook:

In the latest release of Swift, dictionaries and sets gain a number of new methods and initializers that make common tasks easier than ever. Operations like grouping, filtering, and transforming values can now be performed in a single step, letting you write more expressive and efficient code.

This post explores these new transformations, using some grocery data for a market as an example.

Safari 11

Ricky Mondello:

Safari 11 on macOS blocks videos across the web from auto-playing. It gives you control over what sites are allowed to auto-play.

You can automatically use Safari Reader on some or all websites in Safari 11. Hold-tap or right click on the Reader button to turn this on.

Beyond auto-play and Reader, Safari 11 lets you customize other settings on a per-site basis, like use of content blockers and zoom level.

You can pick and choose which Reading List items are saved for offline reading in Safari 11 by swiping sideways on a Reading List item.

Safari on iOS 11 rationalizes the scrolling behavior between Safari, subframes in Safari, and apps. It feels really great.

iOS 11 revamps Safari View Controller with an appearance that looks more like an in-app browser. It feels more like an extension of an app.

Safari View Controller on iOS 11 also won’t surprise you by opening in Private Browsing while Safari is in Private Browsing. (Yay!)

Safari on iOS 11 will share the canonical link for a page, which can improve the experience of sharing a “mobile” website.

Safari 11 fixes an extensions memory handling issue that will make some websites (e.g. Google Docs) use much less memory.

iOS 11’s Password AutoFill for Apps makes it easier to log into apps using passwords saved in your iCloud Keychain.

If you need to look up a saved password on iOS 11, you can in the new Accounts & Passwords section of Settings. Or just search Settings.

Lots of good stuff here. I didn’t think Apple would ever embrace site-specific preferences, which I enjoyed many years ago in OmniWeb.

Unfortunately, since updating to Safari 11 I’m seeing a bug where opening links from other apps always switches to the Safari window in the leftmost space even if there’s one that’s open in the current space.

Previously: Safari’s Intelligent Tracking Prevention.

Update (2017-09-21): Jim Dalrymple:

Apple introduced a new technology to intelligently block browser cookies in Safari, which brought criticism from a number of advertising organizations. Apple believes in privacy with every product it makes, and the advertising groups want to track everything we do so they can sell ads.

Apple responded to that criticism this afternoon by fully explaining what they are doing for the consumer and standing up for themselves.

Ben Lovejoy:

What ITP means for consumers is that Safari will effectively forget which sites you’ve visited after a day. Net result: you’ll see fewer targeted ads, and more generic ones.


So personally, I want to allow third-party cookies to persist for the normal 30 days. But High Sierra won’t allow it. So despite strongly supporting the vast majority of Apple’s privacy initiatives, in this particular case, I think Apple has got it wrong.

See also: Hacker News.

Update (2017-09-22): Ricky Mondello:

Don’t know how I forgot this one! iOS 11: if a link opens in a new tab, you can swipe back to close it.

Update (2017-09-26): Juli Clover:

With the release of macOS High Sierra, Apple is now collecting data from the Safari browser using differential privacy technology, reports TechCrunch. Apple is aiming to gain information about browsing habits to help identify problematic websites that use excessive power or too much memory.

Update (2017-10-26): Kirk McElhearn:

A useful new feature in the latest version of Safari for macOS High Sierra is the ability to set permanent zoom for any website. If a site has fonts that are too small, or too large, you can change them, and ensure that every time you visit the site, the change will be remembered. Safari does this automatically, but you can control the zoom from the app’s preferences.

iOS 11: Control Center No Longer Turns Off Bluetooth and Wi-Fi

Joe Rossignol:

When you deep press on the system toggles pane, for example, a larger pane pops open with previously hidden AirDrop and Personal Hotspot controls.

On iOS 11, users can add, remove, and organize controls in Control Center through the Settings app.

Apple (via Joe Rossignol):

In iOS 11 and later, when you toggle the Wi-Fi or Bluetooth buttons in Control Center, your device will immediately disconnect from Wi-Fi and Bluetooth accessories. Both Wi-Fi and Bluetooth will continue to be available, so you can use these important features[…]


If you want to completely disable Wi-Fi and Bluetooth for all networks and devices, follow these steps:

  • To turn off Wi-Fi, go to Settings > Wi-Fi and turn off Wi-Fi.
  • To turn off Bluetooth, go to Settings > Bluetooth and turn off Bluetooth.

On the other hand, if you don’t turn them fully off they will eventually turn fully back on according to some non-obvious rules.

Nick Heer:

I kind of get why this change was made: a frequent barrier in my use of AirDrop “just working” is that a friend’s Bluetooth connection has been toggled off. I don’t think that most people would be fully aware that both networking services must be switched on for many of Apple’s “continuity” features to keep working.

The new behavior kind of makes sense, but it’s not very intuitive.

Update (2017-09-21): In some circumstances, you can use Airplane Mode as a substitute.

John Gruber:

Off the top of my head, I would suggest making them three-way switches: on and connected, on but disconnected, and off. I don’t have an idea for how to present that visually though. Or make on/off buttons available in the expanded menu you get when you 3D touch on these controls. UPDATE: DF reader Matthew Smith emailed to point out that these buttons already have three states: “In Control Center, when you tap the Wi-Fi or Bluetooth icon, it goes from blue to grey. If you tap the Airplane mode icon, both icons go grey, but also gain another indicator: A diagonal line through their icons. This is a good way to tell the difference between disconnected and off. So with the currently available indicators, these could easily become a 3-way switch.”

3-way switches were my first thought as well, but I presume Apple rejected this idea because most people would then actually turn Wi-Fi and Bluetooth off, thus undermining the point of the change.

See also: Hacker News.

Mike Ash:

I think the functionality makes a lot of sense. But it sure would have been nice to indicate what’s going on in the UI somehow. Maybe not reuse the familiar icons to indicate a new thing?

Update (2017-09-22): Rod Christiansen:

I really like the new behaviour. Most of the time I’m just am trying to get out of a shitty WiFi but I still want it turned on.

Another Control Center oddity: the Remote widget doesn’t work with the Apple TV 3, even though the AirPlay widget (and the full Remote app) do.

Update (2017-09-26): Glenn Fleishman:

Representing three states with an On/Off switch in Settings and Control Center’s multi-state button is not the crispest way to help users achieve their goals. Apple should redesign both areas[…]

Update (2017-11-21): Juli Clover:

In the new iOS 11.2 beta released this morning, Apple has added new informational pop-ups to let users know exactly how these toggles work. The new pop-ups explain that Bluetooth and Wi-Fi will be disabled temporarily rather than permanently.

Update (2018-05-19): Greg Hurrell:

Damn Apple. The whole “Turning Wi-Fi off until tomorrow” thing is a rotten lie. I turned it off at 7:30 AM this morning and I look now at 9 AM to see it’s back on again. Happens frequently.

Update (2019-04-28): Deb Chachra:

I an on a packed Acela, and despite having Bluetooth turned off, my phone keeps asking me if I want to connect people’s AirPods.

iPhone 8 Charging Speed

John Gruber:

I’ll go so far as to call the rinky-dink 5-watt charger the new 16 GB storage tier — a nickel-and-dime move whose time was up a few years ago. Oh, and one more nickel-and-dime move: Apple only includes a USB-A-to-Lightning cable in the box. The Google Pixel I bought last year included two cables, USB-A and USB-C. And Apple is the company selling laptops that only include USB-C ports.


The bottom line: it’s faster, yes, but not that much faster. I ran the iPhone 8 battery down until it powered off. I plugged it into the 29-watt charger, and got the following results: after 15 minutes it was back to 27 percent, at 30 minutes it was at 54 percent, and at 45 minutes it was at 72 percent. But then I did the same thing with my year-old iPhone 7. After 30 minutes it was at 43 percent, and at 45 minutes it was at 65 percent. (I didn’t pay attention to where it was at after 15 minutes.) The iPhone 8 does charge faster than an iPhone 7, but not by much.

Nilay Patel (via John Gruber):

Apple gave me one of the Mophie charging pads it’ll be selling in stores, and we tried it out on Qi pads from Samsung as well, and it all just worked.

Qi is pretty slow, though — Apple’s goal is to match the charging speed of its own 5W pack-in charger, but I only saw about 15 percent more charge on the 8 Plus every 30 minutes with the Mophie, which is especially pokey when you consider that you can’t pick up and use your phone during that time. A future iOS update will let the iPhone 8 draw more power out of the Mophie and Belkin pads Apple sells in stores, so hopefully things speed up when that happens.

Update (2017-10-10): John Gruber:

One conclusion from this is that Apple is cheaping out and should put a 10-watt iPad-style charger in the box with each iPhone. Another — suggested on Twitter by David Barnard — is that Apple ships the 5-watt charger with iPhones because it’s so much smaller, and although slower, is fast enough.

Face ID

Matthew Panzarino:

If there are 5 failed attempts to Face ID, it will default back to passcode. (Federighi has confirmed that this is what happened in the demo onstage when he was asked for a passcode — it tried to read the people setting the phones up on the podium.)

Developers do not have access to raw sensor data from the Face ID array. Instead, they’re given a depth map they can use for applications like the Snap face filters shown onstage. This can also be used in ARKit applications.


Face ID requires that it be able to see your eyes, nose and mouth. This means there are scenarios where it just won’t work.

“If you’re a surgeon or someone who wears a garment that covers your face, it’s not going to work,” says Federighi. “But if you’re wearing a helmet or scarf, it works quite well.”

David Sparks:

I think my favorite part was the disclosure that if you pick up your iPhone X and swipe from the bottom to the home screen, the iPhone will start the animation while it is simultaneously verifying your face and unlocking the device. There shouldn’t be any delay, which is exactly the behavior I would expect.

Before this, I was concerned that you would have to unlock before swiping into your home screen, which would drive me nuts every time I turn the phone on.

Bruce Schneier:

I am confident that Apple is not collecting a photo database, but not optimistic that it can’t be hacked with fake faces.

Troy Hunt:

There’s literally a saying that’s "one in a million" which symbolises the extremely remote likelihood of something happening! The 20x figure over Touch ID is significant but it doesn’t seem like the right number to be focusing on. The right number would be the one that illustrates not the likelihood of random people gaining access, but rather the likelihood of an adversary tricking the biometrics via artificial means such as the gummi bears and PCBs. But that’s not the sort of thing we’re going to know until people start attempting just that.

See also: The Talk Show.

Previously: iPhone X.

Update (2017-09-20): Jeff Nouwen:

Federighi: “But if you’re wearing a … scarf, it works quite well.” Might be my Great White North bias, but wearing a scarf means this[…]

Update (2017-09-28): See also: Apple’s Face ID Security Guide (Hacker News).

Tuesday, September 19, 2017

iPhone 8 Reviews

John Gruber:

I’ve never owned a Plus-sized iPhone, and last year my review unit did not have the jet black finish, so I found the 8 Plus with glass back to be a revelation. I prefer it so much to any previous Plus-sized iPhone I’ve tested that it almost feels like a different form factor, not just a different material. I’ve always found the Plus unwieldy, and part of that is that aluminum is slippery enough that, combined with the size of the device, it just felt like something I had to consciously think about to avoid dropping. However, just like the jet black aluminum finish, the polished glass back of these new phones is grippier. That grippiness is a nice feature for the 4.7-inch size, but for the Plus, I think it’s a necessity — it makes it far more pleasant to hold and use.


Apple is confident in their improvements to HDR that with the iPhone 8, by default HDR is simply engaged automatically, and iOS no longer stores separate HDR and non-HDR images. HDR just turns on when iOS thinks you need it, and it simply leaves one image in your camera roll. The Settings app has options to enable manual HDR mode and to save HDR and non-HDR versions of images, but until I run into a problem, I’m sticking with the defaults. HDR is no longer something I need to think about.


Two or three hours into the flight, I needed to check something on my personal iPhone 7 — I don’t remember what it was exactly, but it was something from an app I didn’t have installed on the review unit. When I took my iPhone 7 out of my pocket, my first thought was “What’s wrong with the display, why is everything gross and blue?” Then I remembered: True Tone.

The glass back sounds great. I’m still curious to see how the edges feel.

Matthew Panzarino:

The camera is the best reason to buy a new iPhone this year just as it has been several years running.


There are other smartphones that take excellent pictures, Samsung’s Galaxy S8+, the most direct competitor in terms of hardware that Apple has, among them. However, once you move beyond the basics of increasing resolution, basic optimization and adding catch-up computational features like faux blur, you begin to realize that there’s not a smartphone company on earth that takes it as far as Apple does. It’s just not comparable once you get into the nitty gritty. Here are a few examples you’ll find in the iPhone 8.


This is the first year that I’m not saying ‘if you like bigger screens get the bigger one, otherwise get the smaller one’ about iPhones. I flat out recommend the iPhone 8 Plus if you’re in the market for an upgrade and can possibly stand using the larger phone. Why? Portrait Lighting.

Rene Ritchie has links to lots more reviews.

Update (2017-10-09): Rob Griffiths:

Are any other iPhone 8 (Plus or non-plus) users seeing such scratches on their displays? I’m tempted to go visit the Apple Store with my phone, because I can’t believe this is normal, especially given how well the iPhone 7 (and all my prior phones) have resisted scratching.

iOS 11 Reviews

Nick Heer:

The differences in iOS 11, then, continue to balance new functionality with further complications. But this should be no surprise to those who have used Apple’s ecosystem of devices for several years; it is merely accelerating a trend of growing the features of iOS without forgetting its roots. iOS was, in many ways, a fresh start for the future of computing and each iteration of the OS has built upon that. Sometimes, as above, it feels as though these additions are moving a little too fast. I notice this most when additions or updates feel perhaps incomplete, or, at least, not wholly considered.


The new Dock, which allows for more efficient app switching, also seems to have played a role. But regardless of why it took so many years for such a natural interaction to debut on Apple’s touch devices, we should focus on the what of it. Is it good?

Oh, yes. Very.


In practice, though, this treatment means that the top quarter of the screen is used rather inefficiently in an app’s initial view. You launch Settings, for example, and the screen is dominated by a gigantic bold “Settings” label. You know you’re in Settings — you just launched it.


Fans of clarity and affordances in user interfaces will be delighted to know that buttons are back. Kind of.

The gigantic titles and generous spacing are especially annoying on the iPhone SE, as they take up a larger proportion of its already small display.

Federico Viticci:

With iOS 11, Apple’s iPad vision feels resolute again. Multitasking is blending with multitouch, giving drag and drop a new purpose; the Mac’s best features – from file management to the dock – have been rethought, simplified, and extended specifically for iOS.


iOS 11’s most notable redesigns, including the App Store and Control Center, lay new foundations and fix what didn’t work before. Refinements – in some cases, reversals of ideas that didn’t pan out – are one of iOS 11’s overarching themes.


But perhaps more importantly, unlike iOS 10, iOS 11 presents a cohesive narrative for both the iPad and iPhone. A story where, for the first time in years, the iPad is informing some of the design principles and features of the iPhone’s software.

Lukas Petr:

Perhaps my biggest complaint [about the new App Store] is the drastically reduced information density. You now see fewer apps in the viewport. Plus, at the Today tab, you see just one featured app at a time.


Contrary to what was said at WWDC, the new App Store actually has smaller amount of curated content at any given time. Why? Because all the carefully crafted lists inside individual categories are now gone.

Pierre Lebeaupin:

Why obsolete perfectly good 32-bit code and apps? I do not have all the answers, but I have a few. Let us first see why 64-bit is the better choice if we have to choose between the two, and why Apple chose not to maintain both.


iOS devices have traditionally been quite RAM-constrained, and even if that eased a bit in recent years, any RAM savings are worth taking: they allow more tabs to remain active without having to be reloaded, more apps to remain frozen and only have to be (quickly) thawed instead of having to be relaunched, etc., improving the overall experience. And so to keep having the 32-bit library stack loaded in RAM in most iOS devices just next to the 64-bit library stack was starting to look like a waste of precious resources.

Previously: iOS to Drop Support for 32-bit Apps, Apple and Design Details.

Update (2017-09-19): Wade Cosgrove:

Increased font weights across the board in iOS 11 are A+. So much easier on the eyes, even if not dramatically different.

It’s a shame this took so long since iOS 7 made everything thin, but it’s definitely appreciated.

Update (2017-09-21): Dan Masters:

“Big text is legibile, until it’s not. A lot of artist & page titles around Music just can’t be easily read because the font cuts them off.”

See also: Josh Centers.

Update (2017-09-25): Paul Haddad:

iOS 11’s large title navigation bars, yay or nay?

Update (2017-10-14): Pierre Lebeaupin:

I must wait even longer because the browser has to allow for the possibility for the gesture to be a drag and I must also move even less during that time because then the browser will interpret it as a drag.

Update (2017-10-28): Since updating to iOS 11, I’ve been having problems with OmniFocus not receiving background push notifications promptly, leading to it rarely synchronizing until after I manually open it.

I’m also seeing No Service quite often in areas where I used to have 2 bars. Flipping Airplane Mode on and off seems to fix it.

Update (2017-11-08): Hacker News discusses some of the bugs.

Apple and Design Details

Ryan Lau:

With my 4.7 inch iPhone 7 and iOS 11 GM at hand, there still exist quite a lot of unfinished feeling of Beta software. As a designer, I can’t help writing about my feelings.

I’m writing this to help people with realizing many details requiring further polishes, who hopefully includes folks at Apple and can push forward with changes to improve those details.

The unfinished feeling in iOS 11 mostly comes from UI and animation. UI elements in iOS are quite inconsistent, mixing a variety of UI elements, which might look quite similar but introduce a disconnected feeling for UX. The inconsistency of those elements majorly stems from those UI element updated in iOS 11, such as Large Title and new Search Bar. In my opinion, those newly introduced elements, which might be unfamiliar and new even to Apple engineers, have caused many inconsistent UI experience in iOS 11.

Michael Love:

This is justifiably damning - also suggests Apple is using a lot of custom UI controls they don’t share with devs.

Or, apparently, other Apple teams.

John Gruber:

On the stairs leading down from the lobby to the theater itself, the handrails are carved out of the stone walls. I’ve never seen anything like it. It’s like descending into a large bright atrium that was entirely carved out of stone. It feels built to last, to say the least.


The hands-on area looked beautiful, and the retractable wall is a nifty architectural trick. It looks like the wall is supposed to be there when the area is closed, and looks like there couldn’t be a wall there when the area is open. Several Apple employees I spoke with were particularly proud of the hands-on area. “Isn’t the hands-on area beautiful?” was an ice-breaking question I was asked in several conversations. Indisputably, the answer is yes. It’s beautiful. But from a practical standpoint it was the worst hands-on area I’ve seen at an Apple event. It was incredibly crowded, and nearly impossible to get your hands on any of the new iPhones, especially the iPhone X. There were way, way too few units available for the number of guests. An hour after the show had ended, the crowds were still three-deep around the sample tables. As a hands-on area after a major product introduction, this room fails the “design is how it works” test.

Brad Ellis:

Dudes, the white pads and watch stand bases match the curve of the table that matches the curve of the building.

John Gruber:

This is one of the two elevators on level P1 of the Apple Park Visitors Center parking garage.

I’m pretty sure Jony Ive has never visited level P1 of the Apple Park Visitors Center garage.

Cabel Sasser:

But this is how it is with construction — you can’t just use Interface Builder!

See also: The Talk Show.

Update (2017-09-21): See also: Mike Rundle.

No 4K iTunes Videos on iPad Pro or Mac

Sam Byford:

Apple didn’t make any mention at this week’s event of whether these 4K HDR movies would see any benefit on the iPad Pro, however. The short answer is yes, HDR works. But there are a few caveats.


Unfortunately, there’s no way to download the movies in 4K resolution — you just get 1080p files with HDR color and contrast. The iPad Pro doesn’t have a 4K screen, no, but the panels in both models have resolutions greater than 1080p to the point where you’d notice a significant difference in quality from a 4K file.

There’s also seemingly no way to download these 4K files on a Mac running the latest version of iTunes, even one connected to the Apple-approved LG UltraFine 4K monitor. It’s not clear whether the 4K or 5K iMacs will be able to play 4K movies from iTunes, either.

Previously: Apple TV 4K, Still a Hobby.

Friday, September 15, 2017

SuperDuper and APFS

Dave Nanian:

The bad news is I’m not confident enough to say we’re going to release our APFS support day-and-date.

I know this kind of hedging is disappointing. But it’s important to note that Apple still hasn’t released any documentation on the “proper” way to create a bootable APFS volume. An example of what they have in mind was released for the very first time when the High Sierra developer release came out a few months ago, but that’s it. We basically have to make an educated guess about what they want.

We’ve designed and implemented that, and it’s significantly different than HFS+’s boot setup, with various special partitions dedicated to specific purposes (even a separate VM volume!), and entire new volume management system, etc.


For example, what happens if you do an “Erase, then copy” from an HFS+ volume to an APFS volume? In our current version, we match the format of the source when we erase. But, HFS+ can’t be in an APFS container. So, we’d have to convert the container to a regular GUID partition. And since there might be other APFS volumes in that container, you’d end up destroying them.


In particular, Apple has further tightened its System Integrity Protection process, and is completely denying access to some files on the startup volume, even when copying to a non-startup volume.


APFS doesn’t seem to be faster than HFS+ (which is not to say it won’t ever be, or that it won’t be more stable...a low bar, I know).

Mike Bombich:

Apple offers a couple helpful APFS-related knowledgebase articles here:

Apple Kbase HT208018: Prepare for APFS in macOS High Sierra
Apple Kbase HT208020: Upgrade macOS on a Mac at your institution

In regard to how CCC will work with your APFS-formatted volumes, this CCC knowledgebase article aims to answer all of the questions you might have on the subject:

Everything you need to know about Carbon Copy Cloner and APFS

Previously: macOS 10.13 High Sierra Shipping Soon, Pondering the Conversion From HFS+ to APFS.

Update (2017-09-20): Alastair Houghton:

Now, in the case of macOS 10.13, there is a bigger problem. Apple is changing filesystem. In order for a low-level disk utility like iDefrag or iPartition to function, we need to know exactly how the filesystem organises data on disk; indeed, inside our products we have pretty comprehensive implementations of HFS+, FAT and NTFS. Apple’s new filesystem APFS, is a completely new design, and you’d have thought that Apple would give us disk utility vendors a fighting chance of getting up to speed before the release of 10.13 by releasing design documentation well in advance, but no, that hasn’t been the case this time around. The only documentation we have about the APFS volume format is this table. Yes, that document includes other information about what APFS can do, but it doesn’t include any detail of the on-disk data format other than a table comparing it to HFS+.

While it’s impossible to be certain, it’s highly likely that adding APFS support to our products, if/when Apple ever releases technical details of its volume format, will involve months of work, and since APFS is going to be the default format for many devices (specifically, anything that uses only Flash storage), as well as being an option for other situations, we simply can’t promise macOS 10.13 support right now.

Update (2017-09-25): Dave Nanian:

We’ve finished up a bunch of internal testing over the past few weeks, and there’s a beta of SuperDuper! for High Sierra and APFS linked at the bottom of this post. But it’s so exciting, in a totally nerdy way, that it would be a mistake to not follow the whole story, with its twists and turns. So let’s dive in.

Update (2017-10-02): Dave Nanian:

Interesting tidbit for the curious: if you turn on encryption, while APFS is converting the drive, snapshots cannot be created.

That means that, during the encryption process, neither Time Machine nor SuperDuper can back up. So, be aware and back up first.

Update (2017-10-17): Dave Nanian:

The introduction of APFS allowed us to revisit that decision. Because its more flexible volume creation is low-impact, the risks inherent in adding and managing the Recovery volume itself are minimal. Recovery now has its own special, documented “Role” within the APFS container, and its contents follow the pattern established for Preboot. Even encryption is done differently: it's properly managed in Preboot, which can be created and updated by a documented system tool, provided by Apple, further ensuring proper operation and compatibility as Apple makes changes and modifies requirements.

After carefully evaluating the new support and determining there were minimal risks, we decided that we could safely copy and manage Recovery for APFS containers, whether copied from APFS or HFS+ sources. And so we do.

Update (2017-11-01): Dave Nanian:

We’ve discovered during our broader Beta rollout that, due to weird bugs in Disk Utility, formatting an HFS+ drive as APFS is unreliable too. Sometimes the drive just “vanishes” and doesn’t re-mount. Sometimes it fails for no reason. Sometimes it makes the one volume unreadable until it’s erased again.


The problem is, log show -last 1m, including a kernel predicate so it only returns low-level kernel logging, can be slow. Not only that, but due to bugs in the logging subsystem, it can incorrectly return much more than one minute of logging. We've seen it return almost a gigabyte of log data!

Update (2017-11-09): Dave Nanian:

SuperDuper! 3.0 has, literally, many hundreds of changes under the hood to support APFS, High Sierra and all version of macOS from 10.9 to the the present.

SuperDuper! 3.0 is the first bootable backup application to support snapshot copying on APFS, which provides an incredible extra level of safety, security and accuracy when backing up. It’s super cool, entirely supported (after all, it’s what Time Machine uses...and it was first overall), and totally transparent to the user.

Kernel Extensions in High Sierra

Felix Schwarz:

Apple has softened its tone regarding #Kext blocking in #HighSierra:

  • No more stop signs
  • “User-Approved” instead of “Secure”. Progress!

Felix Schwarz:

Fun fact: if the Security & Privacy prefs pane is already open while installing a new #kext, no “Allow” text or button is shown.

Felix Schwarz:

Fun fact 2: other than what the TN suggests, #kexts installed together, but in different locations, are approved together. Sometimes. 🙃

Felix Schwarz:

Fun fact 3: This is what happens when you try to “Allow” a #Kext using Screen Sharing: nothing. Remote admins will “love” this.

He’s filed a bug that goes into detail about some of the user experience issues and how it would be better if Apple provided an API for apps to request approval or had a review process for Apple-signed extensions to install without approval:

The “System Extension Blocked” alert gives the average user the impression that an app tried to do something fishy or dangerous and was stopped by the operating system. Or - even worse - that this is a trick alert brought up by the app that tries to trick users into opening System Preferences and removing safeguards there.


In its current state Secure Kernel Extension Loading in macOS 10.13 does not provide a good experience for either users or developers. In fact, if this feature ships as it is now, shipping a kext becomes a risk for the reputation of legitimate developers due to the optics of this feature's implementation.

Previously: Little Snitch 4 Public Beta.

Update (2018-08-14): Thomas Reed:

So many of the problems with kext restrictions in High Sierra fall on the developer. Allow button doesn’t respond, or doesn’t appear? Kext left behind in StagedExtensions? It’s seen as the dev’s fault. 😒 We’re doing Apple’s tech support.

Update (2018-08-30): Felix Schwarz:

#Mojave’s #kext approval prompt added a much needed “Open Security Preferences” button. Thanks to the engineer who did this! ❤️

It’s a real improvement over High Sierra[…]

Update (2019-03-22): Felix Schwarz:

User Approved Kext Loading after ~ 2 years:

- still has no API to provide a good user experience

- still ignores clicks on “Approve” – and still gives the user no feedback as to why it ignores them.

- still fills my support inbox & kills my sales 😭

Update (2019-08-15): Patrick Wardle:

Apple’s “User-Approved Kext” loading, is a pain for 3rd-party developers, but aims to thwart exactly this type of (real) attack.

New App Store Review Guidelines: Gifts, Face ID, ARKit

Paul Hudson:

No app may market itself as “including content or services that it does not actually offer” – specifically iOS-based virus and malware scanners, which have always been nonsense.


Apps may now allow users to send money to others as a gift on two conditions. First, the gift must be a completely optional choice by the giver, and second 100% of the funds must go to the receiver of the gift.

Previously: Apple Wants 30% of Tips From Chinese Chat Apps.

Update (2017-09-19): See also: App Store Review Guidelines History.

Update (2018-01-16): Juli Clover:

Apple and Tencent, the company that owns the popular WeChat messaging app, have reached a deal that will let WeChat users resume sending in-app tips to content creators, reports The Wall Street Journal.

The Incredible Growth of Python

David Robinson (Hacker News):

In this post, we’ll explore the extraordinary growth of the Python programming language in the last five years, as seen by Stack Overflow traffic within high-income countries. The term “fastest-growing” can be hard to define precisely, but we make the case that Python has a solid claim to being the fastest-growing major programming language.


June 2017 was the first month that Python was the most visited tag on Stack Overflow within high-income nations. This included being the most visited tag within the US and the UK, and in the top 2 in almost all other high income nations (next to either Java or JavaScript). This is especially impressive because in 2012, it was less visited than any of the other 5 languages, and has grown by 2.5-fold in that time.


With a 27% year-over year-growth rate, Python stands alone as a tag that is both large and growing rapidly; the next-largest tag that shows similar growth is R.


Outside of high-income countries Python is still the fastest growing major programming language; it simply started at a lower level and the growth began two years later (in 2014 rather than 2012). In fact, the year-over-year growth rate of Python in non-high-income countries is slightly higher than it is in high-income countries.

David Robinson (Hacker News):

These analyses suggest two conclusions. First, the fastest-growing use of Python is for data science, machine learning and academic research. This is particularly visible in the growth of the pandas package, which is the fastest-growing Python-related tag on the site. As for which industries are using Python, we found that it is more visited in a few industries, such as electronics, manufacturing, software, government, and especially universities. However, Python’s growth is spread pretty evenly across industries. In combination this tells a story of data science and machine learning becoming more common in many types of companies, and Python becoming a common choice for that purpose.

Update (2017-10-12): Jeff Knupp:

The buffer protocol was (and still is) an extremely low-level API for direct manipulation of memory buffers by other libraries. These are buffers created and used by the interpreter to store certain types of data (initially, primarily “array-like” structures where the type and size of data was known ahead of time) in contiguous memory.

The primary motivation for providing such an API is to eliminate the need to copy data when only reading, clarify ownership semantics of the buffer, and to store the data in contiguous memory (even in the case of multi-dimensional data structures), where read access is extremely fast. Those “other libraries” that would make use of the API would almost certainly be written in C and highly performance sensitive. The new protocol meant that if I create a NumPy array of ints, other libraries can directly access the underlying memory buffer rather than requiring indirection or, worse, copying of that data before it can be used.

And now to bring this extended trip down memory lane full-circle, a question: what type of programmer would greatly benefit from fast, zero-copy memory access to large amounts of data?

Why, a Data Scientist of course.

Equifax Breach

Bruce Schneier:

Last Thursday, Equifax reported a data breach that affects 143 million US customers, about 44% of the population. It’s an extremely serious breach; hackers got access to full names, Social Security numbers, birth dates, addresses, driver’s license numbers -- exactly the sort of information criminals can use to impersonate victims to banks, credit card companies, insurance companies, and other businesses vulnerable to fraud.

Many sites posted guides to protecting yourself now that it’s happened. But if you want to prevent this kind of thing from happening again, your only solution is government regulation (as unlikely as that may be at the moment).

The market can’t fix this. Markets work because buyers choose between sellers, and sellers compete for buyers. In case you didn’t notice, you’re not Equifax’s customer. You’re its product.

Rich Mogull:

Ignoring all that, the real issue is that one of the companies “trusted” with determining our financial future based on deep records of personal information was breached… and due to the current nature of our financial system, we can’t effectively protect ourselves. Our best options offer only limited protection and come at a hefty cost, due in large part to lobbying by the credit rating agencies themselves.


In each of these cases, I was offered some amount of free credit monitoring, just as Equifax has done in this latest breach. However, the free credit monitoring lasts only for a year, yet the bad guys can use my SSN for the rest of my life.


The first step is to make things harder for a criminal to create new accounts in your name. There are two tools to do this, fraud alerts and credit freezes, but only one actually works. You can find information, phone numbers, and links on the U.S. Federal Trade Commission’s Identity Theft Web site:

A fraud alert places a flag on your account for 90 days. During that time a business needs to verify your identity before it can create a new account in your name. There used to be companies that could automatically renew your 90-day alerts for you, but the credit agencies sued them out of existence, which was a travesty. So, if you want an indefinite fraud alert, you need to repeat the process yourself every time it expires.

Update (2017-09-19): Jeffrey Goldberg:

There are many important things to ask about this incident, but what I am focusing on today is why has non-secret information become sensitive? None of those numbers were designed to be used as secrets (including social security numbers and credit card numbers), yet we live in a world in which we have to keep these secret. What is going on here?

Matthew Green:

While many people have criticized Equifax for its failure, I’ve noticed a number of tweets from information security professionals making the opposite case. Specifically, these folks point out that patching is hard. The gist of these points is that you can’t expect a major corporation to rapidly deploy something as complex as a major framework patch across their production systems. The stronger version of this point is that the people who expect fast patch turnaround have obviously never patched a production server.

I don’t dispute this point. It’s absolutely valid. My very simple point in this post is that it doesn’t matter. Excusing Equifax for their slow patching is both irrelevant and wrong. Worse: whatever the context, statements like this will almost certainly be used by Equifax to excuse their actions. This actively makes the world a worse place.

Bloomberg (via Hacker News):

Equifax Inc. learned about a major breach of its computer systems in March -- almost five months before the date it has publicly disclosed, according to three people familiar with the situation.

Update (2017-10-03): Sarah Buhr (via Hacker News):

In a continued effort to pass on any responsibility for the largest data breach in American history, Equifax’s recently departed CEO is blaming it all on a single person who failed to deploy a patch.


There’s a mantra at my company that you can’t assign blame for a problem to a particular person. If one person is capable of breaking your system, you have a bad system. The focus isn’t on finding the one person or the one mistake that caused it, but fixing the process so one person or one mistake can’t wreak that much havoc. I think it’s a very good philosophy.

Update (2017-10-27): Lorenzo Franceschi-Bicchierai:

Months before its catastrophic data breach, a security researcher warned Equifax that it was vulnerable to the kind of attack that later compromised the personal data of more than 145 million Americans, Motherboard has learned. Six months after the researcher first notified the company about the vulnerability, Equifax patched it—but only after the massive breach that made headlines had already taken place, according to Equifax’s own timeline.

Update (2017-11-08): Bruce Schneier:

Last week, I testified before the House Energy and Commerce committee on the Equifax hack. You can watch the video here. And you can read my written testimony below.

Update (2018-12-12): Adrian Sanabria:

The underlying conclusion throughout the Equifax breach report is that:

1. Staff was AWARE of deficiencies

2. Proper processes, tools and policies existed

3. Lack of leadership and accountability allowed processes to fail, tools to fall into disrepair and policies disregarded.

Update (2018-12-19): Bruce Schneier:

The US House of Representatives Committee on Oversight and Government Reform has just released a comprehensive report on the 2017 Equifax hack.

Wednesday, September 13, 2017

iTunes 12.7 Drops Apps and Ringtones


The new iTunes focuses on music, movies, TV shows, podcasts, and audiobooks. Apps for iPhone, iPad, and iPod touch are now exclusively available in the new App Store for iOS.


If you have an iOS app, ringtone, or book that’s no longer available for redownload, you can move that content to your iOS device while plugged in to a computer with a USB cable.


With iOS 11, you can redownload purchased tones that you bought using your Apple ID.

I suppose this has been a long time coming, but I will miss the lost functionality. I preferred to browse the App Store from my Mac, and I liked the automatic app backups. Now I’ve lost the ability to revert an app if a new version introduces a problem or limitation. And, presumably, restoring a device from backup will be slower and impossible offline because it will have to redownload all the apps.

See also: Nick Heer, MacRumors, Kirk McElhearn, Jeff Johnson, Rob Griffiths.

Jason Sims:

New feature in iTunes 12.7: the column browser no longer remembers its height; it resets to 3 rows tall every time you view a playlist.

I see this bug as well.

Update (2017-09-15): Alexandre Colucci:

If your “iTunes Media” is an alias to an external unplugged disk, iTunes 12.7 will crash at launch.

Paul Kafasis:

Today, we’re releasing Fission 2.4 with revamped ringtone saving. Using Fission, you can once again save custom tones for use on your iOS device. While the new iTunes makes it much less obvious, it is indeed still possible to load custom tones onto your iOS device, right from your Mac.

See also: Hacker News.

Update (2017-09-19): See also: Kirk McElhearn.

Craig Grannell:

Apple should steal an idea from Google. It should be possible to buy apps directly from iTunes Preview, and choose where to send them. Better: iTunes Preview should grow to become the entire iOS App Store online, giving greater visibility to apps, and freeing browsing and buying them from the confines of iOS.

Pierre Lebeaupin:

Yes, some of us still don’t buy into the idea that the handheld device is necessarily self-sufficient; I mean I’d very much like to see you add freely distributed music (which as a result is not in the iTunes store) to your iPhone music library, or back up your iPhone to a non-Internet backup location, using solely the iPhone itself. As long as I can’t do that and have to sync, might as well use sync for everything (and honestly, I don’t mind sync per se).

And of course, speaking as a developer-adjacent person, I have to wonder what the impact is when potential customers who come across a link to an iOS app while browsing the web on their desktop… can no longer buy it there. There will be lost sales until Apple improves the situation (QR codes would be a start, for instance).

Update (2017-09-20): Ted Landau:

Not a surprise, but its appears the new (app-less) Mac version of iTunes is required to recognize connected iOS devices running iOS 11.

Kirk McElhearn:

I have four iOS devices, and if I had to download these updates individually to each device, that would saturate my bandwidth for about an hour (15 minutes or so for each device). Not long ago, I had a 4 Mbps connection; the same updates would have taken four hours for all my devices. And this doesn’t count the many other apps that I have to update.


If Apple won’t restore app management and syncing to iTunes, they should add it to the Mac App Store app, or create a new app for syncing all content. Punishing those users with sub-standard internet connections is wrong.

Update (2017-09-21): See also: John Voorhees.

Update (2017-09-26): Kirk McElhearn:

Here’s the thing. iTunes does suffer from performance issues. But they’re not related to some perceived “bloat” caused by the number of features in the app. If you don’t use the features, they don’t get in the way; and if some do perturb you, you can hide many of them. Don’t use iTunes for movies? You can hide the Movies entry in the Media Picker, and never see them again. Never listen to podcasts with iTunes? Hide that too, and don’t pretend that the existence of podcast in iTunes affects your music listening.

There is one place where Apple could trim down iTunes, and they will never do this, no matter how many people complain: it’s the tight integration of the iTunes Store in your media libraries. When iTunes 12 was released three years ago, Apple wove the iTunes Store into every part of the app. Your media libraries – even if they only contain music you’ve ripped from CDs – communicate with the iTunes Store constantly.

Update (2017-10-09): Tim Hardwick:

Apple has quietly released iTunes 12.6.3, which reintroduces the ability to download App Store apps and ringtones from within the iTunes desktop software.

Apple is making this version of iTunes available because "certain business partners might still need to use iTunes to install apps", but the download is basically available to anyone looking to reinstate the functionality that was removed in iTunes 12.7.

Doug Adams:

I suppose that for people who felt ambushed by installing iTunes 12.7 and weren’t able to get their Apps and Ringtones in order, this will enable some extra time to do so. But I wouldn’t want to stick around on this version. Apple has warned that 12.6.3 won’t provide notifications for future updates and it presumably does not have 12.7’s new features and fixes. So once you’ve made any adjustments (say, getting your Fabulous Ringtones Collection uploaded in toto to your devices, extricated older iOS apps and so on) you may want to upgrade back to 12.7.

Update (2017-11-01): John Gruber:

But even putting that aside, it seems to me that managing these ringtones is something iOS should be able to handle on its own — especially now that iOS has a Files app. There aren’t many things left where you need to connect to a Mac or PC to manage on iOS, but ringtones are one.

Apple TV 4K, Still a Hobby

Josh Centers:

Outside of improved video, don’t expect much in the way of improvements. The new A10X Fusion chip, Gigabit Ethernet port, simultaneous dual band Wi-Fi, and Bluetooth 5.0 support are nice additions, but they’re not game-changing.


Frankly, this hardware is an enormous disappointment. The fourth-generation Apple TV was already behind the curve when Apple launched it without 4K in 2015, and now that it has caught up with the competition, it’s still about $100 more expensive than comparable devices.

Josh Centers:

Apple: “Here’s the new Apple TV. $150.”

Users: “No thanks. Fire Stick is good for $40.”

Apple: “What if we raised the price to $180?”

Juli Clover:

Alongside the new 4K Apple TV, Apple today quietly released a new, slightly redesigned Siri Remote to go along with it. Priced at $59, the updated remote features a new more prominent Menu button with a white circle around it.

This is better, but I think the remote needs a complete redesign. And I don’t think they have the on-screen interface right yet, either. Overall, it’s really surprising how little has fundamentally improved in the last two years, and how the strategy remains confused. In retrospect, I wish I had not invested in video content from Apple.

See also: Hacker News, Ryan Johnson.

Update (2017-09-15): Ken Segall:

Common sense says the current Siri Remote would be replaced at the first opportunity. And the unveiling of the Apple TV 4K was an excellent opportunity.

Instead, Apple “let it ride” in the Remote department. Not exactly the behavior of a company that puts the highest priority on the customer experience.

See also: Accidental Tech Podcast.

Update (2017-09-21): Mike Rundle:

The new Apple TV can’t play 4K content from YouTube, the place with the largest selection of 4K content.

Nilay Patel:

But the new Apple TV doesn’t support Atmos. And it doesn’t support YouTube in 4K HDR. And it doesn’t have Disney or Marvel movies in 4K HDR. And it makes some 1080p content look less than great.


The Apple TV also automatically preferences refresh rate over any other setting: if your TV supports 60Hz HDR10 but only 30Hz Dolby Vision (like 2016 LG OLEDs), the Apple TV will pick HDR10, even though HDR10 looks worse than Dolby Vision. Apple told me that’s because it wants the interface and games to run as smoothly as possible; it’s found that the interface judders at 30Hz. So you’ll get worse HDR but a smoother interface, all because the Apple TV won’t switch modes.

The lack of mode switching also means that Apple’s picking its own video upscaling and processing system over whatever’s in your TV. Your TV just thinks it’s getting 4K HDR video all the time. It won’t know that it’s actually displaying an HD source, and won’t do any of the tricks 4K TVs do to make those sources look better.

Update (2017-09-22): John Gruber:

It is baffling to me that Apple didn’t redesign the remote control to make it obvious at a touch which way it’s oriented. The raised white ring around the Menu button is an improvement, but it’s truly the least Apple could have done. I really wish they’d either made it asymmetric (wedge-shaped, perhaps) or used texture to denote orientation along the back and sides. Nobody loves this remote. Most people I know outright dislike it. And Apple left it almost unchanged.


Apple may well have good technical or legal reasons for not supporting VP9. Apple TV users don’t care. They just want YouTube videos to look great on their TVs.

Felix Schwarz:

Ok, so the white ring on the new #SiriRemote is on the Menu button, which is now also sharply recessed.

#SiriRemote packaging: 2015 vs.2017. Skeumorphism vs. flatness with wrong button colors.

Update (2017-09-26): Joe Rossignol:

Beyond the return of a Gigabit Ethernet port and the removal of the USB-C diagnostic port, which we learned about before the teardown, the Apple TV 4K’s design is largely the same as the previous Apple TV.

Josh Centers:

As an indication of how minor tvOS 11 is, you probably won’t notice anything different after you install it!

Update (2017-10-01): See also: Accidental Tech Podcast.

Update (2017-11-09): See also: David Pogue.

macOS 10.13 High Sierra Shipping Soon

Juli Clover:

macOS High Sierra, the new version of the macOS operating systems for Macs, will be released to the public on Monday, September 25, according to Apple’s macOS High Sierra website.

That’s nearly a week after the iOS 11 and watchOS 4 release date, with those software updates coming on Tuesday, September 19.

David Pogue:

Still, there’s a lot of useful stuff. Here’s what you can look forward to.

Howard Oakley:

I cannot understand why Apple wants to make High Sierra so unattractive at this late stage. Failure to offer APFS on Fusion Drives and hard disks indicates that High Sierra is being released before it is ready for much of the desktop Mac market. During the summer Apple recognised that APFS was not yet ready for use on hard disks, but has pressed ahead with its release regardless.

Lloyd Chambers:

Accordingly, MPG hereby raises that 3 month ‘wait’ recommendation to a full six months from here on in. That’s because (a) a change in file system is a major change with repercussions and (b) Apple cannot be trusted to respect users or their data or their workflow, with poor judgment seem repeatedly many times over in recent years. The name for this macOS release is apt.

Remember, Apple ships on a calendar basis. Not when requisite software quality is achieved—if the bar is too high, the bar is lowered and the software ships on schedule. This has been going on for years and now with iOS and macOS tied together with APFS and iCloud, it won’t stop—the iPhone drives all.

Update (2017-09-19): John Gruber:

I have all-flash drives in both my MacBook Pro and iMac, but I’m not in any hurry to switch to APFS. And since drives that can be updated are automatically updated to APFS when you update to High Sierra, I’m in no rush to update to High Sierra.

iPhone X

This seems like a device that you’d really have to try in person to evaluate. The screen is presumably great (OLED, P3, True Tone), but I can’t tell how much better from photos or videos. Does the larger screen provide much benefit given the odd shape? How hard is it to reach different parts of the screen, e.g. the top right corner for Control Center? How does it feel to gesture instead of pressing the home button? Is it uncomfortable to hold without a case like the iPhone 6s? How useful is Portrait Lighting? Switching apps by swiping the bottom of the display does look incredibly useful.

The main appeal of Face ID to me is that Touch ID sometimes has trouble with wet or dirty fingers, and it doesn’t work at all with gloves. However, if it’s true that Face ID doesn’t work with sunglasses or winter clothing that would be worse. And will having to look at it feel burdensome or slow? With Touch ID you can unlock the phone before it’s even facing you.

The notch seems to be the new camera bump, only worse. It doesn’t look good, it cuts into the content, and it seems to bring a lot of software complications and compromises. I can’t tell whether this is something everyone will get used to and forget about or whether it will be relentlessly mocked until Apple eventually changes the design.

Given the price and availability of the iPhone X, I think Apple succeeded in that the iPhone 8 looks perfectly fine in comparison. I will be really interested to see how well the iPhone 8 Plus sells. It does not seem to be obsoleted by the X.

If I were getting a new iPhone today, I would get another iPhone SE. I just love that size and how comfortable it is in the hand and pocket. I hope it gets an update soon, though. The design is fine, but I’d like to see a faster processor, wireless charging, water resistance, barometer, 3D Touch, and better cameras, display, and speakers. It’s a good deal at the current price, but I wish Apple didn’t couple the size and price.

Update (2017-09-15): Ken Segall:

Months ago, I suggested that this would be Apple’s big chance to right the naming ship after all the S silliness of the past. It would have been an extraordinary act of common sense to unite the entire 2017 iPhone family under a single umbrella.


Face ID looked amazing, and it’s not hard to imagine this technology being key to a more secure future.

But there was one little “huh?” moment. I’m talking about the two-step process of getting into the iPhone X. You show it your face, then you swipe up to see the home screen.

That’s one more step more than it takes with Touch ID.

John Gruber:

There were, of course, early attempts to embed a Touch ID sensor under the display as a Plan B. But Apple became convinced that Face ID was the way to go over a year ago. I heard this yesterday from multiple people at Apple, including engineers who’ve been working on the iPhone X project for a very long time. They stopped pursuing Touch ID under the display not because they couldn’t do it, but because they decided they didn’t need it.


I was wrong about what Apple would call it, but I still say every single point I made arguing that they would and should pronounce it “ex” was correct.


But what I dislike more than the notch isn’t the notch itself but that Apple is fully embracing the notch in software. I really wish their software design rendered the “ears” with black backgrounds while using apps. […] In landscape, the notch looks like a joke. I think Jony Ive either lost a bet or lost his mind. It looks silly, and to pretend otherwise is nonsense. I’m OK with this because I never use my phone in landscape other than when using the camera, watching videos, looking at photos, or playing games — and iOS 11 hides the notch with black bars by default in those use cases. But this looks just awful — and that screenshot was taken from Apple’s own video advising developers on how to handle the notch in their UIs.

Dean Jackson:

Apple has made a proposal to CSS about how to design for iPhone X's round corners and notch.

Craig Federighi:

Most sunglasses let through enough IR light that Face ID can see your eyes even when the glasses appear to be opaque.

Nick Heer:

With the iPhone X, though, both of the new charging features feel like a bit of a tease: neither a faster charger nor an inductive charging mat are included with the most premium, tomorrow’s-world-today iPhone model. I’m not complaining about the price of the iPhone X, for what it’s worth, nor am I necessarily making a value-for-money argument. But, given the premise of the iPhone X, I feel like bundling at least one of the two new charging features would have been welcomed.

See also: Everything You Need to Know About the iPhone X’s Controversial Notch, 50 New Features in iPhone X.

Update (2018-04-09): Mark Gurman:

Will the AirPower charger beat the Apple Watch for longest time between an Apple product announcement and release? If released after April 21st, then: Yes. It’s been a whopping 209 days since it was announced.

Monday, September 11, 2017

Oral History of Avie Tevanian

Computer History Museum (via Michael Nordmeyer):

Avie begins by discussing how the acquisition of NeXT occurred from the perspective of NeXT, including the OS bakeoff against Be. Avie also goes into his personal relationship with Steve Jobs over the years, what it was like to work with him, and how one might convince him one was right. He then moves on to discussing the early years of the turnaround, working initially under Gil Amelio and then under Jobs, and Jobs’ return as CEO of Apple. During this period, Avie’s main priority was to turn Apple’s software group into a world class development organization and to direct key technical decisions in the development of Mac OS X, sometimes over the objections of entrenched interest groups at Apple, such as the decision to embrace TCP/IP and other open standards over continuing to use Apple proprietary technologies. Avie also discusses collaborating with Jon Rubinstein’s hardware division, Apple’s ups and downs in the early 2000s, the transition of the Mac platform to Intel processors, the sunset of Newton, Mac OS 9, and WebObjects, the balance between use of open source and proprietary technologies, the development of iTunes and the digital hub strategy, and his testimony in the Microsoft anti-trust trial.

In 2003, Avie moved into a new role as Chief Software Technology Officer, out of day-to-day product responsibility, and into a strategic advisory role with Steve Jobs, during which he helped set in place the software strategy for the iPhone. After three years in that role Avie retired from Apple in 2006.

Highly recommended. There is also a Part 1, covering the period before Apple acquired NeXT, which I have not listened to yet.

Previously: Interviews with Scott Forstall and Mike Slade.

Animoji Rejected From the App Store

Benjamin Mayo:

We are continuing to dig through the leaked iOS 11 GM firmware. We’ve found a brand new feature for the iPhone 8 called ‘Animoji’, which uses the 3D face sensors to create custom 3D animated emoji based on the expressions you make into the camera.

Users will be able to make Animoji of unicorns, robots, pigs, pile of poo and many more.

Ryan Jones:

For the last year I’ve been battling App Store rejections - we made an app called Animoji with animated I know why.

Apple (incorrectly) repeatedly rejected it for IP violation. The emojis look nothing like Apple’s and the name wasn’t taken.

We drew them all, not a copied pixel. At the start they looked similar...because 1,000+ apps did! So we changed to flat style...Nope 🤷

I even suspected it and changed the name to “Animatimoji”...Nope.

Ultimately I think rejections were because we actually made a good app! Clear UI, pro animations, great name... Too close to home. 😔

Apple Legal said “Apple owns all derivatives to our Emoji set”.

How that applies to only us and not 100,000 other Emoji apps...🤷

Colin Plamondon:

That Apple is still doing that 8 years after the App Store launched is insane. 6 month review cycle “soft vetoes” since the beginning.

I wish I could say this behavior from Apple is in any way surprising.

Update (2017-09-13): Ryan Jones:

Animoji © Sept 2016

Update (2017-11-09): Ling Wang:

iOS apps cannot use Apple emoji because it violates Apple’s Trademarks and Copyrights. Are you fucking kidding me!🤦


PDFXKit (tweet):

Today, we are open sourcing PDFXKit, a drop-in replacement for Apple’s PDFKit that uses our industry-proven PSPDFKit SDK under the hood.

Peter Steinberger:

Current impact per arch is ~25MB. Of that around 11MB are language translation tables because PDF.

Previously: PSPDFKit for macOS, More macOS Preview PDF Trouble.

An Apple Support Experience

John Risby:

Ultimately the fault lies with them, their generally terrible customer service policies and a design/manufacturing fault with the late 2016 15" Macbook Pro touch bar model. A fault that I’ve yet to see them publicly accept despite the fact it is accepted internally, has a fault code, and internet forums and youtube are full of people reporting the same problems.

Many of these people are being forced to pay out of their own pockets for expensive repairs even though there is, what seems to be a secret, repair programme in place.


The short version of this story is if you have a late 2016 15" touch bar model and you have problems with noises or the screen, go to Apple and, unless you know you’ve done something stupid like dropped it or put a hammer through the screen, demand they fix it or replace it.


Sadly Apple seem to have stopped trying to be the Porsche or Ferrari of computers, while keeping the same prices — or, in the case of this Macbook range, actually putting the prices up — but decided to adopt the customer services policies of a dodgy used car lot.

I’m not sure how much can be generalized from one experience. My own have been mixed and not frequent enough to infer a trend. Many interactions have been really great, exactly what you would expect from a reputable company that cares about its customers. Some were positive in the sense that multiple levels of advisors were caring and motivated to help, but the problems were left unresolved due to software bugs out of their control. With a few, the advisors seemed to want to help but didn’t have much knowledge of the product or seemingly any way of looking it up.

On the whole, the support from Apple seems to be worse than nearly all the small companies I deal with but better than nearly all the big companies (except Amazon).

Two paragraphs that resonated with me:

They immediately told me it was my fault. They claimed it had to be. They said once a screen leaves the factory, if it breaks, it is always the users fault.

When my father tried to return an iPhone 4 that had no cell signal at his home or work (with or without a bumper), despite an iPhone 3GS working great in both locations, Apple Store employees kept saying that it was somehow his fault, the phone was perfect, and he was an idiot for not wanting to keep it.

They only had to look at Mac forums or Youtube to see it being reported but that’s one thing I learned through this experience. Even senior advisors at Apple have very limited access to the internet at work, which doesn’t just show a shocking level of trust in their staff, but is a genuine hinderance to their ability to do their job. It’s less surprising they haven’t heard about problems from customers if they can’t read the forums their customers post on.

Almost every hardware issue I’ve encountered has a thread in Apple’s own forum with hundreds or thousands of posts. Advisors are always surprised to hear this and never seem to have a way of looking up other instances of the same issue.

One constant is that, despite every case having a number, it’s rare for someone to look up notes from previous interactions on that case, and I’ve been told it’s impossible when the case is transferred between different departments.

Via Wojtek Pietrusiewicz:

I had two 13″ MacBook Pro Touch Bar devices and returned them both, but not because there was something wrong with them — I just didn’t like the Touch Bar and short battery life.

Update (2017-09-11): See also: Nick Heer. Previously: Apple’s Support Gap.

Update (2017-09-13): See also: Seattle Rex (via Nathan).

Update (2017-09-20): Peter Steinberger:

It took >3 months, but Apple finally replaced the logic board on both MacBooks and also refunded the money for the failed repairs.

Update (2017-11-07): See also: Accidental Tech Podcast.

Update (2018-01-28): See also: project_2501 (via Nick Heer).

Update (2018-02-20): Nolan O’Brien:

I am spitting mad at the horrible support @Apple store provided my mother in law today.


Her 9 month old laptop won’t boot (folder with flashing exclamation mark flashing) and Apple refused to get the data off her laptop before doing a restore. Some malarky about customer privacy. She doesnt care if they see what she has, just that it’s saved - but they refuse!

On top of that they would not replace her battery to her iphone 6 that doesnt keep more than a 3 hour charge anymore without filling out a tonne of paperwork and she’d have to come back in several weeks to get it done.

Dan Masters:

This is reminiscent of the “customer support” my friend received when trying to get Apple to swap her barely used PowerBeats Wireless, which suddenly split due to a known manufacturing fault.

She ended up having to glue them herself.

Apple even refuses to replace frayed Lightning Cables now – for devices under warranty.

Sarah Perez:

It is unbelievable that @AppleSupport refuses to repair my Apple Watch when all it needs is glue for a loose screen. (Just confirmed in person. They expect me to pay to replace it with a new Watch.) I will never buy another Apple Watch again. I will buy a pretty watch that lasts.

Update (2018-03-01): Peter Steinberger:

I just tried to buy a replacement power cable for the iMac at the Vienna Apple Store. After 5 minute discussion and confusion I was sent up to the genius floor, and then sent away because there’s a 40 minute wait line for appointments.


Update (2018-03-07): Daniel Jalkut:

Pushback at Apple store about having MBP keyboard replaced under warranty for key wear.

Update (2018-10-15): Pye Jirsa (via Rory Prior):

What you are about to read is not doctored or manipulated to get more views — it’s simply my experience this past year with Apple products.

In the past, I respected and held Apple in high regard. However, I am by no means a “fanboy” of anything. I will use whatever it takes to get the job done, and I will tell you the pros and the cons of the tools I use. This is not a sponsored article, nor would Apple pay me to write this. They’d probably pay me not to. But that’s exactly why I feel it is important to share my experience using the new iMac Pro, MacBook Pro, and iPhone X.

Update (2022-08-29): thepoet:

The most recent case was that of my friend who upgraded to a 14 inch Macbook Pro that stopped booting in 7 days. Since there is no return option in 30 days like in other geographies, he took it to Apple’s authorised service centre (there are no Apple owned service centres in my country), and they put a big scratch right across the Apple logo. To add to this, Apple’s customer support final response after more than a week of wasting his time was they would not be able to replace the display even when my friend sent clear voice recordings of the service centre employees accepting their mistake. He had to take the help of the local police who went with him to the shop to get a written statement that they would be replacing the display too along with the mainboard to fix the primary issue of dead laptop.

Wednesday, September 6, 2017

Is This My Interface or Yours?

John Saito (via Ole Begemann):

In later versions of Windows, Microsoft changed the label of this [My Computer] icon to Computer, then changed it again to This PC. Did they change it because “my” was misleading? Inconsistent? Unnecessary?


Unfortunately, cutting out “my” or “your” doesn’t work 100% of the time. Sometimes you really do need to differentiate the user’s stuff from someone else’s stuff. For example, in YouTube, you can’t just say “Channel,” because it’s not clear whether that’s referring to your channel, channels that you’ve subscribed to, or channels that YouTube is recommending to you.


When to use me: Use I, me, my, or mine when the user is interacting with the product, like clicking a button or selecting a checkbox. But only add these words if you absolutely need to for clarity.

When to use you: Use you or your when your product is asking questions, giving instructions, or describing things to the user. Just imagine what a personal assistant might say.

1980s Apple Ads

Jeff Jackson has a collection of old Apple ads for AppleCare and HyperCard.

Via Janne Aukia:

The focus on business customers is interesting. Many of the selling points would be valid still today.

Data Locality and STL vs. Swift

David Owens II (tweet):

What if I told you that even in an array of 10,000 items and a linked list of 10,000 items, insertion into the middle is still going to be faster in the array? Would you believe me?


The problem is that the -> operator (de-referrencing) is a relatively expensive operation.

He also found that for the simple case of an array of integers, Swift’s Array was about half the speed of std::vector. This is pretty good, and it looks like there’s room for it to be improved.

Joe Groff:

The optimizer is also not great at telling that insert/append-type operations maintain uniqueness so it can leave out checks.

If you’re seeing protocol overhead it’s probably also failing to specialize something.

Update (2017-09-06): David Owens II:

Actually, they are even perf now. I was using Int instead of Int32, so the size was 64bits instead of 32bits like the C++ version. 🙄

Joe Groff:

Another linked list variant is a contiguous array of (value, next index) pairs, so you get locality and can efficiently insert by appending

and you can easily sort in-place into an ordered vector as a pre-pass to benefit from sequential memory access

Swift and KVO Context Variables

Michael Brown:

I found the solution to the problem in this Apple Swift Blog post about interacting with C pointers from July 2014! So this has been a problem right since the start of Swift, but only now, perhaps with improved runtime checks in Swift 4, is it causing crashes.

The relevant part is here (emphasis mine):

These conversions cannot safely be used if the callee saves the pointer value for use after it returns. The pointer that results from these conversions is only guaranteed to be valid for the duration of a call. Even if you pass the same variable, array, or string as multiple pointer arguments, you could receive a different pointer each time. An exception to this is global or static stored variables. You can safely use the address of a global variable as a persistent unique pointer value, e.g.: as a KVO context parameter.

The best fix is probably to use the new KVO API, but this issue is worth keeping in mind for other APIs that use C pointers.

Update (2017-09-06): Joe Groff:

That use case should work with the latest Xcode 9 betas.

I forget details, but exclusivity enforcement for passing pointers to ivars was relaxed to accommodate this kind of use.

1Password Command-line Tool Public Beta

Connor Hicks (via Rick Fillion):

The 1Password command-line tool makes your 1Password account accessible entirely from the command line. A simple op signin will securely authenticate you with the 1Password service and give you access to a wide range of capabilities[…]


One of the most frequent requests we receive from 1Password Teams customers is the ability to export the Activity Log. With the Pro plan, op list events makes it easy to ingest activity data into the application of your choosing. Be it Splunk, Kibana, Papertrail, or your own tool, op outputs JSON, so it’s simple to work with.

Tuesday, September 5, 2017

Injecting Missing Methods at Runtime

Vincent Bénony:

The important thing here is that most of the methods you’ll use are lazily bound. It means that instead of resolving the address of every method at loading time, the linker will write the address of a resolution method, and the effective resolution will be made the first time the method is used.


So, if a symbol is missing, how about resolving it by ourselves?

This is simpler than it sounds, and here is how we’ll proceed: we’ll parse the Mach-O header of the library, find where the lazy binding information is stored, find the symbol table, and replace the pointer in the __la_symbols_ptr section with our replacement code.

iOS Cropping in Photos

Dr. Drang:

The image has again resized itself to fill the editing area, but this time the adjustment has completely screwed up our intended edit. The upper crop marks have moved down and sliced into the top line of the paragraph we were intending to capture. This happened even though we never touched either of the upper crop handles during the second edit.

This behavior, which seems to be driven by how the aspect ratio of the image changes as you drag one of the crop handles, is thoroughly unintuitive. The handle at the opposite corner of the one you’re dragging should never move.

Google Maps Parking Features

Jeff Albertson:

To see how hard it might be to park where you’re headed, just get directions to your destination and look for the parking difficulty icon in the directions card at the bottom of the screen. Parking difficulties range from limited to medium to easy and are based on historical parking data with a little machine learning magic.

Since parking can be unpredictable, we’re rolling out the ability to find parking near your destination on Google Maps for Android.

In 25 US cities, people can tap “find parking” on the directions card to see a list of parking garages and lots near their destination. Once they tap their selected option, it’s automatically added to their trip. And they’ll even get walking directions from their parking spot to their final destination.

Hopefully the iOS version will catch up.

Update (2017-09-11): Sasha Blair-Goldensohn:

Starting today, we’re calling on Local Guides, a community of people who contribute their expertise about places on Google Maps, to add more wheelchair accessibility attributes to the map. If each of our tens of millions of Local Guides answers three of these questions every day for two weeks, we can gather nearly two billion answers to help people who rely on this information every day.

And wheelchair users aren’t the only ones who will benefit. You’ll also be making life easier for families with strollers, seniors with walkers, or anyone making plans with a friend who has impaired mobility.

Behind the Scenes of AMP at Condé Nast

Oscar Perez:

AMP increases the visibility and discoverability of our content by allowing it to be included in Google’s Top News Carousel, as well as improving the experience of regular Google search results.


We went live with Google AMP on Vanity Fair a little over a year ago. Post-launch, the traffic and search rank results were very positive: click through rate from Google search went from 5.9% (Regular) to 10.3% (AMP), and average search position went from 5.9 (Regular) to 1.7 (AMP). Since then, we have deployed AMP across fifteen of our brands and we have been very pleased with the results. Today, AMP accounts for 79% of our mobile search traffic and 36% of our total mobile visits.

Via Nick Heer:

AMP allows website owners a quick and relatively easy way to juice their search rankings. That’s all this is. There are certainly other ways to create a beautiful and fast website, but none of them get a website into the very prominent news carousel at the top of Google search result pages and Google News.


Just to be clear: AMP’s specifications require that pages link to this script: For a page to be valid AMP HTML, it must include that JavaScript file, which is hosted by Google.

Alex Kras (via Hacker News):

I understand that a lot of users DO like AMP content. I completely respect their right to enjoy it. But it would be nice if Twitter provided an option to opt-out from that experience for those who don’t.

For example, today I saw a post that David Walsh shared on Twitter. I clicked on the link, and was taken to the AMP version of his site. David has a very nice and easily recognizable blog. When I saw the content that looked different I had to pause. I wasn’t sure if I clicked on a phishing link or something else like that. Once I realized that it was just an AMP version of his site, I move on with my day. I wish I could opt-out from that experience.

How Is ARCore Better Than ARKit?

Matt Miesnieks (via Michael Love):

So in terms of how AR applications are really being used, any differences in calibration are pretty much impossible to detect. By the time developers are pushing the boundaries of the SDKs, Google is betting there will be a new generation of devices on the market with far more tightly integrated sensor calibration done at the factory.


ARCore has:

  • just enough extra features than ARKit that Apple can’t easily claim they’re better on paper
  • a few years of content experiments from Tango & Daydream that work on ARCore and are visibly more mature than what devs could build in a month or two of ARKit work
  • enough OEMs in the pipeline that they can claim similar reach “real soon”


I think as a technical solution they are very very close in capability. Effectively indistinguishable to users when it comes to the user experiences you can build today. ARKit has some tech advantages around hw/sw integration and more reliable tracking. ARCore has some advantages around mapping and more reliable recovery. Both of these advantages are mostly only noticeable by Computer Vision engineers who know what to look for.

David Sparks:

When iOS 11 ships (probably only a matter of weeks from now), augmented reality is, overnight, going to transform from a fringe technology to something installed on hundreds of millions of iOS devices.

Previously: Why Is ARKit Better Than the Alternatives?.

Monday, September 4, 2017

iCloud Backups: Contacts vs. Notes vs. Reminders

John Gordon:

Notes aren’t on the list though. They have their own note-specific backup restore option, but it’s at the level of an individual note and there’s no version restore, only the ability to undo a delete for 30 days by restoring a Note from “recently deleted”. (BTW, if you Share a Note only the Owner can “delete” — but anyone with Edit privileges can remove all content — and since there’s no version undo that means anyone who can edit a Note can delete it without a recovery option.)

You’d have better luck restoring a previous version of a random text file—either from the Versions database or Time Machine—than a note from the Notes app.

Update (2017-09-04): Pádraig Kennedy:

Per-app iCloud Backup Restore would eliminate 90% of the argument to build sync for many apps.

Update (2017-09-05): Pierre Lebeaupin:

Let us all dupe rdar://problem/6178283/.


Update (2017-09-05) via Tech Pinscher:

Update (2017-09-08): Previously: 30 Years of PopChar.

Update (2017-09-11): See also: Jason Snell.

Update (2017-09-25):

Update (2017-10-27):

Previously: 30 Years of Mac.

Update (2019-04-15):

Update (2019-09-05): See also: John Gruber.

Update (2023-09-07):

Apple’s iPhone Repair Rules

Juli Clover:

A leaked Apple “Visual/Mechanical Inspection Guide” shared this afternoon by Business Insider provides some insight into how Apple’s repair policies work, highlighting how Apple determines when to offer an in-warranty repair, an out-of-warranty repair, or a denial of service.


These rules don’t apply to devices covered by AppleCare+, as that warranty entitles users to two device replacements or repairs, even for accidental damage, so long as the fee is covered. For out-of-warranty repairs, Apple charges $130 to $150 for screen repairs and $300 to $350 for other damage. With AppleCare+, a screen repair costs $29 and other damage costs $99 to fix.

The End of ProTube 2

Jonas Gessner (via MacRumors, Hacker News):

I am very sad to announce that ProTube was removed from the App Store by Apple on September 1, 2017. This comes after multiple requests and threats by YouTube which ultimately led Apple to suddenly pulling the app from the App Store. ProTube and many other 3rd party YouTube apps on the App Store have been targeted by YouTube with takedown requests.

YouTube first requested Apple to remove my app well over a year ago, initially just stating that my app violates their Terms of Service. This was a generic takedown request they sent to many YouTube apps at once. They later started going into more detail, even stating that I could not sell the app as that alone violates their ToS. They basically wanted me to remove every feature that made ProTube what it is – that includes the player itself that allows you to play 60fps videos, background playback, audio only mode and more.


It’s sad that I have to say this, but there have already been dozens of fake ProTube apps on the App Store: I still own the ProTube trademark, so nobody can take advantage of this situation by releasing a fake ProTube app on the App Store.

It seems pretty clear that Gessner was violating the terms of service for the YouTube API. What’s interesting to me here is that instead of just turning off ProTube’s API access, Google asked Apple to remove the app from the App Store. So new customers can’t download it, but people who already purchased can apparently keep using it (in continued violation of the TOS).

Also, I wonder whether it’s possible to make a good YouTube app that doesn’t rely on the API.

Friday, September 1, 2017

ARKit Human Interface Guidelines

Apple (via Tim Van Damme):

Not all AR experiences require realistic virtual objects. Those that do, however, should include objects that appear to inhabit the physical environment in which they’re placed. For best results, design detailed 3D assets with lifelike textures and use the information ARKit provides to position objects on detected real-world surfaces, scale objects properly, reflect environmental lighting conditions on virtual objects, cast virtual object shadows on real-world surfaces, and update visuals as the camera’s position changes.


Holding a device at a certain distance or angle for a prolonged period of time can be fatiguing. Consider how people must hold their device when using your app, and strive for an enjoyable experience that doesn’t cause discomfort.


Placing a three-dimensional rotation indicator around an object, for example, is more intuitive than presenting text-based instructions in an overlay. Textual overlay hints may be warranted, however, prior to surface detection or if the user isn’t responding to contextual hints.


Favor direct manipulation over separate onscreen controls.

Decoding NSASCIIStringEncoding Is Not Strict

Jeff Johnson:

The documentation for NSASCIIStringEncoding is clearly false: “Strict 7-bit ASCII encoding within 8-bit chars; ASCII values 0…127 only.” The NSString.h header file contains the same falsehood:

NSASCIIStringEncoding = 1, /* 0..127 only */

Curiously, though, the CFString.h header file has a more useful comment:

kCFStringEncodingASCII = 0x0600, /* 0..127 (in creating CFString, values
greater than 0x7F are treated as corresponding Unicode value) */

Another oddity with the documentation for NSString decoding: it only says that -initWithBytes:length:encoding: returns nil if the byte string is too long, but it says that -initWithData:encoding: returns nil if the data is not valid for the encoding. You would think these methods would be consistent.

However, I have found that NSASCIIStringEncoding does work as expected when encoding. That is, if the string is non-ASCII it will give you a nil data unless you request a lossy conversion.

Too Many AVPlayers?

Becky Hansmeyer:

I always made sure to set the AVPlayer to nil before re-generating the preview, so I couldn’t figure out why there would be any other “actions that decode media.” A trip to Stack Overflow revealed a possible platform limitation on the number of video “render pipelines” shared between apps on the device. It turns out that setting the AVPlayer to nil does not free up a playback pipeline and that it is actually the association of a playerItem with a player that creates the pipeline in the first place. Since developers don’t seem to have any control over when these resources are released, I knew I’d have to figure out another solution.

The Power of Google

Kashmir Hill (Hacker News):

The criticism of Google had culminated in Lynn posting a statement to the think tank’s website “applauding“ the European Commission’s decision to slap the company with a record-breaking $2.7 billion fine for privileging its price-comparison service over others in search results. That post was briefly taken down, then republished. Soon afterward, Anne-Marie Slaughter, the head of New America, told Lynn that his group had to leave the foundation for failing to abide by “institutional norms of transparency and collegiality.”

Google denied any role in Lynn’s firing, and Slaughter tweeted that the “facts are largely right, but quotes are taken way out of context and interpretation is wrong.” Despite the conflicting story lines, the underlying premise felt familiar to me: Six years ago, I was pressured to unpublish a critical piece about Google’s monopolistic practices after the company got upset about it. In my case, the post stayed unpublished.


I asked the Google people if I understood correctly: If a publisher didn’t put a +1 button on the page, its search results would suffer? The answer was yes.

John Gruber:

There’s some dispute over her allegation that after Forbes took down her article, that Google immediately removed it from their search results and cache. I’m more interested in the simple fact that Google used promises of better search results as a carrot to encourage news sites to include Google Plus buttons on their articles, and that when Hill reported on this, Forbes took the story down in response to complaints from Google.

Nick Heer:

It doesn’t really matter whether that power was communicated by Google or was simply a fear of Forbes’ management — the fear itself of losing traffic from Google properties or having advertising income withheld is enough to cause worry.

Josh Marshall (via John Gordon):

So let’s go down the list: 1) The system for running ads, 2) the top purchaser of ads, 3) the most pervasive audience data service, 4) all search, 5) our email.

But wait, there’s more! Google also owns Chrome, the most used browser for visiting TPM.


Running TPM absent Google’s various services is almost unthinkable. Like I literally would need to give it a lot of thought how we’d do without all of them. Some of them are critical and I wouldn’t know where to start for replacing them. In many cases, alternatives don’t exist because no business can get a footing with a product Google lets people use for free.


And in general Google tends to be a relatively benign overlord. But as someone who a) knows the industry inside and out – down to the most nuts and bolts mechanics – b) someone who understands at least the rudiments of anti-trust law and monopoly economics and c) can write for a sizable audience, I can tell you this.: Google’s monopoly control is almost comically great. It’s a monopoly at every conceivable turn and consistently uses that market power to deepen its hold and increase its profits. Just the interplay between DoubleClick and Adexchange is textbook anti-competitive practices.


Over the last several months we’ve gotten a few notifications from Google telling us that certain pages of ours were penalized for ‘violations’ of their ban for hate speech. When we looked at the pages they were talking about they were articles about white supremacist incidents. Most were tied to Dylann Roof’s mass murder in Charleston. […] The way these warnings work and the way these particular warnings were worded, you get penalized enough times and then you’re blacklisted.


Because we were forwarding to ourselves spam that other people sent to us, Google decided that the owner of the TPM url was a major spammer and blocked emails from TPM from being sent to anyone. When we were notified of this … okay, I’m sorry. That was a joke. We were never notified! We just disappeared from email. Fun, right?

John Gruber had a similarly bad experience communicating with Amazon:

There are a lot of sites that rely on Amazon Affiliate revenue. And when it works, it really is a great system: Amazon sells more stuff, readers who follow the links pay the same regular prices as they would if they hadn’t used the affiliate link, and publishers get a nice little cut of the transaction. But in no way is it a relationship between peers. Amazon holds all the power, and as evidenced above, they can just pull the plug at any moment, with no warning and no recourse.

They’re not evil. They just don’t care.