Wednesday, March 20, 2019 [Tweets] [Favorites]

AirPods 2019

Apple (Hacker News, ArsTechnica):

The new Apple-designed H1 chip, developed specifically for headphones, delivers performance efficiencies, faster connect times, more talk time and the convenience of hands-free “Hey Siri.” AirPods come with either a standard charging case or a new Wireless Charging Case for convenient charging at home and on the go.

Hey Siri support is a big deal because, if you don’t have to dedicate one of the two tapping actions to Siri, you can use it for a forward or backward skip. I don’t think this is worth buying new AirPods for, and Qi charging seems much less useful here than for a phone, but I think many original AirPods owners are going to be forced to upgrade within the next few years simply because of the aging batteries. I haven’t yet had problems with listening, but recently I’ve been getting less than an hour of talk time. AirPower is still not available, so Apple hasn’t said whether the new case will work with it, though I would assume so.

Joe Rossignol:

The new AirPods are available to order on Apple.com and in the Apple Store app starting today with a wired charging case for $159, the same price as the original AirPods, and with a wireless charging case for $199. Both options will be available at Apple Stores and select resellers starting next week.

The wireless charging case is also available individually for $79 for use with both the first-generation and second-generation AirPods. An LED light indicator located on the front of the case shows the charge status at a glance.

Ryan Jones:

BTW, very nice launch strategy for AirPods 2:

1) pods + wireless case
2) pods + normal case
3) just wireless case

Super flexible and conscientious of user needs. Could have easily been 1 only.

Tanner Bennett:

It is cheaper to buy brand new AirPods and the new case separately, then sell the old case, than it is to buy the new AirPods outright

Zac Cichy:

I just wanted a charging case that isn’t going to collect metal particles and stain the inside. Maybe next time!

Ish Abazz:

Is there any way to trade in or recycle old AirPods? I’m betting hundreds of thousands of them will be replaced soon.

Mark Gurman:

These AirPods were initially planned to go on sale last year. They’re also working on a future version with noise-cancellation and water resistance. Those were planned for later this year, but would now imagine that’s for 2020.

iMac 2019

Apple:

Apple today updated its iMac line with up to 8-core Intel 9th-generation processors for the first time and powerful Vega graphics options, delivering dramatic increases in both compute and graphics performance.

[…]

The 21.5-inch iMac now features 8th-generation quad-core, and for the first time 6-core processors, delivering up to 60 percent faster performance.

The 27-inch iMac now for the first time features up to 9th-generation 6-core and 8-core processors, delivering up to 2.4 times faster performance.

It’s great to see an update, and without a price increase, but I’m not sure this is what people were hoping for. The case seems to be unchanged, and so likely doesn’t address the dust or thermal issues.

There’s no T2 support and, if Apple keeps the same schedule, that means two more years to wait. I understand that the T2 might be too expensive for a lower end model, and not applicable to the hard drive configurations. But for a 27-inch iMac that’s $1,899–$5,249 with an SSD? Even the $799 Mac mini has one.

Then there’s the mystery of no SSDs in any of the base configurations. Sure, have an optional Fusion Drive for those who don’t want to pay for a 2 TB SSD. But the default configuration should be an SSD. They really are not that expensive to buy third-party, and Apple must get better deals than we do. Is this the case of perfect being the enemy of good—insisting that all Mac SSDs must be high-end ones, even though cheaper SSDs are still way better than hard drives? Or is it just all about margins?

Lastly, I wonder whether Apple planned to hold out on SSDs for so long. If the standard configuration is going to have a hard drive, then the case should be designed for it. But since 2012 the 21-inch iMac has only supported slow laptop hard drives. The case, the OS, and the file system were not optimized for hard drives, and yet that’s what the default configurations include.

Upgrade:

After nearly two years, Apple has released new iMacs, and Jason has an exclusive interview with Apple’s iMac product manager, Colleen Novielli.

Jason Snell:

The $1099 base model non-Retina iMac remains unchanged, the desktop equivalent of the $999 MacBook Air—an old model anchored to a low price.

[…]

What this means is that these new iMacs have closed a bit of the gap between the highest-end iMac and the lowest-end iMac Pro. You’ll need to pay extra in configurable options, but the highest-end eight-core iMac should creep close to iMac Pro territory in terms of processor and graphics performance.

Of course, all that performance comes in a familar shell—it’s the same iMac cooling system as before, which means if you stress out the iMac you will hear the fans. My friend Stephen Hackett ended up switching from a high-end 5K iMac to an iMac Pro in order to get a computer that was silent under heavy load, thanks to the iMac Pro’s superior (and quiet) cooling system.

Marco Arment:

Nice to see an iMac spec-bump, finally.

Shame they haven’t included the T2 and its huge security benefits. I was hoping to see all Macs with T2 chips by the end of the year.

Maynard Handley:

So option 2 is use cheap low-end slow flash and driver. Personally that’s the path I would take. Sure, there’d be mocking about the slow flash, but IMHO it’s a better tradeoff than HD!

Paul Haddad:

The 6 core CPU is non hyperthreaded, which is crazy on a $2300+ machine.

Wojtek Pietrusiewicz:

iMac early 2019. 1TB SSD = $700. Samsung 2TB NVMe M.2 = $500.
Samsung 1TB 970 Pro = $350. 970 Evo = $250.

Colin Cornaby:

The weird thing is the Vega GPUs Apple is using... don’t exist? If they’re custom slower versions of real Vega, that’s a big bummer. Still not shipping a high end consumer GPU on the iMacs?

I’d guess it’s a power and heat thing. Vega requires a good amount of power and runs hot. Unless they really wanted to up the power supply in the iMac full Vega might not be an option.

Ian Spencer:

It took two years for this? It’s a $450 upgrade to not have a three year old GPU that was slow even when it was new. And that upgrade isn’t even to the mid-range Vega 56. Yikes.

John Gruber:

This is an industrial design that deserves to last years. It still doesn’t seem possible to get displays of this caliber at these prices in the PC world — or at any price for 5K in an all-in-one.

Llyod Chambers:

Why would you go with 32GB memory from Apple, when it costs less to install 64GB?

Howard Oakley:

The one feature about them which concerns me is their continuing use of rotating hard disks, alone in the cheaper configurations, or as part of a Fusion Drive if you need more and faster storage. There are two issues which you need to consider: using the APFS file system on a hard disk, and the Fusion Drive itself.

[…]

APFS works on hard disks, and has done so in release form for around a year now, but it hasn’t been designed to get the best out of them, in contrast with HFS+. Although I haven’t been able to find good performance comparisons, all those who I know who use APFS on hard disks consider its performance to be relatively poor.

[…]

If almost all data read from and written to the hard disk in the Fusion Drive passes through the SSD as a temporary buffer, the SSD will see a great deal more write activity than would be expected for its size. […] Evidence from some with older Fusion Drives is that this can lead to worryingly early failure in SSDs, which appear to have aged much more quickly than would be expected.

Nick Heer:

Snell asked Novielli about the base-model iMacs that retain a spinning hard drive. She acknowledged that it’s a cost-based decision; I still think it’s indefensible. The drives Apple uses in the base-model iMacs, and even the Fusion Drives in the step-up models, don’t perform acceptably running Mojave. The base model iMac is simply not a good product and should be purchased by nobody, so it’s hard to see why it’s still available.

Tom Bridge:

And they also ship by default with old, slow 5400rpm hard disks that came to the marketplace in 2007 in 1TB capacities. When Hitachi released the first Deskstar with 1TB that year, at a whopping price of $399, they boasted a cost-per-GB of $0.40. Now you can have a SATA SSD for less than $0.25 per GB, and an M.2 SSD for $0.35 per GB.

Chance Miller:

Apple has also quietly lowered select upgrade costs. For the MacBook Air, Mac mini, and MacBook Pro, SSD upgrades are now slightly cheaper, while RAM upgrades for Mac Pro have also seen a price drop.

Previously:

iPad Air and iPad mini 2019

Apple:

Apple today introduced the all-new iPad Air in an ultra-thin 10.5-inch design, offering the latest innovations including Apple Pencil support and high-end performance at a breakthrough price. With the A12 Bionic chip with Apple’s Neural Engine, the new iPad Air delivers a 70 percent boost in performance and twice the graphics capability, and the advanced Retina display with True Tone technology is nearly 20 percent larger with over half a million more pixels.

Apple today also introduced the new 7.9-inch iPad mini, a major upgrade for iPad mini fans who love a compact, ultra-portable design packed with the latest technology.

It’s good to see the iPad mini updated after all these years. The new models look good, although I was hoping to see a lower end model with a reduced price. The $310 A10-based iPad, though a better tablet, is still more than double the price of comparably sized Android tablets. And, I’m sure it would confuse things, but I personally would want one without pencil support because I know I won’t use it, and so I would prefer the more oleophobic screen.

Joe Rossignol:

The new iPad Air is a lower-cost replacement for the 10.5-inch iPad Pro, which was priced from $649 prior to being discontinued today.

Tim Hardwick:

Apple says that with the new A12 Bionic chip, the iPad mini now delivers three times the performance and nine times faster graphics. Meanwhile the advanced Retina display with True Tone technology and wide color support is 25 percent brighter and has the highest pixel density (3 million) of any iPad.

Elsewhere, an 8-megapixel rear camera brings improved low-light performance and HD video recording, while the front facing camera has been bumped up to 7 megapixels for better-quality selfies and FaceTime HD.

The new iPad also benefits from the same Wi-Fi performance and Gigabit‑class LTE that’s built into the latest iPad Pro models, and retains the headphone jack found in previous iPad mini models.

Marco Arment:

The iPad lineup makes far more sense now than when there was a $500 price gap in the middle of it, most but not all could use Pencils, the Mini was ancient, etc.

Now, they’re all Pencil-able, they’re all A12 except the cheapest model, and all prices and sizes are well-covered.

