Archive for May 2019

Friday, May 31, 2019

The End of iTunes

Mark Gurman:

iTunes has been the way Apple users listen to music, watch movies and TV shows, hear podcasts, and manage their devices for almost two decades. This year, Apple is finally ready to move into a new era. The company is launching a trio of new apps for the Mac – Music, TV, and Podcasts – to replace iTunes. That matches Apple’s media app strategy on iPhones and iPads. Without iTunes, customers can manage their Apple gadgets through the Music app.

Joe Rossignol:

This information lines up with a recent report from 9to5Mac’s Guilherme Rambo, who claimed that iTunes will be renamed to “Music” on the Mac. In other words, iTunes is going away and will be replaced by the new Music app, which is expected to become the new utility for syncing and managing Apple devices.

Allen Pike:

Surprisingly, this new app is said to be based not on the iOS app or a new codebase, but on the venerable iTunes itself.

There will surely be naysayers that claim iTunes should have been tossed entirely. And admittely, if the new Music app ditches iTunes’ interface but can’t cure its deep and baffling love for obtuse modal error dialogs, I too will bemoan its preservation. But arguing for code to be rewritten just because it’s old has never been the right way to build systems that work.

He has a great collection of iTunes error messages.

See also: Stephen Hackett.

Previously: macOS 10.15 to Break Up iTunes.

Update (2019-06-03): Craig Hockenberry:

I haven’t seen it reported elsewhere, but as of last weekend all links redirect to — a likely indicator that the brand is done (the app will be fine for those of us who need it.)

Joe Rossignol:

As noted on Reddit, Apple has abruptly removed all social media content from its iTunes page on Facebook, including posts, photos, and videos. This appears to have happened within the past 24 hours, as a cached version of the iTunes page on Facebook still had content available as of May 31.

See also: Hacker News.

Browser Vendors Win War With W3C


Today W3C and the WHATWG signed an agreement to collaborate on the development of a single version of the HTML and DOM specifications. The Memorandum of Understanding jointly published as the WHATWG/W3C Joint Working Mode gives the specifics of this collaboration. This is the culmination of a careful exploration of effective partnership mechanisms since December 2017 after the WHATWG adopted many shared features as their work-mode and an IPR policy.

Catalin Cimpanu:

Known as the Web Hypertext Application Technology Working Group (WHATWG), this group was formed in 2004 as a response to the W3C’s slow pace of developing a more modern HTML standard, and the W3C’s plans to move HTML towards a variant known as XHTML, with an XML-like structure, which browser vendors at the time did not agree with.


In many cases, proposed standards would often ship in Chrome or Mozilla even before they were finalized and formally approved by the W3C, showing that most of the time, browser vendors considered getting W3C approval as only a formality, which had little impact on the standards they decided among themselves at the WHATWG.

The two organizations had an official fallout in April 2018, when all WHATWG members -- Apple, Google, Microsoft, and Mozilla -- vehemently and unequivocally opposed the W3C’s plans for approving version 4.1 of the DOM standard.

Laurie Voss:

The W3C has officially acknowledged that it lost control of HTML standards to the WHATWG many years ago.


[It] essentially just admits what happened already, which is that the major browser makers decide what the web can do. As long as all four are roughly equally powerful I don’t see it being that big an issue.

Update (2019-06-14): Jen Simmons:

Think of all the many HTML elements that were considered and rejected over the years — and we are supposed to be on-board with TOAST? Because a couple guys at Google decided they want it. And they can.

So no to


But yes to



Gab Will Become a Mastodon Fork

Gab (Hacker News):

Progress on our new codebase is going well. For those who don’t know, our plan is to fork existing open source software, Mastodon, which is based on the ActivityPub social networking protocol.


You’ll be able to log into and use dozens of existing mobile apps that exist on both App Stores with your Gab account and use Gab through these apps.


Moving to the ActivityPub protocol as our base allows us to get into mobile App Stores without even having to submit and get approval of our own apps, whether Apple and Google like it or not.

App Review’s previous stated rationale for rejecting the Gab app was that the service didn’t do a good enough job of moderating the user-generated content. Gab claimed that they try their best to do this but that Apple’s requirements are impossible to meet. Clearly, Twitter and other social networks don’t always meet them, either. But Twitter is too-big-to-reject, and Gab has a reputation for offensive content, attracting a community of users that were banned or had their posts deleted from Twitter.

This new move is interesting because Mastodon is federated, and as far as I can tell, each sub-community has its own rules. Some of them are probably already less moderated than Gab was, yet they haven’t attracted similar attention, and so the various apps were in no danger of being banned.

I wonder how Apple and Google will respond. I could see them not caring, so long as accessing the Gab content requires typing in a server address. I could also see them requiring apps to actively block that address.


Update (2019-07-15): Gab:

Google is now banning open source Fediverse/ActivityPub protocol apps the moment Gab becomes a top trending app.

Our app, like every other Fediverse app, doesn’t have any user content. It can connect to ANY server in the Fediverse. Otherwise it is a blank slate.

We have 7 days to comply with these demands, which are impossible to comply with. The Fediverse is decentralized! We can’t moderate content for thousands of servers we don’t control!

@autoreleasepool Uses in 2019 Swift

Bruno Rocha:

To put it short, autoreleasepool is still useful in iOS/Swift development as there are still legacy Obj-C classes in UIKit and Foundation that call autorelease, but you likely don’t need to worry about it when dealing with Swift classes due to ARC’s optimizations.

Presumably, pure Swift objects can also be autoreleased when manipulated by Objective-C code. I still find autoreleasepool to be useful, both to reduce peak memory use and to ensure that resources associated with objects will be cleaned up at a particular time.

One pain point has been that XCTestCase doesn’t seem to use pools around its setUp() and tearDown() methods. This led to log messages from Core Data complaining that the SQLite database had been deleted out from under it when the test was over. An autoreleased controller had been retaining the persistent store coordinator.

I ended up making a subclass of XCTestCase with its own lifecycle methods that run inside autorelease pools and are allowed to throw errors.

Thursday, May 30, 2019

App Store Competition

Mark Gurman (tweet, 9to5Mac):

Apple Inc.’s former head of App Store approvals said he’s worried about competition between the company and developers, and even recalled board member Al Gore asking about a controversial app approval.

Phillip Shoemaker, who ran app reviews from 2009 to 2016, made the comments in the latest episode of Bloomberg’s Decrypted podcast ahead of Apple’s annual developers conference in early June.

It’s worth listening to the episode.

Steve Troughton-Smith:

Apple was always “embarrassed” about the numbers of developers supporting watchOS? It’s 👏 because 👏 nobody 👏 wants 👏 to 👏 build 👏 apps 👏 with 👏 WatchKit! And by far the biggest potential Apple Watch software market is always going to be custom watch faces

James Vincent (Hacker News):

In the interview, Shoemaker says that Apple has long feared that rival apps from companies like Google and Facebook would replace core iOS features like calling and messaging. He notes that this fear is “absolutely the reason” that the company still doesn’t let users set third-party apps as the default service for these primary functions.

“That was a real thing. I mean the fear that somebody would come along, a Facebook, a Google, whomever and wipe off and remove all of our items,” says Shoemaker.


A store that welcomes competition.

We believe competition makes everything better and results in the best apps for our customers.


Here’s a look at a variety of categories we’re competing in, and who we’re competing with, on our App Store.

Benoit Letondor:

I’ve seen a lot of BS from tech companies, but @Apple branding it’s @AppStore “A store that welcomes competition” is by far the biggest bullshit I’ve seen in years!

Nilay Patel:

Apple: Look at how competitive and open the App Store is!

Also Apple: Here is an infographic of apps that are forced to compete with us on an uneven playing field

I think it is extremely important for everyone to look at Apple’s proffered evidence of competition for FaceTime and then let loose a hearty chuckle of despair

Jason Snell:

Among the things on the page that made me raise an eyebrow is the segment about how Apple allows competition to Safari in web browsers. That’s only technically true, since different web rendering engines are barred from iOS.

Apple’s apps also get to use private APIs and daemons, have greater access to public APIs, act as default apps, and have privileged access to the lock screen, Control Center, and Siri. They’re also not subject to App Review limbo, the normal rules for push notifications and subscriptions, or the App Store tax.

Damien Petrilli:

That’s the thing, with a 30% tax, you can build anything. And what is messed up is that it scales.

So if your App is very successful, it doesn’t even protect you because Apple is getting more money from it to build a competitor.

Steve Troughton-Smith:

I actually like App Review, & the review process 👀 But I do think there needs to be external, independent oversight, because the App Store is too important to society for any one person to be the sole arbitrator


The five pillars of the guidelines — Safety, Performance, Business, Design, and Legal — require that apps offered on the App Store are safe, provide a good user experience, adhere to our rules on user privacy, secure devices from malware and threats, and use approved business models.

Jeff Johnson:

Five months ago I wrote about a scammer named “Emanuele Floris” who has an absurdly large number of apps in both the iOS and Mac App Store. At the suggestion of someone who works for the App Store, I also reported this scammer to Apple’s App Review via email. And I reported the scammer to Apple Product Feedback. As of this writing of this blog post, this scammer’s apps are all still in the iOS and Mac App Store. No action has been taken by Apple.

Recently I found another enormous scam in the Mac App Store. As a Mac developer, I’m primarily concerned with the Mac side. Don’t make the mistake of thinking that scams are primarily a Mac App Store problem, though. As I said, Emanuele Floris has a large number of apps in the iOS App Store. If you want to read more about scams in the iOS App Store, take a look at Apps Exposed.


I want the App Store to be safe. I want the App Store to be a good experience. I sell my own apps in the App Store, and I hate that shoppers get scammed, I hate that legitimate developers have to compete against scammers. I hate that Apple sometimes even features scammers in the App Store.

Rory Prior:

The idea that the App Store is a ‘safe and trusted’ place is also problematic. We know full well that scam apps get on to the store all the time, the veneer of ‘it’s safe because it’s Apple’ actually puts users at more risk than if they treated everything with suspicion.


84% of apps are free, and developers pay nothing to Apple.

John Gruber (tweet):

Any developer distributing an app through the App Store, free or paid, must pay Apple $99 per year for a developer account. You can build apps using Xcode free of charge, but you need a paid developer account to distribute them through the App Store.

This was never the case with the Mac, until the notarization requirement.

Rui Carmo:

The $99 developer tax is the sole reason I only developed mobile apps for Android even though I use Apple devices first and foremost–not because I can’t afford it, but because I find a lot of it purely insulting (the limitations in sideloads, the hassle of having to rebuild your personal apps periodically, and, of course, the “added value” of the largely inhospitable developer documentation).


Honestly, I don’t think the fee is even a good deterrent against junk apps, since the App Store is already full of them and the app review process (which is a legend unto itself) seems wide off the mark there.

Michael Love:

It’s a sign of the cutthroat / disorganized nature of the Android indie developer community that we haven’t all gotten together by now and started our own open-source App Store with 5% commissions and offered it to OEMs for free.


Update (2019-05-31): Jim Dalrymple (in 2012):

Farouk told The Loop that Apple rejected an update to the app this week claiming that showing the “iTunes ‘now playing’ or track changes is a misuse of Notification Center.”


Here’s the funny thing. The app was already approved and in the Mac App Store for some time with the notification functionality working perfectly. Apple rejected the app when Farouk submitted an update adding a preference to remove the menu bar icon. No changes were made to the notification functionality in the update, according to Farouk.

Soon after that, Apple released an update for iTunes itself to post track changes to Notification Center.

Another example of this type of behavior is Apple rejecting a camera app for using the hardware volume button to control the shutter, a feature which it built into the iOS Camera app just months later.

Sash Zats:

Let’s take iMessage for example. Shipped with OS, has in-app AppStore UI (Messenger was rejected for putting games into groups, cause it resembles AppStore too much), conveniently entangled with SMS: oh you can’t send it as iMessage? Let’s send it SMS!

Chaim Gartenberg (via Nilay Patel):

But Apple’s defense is full of holes. Yes, Apple has its guidelines for the App Store and a review process, but after a decade, it’s clear that the company doesn’t consistently enforce them or often chooses to enforce them when it profits Apple. Even for the apps that are allowed on the store, developers still have to fight an uphill battle against Apple’s own services.


Meanwhile, Apple still allows plenty of MDM apps on the App Store, like the business-focused Jamf Now or any number of MDM solutions available on an academic level for managing iOS devices for students. Why does Apple allow employers to leave their customers data vulnerable or schools to put their students’ data at risk, but not allow parents to make similar decisions with devices they’ve purchased for their kids?

See also: Paul Thurrott.

Update (2019-06-03): Paulo Andrade:

Listening to the Shoemaker interview about app review process I can’t help but notice his main concern was about whether approving an app would make the “stock price go down”…

Kyle Howells:

All these articles about AppStore competition and nobody manages that Apple had an AppStore rule not to compete with(duplicate) built in OS features (which they used against Google Voice years ago).

Which makes that section on their website pretty funny.

Tuesday, May 28, 2019

Apple Expected to Remove 3D Touch

Joe Rossignol:

Last week, in a research note shared with MacRumors, a team of Barclays analysts “confirmed” that 3D Touch “will be eliminated” in all 2019 iPhones, as they predicted back in August 2018. The analysts gathered this information from Apple suppliers following a trip to Asia earlier this month.


Apple already replaced 3D Touch with Haptic Touch on the iPhone XR in order to achieve a nearly edge-to-edge LCD on the device, and it is likely the feature will be expanded to all 2019 iPhones. Haptic Touch is simply a marketing name for a long press combined with haptic feedback from the Taptic Engine.

Haptic Touch works well, but it isn’t a replacement for 3D Touch because it’s just about feedback, not input. 3D Touch had the potential to be like modifier keys on the Mac, a way to provide an additional “dimension” of input. iOS really needs something like that. I’m not sure why Apple never really did much with it, but the potential was wasted. Given that, and the fact that it never made it across the iPhone product line or to any iPads, I can certainly see why they would get rid of it and doubt most people will miss it (or even knew about it in the first place).

Kyle Howells:

3D Touch should have replaced/been the same as long press in almost all situations. It eliminates wait times and makes everything faster.

Instead Apple confused everything by having 3 different things happen depending on how you tap an app icon.

Neil Sardesai:

Man that’s a shame. Especially on iPad where long press is a super overloaded gesture, 3D Touch would really alleviate that

Russell Ivanovic:

Unpopular opinion I suspect, but 3D touch is one of the worst usability mistakes Apple ever made (IMHO). Difficult gesture that in places like the home screen conflicts with other gestures. I shouldn’t have to be the Lionel Messi of fingers to rearrange my icons 😂

Nick Lockwood:

Damn. 😔 3D touch is great, especially for games - there’s nothing wrong with the tech itself, only the dreadful way Apple chose to integrate it into the UI.

If it had just been introduced as a universal contextual menu shortcut it could’ve been so powerful.

Steven Aquino:

What concerns me is the Touch Bar (and 3D Touch, another thing I like) kind of exist in the netherworld. Limited in availability and largely unrefined.


Update (2019-05-30): Vatsal Manot:

Simply put - it failed to become an idiomatic element of the iPhone’s UX language.


Haptic Touch over 3D Touch is clearly a degraded user experience. Do not let anyone trick you into believing otherwise, Apple most of all.


As a developer, Apple has not made it easy for me to implement a 3D Touch action. Instead of creating a canonical UIGestureRecognizer sublcass for 3D Touch (as they so easily could have), they decided to leave it up to the developer to implement.

John Gruber:

3D Touch is a great idea but Apple never rolled it out well, and it was never discoverable.


I think it should have always been a shortcut for a long-press, pure and simple. Just a faster way to long-press. But because 3D Touch is not just a shortcut for a long-press, but is not available on any iPad nor many iPhones, developers could never count on it, so they never really did anything with it. It doesn’t get used much because there’s not much you can do with it.

Kyle Howells:

Either way without universal support across all iOS devices Apple’s never been able to rely on 3D Touch being there.

This means either they use long press to reveal the same action (as with control centre), or the feature just isn’t available (home screen 3D touch widgets on iPad).

Lily Ballard:

I really hope the rumors are wrong and 3D Touch isn’t going away. Apple hasn’t done enough with 3D Touch but what they have done is irreplaceable. For example, you can peek at Today widgets from Springboard with it! I miss being able to do that on my iPad.

Steve Troughton-Smith:

Should iOS have any pro features if users aren’t going to find them? …should macOS have any pro features if users aren’t going to find them? 🧐

Nick Heer:

I would prefer to see improvements to 3D Touch; but, because it hasn’t changed much or been more thoroughly applied in the nearly four years since it was introduced, I think the digital scrap heap is probably best. This rumour, of course, leads to the question of what to do with its dependencies on the iPhone. The biggest question, for me, is what happens to notifications: since they were adjusted in iOS 10 to make use of 3D Touch, they’ve never felt at home on non-3D Touch devices.

Update (2019-05-31): A. Lee Bennett Jr.:

Man that would suck. I agree with many that it isn’t well implemented, but I do use it frequently. I hate that FB actually chose to drop support. I used it to quickly post a photo via 3D Touch on the app icon. And I use it to edit the latest photo with Instaflash ALL the time.

Wojtek Pietrusiewicz:

Can’t imagine going back to a world without 3D Touch. I use it multiple times a day and continue to miss it on the iPad. A long press is not a good substitution.

Update (2019-06-04): Joe Rossignol:

Now, on the software side, there are changes that suggest the rumor is accurate. It really looks like pressure-sensitive 3D Touch is going away.

Benjamin Mayo:

3D Touch is basically nerfed into the ground on iOS 13. It doesn’t do anything fast anymore. They’ve instead added Haptic Touch gestures everywhere.

Update (2019-09-11): Juli Clover:

Apple has officially nixed 3D Touch in its newest iPhones.

Update (2019-09-13): Joshua Emmons:

For the first time I’m hesitating about upgrading my iPhone. I don’t want to give up 3D Touch. I know no one else cares, but I use it constantly and bemoan every time I have to “long tap” something on my iPad. Bit by bit it wears my patience down to a nib.

Update (2019-10-03): Juli Clover:

In this guide, we’ll go over everything you need to know about Haptic Touch and how it differs from the 3D Touch feature that’s been available since the iPhone 6s.

See also: Hacker News.

iPod touch 7th Generation

Joe Rossignol:

Apple today announced a new iPod touch with headline features being a faster A10 Fusion chip and a new 256GB storage option.

That’s the same processor as the iPhone 7, up from the iPhone 6–era A8. It has the same 4-inch screen size as the iPhone SE, but with just 3/4 the weight and a worse camera and less comfortable shape. Unless you really want the small size, I think most people would prefer a used iPhone SE or iPhone 7, which would likely also be cheaper.

Rob Griffiths:

Of course, to find it on Apple’s site, you need to know that an iPod touch is categorized as Music.

Even on the day of its release it doesn’t get a spot on Apple’s homepage.

Michael Love:

Actually this is very good news for iPhone SE fans, because if they’re launching a brand new 4-inch device now - which is therefore going to have to be supported by iOS until at least 2022 or 2023 - it seems like 4-inch screens aren’t going anywhere.

Also, the article’s theory that Apple is about the drop the A8 - and therefore the iPhone 6/6+ along with the 5s - makes sense; those are the last devices left with only 1 GB of RAM, not to mention that the A9 was a huge performance leap over the A7/A8.

