Archive for March 30, 2015

Monday, March 30, 2015

Fantastical and Multiple Events

Dr. Drang:

So I’ve tried to come up with ways to make entering several similar calendar entries as painless as possible. Back when I was using TextMate, I had a system in which I entered one event per line with pipe characters (|) separating the description, date, time, duration, and location fields. These would then be converted into an .ics file and imported into iCal. That worked fairly well, but errors were sometimes hard to catch because the pipe separators made the lines noisy and difficult to read.

Enter Fantastical and its natural language parsing. Even better, enter Fantastical’s small but powerful AppleScript dictionary that allows you to write programs that use its NLP.


Is writing a file with a bunch of lines like this really easier than just typing them directly into Fantastical’s entry field? That depends on the power of your text editor and how good you are at exploiting that power. The lines have a lot of repeated text, and if you’re good at using things like copy-and-paste, search-and-replace, column editing, and multiple cursors, you’ll probably find that entering 15–20 lines in a file is distinctly faster.

It’s kind of like using a BBEdit shell worksheet. There’s a point—in between entering the commands manually and writing a script to generate them all—where it makes sense to construct them in an interactive editor and then execute all the lines.

Apple Pay Exposes Insecure Bank Policies

Rich Mogull:

This is a fascinating issue for two seemingly contradictory reasons. Apple Pay is one of the most secure payment methods in the United States, if not the most secure method, yet its very existence highlights massive weaknesses in the payment system. Let’s explore why and how some lesser known features of Apple Pay could dramatically reduce fraud, if more banks enabled them.


This is the exact opposite of most other countries where the cardholder is responsible for the fraud. Few other countries have guaranteed zero liability, although many banks do offer fraud protection as an enticement to use their cards. This is one of the main reasons most other countries use more advanced credit card security technologies, including card-based Chip and PIN systems and mobile payments. Meanwhile, the United States continues to rely on simple magnetic-stripe signature cards, which are incredibly easy to counterfeit. When consumers carry greater liability, security becomes an essential selling point.


The weak link, it turns out, is the process of registering your card with Apple Pay (“onboarding” in industry terms). Apple built a framework, not a new payment system, and Apple only mediates the connection between your iPhone and your bank. Your bank is supposed to validate that you are who you say you are, based on the Apple Pay registration process.

MacBook Pro Screen Staingate

Topher Kessler:

However, owners of some Retina MacBook Pros sold since mid-2012 are reporting that the coatings on their displays are peeling progressively under normal use. When this occurs, the systems show what appears to be light-colored stains on the display. Since the coating is translucent, the separation can’t always be seen easily in dark conditions with the display on, but it’s more apparent when the display is turned off in a bright environment.

The true extent of this issue is unknown, but it’s sufficiently widespread for disgruntled users to have created a dedicated “Staingate” Web site. Plus, a thread on Apple Support Communities has over 500 posts and nearly 90,000 views, and there’s even a Facebook group with over 800 members.


Apple’s support has often been customer-friendly and responsive, and the company has a great reputation for being personable with customers. However, Apple’s reputation is often sullied by oddly inconsistent behavior like this. Most recently, before starting an official repair program, Apple was similarly random about fixing graphics issues in certain MacBook Pro models (see “Apple’s Baffling Response to 2011 MacBook Pro Graphics Issues,” 13 February 2015). (comments):

The stains can start as early as 7 months after the purchase. There is no clear pattern as to how it starts: some experience it in small spots around the edge, on other screens it appears in the middle as large patches.

Apple hasn’t responded accordingly to this problem and have told us that this is a “cosmetic damage and it is not covered by the warranty”.

Repair costs are around 800 USD/EUR with a 3 month warranty, so probably in 12 months the Macbook would start showing stains again.


Early last year I bought a top-of-the-line MacBook Pro Retina 15”. It cost about $3500. (I am a professional programmer, and use ever last ounce of this capacity.)

A few months ago, I noticed that the screen coating was starting to come off around the edges. About a week ago, I noticed a spot of missing coating in the middle of the display.