Michael Love:

Interesting strategy here - I think many/most of us were assuming they’d try to reach out to the low end, but instead they’re basically putting a 2018 CPU in a 2017 Pro, taking away 120 Hz, and charging the standard-for-many-years $499 for it.

Francisco Tolmasky:

It is so weird that the iPad Air and iPad mini only support the old Apple Pencil. The iPad mini was my favorite incarnation of the iPad line when it came out, and I was considering getting one again, but I have no interest in needing two different kinds of iPad pencil.

Apple keeps creating and extending these arbitrary transition periods. The old Apple Pencil should be in the past. Instead we have an entire other generation with it now. This sucks for developers too who have to continue designing for old technology. Same with lightning ports.

John Gruber:

The new iPad Air isn’t based on the old iPad Air — it’s an update to the 10.5-inch iPad Pro. (It even works with the same cover and keyboard peripherals.) And the new Mini is really just a smaller version of the new iPad Air — they could have just called them both “iPad Air” and had one be mini-sized and one regular-sized, similar to how the two sizes of iPad Pro have the same product name. As far as I can see, there is no difference between the new iPad Air and iPad Mini other than size.

[…]

I am reliably informed, the inductive charging data port for connecting Pencil 2 on the latest iPad Pros is expensive enough to be prohibitive for the new Air and Mini.

The Dwindling Number of iOS Text Editors

Brett Terpstra:

Over the weekend I weeded out the dead apps on my iTextEditors comparison chart and was surprised to find that over 30 of the 90 editors on the list were no longer available. I figured a few would be gone, but a third of them had gone the way of the dinosaur.

Perhaps the cream has risen to the top and most people are settling on the leaders of the pack. Maybe there just isn’t that much money to go around in the iOS text editor market.

I’m still using Editorial, but it hasn’t seen many updates lately and still doesn’t work with iCloud.

Previously:

Friday, March 15, 2019 [Tweets] [Favorites]

Brief Examples of OmniFocus Perspectives

Gabe Weatherhead:

The “Changed” perspective is the best kind of “undo” screen. If I accidentally mark a task or project as complete or if I mistakenly changed something that removes the task from my view I go to this perspective to fix it. It shows everything in my OmniFocus sorted by modification date.

With enough perspective trickery I even create project outlines that are otherwise not possible in OmniFocus. It’s the double negative in this perspective which removes all of the tasks from the view and leaves me only with the nested projects and folders to browse.

eSellerate Shutting Down

I received this in an e-mail from eSellerate:

Thank you for being a loyal eSellerate customer over the years; we sincerely appreciate your business. Due to evolving business needs, Digital River will be retiring the eSellerate platform on June 30, 2019. As a result, commerce starting July 2019 will run through our premier e-commerce solution, MyCommerce Share-It.

We will start proactively upgrading clients to the new platform starting April 15. We recommend you move your business even before that to start immediately enjoying the modernized features and functionality of MyCommerce Share-It, including:[…]

We’ve created tools for you to use to make this upgrade simple, fast and efficient; no heavy lifting on your part.

I primarily use FastSpring these days, but I like to have a second store as a backup. The new admin site let me log in with Chrome and Firefox but not Safari. The migrator copied my basic product information but not the icons. I haven’t yet been able to test the license generation because you need to e-mail them to get an account-specific test credit card number in order to place a test order.

Previously:

Apple Responds to Spotify

Apple (Phil Schiller, MacRumors, Hacker News, Reddit):

And developers, from first-time engineers to larger companies, can rest assured that everyone is playing by the same set of rules.

I don’t think anyone actually believes this. If a small developer did what Uber or Facebook did, they would have gotten more than a slap on the wrist. Meanwhile, certain apps that compete with Apple seem to get extra scrutiny. It’s also important to remember that the App Store guidelines are not laws passed by a democratic process with any pretext of fairness. Rather, Apple unilaterally makes the rules to advance its interests, and it changes them as necessary to thwart competitors.

We want more app businesses to thrive — including the ones that compete with some aspect of our business, because they drive us to be better.

Yet Apple specifically disallows sideloading apps and competing stores, which would drive the App Store to be better. And the digital content businesses like books and music—where Apple competes—are the ones where Apple sets the fees to disadvantage competitors. The built-in advantages of bundling and integration are not enough for Apple to compete; it forces companies like Amazon to make apps like Kindle harder to use. The businesses not competing with Apple—like Uber—are the ones that don’t have to “contribute” to the App Store.

After using the App Store for years to dramatically grow their business, Spotify seeks to keep all the benefits of the App Store ecosystem — including the substantial revenue that they draw from the App Store’s customers — without making any contributions to that marketplace.

Today’s Apple believes that customers have no inherent right to install software on their devices, and further that any revenue related to using such devices owes a rent to the platform vendor. This is like Dixon Ticonderoga making rules for what you can write with your pencil and then demanding a cut if you sell any of your work.

The only time we have requested adjustments is when Spotify has tried to sidestep the same rules that every other app follows.

I’m not sure whether this is true, but, again, the rules were specifically written to disadvantage competitors like Spotify.

The only contribution that Apple requires is for digital goods and services that are purchased inside the app using our secure in-app purchase system.

And they’ve written the rules to make it really difficult to use other purchase systems because they know that IAP couldn’t compete on a level playing field. Customers have to suffer through a worse user experience because Apple refuses to charge a reasonable fee.

Damien Petrilli:

It takes some “courage” to use the 84% of free App as an argument, knowing most of those are the garbage and scam Apps which plague the App Store today.

Most companies NOT paying Apple are basically unethical businesses who farm data and violate privacy to earn money.

Meanwhile those trying to make a decent living with good Apps are hit by the 30% Apple tax.

Charles Perry:

From Apple’s response to Spotify: “We keep all our developers on a leash. It wouldn’t be fair to other developers to unleash just you. And really, shouldn’t you just appreciate what you’ve been given like all the other good dogs?” (I may have paraphrased.)

Dan Masters:

Disappointing to see Apple take the low road with irrelevant rhetoric. They’re using artists as their political football, with the sole purpose of swaying popular opinion & setting a narrative.

This is the same company that wasn’t going to pay artists for streams during trials.

Apple justifies their ‘fair’ tax on devs, yet has happily paid much less than their fair share of taxes where they operate, while benefiting from each nation’s respective resources & markets.

I guess Apple is more equally ‘entitled to their business model’ than others.

David Barsky:

“Contributions to that marketplace” is a funny way of saying “we’re mad that you’re not rolling over and letting us double-dip into revenue we have no business touching.”

Manton Reece:

Apple likes to brag about how much money they’ve paid to developers, but they leave out how much they’ve kept for themselves: about $50 billion. To Apple, they are doing us a big favor by letting us ship iOS apps.

[…]

And yet in the previous quote, Apple says that 84% of apps pay nothing and they are fine with that. Uber pays nothing to Apple. Games with ads pay nothing to Apple. Why is it wrong for Spotify to also want to limit how much they pay to Apple? The line Apple has drawn around in-app purchase is arbitrary. They could just have easily restricted Uber accepting payments, or banned third-party ads.

Nilay Patel:

Apple put out a response to Spotify’s antitrust campaign today, and it is just extremely weird. Especially this part, where they repeat this inaccurate “suing songwriters” talking point that honestly makes no sense.

Owen Williams:

Apple repeatedly says that what Spotify is doing is “wrong” but then just goes ahead and makes provably untrue statements up - in order to make its approach look better, even though Apple has historically done the EXACT SAME THING TO CREATORS.

Dan Masters:

From just a few weeks ago!:

“Apple changes its iPhone photo contest page to say it will pay winners, after originally stating ‘prize has no cash value’”

Owen Williams:

I find myself reading the long letter, which tries to rebuke each of Spotify’s points, thinking that the PR doublespeak is incredibly eloquent. Apple avoids touching on any of the issues in the ecosystem, while sometimes unintentionally reinforcing Spotify’s point: it controls a broad swathe of the ecosystem’s destiny, with little oversight.

[…]

iTunes decimated the competition in the music purchasing business and ended up with a monopoly that was hard to compete with because artists had little other choice in where to sell their music. Then, it started exerting power over artists: threatening to remove them for not signing new contracts, and eventually wound up in court over price fixing after artists and competitors complained. Artists didn’t really like the service either, because it paid so little and restricted most of its music in the earliest days to Apple devices like the iPod.

[…]

Spotify isn’t demanding anything different: they’re demanding the same business model as Apple Music, and the same rules applied to them as everyone else on the platform… including Apple. Attacking Spotify for making “ever-smaller” contributions here is contrite, because their margins are squeezed by Apple’s price pressure.

Previously:

Update (2019-03-15): Jeff Johnson:

Apple has painted itself into a corner with its newer “services” strategy, because the Spotify case now becomes an existential threat to Apple’s business model. Whereas it wouldn’t have been a big deal under Apple traditional strategy of selling insanely great products.

Ben Thompson:

I believe Apple’s App Store policies are per se illegal tying — specifically, iOS to App Store in-app purchase. Spotify, though, has a stronger case than anyone, because it is not only subject to Apple’s App Store policies but also competing directly with Apple Music. It will be very difficult for Apple to argue that it is not attempting to extend its position in smartphones into a dominant position in digital goods when that extension is rather concretely framed as a direct benefit to Apple’s own offering.

Via Rene Ritchie:

The “if you don’t like App Store terms, you can just sell through the web or Google Play Store”, which a lot of people are going to respond with, is the Walmart to Target argument, which is poorly fitting at best.

[…]

Spotify has a real chance on the facts, at least on the core counts. The EU views anti-trust as a way to ensure competition, up to and including ridiculous things like forcing Microsoft to include browser ballots.

But instead of being candid about that, and the general policies Spotify sees as unfair, and about the harm it believes those policies do to its business, they kinda play the victim card in a way that seeks to conflate or distort their harm onto us, which just comes off as, I don’t know, smarmy.

