Archive for December 21, 2016

Wednesday, December 21, 2016

My AirPods Experience

I’ve only been using them for about a day, but so far it seems like Apple got this one right. The AirPods seem to be exactly what you’d expect: OK audio, easier pairing and device switching, a bunch of nice design touches that just work. The charging case is delightful.

The biggest question mark was whether they would fit my ears and stay in. I always found the EarPods a bit loose. The AirPods look very similar but stay in much better. They don’t feel quite as solid when moving as my (now broken) Jawbone ERA headset, but they are much better than my current Plantronics M165. I did not have any problems exercising or changing my shirt.

The biggest flaw is that there are no buttons. Controlling the audio with Siri is unreliable at worst and slow at best. Not only does it take a while to speak your command and for Siri to react to it, but it even feels like a long time between double-tapping and when Siri is ready to listen. This does not seem to be due to the tap detection, because when I set double-tap to play/pause it reacts promptly. Siri also seemed very loud compared with the volume of the music and podcasts I was listening to.

As-is, the AirPods work well for general use and exercise. I’d like to see a version with more noise isolation and/or canceling for airplane use and working in noisy environments.

See also: Kirk McElhearn, David Sparks, Jason Snell, Stephen Hackett, Julio Ojeda-Zapata.

Previously: AirPods.

Update (2016-12-22): Josh Centers:

I tried a few different troubleshooting steps, including toggling Bluetooth, unpairing and re-pairing, and restarting the Mac, and this combination is eventually what worked[…]

Stephen Coyle:

Disappointingly, and contrary to what I expected, AirPods have the worst latency of everything I’ve tested so far. For context, a wired connection achieved latencies of 61ms playing Tapt, and 106ms using the iOS keyboard. The AirPods had latencies of 251ms and 296ms respectively, in the same tests. Even the worst offender in my previous test, the JBL Flip 2, achieved significantly shorter latencies (218ms and 258ms, respectively). In contrast, my £30 Brainwavz Bluetooth earbuds achieved respective latencies of 199ms and 249ms in the same two tests. I would theorise that perhaps the need to ensure both AirPods play sounds in sync necessitates some small amount of additional communication, and thus latency. Hopefully it’s something that could be improved with software updates in future. Of course any wireless technology is going to be slower than a contemporary wired solution, and I didn’t expect the AirPods’ latency to be on par with wired audio, but their failure to beat the latency of much cheaper Bluetooth earbuds is a downer.

Update (2016-12-23): I did not have problems previously, but today the left and right AirPods got out of sync five times within about 30 minutes. There was also a time when I pressed the Play button and got no audio (and no incrementing counter).

Greg Barbosa:

A few days after having received my AirPods order, I’ve quickly come to realize how the lack of accessible audio playback controls can hinder the overall experience.


Between an ever-decreasing Wi-Fi signal strength and iOS’ inability to quickly switch back to cellular, I have zero luck using Siri when walking from my front door to the elevator. Siri needs an internet connection to understand even the most basic of commands, and that’s what frustrates me most. Apple already solved this issue years ago.

Voice Control, Siri’s iOS predecessor, could handle offline requests with no issue.

See also: John Gruber, David Pogue, Benjamin Mayo.

Update (2016-12-27): See also: Accidental Tech Podcast.

PyPy’s Hash Table Implementation

Maciej Fijalkowski (via David Smith):

One surprising part is that the new design, besides being more memory efficient, is ordered by design: it preserves the insertion order.


Here, compact_array stores all the items in order of insertion, while sparse_array is a 1/2 to 2/3 full array of integers. The integers themselves are of the smallest size necessary for indexing the compact_array. So if compact_array has less than 256 items, then sparse_array will be made of bytes; if less than 2^16, it’ll be two-byte integers; and so on.

This design saves quite a bit of memory.


The obvious benefit of having more compact dictionaries is an increased cache friendliness. In modern CPUs cache misses are much more costly than doing additional simple work, like having an additional level of (in-cache) indirection.


To preserve order, when we delete an entry, we mark the entry as removed but don’t otherwise shuffle the remaining entries. If we repeat this operation often enough, there will be a lot of removed entries in the (originally compact) array. At this point, we need to do a “packing” operation, which moves all live entries to the start of the array (and then reindexes the sparse array, as the positions changed).

Previously: Accidentally Quadratic Rust Hash Tables, Exploring Swift Dictionary’s Implementation, Exposing NSDictionary.

More macOS Preview PDF Trouble

Brooks Duncan (via Eddie Smith):

In the comments to my blog post about ScanSnap on Sierra, awesome DocumentSnap reader Alex writes this:

Since updating to macOS 10.12.2 I have found that Preview destroys the OCR layer of PDFs scanned and OCR’d with the latest ScanSnap Manager software if you make any sort of edit with Preview (e.g. deleting or reordering pages). After editing and saving with Preview, the PDF is no longer searchable and text is not selectable. Managed to replicate the problem on another Mac running 10.12.2. Doesn’t seem to affect PDFs scanned and OCR’d with other scanners or applications. Just wanted to warn everyone to perhaps wait before updating, and check that they haven’t unwittingly destroyed their OCR if they have already updated.


As you can see, it seems to be something to do with Preview on macOS Sierra 12.12.2. Alex said that he didn’t see the issue with other scanners, but I ran into it with both ScanSnap and Doxie. Both of those scanners use ABBYY for OCR, so that may be relevant.

I ran into a lot of PDF bugs in macOS 10.12.0. None have been fixed, as far as I can tell, and I’ve already filed two Radars for new issues in 10.12.2. It’s sad that basic functionality remains broken for so long—especially given that PDF was an area where Apple used to excel.

Update (2017-01-02): Adam C. Engst:

It pains me to say this, speaking as the co-author of “Take Control of Preview,” but I have to recommend that Sierra users avoid using Preview to edit PDF documents until Apple fixes these bugs. If editing a PDF in Preview in unavoidable, be sure to work only on a copy of the file and retain the original in case editing introduces corruption of any sort. Smile’s PDFpen is the obvious alternative for PDF manipulation of all sorts (and for documentation, we have “Take Control of PDFpen 8” too), although Adobe’s Acrobat DC is also an option, albeit an expensive one.

In the meantime, we’ll be watching closely to see which of these PDF-related bugs Apple fixes in 10.12.3, which is currently in beta testing.

John Gruber (tweet):

On the bright side, when this happened with the iWork suite, the Mac apps eventually gained back most of the functionality that was removed for parity with iOS. But it sure seems like Apple pulled the trigger on this at least a year before it was ready.

Update (2017-01-03): Chuq Von Rospach:

“parity with IOS took priority” over backward compatibility. As it did with Keynote, Pages, Numbers, iMovie, Photos… Very Apple.

See also: MacRumors and Hacker News.

Update (2017-01-05): Lloyd Chambers:

[Data] loss supports the “disdain and contempt” theory, but does not rule out sheer incompetence.

Note the “common core” thing—a very dangerous trend for future APIs in terms of reliability, compatibility and data integrity particularly since Apple seems to have no idea what unit testing is.

Whose data of any kind is safe when Apple has no qualms about rewriting APIs that damage user files?

Update (2017-01-23): David Sparks:

I am receiving a lot of email lately from readers encountering PDF problems on the Mac. If that’s you, you’re not alone.

Update (2017-03-28): macOS 10.12.4 fixes some of the PDF display bugs.

Update (2017-04-03): Adam C. Engst:

Last week, I polled the developers who had commented on the topic for my first article. The consensus was that Apple’s rewritten-for-Sierra PDFKit framework continues to improve, while simultaneously introducing new bugs.

I also found a new PDF display bug since talking with Engst.

Update (2017-05-17): Certain types of PDF scrolling remain broken in macOS 10.12.5.

Farewell to the Apple Watch

Matt Gemmell:

My usage pattern was ludicrous, given what the thing can do. To me, it was a wristwatch with some notifications, and I was charging it every night. The notional benefit of long-term heart-rate monitoring (I have a heart condition) is nullified by it only taking readings every ten minutes unless you’re actively in a workout, which of course consumes a lot of power and can’t possibly be left on all day. And because of Apple Pay, I had to unlock the thing every time I put it back on.

What I actually need is something much simpler as a health tracker, and a basic timepiece. If Apple happens to make a future model with truly multi-day battery life (when tracking 2-3 workouts per day, and constant heart-rate monitoring at least every five seconds), plus an always-on time display, I might be interested again. For now, no.

I’m a different person than I was, and this kind of gadgetry needs to fade into the background. It was too demanding, in terms of the overly-clever interface of swipes and taps and wheel-spinning and button-pressing[…]

Update (2016-12-27): Kirk McElhearn:

But I’ve never been truly convinced that the Apple Watch made my life any better. So it’s time to give the Apple Watch a rest. In the next couple of days, I will remove it from my wrist and place it in a drawer. I want to ignore it entirely; I still write about this stuff, so I will test it from time to time as Apple updates the device’s software. But I don’t see any reason to keep using the Apple Watch.


Using third-party apps was a horrible experience early on, but, even now that they launch faster, I don’t find any to be useful. It’s too much of a hassle to use the tiny display of the Apple Watch when I have my iPhone handy. As such, I have only used Apple’s stock apps, with the exception of one or two apps that added complications.


One more thing, and I’ve thought this from the beginning: the Apple Watch is ugly. In ten years, when Apple has figured out how to make an attractive wearable, we’ll look back on this device the way we now look at those watch/calculators from the 1970s. It’s just unattractive design. I don’t blame Jony Ive; he had to work with the limitation of a rectangular display, and I predict that Apple will make a round one at some point, which will be a lot better looking.