Archive for April 2, 2020

Thursday, April 2, 2020

The Case for Postponing macOS 10.16

John Martellaro:

We’re all struggling to stay safe and secure in macOS 10.15 Catalina or even 10.14 Mojave. And since new apps are being pressed into service for working at home, the last thing we need is a new version of macOS with its traditional teething pains—especially in post WWDC betas. We don’t need any rugs pulled out from under our collaboration apps. Let’s focus on stability and security until the pandemic has completely dissipated.


Our developer heroes have been complaining for years that they just can’t keep up with the fast-evolving structural and security changes in macOS every 12 months. A six month delay in 10.16 would provide critical time to iron out the kinks in their apps due to changes in Catalina. Not to mention relaxing stress on the developers due to concern for their family’s health.

The other big reason: allowing more time to polish Catalina.


Update (2020-04-15): Colin Cornaby:

I’d prefer to see macOS (and iOS) move off the yearly schedule. But we’re also now dependent on these major upgrades for significant SwiftUI advancements.

It’s less maintainable but I kind of wish SwiftUI started as a standalone library, like the Swift Standard Library.

Kyle Howells:

If every release is buggy for 6 months then with a multi year release cycle they are mostly stable. With a yearly release cycle everything is a perpetual mess.

Norbert M. Doerner:

I will skip 10.15.x completely. Far too many bugs and problems. Unbelievable.

Opening Large CSV Files in Numbers 10.0


Numbers 10.0 is optimized for the best possible performance when working with large data sets.

Numbers 10.0 features improved performance for data import, export, and charting. In Numbers 10.0 on iPhone, iPad, iPod touch, and Mac, you can create, edit, and view spreadsheets with tables that contain up to 1,000,000 rows and 1,000 columns. In Numbers for iCloud, you can create and edit spreadsheets with tables that contain up to 65,535 rows or 256 columns, and open and view spreadsheets and tables larger than that.

Previously, the Mac and iOS versions only supported 255 columns. Alas, 1,000 columns still isn’t enough for some people.

To check out Apple’s performance claims, I tried opening a 34 MB CSV file. Numbers 10.0 took 47 seconds and used 2.18 GB of private memory. Microsoft Excel 16.36 took 5 seconds and used 220 MB of private memory.

So Numbers took 9.4 times as long as Excel, which isn’t great. But it’s an improvement over my test of Numbers ’13 and Excel 2011, where Numbers took 102 times as long as Excel.

See also: MacRumors.


altool 4.01

Rosyna Keller:

This is a tweetstorm discussing the new features of altool 4.01 (included with Xcode 11.4), changes to the notarization documentation, and a change to notary service requirements, with the far majority coming directly from user requests


All versions of altool now default to --transport HTTPS, which is much faster and doesn’t require UDP to be unblocked at the firewall.


There’s now an explicit note on what happens to plugins if they’re quarantined but not notarized on a user’s computer box.

Specifically, they’ll have to allow the quarantined plugin in the Security & Privacy preference pane.


The bottom of the Customizing the Notarization Workflow document (see above) now very explicitly gives information on how long notarization can take after an upload is completed and steps you can take to reduce notarization time.


The biggest change is that proper entitlement format is now enforced in the notary service and on macOS 10.15.4 and later.

They must be properly formed ASCII-encoded, BOM-less XML files. Xcode enforces that for you, but the codesign tool doesn’t.

Edovia thinks that macOS 10.15.4 also changed the way certificates are validated:

The problem is that one of our signing certificate expired today. Normally, this would only prevent us to submit an update until we generate a new certificate but it seems like Apple changed the rules with macOS 10.15 where an app that contains an expired certificate may refuse to launch.

However, I am able to launch other apps that were signed with certificates that have expired. It only matters that they were valid at the time of signing.

Keller thinks the crash at launch may be due to the stricter validation of the entitlements plist, and it looks like the same issue affected KeePassXC.

This was an unfriendly change, suddenly crashing apps that had previously been accepted by Apple’s own tools, with no warning period. Customers can’t just auto-update to a version that fixes the problem because the system crashes the app before it can check for updates.


Swift on Mac OS 9

Jordan Rose (tweet, Hacker News):

It’s April 1, and that means it’s both April Fools’ Day and the anniversary of the founding of Apple Inc. While this year is a sober one due to current events, I think a lot of people still appreciate what people are creating and sharing to keep spirits up, whether that be music or art or…impractical programming projects. And while pranks on April Fools’ seem less and less fun, obvious jokes and whimsy, not at anyone’s expense, are still something I believe in…and even better if they actually work.

Last year I implemented the world’s best code visualizer. This year I decided to seriously attempt something that I’d thought about in the past: getting a Swift program to run on Mac OS 9.


Fortunately for me, I’m not the only one interested in building Classic apps on modern macOS. At some point I found about the mpw project: an emulator specifically for running Apple’s Macintosh Programmer’s Workshop tools.


Was it possible that AIX and Classic Mac OS used the same calling conventions for their procedures, and they could just interoperate without any extra work?