[…]

And here’s where it gets a tad ironic: The same is true for Apple. Forget Apple Music. The App Store is really just a nicely packaged re-sale of other people’s apps.

Jesse Squires:

Apple’s response to Spotify claims “everyone is playing by the same set of rules.”

This is a lie. Completely untrue.

I worked on iOS at Instagram for 2 years. We (and FB) absolutely got special treatment in a number of ways. Especially for app reviews.

Oscar Apeland:

There is a clear difference in how I’m treated by app review with my new startup compared to when I developed a 150k+ MAU app

David Pierini:

Cash-rich Apple is reportedly not paying the artists who share their talents for the in-store ‘Today at Apple” sessions.

Rather than money, the session leaders could select from three of the cheaper Apple products.

Steve Troughton-Smith:

Real talk: Apple (+ all the other App Stores) should have independent, 3rd-party oversight; I’m sure Spotify would have no trouble finding devs who have battled unjust/capricious rejections & suffered a chilling effect on innovation. Phil Schiller should not be final arbitrator

As much as the media coverage will be they said/they said schoolyard nonsense, there is a real issue here, and it’s bigger than Apple’s “30%”

The real “30% tax” is the apps and categories of apps we don’t and will never have, because they were nope’d from on high as they didn’t fit into the App Store box or raised uncomfortable questions re Apple’s business models. There is still no Steam Link app on the App Store

James Owen:

Apple claims that Spotify would not be the business they are, without the app store.

What would Apple be without the iPhone? How could there be an iPhone without Qualcomm IP?

Apple charges 30%

QTL charges $7.50 on a iphone, and Apple says $QCOM is an extortionate thief.

Federico Viticci:

This part from Apple’s response to Spotify is somewhat misleading. There is no Siri domain for music playback that Spotify (or others) can use.

There are Siri shortcuts, which Spotify could add, but the experience is FAR from the native integration Apple Music has.

John Gruber (tweet):

What Apple should do is allow apps that opt out of IAP to explain that users need to subscribe or make purchases using a web browser, and allow them to link to their website from within the app (even if they’d be required to open that link in Safari, as opposed to an in-app web view).

Why in Safari? Why even in a Web view rather than in the app?

Thursday, March 14, 2019 [Tweets] [Favorites]

Dropbox Limits Free Plan to Three Devices

Juli Clover:

Dropbox users who have a free Dropbox account are now limited to using that account on a total of three devices, according to new information added to the Dropbox website and spotted on Twitter (via The Verge).

Dropbox says that as of March 2019, “Basic” users, which is the free tier, can add their account to three devices. Dropbox users who already have their account attached to more than three devices can keep them linked, but there will be no way to link additional devices when over the three device limit.

If you have a Mac, an iPad, and an iPhone that’s already three devices. I imagine this will accelerate the trend of people switching to iCloud Drive. I’ve been working towards that myself and keep Dropbox quit most of the time on my Mac, as its file change monitoring is disruptive.

Previously:

Update (2019-03-15): Brian Stucki:

I made the jump from Dropbox to iCloud Drive this year and it’s been really nice. If you really want to rid your Mac of the app itself, Transmit from @panic does a really nice job of logging into Dropbox for any shared folders you still need to access.

Clark Goble:

Obvious way around - multiple accounts and then share folders.

Peter N Lewis:

The problem with all these subscription products is all the companies want $10/month. If DropBox offered a $10/year plan (or even $20/year) they could probably make a fortune. Instead they just keep trying to drive away low volume customers. It is just not worth $120/year.

Tanner Bennett:

Its malicious, fake system dialog which attempts to steal your user account password so it can keep itself enabled in accessibility settings is also disruptive, among other things.

Kirk McElhearn:

Back around 2014-15, I took out a pro subscription with 1 TB, but there was no way I could make it worthwhile. I don’t need 1 TB, and even if I did, it wouldn’t fit on my Macs; I could put that much data on an external drive connected to my iMac, but now my MacBook Pro. (Yes, I know, selective sync; but I still don’t need that much storage.)

The problem is that Dropbox doesn’t have a low-priced, low-GB plan. I’d happily pay, say, $20 a year for 100 GB, because I am aware that I’ve been getting this service for free for many years. But I’m not spending $100 a year.

NetService NutHouse

Jeff Johnson:

I couldn’t reproduce the crash myself, so I did a bit of searching on the web, and I discovered the explanation on Stack Overflow. The function NetService.dictionary(fromTXTRecord:) is declared to return [String:Data], but when the TXT Record does not have the proper key=value format, CFNetwork inserts kCFNull in the dictionary where Data is expected. This causes Swift to crash.

In Objective-C, the method +[NSNetService dictionaryFromTXTRecordData:] does not crash. However, it still behaves badly, because it is declared to return NSDictionary<NSString*,NSData*>*, but the dictionary can contain NSNull instead of NSData, so your app could still crash if the code trusts the compiler and calls NSData methods on NSNull.

Needless to say, this bug is awful. It affects both macOS and iOS. Moreover, the bug has existed for more than two years, which is even more awful. Fortunately, developers can work around the bug. In Objective-C a workaround is easy, because we can just check the returned dictionary for NSNull values at runtime. In Swift, however, the crash occurs before we can check the dictionary, so we need to try something else.

He worked around it using the Core Foundation version of the method, which has a different signature and so bridges differently. But it seems to also work to disable the bridging by casting with as NSDictionary.

Previously: Swift Subclass of NSTextStorage Is Slow Because of Swift Bridging.

App Store Covers RSS Readers

Apple:

This story can only be viewed on the App Store in iOS 11 or later on your iPhone or iPad.

Brent Simmons:

The bummer about these articles is that the full thing can only be read in the iOS App Store. It would be nice if they actually appeared on the web, too.

I’d like the entire store to work in a browser.

Jeff Johnson:

And if only you could follow daily App Store features using some open internet format like... RSS?

Sketch Takes Venture Capital

Sketch (tweet):

When we started Sketch back in 2011, the design landscape was very different to the one we know now. Innovation had all but stopped and existing tools were not serving designers’ needs. We stepped into the market and broke it open, paving the way for a new wave of design tools, built on top of our open plugin system, and Sketch became the foundation of what design is today.

[…]

With that in mind, we are incredibly pleased to announce that we have raised $20 million in Series A funding from Benchmark. This represents our first capital raise since we started working on Sketch nearly 10 years ago and we’re sure you’re asking, “why now?

Simply put, this will allow us to serve your needs better, faster. Benchmark has been on this journey many times before with companies like Elastic, Twitter, Uber and Zendesk. With such an impressive track record, we think they’re the perfect partner to help us create and scale the best version of the Sketch platform.

They’re going to make Sketch for Teams and also a Web version.

Dan Counsell:

Ah crap. I fear this great app may be ruined over the coming years by external pressures from investors. Fingers crossed it works out.

Previously: What It’s Like to Take on Venture Capital Investment.

Wednesday, March 13, 2019 [Tweets] [Favorites]

Spotify: Time to Play Fair

Spotify (Hacker News, MacRumors):

Apple requires that certain apps pay a 30% fee for use of their in-app purchase system (IAP) – as is their prerogative. However, the reality is that the rules are not applied evenly across the board. Does Uber pay it? No. Deliveroo? No.

[…]

If we choose not to use IAP (the only payment option on iOS), Apple, in return, bars us from communicating directly with our customers who access Spotify via Apple platforms. Apple won’t let us share awesome deals and promotions — like 99c for three months of Spotify Premium. And we aren’t just talking about what we are allowed to do on the app. Worse yet, they don’t even let us email offers after you register your account, claiming we are circumventing their rules.

[…]

But where Apple thinks that our app doesn’t abide by their unilaterally imposed restrictions, it routinely rejects bug fixes and app enhancements that would improve user experience and the app’s functionality – leading fans to believe our app and tech abilities are sub par.

Spotify:

For Spotify to use Apple’s billing system (IAP) — giving our fans the opportunity to upgrade to Premium — Spotify and others now have to pay 30% of any subscription fees. Apple now prohibits buttons or links to any other external ways to pay. This is the first of many moves from Apple that would make it harder and harder for our fans to upgrade to Premium[…] We elect not to use IAP for a bunch of reasons, including the fact that giving up 30% was too much for us to keep our prices low for our fans.

[…]

Now that Apple has Apple Music, rejections of the Spotify app start becoming more and more common, and they even go as far as threatening to remove us from the App Store. Those rejections seem to coincide with our promotional campaign seasons[…] Now just having a “Learn More” button is enough to upset the Apple cart even though this is the first time we’ve heard of such a rule.

[…]

This time, we are rejected because of a campaign that makes reference to a Spotify Premium promotion (“get 3 months now for €0.99”), despite only directing users to a landing page with no info on where or how to purchase Premium (which Apple had allowed only a few months prior). In fact, Apple’s chief lawyer told us a year earlier that such a landing page was OK, but that didn’t stop the App Store from blocking our app for this reason

[…]

Apple Music sends the very type of promotional push notifications that it forbids its rivals to send

[…]

So we announce two podcast acquisitions we are super excited about, and all of a sudden Apple arbitrarily decides to prohibit use of its API to recommend podcasts to users

Federico Viticci:

I personally believe Spotify is right here, and that it’s time for Apple to open up their platform more and lower their App Store cut.

Think about it this way: is what’s good for Apple also good for consumers in 2019?

Marco Arment:

Take Spotify’s complaints and timeline with a grain of salt.

It’s really just three things:

- Apple’s 30% cut is high
- The rules around it are anticompetitive
- Spotify gets rejected a lot for trying to evade them

Everything else is a bit bullshitty.

Many of Spotify’s complaints are ascribing malice to limitations of young products.