My 2012 Retina MacBook Pro is so far fine, but clearly this is affecting a lot of people, many of whom did not use any damaging screen cleaners. I don’t understand why Apple will invest in initiatives that are not about the bloody ROI—in other words, do what it thinks is right at a potential short-term financial cost—yet it seems to take a class-action suit to get it to stand behind its own products. And when you factor in the costs to its reputation, this might well make sense in terms of ROI.

Update (2015-07-20): Ben Lovejoy:

A possible class action suit is in preparation over multiple reports of what appears to be anti-reflective coatings flaking off the screens of Retina MacBook Pros, resulting in a stained appearance. Most of the machines affected seem to be 2013 models.

A group calling itself Staingate says that it has a database of more than 2500 people affected by the issue. More than 1800 of them have joined a Facebook group, a petition has been created, and lawyers Whitfield Bryson & Mason are collecting details of owners for “potential legal action against Apple related to staingate” …

Update (2015-10-19): Joe Rossignol:

Apple will replace Retina displays on affected MacBook or MacBook Pro models for free within three years from the date of original purchase, or one year from October 16, 2015, whichever is longer. Affected customers that have already incurred out-of-warranty costs may be eligible for a refund through AppleCare support.

Andrew Cunningham:

Apple won’t be launching its typical repair program for this fix—there’s no page where you can go and check your serial number to see if you’re eligible, and no concrete process laid out for obtaining service or reimbursement for previous service.

Nick Heer:

However, if you have an early-adopter Retina MacBook Pro that’s affected and you’ve been holding out for a proper out-of-warranty replacement program, this sucks. I stand by what I wrote back when this story broke: Apple should suck up the cost of replacing these displays regardless of when the product was purchased.

Update (2015-10-21): Benjamin Mayo :

In general, though, it seems Apple is trying to keep news of the problem quiet. There is no public acknowledgement of such a program existing on Apple’s website. Apple is contacting people who have reported the problem earlier in the year and were turned away, however.

Zarra’s Core Data Stack

Marcus Zarra creates a private queue context for writing to disk and a main queue (child) context for all user interaction:

To protect our main thread, we call -addPersistentStoreWithType: configuration: URL: options: error: in a dispatched background block. This will allow our -initializeCoreData method to return immediately, even if the persistent store needs to do some additional work. However, the user interface needs to know when it is safe to access the persistence layer. Therefore we need to use the callback block that was given to us.


The proper way to get access to the persistence controller is to inject it into each view controller as they are built and accessed.


The occasions where I don’t use this stack usually involve large data manipulation. When I need to process a tremendous amount of data into the Core Data stack and that data can be isolated away from the User Interface.

Update (2018-09-04): Stichting CocoaHeadsNL:

Dmitrii Ivanov gives us an insight view of the experience that the Qardio iOS team has gained over the years by using Core Data. He explains the issues they’ve had with Core Data, the different stacks you can use and their implementation and performance differences.

Paste Without Style

Craig Hockenberry:

I agree with Buzz Anderson: “Paste-with-styling is one of the worst software inventions of all time.”


Another reason for the confusion is that “and Match Style” really means “Without Style”.

I nearly always use “Paste and Match Style,” and most people should use it but probably don’t know about it. On the other hand, I think it usually makes sense to have the standard operation preserve as much data as possible. Apple made the opposite choice with the Finder’s Paste Exactly, although in that case you could argue that the information discarded by default is only metadata.

Pasting with or without styles is a thorny problem because, as Hockenberry notes, one typically wants different behavior in different applications. I think the problem of matching styles is one reason why many people prefer writing in plain text editors. Everything just looks right automatically.

User-Hostile iWork Experiences

Paul Kafasis:

Suggesting that users upgrade, when their current OS doesn’t support the new version, is just irksome. Wait until they’re on the new operating system, then pitch the upgrade.


These dialogs both pretend that an OS upgrade is no big deal. That’s a grave disservice to users whose workflows are very likely to be disrupted in some fashion with the OS upgrade. To top it off, they fail to offer a “Don’t Show Again” checkbox. They never stop appearing, until you finally do upgrade your OS.


This option is not available on the initial save, so you need to first save, then change the file type and re-save. It’s also tremendously well-hidden. In my case, finding it required the indirect help of an actual iWork engineer. Hopefully, future users who run into issues opening an iWork file from 10.10 on 10.9 will find this post and the workaround.