So as of this summer, the new baseline is going to be an A9 and 2 GB of RAM. Which means that the oldest supported iOS device will have about the same CPU performance that the 2018 Android flagships did.

Manton Reece:

It’s best to think of the iPod Touch as a very small, $199 iPad. I think the value for that price is better than any other Apple product. Good to see it updated.

John Gruber:

In the early years, I think a lot of iPod Touches were sold for use by kids. But today, most kids use hand-me-down iPhones. I think a lot of new iPods Touch are sold for enterprise purposes — warehouse scanning, point-of-sale, that sort of thing.

Update (2019-05-30): Kirk McElhearn:

The iPod touch is still a great device if you have a large music library, and it’s perfect for a kid who wants to play games on a small device yet not have cellular access. Or let a kid use it to take photos; while it’s not the best camera in an Apple device, and it’s only 8 Mp, it’s still a great way for kids to get into photography.


It’s widely used in industry, in warehouses, as point of sale devices, and in health care. Even Apple’s retail stores uses iPod touch devices (at least in the UK).

Tambourine Man:

A celular chip can’t possibly cost much these days. Slap one in and you’ve got a US$ 200 iPhone that would sell like hot cakes. Make a larger version and rule the world.

Monday, May 27, 2019

Wish for a Return of Vibrant Tapdown States

John Gruber:

I don’t know why, but one of those things has been bugging me a lot in recent months: the drab gray color that indicates tapdown state for list items and buttons. Putting aside skeuomorphic textures like woodgrain and leather and the 3D-vs.-flat debate, the utter drabness of tapdown states is just a bad idea. I didn’t like it when iOS 7 debuted, and I like it even less 6 years later.

In classic iOS, when you tapped down on list items or buttons, they’d instantly light up in vibrant color. The standard color was a bright cheerful blue. In iOS 7 through 12, the tapdown state is the color of dirty dishwater.

Steven Aquino:

John talks about delight being sapped from iOS post-iOS 7, which is true in many ways. But the tap down state he calls out here is an accessibility issue too. iOS 6 blue was better—more visually concrete and contrasting.

Andy Lee:

Related: a key principle of graphical user interfaces is the notion of direct manipulation, which necessarily means clear and immediate visual feedback. More than once I’ve seen Apple fail in this respect.


Skeuomorphism was a visual device used to train users on how to use phones when we transitioned from the physical form to digital. It was a solution of the time and that’s all.

Kyle Howells:

I see this point of view a lot. That skeuomorphism was a crutch we as society needed but have now outgrown.

I think this sort of thinking is incredibly misguided and damaging.

Dan Masters:

Some joyful Apple software highlights

Benjamin Mayo:

The standard set by iOS 7-12 is much more drab, almost clinical. It’s a flat, nondescript, grey that seems like it was chosen specifically because it would not draw the eye. The grey is close enough to white that anything white would not have sufficient contrast, so the illumination effect is also no longer present. Cell content no longer reacts in tandem. The whole interaction is a lot more lifeless. Rather than the UI egging the user on to complete the tap action, today’s iOS drearily yawns and says “okay, if you must”.

This is just one of the laundry list of things that people railed against in 2013. Criticism died down as people acquiesced to what was given to them. Many critics, myself included, accepted the iOS 7 design as a rush job and thought that Apple would obviously catch their breath and ‘fix it’ over the next couple of OS versions. I don’t think anyone at the time expected us to still be stuck with these missteps six years later.


Gatekeeper Symlink/Automount Bypass

Filippo Cavallarin (Hacker News):