Any developer, Watch or HomePod owner, or Siri user can tell you that Spotify wasn’t the reason Watch podcast apps sucked before watchOS 5 or that SiriKit and HomePod have no audio intents yet.

There’s no Spotify for HomePod, but you can run it on a Mac SE/30.

nevir:

Apple did the same thing to Kindle for iPhone back when it launched.

We submitted the original version to Apple with a fully functioning store built into it—and were then stuck in submission limbo. Two weeks later, Apple announces their intent to build in-app purchasing.

The kicker: Apple wanted a 30% cut of every book sold on the store …and at the same time, had negotiated with book publishers that the publishers MUST sell all books at a 30% margin on ALL stores if they want to sell their books via Apple’s own ebook store. Aka we couldn’t sell books at an increased cost, even if we wanted to. We would have had to take a loss on every purchase.

In the end, we had to remove all of the store functionality from the app, and weren’t even allowed to link people directly to the web store for purchasing (or even instructions for purchasing).

Previously:

Update (2019-03-15): Peter N Lewis:

Forcing developers to use IAP, and forcing people not to offer a non-IAP purchase, is not a limitation, it is a deliberate financial move available to Apple only because of the lock-in on the iPhone App Store.

McCloud:

My $0.02: this will never happen unless something causes captive users to start switching away from Apple in significant numbers (highly unlikely) or there’s government intervention. If you see a third way out of this please let me know.

Felix Krause:

See company politics in action:

1) Use your iPhone to google a book
2) Tap on the Amazon link
3) Amazon properly deep links and opens its app
4) Amazon app: “Oh wait, if we sold a book now, Apple wants its cut, noooope, not with us”
5) Amazon app opens Safari again
6) Tadaaa 🎉

scott:

See the results of Apple’s greed and anti-competitive behavior in action.

Using the full featured Kindle, Audible, and Comixology apps on Android is such a revelation that I could never consider returning to such a crippled and user hostile platform.

I do see repurcussions with allowing apps to be installed outside of the App Store though. Apple would have to put a lot of effort into making the App Store a really attractive option for selling and promoting apps, otherwise someone else would do it.

Joe Rossignol:

Spotify CEO Daniel Ek elaborated on his company’s complaint against Apple with the European Commission in a speech today at the International Conference on Competition in Berlin, according to Variety and The Hollywood Reporter.

See also: Core Intuition and Apple Responds to Spotify.

Apple’s Declining Capex

Neil Cybart:

The most surprising revelation found in Apple’s recent 10-Q and 10-K filings is related to capital expenditures (capex). For the first time in 16 years, Apple expects its capex to decline during the current fiscal year. Declining capex is made that much more intriguing for Apple considering how Amazon, Alphabet, Microsoft, and Facebook are each experiencing significant increases in capex. Analyzing Apple’s capex and the potential reasons for its decline provides a look at how the company is being managed and how Apple is unique when compared to other Wall Street giants.

Exporting a Blog Archive

Manton Reece:

Over a year ago I proposed a new blog archive format. The idea was to have a better way to save the posts and photos in your blog, or move your blog to another platform. I’m happy to announce that Micro.blog can now export in this format.

Exhaustive Swift Properties With Tuples

Joshua Emmons:

How can we get switch-like exhaustiveness when dealing with the properties of a type? The first step (and our first clue) is to treat the properties as a set. What if we put them in a tuple?

[…]

So, to be clear, habitually shoving all properties into a tuple won’t scale well. But it is a useful tactic to employ when dealing with models, mocks or anything that has:

  1. naturally constrained state,
  2. logic that depends on the shape of said state, and
  3. a strong affinity towards change in the face of shifting requirements

Tuesday, March 12, 2019 [Tweets] [Favorites]

What’s Wrong With iOS Multitasking

Fraser Speirs:

Now that we have four operations that are essentially the exact same physical gesture but differentiated by the length of time the gesture is performed for, I am concerned that many users will become quite confused.

[…]

I have already had several very savvy iOS users tell me that they simply thought it wasn’t possible to multitask an app that wasn’t in the Dock.

I know that there are a number of ways to do this but none are very discoverable and some are very difficult to execute.

[…]

I have observed a number of friends on Twitter posting screenshots of their iOS 11 app arrangement which can probably best be described as “everything in the dock and a junk drawer folder at the end” just so they can be guaranteed that the first path to an app (going via the Dock) will always yield a result.

[…]

In practice I found that, too often, I needed to create arbitrary pairs of apps and this caused all my bespoke app pairings to be dismantled in the background. This gave me a sense of instability in the iOS 11 UI. Things I had built were being dismantled invisibility and they were not the way I had left them. This is another of these “functional cliffs” - a short term use of an app leads to the invisible dismantling of a pairing in the background.

Software-ICs, Binary Compatibility, and Objective-Swift

Marcel Weiher:

Swift recently achieved ABI stability, meaning that we can now ship Swift binaries without having to ship the corresponding Swift libraries. While it’s been a long time coming, it’s also great to have finally reached this point. However, it turns out that this does not mean you can reasonably ship binary Swift frameworks, for reasons described very well by Peter Steinberger of PSPDFKit and the good folks at instabug.

To reach this not-quite-there-yet state took almost 5 years, which is pretty much the total time NeXT shipped their hardware, and it mirrors the state with C++, which is still not generally suitable for binary distribution of libraries. Objective-C didn’t have these problems, and as it turns out this is not a coincidence.

[…]

Swift is designed as a programming language, not as middleware with language features. Therefore its modularity features are an add-on to the language, and try to transport the full richness of that programming model. And Swift’s programming model is very rich.

[…]

Did I mention that Objective-C is middleware with language features?

Previously:

Update (2019-03-13): Peter Steinberger:

Given the above constraints, PSPDFKit will likely never fully move to Swift. First and foremost, we still have many clients with applications built in Objective-C. There’s rarely a good reason to do a rewrite of battle-tested code, and we cannot force our partners to rewrite just for the sake of rewriting. Secondly, moving to Swift would heavily limit our subclassing system — currently, developers can register almost any exposed class and offer a subclass that PSPDFKit will initialize internally in place of our default base class. But seeing as Swift classes can no longer be subclassed in Objective-C, these capabilities would be greatly restricted if we switched to Swift.

This limits us to using Swift internally — which is the worst kind of Swift usage.

Bad Release Notes

Bad Release Notes:

Bug fixes and performance improvements

Dedicated to shaming apps for their bad release notes.

Submissions are welcome by email or Twitter.

Damien Petrilli:

Translation:

“The goal is to use this site as a reference when Apple deny your App update because of the release notes being not descriptive enough”

Previously:

Classical Music on Apple Music

Mitchel Broussard:

Last August, Apple Music was updated with a new section in Browse curated by Deutsche Grammophon, one of the biggest classical music labels in the world. While classical music fans welcomed the specific focus of the area, many of our readers quickly pointed out the numerous issues that remain for classical listeners on a daily basis within Apple Music, and the fact that they've been there since the launch of the service with seemingly no correction in sight.

Previously:

Monday, March 11, 2019 [Tweets] [Favorites]

The State of Mac Hardware in Early 2019

Wojtek Pietrusiewicz:

Macs, like many other computers, have always had their share of problems. These past few years feel particularly bad though, so here’s my quick take on the current state of the Mac lineup.

Maybe things will turn around later this year, with the Mac Pro and rumored new pro notebooks, but right now we’re in quite a dark period for the Mac—both hardware and software.

Lewis Hilsenteger (via Damien Petrilli):

After many years using MacBook variants I’ve made the switch to Windows. I’ve used every version of MacBook Pro and MacBook Air that have been released. My current laptop of choice is the Lenovo Thinkpad X1 Carbon / Lenovo Thinkpad X1 Extreme. Turns out switching from Mac to Windows isn’t as painful as I expected.

See also: Accidental Tech Podcast.

Previously:

Update (2019-03-12): Colin Cornaby:

I’ve seen from time to time people suggest, that even with a Mac’s decline in quality, it’s not like people are going to switch to Windows. Yet I know people who’ve happily switched over. I worry that if Marzipan leads to another decline in quality there will be more switchers.

The Mac’s main competitor is still Windows. That’s what’s so frustrating about the pro app conversation around Marzipan. Unless the big packages port over from Windows, nothing is going to change. And those guys aren’t upset about AppKit, they’re upset over Metal and Nvidia.

Most pro app vendors already have their own UI libraries (which is already frustrating if you care about the Mac experience.) AppKit vs UIKit isn’t really going to move the needle much for these app vendors in porting over from Windows.

Uupis:

The next MBP refresh feels personally pivotal to me, be it this year or later; even aside from the state of macOS. I’m not buying another first-generation design after the experience with 2016 model. And I won’t be able to convince myself to buy another MBP with a TouchBar.

Nick Fugitt:

I’ve said this repeatedly but Apple has spent 2015-2019 (half the decade) executing and then recovering from horrible decision-making around 2012-14. It’s truly a dark age for the Mac and there’s no guarantee we’re about to be done

John Gordon:

The iMac dust problem hit me. Rare that gets a mention.

The Sad State of Logging Bugs for Apple

Corbin Dunn (tweet, Hacker News):

This is where things get screwy depending on the component your bug lands in, since bug management is group dependent. Many groups will have only one or two QA people to do the initial screening of those large drop areas for bugs. QA engineers are sometimes instructed to screen bugs with a priority and “fix period” before passing them off to the engineer responsible for the code. This is terrible because many engineers will not look at bugs with a low priority. It is much better for the engineer who “owns the code” to look at a bug and determine the priority. The QA engineers will frequently get a huge back log of bugs to screen, and it can take weeks, or even months, for some bugs to get screened. Sometimes this leads to a mass screening of bugs, marking them all with a low priority. Bug originators have to notice this, and complain about it for the priority to get increased. Worse yet, some groups mass close bugs older than a year or so, and ask the originator to re-open the bug if the issue still exists. A lot of people don’t pay attention to bugs that need verification, and they simply become lost.

[…]

Engineers also dislike screening bugs because sometimes they have to add them to their queue for the current release. This increases their required workload for that release, which is something people don’t like doing. So, instead, many bugs stay unscreened.

[…]

Sometimes QA screen bugs with a low priority and holds onto them. They never get moved to the appropriate code engineers, and effectively become lost in the system. Sadly, I had seen this happen way too often.

[…]

When a bug is sent back as fixed, the internal developer who originated the bug is supposed to verify the problem is resolved. They can send it back if the problem isn’t resolved. However, internal developers don’t really have an incentive to verify bugs. Management doesn’t keep track of bugs that need verification or really require developers to verify them. Most engineers do verify bugs; they like to make sure problems are resolved. But external developers are left in a more sad state. The bug becomes closed for them, and is dead.

[…]

Internal engineers need to take more responsibility in promptly screening bugs. Management needs to allow engineers to have more time to do this, which is at the expense of working on features or fixing already screened bugs. Engineers should always be expected to have a very low unscreened bug count.

This matches what we felt like must be going on when filing bugs, as well as the way the smaller bugs seem to hang around forever, with new ones added each year. Even Mojave, which was supposed to be a refinement release, seems to have, on balance, increased the number of bugs. As a user, it sucks that things don’t work as well as they used to. As a developer, I spend too much time working around OS bugs and breakage—in other words, preventing my apps from getting worse rather than actually making them better. I assume other developers are in the same boat, and this may be one reason there seems to be less excitement around apps these days. Everyone is wasting a lot of energy treading water.

It’s as if the OS is rotting away before our eyes. The good news is that this should be fixable. Apple has tons of smart engineers who care. But the process does not seem to be set up to produce quality. Management talks a good game but clearly has other priorities. There are undoubtedly many policies that could be changed to improve the organizational incentives, and a core problem seems to be that Apple remains understaffed for its ambitions. The headcount can’t and shouldn’t be massively increased in a short period of time, but there is something Apple could do today to help stem the tide: go off the annual schedule.

Peter Ammon:

The single easiest and most effective thing Apple could do to improve its SWE org is to invest in Radar.

Radar’s importance within Apple cannot be overstated. It subsumes what would be multiple tools in other orgs. As an Apple SWE you spend a massive amount of time in it. And yet Apple treats Radar as a cost center, developed by an outsourced offshore team. It’s slow to search, supports only plain text, is hard to script, and is missing obvious features, e.g. automatic duplicate finding.

Hire five good SWEs, give them a mandate to serve the needs of the org, and you will massively increase the effectiveness of every other engineer.

ThemalSpan:

Anecdotally, I didn’t find the situation internally to be much better. Many bugs internally go unanswered because there is not enough time allocated to fixing core systems and designing better replacements. The truth is, I know personally of several teams that aren’t able to get through the queue of internally filed and scheduled bugs.

To me, it feels like Apple hasn’t resourced core pieces of infrastructure and engineering teams in line with upper management’s plans for growth. While many teams are relatively sequestered, once you start talking to folks elsewhere in the company it becomes clear that many teams are struggling to stay above water. More still, everyone shrugs about it because it’s not clear exactly what is wrong. The best description I’ve heard is in many cases engineers are willing to offer hacks as a solution to meet management’s demands, and management is either willing to accept those hacks or doesn’t know better.

satisfice:

We originally designed Radar so that bugs would be verified as closed by the person with most interest in seeing this happen: the tester assigned to that part of that project. Then management swooped in with an edict that bugs must be verified as closed by whomever originally reported them. This is a stupid idea, because it creates the perverse incentive that no one should report a problem if they are outside the team (because then you are committing to verify the fix, which just means more work for you that has nothing to do with any of your main responsibilities).

When I pointed out that the system would now discourage people on different teams from helping each other, the sponsoring director said “that’s what pink slips are for.” Direct quote. Soon after that I resigned from the design team.

Without reasonably skilled and principled leadership, you just don’t get quality software. And “quality is everyone’s job” is just an empty and childish slogan. Excellence is not transmitted through slogans and wishful thinking. You have to assign responsibility, provide resources and time (which means lowering velocity of new development), and follow-up.

The fundamental reason why it doesn’t happen is the technology market is not efficient. Quality is, in fact, not as important as career testers wish it were. You can get away with doing terrible work and not lose your job. The fact that Apple pays no significant penalties for having buggy products insulates it from our slings and arrows.

Corbin Dunn:

Some obvious issue, like “this button should do X but it does Y” can be verified by almost anyone. But some issues need the attention of the original author to really verify the bug. Maybe what needs to be done is someone in QA needs to attempt to verify the bug, or “pre-verify”, and then it goes back to the originator for final verification, who can also verify it, or simply close it if they feel like QA did a good job.

drfindley:

What’s even sadder is we used to be better at this when I started at Apple in 2008. Bugs often got screened and triaged and sometimes fixed within a week. I blame the yearly release schedule, where shipping features became a higher priority than overall quality

Corbin Dunn:

I feel the same way; people took more time on bugs back in those days. I also think the yearly schedule is to blame.

akecheck:

When a process is annoying and you do nothing, people eventually do give up and leave. When it reaches that point, they’re not coming back even if you finally wake up and fix what bugged them.

Apple software quality is in serious danger precisely because of this type of community and infrastructure rot. They are not encouraging developers to help them, and a not-surprising number of serious issues have shown up in released products in recent years.

jakobegger:

By now, a significant fraction of bugs are bugs in Apple’s frameworks. We try to report them to Apple, but they are ignored, or simply closed because they are related to deprecated APIs.

Of course, customers don’t complain that Apple frameworks are buggy -- they complain that our app crashes! So Apple has no incentive to fix it.

pkamb:

The entire value of WWDC is going to the Labs, giving an Apple engineer your Radar number, and having them read you or paraphrase the internal-only notes attached to the ticket. Half the time the question/bug will be clearly resolved internally or a workaround posted. But no updates are added to the public ticket, and it will remain open and unchanged for years.

Gus Mueller:

Corbin is a former AppKit engineer, and this is a must read for developers. It’ll make you angry, and it’s stuff you already figured was happening.

Tanner Bennett:

This confirms what we already knew. Almost no one at Apple takes bug reporting seriously. Reports will stack up indefinitely and eventually macOS will be a shell of its former self.

Corbin Dunn:

It is not just macOS, but iOS too.

Paul Haddad:

Interesting read. My view on bugs, work around them and move on. Even if it gets assigned it’s not getting fixed for at least a year.

Jeff Johnson:

IMO Radar screening issues are merely a symptom. The root problem is that Apple produces a completely unmanageable volume of bugs. Even if they screened all Radars quickly, then what? Bugs still get written much much faster than they get fixed. That’s unsustainable.

I suspect that Radar screening is allowed to be lax precisely because everybody knows that a huge volume of bugs will never get fixed anyway. It’s like bailing out the Titanic.

There’s also a tolerance for shipping bad bugs. If heads rolled at the company for shipping bad bugs, then Radars would get screened.

Adam Savage:

Just getting my music downloaded to my phone is a recurring nightmare I relive every time I upgrade. Having my music ON my device should be a simple choice, & you’ve made it Byzantine. How is it that I have to visit a support forum to learn how to download SONGS to my PHONE?!

The language of permissions is still fascinatingly and infuriatingly opaque, to the degree that when using iTunes, I’m regularly convinced it has an agenda antithetical to mine. Searching Suport forums is also nightmarish as helpful buttons from one version disappear in others.

Previously:

Update (2019-03-20): Michael Nachbaur:

It’s easy to blame Apple for poor bug handling practices, but I feel it’s a two-way street. It’s just as much our responsibility as theirs to ensure important bugs get fixed; we should do everything in our power to make their jobs easier in solving bugs. And if we can’t, then at the very least we can treat Apple’s engineers with respect.

Safety Experts Weigh in on the Boeing 737 MAX

Max Prosperi (via Yan Zhu):

The preliminary investigation following Lion Air Flight 610 revealed that prior to the crash, a system called Maneuvering Characteristics Augmentation System or MCAS had engaged, without the pilots’ knowledge. The MCAS lowers the nose automatically to prevent a stall, or the loss of lift, if it detects that the angle of the plane’s nose is too high relative to the ground. A malfunctioning sensor may have led the MCAS to engage repeatedly, countering the pilots’ maneuvers.

[…]

Diehl recalled that leading up to the implementation of the MCAS, an FAA official came to him and asked whether or not he thought the automation of aircraft was safe. Diehl’s advice: “Automation, if done right, is great, but it can also bite you.”

After the Lion Air crash, Boeing denied that it had not properly communicated to pilots the addition of the MCAS to the MAX-series 737s, a major difference with previous models of the airplane. (That position contradicts what some airlines have said.)

David Fickling:

A software update intended to fix the problem identified in the Lion Air crash still hasn’t been rolled out. The fact that the crew on Flight 610 are likely to have been aware of the known issues with the aircraft, too, raises the more worrying possibility that there’s an unknown complication.

Andrew:

Two hull loss incidents in under a year on a brand-new aircraft type with only 350 in service.

Compare that to the 787 which, despite serious development problems, has about 800 aircraft in service for many more years, and still zero hull loss incidents.

Or compare the MAX 8 with it’s predecessor, the 737-800, which has had 16 hull loss incidents in a fleet of 5000 aircraft across more than two decades of service.

The 737-MAX seems less safe to operate, whether the reason is an aircraft defect or difficulty of operation, or lack of adequate training.

vbscript2:

Statistics do funny things with such low sample sizes.