To better understand how this exploit works, let’s consider the following scenario: An attacker crafts a zip file containing a symbolic link to an automount endpoint she/he controls (ex Documents -> /net/ and sends it to the victim. The victim downloads the malicious archive, extracts it and follows the symlink.

Now the victim is in a location controlled by the attacker but trusted by Gatekeeper, so any attacker-controlled executable can be run without any warning. The way Finder is designed (ex hide .app extensions, hide full path from titlebar) makes this tecnique very effective and hard to spot.


The vendor has been contacted on February 22th 2019 and it’s aware of this issue. This issue was supposed to be addressed, according to the vendor, on May 15th 2019 but Apple started dropping my emails. Since Apple is aware of my 90 days disclosure deadline, I make this information public.

Howard Oakley:

These checks are in any case only performed when an app is run via LaunchServices, i.e. the Finder. So a user shouldn’t be able to run an app with a broken signature from a new location using the Finder, but they can run an app with no signature at all, and any malicious script or process can execute code from an app with a broken signature without any signature checks being performed, unless it’s kind enough to ask for them.


Movist Removed From the Mac App Store

Movist (via Leo):

This is because Apple has refused to update the app, and they have also removed from the App Store the already accepted version.

What Apple pointed out was that Movist has a feature of “downloading 3rd party media”. So we removed the Safari Extension to allow YouTube videos to be played in Movist and removed the feature from Movist too. But Apple still refused to update because Movist has that feature yet. After all, we had no choice but to remove all streaming functionality from Movist.


5.2.3 Audio/Video Downloading: Apps should not facilitate illegal file sharing or include the ability to save, convert, or download media from third party sources (e.g. Apple Music, YouTube, SoundCloud, Vimeo, etc.) without explicit authorization from those sources. Streaming of audio/video content may also violate Terms of Use, so be sure to check before your app accesses those services. Documentation must be provided upon request.

It doesn’t look like the app is intended for saving media. I don’t see what would be objectionable about streaming—any app with a Web view can already do that.

Previously: IINA 1.0.

Apple Developer Survey

Felix Krause:

If you get the email, this is your chance to give feedback about:

- Binary processing time
- Code signing
- Lack of API endpoints
- Inconsistent rejection reasons
- Managing app metadata and screenshots
- TestFlight review times

Tyler Hall:

Also, in general, the Mac App Store is a kafkaesque hellscape full of scam artists that erode customers’ trust in the overall system and shitty apps that are nowhere near the level of quality that long-time Mac users expect from 3rd party software.

Add to that the arbitrariness of App Review, which seems more interested in penalizing legitimate developers for the most insignificant of reasons, while big name companies get away with flaunting the rules, and fly-by-night developers actively ship malicious, misleading, predatory, and outright-broken software.

Previously: Apple Pulling High-Grossing Scammy Subscription Apps Off the App Store

Friday, May 24, 2019

Why Does Windows Use Backslash As the Path Separator?

Michal Necasek (via Hacker News):

Microsoft reportedly wanted to use the forward slash as path separator, but IBM nixed the idea because it would have created an incompatibility with DOS 1.x, which already used the forward slash as a switch character, separating command options.


Changing the slash semantics had a clear potential for destroying data, especially when running batch files written for DOS 1.1. Something like ‘COPY FOO + BAR /A’ has rather different semantics when /A is a switch vs. when /A is a file or directory in the disk’s root directory.


There have Microsoft’s own word that the forward slash came not from CP/M, not from IBM, but from DEC, and there’s an explicit mention of TOPS-10.

How Effective Is Basic Account Hygiene at Preventing Hijacking?

Google (via Kevin Beaumont):

We found that an SMS code sent to a recovery phone number helped block 100% of automated bots, 96% of bulk phishing attacks, and 76% of targeted attacks. On-device prompts, a more secure replacement for SMS, helped prevent 100% of automated bots, 99% of bulk phishing attacks and 90% of targeted attacks.


Given the security benefits of challenges, one might ask why we don’t require them for all sign-ins. The answer is that challenges introduce additional friction and increase the risk of account lockout. In an experiment, 38% of users did not have access to their phone when challenged. Another 34% of users could not recall their secondary email address.

Facebook Sharing Data With Phone Carriers

Sam Biddle (via John Gruber):

Offered to select Facebook partners, the data includes not just technical information about Facebook members’ devices and use of Wi-Fi and cellular networks, but also their past locations, interests, and even their social groups. This data is sourced not just from the company’s main iOS and Android apps, but from Instagram and Messenger as well. The data has been used by Facebook partners to assess their standing against competitors, including customers lost to and won from them, but also for more controversial uses like racially targeted ads.


The source, who discussed Actionable Insights on the condition of anonymity because they were not permitted to speak to the press, explained that Facebook has offered the service to carriers and phone makers ostensibly of free charge, with access to Actionable Insights granted as a sweetener for advertising relationships. According to the source, the underlying value of granting such gratis access to Actionable Insights in these cases isn’t simply to help better service cell customers with weak signals, but also to ensure that telecoms and phone makers keep buying more and more carefully targeted Facebook ads. It’s exactly this sort of quasi-transactional data access that’s become a hallmark of Facebook’s business, allowing the company to plausibly deny that it ever sells your data while still leveraging it for revenue.

Previously: A Privacy-Focused Vision for Social Networking.

Understanding Real-World Concurrency Bugs in Go

Tengfei Tu et al. (PDF via Susan Potter):

In this paper, we perform the first systematic study on concurrency bugs in real Go programs. We studied six popular Go software including Docker, Kubernetes, and gRPC. We analyzed 171 concurrency bugs in total, with more than half of them caused by non-traditional, Go-specific problems. Apart from root causes of these bugs, we also studied their fixes, performed experiments to reproduce them, and evaluated them with two publicly-available Go bug detectors. Overall, our study provides a better understanding on Go’s concurrency models and can guide future researchers and practitioners in writing better, more reliable Go software and in developing debugging and diagnosis tools for Go.

Thursday, May 23, 2019

Privacy Preserving Ad Click Attribution For the Web

John Wilander:

The combination of third-party web tracking and ad campaign measurement has led many to conflate web privacy with a web free of advertisements. We think that’s a misunderstanding. Online ads and measurement of their effectiveness do not require Site A, where you clicked an ad, to learn that you purchased something on Site B. The only data needed for measurement is that someone who clicked an ad on Site A made a purchase on Site B.

Today we are presenting a new technology to allow attribution of ad clicks on the web while preserving user privacy.


The browser should act on behalf of the user and do its best to preserve privacy while reporting on ad click attribution. We achieve this by:

  • Sending attribution reports in a dedicated Private Browsing Mode even though the user is in regular browsing mode.
  • Disallowing data like cookies for reporting purposes.
  • Delaying reports randomly between 24 and 48 hours.
  • Not supporting Privacy Preserving Ad Click Attribution at all when the user is in Private Browsing Mode.


Privacy Preserving Ad Click Attribution is in the early stage of being proposed as a standard through the W3C Web Platform Incubator Community Group (WICG). Please join the discussion and file issues to discuss how this technology fits with your use cases.

See also: John Gruber.


Update (2019-05-27): See also: Hacker News.


Alternatively, once the ad fraudsters have decided to scam an advertiser using this system, their ad fraud programs make a series of POST requests to the same well-known location pretending to be copies of Safari that have seen conversions from this ad campaign. The only way to detect this fraud would be to match up actual orders with claimed conversions from a particular site, completely bypassing the intended privacy protections. (Which probably wouldn’t be that hard in some circumstances, but fraudsters would of course get to target the scenarios where matching up orders is hardest.)

Like, as far as I can tell, this completely fails to provide attribution data that advertisers can trust at all because it relies totally on the honesty of software installed on end-user devices. It will also fail to provide the stated privacy level in many situations, such as when the user keeps the same unique-ish IP address for several days. The only thing it seems to achieve is good PR for Apple, who will get a bunch of stories from credulous reporters about how they’re trying to improve user privacy and the evil adtech industry is thwarting them because it wants to know everything about you.


Cabel Sasser:

After more than 20 years of making quality apps you love for Mac and iOS, Panic was ready to try something new…

…and that something was hardware.

Playdate (tweet, Hacker News, MacRumors):

It’s yellow. It fits in your pocket. It’s got a beautiful black and white screen. It’s not super cheap, but not super expensive. It includes brand new games from some amazing creators. Plus it has a crank.


Panic built every part of Playdate from scratch, starting with early board designs (using the hotplate in our kitchen to flow solder), our own Playdate OS, a full-featured SDK supporting C and Lua development, a Mac-based simulator and debugger, and more.

We then brought Playdate to one of our favorite companies on the planet — Teenage Engineering, the Stockholm-based creator of synthesizers and so much more — to begin a cross-company collaboration, designing and engineering Playdate’s look.

No, it’s not April 1st. They’re really building this. I don’t play video games, but I’m so happy to see Playdate. I love the ambition to try something new of this difficulty and seeing the care and craft that’s gone into it. So often we think of technology at massive scale. It can be powerful and useful and even dangerous. But this is like a statement that it can also be a little product, not intended for everyone yet not elitist, that exists because some people wanted to have fun trying to brighten your day.

John Gruber (tweet):

In today’s world all the new computing devices and platforms come from huge companies. Apple of course. All the well-known Android handset makers building off an OS provided by Google. Sony. Nintendo.

Panic is almost cheating in a way because they’re tiny. The Playdate platform isn’t competing with the state of the art. It’s not a retro platform, per se, but while it has an obviously nostalgic charm it is competing only on its own terms. Its only goal is to be fun. And aspects of Playdate are utterly modern: Wi-Fi, Bluetooth, apps and software updates delivered over-the-air.

Anil Dash (tweet):

You can read up on all the details elsewhere, but suffice to say, this little game machine looks like one of the most fun and joyful new efforts that any company has done recently, and that a tiny indie software company in Oregon has the ambition to even attempt such a thing makes it only more endearing.


I don’t know if Playdate will succeed in the market. I don’t know what kind of risk it represents for Panic as a company. But I know that people see this cute little device, and are reminded that they used to get excited when they saw cool new technology, instead of wondering how it would warp their reality, or steal their information. Here’s hoping for a return to tech that’s fun, that’s thoughtful, and that’s created with a little bit of soul.

Eli Schiff:

Almost no one realizes that @panic’s @playdate has @Kenichi Yoshida’s fingerprints all over its design. It wasn’t just Teenage Engineering @jugendingenieur.

Icon designers deserve more credit in this world.

Update (2019-05-24): Jesper:

What I love about it is a recently recurring theme that’s, amidst a polarized and increasingly de-humanized society, been easy to disregard: the glimmers of hope. A group of under a dozen people can still create a little thing like this, including its own damn OS, just because they love the feel of technology built by those who care.

There were a thousand reasons to not build it. There were a thousand reasons to run in the opposite direction, to give up, to completely cede the ground to consoles and touch and game streaming, to things that can be screen captured to Twitch.

Pádraig Kennedy:

My connection with Apple is largely thanks to Panic; back in 2003 their lovely polished apps are what made me want to make Mac software.


Playdate in 24 Hours:

• 70,000+ people on the wait list
• Thousands of interested devs
• Some skeptics (we understand)
• 23k Twitter followers (hi!)
• Most importantly… an overwhelming flood of positivity + excitement from people who also want this weird thing we want (!!!)

Update (2019-05-30): Brent Simmons:

On seeing Playdate, I realized the question we should ask ourselves is: are we working on our own Playdates? I don’t mean hardware necessarily — I mean the thing that seems very difficult, maybe even impossible, that may fail, but is the best expression of our talent and love.

Zhuowei Zhang:

Panic’s @PlayDate console prototype uses a STM32F7 CPU, running at 216MHz with up to 512 KB RAM.

Compared to Game Boy Advance, PlayDate has:

- 62x the CPU power (462 vs 7.65 DMIPS)
- 33% more RAM (512KB vs 384KB).

Linda Dong:

So delighted to have contributed a teeny piece to this enormous beautiful endeavor.

Nathalie Lawhead (via Joshua Nozzi):

Last year I was one of the organizers for Playdate. That year we received an email from Panic basically telling us we can’t use the name anymore because it would be a shame if our event got confused with what they are doing. It came off as incredibly self-important. It left me thinking “Wow, what a dick move.”

Cabel Sasser:

Our goal was to find a way for our two things to coexist. We didn’t want to force them to do anything. We do have a trademark, but only for “handheld game devices”, so we COULDNT make them change anything even if we wanted. It was just a worry about us overshadowing their work.

Update (2019-05-31): The Talk Show:

Special guests Cabel Sasser, Steven Frank, and Greg Maletic join the show to talk about Playdate, Panic’s exciting and surprising new handheld gaming system.

GitHub Sponsors

GitHub (tweet, Hacker News):

Funding developers through GitHub Sponsors is one more way to contribute to open source projects you appreciate. Help developers get the resources they need, and recognize contributors working behind the scenes to make open source better for everyone.

With Sponsors, any GitHub user can sponsor any open source developer in the program.

Owen Williams:

Yes, GitHub is swallowing the cost of those transactions entirely to give the creator as much of the money as possible. But, what’s even wilder is that it’s matching every dollar contributed in the first year, an outrageously bold commitment that’s only possible with the backing of a company like Microsoft.


Most importantly, this helps to change the open source narrative: you shouldn’t feel like you need to work for free, especially if companies are actually making money off of your work. Sponsorship right there on the page with the installation instructions helps pave the way for companies to actually fund the work they rely on, and that matters.

David Heinemeier Hansson:

I’m sure GitHub had all the right intentions here. And I’m sure this will work out well for a select few developers who will amass enough donations to ignore individual claims to their time. But I think it’s a grave risk to the culture of open source.

If your initial reaction was just “oh, OF COURSE donations are good. End of story!”, then I have a keynote for you to chew on.


A New Core Playlist for VLC 4

VLC (Hacker News):

One major design goal is to expose what UI frameworks need. Several user interfaces, like Qt, Mac OS and Android, will use this API to display and interact with the main VLC playlist.

The playlist must be performant for common use cases and usable from multiple threads.

Indeed, in VLC, user interfaces are implemented as modules loaded dynamically. In general, there is exactly one user interface, but there may be none or (in theory) several. Thus, the playlist may not be bound to the event loop of some specific user interface. Moreover, the playlist may be modified from a player thread; for example, playing a zip archive will replace the item by its content automatically.

Wednesday, May 22, 2019

Mac Toolbar Labels and Accessibility

James Riordon:

My Dad (90 yrs old) has developed cognitive issues, including the inability to reconcile symbols. He can’t use Apple Mail anymore as Mail compose window removed the ability to show text labels with buttons. Thanks @tim_cook Happy Global Accessibility Awareness Day on May 16

Rob Griffiths:

This continues a depressing trend—Safari hasn’t had text labels available on its buttons for many years now.

Apple may have done this to save vertical space, which is ironic, as using “text only”—when available—takes the least amount of space possible.

I prefer to see both the icons and the text. This is an option in NSToolbar, which the app can set and the user can configure. However, if the window uses NSWindowTitleHidden to hide the title (another accessibility problem) and put the toolbar in the title bar, the toolbar gets locked in icon-only mode.

At first, I thought this title-free design was intended for single-window apps, but Apple also uses it Safari and Xcode. And it’s been appearing in third-party apps like MarsEdit, OmniFocus, and ReadKit—a shame.

Update (2019-05-23): Daniel Jalkut:

Ideally Apple would fix this mode so that some kind of appropriate compromise could be made to support the streamlined title-bar-free mode, while also supporting the display of labels. I’m not holding my breath on that, though. Hopefully this workaround [for MarsEdit] will give those of you who either prefer, or outright depend upon the labels for accessibility reasons, something to tide you over.

Peter Saathoff-Harshfield:

I often find that VoiceOver is the only way to discover what a button with an inscrutable icon does.

Also, these windows with no distinct title bar leave little space for me to click and drag the window, so I’m zooming way in to find a tiny grab spot.

Brent Simmons:

There’s a hugely important aspect to this: developers follow Apple’s lead when it comes to app design. I’m trying to find Apple apps that allow for buttons and titles, and all I’ve found so far is Mail and the iWork apps. (The iWork apps are document-based, which means their windows need titles.)

The most obvious example is Finder, which allows button labels and is not document-based. Automator, Preview, and Script Editor do, too, and are document-based. Then again, Xcode supports multiple windows, and is document-based, yet it doesn’t allow window titles or button labels. I think this style is basically the new brushed metal—used haphazardly by Apple and therefore by third-party developers as well.

OmniFocus is not document-based, but it supports multiple named windows. It puts the titles in giant text below the title bar, so it actually leaves less room for the content than in the previous version that did allow toolbar labels. However, the colored text can help show where you are, and it is visually consistent with the iOS app.

In fact, lots of Apple apps — and third-party apps — don’t even have configurable toolbars at all. This is a shame. At least with Safari — and the apps Michael mentions, and NetNewsWire — you can rearrange items to your liking, and choose the items you want to see.

Simmons’ NetNewsWire is an app that doesn’t use a window title, but it does have a hidden preference to change that, and then you can enable the toolbar labels.

John Gruber:

I think it’s a real accessibility issue, and another instance of something that looks better but, for at least some people, works worse. I also think the problem is exacerbated by the current style where icons are just simple one-color hairline outlines objects, not colorful illustrations of actual objects.

Update (2019-05-24): macOS Human Interface Guidelines:

A title bar should be visible, but can be hidden in an immersive app like a game.

Provide a title unless there’s enough context that one is unnecessary.


Provide a short, descriptive label for every toolbar item. Users see these labels when they configure the toolbar to show icons and text, or text only.

That seems to be the extent of Apple’s guidance.

Qualcomm Loses U.S. Antitrust Ruling

Ian King and Kartikay Mehrotra (Hacker News, MacRumors):

U.S. District Judge Lucy Koh sided with the Federal Trade Commission in a case brought in 2017 accusing the company of anti-competitive practices.


“Qualcomm’s licensing practices have strangled competition” in certain modem chip markets “for years, and harmed rivals, OEMs and end consumers in the process,” the judge wrote. She also found that Qualcomm’s key role in manufacturing modem chips for smartphones using 5G made it likely that its behavior would continue.

Neil Cybart:

Qualcomm must negotiate or renegotiate licensing agreements, license patents to rival chip makers at fair and reasonable prices, be monitored for 7 years.

Florian Mueller:

What was an even greater failure for Qualcomm was the extreme degree to which its senior executives’ testimony contradicted their own handwritten notes, emails, and presentation slides, including but not limited to the question of whether Qualcomm explicitly threatened device makers with a disruption of chipset supplies unless they agreed to certain patent licensing terms. As a result, “the Court largely discounts Qualcomm’s trial testimony prepared specifically for this litigation and instead relies on these witnesses’ own contemporaneous emails, handwritten notes, and recorded statements to the IRS.”


Later, Apple had to agree to total exclusivity, where any shipment of a non-negligible quantity of devices with non-Qualcomm modem chips on board would have made them lose certain benefits going forward and entitled Qualcomm to a clawback, and that is the basis for one of the FTC’s monopolization claims.


Some Users See More Twitter Ads

Kurt Wagner (via Cabel Sasser):

Some journalists first noticed and started tweeting about seeing more ads on Twitter earlier this week. Not all Twitter users have the same ad load, which means the experiment won’t affect everyone. Some people see more ads than others depending on a variety of factors, including how the number of ads influence their use of the platform. (Facebook and Instagram do something similar.) Three years ago, Twitter shut off ads for some of the network’s most prominent users as part of an effort to keep them engaged. Some users still have an ad-free Twitter.

As I recall, John Gruber has wondered why he doesn’t see any Twitter ads. I guess this clears up that mystery.

I still don’t understand why Twitter doesn’t do more with other revenue models. I think lots of people would pay for an ad-free experience or other extra features.

Update (2019-05-22): Brian:

I think @gruber was actually saying he didn’t see IG ads, not Twitter. But now he does so it’s moot

Intel vs. Qualcomm Cellular Modem Speed

Juli Clover:

In testing on LTE band 4 with good signal, there wasn’t a lot of difference in performance between the iPhone XS Max, the newer smartphones from Samsung and OnePlus, and the LG V40, which PCMag added in because it was 2018's best performing phone in terms of cellular speed.

All of the smartphones performed similarly, but the Samsung Galaxy S10 did see some of the slowest speeds, and at peak signal, the iPhone XS came in behind the OnePlus 7 Pro and the LG V40.

In a test with poorer LTE signal, the iPhone XS Max saw the slowest speeds and was outperformed by all of the Qualcomm chips. The iPhone XS Max was quite a bit slower than the Galaxy S10 and the OnePlus 7 Pro specifically.

Previously: Qualcomm and Apple Agree to Drop All Litigation.

Tuesday, May 21, 2019

MacBook Pro 2019

Apple (Hacker News, iMore, MacRumors, tweet, The Verge):

Apple updated MacBook Pro with faster 8th- and 9th-generation Intel Core processors, bringing eight cores to MacBook Pro for the first time. MacBook Pro now delivers two times faster performance than a quad-core MacBook Pro and 40 percent more performance than a 6-core MacBook Pro, making it the fastest Mac notebook ever.

Looks like a good speed bump. Longer term, I hope Apple will make the Touch Bar optional, make the trackpad smaller, make the display (optionally) larger, fix the arrow key layout, add more ports, add more thermal headroom, bring back matte displays, and stop charging ridiculous prices for SSDs.


Apple has determined that a small percentage of the keyboards in certain MacBook, MacBook Air, and MacBook Pro models may exhibit one or more of the following behaviors[…]


The program covers eligible MacBook, MacBook Air, and MacBook Pro models for 4 years after the first retail sale of the unit.

The repair program now covers the 2018 MacBook Air and MacBook Pro, and even the just-released 2019 MacBook Pro. Some are saying that this shows Apple doesn’t have confidence in the revised keyboard. However, regardless, I think it’s great to know before purchasing that this model will be covered. Previously, you could actually get longer coverage by buying an older model with known problems than a new one! I still think that the keyboard program should cover a lot more than 4 years, though. A new pro Mac bought today should last a long time.

Jason Snell (tweet):

Apple says these new models also feature a fourth version of the butterfly keyboard design, in response to customer complaints that the keyboard would end up in a sad state where key presses were ignored or doubled. While Apple is quick to say that the vast majority of MacBook Pro customers haven’t experienced any keyboard issues, the company still keeps tweaking this design. It claims that the change made in these new MacBook Pro models will substantially reduce the incidence of ignored or doubled characters.


Where Apple’s laptop keyboard designs go from here is also a question. By extending its repair program and seeking to improve the turnaround of keyboard repairs in Apple Stores, the company is seeking to reassure customers that they won’t get stuck with a laptop with a bad keyboard. But the company also keeps tweaking the design in order to try and make it more reliable—an admirable attempt, but the sheer number of tweaks also send the message that Apple hasn’t really had a handle on the fundamental weaknesses of the design. Whether this new tweak is the one that finally solves the problem, or if it won’t be truly solved until this design is discontinued and fades into memory, remains to be seen.

Matthew Panzarino:

Apple is saying that it is doing 3 things about the MacBook keyboard situation. First, it is changing the mechanism.

Second, it is including all current butterfly keyboards in the new Keyboard Service Program

Third, it is improving repair times at stores and replacing 3rd gen membrane keyboards with the new keyboards.

Steve Troughton-Smith:

TL;DR: we didn’t totally fix the keyboard, the next-gen MBP isn’t ready yet, and we don’t plan to apologize


Apple still doesn’t mention anything about the keyboard changes nor does it list the keyboard revision on the MBP specs page. Clearly they want to starve this problem of oxygen and pretend it never happened.

Marco Arment:

Important clarification: the new 4th-gen design will be installed during repairs, but only for 3rd-gen-keyboard models: the 2018 Air and the 2018 13/15” with Touch Bar.

Colin Cornaby:

Getting harder and harder for me to justify holding on to my 2010 Mac Pro. But the risky thermals on the MacBook Pro, especially with 8 cores, are a problem. I’d also need to get an eGPU and the only ones that support Thunderbolt output are Blackmagic’s ridiculously priced ones.

There’s also the ongoing problem of putting a large amount of money into a machine where I can never upgrade the RAM or storage. $4000 is a lot for a machine that might run out of internal storage, and doesn’t change with my needs.


I love my 15” 2018 but sticking two more cores in the same body is just insanity. It is way too thermally constrained as it is.

Mark Munz:

My 7 y/o MacBook Pro has never had a keyboard problem EVER.

Now Apple has a keyboard service program that lasts 4 years. I guess I’m supposed to feel more confident. 🤷‍♂️

Would feel a lot better if they had announced a “new” scissor-switch designed keyboard.

Steve Troughton-Smith:

I still don’t understand what is so hard about putting out a press release addressing the butterfly keyboard problem, explaining today’s half-fix, explaining repair & replacement program, & saying that a redesigned keyboard is in the works. Apple’s handling has been infuriating

By now, somebody needs to be fired for the handling of the keyboard situation, and the longer it takes, the higher up the management chain they should be looking. You don’t get to 5 years of ignoring it by accident. The reputation damage will last a decade, nevermind support cost

Today’s keyboard materials update could fix the problem in 99% of cases, but we won’t know from anecdata for years. And Apple’s not prepared to stand by in public what it’s telling press in private. If they don’t have confidence in the fix, why would anybody else?

Craig Hockenberry:

I have a 2013 MBP and my only criteria for upgrading is the keyboard. Size is secondary, and speed is a distant third.

In real estate, the things that matter are “location, location, and location.”

With keyboards, it’s “travel, travel, and travel.”

Mathias Meyer:

Good, now I can send in both my 2016 12" MacBook and my 2018 MacBook Air for repairs. Both have become unbearable to type on.


We repair these as part of our business, and to be clear, both the keyboards and the screens are failing on these at an alarming rate.

iFixit detailed the issues with the screens, which (in Apple’s unending quest for “thinness”) use a thinner flex cable to connect the display to the rest of the laptop. This thinner cable is prone to breakage, and we are already seeing 2016-2017 MacBook Pros in our shop regularly for this issue.

Since Apple built the flex cable into the display, the only solution (even from third parties like us) is a new display. At $600-$700 each, this is unacceptable.

And, like the keyboards, this is a part that’s pretty much guaranteed to fail (unless you basically never open your laptop.)

Apple hasn’t announced a fix yet, even with a petition with over 11,000 signatures, and more screens failing by the day.

Marco Arment:

SSDs are so cheap now that 512 GB should be standard on any Mac ending in “Pro”.

Greg Hurrell:

I’m not in the market or a new laptop, but every now and again I check up on the prices. Amazing how easy it is to spec up a MacBook Pro deep into “frickin’ ludicrous” territory.

For the same money you can get an absolutely monstrous machine from System76 to run Linux. Twice the RAM (64GB), more than twice the disk (10.5 TB!), an actual function keyboard…


John Gruber (tweet):

Personally, I’d like to see them add more travel to the keys, go back to the upside-down T arrow key layout, and include a hardware Esc key on Touch Bar models (in that order).


The best that we could hope for while waiting for a true next-generation keyboard design — which for all we know might be a year or more out — is a mid-generation tweak. At the very least, talking about this material tweak and including all butterfly keyboard models in the service program is an acknowledgement that last year’s keyboards were not good enough. That was the worst case scenario — that Apple didn’t see a problem.

But what pleases me more is that Apple is updating Mac hardware on an aggressive schedule. I wrote “just speed bumps” a few paragraphs ago, but speed bumps are important in the pro market. Apple shipped new MacBook Pros last July, added new high-end graphics card options to those models in October, and now has updated the whole lineup with new CPUs. They also just updated the non-Pro iMac lineup in March. This seems like an odd thing to praise the company for — updating hardware with speed bumps is something a computer maker should just do, right? The lack of speed bumps in recent years naturally led some to conclude that Apple, institutionally, was losing interest in the Mac.

Nick Heer:

This year, however, Apple directly addressed keyboard reliability in their conversations with media. Even though they didn’t mention keyboards at all in their press release, I still see it as a noteworthy acknowledgement.

Benedict Cohen:

One more thing for the MacBook wish list: MagSafe

Steve Troughton-Smith:

OK, perhaps it’s just me; let’s do this one: Do you trust Apple’s ‘butterfly’ MacBook/Air/Pro keyboards (before or after today’s update)?

Paul Haddad:

The replacement program for keyboards is still limited to 4 years. Sucks if you bought a MacBook 12” when it first came out in April 2015…

Ellen Shapiro:

GAH, new 13” MBPs still don’t support 32 gigs of RAM.

I travel too much to really want the 15”, and I often run Xcode/Simulator + Android Studio/Emulator at the same time, so on a new laptop I’d be a lot happier with 32GB RAM.

Kyle Howells:

My 2015 15" MacBook Pro slows to a craw when I plug it into a 4K monitor, because of thermal throttling. I have to have a desk fan pointed directly at it at all times to cool it sufficiently to use.

The idea of putting an 8 core i9 into a thinner case design, makes me nervous.

Joanna Stern (tweet):

Stop me if you’ve heard this before: Apple Inc. is promising to fix the MacBook keyboard issues. Yes, again.

Ed Bott:

The butterfly keyboard is Apple’s Windows Vista, a reputation-destroying slow-motion train wreck.

Keith Calder:

You know how people with MacBooks have been having keyboard problems where a random key gets stuck? That just happened to my “delete” key while I was in an important email folder, and all the emails were deleted. Fun times!

Colin Devroe:

As I wrote, I want to switch back to the Mac but only after they produce a laptop with an entirely new, reliable keyboard. I’ve seen the current keyboard in action and I think I would have pitched my laptop into the sea out of frustration if I had owned one.

Jason Cross:

To me, the biggest issue here is that it’s terrible reliability may be giving Apple a black eye, but it’s not like it’s good even when it works.

At best, people seem to think it’s just okay. At worst, they HATE it. This as a replacement for the most beloved laptop keyboard ever?

Marcin Krzyzanowski:

I had this crazy idea to get my Macbook for a keyboard repair to Apple Store while in Berlin. To benefit of fast-path announced yesterday


1. Apple doesn’t recognize keyboard issue as a frequent issue
2. not a single slot for genius appointment for the upcoming week

Marco Scheurer:

And that ESC key... it is not just inconvenient when you use it but also when you don’t. I keep hitting hit by mistake.

Rui Carmo:

Living in a country that, to this day, still lacks an official Apple Store and where support centers (even if competent) don’t provide anywhere near the same turnaround times as in first world countries, I don’t find it the least bit reassuring.

Jacob Kastrenakes:

Apple will offer free repairs to owners of 2016 MacBook Pros with backlight issues — a problem that’s increasingly started to appear on the laptops as they age. The repair program, announced this afternoon, covers only the 13-inch MacBook Pro model that debuted in 2016, though both the Touch Bar and non-Touch Bar versions are eligible. Repairs will be covered for four years after a laptop was first purchased.

See also: Why are Creators Leaving the MACBOOK PRO ??.

Colin Cornaby:

It’s funny because the MacBook Pro has reached a point where I should seriously be considering not even using a desktop anymore. But the compromised thermals and lack of swappable memory/storage keep the MacBook Pro from really being a desktop replacement.

Update (2019-05-23): Juli Clover:

In a Geekbench benchmark uploaded this morning, the new MacBook Pro with a 2.4GHz Core i9 chip earned a single-core score of 5879 and a multi-core score of 29184.

Comparatively, the high-end 2018 MacBook Pro has earned an average single-core score of 5348 and a multi-core score of 22620. Single-core speeds are up almost 10 percent, while multi-core scores are up an impressive 29 percent.

However, it’s not clear how long the thermals will let it run at that speed.

Update (2019-05-24): Quinn Nelson:

Update: the new i9 MacBook Pro doesn’t throttle under even the most stressful benchmarks. It gets mighty close… but doesn’t ever dip under base clock. Good job, Apple!

iFixit (tweet):

Apple’s newest MacBook Pro is its fastest yet, featuring an optional eight-core processor—a first in a MacBook—and a mysterious new keyboard material. Since it’s unlikely that Apple’s going to expound on this ‘material,’ and we’re never satisfied with an unsolved mystery, it’s time once again to take a closer look at the infamous butterfly keyboard.

Dieter Bohn:

My take: when it comes to consumer trust in Apple’s butterfly keyboard design, different materials won’t make a material difference.

Update (2019-05-31): Dan Counsell:

I’ve just upgraded from a 2.5 GHz 4-core i7 15-inch Mid 2015 MacBook Pro to a top of the line 2.4GHz 8-core i9 2019 MacBook Pro with a Radeon Pro Vega 20 — Apart from the keyboard this is an excellent upgrade.

I ran some quick benchmarks and the results are an impressive increase on all fronts, especially the multi-core and compute scores. I also ran the same tests on my gaming PC that has an RTX 2080 Ti installed for comparison.

See also: Accidental Tech Podcast.

Update (2019-07-11): Brian Gesiak:

July 1: Receive new MacBook Pro 2019 at work

July 11: Shift key permanently depressed. Really hard to type in lowercase or deselect anything

See also: Hacker News (3).

Microsoft Edge for Mac Preview

Microsoft (Hacker News):

Microsoft Edge for macOS will offer the same new browsing experience that we’re previewing on Windows, with user experience optimizations to make it feel at home on a Mac. We are tailoring the overall look and feel to match what macOS users expect from apps on this platform.


Examples of this include a number of tweaks to match macOS conventions for fonts, menus, keyboard shortcuts, title casing, and other areas. You will continue to see the look and feel of the browser evolve in future releases as we continue to experiment, iterate and listen to customer feedback. We encourage you to share your feedback with us using the “Send feedback” smiley.

John Gruber:

I’m glad they put quotes around “Mac-like” because this is not very Mac-like. It looks and feels a lot like Google Chrome, which makes sense, because it’s a fork from Chromium. But even Chrome uses the Mac’s standard contextual menus (what you see when you right-click) — Edge even fakes those.

The whole thing does feel very fast.

Marcin Krzyzanowski:

Isn’t it ridiculous that soon we’ll end up with Chrome, IE Edge, Firefox, Safari, where 3/4 uses the same engine and none of it is 100% compatible with any other? How did we manage to end in this ridiculous situation?

Wojtek Pietrusiewicz:

I don’t trust Google or Microsoft’s priorities (Google’s especially), and Chrome needs to lose some market share for our benefit. History has shown that a monopoly in the browser department doesn’t end well. Apple had the unique ability to challenge Google on competing desktop OSes and they forfeited that fight.

See also: Inside Microsoft’s surprise decision to work with Google on its Edge browser (tweet).


Beyond the Tablet: Seven Years of iPad as My Main Computer

Federico Viticci (tweet):

My iPad journey began in 2012 when I was undergoing cancer treatments. In the first half of the year, right after my diagnosis, I was constantly moving between hospitals to talk to different doctors and understand the best strategies for my initial round of treatments. Those chemo treatments, it turned out, often made me too tired to get any work done. I wanted to continue working for MacStories because it was a healthy distraction that kept my brain busy, but my MacBook Air was uncomfortable to carry around and I couldn’t use it in my car as it lacked a cellular connection. By contrast, the iPad was light, it featured built-in 3G, and it allowed me to stay in touch with the MacStories team from anywhere, at any time with the comfort of a large, beautiful Retina display.

Today’s MacBook Air is easier to carry around than an iPad Pro with a keyboard, and it has an even larger Retina display. Inexplicably, Apple still hasn’t added a cellular option.

Today, the iPad Pro is my laptop, the iPhone is my pocket computer, and the Mac is the third device that's better at specific tasks.


At a fundamental level, after seven years of daily iPad usage, I believe in the idea of a computer that can transform into different form factors. The iPad is such a device: it gives me the freedom to use it as a tablet with 4G while getting some lightweight work done at the beach, but it becomes a laptop when paired with a keyboard, and it turns into a workstation when hooked up to an external display, a USB keyboard, and a good pair of headphones. For me, the iPad is the ultimate expression of the modern portable computer: a one-of-a-kind device that morphs and scales along with my habits, needs, and lifestyle choices.

It doesn’t seem like Mac hardware is on track to be able to do all the things iPads can do (cellular, transformable, pencil, fast displays), but neither does it seem like iPad software is on track to be as powerful and flexible as Mac software.


Update (2019-05-31): Niko Kitsakis (tweet):

Ask yourself: if the iPad really was that good, wouldn’t that be a rather self-evident fact then? Would you need an article (or several dozen actually, published over the course of nine years) that tried to convince you of the merits of such a device? Or change perspective and ask yourself another question: did you ever need convincing about how the iPhone (or any other post-iPhone smartphone) has advantages “in the real world”? Of course not.


Now, compare that [Mac] timeline of roughly seven years with what has happened since the introduction of the original iPad in 2010 – nine years ago.


It would all be well if it wasn’t for the stupid and paternalistic movement inside Apple to align their different computing platforms in terms of functionality and user experience. That basically means overcomplicating iOS to the point (already reached) where features are not easily discoverable anymore and, at the same time, dumbing things down on the Mac to a point (almost reached) where they become barely usable. The main motivation for doing this seems to come from the misguided notion that the iPad is somehow the sole future of computing.

Previously: Disk Utility in El Capitan.

Kitsakis makes a lot of good points, which unfortunately have been overshadowed by a controversy about whether one of his footnotes was accusing Viticci and other pro-iPad writers of being paid shills. Of course, I don’t believe that to be the case. All writers, even those not supported by advertising, have personal biases as well as conflicts of interest (e.g. access). It’s best to focus on the arguments in the writing itself.

Steve Troughton-Smith:

It’s always funny how upset certain computer users get when they see people enjoying something they don’t understand. Without a hint of self-realization, these Mac users look down on iPad users the exact same way Windows users did to them and the Mac back in the 90s. ‘Just a toy’

It also seems like certain iPad users look down on Mac users as being stuck in the past, like DOS fans in the 90s. Why can’t we all just get along?

It shouldn’t be hard to understand that the people who are super-enthusiastic about iPad are so because they genuinely feel it’s the best computer they’ve ever used, despite not doing everything a Mac does. There’s no agenda, no conspiracy. They’ve just moved on

Stefan Constantine:

this is such an astoundingly well written opinion piece on the iPad and the Mac and where they stand in relation to each other

(spoiler: the iPad is cool, but it’s not the future)

Dan Masters:

iPad’s future is looking much brighter than the Mac because Apple is purposefully and artificially eroding it to become just another iOS device – a less powerful, touchscreen-less one, at that.

They’re draining it of life before its time, and then hooking it up to life support.

 Observer:

One of the great post I read in a while regarding the iPad, Apple and... fanatism. From an iPad lover myself.

Matt Birchler:

This is a well-written post, but I would add that this sort of post is precisely why iPad fans feel compelled to remind folks that they do valuable work for them.

Steve Lubitz:

I think the truth is somewhere in the middle. On the one hand, it can be true that there are iPad enthusiasts for whom the device fits nearly perfectly into their workflow, and also that, for a lot of people, that paradigm just doesn’t work.

I think a lot of the friction comes from the implication from the iPadosphere that an iPad as a primary device is The Way of The Future, when to the rest of us that just sounds like the year of Linux on the desktop.

Steve Troughton-Smith:

Funny when people laugh at the idea of ‘Post-PC’ whilst also decrying ‘dumbing down’ of macOS in favor of iOS concepts. The desktop computer no longer being the center of the computing world is what Post-PC is. It’s not some PC-less scifi fantasy 😂 This is what it looks like

Kyle Howells:

The problem is in your tweet though ‘dumbing down’ of Macs. iOS can get away with being so limited and restricted because the Mac exists to actually get work done on.

Apple’s locking down the Mac without opening up iOS.

But my requirements haven’t ‘dumbed down’ and still aren’t possible on iOS.

Jeff Johnson:

IMO the @nubero article makes a nice distinction between iPad as in the future of computing vs iPad as the sole future of computing.

Mac lovers have no problem with the existence of the iPad. As long as it’s coexistence.

The problem with iPad rhetoric is eliminativism.


Mac, iPad, and iPhone can all happily coexist and thrive together. There’s no inherent reason why this can’t happen. It’s really the best of all possible worlds.

“The future of computing” is a terrible notion. There ought to be many futures of computing.

Ben Szymanski:

If you’re hoping to convert me from the #Mac to the #iPad, you’re too late as I already have a #Surface. It can actually do things. You don’t care, I know I know, but #seeyanever!

Update (2019-06-03): Jim Rea:

Based on the replies this blog post has really touched a nerve, both pro and con. Mark me down in the “pro” column, I couldn’t have said this better myself. I’ve got nothing against the iPad, I’m writing this on one, but I don’t think it’s my future primary device unless I retire.

Kyle Howells:

I’d be less upset if the Post-PC era was actually more capable than the PC.

Instead it turned out everyone decided we were ‘post-PC’ and wanted to deprecate the PC to achieve it, instead of actually improving the post-PC devices enough to kill the PC naturally.

Update (2019-06-12): Collin Allen:

I can’t even open a text file on iOS if it doesn’t have a .txt extension. I can’t fathom how “iOS productivity” people get real work done without a computer. Mobile still feels like it has twice as many hoops to jump through.

Update (2019-06-13): Martin Kopischke:

All these “the iPad is not the future of computing” quotes remind me of nothing as much as Lisp machine fans defending their superior platform against those pesky upstart Unix boxes. Maybe check how that went.

Riccardo Mori:

So we have a Mac platform that was doing fine until it was basically put on hold because the iPad had to grow, evolve, be revolutionary. iPad was course-corrected to become more pro. Meanwhile the Mac was neglected and iPad has been too slow to catch up than planned.

Think about the time that has been wasted for this and because of this. It hasn’t been good for either the Mac or the iPad. Yeah, maybe all is well now, yet I can’t help thinking it could have been different — and better.

WWDC 2019 Preview

Becky Hansmeyer:

WWDC is now just two weeks away, so I thought I’d share what I’m hoping for in the way of developer tools/APIs.

Nick Heer:

For old time’s sake, I wanted to put together one of those part-retrospective part-speculative pieces where I point out some of the new things I’d like to see this year. Maybe some of these things will be introduced, and that would be cool; I wouldn’t bet on too much of this list, though. These are just a few things that have been swirling in my head.

Damien Petrilli:

My WWDC 2019 wishlist:

- fix the documentation


Update (2019-05-23): Jason Snell:

Here’s what I’m hoping to see in iOS 13 when Apple unveils it on Monday, June 3.

Update (2019-05-24): Jordan Morgan:

At this point it’s all conjecture, so let’s ready up with the fifth annual Swiftjective-C WWDC Pregame Quiz!

Update (2019-05-27): Steve Troughton-Smith:

It seems crazy that in 2019 you are still unable to track raw keyboard events on iOS – there is no way, barring using a private API, for an app to allow you to hold down physical keys as input (like WASD keys for a game), or as modifier keys (like holding Shift while resizing something in an app like Photoshop to maintain aspect ratio).


MFi might be gone with the USB-C iPad Pros, but developers need public APIs to write user mode drivers for anything you wish to plug in to your iPad. I want to be able to plug in my various EyeTV tuners and have the EyeTV app happily init them like it does on the Mac.


What I really want to see is a textual interface to Shortcuts that lets you do all the same things without having to navigate and fiddle with a UI filled with actions, so that the class of advanced user who prefers writing scripts can do the things they need.


We’ve come a long way from the fear that enabling third-party apps on iPhone will bring down the cell networks; trying to actively build the future on iOS today is like having your hands tied behind your back. iOS has for too long relied on the fact that the Mac exists as a fallback to perform all the tasks that Apple isn’t ready to rethink for its modern platforms, but that doesn’t mean these problems aren’t relevant or worth solving.

Tyler Hall:

With WWDC fast approaching, it’s the time of year when everyone posts their hopes and dreams and predictions for Apple’s upcoming software release. There’s tons of great ideas out there, and I certainly have my own feature requests both as a developer and as a consumer, but I just want to write today about one that is especially irksome during this (US) holiday weekend.

Marketing push notifications.

Previously: Push Notifications to Send Promotions.

Jason Snell:

My gut feeling is that Apple doesn’t need to start two major transitions for the Mac simultaneously, which is why it’s more likely that the ARM transition will happen at next year’s WWDC than this year’s.

See also: Rene Ritchie.

Update (2019-05-28): Stuart Breckenridge:

Below is my work in progress list of features I’d like to see.

Update (2019-05-30): Ryan Jones:

My latest iOS 13 wishlist.

Under the Radar:

What we hope to see at WWDC 2019 in Apple’s APIs and developer tools.

Dave DeLong:

There are very few things I want from #WWDC this year, but #1 on my list is:

I want to save an NSUserActivity as an icon on my homescreen.

Then I get an icon to open a specific Numbers doc, or call a person, or have multiple icons for a single app in multiple folders

Update (2019-05-31): WWDC by Sundell:

This website is for everyone who wants to closely follow WWDC, but from anywhere in the world. Starting right now, this site will be updated daily with articles, videos, podcasts, and interviews, covering all things WWDC — from recommendations on what session videos to watch, to in-depth looks at new APIs, to interviews with people from all over the Apple developer community.

Jeff Nadeau:

conference wishlist:

• faster horses

Update (2019-06-03): Daniel Eran Dilger:

Leading up to its 30th Annual Worldwide Developers Conference in San Jose, Calif., Apple is channeling its unique hardware savvy to create a future that is powerful, premium, accessible to everyone, and private to yourself. And it’s doing it alone, competing largely against much cheaper copies of its own work that are supported by surveillance advertising. Here’s why that matters.


Something very high, if not on top, of my wish list for #WWDC19 is a better handling of os_log in crash reports.

Andy Lee:

I’ve been a little out of the Cocoa game lately, so my WWDC wishes are not super-fancy:

- improvements to the docs (content/navigation/layout/tooling)
- better Markdown support (I’m thinking Xcode could be a neat notes app)
- don’t render my Cocoa knowledge immediately obsolete

John Sundell:

These are my six biggest Swift-related dreams for this year’s WWDC. They’re not predictions, and they’re not based on any sort of insider information — they’re simply six things that I’d personally love to see introduced when the event begins tomorrow. This, is a Swift developer’s WWDC dreams.

The Talk Show:

Special guest Rene Ritchie returns to the show for a look at what we expect — and hope — to see from Apple at WWDC next week.

See also: Accidental Tech Podcast.

Colin Devroe:

This WWDC, which starts today, seems to be the most important one since the App Store debuted. I wonder if Apple feels it as well or is it just the entire community wondering whether or not they will be using Macs in a decade? Today could tell us that.

Rene Ritchie:

Apple’s WWDC 2019 event is just around the corner and that means there’ll not only be a lot to cover but a lot of people covering it. Here’s who you need to follow.

Six Colors:

Good morning everyone, we’re alive and awake in San Jose, CA, ready for the kickoff of WWDC later this morning. The event starts in just under three hours at 10am local time, that’s 1p ET, 1900 UTC. Jason and Dan will be in attendance. Join us here for analysis + quick headlines!

Manton Reece:

Added a new link at the top of Discover on to point to WWDC-related posts. It’ll be updated throughout the day, and help make sure the main Discover section isn’t overwhelmed with WWDC posts.

Monday, May 20, 2019

Google Pulls Huawei’s Android License

T.C. Sottek (Hacker News 3):

Following the US crackdown on Chinese technology companies, Google has cut off Huawei’s Android license, dealing a huge blow to the besieged phonemaker. Reuters first reported the news, and The Verge subsequently confirmed Google’s suspension of business with Huawei with a source familiar with the matter.


Speaking to Reuters, a Google spokesperson confirmed that “Google Play and the security protections from Google Play Protect will continue to function on existing Huawei devices.” So while existing Huawei phones around the world won’t be immediately impacted by the decision, the future of updates for those phones as well as any new phones Huawei would produce remains in question.

Horace Dediu:

Huawei is nearly the world’s biggest smartphone vendor. Their exclusion from licensed Android and fork away from Google is the biggest news in smartphones since, well, Android.

Update (2019-05-21): Ben Thompson:

Huawei’s preparation for this moment likely started last year when a similar ban was placed on the sale of American component to ZTE[…]

Update (2019-05-22): Tom Warren (tweet, Hacker News):

Chip designer ARM has suspended business with Huawei, threatening the Chinese company’s ability to create its own chips. BBC News reports that ARM employees have been instructed to halt “all active contracts, support entitlements, and any pending engagements” with Huawei due to the US trade ban. The US has banned any US companies from doing business with the Chinese telecom giant without permission from the American government, but ARM is based in the UK and owned by the Japanese SoftBank group.

ARM is concerned it is affected by the US ban, with an internal memo reportedly revealing that its chip designs include “US origin technology.” ARM develops some processor designs in Austin, Texas and San Jose, California, which could place it under the US restrictions.

Timery for Toggl

John Voorhees:

Time tracking helps me weigh the value of the time I spend on every project, identify inefficiencies in the way I work, and acts as an early warning system to avoid burnout.


I’m still using Toggl in a Fluid browser on my Mac, but since last summer, I’ve been using the beta of Joe Hribar’s Timery on iOS and loving it. In fact, Timery is so good that even when I’m at my Mac, I find myself turning to it to start and stop timers instead of the web app.


Timery has helped me make peace with time tracking. Where years ago, it was a tedious process of recording detailed notes by hand, now it’s a simple, streamlined process. Instead of being an interruption and something that fed an invoicing system, time tracking has become a tool that helps me work better than before.

I have been using Hours, which can optionally work completely on-device, without a Web service.

Previously: Timing 2 for Mac.

Beware iCloud Video Syncing

Tyler Hall (tweet):

Get home, back on WiFi, start uploading everything to iCloud and Google Photos. After an hour or two everything’s synced.

Problem: All videos, of any length, stutter, stall, and skip frames in both (macOS) and Google Photos on every Mac I try.


This is a core competency of iOS that should never, ever fucking break for any reason. Apple markets iPhone’s camera as a top selling point – if not THE selling point.

Lucky for me, I’m tech savvy enough to know about Image buried inside macOS’s Utilities folder. So I give it one last try using that to transfer the corrupted videos manually off my phone and into and Google Photos.

It works. My memories are safe.

Wow, I guess I need to check all our family videos now. It’s possible I’ve been backing up damaged versions, and the good copies would be lost if I pruned our iCloud Photo Library to save space. Hopefully they weren’t already lost when my wife upgraded her iPhone last year. This is not the sort of thing that can be recovered from a backup because iOS cloud backups don’t include the contents of the Photos library if you’re using cloud syncing.


Update (2019-07-08): Tyler Hall:

That’s right. I dragged photos from Finder into an empty album in and watched as they were imported and then subsequently deleted.

I did this five times with the same result before I finally thought to record the whole fiasco for posterity. No matter whether I dragged from Finder or used the “Import…” menu item - same thing.

The State of Apple’s Developer Documentation

Scott Anguish:

It appears that most of the old iOS conceptual documents have been moved to the documentation archive and are now unsupported.

Is there really no iOS Text Programming concepts? Or are the indexes just that bad?

That is more than a decade of work by dozens, just being abandoned.

I can’t even grasp how that’s any solution.

If this is the case every single iOS developer should be screaming from the rafters. It’s by far the stupidest move I’ve seen in a decade.

You can’t write apps without authoritative docs.

It’s bad enough the reference doc has reached the point it has.

It’s surprising how much of the documentation is marked as legacy, archived, not up-to-date, or was never written in the first place. At first I thought this was because of some sort of internal transition, but it’s been going on for years now and does not seem to be getting any better.

Steve Tibbett:

As far as I can tell, this is the only documentation on IAP receipt validation. This is part of a current system that’s making Apple billions of dollars. There are errors in it, and it’s “no longer being updated”.

Martin Pilkington:

Fun fact: when I was looking up docs for Help Books for my Appreciating AppKit post, one of the few Mac features already supported in Marzipan, it took ages to find as they’re only available in the documentation archive

Matt Stevens:

If you’re struggling to find an Apple developer document you know exists, it’s not just you.’s robots.txt disallows /library/archive/, where all of the old docs now live. Apple’s own “Search Documentation Archive”…doesn’t search the archive.


Update (2019-05-21): Adam Maxwell:

I remember the good old days when people were annoyed that you couldn’t figure out Cocoa bindings without the stuff mmalc posted on his personal website. That was nothing compared to when the doc browser turned into a lousy webpage instead of Cocoa views and Search Kit.

Randy Scovil:

I’m wondering how much has really disappeared. I used to point students there all the time for source code examples and now I find most any search for those comes up empty. Que?

Jonathan Fischer:

For what it’s worth, DuckDuckGo seems to be ignoring that robots.txt entry for /library/archive. I usually find what I’m looking for without much trouble:

Francisco Tolmasky:

Died Apple just not document AppKit anymore? I can’t find anything about NSWindowTab. Is all information just in like WWDC videos?

See also: Hacker News.


Sad but true. 10 years ago when I were starting to learn iOS development it was one of the best documentations I’ve ever worked with. And now it’s more like Microsoft’s in it’s dark age.

Update (2019-05-22): macshome:

One of my biggest issues with the new docs page is discoverability. And yes, I’ve filed radars on it.

Kyle Howells:

This is now my number one WWDC wishlist item.

Anything else is a bonus, but Apple’s documentation has fallen so far the knowledge about how the platform works is now being buried in archived documents, old WWDC videos and release notes.

Update (2019-05-28): Kyle Howells:

Apple’s developer documentation doesn’t show what class the method I’m looking at is for anywhere on the page.

Update (2019-05-30): Scott Anguish:

From comments on your post today “Apple’s docs turned downhill fast when they switched to automatically generating docs instead of using human-written, structured, and curated materials.”

Except that’s not what happened. It’s all human-written, structured, and curated.

Friday, May 17, 2019

Three iOS Keyboard Changes Apple Should Make

Dan Moren:

I’ve become more and more puzzled about autocorrect in recent years. In my personal experience, it’s become both worse at fixing legitimate typos and more aggressive about taking actual words and turning them into nonsense. The latter is many times more frustrating; I’ve watched more than a few sentences turn incomprehensible before my very eyes.


Personally, I’ve been impressed with swipe typing when I’ve used it in other keyboards—the biggest thing holding me back is that it’s not available on the system keyboard. Third-party keyboard support is still limited on iOS, and it’s often buggy and crash-prone.


Apple already offers a way to search for emoji on the Mac, it’s more than a little puzzling that it wouldn’t make a similar feature available on iOS.


Update (2019-05-31): Kyle Howells:

“In my personal experience, it’s become both worse at fixing legitimate typos and more aggressive about taking actual words and turning them into nonsense.”

Couldn’t agree more. It’s been a disaster ever since around iOS 10 when they switched to machine learning.

Raphael Sebbe:

I find SwiftKey has more accurate completion, allows swipe-typing, has better multi-lingual support, is better at emojis.

The only downside is the 3D-touch selection mode: looks like they can’t replicate 2D panning like Apple does (API limitation?). Too bad, so useful…

Previously: Apple Expected to Remove 3D Touch.

Update (2019-06-03): Simeon:

Has iOS autocorrect gotten incredibly bad for anyone else? It used to correct common mistakes but now it just replaces entirely valid words with other similar words turning sentences into nonsense

Update (2019-06-04): Tim Hardwick:

Apple has also added a swipe to type feature to the stock iOS keyboard called QuickPath, which brings easy one-hand typing to the iOS keyboard by continuously swiping through the letters of a word, and Memoji are automatically made into sticker packs built into the iOS keyboard, so they can be used in Messages, Mail and other apps.

Microarchitectural Data Sampling (MDS) Mitigation

Ross Mcilroy et al. (via Hacker News):

This paper explores speculative side-channel attacks and their implications for programming languages. These attacks leak information through micro-architectural side-channels which we show are not mere bugs, but in fact lie at the foundation of optimization. […] As a result of our work, we now believe that speculative vulnerabilities on today’s hardware defeat all language-enforced confidentiality with no known comprehensive software mitigations, as we have discovered that untrusted code can construct a universal read gadget to read all memory in the same address space through side-channels. In the face of this reality, we have shifted the security model of the Chrome web browser and V8 to process isolation.

Liam Tung (via Reddit):

Major slowdowns caused by the new Linux 4.20 kernel have been traced to a mitigation for Spectre variant 2 that Linux founder Linus Torvalds now wants restricted.

Pierre Lebeaupin:

It’s hard to believe it has now been more than one year since the disclosure of Meltdown and Spectre. There was so much frenzy in the first days and weeks that it has perhaps obscured the fact any solutions we currently have are temporary, barely secure, spackle-everywhere stopgap mitigations, and now that the dust has settled on that, I thought I’d look at what researchers and other contributors have come up with in the last year to provide secure processors – without of course requiring all of us to rewrite all our software from scratch.

Apple (via Benjamin Mayo):

Intel has disclosed vulnerabilities called Microarchitectural Data Sampling (MDS) that apply to desktop and notebook computers with Intel CPUs, including all modern Mac computers.

Although there are no known exploits affecting customers at the time of this writing, customers who believe their computer is at heightened risk of attack can use the Terminal app to enable an additional CPU instruction and disable hyper-threading processing technology, which provides full protection from these security issues.


Testing conducted by Apple in May 2019 showed as much as a 40 percent reduction in performance with tests that include multithreaded workloads and public benchmarks.

John Gruber:

It’s good that there are no known exploits using these techniques, but even if there were, the overwhelming majority of Mac users — almost everyone — would not need to enable this mitigation. These MDS vulnerabilities enable malware on your computer to do bad things. But these vulnerabilities are not ways for malware to get onto your computer.

However, it sounds like the fix is finally a way to work around the hyper-threading bug that can lead to data corruption on my iMac, amongst other Macs.


Update (2019-05-31): Quentin Adam:

FYI, as cloud provider we rawly loss around 25% of CPU performances the lasts 18 months due to different CVE and issues on CPU and mitigation limiting capacity using microcode, so we stuff more CPUs, but prices didn’t go down at all... That’s a kind of upselling. #IntelFail

Dynamic Equality Checking and Equatable

Tanner Bennett (tweet):

Note that the arguments for == are defined as Self rather than Equatable. This has some implications and benefits[…]


The use of Self as in Equatable’s definition restricts how Equatable can be used. You cannot declare collections or variables as a protocol type, like you can in Objective-C.


Many APIs vend Any, such as JSONSerialization’s .jsonObject(_:_:) methods. For testing purposes, you may want to compare the output of these methods to one another. You’ll quickly find you can’t[…]

See also: Adding a polymorphic Equatable?, Protocol-Oriented Programming in Swift.


The Potential Advantages of a JavaScript Whitelist

Brent Simmons:

What I want is two related and similar things:

  • The ability to turn off JavaScript by default, and turn it on only for selected sites. (For me that would be sites like GitHub.)
  • The ability to turn off cookies by default, and, again, turn them on only for selected sites.

If it‘s the opposite — if I have to blacklist instead of whitelist — then I’d be constantly blacklisting. And, the first time I go to a site, it gets to run code before I decide to allow it.

Nick Heer:

When you think about it, it’s pretty nuts that we allow the automatic execution of whatever code a web developer wrote. We don’t do that for anything else, really — certainly not to the same extent of possibly hundreds of webpages visited daily, each carrying a dozen or more scripts.


It’s baffling to me that trackers, ad networks, cryptocurrency miners, and image lightboxes are all written for the web in the same language and that there is little granularity in how they’re treated. You can either turn all scripts off and lose key functionality on some websites, or you can turn everything on and accept the risk that your CPU will be monopolized in the background.

What if pages were allowed a certain amount of JavaScript CPU time, beyond which they had to request more from the user?

I would also like to see a report of what the JavaScript is doing, i.e. which information it’s reading and which servers it’s contacting. Part of the reason things have gotten so out of hand is that users can’t see what’s happening. I like how the iCab browser would always report whether a page had valid HTML, and how the macOS battery menu shows which apps are using significant energy.

Kyle Howells:

My number one feature request for Safari, a whitelist for Javascript use, defaults to disabled when whitelist enabled. Battery life doubled in one feature!

Previously: Intelligent Tracking Prevention 2.2.

Update (2019-05-21): It looks like Chrome already implements what Simmons is suggesting.

Thursday, May 16, 2019

How Safari Puts Weblocs on Pause

Howard Oakley:

Safari 12.1.1 can make perfectly good webloc files from its bookmarks, for example by dragging them from Bookmarks in the sidebar. But when they’re dragged in a folder from the Bookmarks page, it refuses to close and release them so that other apps can move or, in many cases, even open them. The only solution is to quit the Safari app, which automatically releases those webloc files so that they can work normally.

It seems to be an issue with file coordination, rather than the file being left open in the Unix sense. The latter, which I tend to see when creating PDF files, is arguably worse because you’re allowed to copy and manipulate a file that may be in the process of changing, whereas the Safari bug prevents you from using the file but doesn’t put you at the risk of data corruption.


Detaching Safari’s Downloads Popover

Ricky Mondello:

Did you know that you can drag Safari’s Downloads popover by its title into being a detached, free-standing window, so you can more easily monitor your long-running downloads?

This is actually a general feature of popovers in macOS. For example, you can also use it to detach multiple Calendar events to compare or to leave on-screen for reference. (However, it doesn’t seem to work with Fantastical events—I guess they are either not standard popovers or detaching has been disabled.)

Previously: More Undiscoverable Gestures.

PDFpen 11


Top features you’ve requested in v11:

  • Split-view mode for editing
  • New Font Bar for expressive font control
  • Import scans from Continuity Camera
  • Customize page-number locations
  • Add multiple items to the Library at once
  • Option to turn off guides
  • Medical/Legal dictionaries for OCR (English language)
  • Automatic deskew independent of OCR
  • […]

Interestingly, they are offering an upgrade path from the Mac App Store to their store:

  1. Download PDFpen 11 or PDFpenPro 11 from our site.
  2. Launch v.11. It will prompt you to locate your Mac App Store app so that we can verify the receipt.
  3. If your upgrade is…
    – Free you’ll be prompted to enter your name and email address, and will be issued a free license for v.11. Finished!
    – Not free you can click on “Buy an upgrade license” for upgrade pricing.
  4. Go through the screens to purchase the US $30 upgrade to v.11 or the US $50 upgrade to PDFpenPro from PDFpen.
  5. Complete your purchase and PDFpen/PDFpenPro will register with your new license. You will also receive an email of your new license for your records.

This sounds like what Omni tried back in 2013 but had to retract. The difference, I guess, is that Omni actually generated a full serial number for the old version (which was then eligible for upgrade pricing), whereas Smile is just giving you the upgrade pricing directly. Based on Apple’s stated reasoning before, I would expect for them to have a problem with this, too. But perhaps (hopefully) the unwritten rules have changed again.


Valve’s Steam Link App Now Available

Juli Clover:

Valve’s Steam Link app, which is designed to let you play Steam games on your iPhone, iPad, or Apple TV has finally made its way to iOS and is available for download as of today.

Valve first announced the Steam Link app in May 2018 and planned to launch it soon after, but Apple ended up rejecting the app due to “business conflicts.”


Valve said that it would remove the ability to purchase apps from within Steam Link in an effort to get Apple to approve the app, which may have allowed it onto the App Store. When connecting Steam Link to a PC or Mac, the main view is of your library, aka the games you’ve already purchased, and there is no readily apparent option for purchasing content directly on your iOS device.

Apple is always looking out for the customer experience.

Steve Troughton-Smith:

I’m sure the antitrust ruling had nothing to do with its sudden appearance

Thomas Clement:

Users scared Apple might arbitrarily kill a third-party app availability (SteamLink). That’s the world we live in now.


It seems bizarre to me that it took a year to resolve this, but I’m glad Apple decided it correctly.

Wednesday, May 15, 2019

Designing a Dark Theme for OLED iPhones

Vidit Bhargava (via Ryan Jones):

In an OLED display, the black pixel is essentially a pixel that’s turned off. It doesn’t consume any power. This is why OLED are able to show such rich dark colours and why dark themes are power-efficient.

However, When an interface that uses a black theme for its background starts displaying content on the screen, the pixels needs to switch on before they can display the content. So, when you’re scrolling through the content in a black background, the pixels find it hard to keep pace with your scrolling, resulting in a smear on the screen.

He solves this by using dark grey, which still uses significantly less power than white.

Previously: Upgrading From an iPhone SE to an XR.

My Google Activity


Stop what you’re doing and turn on “Auto-delete your Web & App Activity” in your Google account.

Set it to the minimum “Keep for 3 months”.

Once you’ve done that, also turn off as many tracking options as you can here.

In some cases, you can also prevent activity from being saved in the first place. I have everything turned off except for location history, which really improves the experience in the Google Maps app.

Amazon S3 Path Deprecation Plan

Jeff Barr:

Even though the objects are owned by distinct AWS accounts and are in different S3 buckets (and possibly in distinct AWS regions), both of them are in the DNS subdomain Hold that thought while we look at the equivalent virtual-hosted style references (although you might think of these as “new,” they have been around since at least 2010)[…]


Support for the path-style model continues for buckets created on or before September 30, 2020. Buckets created after that date must be referenced using the virtual-hosted model.

Image Resizing Techniques

Mattt Thompson:

There are a number of different approaches to resizing an image, each with different capabilities and performance characteristics. And the examples we’re looking at in this article span frameworks both low- and high-level, from Core Graphics, vImage, and Image I/O to Core Image and UIKit[…]

Jeff Nadeau:

If you want to cache a downsampled rendition of some source image, try a block-based NSImage. It’ll cache for you, and it’ll maintain it in the right backing format for display. Pretty low effort for broadly desirable performance characteristics.

Tuesday, May 14, 2019

macOS 10.14.5 Whitelists Kernel Extensions

Howard Oakley:

Until 10.14.5, AppleKextExcludeLList.kext contained one Property List, KnownPanics.plist, which detailed kernel extensions known to Apple to be the cause of kernel panics, thus excluded from loading in Mojave; that hasn’t changed in 10.14.5. That kext now contains a second property list, ExceptionLists.plist, which is a long dictionary of “secure timestamp exceptions”.

Each entry consists of a string of hex digits, which is presumably an identifier or hash, together with the kext ID (such as com.thiscompany.mykext) and its version number. These appear to be an exhaustive list of over 18,000 existing kernel extensions which have been granted exceptions to the notarization requirement.


Update (2019-06-03): Howard Oakley:

The man page for spctl hasn’t been updated for over six years, but in 2017 it gained a set of actions to handle kernel extensions and your consent for them to be installed – what Apple terms User Approved or Secure Kernel Extension loading. You should be able to see these if you call spctl with the -h option. These kext-consent commands only work when you’re booted in Recovery mode: they should return errors if you’re running in regular mode.

This appears to unblock kernel extensions which macOS won’t install because they don’t comply with the new rules on notarization, presumably by adding the kernel extension to the new whitelist which was installed as part of the macOS 10.14.5 update. Kernel extensions which are correctly notarized should result in the display of the consent dialog taking the user to Security & Privacy; those which aren’t and don’t appear in the whitelist are simply blocked and not installed now.

Update (2019-08-13): Tom Bridge:

Whitelisting the Team ID in a Kernel Extensions payload from a User-Accepted MDM does not affect the notarization requirements in the Catalina betas at this time. What I said in the talk was based on my conversations with colleagues and friends, and an conversation I’d had with a member of Apple’s staff, and on my initial results with the first beta of Catalina.

My conclusions were based on the question I asked in that inteview: Will there be a way to whitelist Developer IDs for notarization the same way there is for Kernel Extension loading? The answer was an unequivocal yes.

I assumed that the method for this was the same payload. That has turned out not to be the case in my testing thus far.


Here’s what I do know: merely providing a kernel extensions whitelisting of the Team ID of a Developer is insufficient to prevent warnings for packages and disk images signed with that Developer Certificate.

iOS 12.3’s TV App

Chris Welch:

The redesigned Apple TV app, first announced back at the company’s March event, is being released today on iOS, Apple TV, and Samsung’s latest smart TVs. To make that happen, Apple is rolling out updated versions of iOS and tvOS with a refreshed look and support for a new lineup of paid Apple TV Channels, including HBO, Showtime, Starz, Epix, and other networks. Users can subscribe to Apple TV Channels directly from the Apple TV app, and all content can be watched from right inside the app as well.

Chaim Gartenberg (tweet):

There’s simply no way around it — actually watching video using Apple’s native TV app is just an appalling user experience. Here’s how it works: if you’re watching a video on the TV app — presumably, one that you bought or rented on iTunes, streamed through one of Apple’s native partner channels, like HBO or Showtime, or whatever the method for using Apple TV Plus will be — on an iOS device, it will play in portrait. It also looks terrible.

If your device is set in rotation lock — as most iPhones tend to be in my experience — there is no way to watch video in landscape. The only way is to disable rotation lock, which requires swiping down into the control center (since there’s no way to access it directly on the playback screen), and then rotate the device. There is also no way to lock it in landscape mode once rotated, so better make sure to hold that phone steady.


It was only when Apple released iOS 11 that portrait was made default, and it’s been stuck that way ever since.

Meek Geek:

Failing at the basics.

Video playback isn’t hard: If it is 16:9 or wider, lock the device to landscape and only allow it to be rotated 180°. This should be an OS-level default that developers have to override, so everyone benefits.

Mike Hay:

Hey @tim_cook, the Apple apps are supposed to set the standard right?

The subscription text is so small here that any 3rd party app would have been rejected immediately.

Damien Petrilli:

And still no chapter in movies like the old Movie app did since day 1.

Walt Mossberg:

Got the new AppleTV app on iPhone, iPad & Apple TV. Unlike what every review says, I have no “For You” section on any of them. Also, I have an entire row of what’s playing on @hbogo, & the shows play great. But also a huge offer to subscribe to @hbonow.

Ryan Jones:

What the F is this centering. And tap-down state.

Previously: The Sad State of iOS 11’s TV App.

Update (2019-05-16): Dan Masters:

If anybody has tried playing music videos in Apple Music, they won’t be at all surprised by this.

Warren Buffett’s Paper Wizard

Joe Rossignol:

While the game’s developer is listed as Wildlife Designs, Inc on the App Store, the app is copyrighted, maintained, and operated by Apple according to its terms and conditions, making this the first game Apple has developed for the iPhone since Texas Hold’em back when the App Store launched in 2008.


In an interview with CNBC, Cook said Buffett has made it clear he does not invest in technology companies, meaning he “obviously views Apple as a consumer company.”

A thousand no’s for every yes. And why is Cook proud that Apple is not seen as a technology company? With the services focus, should we view it more like a utility or cable company?

Marco Arment:

Best take on the bizarre Warren Buffet game was on @_connectedfm

I tend to agree with Stephen Hackett. Cook seems to delight in celebrities and goofy stuff like this, much moreso than in product details.

Joe Rossignol:

Given that Warren Buffett’s Paper Wizard only takes minutes to complete, and that Buffett’s high score of 15,350 is seemingly unbreakable, the game appears to be little more than a short-lived novelty. As such, it is not all that surprising that the game has already been pulled internationally.


Adobe Case Study in Why Customers Don’t Like Subscriptions

Juli Clover:

Adobe today quietly debuted new pricing for its Photography bundle, which has long been available for $9.99 per month. Starting today, Adobe’s website is listing a price tag of $19.99 per month, which is double the previous price.


Most users appear to be seeing the updated pricing on the Adobe website, but there is a hidden section of the site where one can still purchase the Photography plan for $9.99 per month.

It looks like it’s still planning to bill me at $9.99. That already seemed steep, given that I don’t use Creative Cloud or Photoshop—only Lightroom CC, which was previously a $149 one-time purchase. However, I still like Lightroom (UI weirdness aside), and post-Aperture I prioritize choosing a product that seems seem unlikely to disappear.

Ashley Lynch (Hacker News):

Adobe is no longer allowing subscribers to download previous versions of Premiere and is even sending notices to people who still have them installed to say they’re no longer allowed to use them.

Matt Roszak (Megan Fox):

I just got an email from @Adobe that I’m no longer allowed to use the software that I’m paying for. Time to cancel my subscription I guess.

William Gallagher (MacRumors):

Users of older versions of Creative Cloud apps, including Photoshop, Premiere Pro and Lightroom Classic, have been told by Adobe that they are no longer licensed to use them, and anyone who continues to use these versions could face “infringement claims” from other companies.


Prior to the creation of the Creative Cloud subscription service, Adobe licensed certain technologies from Dolby with an agreement based on how many discs of certain apps were sold. Now that the software is distributed online, the companies reportedly renegotiated their agreement to be based on how many users are actually running the software.

According to Dolby’s legal filing, this agreement was subject to the figures Adobe reported being examined by a third-party audit. “When Dolby sought to exercise its right to audit Adobe’s books and records to ensure proper reporting and payment, Adobe refused to engage in even basic auditing and information sharing practices; practices that Adobe itself had demanded of its own licensees,” says the filing.


Earlier in May, Adobe announced that that users will no longer be able to stay on just any older version they want.


So Adobe has a licensing issue with Dolby or an “other third party” as they put it - and end users who paid for the software as recently as 3 months ago are supposed to switch versions in the middle of a project, or be “subject to infringement claims”(!?) in some IP proxy war?

It seems like this is Adobe’s problem. I don’t know if throwing their customers under the bus was a sad attempt at fomenting pressure on Dolby to capitulate, but it’s really scummy and a bad look for Adobe.

Shawn King:

I got my “cease and desist” letter. Adobe continues to make decisions that hurt average customers. It’s unlikely individuals would “face potential “infringement claims” from Dolby and Adobe is just using the wording as a scare tactic.


Update (2019-05-16): Wojtek Pietrusiewicz:

I just want Lightroom Classic and I couldn’t care less about the rest, yet I am forced to pay for unused features. Adobe’s Creative Cloud is a very frustrating experience.

How the Apple Store Lost Its Luster

Mark Gurman and Matthew Townsend (Hacker News):

In interviews, current and former Apple employees blame a combination of factors. They say the stores have become mostly an exercise in branding and no longer do a good job serving mission shoppers like Smith. Meanwhile, they say, the quality of staff has slipped during an 18-year expansion that has seen Apple open more than 500 locations and hire 70,000 people.


The overhaul of the Genius Bar has been especially controversial. Customers looking for technical advice or repairs must now check in with an employee, who types their request into an iPad. Then when a Genius is free, he or she must find the customer wherever they happen to be in the store. Ahrendts was determined to get rid of lineups, but now the stores are often crowded with people waiting for their iPhones to be fixed or batteries swapped out.

The Genius service also lost the human touch. In the past, Geniuses could work on a Mac or iPhone right at the counter, chatting and explaining what they were doing.

Nick Heer:

The store I most frequently visit when I need support has a really strange vibe around the Genius Bar. I guess the intent is that, while you’re waiting five to forty-five minutes for your technician, you can look around for stuff to buy. But I don’t see people doing that. I see lots of people sitting awkwardly waiting at tables with lots of other people also sitting awkwardly. All of us just want our products fixed so we can go home.

Mark Gurman:

A former Apple retail exec tonight: “It was a wholesale leadership takeover by fashion industry insiders and agency people who had no idea what they were doing with Apple. Most of the folks who knew better are long since gone. O’Brien has her work cut out for her.”

Mitchel Broussard:

One former Apple executive said that O’Brien is looking to borrow from the past and break up Apple stores into more clearly defined sections. These include areas that promote Apple’s growing services business, like Apple Music and Apple TV+. A few employees speculated that she will also bring back the original Genius Bar.

Alex Johnson:

Did an iPad trade-in: was what I said it was. Changed offer: no ability to speak to a person. Contrast @gazelle : real people. Retail: per Bloomberg story. iCloud billing: where to begin.


Update (2019-05-31): Mark Gurman and Taylor Riggs:

Former Apple Inc. retail head Angela Ahrendts defended her revamp of the company’s stores over the past five years, and called her tenure “mission accomplished.”

Monday, May 13, 2019

App Store Monopoly Lawsuit

NY Times Editorial Board:

The actions by Apple highlight the inherent tension in the company’s fierce control over its mobile operating system: On the one hand, the closed environment is a boon to consumer privacy because the company has the leverage to insist upon it; on the other hand, that environment fosters a kind of monopoly.

Adi Robertson (MacRumors):

The Supreme Court is letting an antitrust lawsuit against Apple proceed, and it’s rejected Apple’s argument that iOS App Store users aren’t really its customers. The Supreme Court upheld the Ninth Circuit Court of Appeals’ decision in Apple v. Pepper, agreeing in a 5-4 decision that Apple app buyers could sue the company for allegedly driving up prices. “Apple’s line-drawing does not make a lot of sense, other than as a way to gerrymander Apple out of this and similar lawsuits,” wrote Justice Brett Kavanaugh.

Apple had claimed that iOS users were technically buying apps from developers, while developers themselves were Apple’s App Store customers. According to an earlier legal doctrine known as Illinois Brick, “indirect purchasers” of a product don’t have the standing to file antitrust cases. But in today’s decision, the Supreme Court determined that this logic doesn’t apply to Apple.

Ryan Jones:

I believe this is true and right.

Only Apple charges, refunds, owns the customer relationship, sends receipts, etc.

Marco Arment:

I’m no lawyer, but two things have been obvious to me:

- Customers absolutely buy apps from Apple, not developers.

- Apple’s requirement that all in-app transactions go through their system (which takes 30%) is anticompetitive, and should absolutely be challenged by regulators.

Add this to the pile of significant legal anticompetitive challenges that Apple faces by their in-app purchase rules.

They’ll never allow sideloading or reduce the 30%, but I expect all of this to result in a relaxing of the “can’t even mention other payment methods” rule.

Michael Love:

Could be forced to do a lot more, c.f. Microsoft having to un-bundle IE; Apple could be compelled to not only allow other app stores but actually provide a startup alert to invite you to pick an alternate one.

Steve Troughton-Smith:

If antitrust rulings against Apple are finally what it takes to bring Gatekeeper to iOS, then so be it. It is crazy that non-developer users pay for $100 developer accounts just to sideload apps


Update (2019-05-14): John Paczkowski (Stephen Nellis):

Here’s Apple’s statement on the #SCOTUS antitrust ruling

Michael Love:

This is… not great spin. And “if the developer chooses to sell digital services through the App Store” is outright misleading - if you choose to sell digital goods for one of the world’s two main mobile operating systems, you have to pay Apple their 30%.

And in the US at least Apple controls more than half of the mobile OS market (almost 2/3) - if you want to sell digital goods of any kind to the majority of Americans, you have to pay Apple 30%, you’re not really offered a ‘choice’ to distribute through the App Store.

Kyle Howells:

1. Yes Apple holds a complete monopoly on iOS users with the AppStore and aggressively shuts down any other options.

2. Simultaneously “app buyers could sue the company for allegedly driving up prices” is laughable. The AppStore is a race to the bottom.

Ben Thompson:

The antitrust case against the Apple App Store is going to move forward. It’s the wrong decision, and the reasons why explain why new legislation is needed.

Michael Love:

I get Ben’s argument, but I can’t sue Apple, because the systems that are supposed to ensure that Apple can’t punish me for suing them are not reliable enough for me to stake my livelihood on. So only way to see justice is to let consumers sue.

Also, I would put myself forward as a textbook example of Apple’s 30% being passed onto consumers: I pay quite substantial royalties on a lot of the stuff I sell and my prices are to a large extent determined by what margins I can live with on that content.

Joe Fabisevich:

I think Apple abuses its App Store monopoly but that this case was ruled incorrectly, and the conservative side of the Supreme Court ruled correctly but lost in this case. If you need me I’ll be hiding in my hole where Twitter doesn’t exist for a bit.

What to Expect from Marzipan

Craig Hockenberry (tweet, Hacker News):

It will be exciting for a lot of developers, including yours truly, to press that button. But it’s also important to temper this enthusiasm with reality: that build setting is just the first step on a long and complicated road. Good interaction doesn’t come for free.

As you saw above, the Mac has seen a lot of tool and framework transitions. But this is the first transition which involves a large group of developers who don’t have any experience on the platform they’re targeting. A Mac developer moving from CodeWarrior and C++ to Project Builder and Objective-C didn’t have to learn anything new about conventions: they were still on a Mac. That can’t be said about iOS developers who are starting to use Marzipan.


Many of the thoughts in this essay got their start while developing a tvOS app: I found that having a common user interface toolkit wasn’t much help. It’s nice to have familiar UIKit items like UIImage, UIColor, and UIButton, but in the end I found that little code was shared between platforms. Some views could be ported directly between platforms, but anything involving a controller was out of the question.


Keeping two wildly different groups of customers happy with a single app won’t be an easy task, but it’s one that you’re going to be taking on with Marzipan.


It’s my opinion that Universal apps were the worst thing to ever happen for the iPad ecosystem. There’s no way for a developer to recoup the costs for new interactions and the extra work needed for more sophisticated apps. Apple makes it easier for a customer up front by offering a single download, but at the same time they make things worse because a Universal version of the user’s favorite app isn’t financially viable.

Brent Simmons:

As a Mac developer, you should do what other Mac developers do: understand and respect the platform and get help from Mac users, power users, and fellow Mac developers.

I’ve always found that Mac users are rooting for our success. They want us to make great apps — and they reward us for it. It’s a smaller, more intimate community, and warmer than iOS world. But you can also blow it by not trying, by not respecting the Mac and Mac users.

Craig Hockenberry:

Here’s a thread of some thoughts that didn’t make it into the post (it was already too long!)

Martin Pilkington:

I often feel that AppKit is under-appreciated by those who don’t have a lot of experience with it, and especially with switching back and forth between Mac and iOS development. To help try and fix that, I am going to go through some of the features in AppKit that don’t exist in UIKit. In this post I’ll cover the many controls of AppKit, and in a future post I’ll go into some of the less user-facing features.

Dimitri Bouniol:

I feel like neither AppKit nor UIKit, nor a “declarative framework” that sits on top of either, depending on the platform, is really the right answer.

AppKit is amazing in that it allows an app’s UI to easily match system conventions, but needs easy customizability badly.

Similarly, UIKit offers a huge amount of flexibility to customize system components, and make new controls, but lacks the depth that AppKit has in terms of great defaults for a newly developed app.

I feel like the ideal on both platforms would really be to have a cleaned up version of AppKit that offers the visual customizability of UIKit, but starts with an excellent set of defaults that any app should expect to have.


.NET 5 = .NET Core vNext

Microsoft (Hacker News):

Today, we’re announcing that the next release after .NET Core 3.0 will be .NET 5. This will be the next big release in the .NET family.

There will be just one .NET going forward, and you will be able to use it to target Windows, Linux, macOS, iOS, Android, tvOS, watchOS and WebAssembly and more.


This new project and direction are a game-changer for .NET. With .NET 5, your code and project files will look and feel the same no matter which type of app you’re building. You’ll have access to the same runtime, API and language capabilities with each app. This includes new performance improvements that get committed to corefx, practically daily.


Objective-C and Swift interoperability will be supported on multiple operating systems.

Frank A. Krueger:

What lessons can be learned from .NET Framework’s replacement by .NET Core/.NET 5? Platform lock-in is bad? Backwards compatibility can only be achieved for fixed time? Consolidation’s energy efficiency outweighs diversity? Names are arbitrary? Sic transit gloria mundi?

See also: .NET Dynamic Code Execution.


Google’s Apparent Turnaround on Privacy

Lauren Goode:

On Tuesday, The New York Times ran an op-ed about privacy written by Google CEO Sundar Pichai, in which he argued that privacy is not a luxury good, and that Google intends to give people “clear, meaningful choices” around their data. On the same day Pichai’s op-ed ran, Google held its annual developer conference, I/O, where it announced that Android Q, its latest mobile operating system, would ship with something like 50 privacy and security features.


But as Google increases the number of privacy features—part of an attempt to scrub its reputation clean of data-tracking dirt—the setup of the settings, toggles, and dashboards within its apps seems to put more responsibility on the individual user rather than the platform. As Pichai himself said, Google aims to give people “choices.” So it’s your choice if you want to take the time to adjust, monitor, take out, or toggle something off. Just like it’s Google’s choice to not change its fundamental approach to gathering data to help better target advertising and thus make heaps of money.


We announced at I/O that we will be updating Chrome to provide users with more transparency about how sites are using cookies, as well as simpler controls for cross-site cookies. We will preview these new features later this year.

We are making a number of upcoming changes to Chrome to enable these features, starting with modifying how cookies work so that developers need to explicitly specify which cookies are allowed to work across websites — and could be used to track users.

Chris Smith:

A report says that Google will launch a new feature for the Chrome browser that will make it a lot harder for companies to track you online, but only as long as those companies are not Google.

John Wilander:

What Chrome has announced is a change to their default cookie policy, going from allowing third-party cookie access to not allowing it. However, developers can simply reconfigure their cookies to opt out this new policy and we should expect all trackers to do so immediately.

For a cookie policy to have meaningful effect on cross-site tracking, you also need to partition storage available to third-parties, such as LocalStorage, IndexedDB, ServiceWorkers, and cache. Safari is the only major browser to have such partitioning and we shipped it in 2013.

Nick Heer:

It looks like something spooked Facebook and Google. Instead of ignoring the privacy implications inherent to their business models, they both decided to reposition themselves as privacy-forward companies. Facebook did so by having an op-ed from its CEO published in a national newspaper, and by trying to redefine privacy itself. Google’s strategy has, so far, been similar.

Jack Wellborn:

The use and presentation of this bulleted structure would have a glancing reader coming away with the impression that Apple merits the most skepticism and that Google is doing the most for their privacy. Even close readers could easily come away thinking that the companies are effectively no different when it comes to their privacy.

Whether you trust these companies in the long run or not, the false equivalency rewards the worst privacy offenses happening right now.

Ben Thompson:

Google, on the other hand, didn’t just admit it collects data, it highlighted how that collection makes Google more helpful. Google didn’t just admit that its goal is to be the Aggregator of information for every customer on earth, it bragged about that fact. And Google certainly didn’t engage in any self-effacing comments about how technology could be used for both good and bad: the entire keynote was arguing that technology is not only good, it is going to get better, and Google will lead the way.

David Sparks:

When these lines were first drawn years ago, there was a lot more digital ink being spilled on the wisdom of Apple’s position. You don’t hear as much about it lately.

So how is Apple doing? From my experience, Apple still is lagging, but not as much as I worried it might.

Ron Amadeo (via David Heinemeier Hansson):

Migrating to a Google Account means turning all your Nest data over to Google—data that previously had been kept separate.


Friday, May 10, 2019

2019 Apple Keyboard Problems

These days I mostly use the old USB aluminum keyboard.

Update (2019-05-13): Alejandro Ramirez:

Not on the blog: Backlit keycaps on Macbook Pro are transparent plastic coated with black UV paint and laser engraved. A big hand hits ⌘ with the nail, eventually exposing the full brightness of the LED. This wouldn’t happen with double-shot keycaps (a few cents more expensive).

Damien Petrilli:

Same happened to me. It didn’t last longer than 2y.

Craig Grannell:

Even the Magic Keyboards have problems. They are mechanically reliable but not durable with heavy (but standard) use (I’m a writer). This looks like I’ve gouged the A, S and C keys. Not good enough for something that cost me £100.


I bought a couple of wired keyboards and mice after it became clear that they would be discontinued. What a completely silly state of affairs…

Google Is Turning Off the Works-with-Nest API

Nest (via John Feminella, Hacker News):

We want to unify our efforts around third-party connected home devices under a single developer platform – a one-stop shop for both our developers and our customers to build a more helpful home. To accomplish this, we’ll be winding down Works with Nest on August 31, 2019, and delivering a single unified experience through the Works with Google Assistant program. See the Works with Nest FAQs section below.

Previously: Twitter Shutting Down APIs.

iPhone XR Sales in Q1 2019

Juli Clover:

Apple shipped over 4.5 million iPhone XR devices during the quarter, and it made up 13 percent of total North American shipments. Samsung’s Galaxy S10+ and Galaxy S10e were the other two most popular smartphones in Q1 2019, accounting for 6 percent of shipments each.

Though Apple’s iPhone XR was the top selling smartphone in North America during the quarter, Apple still saw a 19 percent drop in year-over-year shipments.

It’s no iPhone 5c. These results are from North America, so they can’t be blamed on China, but they don’t seem to be iPhone-specific, either, as the overall market declined by 18%.


Dark Mode Support in WebKit

Timothy Hatcher:

With the Safari 12.1 update in macOS 10.14.4, dark mode support in WebKit has arrived.


Not all web content is simple. For this reason Safari and WebKit do not auto-darken web content — documents will need to opt-in to dark mode. The main way to signal that your content supports dark mode it to adopt the new color-scheme style property, specified in this proposal.


Defining color-scheme will get you going for simple content. For most web content, you will need to adopt the prefers-color-scheme media query, specified in this proposal, to style elements with custom colors or images. You can use this media query anywhere media queries are supported, such as in <picture> elements or window.matchMedia() for script triggers.

The best way to deploy a dark and light color scheme in your documents is to utilize CSS variables. Then you can easily specify the colors in one place with the media query, and use those variables throughout your stylesheets. When the media query matches, the variables will change wherever they are used — auto switching with any appearance change.

Safari’s Web Inspector now lets you test dark mode without having to switch the entire system.

Steven Sinofsky:

All the energy going into “dark mode” in every app AND every OS while each attempt yields more, not fewer, bugs…feels like just about everyone could prioritize differently.

There I said it.

Ken Kocienda:

I agree with @stevesi. “Dark mode” isn’t bad in any deep sense, and some people like using it, but the effort to implement it everywhere will not yield benefits in line with the cost. It’s a sideways move. It’s industry-wide bike-shedding.

Howard Oakley:

So when you print a window which the user can see, AppKit lets it get printed in Dark Mode if that is in use. That’s not at all helpful, is it?

The answer is to print from a separate off-screen view, which you can set to Light Mode.


Update (2019-05-13): Nikita Vasilyev:

Dark Mode in Web Inspector was introduced in Safari Technology Preview last year. This article highlights implementation details which could be helpful for anyone adapting Dark Mode for their websites or web views.

A Conspiracy to Kill IE6

Chris Zacharias (via Tom Warren):

The plan was very simple. We would put a small banner above the video player that would only show up for IE6 users. It would read “We will be phasing out support for your browser soon. Please upgrade to one of these more modern browsers.” Next to the text would be links to the current versions of the major browsers, including Chrome, Firefox, IE8 and eventually, Opera. The text was intentionally vague and the timeline left completely undefined. We hoped that it was threatening enough to motivate end users to upgrade without forcing us to commit to any actual deprecation plan. Users would have the ability to close out this warning if they wanted to ignore it or deal with it later. The code was designed to be as subtle as possible so that it would not catch the attention of anyone monitoring our checkins. Nobody except the web development team used IE6 with any real regularity, so we knew it was unlikely anyone would notice our banner appear in the staging environment. We even delayed having the text translated for international users so that a translator asking for additional context could not inadvertently surface what we were doing. Next, we just needed a way to slip the code into production without anyone catching on.


Once they realized what had happened, they cornered our boss for details, grappled with the consequences of our actions and begrudgingly arrived at the conclusion that the ends had justified the means. Between YouTube, Google Docs, and several other Google properties posting IE6 banners, Google had given permission to every other site on the web to add their own. IE6 banners suddenly started appearing everywhere. Within one month, our YouTube IE6 user base was cut in half and over 10% of global IE6 traffic had dropped off while all other browsers increased in corresponding amounts. The results were better than our web development team had ever intended.


Windows to Include a Full Linux Kernel

Microsoft (via Miguel de Icaza):

We will be shipping a real Linux kernel with Windows that will make full system call compatibility possible. This isn’t the first time Microsoft has shipped a Linux kernel, as we have already shipped one in 2018 when we announced Azure Sphere. However, this will be the first time a Linux kernel is shipped with Windows, which is a true testament to how much Microsoft loves Linux! We’ll be building the kernel in house from the latest stable branch, based on the source available at


WSL 2 uses the latest and greatest in virtualization technology to run its Linux kernel inside of a lightweight utility virtual machine (VM). However, WSL 2 will NOT be a traditional VM experience. When you think of a VM, you probably think of something that is slow to boot up, exists in a very isolated environment, consumes lots of computer resources and requires your time to manage it. WSL 2 does not have these attributes. It will still give the remarkable benefits of WSL 1: High levels of integration between Windows and Linux, extremely fast boot times, small resource footprint, and best of all will require no VM configuration or management.

What a time to be alive. Does this mean that Microsoft will now ship more up-to-date Unix tools than Apple?

Owen Williams:

Including a Linux kernel in Windows changes the game. Instead of a Linux environment that has barriers and known edge cases, this is a full-on, no-limitation, macOS-esque Linux environment—with a notable improvement: it’s containerized so you can dispose of it and get a fresh environment in a second, then just keep working.


The master stroke here is that including a Linux kernel in Windows also dramatically changes the cloud story for Microsoft. Windows Server just gained a huge leg up, now able to run Linux and Windows tooling side-by-side on the same system, making developer tooling and deployment of code significantly easier.


By building the absolute best developer experience—from acquiring GitHub, to creating the most popular coding tool VSCode, and now, a fully-functioning Linux environment, Microsoft can say it provides the best tools for developers, period, wherever they are.

Tom Warren:

Microsoft also announced Windows Terminal today, a new command line app for Windows. It’s designed to be the central location for access to environments like PowerShell, Cmd, and the Windows Subsystem for Linux (WSL).

Casey Liss:

Everyone doing web development switched to using then-OS X back in the aughts because we could run the entire stack locally, natively. And the keyboards worked.

Seems like soon you’ll be able to do the same on Windows. Where the keyboards work.


Paul Haddad:

MSFT has two different ways of running Linux binaries on a Windows machine but 32 bit Mac binaries are just too much work for Apple.

Alex Stamos:

This is smart and well-timed. Windows is becoming a legitimate competitor to OS X for cloud-native development at a moment when Macbook Pro users are screaming for working keyboards and features like LTE.

Stephen Nellis:

I can envision developers on their 3rd trip to the overrun Union Square SF Apple store to get a MBP keyboard fixed, thinking...well, maybe it”s time to take a look?

Peter Steinberger:

I admire the new Microsoft. Not only are they super transparent about their plans, release everything open source - they also share Twitter handles of the main folks responsible.

Damien Petrilli:

Microsoft is making great progress at attacking macos exactly where it hurts: development.

We are really not far from seeing how Tim Apple miss management is going to kill a lot of Apple’s value for good.

Doug Gregor:

People are excited about a terminal. Either the 90’s are back or it’s a really slow news day in the tech world

Damien Petrilli:

Nope, it just means that now, there is a real competition to macos on the dev side.

A lot of people including myself are on macos because of its UNIX subsystem. It’s the best platform for all open source / programming language.

This could change soon.

Marco Arment:

If you’ve wondered why Microsoft made the VS Code editor, note how many lines go from “First” to “OSX” [sic] to “Visual Studio Code”.

Macs OWNED web development for a decade. But when Apple lost years alienating and neglecting pros, Microsoft had their foot on the gas.

Alex Harden:

VS Code is not my primary editor (@AtomEditor is) but I may end up using it more if/when I end up on Windows 10 this fall on my work computer. I simply can’t justify staying on MacOS for work when @Apple isn’t designing MacBooks for developers any longer.

Marco Arment:

This perspective (a common one) should be most worrisome to Apple:

“The MacBook Pro seems designed for other people’s needs, not mine.”

…especially coming from developers, which Apple has said are their largest category of “pro” users.

Anonymous Genius:

The irony is that Apple messed up the Mac Pro and the MacBooks Pro by solving problems that didn’t need to be solved. They didn’t neglect them: they over-designed them, fixed what wasn’t broken, and then didn’t fix the keyboards when they broke.

Justin Flood:

I’m a pro photographer. I don’t feel like the MacBook Pro is made for me anymore. I work with video editors and VFX people, and musicians who feel the same. This asks the question:

Who IS the MacBook Pro designed for?

Ken Kocienda:

The success of the iPhone, iPad, and Apple Watch relieves much of the burden from Macs to be the “computer for the rest of us”. It means the Mac can stress power and flexibility as a platform for pros, a tool for developers, and a playground for hobbyists.

After all, pros, developers, and hobbysists are the people that feed the iOS ecosystem with content, apps, and new ideas. Mac and iOS devices already support each other in a virtuous cycle, but that could be stressed more by producing machines that pros and geeks truly love.

I sure hope Apple soon gets through this period of problematic hardware (MacBook keyboards), “Where is it?” hardware (Mac Pro), and of new languages and frameworks that do mostly what the old ones did, only differently (Swift, Marzipan). Bring back “Insanely Great”!

Ken Kocienda:

The reliability and usability failings of the MacBook Pro are rooted in thinness and weight-saving—yet Apple makes the MacBook Air to optimize for those design goals. Let’s face it. Apple doesn’t make a pro laptop today. Sticking “Pro” on the end of the name does not make it so.

Petter Ahrnstedt:

Ex Apple employee here (PR manager). They stopped caring about prosumers in 2011-12. The prosumer managers were made redundant. Entire focus is (was) on consumers.

See also: The Talk Show, Hacker News (3).


Update (2019-05-13): Rosyna Keller:

It’ll only have the kernel itself as an optional developer install. Windows still won’t ship with any user space tools. You’ll still have to get those from a distro.

Kyle Howells:

Unrealistic WWDC Wishlist

- Gatekeeper for iOS
- Relaxed AppStore restrictions with new categories, like Dev Tools.
- UIKit for Mac uncrippled (no mandatory sandboxing or AppStore only)
- Redesigned & relaxed notarisation system
- Pro user, automation & performance focus
- A sign that ‘easy things should be easy, hard things should be possible’ has been deeply and culturally accepted into Apple, iOS and macOS.

Rather than the seeming current philosophy of ‘easy things should be easy, and anything more is a security risk’.

Brad Chacos (via Steven Sinofsky):

After years of endless jokes, 2019 is truly, finally shaping up to be the year of Linux on the desktop.

Rui Carmo:

I came to the Mac as a haven from the (then crappy and useless) Windows NT-era desktops we ran. Even though I was one of the first people to use NT 4.0 as a “workstation” (and even ran maliing-lists and web sites on it using the ancient EMWAC servers), I wanted:

  • A powerful UNIX workstation
  • Great hardware that “just worked”

Switching to the Mac was so amazingly great that I even named this site after the overall experience, a little over fifteen years ago.


And so it has come to pass that, even though I am typing this on my MacBook Pro, I have been using a Surface Laptop for nearly six months as a semi-daily driver[…]

Thursday, May 9, 2019

StopTheNews 1.0

Jeff Johnson:

Have you ever been annoyed that Safari on macOS 10.14 Mojave wants to open Apple News articles in News app instead of in Safari? Well no more! I’ve just released a new, free, open source Mac app called StopTheNews that stops Safari from opening Apple News articles in News app. Instead, StopTheNews opens the original article URL in Safari. StopTheNews also works with Safari Technology Preview, if that’s your default web browser.

The trick behind StopTheNews is simple. On Mojave, News app is the default handler for Apple News URL schemes. StopTheNews just registers itself as the default handler for Apple News URL schemes, taking over from News app.

Unfortunately, most of my Apple News links come from Twitter. But if I click an Apple News link in Tweetbot, it’s actually an link, so it opens in Safari. Then Safari recognizes that the expanded URL has a custom URL scheme. And recent versions of Safari use a fake-looking alert to prompt “Do you want to allow this page to open with ‘App’?” every time. I have to click Allow before StopTheNews can intercept the URL to expand it again and open the final URL in Safari. Still, it’s better than opening the URL in Apple News.

Chance Miller:

Why would you want to do this? The Apple News app on the Mac can be a bit buggy and slow to open. If you want to just quickly skim an article, it’s generally easier to read in Safari than it is Apple News.

It’s also not good for sending text or HTML to MarsEdit.

Jeff Johnson:

With StopTheNews installed you can also copy or drag links to Safari from the Stocks app, because Stocks also uses URLs!

Simone Manganelli:

Lol, the built-in “expand URL” workflow step in Shortcuts doesn’t actually expand links.


Update (2019-05-10): This Terminal command:

defaults write com.tapbots.Tweetbot3Mac OpenURLsDirectly YES

tells Tweetbot to expand the URLs itself, which avoids the confirmation dialog in Safari.

SD Notary 1.0

Shane Stanley:

SD Notary is a utility for having apps notarized by Apple.


Most macOS applications are written in Xcode, and the process is designed with that in mind. For apps not written in Xcode, such as script applets, notarizing can be done using command line tools. Some of these tools, though, are still actually part of Xcode.

SD Notary is an app that wraps a more friendly user interface around these tools. Although it was designed with script applets in mind, it should work with any application that has relatively straight-forward requirements.

Not surprisingly, coming from Late Night Software, it’s scriptable.


Wednesday, May 8, 2019

Optional, throws, Result, and async/await

Joshua Emmons:

Ah ha! So we see that the Result type can serve as a concrete reification of Swift’s abstract idea of “that thing that’s returned when a function is marked as throws.” And as such, we can use it to deal with asynchronous operations that require concrete types for parameters passed to their completion handlers.


Thankfully, we can clean this up by taking advantage of the fact that, like Optional, Result implements flatMap. Specifically, flatMap on a Result will, in the case of .success, apply the given transform to the associated value and return the newly produced Result. In the case of a .failure, however, flatMap simply passes the .failure and its associated error along without modification.


In the near term, we just have to lump it. It’s better than the other alternatives native to the language, and chaining asynchronous calls isn’t as common as for synchronous calls.

But in the future, just as Swift used do/catch syntax to define away Result nesting problems in synchronous error handling, there are many proposals being considered to do the same for asynchronous errors (and asynchronous processing, generally).

See also: Localized​Error, Recoverable​Error, Custom​NSError.


Tuesday, May 7, 2019

Tying the Locale to the Localization


The locale is formed from the settings for the current user’s chosen system locale overlaid with any custom settings the user has specified.

However, it doesn’t work that way anymore on macOS 10.14. (And I think this was documented or explained at WWDC, but I can’t seem to find it in the release notes or video.)

Peter N Lewis:

So basically there is no way an OSX application in 10.14 can display the time according to the user’s settings unless it is localised in the user’s language? That is severely messed up.


NSLocale currentLocale returns english (if you are localized in english) regardless of the user language. And there does not appear to be any way to read the 24 hour setting, or even just change a date formatter to a specific 24 hour setting.

I think the reasoning was to make the display within the app consistent, which kind of makes sense, though I think many users would rather see consistent dates (that follow their preferences) across all apps. But then there are cases like Lewis’s where the formatted text is not even necessarily displayed in the app; it’s just produced by it:

Keyboard Maestro generates dates based on the “current” locale. Pre-10.14, that was your locale as you define. In 10.14, they change it so that it is the locale of the localization of the app. So since Keyboard Maestro is English-only, you get an English locale regardless.

Previously: +[NSLocale preferredLanguages] vs -[NSBundle preferredLocalizations].

Update (2019-06-20): Karan:

For apps whose content is derived primarily from Locale, Formatter, etc., those apps can be opted into CFBundleAllowMixedLocalizations (see here), which will return the behaviour of currentLocale to ignoring the loaded bundle.

Peter N Lewis:

Unfortunately there is no way for a user to “opt back out” for an application in Mojave that worked properly in every previous version. No “default write” or the like, only a plist change will allow it. Also no way to control it for date formatting etc without mixing the UI.

Non-Standard Emoji Colors

Howard Oakley:

I wanted to include the international Quarantine flag, known as Flag Lima, with black and yellow chequers. That is the flag still flown from ships in harbour when they remain under quarantine, before being allowed free entry into a port. It would have been very appropriate to my two articles.


So just what is the colour of Unicode code point U+1F397? How could WordPress possibly have found me a blue ribbon when everywhere else it’s yellow?


I’ve long had my doubts about the ability of emoji, particularly those included in Unicode, to support even the vaguest emotional communication. This only goes to show how flawed they are. So I’m sorry if you were somewhat mystified by the appearance of unrelated emoji in the titles of those two articles. It wasn’t me, it was a standard which in this case doesn’t appear to define anything meaningful.

Previously: Quarantine: Apps and Documents.

Monday, May 6, 2019

Quarantine: Apps and Documents

Howard Oakley:

The quarantine flag is among the stickiest of all xattrs. When you unZip an archive which has been flagged, the xattr is normally propagated to all items which are saved from that, a behaviour which ensures that compressed apps retain their flag when uncompressed, for example. This isn’t, though, imposed by macOS, and some tools and utilities which can decompress archives may not follow this behaviour; the bundled Archive Utility does, though.

Howard Oakley:

macOS has been attaching quarantine flags, in the form of the extended attribute, to documents for as long as it has been to apps, since macOS 10.5 in 2007, as part of the the same process. If a webpage or other file is downloaded from the Internet and saved on your Mac by an app which adds quarantine flags, then a normal quarantine xattr will be added to it. When you decompress a flagged Zip archive, quarantine flags are automatically attached to all the files extracted from it.


The role and purpose of these quarantine flags added by sandboxed apps remains obscure, beyond being used to prevent the execution of shell scripts, web archives, etc.

Unfortunately, it can also prevent opening shell scripts, e.g. just to edit them.

Howard Oakley:

Opening a document using LaunchServices, by double-clicking or dragging and dropping it, is very different. macOS then checks both the quarantine flag and the OpenWith xattr. If the latter points to the same app as the default for that document type, then regardless of the quarantine flag, the document is opened as expected; similarly, if there’s no quarantine flag, none is enforced.

But if a document has both quarantine flag and OpenWith xattr, and the app specified in the latter isn’t the default, macOS refuses that request when it’s made through LaunchServices. This results in the dialog that you see, which doesn’t make any sense because it’s actually intended for apps which can’t pass their first run tests, not for documents at all.


macOS is clearly behaving in this way as a defence against malware, which might install an innocent-looking document but set its OpenWith xattr to ensure that it’s processed (installed or run in some way) using a third-party tool instead. However, there are several serious flaws in the way that this is currently implemented, in particular the differences in operation between app and document quarantine.


Furthermore, determining document behaviours like this through opaque metadata prevents the user from making judgements of their own on which documents to trust. It essentially deems every document untrusted for ever, which is most bizarre in comparison with the treatment of apps, which once they have passed their first run checks are so trusted that they can even have broken signatures and macOS doesn’t bat an eyelid at running them.

Howard Oakley:

I think that these log extracts demonstrate how the failure to open these documents is a behaviour determined by XProtect as a result of its scan not of the document contents (which were entirely innocent), but on discovery of the quarantine flag and the OpenWith extended attribute. The error returned, -67062, is incorrect, and results in the wrong alert being displayed to the user.

As far as I can discover, this behaviour and its use of this alert is undocumented by Apple in either its user documentation or that for developers.


Apple needs to correct this immediately: blaming its third-party developers for an undocumented feature in macOS is plain wrong.

Howard Oakley:

Open the Security & Privacy pane in its General tab. If you’re quick enough, there will be an additional item at the bottom offering the button to Open Anyway. If you don’t see it, it’s because you were too slow to react: try again, only faster!

If you click on the Open Anyway button, you’ll see another security dialog which has a similarly incoherent message.

What a bizarre user interface.

What happens is that macOS sets the quarantine flag on that document to indicate that XProtect has approved it, by changing its first numbers from something like 0082 to 00e2. This is what my free app Pratique does without your having to go through two security alerts and the Security & Privacy pane. This ensures that the next time that document – and that document alone – has its quarantine flag checked, it will not be blocked in the way that it was.


Open the Finder contextual menu on the document, then press the Option key. Now the Open command at the top will open that document via the security confirmation dialog, or you can choose any other app to open it instead. This results in the same change being made to the quarantine flag, with the added bonus that, as you were holding the Option key, the Finder window will automatically vanish too.


Update (2019-05-14): Howard Oakley:

Pratique has a similar interface to my free utility for stripping ‘spurious’ quarantine flags, Sandstrip, but instead of removing them, it marks files with a flag which indicates that they have been checked by XProtect – in the same way that flags change when an app has passed its first run checks. So long as that modified flag remains attached to a document, you can change the app set to open it, and double-clicking it won’t trigger a security alert and refusal.

This should prove a more lasting way of dealing with the problems caused by quarantine flags on documents, particularly if you don’t save them using an app which runs in a sandbox.

Howard Oakley:

In certain circumstances, trying to open a document in macOS 10.8 and later can result in a security error and refusal. This article summarises knowledge about this issue: how it arises, what it means, and how to work around it.

Update (2020-11-07): See also: Quarantine and the quarantine flag.

The Apple Watch Turns Four: Some Thoughts

Nick Heer:

From a convoluted and much-mocked start, it has grown to become an invaluable accessory for millions. One more reason it was so often misunderstood: it’s truly the kind of product that you need to use to understand it.


I adore the activity and fitness tracking, for example. […] I also like some of the smart watch face features. It feels completely natural for me to glance at my watch to check the weather or to see what appointments or reminders I have that day. Having Siri on my wrist is also a revelation. These features combine to help create the kind of passive technology future many of us have dreamed of. If only I could tilt my wrist and see when the next bus or train is due to arrive — that would nearly complete a feeling of immersion.


But then there are the things that I feel more negative about, and which have not meaningfully changed over the past four years — the worst of which is the third-party app ecosystem on the device. Even though I have a Series 1 Apple Watch, this has little to do with speed and everything to do with functionality. It feels like third-party developers either cannot figure out what they want to do with their WatchOS apps, or they’re not able to do what they want because of API limitations.


I’m also not wholly convinced that pushing notifications to my wrist is somehow beneficial for either my phone use or my attentiveness.

Jim des Rivieres, RIP

Ottowa Matters:

Jim, aka “Jeem” to many computing friends and colleagues and “Moth Man” to his Lepidoptera friends, will be fondly remembered by the many friends made over the years (Bell High School, Carleton University (as a Honours BSc graduate, computer programmer at the former Centre for Computing Services, and Assistant Professor), University of Toronto, Knights of the Lambda Calculus, Xerox PARC, Object Technology International (OTI), IBM, Photography Collectors Group, National Gallery of Canada, Camera Club of Ottawa, School of Photographic Arts Ottawa (SPAO) and the Museum of Nature) along with those gathered through his photography and mothing passion.

Gilad Bracha:

Sad news, once again. Among Jim’s many accomplishments, he co-authored the classic “Art of the Metaobject Protocol”, which many can still learn from.

MIT Press:

Kiczales, des Rivières, and Bobrow show that the “art of metaobject protocol design” lies in creating a synthetic combination of object-oriented and reflective techniques that can be applied under existing software engineering considerations to yield a new approach to programming language design that meets a broad set of design criteria.

One of the major benefits of including the metaobject protocol in programming languages is that it allows users to adjust the language to better suit their needs. Metaobject protocols also disprove the adage that adding more flexibility to a programming language reduces its performance. In presenting the principles of metaobject protocols, the authors work with actual code for a simplified implementation of CLOS and its metaobject protocol, providing an opportunity for the reader to gain hands-on experience with the design process.


In his 1997 talk at OOPSLA, Alan Kay called it “the best book anybody’s written in ten years”, and contended that it contained “some of the most profound insights, and the most practical insights about OOP”, but was dismayed that it was written in a highly Lisp-centric and CLOS-specific fashion, calling it “a hard book for most people to read; if you don’t know the Lisp culture, it’s very hard to read”.

Some chapters of the book are available online, and Amazon has the paperback. I haven’t seen the hardback version anywhere.

Friday, May 3, 2019

Apple Developer CD Covers

James Thomson:

Very interesting photos by @nbeadman featuring covers of the old developer CDs, when Apple liked terrible puns

Aside from seeing Inside Macintosh in bookstores, these CDs were my first exposure to Apple’s developer program.

MongoDB Acquires Realm

Eliot Horowitz (Hacker News):

The best thing in the world is when someone just gets you, and you get them, because when you share a vision of the world like that, you can do incredible things together. That’s exactly the case with MongoDB and Realm, so I’m very happy to report that MongoDB has just entered into an agreement to acquire Realm.


Realm and MongoDB are a natural fit because we share a vision that when developers can interact naturally with data, they are happier and more productive, and because our products are complementary. We’re excited to get to work crafting our shared roadmap and will be ready to announce concrete details at our annual global conference, MongoDB World, held June 17-19 in New York City.

One key principle guiding that process is simple: we will not introduce backwards breaking changes.

Marcin Krzyzanowski:

“Both MongoDB and Realm are committed to supporting our customers on their current solution, and nothing will change right now.”

“Parse has agreed to be acquired by Facebook. Rest assured, Parse is not going away. It’s going to get better.”


Update (2019-05-10): Drew McCormack:

Realm did a great job marketing themselves — their talk series was great — but I think they took their eyes off the ball. The core product was secondary. Sync was added very, very late, in a world where it is absolutely essential.

But even worse, and this applies to both Parse and Realm, these services didn't offer a very attractive proposition to developers. They locked you in to their API, and their server — you had to bet your whole company on a shaky startup.

TurboTax Dark Patterns and Robots Exclusion

Justin Elliott and Lucas Waldron (Hacker News):

Intuit and other tax software companies have spent millions lobbying to make sure that the IRS doesn’t offer its own tax preparation and filing service. In exchange, the companies have entered into an agreement with the IRS to offer a “Free File” product to most Americans — but good luck finding it.


We took a close look at the source code of the TurboTax website and noticed something strange. Even though we clicked on the “FREE Guaranteed” option and met all the requirements to file for free, the company had tagged us as a potential paying customer.


Even though TurboTax could tell we were eligible to file for free, the company never told us about the truly free version.

It turns out that if you start the process from, it’s impossible to find the truly free version. The company itself admits this.

Justin Elliott (tweet):

There’s a new wrinkle: It turns out, Intuit, the maker of TurboTax, is deliberately hiding the truly free edition — TurboTax Free File — from Google Search.


The code in question, which can be found in a file called robots.txt or in an HTML tag, has to be actively added to a site, as Intuit has done. It is typically used on pages that designers want to hide from the open internet, such as those that are for internal use only. Without that code, Google and other search engines default to adding a site to their search results.

Nick Heer (tweet):

TaxSlayer,, and Free Tax USA also request that search engines do not index their free filing webpages.

Justin Elliott:

NEW - statement from TurboTax / Intuit:

“we are undertaking a thorough review of our search practices to ensure we are achieving our goal of increasing eligible taxpayers’ awareness of the IRS Free File Program and its availability.”


Update (2019-05-10): Justin Elliott and Meg Marco (Hacker News):

The makers of TurboTax have long been luring customers into paying for a service that they promised the government they’d give away for free. Now they’re lying to customers to avoid giving refunds.

We’ve heard from 16 people who say they were denied refunds and told that the truly free version — Free File — is a government product that’s not run by TurboTax. Ten others reported being told that ProPublica’s stories were inaccurate, or that our coverage is “fake news” or “fictitious.”

Update (2019-05-31): Justin Elliott and Kengo Tsutsumi (tweet):

To find TurboTax’s Free File landing page, service members typically have to go through the IRS website. TurboTax Military, by contrast, is promoted on the company’s home page and elsewhere. Starting through the Military landing page directs many users to paid products even when they are eligible to get the same service for no cost using the Free File edition.

Thursday, May 2, 2019

The Future Is Weird

Paul Kafasis:

Thinking quickly, I whipped out my phone and opened up an app called “Plane Finder AR”. Simply aiming my phone in the direction of the fast-departing plane let me learn all about it. Plane Finder AR is an augmented reality app that overlays plane details on a view of the real world. Below is an example of what this looked like, using another random flight (the red circle showing the difficult-to-spot plane has been added)[…] And sure enough, I confirmed the pandas I thought I saw, because I found B-6998 was apparently painted in a special all-red “Kung Fu Panda” livery.

AppleCare Support Is Broken

Kirk McElhearn:

Several times in the past couple of years, I’ve had cases where senior advisors give me hope, have me send data to them, then nothing happens. They just drop the cases. There is no further communication, no information, nothing. They just forget me. On their end, they probably close the cases so they can juke the stats. And I don’t get that common request for feedback regarding my case, so they don’t get negative feedback.

In one case, I was having battery issues on a MacBook, which dragged on and on, as it was hard to figure out exactly what was happening. I eventually traded that MacBook in to buy a new MacBook Pro, because it wasn’t worth my hassling with Apple’s support any more.


And that’s the general result of my contacts with AppleCare. They “consult with engineering,” promise to call back, and never do.

I will second that I never seem to get the request for feedback when my issue wasn’t resolved.


Update (2019-06-20): Wojtek Pietrusiewicz:

Same here. No fix = no email asking me to grade them.

Nils Nilsson, RIP

Yann LeCun (Hacker News, Andrew Ng):

Nils Nilsson passed away.

He is best known for the invention of the A* algorithm for path finding, and for his leading role in the Shakey project at SRI, one of the first mobile robots with visual perception and trajectory planning....

Bob Nystrom:

There’s a good chance you’ve never heard of him because he didn’t stick his name on an algorithm. But, if you’ve ever made or played a videogame, you have benefitted from his work. A* is the foundation of most enemy behavior in games.

Fangyu Cai:

Nilsson was the first Kumagai Professor of Engineering (Emeritus) in Computer Science at Stanford University, and his contributions to search, planning, knowledge representation, and robotics have been long respected and broadly applied. In his twenty-three years with Stanford’s Artificial Intelligence Center Nilsson worked on statistical and neural-network approaches to pattern recognition, co-invented the A* heuristic search algorithm and the STRIPS automatic planning system, and co-directed work on the integrated mobile robot, SHAKEY.

See also: Story of A* and STRIPS by Nils Nilsson.

Google’s Response to Edge Chromium

Tom Warren:

We understand that Google doesn’t have a block list for Google Meet, rather an allow list, and that Google should be supporting Meet on the new version of Edge very soon. Microsoft’s latest version of Edge initially worked before it switched to a new user agent string, and Google Meet stopped working. There might have been genuine fears about Chrome-only sites only a year ago, but it seems the worries about Google blocking out the new Edge are just fears, for now.

Tom Warren:

Google has added “unsupported browser” warnings for Edge Chromium on Google Docs


Lobbying Against Right to Repair

Jason Koebler (via Kay-Kay Clapp, Hacker News):

In recent weeks, an Apple representative and a lobbyist for CompTIA, a trade organization that represents big tech companies, have been privately meeting with legislators in California to encourage them to kill legislation that would make it easier for consumers to repair their electronics, Motherboard has learned.


The lobbyists brought an iPhone to the meetings and showed lawmakers and their legislative aides the internal components of the phone. The lobbyists said that if improperly disassembled, consumers who are trying to fix their own iPhone could hurt themselves by puncturing the lithium-ion battery, the sources, who Motherboard is not naming because they were not authorized to speak to the media, said.

The argument is similar to one made publicly by Apple executive Lisa Jackson in 2017 at TechCrunch Disrupt, when she said the iPhone is “too complex” for normal people to repair them.


Though Apple hasn’t publicly talked much about repair in recent months and years, Motherboard reported in March that Apple has quietly approached independent repair companies with a new program called “Apple Genuine Parts Repair,” which would allow a select few companies to purchase repair parts from Apple with few restrictions. The slides associated with the program, obtained by Motherboard, suggest that Apple could comply with right to repair legislation without much burden.

Rory Prior:

Apple’s stance against making hardware user repairable seriously negates all their ambitions towards being a ‘green’ company. Recycling hardware for raw materials is hugely wasteful (in the rare instances it even happens) vs. extending useful life.


Update (2019-06-03): Nick Heer:

I find it frustrating that Apple — and others — are working so hard to kill legislation rather than trying to find a middle ground closer to what they’re already doing. There are certainly components in a highly-miniaturized device that would not be sensible for most users to repair or replace themselves — though I do think battery and screen replacements should be doable by customers. (And they are, by the way; I have done both for friends’ devices.) Of course, it is less freeing that so much of our computing these days is obfuscated and less welcoming to tinkering, but that may be a price we must pay to have devices that feel less like an assemblage of parts.

Still, I can see nothing but good for users in helping third parties get the right tools and parts to do these repairs.

Mark Munz:

I think the repairability (and increased longevity of hardware) should be part of report on environment.

Apple should not fear their computers lasting a long time. People will upgrade BECAUSE OF THAT REASON.

Wednesday, May 1, 2019

Apple’s Q2 2019 Results

Jason Snell:

Apple’s quarterly results are in. The company posted revenue of $58 billion, down 5% from the same quarter a year ago. iPad revenue was up 22% and Services revenue was up 16%, but Mac revenue was down 5% and iPhone revenue was down 17%.

We’ve got lots of charts below, as well as a transcript of CEO Tim Cook and CFO Luca Maestri’s conference call with financial-industry analysts.

John Gruber:

At 20% of the company’s revenue, Services now accounts for more revenue than Mac and iPad combined.

I don’t see how this is good for the quality of the products or, ultimately, for customers. The continual notifications and extra screens to tap through are like the laptop stickers that Steve Jobs hated, and they’re just the smallest example of how the focus on services is shifting the company’s attention and priorities.

Tim Cook:

For our Mac business overall, we faced some processor constraints in the March quarter, leading to a 5 percent revenue decline compared to last year.

This seems like an odd comment, unless it’s just intended to lay more groundwork in Apple’s case for ARM. Are Mac buyers really that worried about processor speeds rather than, say, keyboards? And if slower processors are the problem, isn’t that mostly self-inflicted?

See also: Dave Girouard.

Previously: Apple’s Q4 2018 Results.

Update (2019-05-02): John Gruber (tweet):

I asked an Apple source last fall why it took so long for Apple to release the new MacBook Air. Their one-word answer: “Intel.”

Jeff Baxendale:

I know there’s not going to be a switch given impending ARM Macs, but would have been nice to just have Ryzen Macs instead of complaining about Intel.

They’re a way better deal, nobody buys for “Intel Inside”, and then maybe the integrated GPUs wouldn’t be total garbage 🤷‍♂️

Update (2019-06-03): Kevin Bartlett:

Just read @gruber’s post about Intel constraints on processors holding back Apple. It’s holding back all PC sales. We use Dell at work and have had a month or longer wait times on laptops because Intel can’t get chips to them either.

Microsoft’s Resurgence


Microsoft Corp. today announced the following results for the quarter ended March 31, 2019, as compared to the corresponding period of last fiscal year:

  • Revenue was $30.6 billion and increased 14%
  • Operating income was $10.3 billion and increased 25%
  • Net income was $8.8 billion and increased 19%
  • Diluted earnings per share was $1.14 and increased 20%

As someone who doesn’t follow Microsoft that closely, I’m impressed with how they have turned things around—and how quickly. It seems like they have a plan that makes sense and are executing well.

Tom Warren (Hacker News):

Microsoft has become the third US company to pass a market cap of $1 trillion. The software giant passed the milestone briefly today after a jump in stock price today following strong fiscal Q3 earnings. Microsoft joins Apple and Amazon in hitting the $1 trillion valuation ahead of rival Google.


Microsoft’s latest earnings also revealed that the three main buckets the company splits its businesses up into are all doing well and roughly contributing the same amount of revenue this quarter (around 30 percent each).

  • Office, LinkedIn, and Dynamics = $10.2 billion in revenue
  • Azure cloud, server products, and enterprise services = $9.7 billion in revenue
  • Windows, Xbox, and Surface = $10.7 billion in revenue

Bryan Beal:

Microsoft’s conversion of Office to a ubiquitous enterprise cloud service is truly impressive.

Remember when everyone said Google Apps would “take over the Enterprise”? I laughed back then. Now it’s all but impossible. Google missed the chance.

John Gruber:

One amusing side note: The press release was obviously written in Word and exported to HTML. Just look at the source.

Ben Thompson:

The critical breakthrough was three-fold, and, as it so often the case, the three break-throughs were really about the same existential question — whither Windows:

The most important factor that made all of this possible, though, is that for all of the disruption that the enterprise market has faced thanks to the rise of software-as-a-service (Saas), Microsoft was remarkably well-placed to take advantage of this new paradigm, if only they could get out of their own way.

A contrary take:

From revenues as well as profit perspective Ballmer actually grew Microsoft more than Nadella. Market just decided not to reward that. Current growth centers including Azure, Surface etc were all started and championed originally by Ballmer. It was Ballmer who was willing to pour in investment like crazy in Hololens as well Bing. On the other hand, Nadella has failed to add single new product in Microsoft's portfolio during his half decade as CEO. Microsoft today has simply no presence in home automation, smart assistants, wearable or self-driving markets that have emerged during past 5 years. Nadella has literally missed boat in every single new category that has came around during his time. All the while its rivals have moved fast and picked up top spots in these new markets. Windows revenues is still falling like crazy and obviously there is no Smarthone story from Nadella yet.

The only thing that is compensating all these troubles is cloud and that too had been hazy on actual utilization. The engineering execution in Azure begs a question about how much worse it can get. Out of all providers, Azure literally has been the least impressive from technical standpoint in everything from UX to availability to features to documentation to API design. Once cloud market saturates and race to bottom ensues, Microsoft could have big trouble in maintaining current revenues and profits due to lack of new products. It will take few quarters before stock market reacts but all of these same people praising Nadella right now would suddenly come around and brand him the worst CEO in history as soon as stock dips.

Update (2019-07-23): Charlie Bilello:

Microsoft was the largest company in the world back in 2000. Then it suffered a 70% drawdown over the next 9 years to its low in March 2009. It did not surpass its 2000 high until 2014, 14 years later (total return). Today it is once again the largest company in the world.

TextEdit Deletes Original File Even When You Cancel

Chris Hamady:

Unbelievable...why in heaven’s name does Apple allow TextEdit to modify files EVEN IF the user CANCELS the save command. This video was just made on Yosemite, but I’ve also confirmed that TextEdit on Mojave does this as well:  … Notice html changes to rtf.

I’m interested in your take on this. Should any app on Mac OS have the ability to change a file format/type without a user saving the change?

CM Harrington:

This whole thing is probably an extension of autosave… and why it takes forever to close a file without changes you’ve made even if you have autosave off (I think it’s deleting all the SQLite rows).

Ben Szymanski:

It’s really hard to trust the system auto save functionality with these UX oversights. It was rough in Lion and it’s gotten maybe(?) marginally better since then.

I think it’s gotten worse with Preview.

Howard Oakley:

The real bug is in older macOS, where that second dialog doesn’t do what it claims. But the whole behaviour is unnecessary: TextEdit is going out of its way to delete your original HTML document when there’s no need at all. It does that because whoever implemented this behaviour didn’t understand macOS (or iOS for that matter).


For many years, Apple used TextEdit as exemplary code for macOS developers to see how it’s done. The last time it did this was seven years ago, in early 2012, since when I can only presume that TextEdit has gone steadily downhill and is now too embarrassing to release in source form. Like so many other standard tools in macOS, TextEdit is another festering sore on the rump of Apple’s engineering indolence.


Folder Access and Inconsistent App Review

Matthias Gansrigler:

It’s the typical case.

A feature that was approved with a previous build suddenly is not allowed anymore.

I bet if I remove this feature as requested, I’ll get rejected again, because Yoink is able to install a (macOS Mojave) Quick Action (which was also approved before).


2.4.5 Apps distributed via the Mac App Store have some additional requirements to keep in mind:

(i) They must be appropriately sandboxed, and follow macOS File System Documentation. They should also only use the appropriate macOS APIs for modifying user data stored by other Apps (e.g. bookmarks, Address Book, or Calendar entries).

All he’s trying to do is let the user click a button to install a PDF service. You’d think that would be allowed, since the app is sandboxed, the installation is happening due to explicit user request, and it prompts to allow access to the PDF Services folder. As far as I can see, the documentation doesn’t say not to do this. There is no API for installing PDF services, so the only alternative is to put up some instructions and ask the user to do it manually (which is what I had to do for EagleFiler). What’s the point of having the entitlement if you aren’t allowed to actually use it? Or, rather, how can something so basic not be handled consistently by App Review?

I’ve heard similar stories from other developers. And when I’ve asked whether certain designs/features would be allowed for my apps, I could only get perfunctory responses saying that I needed to follow the guidelines and would have to develop the feature and submit the app before finding out whether it would be acceptable.


Plans for Third-Party Marzipan Apps

Steve Troughton-Smith:

Are any iOS developers ready to commit to bringing their apps to the Mac via UIKit publicly? Any Mac/iOS developers preparing to sunset their existing Mac app for its iOS variant? I aim to go all-in on Marzipan with at least four apps on day one, one replacing a Mac version

Marco Arment:

It’s hard to say with 100% certainty since we don’t have concrete info and released tools yet, but I plan to ship Overcast as a Marzipan app on day one if I can.

Kyle Howells:

I intend to port several of my personal utilities and 2 as yet unreleased in progress iOS apps to the Mac if marzipan is good enough.

Only one of those was ever likely to see an AppKit version.

Erik Schwiebert:

The really interesting thing will be what the LargeCo’s do with their apps. I don’t yet know what we (MSFT) will do with Office; there’s a lot of code shared between Mac and iOS but much is very different. Multiple windows, file management, app/suite integration, sandboxing, etc.

Peter Steinberger:

Pretty likely that we bring @pdfviewerapp over to the Mac. After all the prototype last year already worked great and there’s definitely a market.

Greg Pierce:

Regardless of what technical aspects you have uncovered that make you bullish on Marzipan, it would be reckless for anyone who does this for a living to commit to shipping on it until we hear how the business end of this transition is going to work.

Mike Piontek:

I’ve spent 2 years working on updates that include big changes to my Mac app, so I’m not in a rush to throw that out… but If I have to for features like Siri Shortcuts I’ll consider it. I was previously assuming I’d want to wait a couple years, since this will require 10.15+.

Pádraig Kennedy:

I’d love to bring Castro to Mac some time, but I’m pessimistic about Marzipan so if I was doing it this year, I think I could make something more Mac-like using AppKit 😬

Wooji Juice:

Not going to commit to something sight-unseen, but strongly interested in creating a Mac version of Ferrite (and maybe 1-2 other apps) using Marzipan. Will have to see what gets released, how stable it is, & what issues there are making quality non-shovelware Mac apps with it


We’re excited to bring proper manual controls to MacBook and iMac webcams and intend to ship early April next year

Christian Selig:

I’d love to bring Apollo to the Mac, if only to scratch my own itch.

Markus Müller-Simhofer:

It really depends on what Apple is doing. If Apple uses Marzipan for it‘s productivity apps (Mail, iWork) we will also switch. I always disliked how Carbon apps felt. I don‘t want to be one of the apps that „feels“ different than all the other apps.