Take the 777, for example. It went nearly 20 years, much of that time as the most popular widebody flying, before its first accident resulting in a passenger death. Then it had 3 in a year. It hasn’t had another in the 5 years since that time. Was the 777 any less safe in 2013-2014 than in its other 25 years of service history? Obviously not. Similarly, the A320 family had a streak of fatal crashes in the last few years, yet there’s no reason to believe the A320 isn’t safe, let alone that it’s any less safe than it has been for the rest of its service history.

Update (2019-03-12): See also: Jon Ostrower (via Hacker News) and New York Times (via Hacker News).

McCloud:

I think required reading should be Normal Accidents: Living with High-Risk Technologies by Charles Perrow.

Mac McClellan (via Martin Steiger):

Though the pitch system in the MAX is somewhat new, the pilot actions after a failure are exactly the same as would be for a runaway trim in any 737 built since the 1960s. As pilots we really don’t need to know why the trim is running away, but we must know, and practice, how to disable it.

The problem for Boeing, and maybe eventually all airplane designers, is that FBW avoids these issues. FBW removes the pilot as a critical part of the system and relies on multiple computers to handle failures.

Boeing is now faced with the difficult task of explaining to the media why pilots must know how to intervene after a system failure. And also to explain that airplanes have been built and certified this way for many decades. Pilots have been the last line of defense when things go wrong.

What makes that such a tall order is that FBW airplanes – which include all the recent Airbus fleet, and the 777 and 787 from Boeing – don’t rely on the pilots to handle flight control system failures. FBW uses at least a triple redundant computer control system to interpret the inputs of the cockpit controls by pilots into movement of the airplane flight controls, including the trim. If part of the FBW system fails, the computer identifies the faulty elements and flies on without the human pilots needing to know how to disable the failed system.

Update (2019-03-13): Dallas Morning News (Hacker News):

Pilots repeatedly voiced safety concerns about the Boeing 737 Max 8 to federal authorities, with one captain calling the flight manual “inadequate and almost criminally insufficient” several months before Sunday’s Ethiopian Air crash that killed 157 people, an investigation by The Dallas Morning News found.

Update (2019-03-15): Jon Ostrower (via John Gruber):

Every airplane development is a series of compromises, but to deliver the 737 Max with its promised fuel efficiency, Boeing had to fit 12 gallons into a 10 gallon jug. Its bigger engines made for creative solutions as it found a way to mount the larger CFM International turbines under the notoriously low-slung jetliner.

See also: Hacker News (3)

tuna-piano:

Assuming the author is correct, and the reaction to the MCAS issues is a simple reaction that every pilot should know by memory: Is it really acceptable that once every 3 months a 737-Max will attempt a nose dive and require a vigilant pilot who can identify and correct the issue before the plane crashes into the ground?

And this likely happened at least twice, while there were 300 MAXs in service. If there were 3,000 MAXs in service, MCAS misfires would presumably be happening 3x a month worldwide - each misfire requiring a proper pilot reaction. How can you defend Boeing in that case?

amluto:

Here’s what I don’t get about this whole situation:

AIUI 737 MAX has an instability such that, in near stall conditions, some attempts to recover can make the stall worse. To mitigate this, Boeing added MCAS, and MCAS can malfunction with a single sensor failure. Imagine that this failure occurs and the pilot successfully turns off MCAS but ends up in a dive, too close to the ground, or otherwise in a bad situation. Now the pilot has to recover, but they are facing a faulty AoA indicator (if they have one at all) as well as a plane that, because MCAS is off, is unstable in near-stall conditions. And the pilot has never been trained in the handling of type 737 MAX under these conditions.

Am I wrong for some reason, or is this a potentially rather dangerous situation that could be caused by a single instrument failure?

Skype for Web Drops Support for Safari

Chance Miller:

In a statement to VentureBeat, Microsoft explained that Skype for Web uses a “calling and real-time media” framework that functions differently across the various browsers. Thus, it decided to prioritize Skype for Web support in Microsoft Edge and Google Chrome[…]

Previously:

Update (2019-03-11): My hospital’s Web site just stopped working in Safari. The login page just endlessly reloads itself. It works in Chrome and Firefox.

Flickr Protects Photos From Deletion

Flickr (via Hacker News):

When we recently announced updates to Flickr Free accounts, we stated that freely licensed public photos (Creative Commons, public domain, U.S. government works, etc.) as of November 1, 2018 in excess of the free account limit would not be deleted. We wanted to make sure we didn’t disrupt the hundreds of millions of stories across the global internet that link to freely licensed Flickr images. We know the cost of storing and serving these images is vastly outweighed by the value they represent to the world.

In this spirit, today we’re going further and now protecting all public, freely licensed images on Flickr, regardless of the date they were uploaded. We want to make sure we preserve these works and further the value of the licenses for our community and for anyone who might benefit from them.

[…]

In memoriam accounts will preserve all public content in a deceased member’s account, even if their Pro subscription lapses. The account’s username will be updated to reflect the “in memoriam” status and login for the account be locked, preventing anyone from signing in.

Previously:

Friday, March 8, 2019 [Tweets] [Favorites]

iClever Himbox HB01 Bluetooth Car Receiver

Now that I’m using an iPhone XR, I no longer have a headphone jack. I’ve had bad luck with combination charge/audio dongles, and the Qi charger car mounts I’ve seen have been unwieldy. So extended car use will require the Lightning port for charging, meaning that audio must be played wirelessly. Fortunately, I’ve found a much better Bluetooth-to-headphone jack adapter than the Anker SoundSync Drive I had been using. It’s called the iClever Himbox HB01.

The Himbox works in the same way as the SoundSync, just more smoothly. Most importantly, it auto-connects to my phone so that when I press the Play button it’s already ready to go. There’s no variable delay, no need to retry, no question about whether it will actually connect. It’s just transparently ready every time.

This can actually be unexpected or unwanted. For example, if I’m playing audio with my AirPods and get into the car, when I turn on the ignition (which powers on the Himbox) it will steal the Bluetooth connection from my phone. Even with no audio playing, it will proactively switch the phone’s audio output.

I can prevent the Himbox from stealing the connection by unplugging it, but it would be better if it simply had an off switch. The USB connector is tight enough that pulling it one-handed will unplug the entire four-way cigarette lighter adapter, which other devices are using for charging.

There are buttons to Play/Pause and to skip Back and Forward. You can long press the latter two to adjust the volume. It has its own microphone for calls, which is great because this lets me answer calls when the phone is in my pocket. You can also long-press the Play button to initiate Siri. I like this because I’ve not found Hey Siri to be reliable when driving. Unfortuantely, unlike AirPods, the Himbox does not seem to use its own microphone for Siri. At least, it never seems to understand me when the phone is in my pocket.

There’s a bright light that’s always on when paired. This is helpful for finding the button, and it flashes when a call comes in, but it’s just too bright at night, even when I’m not looking directly at it, when my eyes are adjusted to the dark.

I also ran into a problem mounting the Himbox. You’re supposed to stick a metal mounting plate onto the car. The Himbox then attaches to the plate magnetically, so it can easily be removed. However, the adhesive never felt very secure and came unstuck within just a few hours (fortunately leaving no residue). I ended up putting gaffer tape completely over the mounting plate. The magnet is plenty strong enough to work through the tape.

This reads like a list of complaints, but I’m actually very happy with the Himbox. The common case is when I do want it to auto-connect. That works very well. I don’t want to go back to the SoundSync or to manually plugging and unplugging a mini-phone connector.

For some reason, the Himbox is currently unavailable at Amazon, but you can get one at Walmart.

Open Sourcing Windows Calculator

Microsoft:

Today, we’re excited to announce that we are open sourcing Windows Calculator on GitHub under the MIT License. This includes the source code, build system, unit tests, and product roadmap. Our goal is to build an even better user experience in partnership with the community. We are encouraging your fresh perspectives and increased participation to help define the future of Calculator.

[…]

Reviewing the Calculator code is a great way to learn about the latest Microsoft technologies like the Universal Windows Platform, XAML, and Azure Pipelines. Through this project, developers can learn from Microsoft’s full development lifecycle, as well as reuse the code to build their own experiences. It’s also a great example of Fluent app design. To make this even easier, we will be contributing custom controls and API extensions that we use in Calculator and other apps, to projects like the Windows Community Toolkit and the Windows UI Library.

Via Miguel de Icaza:

A jewel hidden inside this release is an MIT licensed infinite precision math library in C++[…]

Previously: iOS Calculator Bug.

Update (2019-03-12): Anis Muslić:

-Be Microsoft
-Release source code of calculator on GitHub
-Paste password into calculator
-Use it as part of telemetry to collect data.

Thursday, March 7, 2019 [Tweets] [Favorites]

A Privacy-Focused Vision for Social Networking

Mark Zuckerberg:

Public social networks will continue to be very important in people’s lives -- for connecting with everyone you know, discovering new people, ideas and content, and giving people a voice more broadly. People find these valuable every day, and there are still a lot of useful services to build on top of them. But now, with all the ways people also want to interact privately, there’s also an opportunity to build a simpler platform that’s focused on privacy first.

I understand that many people don’t think Facebook can or would even want to build this kind of privacy-focused platform -- because frankly we don’t currently have a strong reputation for building privacy protective services, and we’ve historically focused on tools for more open sharing. But we’ve repeatedly shown that we can evolve to build the services that people really want, including in private messaging and stories.

I believe the future of communication will increasingly shift to private, encrypted services where people can be confident what they say to each other stays secure and their messages and content won’t stick around forever. This is the future I hope we will help bring about.

Alex Stamos:

This isn’t a post I expected to read, and I wish he wrote it two years ago. Hopefully the external vision is reflected in internal moves to change product culture that informs thousands of product and engineering decisions per year. Turning a ship that large is difficult.

[…]

Right now FB gets crap (from the same people) for both invading people’s privacy and not policing communications enough. This is the judo move: in a world where everything is encrypted and doesn’t last long, entire classes of scandal are invisible to the media.

He explicitly recognizes the downside for safety, and rightly points out the potential mitigations, but he is coming down pretty hard on putting data outside of Facebook’s reach for advertising, content moderation, investigation and government requests.

[…]

The “Secure Data Storage” section is a massive shot across Tim Cook’s bow. Expect to hear a lot about iCLoud and China every time Cook is sanctimonious.

In other news, Zuck has clearly given up on entering China, as these changes makes that impossible. Good.

Ben Thompson:

In fact, what Zuckerberg announced is quite believable, precisely because it makes perfect sense for Facebook: this is a privacy cake that Facebook can have — and eat it too.

[…]

By the same token, though, just because Facebook capped Snapchat’s growth doesn’t mean that Snapchat’s core insight about the desire for private, ephemeral communication was wrong: what Zuckerberg wrote yesterday is basically Snapchat’s reason-for-existing. In other words, while Instagram Stories built a wall around Snapchat by copying Snapchat’s secondary feature, this “Privacy-Focused Vision for Social Networking” is a clear attempt to build the core of Snapchat for everyone else.

[…]

Perhaps most compelling, though, is the degree to which this move locks in Facebook’s competitive position. As I noted above, Snapchat already showed that Facebook is vulnerable in the realm of private ephemeral communications, but soon that will no longer be the case. Moreover, given Facebook’s focus on end-to-end encryption, the company has made it that much harder to even get off the ground: not even Snapchat is fully end-to-end encrypted (pictures are, but not text messages).

[…]

Why can Facebook deliver most of the value? Because they are still Facebook! They still have the core Facebook app, Instagram, ‘Like’-buttons scattered across the web — none of that is going away with this announcement. They can very much afford a privacy-centric messaging offering in a way that any would-be challenger could not. Privacy, it turns out, is a competitive advantage for Facebook, not the cudgel the company’s critics hoped it might be.

Nick Heer:

If Facebook truly is going to build private, encrypted services for its users, it’s not because the company’s culture has radically pivoted to embrace the value of privacy. This is more likely a tactic, rather than a goal for its own sake.

Previously: Facebook and Phone Numbers.

Update (2019-03-08): Zeynep Tufekci:

So, wow, Mark Zuckerberg published a plan to entrench Facebook, fend off regulatory action, lower costs, shrink scandal exposure, acknowledge realities— and he called it a “privacy-focused vision” while ignoring all the big privacy issues! 🙄

I mean, Facebook doesn’t need to read your messages—that’s not how its surveillance machine runs. Zuckerberg states as much same day in interview in @Wired. Done right, shift to end-to-end could be great. But it could just mean hiring fewer content moderators and hiding scandals.

China’s not happening. No kidding. People like Snapchat’s features and Facebook will keep copying them. They will scramble WhatsApp and Instagram hard into Facebook so regulators can’t break them off. These are not privacy shifts—they’re shrewd competitive moves for entrenchment.

See also: Exponent, Hacker News.

TensorFlow Differential Privacy

James Vincent (via Dan Masters):

Google has announced a new module for its machine learning framework, TensorFlow, that lets developers improve the privacy of their AI models with just a few lines of extra code.

TensorFlow is one of the most popular tools for building machine learning applications, and it’s used by developers around the world to create programs like text, audio, and image recognition algorithms. With the introduction of TensorFlow Privacy, these developers will be able to safeguard users’ data with a statistical technique known as “differential privacy.”

[…]

There are some downsides to using differential privacy, though. “By masking outliers, it can sometimes remove relevant or interesting data, especially in varied datasets, like those involving language,” says Erlingsson. “Differential privacy literally means that it’s impossible for the system to learn about anything that happens just once in the dataset, and so you have this tension. Do you have to go get more data of a certain type? How relevant or useful are those unique properties in the dataset?”

Ariel Herbert-Voss:

Just found this incredible paper by @korolova and team: they straight-up reverse engineered Apple’s differential privacy system. They share implementation details and findings about privacy loss in a real-world system, which is key for broader DP adoption.

Previously:

CloudBerry Backup for macOS

Dave Kitabjian:

I have seen other reviews of CloudBerry that happily check many boxes on the feature list and grant it a favorable rating. I wonder how many of those reviewers actually performed a non-trivial backup using the product and took the time to evaluate whether it was in fact working properly.

I really wanted to be the one to tell the TidBITS community that there was another great backup app to consider. But I wanted to do that because I want to help you protect your data, and right now, the best way I can do that is to recommend that you do not use CloudBerry Backup for macOS.

Previously:

How Time Machine Makes Backups With APFS

Howard Oakley:

The preparatory sequence identifies and deletes expired local snapshots. According to Apple’s Support Note, these local snapshots are kept for 24 hours; although the log entries below indicate a shorter period, later backups confirm that this is normally the case, and you should expect to find a full 24 hours of snapshots at any time.

backupd then copies changed items to the backup destination. In order to maintain the impression that each backup is a complete copy of the source volume, it then makes hard links to all the unchanged files and folders. It is able to do this as, unlike many file systems, HFS+ supports directory hard links as well as those to files.

[…]

backupd then checks that there is sufficient free space on the backup destination, and if there is, performs that same process as with HFS+, copying changed items and making hard links to the rest. That is followed by new steps, which save a clone family cache to the new backup folder, and back-up-later caches there too. The precise purpose of these isn’t yet clear, although the latter may well list files which changed as the backup was being made.

[…]

I have been writing that Time Machine has fallen behind macOS, at least in respect of its reliance on the HFS+ file system for backups, which results from its use of directory hard links. This implementation of Time Machine for APFS is perhaps best viewed as version 1.5: it now takes best advantage of the new file system as its source, but has yet to find a new backup method and format appropriate to an APFS backup destination.

Howard Oakley:

That old [HFS+] system periodically failed, perhaps when FSEvents lost track of recent changes, or became corrupted. In those circumstances, Time Machine would perform a lengthy ‘deep traversal scan’ to determine what needed to be backed up, which could in some cases take several hours. One strong case for adopting a new approach with APFS was to reduce the frequency of those deep traversals by using a more robust mechanism for determining what to back up. There’s no evidence that the new snapshot-based system is any quicker – indeed, in many cases it may perform more slowly than using FSEvents.

[…]

However, deep traversal scans do still occur on APFS volumes. In one period of only 8 hours, my iMac Pro undertook and completed two such scans, as shown in the T2M2 report below.

Previously:

Wednesday, March 6, 2019 [Tweets] [Favorites]

Problems With os_log

BJ Homer:

Is there anyone outside Apple who finds the new logging system useful? Seems like it’s annoying and actively intrusive for external developers.

The os_log features are useful to Apple, but without anyway to gather logs for our own reporting, I don’t see how the features are useful to third party devs.

Some of the problems: difficulty getting logs from customers, so much spew that the log files are huge and hard to sift through, important log entries that are never persisted to disk, high CPU use when leaving Console open to catch the unpersisted entries, NSLog becoming unreliable and not showing anything in some cases, API that needs to be wrapped to be useful but which is designed not to be wrapped. Instead of unifying things, unified logging has resulted in everyone finding their own workarounds.

Peter Steinberger:

Ideally, we’d love to fully switch to Apple’s os_log API. However, it has one major downside: There’s still no way to access the rolling log to add to the reports that get sent back to us. Multiple radars have been submitted to Apple, requesting this feature be added (rdar://40853863, rdar://30444429), but in the meantime, developers are forced to implement their own solutions if they wish to include logging in a crash’s backtrace.

[…]

For our specific use case, we’ve decided to integrate Crashlytics’ CLSLogv function as a custom logger that we use with CocoaLumberjack, a framework that offers many other useful features, such as adding macOS logging capabilities.

Mike Piontek (tweet):

With NSLog I can have a switch in my iOS or macOS app that redirects stderr to a file. The user can turn that on, recreate the problem, and just tap a button to email the file. Super simple.

With os_log, this doesn’t work. Of course there’s sysdiagnose, but that requires a complicated button combination, scrolling through a list of hundreds of other log files, and then… basically the only option is to try to email me a 200MB file.

[…]

I was originally planning to create my own wrapper for os_log, even though it’s recommended against (see WWDC 2016). That way I could have it write to a file as needed, or just pass the data to os_log the rest of the time. But it seems there’s actually no good way to do that, due to the problems described here.

Rob Mayoff:

The problem is that os_log doesn’t take an Array<CVarArg> argument; os_log is itself variadic over CVarArg. So Swift casts args (an Array<CVarArg>) to CVarArg, and sticks that casted CVarArg into another Array<CVarArg>.

[…]

Sadly for you, Swift doesn’t yet have any syntax for argument splatting. It’s been discussed more than once in Swift-Evolution (in this thread, for example), but there’s not yet a solution on the horizon.

[…]

So you might go looking for an os_logv. Sadly, you won’t find one. There is no documented companion to os_log that takes pre-bundled arguments.

[…]

One last thing. Why doesn’t the compiler complain about converting Array<CVarArg> to CVarArg? And why does Kamran’s suggestion (of using %@) work?

It turns out these questions have the same answer: it’s because Array is “bridgeable” to an Objective-C object.

Previously:

Update (2019-03-07): iKyle:

It feels like an internal tool Apple built for themselves and then asked everyone else to use for our use cases, without realising it doesn’t actually work for those uses.

See also: Custom String Interpolation and Compile-time Interpretation applied to Logging (via Tony Arnold).

Update (2019-03-08): Per Olofsson:

Add to this that os_log can’t be called from scripting languages such as python

Finder Bug Replacing a Folder With Dot Files

Lloyd Chambers:

  1. Copy a folder with dot files to another destination (I used “.icj”).
  2. Change one of the dot files.
  3. Repeat the copy. When the Finder offers Cancel or Replace, choose Replace.

PROBLEM: the copied folder contains old data in the invisible “.icj” file.

I was easily able to reproduce this on macOS 10.14.3.

Previously: Finder Shows Incorrect Folder Sizes.

GameClub Plans to Resurrect Abandoned iOS Games

Mitchel Broussard:

As Hodapp explained on TouchArcade, Apple’s frequent updates to the iPhone have caused ongoing problems for iOS developers on older App Store games. The first of these major issues hit during the release of the iPhone 4 in 2010 and its introduction of an increased resolution, which meant all developers needed to update their games with higher resolution textures.

While some developers decided to do this, others couldn’t justify spending time and money to modernize their games. Of course, this issue grew exponentially worse with the introduction of iOS 11 in 2017, bringing with it the removal of all 32-bit apps from the iOS App Store. TouchArcade kept an ongoing list of every 32-bit app that was no longer supported with iOS 11, including the TouchArcade app itself.

[…]

Now, Hodapp is leaving TouchArcade to address this issue with GameClub, a developer with the intent to bring the best of these forgotten and unplayable iOS games back to life. To achieve this, GameClub will handle all of the updates, ongoing maintenance, and support for each game, in essence becoming the new developer of the game.

Previously:

MacStories Shortcuts Archive

Federico Viticci (tweet):

Since the original release of Workflow in 2014, we’ve created hundreds of automations to help readers use their iOS devices more efficiently. The goal of this archive is to offer a complete catalogue of our old workflows as well as new custom shortcuts for Apple’s Shortcuts app.

Each shortcut in this archive has been created, updated, and tested by Federico and the MacStories team. Shortcuts are organized in categories, and you can jump directly to a specific category by using one of the section links below.

Dr. Drang:

This is not only a set of pre-built shortcuts, it’s also a source of inspiration for new shortcuts you can build based on these.

Tuesday, March 5, 2019 [Tweets] [Favorites]

Patreon and Facebook

Brandon Gomez (via Hacker News):

The number of active patrons supporting artists on the platform in 2019 has seen significant growth, up 1 million over the last year, the company said. The company is also on track to pay out $500 million to content creators in 2019, pushing the company to surpass $1 billion in payouts since its inception in 2013.

[…]

Patreon CEO Jack Conte said in an interview with CNBC that the platform will soon be facing the challenge of maintaining a profitable model as the company continues its growth.

“The reality is Patreon needs to build new businesses and new services and new revenue lines in order to build a sustainable business,” Conte said.

Dan Olson:

This is the bizarro upsidedown that capital lives in. Their existing model, handle the logistics of subscription service for businesses too small to handle them directly, is the definition of sustainable. It scales up ridiculously well.

[…]

So Patreon has made around $55m in revenue since 2013. If their startup money had been a loan they’d have probably paid it back by now and would be operating a pretty sustainable service.

[…]

So Patreon has made around $55m in direct revenue, but they’re in hock to Thrive Capital for ~$107m, and Thrive doesn’t just want their money back with interest.

Dami Lee:

Facebook began expanding access to its Patreon competitor last night, giving more page owners the ability to start offering content to their subscribers for a monthly fee. But it doesn’t take much digging to see that the terms for Facebook’s feature, known as Fan Subscriptions, make for a bad deal for creators, giving Facebook a lifetime license to use their work and the right to take up to a whopping 30 percent of subscription fees.

[…]

For now, page owners get to keep the entire subscription fee. But Facebook plans to begin taking a cut once the feature formally launches, and its terms of service allow Facebook to take up to 30 percent, with 30 days notice of the change. That cut is standard for an app in Apple’s or Google’s app store, but it’s giant for a creator-focused platform: Patreon takes just a 5 percent share of a user’s pledges.

Amazon to Give Power to Brands to Remove Fakes

Alex Hern (via Hacker News):

Amazon will hand over unprecedented powers to brands to remove suspected counterfeits from its site, as part of a concerted push to eliminate fakes and frauds from the shopping experience.

Under the company’s new Project Zero programme, companies will now be able to remove counterfeit listings themselves, without having to wait for Amazon to take action.

For companies that face a serious counterfeiting problem, a further tool called “product serialisation” allows them even greater control. Manufacturers can now assign unique serial numbers to every product they sell and require Amazon to scan those serial numbers and check authenticity on every sale.

Amazon:

Powered by Amazon’s machine learning expertise, automated protections continuously scan our stores and proactively remove suspected counterfeits. Brands provide us with their logos, trademarks, and other key data about their brand, and we scan over 5 billion product listing updates every day, looking for suspected counterfeits. We’ve been testing these automated protections with a number of brands, and on average, our automated protections proactively stop 100 times more suspected counterfeit products as compared to what we reactively remove based on reports from brands.

Previously:

Thunderbolt 3 Becomes USB4

Peter Bright:

Fulfilling its 2017 promise to make Thunderbolt 3 royalty-free, Intel has given the specification for its high-speed interconnect to the USB Implementers Forum (USB-IF), the industry group that develops the USB specification. The USB-IF has taken the spec and will use it to form the basis of USB4, the next iteration of USB following USB 3.2.

Previously: Confusing USB 3.2 Branding.

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

Making Thunderbolt royalty-free and not dependent on an Intel controller chip would likely be of considerable interest to a company that may want to build the protocol into a non-Intel platform.

Visual Studio 2019 for Mac Preview 3

Microsoft (via Aaron Bockover):

Today, we’re excited to announce the Preview 3 release of Visual Studio 2019 for Mac. This is the next release of our IDE for .NET Developers on the Mac.

[…]

In addition to the above, we’re excited to introduce a first preview of the new, fast, fluid, and performant C# editor, built on top of the same core editor as Visual Studio on Windows.

[…]

The new editor builds on a solid foundation provided by the Visual Studio editor on Windows, with native macOS UI added to make sure it feels right at home on a Mac. Not only does this provide an enhanced experience with smooth editing and navigation, but the new editor also has all the powerful IntelliSense/code-completion and quick fix suggestions you expect from a Visual Studio Editor. Plus, as the editor is truly native, you get all the benefits of a modern macOS editor, including several top features such as right-to-left and bi-directional text support and full support for native macOS input sources, which makes VS for Mac an IDE that speaks your language.

This sounds great, but it’s followed by a screenshot with oddly spaced checkboxes.

Update (2019-03-06): Miguel de Icaza:

Our new text editor is implemented as an NSView, with CoreText rendering on CALayers implementing all the proper NSText protocols on top of the same editor engine from VS/Windows.

Aaron Bockover:

Retained-mode layout with CoreText rendering into a CALayer per visual line, with input being fully NSTextInputClient conformant (so all the native input methods light up). Many functional layers are modular NSView/CALayer adornments (visible white-space, squiggles, etc).

Update (2019-03-20): See also: Merge Conflict.

Monday, March 4, 2019 [Tweets] [Favorites]

Bringing iOS Apps to macOS Using Marzipanify

Steve Troughton-Smith:

At WWDC 2018 Apple gave us a ‘sneak peek’ at perhaps one of the most impactful developments on macOS since the transition to Mac OS X: UIKit apps running on the desktop. Today, I’m going to detail a special tool I built, called marzipanify, to get started with UIKit on the Mac early, and start the initial bringup of your iOS app on macOS.

[…]

There’s another reason for the iosmac distinction: many of the frameworks underneath, née iOS Simulator, clash horrendously with the built-in macOS frameworks, thanks to a decade of divergence from OS X. Both iOS and macOS today share a UIFoundation framework to help support UIKit and AppKit and provide common code, but UIFoundation makes decisions at runtime based on which platform it’s running on that affect everything from Interface Builder to text rendering. At its simplest level, this means that if you link AppKit into your iOSMac app, all manner of things will explode in your app. The iosmac linker variant for iOSMac binaries explicitly prevents loading non-iosmac binaries and libraries into your code (unless they’re whitelisted).

[…]

Altogether, it appears running modern UIKit on macOS is so much more complex than the more-obvious tack Chameleon took when it rewrote UIKit for the Mac all those years ago. It’s not a virtual machine by any stretch, despite evolving from the iOS Simulator, but it certainly goes to great lengths to distance itself from how Mac apps traditionally work.

Steve Troughton-Smith:

If you look at your newly-marzipanified app, and compare it with Apple’s built-in UIKit apps on Mojave, you will notice that yours looks a lot more clunky and less-native than what Apple’s doing. To really make your app sing, you’re going to have to use some new classes and mechanics unique to UIKit on macOS.

[…]

One thing that is key to remember is that Marzipan scales everything in your window by 0.77 to better suit the desktop. This is mostly transparent to the developer, unless of course you’re trying to closely match the metrics used in AppKit apps for e.g. sidebar row height, and you suddenly realize everything is smaller than it should be.

[…]

You may find all your centered text is no longer centered when run on the Mac. That’s because Apple uses different integer values for the NSTextAlignment enum, so NSTextAlignmentCentered is interpreted as NSTextAlignmentRight.

James Thomson:

Here’s iOS PCalc running under Marzipan on Mojave. Mostly working, with a few graphical glitches - some stuff works even better than the current Mac version, like fullscreen / live resizing. Looking forward to seeing what we get officially at WWDC in June.

Previously: Apple to Target Combining iPhone, iPad, and Mac Apps by 2021.

Keyboard Shortcuts Killed by Bug

Howard Oakley:

When you try to edit the command associated with that shortcut, the editing box is tiny, just over two characters in width, so tiny that it’s hard to read or change its contents.

With a fourth shortcut added, every single entry made by the user is replaced by an ellipsis. Which command is which shortcut? Well, you can either read it through the selection keyhole, or view it in the tooltip attached to the ellipsis.

I have spent some time looking for workarounds which make this feature still usable, and cannot find any. This bug effectively renders the App Shortcuts feature unusable in Mojave 10.14.3.

You may not use App Shortcuts, and consider them a minor feature of little importance. This bug, though, reveals a great deal about what is going wrong inside Apple, which is the reason for this article.

The bug is present at least as far back as macOS 10.13.4.