Archive for October 2019

Thursday, October 31, 2019

Vector Icon Speed Runs

Dan Frakes:

I love watching @marcedwards’s icon-making “speed runs.” So we did a Mac App Store story on them.

Great article and videos, but again I wish I would read directly in my browser instead of in the App Store app. The Web preview doesn’t have any of the article text or videos.

Previously:

Wednesday, October 30, 2019

Google to Stop Indexing Flash

Google (via Hacker News):

Flash is disabled by default in Chrome (starting in version 76), Microsoft Edge, and FireFox 69. Soon, we’ll also move on from Flash in indexing for Google Search.

Previously:

Twitter for Mac 8.1

Nolan O’Brien:

Along with all the improvements that go into Twitter for iOS, we’ve also worked on some Mac specific things

[…]

Fixed: scrolling would temporarily stop working when closing certain windows using ESC key

Fixed: secondary clicking on a username would break secondary clicking for remainder of app session

Fixed: when under the Messages tab, navigating into “Message requests” would not offer a way to back out other than clicking the Messages tab again

Fixed: some windows could be dragged from anyone in their UI to move their window.

[…]

It’s good to see them iterating quickly. These look like a bunch of Catalyst-specific fixes, mixed in with more general improvements.

Leo Natan:

The new version is a great improvement!

I am seeing a consistent CPU usage when the app is idle.

Previously:

Update (2019-10-31): Nolan O’Brien:

We have submitted Twitter for Mac v8.1.1 for review w/ a change to work around keyboard input issues in secure text fields.

The crux of the change will be to add a modifier to all keyboard shortcuts.

e.g. To “like” a Tweet, the shortcut of L will be updated to be Command-L.

It’s too bad Catalyst requires this. In Tweetbot, I can just press F with my left hand while my right hand is on the mouse.

See also: Mike Beasley (via Hacker News).

Update (2019-11-02): David Chartier:

The fact that dragging a photo out of Twitter to the desktop creates a .webloc file instead of, you know, a photo is…. terrible.

Update (2019-11-05): Matt Birchler:

Text editing specifically is really hard to justify and is not what I would expect from any app on the Mac.

Update (2019-11-26): Peter Steinberger:

To access Page Up/Page Down key on iOS/Catalyst, there’s no other way than using the undocumented UIKeyInputPageUp/UIKeyInputPageDown constants on UIKeyCommand?

Marcel Weiher:

I guess that’s why the up/down arrow keys don’t work in the new Mac Twitter client... 🤦‍♂️

John Gruber:

So I check the Memory tab: 223 GB.

Catalyst is great — it’s super good for the Mac platform that developers who can’t write real Mac apps can now write apps for the Mac.

Sarcasm aside, it’s actually astounding that this new MBP can handle an app with a 223 GB memory leak and remain completely responsive.

iOS 13.2 Killing Background Apps More

Marco Arment:

I’ve noticed this since the first 13.2 betas, and Overcast users keep reporting it as well: background apps seem to be getting killed MUCH more aggressively than before.

(Especially on the iPhone 11 if you use the camera, presumably because it needs so much RAM for processing.)

Christopher Stephens:

Every single app on my iPhone 7 iOS 13.2 gets killed every time I close. No backgrounding. And each tab on safari when I move to a new one. So frustrating

Cabel Sasser:

This really affected Prompt. Extremely annoying to lose SSH connections when switch apps.

In yesterday’s update we rolled out a semi-cheesy but effective fix: “Connection Keeper” keeps a running GPS-based log of where you connect to servers. Side effect: connections stay alive.

Previously:

Update (2019-10-31): Damien Petrilli:

Well this isn’t good. It means that because of the camera, iPhone 11 are undersized with 4GB of memory.

Scott:

My Note 9 has 12 GB of RAM, 30+ hours battery life, no camera bump and is .03" thicker than an 11 Pro Max. I think apple could have figured it out. The biggest problem with Apple skimping on RAM is the longevity of the device’s usefulness.

Jonas Salling:

I see a lot of speculation that this is about lack of RAM. I doubt it. In our app, we are seeing problem with (some) WKWebView content (ads). App is silently killed after 30s in background. Critical log line attached.

Nick Heer (tweet):

I’m used to the camera purging all open apps from memory on my iPhone X, but iOS 13.2 goes above and beyond in killing background tasks. Earlier today, I was switching between a thread in Messages and a recipe in Safari and each app entirely refreshed every time I foregrounded it. This happens all the time throughout the system in iOS 13: Safari can’t keep even a single tab open in the background, every app boots from scratch, and using iOS feels like it has regressed to the pre-multitasking days.

Joe Rossignol (tweet):

A growing number of iPhone and iPad users have complained about poor RAM management on iOS 13 and iPadOS 13, leading to apps like Safari, YouTube, and Overcast reloading more frequently upon being reopened.

[…]

More complaints are found in this Twitter thread, in this Reddit thread, in the Apple Support Communities, and elsewhere on the web.

Stephen Warwick:

As mentioned Twitter is absolutely awash with reports of poor performance, memory management, and multitasking issues.

[…]

The underlying issue seems to be that Apple may have bitten off more than it can chew. in iOS 12 Apple took the time to relax its frantic feature release model and optimize what it already had in front of it. With iOS 13, it looks like Apple is back to shovelling out as many features as possible, without checking that they all work.

Marco Arment:

Major new bugs introduced in iOS 13.2:

- background downloads often hang forever and never run

- apps get killed in the background so aggressively that iOS effectively doesn’t offer multitasking anymore

…continuing the iOS 13 pattern of breaking long-held basic functionality.

I’m sure Apple has good excuses about why their software quality is so shitty again.

I hear the same thing over and over from people inside: they aren’t given enough time to fix bugs.

Your software quality is broken, Apple. Deeply, systemically broken. Get your shit together.

Marco Arment:

I hear the same stories repeatedly from inside Apple:

- almost no time to fix bugs

- literally zero time to fix older or non-urgent bugs

- far more layers of management since Cook

- problems don’t/can’t get communicated upward

- increased division so teams can’t coordinate

Previously:

Update (2019-11-01): John Gruber:

This bug where apps are getting killed soon after they’re backgrounded is driving me nuts. Start a YouTube video in Safari, switch to another app, go back to Safari — and the video loads from scratch and starts from the beginning.

Matthew Panzarino:

iOS 13 feels like I’m back on iOS 3. Keeps dropping apps out of ram in the background at nearly the pace of 1:1 apps launched-to-quit. Makes drilling down to content or links and then losing them is rage inducing. What a crap ass behavior.

John Siracusa:

On this week’s episode of @atpfm, I compared it to a toddler under a blanket. “You can’t see me! I’m invisible!” But on iOS 13.2, it’s actually true. As soon as you’re not looking at an app, it disappears from RAM.

See this clip, in particular.

Meek Geek:

Turns out this bug has existed since the 1st beta of iOS 13.2, and yet Apple released it (probably due to AirPods Pro’s launch). Marketing-driven releases, again and again. 🙄

It’s so bad I can’t even scroll a web view without it being killed and reloading.

Update (2019-11-02): John Gruber:

If I could downgrade to 13.1.2 I probably would, even though it’d mean losing AirPods Pro support until 13.2.1 comes out -- which perhaps erroneously presumes that this overzealous process reaping is a bug and not a “feature”.

M.G. Siegler:

Yeah, this is driving me insane. Truly bonkers. It’s like Apple is finding new and interesting ways to make iOS 13 worse with each passing update. Can they recall an OS?

Marco Arment:

Why will iOS 14 be any different?

What significant, systemic changes has Apple made?

Do they even think anything is wrong?

Peter N Lewis:

I wonder if the iOS 13 background app massacre issue also affects Find My Friends tracking? I was trying to locate my wife while on the phone with her as she was driving home (to check traffic) and her location remained her start point for the full 20km, no change. Infuriating!

Nick Heer:

I just don’t understand how iOS shipped with this multitasking bug. Surely someone inside Apple with some semblance of power thought “hey, this thing where Safari displays an error and needs to reload every time I switch to it — that’s not good.”

Update (2019-11-05): Dave Murdock:

In addition to the overzealous background app killing issue in iOS 13.2, I’ve experienced & seen on other phones a complete UI freeze for 1+ seconds. IDK what it is, wife is seeing this in Photos, I’m most acutely aware in Safari, all iOS 13 releases have done it, 13.2 worst

Steven Aquino:

I generally don’t gripe about these kinds of things, not in public anyway, but iOS 13.2 is not great performance-wise. It’s even worse on the iPad.

toto:

Wow! #ios 13.2 kills background processes so aggressively that it even kills the webkit process for safari view controllers while you are looking at the page forcing a reaload.

Juli Clover:

Apple today released the first beta of iOS 13.3 to developers, and based on early reports from those who have downloaded the new update, it fixes the frustrating multitasking bug that is impacting many iOS 13.2 users.

Update (2019-11-08): Nick Lockwood:

I’ve seen a few mentions of how aggressive iOS 13.2 is about killing background apps, but this is ridiculous - if I start typing in a web form and let my phone go to sleep even for a second, when I unlock it again it’s killed and reloaded the page, and discarded what I’d typed 🤬

Juli Clover:

According to Apple’s release notes, the [iOS 13.2.2] update fixes an issue that could cause apps running in the background to unexpectedly quit, which led to background apps refreshing more often than normal.

Update (2019-11-25): Josh Centers:

To address complaints about apps quitting unexpectedly in the background after the iOS 13.2 and iPadOS 13.2 updates, Apple has released iOS 13.2.2 and iPadOS 13.2.2.

Nick Lockwood:

This is absolutely not fixed in 13.2.2 😔

Peter Steinberger:

13.2.2 doesn’t seem to fix the multitasking issues. 13.3b1 does.

Josh Centers:

Seventh time’s the charm? In its continuing cavalcade of updates, Apple has released iOS 13.2.3 and iPadOS 13.2.3 to address four specific bugs.

Adrian Hon:

If you’ve ever bought an IAP or subscription via Testflight, there’s a good chance you’re no locked able update any iOS apps. It’s affecting me, and it looks like it’s spreading fast #appleupdatefail

There is no workaround and Apple’s suggested solutions of signing in/out, resetting Network Settings, wiping device, etc. have not worked for anyone and are a complete waste of time.

Marco Arment:

SeeThe latest iOS 13.3 beta brings back the Mail bug where the inbox often stops updating with new mail until you go back to the folders screen, then return to the inbox.

Glad it’s just a beta… but scared to see a 13.0 bug return to a late-stage beta several releases later.

Update (2019-11-26): Sean Heber:

App was suddenly crashing over and over again whenever I went to the background. I plugged it in and managed to catch it in the debugger and see this stack trace. It seems like it’s hanging waiting to talk to a BGTaskScheduler helper process or something? Everything is so buggy.

I just adopted the new iOS 13 BackgroundTask API to do app refresh and now I see this happening. 😡

Steve Troughton-Smith:

w/ iOS 13.2 breaking multitasking outright, BackgroundTasks crashing apps in the background, spitting out errors all the time, you start to wonder if Apple has discoveryd’d multitasking in iOS 13… 😅 Apple doesn’t have a good track record of revamping previously-working systems

Tuesday, October 29, 2019

Time Machine Beaten by the Clock

Howard Oakley:

Times here are given in UTC, which would a minute earlier have been an hour behind local time, so this backup would have actually started at 02:00:41 according to local clock time had the clocks not been changing that night. However, the clock change occurred at 02:00:00 local time, so for the second time that morning, the local time would have been showing 01:00:41, this time the same as UTC.

These entries show Time Machine successfully making its three snapshots, and naming each com.apple.TimeMachine.2019-10-27-010127, in accordance with both UTC and local time, the latter having just changed.

[…]

By an odd quirk of fate, this backup chose to try to create its three snapshots at 02:01:27. For a reason I can’t fathom, it decided to name those snapshots as if it was an hour ago, 01:01:27, which gave them identical names to those made during the last backup. Those snapshots failed because of the name conflict, and the whole backup was aborted as a result.

He disagrees, but from what I see—farther from the prime meridian—Time Machine names its snapshot folders using local time, not UTC. So, even during normal operation, it’s possible for two different instants in time to map to the same name.

I’d love to know why Apple doesn’t use UTC in the filesystem. The restoration UI would still have the opportunity to format the dates for display using local time.

No ETAs

Brent Simmons (tweet):

You don’t know what you forgot to take into account, or what pieces you underestimated or overestimated. You never know what weird bugs will trip you up.

You don’t know what OS release between now and then will make you spend extra time on something.

[…]

The problem with stating an ETA then, is that it sets up expectations. When you don’t meet them — and you won’t, most of the time — people sometimes get upset.

[…]

The only reason anything ever ships is because people just keep working until it’s ready.

Rich Siegel:

I support and endorse this position. It’s how we’ve done it for close to thirty years.

Josh Hrach:

Great post. If someone asks me for a feature, I tell them the version it’ll be in, not when that version will be out. That’s easier for us to control.

Even this can be difficult because sometimes there’s an unexpected blocker that makes it impossible to implement a feature that seemed doable.

Peter N Lewis:

Absolutely agree. The most I will ever say is “it is done for the next version” (ie, I have actually implemented, it is actually running on my Mac, and so it will be part of the next release).

Matt Brenneke:

Old man Matt has had too many features postponed or killed by schedules, or management, or politics, or bugs to promise anything to anyone.

Apple v. Corellium

Thaddeus E. Grugq:

This is an entertaining read and doesn’t cask Apple in the best light.

[…]

This is pretty blatant. I’m no lawyer, but it’s hard to see how Apple can spin:

🍏: “we will pay you bug bounty money to fund your company.”

C: loadsa bugs

🍏: Thanks for the bugs, about that bounty? lol j/k

p.s. now we’re suing you, and we want all your bugs.

Jeff Johnson:

Apple hasn’t done ANYTHING they announced at BlackHat. All talk, no action.

So far there are no special iPhones for security researchers, nor has the Mac bug bounty program been opened.

Previously:

Update (2019-11-02): Thomas Brewster (tweet, MacRumors):

Wade says he’s consistently handed details of security weaknesses to Apple. In 2016, after Apple announced it was launching a so-called Bug Bounty, where researchers are given monetary reward for disclosing vulnerabilities in iOS (now up to $1.5 million), Wade planned on partly funding Corellium with those bounties. He wanted to do it transparently, he says, and in one email dated September 27 2017, Wade explicitly told Apple’s manager for security and privacy programs, Jason Shirk, that he would start submitting bugs to fund his iPhone virtualizing startup.

The filing also suggests Apple encouraged Corellium’s early business. Emails provided to Forbes indicate Apple was at least impressed. Just as Corellium was getting started, in August 2017, Apple hosted a dinner in China for the Tencent Security Conference. Wade and Shirk dined together on Apple’s dime and later exchanged messages, according to the email threads. In one Wade boasted that he could virtualize the latest iPhone. Shirk’s response? “Wow! You got iOS 10.3 running virtually?” Wade cheekily messaged back: “Actually, we’re running iOS 11 :).”

At some point in the last year, something soured. In its filing on Monday, Corellium said that it hasn’t been paid for any of the vulnerabilities it submitted. In a counterclaim, the startup said that rather than it owing Apple anything, the Cupertino company owed it more than $300,000.

Update (2019-11-27): Will Strafach:

peeking through latest Corellium filing and let me tell you, this is not a good look for Apple at all.

either the left hand does not know what the right hand is doing, or Apple is doing business in an incredibly shady manner.

I am quite shocked by this.

Azeria:

Unredacted version of Corellium’s legal answer is public

This entire lawsuit is an obvious attempt to decreases the value of Corellium to either

1) own them, or
2) put them out of business to prevent researchers from finding bugs

Pwn All The Things:

If true, this is a gross case of monopoly abuse by Apple[…]

The tl;dr is this case isn’t about copyright or exploits, it’s about Apple capturing the security market for iOS bug hunters, and shutting down all the avenues of non-invited security research on their platform.

macOS 10.15.1

Juli Clover:

macOS Catalina 10.15.1 is a fairly significant update, introducing new emoji characters that were added in iOS 13.2 earlier this week, adding support for the AirPods Pro that are launching tomorrow, and bringing Siri privacy controls to the Mac to allow users to opt out of sharing their Siri recordings with Apple.

HomeKit Secure Video support is included, as is support for adding AirPlay 2-enabled speakers in scenes and automations in the Home app. There are also quite a few bug fixes for Photos, Messages, Contacts, and more.

The standalone download isn’t yet available, but it should eventually show up here.

There are no documented fixes for Mail, and I’ve not heard any reports that the data loss bugs are fixed, so I’m assuming they are not. I expect that macOS 10.15.1 is mostly stuff that was in the works before 10.15.0 shipped.

Oluseyi Sonaiya:

Random consideration/thought/question: when (if ever) will Apple let us create our own time-of-day-responsive desktop/lock screen/home screen background bundles? I enjoy the transitions in the image through the course of the day each time I wake my Mac.

I’d love to have that live on my Mac desktop, and be able to randomly/programmatically change it each day. It’s whimsical and non-essential, and the sort of thing Apple should let third parties in on.

Indeed, at first I discounted that feature as a sort of gimmick to go along with auto Dark Mode, which I don’t use, but it turns out that it makes me happy.

Previously:

Update (2019-10-31): Adam Engst:

Once you have your 16 images, open GraphicConverter 10.6.5, choose File > Browse, and navigate to the folder that contains your images.

Select all the images, Control- or right-click one of them, and in the large contextual menu that appears, scroll way down and choose Export > Dynamic Desktops. Name your file, navigate to /Library/Desktop Pictures as the destination folder, click OK, and wait a bit, since it takes GraphicConverter some time to convert all the images to HEIC and assemble them into the container file.

See also: Mr. Macintosh, Apple, Howard Oakley.

AirPods Pro

Apple (Phil Schiller, Hacker News, MacRumors, 9to5Mac):

Apple today announced AirPods Pro, an exciting addition to the AirPods family that features Active Noise Cancellation and superior, immersive sound in an all-new lightweight, in-ear design.

[…]

Each earbud comes with three different sizes of soft, flexible silicone ear tips that conform to the contours of each individual ear, providing both a comfortable fit and a superior seal — a critical factor in delivering immersive sound. To further maximize comfort, AirPods Pro use an innovative vent system to equalize pressure, minimizing the discomfort common in other in-ear designs. AirPods Pro are sweat- and water-resistant, making them perfect for active lifestyles.

[…]

Transparency mode provides users with the option to simultaneously listen to music while still hearing the environment around them, whether that’s to hear traffic while out for a run or an important train announcement during the morning commute. Using the pressure-equalizing vent system and advanced software that leaves just the right amount of noise cancellation active, Transparency mode ensures that a user’s own voice sounds natural while audio continues to play perfectly.

This sounds great. I’ve added an AirPods Pro icon to ToothFairy 2.6.

Maximilian:

AirPods Pro have a triple tap and long press gestures!

Benjamin Mayo:

The change from a double-tap to a press is something that I hope trickles down to the normal AirPods. The double-tap gesture means pushing the buds down your ear canal, with a relatively strong intensity lets the AirPods not detect your intent. With the new force sensor in the stem, the idea is you can just pinch either side of the stalk, mimicking the press of inline buttons on old Apple wired headphones. As you press down evenly with a finger on both sides of the stalk, the AirPods Pro themselves should stay fixed in place and it won’t be anywhere near as uncomfortable as the tapping.

I wonder whether pressing/squeezing is going to feel slower than tapping.

Mike Rundle:

The killer feature of the AirPods Pro is the interchangeable silicone tips that click into place and don’t have to be mashed and misshapen to reattach like every other stupid pair of earbuds on the market.

John Gruber:

The “force sensor” seems like a cool feature too. Not sure how many times Apple has to learn this, but one button is better than zero buttons.

The Pro earbuds have stems that are quite a bit smaller than regular AirPods, but the Pro case is about 15 percent larger by volume.

Malcolm Owen:

The AirPods Pro are best described as shorter and squatter than the AirPods, having a shorter height of 1.22 inches against 1.59 but measuring wider and deeper at 0.86 by 0.94 inches against 0.65 by 0.71 inches. To external viewers, the main difference is the stem of the AirPods Pro is a fair bit shorter than for the AirPods, which is their biggest clue as to which version is being worn.

The short and squat changes also apply to the case, which measures 1.78 inches in height and with a width and depth of 2.39 inches and 0.85 inches respectively. The case for the AirPods is, again taller at 2.11 inches but not as wide at 1.74 inches, and with a comparable 0.84 inches in depth.

Dan Moren:

Apple claims that the AirPods Pro will feature the same five hours of listening as their predecessors, though if you turn on noise-cancelling, that will drop to four and a half hours. But using the charging case, Apple still says you can get 24 hours of listening time or 18 hours of talk time. Plus it seems the AirPods Pro will come with a Qi-enabled charging case by default.

Joe Rossignol:

The first AirPods Pro unboxing videos have surfaced on YouTube from tech reviewers Marques Brownlee, Justine Ezarik, and Safwan Ahmedmia.

The reviewers were all impressed with sound quality and active noise cancellation, with Brownlee saying noise cancellation on the AirPods Pro is roughly on par with the new Beats Solo Pro. As for fit, Ahmedmia found the AirPods Pro with in-ear tips to be more comfortable than the regular AirPods.

Joe Rossignol:

If you lose or damage the AirPods Pro, the left and right AirPod will cost $89 each to replace in the United States, totaling $178 for a pair. The wireless charging case is also $89 to replace if lost or damaged.

The fees are lower if a customer has purchased AppleCare+ for Headphones.

There are still complaints that AirPods batteries aren’t replaceable. But I don’t see how that could work, and most of the environmental impact is likely from the batteries themselves. Those would be discarded in any case, and they’re tiny compared with other batteries everyone uses.

whalesalad:

I really struggled to take the plunge on the original AirPods and it has been one of my top 10 purchases ever in my life without a doubt. I stood there holding the little $200 box in my hand and really danced back and forth in my mind about whether or not they would really be necessary. If they broke, I would go buy a new pair immediately.

gamblor956:

I’ve demoed my $25 Anker or mpow earbuds (the Airpod-likes) to many coworkers sporting Airpods and they’re universally astounded by the quality of the cheaper buds. I’ve converted quite a few people who lost their Airpods.

Mike Murphy:

Sony’s headphones will cost you $230, which is a lot for a pair of wireless earbuds, regardless of what they do. For comparison, Apple’s AirPods start at $159, around as much as other well-received competitors.

Juli Clover:

The Powerbeats Pro fit on the ears super securely, and it’s unlikely these are going to fall out of your ears during physical activity. Powerbeats Pro fit in the ear canal unlike the AirPods, and will drown out ambient noise, which is something to be aware of.

[…]

Powerbeats Pro have a carrying case, but it’s a lot bigger than the AirPods case. It’s not really pocketable, and it’s worth noting that wireless charging is not an included feature.

The Powerbeats Pro has been reduced from $250 to $200. Hopefully, AirPods Pro will be similarly water resistant.

John Gruber (tweet):

The AirPods Pro “overview” web page is a strange beast. It pegs my 2015 MacBook Pro’s CPU — even when I’m not scrolling. I closed the tab a few minutes ago and my fan is still running. The animation is very jerky and scrolling feels so slow. There’s so much scrolljacking that you have to scroll or page down several times just to go to the next section of the page. The animation is at least smooth on my iPad and iPhone, but even there, it feels like a thousand swipes to get to the bottom of the page. It’s a design that makes it feel like they don’t want you to keep reading.

The photos look fantastic, but the scrolljacking is really annoying. I think this started with the 2013 Mac Pro. Apparently, Reduce Motion helps.

Tushar Boralkar:

Have you noticed? They are both of Right Ear...!

Matthew Panzarino:

I do love a good exploded AirPod

Nick Heer (tweet):

By the time I got to the bottom on my non-Retina MacBook Air, it had loaded over 66 MB of assets and had chalked up over 1,600 HTTP requests — for one webpage.

Nick Heer:

The AirPods Pro webpage is so gigantic because those large trigged-on-scroll videos aren’t video files, but individual JPG frames.

Kaveh Vaghefi:

It’s like having to play a video manually by scrubbing through it. It’s awful. Just give me a play button or make it a simple page. I don’t want to manually scroll through a video.

Ryan Jones:

OMFG, the AirPods Pro website is maddening on iOS. Maddening.

Casey Tourangeau:

Flicking through the page in mobile causes multiple chunks of text to appear and disappear before they can be read; but because they aren’t visually tethered to a scroll action, you don’t know how far to go back to find what you missed, creating even more frustration.

Previously:

Update (2019-11-01): Kyle Howells:

I hope the AirPods Pro still have an option to tap instead of using the buttons. One of my favourite features is how I can control them through my helmet when snowboarding or biking, when I have no physical access to them. I just hit the side of my helmet and it triggers inside.

The option to tap is unfortunately gone, which is too bad because I often want to control my AirPods while wearing a hat or have dirty hands.

Max Seelemann:

First day with AirPods Pro... with a winter cap 🧢 ❄️ covering ears 👂 riding bike 🚲.

- can’t squeeze because covered and/or gloves
- no Siri because doesn’t hear you
- don’t hear cars (lol of course!)
- transparency mode makes ugly noises because covered

🤷🏼‍♂️

Ish Abazz:

I guess I’ll get used to it but I miss being able to tap on my AirPods. The squeeze, much like the new longer press that replaced Touch ID, takes too long for my liking.

John Gruber:

Noise cancellation worked really well for me. I own a pair of Bose over-the-ear noise canceling wireless headphones, but almost exclusively wear them only on airplanes and trains. Wearing noise-canceling earbuds on the subway and walking through the city is going to take some getting used to. It’s so good you really do lose sense of your surrounding aural environment.

[…]

The “Transparency” mode is interesting and a little mind-bending. It really does make it possible to conduct a conversation while still enjoying the benefits of noise cancellation.

[…]

The force sensor — the flat section on the earbuds stem that faces forward when in your ear — is effectively a button. But it’s not a button. It doesn’t actually move, and it doesn’t provide haptic feedback. But it acts like a button and — most importantly — sounds like a button. When you press it, the AirPod Pro plays a click.

Tim Cook, quoted by Chance Miller (tweet, Reddit):

We’re anxious to see the customers for the new AirPod Pro. But I would guess that one, particularly in the early going, will be people that have AirPods today and want to also have a pair for the times they need noise cancellation.

Frank Reiff:

After a day with my AirPods Pro I can say: they are awesome if/when you need noise canceling, but they are less comfortable and much fussier than the normal ones. If you can afford both, that’s a great compromise😉.

See also: Accidental Tech Podcast.

Joe Rossignol:

To help decide between the AirPods and AirPods Pro, read our side-by-side comparison of the earphones below.

Tim Hardwick:

This article explains how to control the noise cancellation feature on Apple’s AirPods Pro wireless earbuds.

Kieran Senior:

Pro tip for AirPods Pro. Instead of long squeezing then squeezing once to pause and enable transparency when someone talks to you, just create a shortcut named “be quiet”, so then “Hey Siri be quiet” will allow you to hear.

Jon Maddox:

How does this not take an eternity to execute in the context of someone standing right next to you demanding your immediate attention?

James Dempsey:

The noise cancelling is impressive.

[…]

I have a pair of Bose over-the-ear noise cancelling headphones that I primarily used on flights. They are very bulky and so I’ve fallen out of the habit of bringing them along.

I will definitely be bringing my AirPods Pro on flights.

Ryan Block:

AirPods Pro update: brought them to a relatively (but not ridiculously) noisy cafe, and compared them with my daily driver Bose QC 35 II (v4.5.2).

Thus far, the AirPods Pro are, for me, noticeably better at both noise cancelation and sound isolation. I’m pretty surprised!

Quinn Nelson:

AirPods are the most perfect mediocre headphones ever made.

Ryan Jones:

The original AirPods were out of stock for ONE AND A HALF YEARS.

Huge props to Apple for AirPods Pro being well stocked. A very big task that gets no glory.

Ryan Jones:

Apple put up all the AirPods Pro billboards without the AirPods, then added them.

Mike Wuerthele:

iFixit has completed its tear-down of the AirPods Pro, and have found that it is still essentially not user repairable at all.

Walt Mossberg:

Just got my AirPod Pros (I won’t use Apple’s odd pluralization) and I have a question. Is it only me, or is it waaay harder to quickly grip them and remove them from the charging case?

John Gruber:

Start it like this, with index finger behind them, and it’s even easier than old AirPods. From the the side though, it’s hard.

Jason Kottke:

I bought some AirPods several months ago thinking I was getting wireless headphones, but very quickly realized they were actually an augmented-reality wearable computer.

Ben Bajarin:

The more I play with AirPods Pro the more I am convinced Apple is moving toward computational audio experiences including better hearing.

Next up will be computational vision.

John Gruber:

This comment crystalized a thought that I couldn’t quite put my finger on while trying to describe transparency mode: it is audio AR. That’s it.

Update (2019-11-06): Holger Bartel (via Hacker News):

The point of sending 1578 requests with 65Mb down the wire being a lot of data still stands, but there’s much more to it.

Update (2019-11-09): Jason Snell:

I should say that as cool as Transparency is, it’s not a cure-all. For it to really be effective, you need to turn down your audio to a relatively low volume, or you’ll still miss everything. In fact, I found myself wishing for a way to make the Transparency shortcut also reduce my playback volume, since I inevitably found myself reducing volume every time I turned on Transparency, and increasing it when I turned noise cancellation back on. No such luck.

Transparency is made more useful because the in-ear design of the AirPods Pro means it’s a little bit more awkward to pop the earbuds in and out. As a result, I’ve found that I am much less likely to pull out an earbud when someone is approaching me while I’m walking my dog on a local path.

[…]

The AirPods Pro are perilously close to becoming the only headphones I use when I’m away from my desk.

Update (2019-12-16): Mike Rundle:

After taking and comparing the AirPods Pro + Bose QC35s on a recent flight, here’s my take: both cancel noise extremely well, with each blocking a slightly different set of frequencies. But with big over-ear headphones I can’t rest my head against the window. AirPods Pro FTW 🤘

TJ Luoma:

629 articles about the Pro AirPods and not 1 of them warned about noise cancellation preventing us from realizing the washing machine didn’t actually start when we pushed the button and so we wasted an hour, came back and found dry clothes.

Tim Hardwick:

We’ve collected 14 of our favorite AirPods Pro tips to help you get the most out of Apple’s latest and greatest wireless earbuds.

Michael Kummer:

In this AirPods Pro review, I’ll tell you why I ultimately decided to spend the $249 and ditch my other wireless headphones.

Gene Munster:

If you haven’t bought AirPods Pro already, you probably won’t have them before the holidays

They are out of stock across the US with delivery dates in mid-Jan

Yesterday, our check of 120 stores showed about half with supply. As of this afternoon, they’re all sold out

Update (2021-08-18): Jesper:

For those products, the platonic battery life is fine. For the Apple Watch and iPhones, as long as you can charge them as part of your day, it all works. But that’s not the story for the AirPods, at least as I use them. They would have to last for two or three times longer. The only time I’ve seen that with Apple products is recently when Apple switched Macs to their own silicon. But AirPods already use, and probably are only possible because of the W series of chips powering them to begin with. And with the charging case, it’s not impossible to keep them alive more or less indefinitely. It’s just a much worse time.

[…]

The AirPods can be many things at once: one of the better products in a market segment; a product fighting physics at every step and having the consequences to show for it; a product scarred from birth with the expectation of being a clear technological improvement over wired headphones. No product with its features can be unambiguously better than wired headphones; too much gets lost in the shuffle. It’s not a fair fight, and Apple did it (and itself) a disservice by sticking it with the unwarranted removal of the headphone jack.

[…]

The AirPods Pro are not the first piece of technology to bring unexpected mental weight into your life on a cushion of marketing, the promise of looking less like an old relic and the worship of gadgetry; nor will they be the last.

Monday, October 28, 2019

Enabling Defragmentation on APFS Hard Drives

Howard Oakley:

You can try this yourself, although the documentation of defragmentation is minimal. The diskutil apfs command allows you to enable and disable defragmentation at Container or Volume level, with a command such as diskutil apfs defragment volumeDevice enable enabling it on the specified volume. But I wouldn’t expect it to have any significant impact on the poor performance that you’re experiencing on APFS-formatted hard drives. I hate to say it, but if you possibly can, it would make good sense to keep those in HFS+ format until you replace them with SSDs.

Previously:

Update (2023-08-31): Felix Schwarz:

Three days ago, I noticed an external HDD’s write performance had deteriorated to about 2-5 MB/s, making me wonder if it was about to fail - or if it is an APFS performance issue.

I subsequently learned about APFS defragmentation and enabled it for the HDD’s APFS container via

diskutil apfs defragment [disk] enable

Coming back to the disk two days later, write performance is back to normal.

How to Mirror Selected Screens

Adam Engst:

The problem was that Sal could only see the MacBook Pro and the iPad on the podium. For anything that happened on the projector, he had to peer into the distance to work from the projected screen. That proved difficult, but he soldiered through the presentation.

Afterward, Ed Marczak, a speaker and advisor to MacTech Conference who wasn’t in the room during the setup time, shared a little-known tip that would have made things easier on Sal. It turns out that if you have three (or more) screens connected to a Mac, you can mirror two of the three by Option-clicking one and dragging it on top of another. This does exactly what you’d expect. The Mac acts as though it has only two screens instead of three, and the same image appears on the two that are mirrored, with the third being separate.

Retroactive to Run Aperture, iPhoto, and iTunes

Tyshawn Cormier:

After updating to macOS Catalina, Aperture and iPhoto no longer runs, and iTunes is replaced by Music, TV, and Podcasts. If you still need to run Aperture, iPhoto or iTunes on macOS Catalina, the Retroactive app makes it easy.

[…]

Retroactive will install or modify the app you chose. Modifying Aperture and iPhoto to run on macOS Catalina should only take about 2 minutes.

[…]

All Aperture features should be available except for playing videos and exporting slideshows.

Those require 32-bit components. Running Aperture this way is probably a little risky since it was never designed to work on Catalina. On the other hand, it may be a good option since there are issues getting Aperture to work in a virtual machine.

Here’s more about how Retroactive works:

It’s no news that the brave and the reckless have been able to monkey-patch and shoehorn macOS into running system apps under completely unsupported configurations. A rundown of the brave heroes.

[…]

To proceed, we need to get NyxAudioAnalysis.framework from macOS Mojave. Because I upgraded from macOS Mojave to macOS Catalina, I don’t have that framework file anymore.

[…]

The stack trace is fascinating. It looks like some sort of access violation when initializing a font. We are going to fix this by swizzling Aperture.

Previously:

The Team Behind the 6502

Team 6502 (via Hacker News):

When it was introduced in 1975 by MOS Technology of Valley Forge, Pennsylvania, the 8-bit microprocessor sold for a fraction of the cost of other microprocessors, causing rapid decreases across the entire computing industry. Featured in such seminal products as the Apple I and II, the Commodore PET, and the BBC Micro, as well as Atari and Nintendo game consoles, the 6502 microprocessor has been the brains inside toys, office machines, and medical devices too numerous to mention. As one of the most widely used microprocessor architectures of all time, the CMOS related form of the 65XX developed by the Western Design Center is still in production today, with an estimated six billion units so far produced.

While the story of Chuck Peddle, the visionary who conceived of the 6502, and that of design team member and founder of the Western Design Center, Bill Mensch, are widely recognized and recorded, the stories of the other MOS Technology engineers and employees who also worked on the 6502 and their contributions are not. This website seeks to change that.

Harry Bawcom:

In the 1970s much of what today is done by computer had to be done by hand. In the case of the 6502, once the design of the chip was completed by the team that worked on the chip’s architecture, that schematic was given to the design layout team. It was our job to create a topological layout from that schematic, a layout of all the transistors which made up the 11 or so glass reticles, also called "masks" that were then used to create the chip.

[…]

Design rule checking (the physical spacing between metal stripes: too close together and they will always short out in manufacture, making the chip non functional) and verifying schematic to layout was all manual. It was done by coloring a plot with colored pencils again and again as coloring a plot guided your eye to notice incorrect spacings or design rule violations.

Sydney Anne Holt:

We were given the logic drawings from Bill Mensch and Ray Hirt and etc, and turned them into the drawing you see in the picture from the Electrical Engineering Times article from 1975.

To do this, we drew them in pieces on big sheets of mylar that fit together like a puzzle. In order to do a careful logic to layout check we taped all the pieces together on the floor and crawled around on it to trace out the lines. The drawings were then digitized into layers so masks could be made from them.

I remember that once, one of the guys took off his shoes and was on the mylar checking when it was discovered his socks were damp and his toes were erasing the drawing as he moved along. Fortunately, it was caught very soon so the rework was minimal.

Friday, October 25, 2019

GameClub Revives 70 Classic iOS Games

John Vorhees (via Federico Viticci):

There’s a terrific GameClub app that organizes the company’s catalog of titles in one place, which I’ll get into shortly, but the games can be downloaded separately, and you can subscribe whether you use the GameClub app or not. If you download a game directly, you’ll simply be prompted to subscribe to the service from inside the game.

Each game also includes a link to restore your purchase if you previously purchased the game on the App Store before it became part of GameClub. For example, that means that anyone who bought a game like Sword of Fargoal, which sat untouched for nine years before joining GameClub, can re-download a version that’s compatible with today’s Apple hardware for free and without signing up for GameClub. That’s possible because it’s the same game that was released long ago, just updated and re-released by GameClub. It’s also entirely in sync with GameClub’s preservation mission and demonstrates thoughtfulness and respect for users which match the love the company clearly has for the games they’ve restored.

[…]

If all of this sounds a lot like Apple Arcade, that’s because in many ways, it is. GameClub costs $4.99 per month after a one-month free trial, just like Apple Arcade. The subscription is managed through the App Store just like other app subscriptions, but that means that unlike Arcade, the subscription cannot be shared via Apple’s Family Sharing feature.

GameClub has a catalog of games that’s similar in size to Apple Arcade too. The company has signed over 100 classic games for the service, 70 of which are available today, and new games will be added weekly. Interestingly, GameClub has also indicated that the service will eventually include new titles too.

Previously:

Apple TV App for Amazon Fire TV

Jacob Kastrenakes:

With a week to go before its TV service launches, Apple has brought the Apple TV app to Amazon’s streaming devices. The Apple TV app is now available on three different models of Fire TV devices — the Fire TV Stick 4K, the Fire TV Stick (2nd Gen), and the Fire TV Basic Edition — with support for more models coming soon.

The app will allow you to watch shows from Apple’s streaming service, Apple TV Plus, which will launch on November 1st. But it also has perks for non-subscribers: it’ll let you stream any movies or TV shows you’ve purchased through iTunes in the past, too. You can also watch new purchases and rentals through the app, but you’ll have to make those purchases through another device with iTunes on it. You can’t do it straight from the TV.

Benjamin Mayo:

We are now in the timeline where Amazon doesn’t let you buy Kindle books through the Kindle app on iOS because they don’t want to give Apple 30% and Apple doesn’t let you buy content through the TV app on the Amazon Fire TV because they don’t want to give Amazon 30%.

Although there are probably also technical issues preventing Amazon from offering its whole Kindle catalog through In-App Purchase.

Previously:

Firefox 70 for Mac

Tim Hardwick:

Mozilla has launched Firefox 70 for macOS, which continues to enhance the browser’s privacy features as well as bringing significant improvements to performance and power efficiency.

[…]

Firefox 70 also introduces a Privacy Protections report, which offers a summary of the trackers Firefox has blocked. So if you think the blocking is too strict (if a website doesn’t work properly, for example) you can check the report and customize the protection accordingly.

See also: the release notes.

Direct to SwiftUI

Helge Heß:

Direct to SwiftUI is an adaption of an old WebObjects technology called Direct to Web. This time for Apple’s new framework: SwiftUI. Instant CRUD apps, configurable using a declarative rule system, yet fully integrated with SwiftUI.

[…]

Without applying any rules, you’ll essentially get a simple database browser and editor, for all SwiftUI targets. When using Direct to SwiftUI, this is what you start with, a complete CRUD frontend. You then use rules to tweak the frontend, and potentially replace whole generic D2S Views. Or mix & match.

[…]

D2S uses a rule engine called SwiftUI Rules which we introduced in another blog entry. You might want to read that now, or later.

Marcel Weiher:

Definitely cool. Should remember, however, that Direct2Web applications were not just quick/instantaneous to build, but also utterly incomprehensible and impossible to maintain.

Previously:

HKmap Live Removed From the App Store

CNBC (tweet, Hacker News):

Apple on Wednesday removed an app that protesters in Hong Kong have used to track police movements from its app store, saying it violated rules because it was used to ambush police.

[…]

Apple rejected the crowdsourcing app, HKmap.live, earlier this month but then reversed course last week.

Apple said in a statement that it had began an immediate investigation after “many concerned customers in Hong Kong” contacted the company about the app and Apple found it had endangered law enforcement and residents.

[…]

In 2011, Apple modified its app store to remove apps that listed locations for drunken driving checkpoints not previously published by law enforcement officials.

John Gruber:

I still haven’t seen which local laws it violates, other than the unwritten law of pissing off Beijing.

Maciej Cegłowski:

A point that needs reiterating is that the @hkmaplive app doesn’t contravene any Hong Kong law that I am aware of. This app helps answer questions like “will I get shot with a bean bag round if I come out of this MTR station, because the police raised a colored flag I can’t see”

John Keefe:

Apple just took the Quartz app out of the Chinese app store at the request of China, and qz.com is now blocked from mainland China. Our excellent @qz coverage of ongoing Hong Kong protests may be the reason[…]

Noah Smith:

1984, meet 2019

François Chollet (Marco Arment):

“Courage” is just for removing headphone jacks

Francisco Tolmasky:

Apple (and every other App Store owner) invited this dilemma. They declared themselves the arbiter and took on this responsibility. They didn’t even allow a side load escape hatch. Now they have to themselves take an explicit stance, as opposed to being a neutral platform.

Daniel Jalkut:

Apple could have engineered their way out of this conundrum, the same way they engineered their way out of being liable for sharing private user data. Embracing some kind of user-facing side-loading solution would diminish the impact of Apple’s own authoritative power over users.

Murray Watson:

I have no confidence in Apple under Tim Cook. This, on top of removing the Network Extensions API that allowed Chinese people to sideload VPN applications, is a clear indication of a company under the thumb of an authoritarian regime.

Secretary for Transport and Housing Frank Chan Fan (via John Gruber):

Indeed the taking down of the app from the Apple store is the decision made by the operating company — Apple. So, if you want to know the reason for them to take down the app, maybe you can approach Apple and the Apple store.

Maciej Cegłowski:

Apple: we took down the @hkmaplive app at the request of the Hong Kong authorities

Hong Kong authorities: you’re going to have to ask Apple why they took the app down

Tim Cook (MacRumors):

It is no secret that technology can be used for good or for ill. This case is no different. The app in question allowed for the crowdsourced reporting and mapping of police checkpoints, protest hotspots, and other information. On its own, this information is benign. However, over the past several days we received credible information, from the Hong Kong Cybersecurity and Technology Crime Bureau, as well as from users in Hong Kong, that the app was being used maliciously to target individual officers for violence and to victimize individuals and property where no police are present. This use put the app in violation of Hong Kong law. Similarly, widespread abuse clearly violates our App Store guidelines barring personal harm.

We built the App Store to be a safe and trusted place for every user. It’s a responsibility that we take very seriously, and it’s one that we aim to preserve. National and international debates will outlive us all, and, while important, they do not govern the facts. In this case, we thoroughly reviewed them, and we believe this decision best protects our users.

John Gruber (tweet, Hacker News):

I can’t recall an Apple memo or statement that crumbles so quickly under scrutiny. For a company that usually measures umpteen times before cutting anything, it’s both sad and startling.

Damien Petrilli:

No word why they removed the Quartz App?

Shocker.

Typical fallacy: you scope a little piece of the issue, dismiss it and act like you addressed the whole thing.

Daniel Vassallo:

By Tim Cook’s logic the Messages app should be removed too. I’m sure there’s plenty of evidence of illegal activity targeting individuals that happened (and continues to happen) on the Messages app.

Maciej Cegłowski:

As a user of the app, and an observer of the Hong Kong protests, I would like to address two serious allegations in this email that I believe are false.

The first allegation is that “the app was being used maliciously to target individual officers for violence”. This makes no sense at all. The app does not show the locations of individual officers at all. It shows general concentrations of police units, with a significant lag.

As the developer and @charlesmok, a Hong Kong legislator, have pointed out, the app aggregates reports from Telegram, Facebook and other sources. It beggars belief that a campaign to target individual officers would use a world-readable crowdsourcing format like this.

[…]

The second, related allegation is that the app helps “victimize individuals and property where no police are present”. Again, does Mr. Cook have any evidence for this claim? The app does not show an absence of police, it shows concentrations of police, tear gas, riot flags etc.

Zeynep Tufekci:

The claims make no sense and have no evidence. Plus, police locations aren’t secret! It’s a small city. The key function of the app is to avoid the police/tear gas

HK map app can’t be used to “individually” target police because it doesn’t have any granular reporting and as anyone in Hong Kong can attest, the police travel in large groups. Repeat: the app has no granular function. More like police here, tear gas there, road block here.

Victimizing individuals when police aren’t present? It’s pretty clear if the police aren’t there if you’re already there. Anyone using this app (which has a lag) to do anything “fine-tuned” is an idiot and HK police will be faster. For a family trying to avoid tear gas? Useful.

Someone (Hong Kong authorities? It’s unclear because even they aren’t making these claims) is giving Apple wrong information, and rather than believing Hong Kong legislators, Apple is choosing to believe nonsensical claims. Seriously, the app is useless for the described goals.

Also, the protesters police has trouble with (so-called frontliners) don’t use this. They scatter [“be water”] as soon as police is spotted, the app lags any police attempt at ambush by a good deal. They see the police, yell and blow whistles. 30 seconds later, they’re gone.

Charles Mok (via John Gruber):

Today I wrote to Tim Cook, CEO of Apple, to tell him his company’s decision to remove HKmap live app from Appstore will cause problems for normal Hong Kong’s citizens trying to avoid police presence while they are under constant fear of police brutality.

Dare Obasanjo:

Next time Apple tells us that “privacy is a human right” as justification for blocking cookies and other attacks on Google’s ads business, it’ll be good to remember how they acted when it was about actual human rights.

Juli Clover (Hacker News, Bloomberg):

U.S lawmakers on Friday sent a letter to Apple CEO Tim Cook expressing concern over Apple’s decision to remove the HKMap Live app from the App Store after complaints from the Chinese Government.

The letter [PDF] calls Apple’s removal of the HKMap Live app "disappointing" and points out a prior quote from Tim Cook that reads “At Apple, we are not afraid to say that our values drive our curation decisions.”

John Gruber:

When China declares an app illegal in mainland China, Apple has no choice but to comply. The HKMaps decision was different — it was a political decision, not a legal one — and that difference is worth emphasizing. Apple could have chosen to fight for the HKMaps app.

Contrary take from Eric Jackson:

Love this first clip from @ReformedBroker & discussed it with him last week. Couldn’t agree more:

Tim Cook is way better for this moment in time than Steve Jobs.

Cook has unbelievable political instincts and ability.

Juli Clover:

Apple CEO Tim Cook is now the chairman of the advisory board of the Tsinghua University School of Economics and Management (SEM), and he recently hosted the 20th annual meeting of the committee.

Ben Bajarin:

Been reading half a dozen Wall St. notes on Apple and most are overwhelmingly bullish on Apple’s business.

Many calling for the stock to get above $260 and this nugget as well in spite of the trade issues.

AAPL has outperformed the S&P500 by ~18% since last earnings call.

Nick Heer:

Meanwhile, HKmap.live remains available on Google Play stores in Hong Kong and China. Google did remove a game that allows you to role-play as a protester at the behest of the Chinese government.

Previously:

Update (2019-11-01): See also: The Talk Show.

Update (2019-11-26): Nick Statt:

[Quartz] says it received a notice from Apple that the app “includes content that is illegal in China.”

John Gruber:

No one is alleging that anything Quartz has reported on the Hong Kong protests is false. It’s just unflattering to the Chinese regime.

The Kindle Is Fine

Dan Frommer:

Amazon’s approach to the Kindle product remains befuddling. Talk about entering a market, quickly achieving dominance, and then coasting with feet up for more than a decade — random, bizarre updates and bracingly mediocre software.

Jason Snell:

But over the years I’ve accumulated all of these other reading items that are simply not available on the Kindle, like newsletters and subscription-only websites (newspapers and others) with their own custom iOS reader apps. First thing in the morning I am reading on my iPad, using those apps to get up to date on the stuff I’m interested in.

The Kindle, meanwhile, is the land that that app revolution forgot. If I want to read a newspaper on the Kindle, I can—but there’s only a daily delivery of static newspaper text, so if something happens after the issue is delivered, I will have to wait a day to see it. I can channel newsletters to my Kindle, but only if I use an email gateway or a third-party forwarding service, and the experience is poor to say the least. I can send articles from webpages to Instapaper and get them on my Kindle, but the reading experience is not particularly great. And as for personalized websites like The Athletic? Forget it.

[…]

Even support for library borrowing is hidden, because Amazon really wants you to buy books.

I still like the Kindle, but it feels like it’s still far from reaching its potential. And it’s shocking when you compare the progress Apple’s made with iPhone in the same amount of time.

Thursday, October 24, 2019

Modern AppKit File Permissions

Ben Scheirman:

There is no API for saying “Please prompt the user to access this folder”. Instead, this is done in one of three ways:

  • Full Disk Access
  • Prompting the user to open a file/directory
  • Dragging & Dropping a folder onto the application

[…]

By default the [latter two] approaches above grant you access while the app remains open. When you quit the app, any folder access you had is lost.

To gain persistent access to a folder even on subsequent launches, we’ll have to take advantage of a system called Security-Scoped Bookmarks.

[…]

Watch out for symlinks. My working directory is full of them, and I wanted to list contents of a nested folder that was actually a symlink, and this doesn’t work. You have to grant permissions to the real folder, which may involve additional prompts to grant all the permissions you need.

Obviously, you wouldn’t want an app to be able to give itself access to a protected folder by creating a symlink to it. But if the user is already demonstrating intent by choosing a folder or dragging and dropping it, it’s too bad that the system doesn’t grant access to everything referenced from that folder.

In practice, this means lots of extra complexity because a sandboxed app can never assume it has access to anything. Items in the folder could actually be stored somewhere else. After detecting this, and prompting for access, you may need to store multiple security-scoped bookmarks to maintain access to the single folder. And the folder’s contents may change and require additional prompts the next time.

Daniel Tull:

In this post I will be talking about the pair of methods startAccessingSecurityScopedResource and stopAccessingSecurityScopedResource on the URL type and how we can use Swift to make their use a little nicer in our apps. I will walk through the modifications I have made to the Particles sample app that Apple provided for the session. If you’d like to see the final result or any of the steps, you can find them on GitHub.

Previously:

GarageSale 8.0

iwascoding:

If you work with GarageSale on severals Macs you might find the new Synching feature helpful. Once enabled your GarageSale database will be synched between your Macs. The Synching feature requires a GarageSale Pro subscription.

[…]

Print generic shipping labels or packing slips that you can add to the shipment or use them to find the ordered items in your warehouse.

[…]

You can “detach” a popup from its original position and move it to a permanent location on your screen. Great for preventing it from auto-closing while switching to another app or for working on multiple listings at the same time.

[…]

GarageSale 8 comes with a powerful search and replace function that works on the entire database or the current selection. Easily edit title, description and other fields of all your listings in one go.

Looks like a big update to this thoughtfully designed app for selling on eBay.

Previously:

iPad Seems Safe for College Students

Jason Snell:

So can a college student survive on iPad alone? I think we’ve reached the point where I can answer “yes” to that question. There are caveats, of course—there always will be when it comes to tech stuff. Still, it feels like a bit of a milestone.

As for my daughter, she took her beloved 12-inch MacBook to college—and never expressed any interest in using an iPad, despite the obvious superiority of the iPad over the MacBook in terms of pure computing power. She loves her tiny laptop—both for fun things like watching Netflix and for less fun things like writing papers.

Kids do like to rebel, don’t they? Mine do it by using laptops.

Previously:

WTF Auto Layout?

Evan Dekhayser:

Auto Layout error messages are not known to be easy reads, so this tool from John Patrick Morgan that makes the errors much easier to debug is really valuable. Images and simple descriptions are shown for each constraint, making it much more feasible to find the issue with your layout. Anything that moves this complicated debugging from my head to the computer screen sounds good to me!

See also: Kristina Fox.

AirDrop and Quarantine Flags

Howard Oakley:

AirDrop has a bigger problem, though: because it’s a semi-public way of pushing files of unknown pedigree onto an unsuspecting Mac (or iOS device), macOS attaches a quarantine flag to everything transferred by AirDrop. For documents that’s only a minor irritant, now that macOS so promiscuously sets quarantine flags on every document opened by a sandboxed app. It can still catch you out when you try to open that document with an app other than the default for that type.

But for apps, command tools and other forms of executable code, this is more serious. If you’ve just copied one of those across, on the receiving Mac that software is now going to trigger a full Gatekeeper first run check. If that destination system happens to be Catalina and the software should be notarized but isn’t, you could find yourself wasting time slipping it past that. For command tools in particular that can come as a complete surprise.

[…]

In Catalina, if the app isn’t notarized, double-clicking it will elicit the usual failure dialog, and opening it using the Finder’s Open command gives you the option to open it regardless.

I get why this happens, but it’s annoying when you just want to send yourself a file. I used to do this frequently during development to test the in-progress app on other systems. In that situation, you really don’t want to have to go through the full notarization process. The contextual menu bypass seems unreliable. Sometimes it doesn’t work the first time, sometimes it launches the app but shows an error message, anyway, and I’ve received one report of it not working at all. I’ve taken to transferring using rsync or scp, as those don’t add quarantine flags.

Previously:

Tuesday, October 22, 2019

Catalina Supplemental Update 2

Juli Clover:

Apple today released a new supplemental update for macOS Catalina, nearly one week after releasing the first supplemental update and two weeks after the launch of macOS Catalina.

Mr. Macintosh:

The patch notes for (19A602) are exactly the same as (19A603)

Howard Oakley:

It’s not yet another emergency update at all, but the result of Apple updating the security certificate on the original 10.15 Supplemental Update (or 10.15 Update as it seems to be called officially).

[…]

Not only that, but if you have already installed the first version of the update, you won’t be offered the second – there’s no point. The only value of the new version is for those Macs which haven’t had the original update applied yet.

If that’s the only difference, why is the new version a full megabyte larger?

Previously:

SwiftUI Is Still the Future

Brent Simmons:

We very much want to use SwiftUI, and we believe it’s the future of Mac and iOS development — but emphasis should be on future, because it’s not quite ready in the present.

Which should surprise nobody, given that it’s so new. But I thought it might be interesting to know exactly what issues we ran into when using it.

It’s no secret that the available controls and features are much more complete for watchOS than for iOS or macOS. But this post is an example of some limitations and bugs around areas that you would expect to work.

Overall, SwiftUI seems less suited than Swift itself to incremental adoption because, although you can make a hybrid UI that includes regular Cocoa views, it looks like you can run into a dead end where you have to back out and redo the container/controller as well.

Update (2019-10-23): Jeff Johnson:

“SwiftUI will be great next year” is the new “Catalyst will be great next year”.

Colin Cornaby:

Important distinction: SwiftUI isn’t wrong, it’s just small. There isn’t really a downside to release a small, base API early.

Catalyst is kind of the opposite to this. Release everything, and then try and pick up the pieces afterwards. You get the advantage of having all your API, but the downside of it not working right. That’s harder to pivot from without breaking things.

Jason Brennan:

I was quite surprised to find it doesn’t offer any rich text display or editing. You can style text with fonts and colours and the like, but the style applies to the whole run of text. There’s no equivalent components for creating a rich text editor in SwiftUI yet.

Ordered to Type in an iPhone Passcode

Aimee Green:

Police wanted to search the contents of an iPhone they found in Catrice Pittman’s purse, but she never confirmed whether it was hers and wasn’t offering up a passcode. Her defense attorney argued forcing her to do so would violate her rights against self-incrimination under the Fifth Amendment of the U.S. Constitution and Article 1 Section 12 of the Oregon Constitution.

But a Marion County judge sided with police and prosecutors by ordering Pittman to enter her passcode. On Wednesday, the Oregon Court of Appeals agreed with that ruling -- in a first-of-its-kind opinion for an appeals court in this state.

Via John Gruber:

If you’ve got the password written down on a sticky note and the police get a warrant to search your home and find it, that’s evidence. But being compelled to produce something in your mind is the definition of self-incrimination.

Previously:

ExactScan Leaves the Mac App Store

Ashley Bischoff:

I ran into the same problem that you did with my ScanSnap no longer working on recent versions of macOS. And I ended up trying exactscan.com since it claimed to work with lots of scanners.

And not only does it work but I might even like it better than ScanSnap Manager!

ExactCODE:

With macOS 10.15 “Catalina” Apple introduced many incompatibilities and we where actually left with the impression that Apple will address some of them as well as some more bugs before releasing Catalina to the public.

After releasing the Catalina Golden Master build to developers on October the 3rd, we immediately finished fixing any new crash and issue we could find over the weekend. In our opinion, leaving developer just four (4!) days over a weekend with a public release on October the 7th is not very professional. While we still updated our applications in time, Apple did not review them for the AppStore, and instead rejected them first for a crash (sigh!), and later for requiring UI changes, including showing a Save As panel for each generated file. Now this may not sound like much, this is a serious issue for a document scan application which easily generates hundreds of files in an hour, and thousands of files a day, with file names automatically generated, either thru counters, or advanced auto-id features, such as barcodes.

It’s ridiculous for shipping a bug fix to be conditioned on making a major user interface change to an app that’s already had 100 updates approved. And, in this case, the proposed “fix” sounds like it makes the app much worse.

With seven years in the AppStore we were actually brainstorming how we could transition this to financially viable future. We would have preferred Apple to eventually support price reduced upgrades, which Apple to date did not. We could only start a completely new application, or transition to in-app purchases and subscriptions, e.g. for OCR, barcode or other features. Neither of which we are particular fans of, and it certainly does not help that Apple over the years was never really supportive, and usually only caused review drama and took 30% of our sales.

Previously:

Update (2019-10-23): See also: Hacker News.

Perfectly Cropped

Tyler Hall:

Why didn’t she know there were options further down the share sheet? Because she’s using an iPhone 8, which happens to be just the right height to perfectly crop the share sheet.

With invisible scroll bars, this sort of thing can happen with web pages and Mac apps, as well.

Update (2019-10-25): See also: Hacker News:

Ask Adam:

This is a perfect examination of a huge issue in Apple’s UI design direction. Almost every day I need to reassure novice users that it’s not their fault they don’t know how to work their devices. So many critical features have become completely undiscoverable.

John Gruber (tweet):

In the early era of GUI design, we celebrated affordances. Any view that was scrollable was very clearly scrollable. We, as an industry, got away from that as the basic concepts of using a GUI became part of daily life for everyone. In the post-iOS 7 era, though, Apple seems outright opposed to affordances. […] Just by looking at it, there’s no reason to think there’s more. But “just by looking at it” is the way user interfaces should be designed.

Edward Morbius (Hacker News):

But no, take a tablet, add keyboard, give it a 9-10 inch (~20 cm) screen, and take away every last flipping goddamned means developed over 45 years of graphical user interface design for flipping telling where you are in a document and efficiently going elsewhere.

This. Is. Not. Progress.

Update (2019-11-01): See also: Evolution of the Scrollbar (via Timo Perfitt).

Update (2019-11-06): See also: Hacker News.

Monday, October 21, 2019

How Kernel Prelinking Works on macOS Catalina (or Not)

Objective Development:

The kernel is the first component of the operating system to start. It has no other tools available. In particular there is no way to check code signatures, and all file system access is very hard at this point. Apple therefore decided to prelink the bare kernel with all kernel extensions every time the kernel or one of the extensions is updated, and to start only that prelinked kernel at boot time.

[…]

Since the prelinked kernel is on a read-only volume, it cannot be updated directly. Apple had to conceive a new mechanism for updates.

[…]

When you reboot or shut down your machine, launchd stops all processes. Then it remounts the system volume in read/write mode. This is possible because launchd has the entitlement com.apple.private.apfs.mount-root-writeable-at-shutdown. Then it runs /var/install/shove_kernels to copy the new kernel.

But apparently this doesn’t actually work. So to update a kernel extension you need to disable System Integrity Protection or manually trigger a kernel update after booting into macOS Recovery.

Safari Security Code AutoFill

kyro:

the pm at apple who came up with sms verification code auto-fill deserves a nobel prize

Dan Hill:

Yea this is hands down one of the most elegant features I’ve used. Solved a real problem, simply, with no effort on my part.

Ricky Mondello:

The idea for Security Code AutoFill came out of a small group of software engineers working on what we thought was a much more ambitious project. It wasn’t a PM, it wasn’t just one person, and it wasn’t what we set out to do initially.

It started as a small side idea we had while designing something very different. We jotted it down, tabled it for weeks, and then picked it up after the “more ambitious” project wasn’t panning out. It was hard, but I’m so glad we changed focus.

Even with a gem of an idea, it was still just an idea. Ideas are obviously super important — they’re necessary, but not sufficient. Here, the end result came from the idea, teamwork, and execution.

Years later, I’m still so proud of the team for making this feature happen. The team combined expertise from several areas to ship magic that worked on day 1, while asking nothing of app and website developers, without giving anyone your text messages. This still inspires me!

This is a really great feature, and it’s reliable. I wish there were a way to use it with third-party Mac browsers. As far as I know, they have no way to access SMS at all, except perhaps by snooping the Notification Center database.

Previously:

Font Substitution and Missing Text

Michel Fortin:

I recently found a bug in my work-in-progress-next-major-version of Counterparts Lite where text in certain languages was not showing up in the text editor.

[…]

It is important to know however that there’s a crucial difference between changing the font in willProcessEdting and in didProcessEditing:

  • willProcessEditing is called before font substitution. Any font you set while in willProcessEditing will get substituted with an appropriate font for characters not available in the font you choose.

  • didProcessEditing is called after font substitution. If you change the font while in didProcessEditing there will be no further font substitution, and thus you should make sure the font you set can display all the characters.

iTunes XML and Music in Catalina

Dani Deahl:

According to Apple, the new Music app, which replaces iTunes, removes support for automatically syncing playlists with third-party apps using XML. XML file support is a popular organizational feature for DJs who use it to sort tracks into playlists and utilize the “Share iTunes Library XML with other applications” option to seamlessly transmit data between apps.

[…]

Tons of popular DJ apps, like Rekordbox and Traktor, read XML files and relied on iTunes’ syncing feature.

[…]

A statement from Apple initially said XML would not be supported within the app. This story has also been updated to clarify that Music supports a new method for automatically syncing playlists that third-party apps can be updated to support.

Nick Heer:

I’d love to hear a good explanation of why XML music libraries are no longer supported in Catalina. This seems to be arbitrary.

Not even a preference or a way to script it.

Ewan Spence:

Since iTunes 11 Apple has offered an SDK to access the iTunes library without going through the iTunes XML file, and this sandboxed approach continues to work on Catalina. Yes there should be a cut-off point, but that should be communicated well in advance and any mitigating action is promised should be delivered.

Kirk McElhearn:

DJs don’t use iTunes to play music, but they do use its powerful organizational tools to manage and find music, which is then played by specific apps for DJing. Those apps accessed the XML file simply to find the locations of files and play them; with the ability to dump an XML file, nothing much should change, other than the need to do this manually.

[…]

The big problem here is that developers, aware of this change since the initial beta release of macOS Catalina, have not done the necessary work to update their software. Apple provides an iTunesLibrary framework, available since iTunes 11, which allows developers to directly access the .itl file used to store information about the Music app’s library. Some developers of DJ apps have already made the transition. It’s not that hard to learn how to use this instead of using the XML file.

Jamie Zawinski (tweet):

As someone who has used the various iTunes APIs extensively, I can make this authoritative statement:

Hahahahahahahahaha, no.

The XML files are the only way to make anything work.

Also note that the article appears to say that one of the features they removed was the ability to export and import playlists as XML files. The fact that there is an API that lets you interrogate the contents of the iTunes library does not change the fact that people out there have a lot of those XML files that they use on a daily basis, since that’s the interchange format between iTunes and various DJ software.

Also, ITLibrary is a read-only interface. So tell me how I use that write ObjC code to take my old XML files and then tell iTunes, “make a playlist from these tracks”?

Kirk McElhearn:

In the macOS Catalina Music app, you can no longer have this file created automatically, but you can create it manually.

[…]

To do this, choose File > Library > Export Library, name the file, and save it.

Peter N Lewis:

They changed iTunes bundle ID when they renamed it to Music. That seems unnecessary and annoying.

The bundle identifier for Contacts is still com.apple.AddressBook.

Matthias Gansrigler:

I love those optimized apps!

Peter Steinberger:

With the new iTunes-is-now-shoved-into-Finder there’s now no more progress indicator for a manual backup? Button is gray and you gotta wait. (Not that the progress was very accurate, but still).

Damien Petrilli:

The split of iTunes had one (overlooked) effect: the media keys / touch bar / AirPods play button only controls the music App and not the TV App if you are watching videos.

Damien Petrilli:

Another perk of killing iTunes I guess. Playing local videos used to be energy efficient, not anymore.

It’s even worst than Safari and Xcode cumulated.

Damien Petrilli:

After iOS, macOS Music App:

1. You barely see the difference between the active and disabled gray
2. The active gray is lighter than disabled gray.

Luna259:

I can’t right click on songs to get things like the metadata or file location, it sometimes refuses to close, the UI glitches (the pause button doesn’t change to play when paused) and the three dots menu doesn’t work for any of the songs or albums

Kirk McElhearn:

What Do You Think of the New macOS Media Apps that Replace iTunes?

Currently, 29% like them, 57% miss iTunes, and the rest don’t have a preference.

Ed Starkie:

After the Catalina update, all of my music in iTunes was gone except for 7 or 8 items from the iTunes store. Otherwise ~32 GB of music gone.

Grady Booch:

I truly loathe/abhor/execrate/abominate/curse/ahathematize and generally do not like the new @Apple Music app that comes with Catalina.

(It broke much of my album art, it is buggy with regard to sorting, and it is less customizable with regard to presentation.)

Previously:

Update (2019-10-25): Doug Adams:

  1. ITLibrary does not know about Work and Movement tags.
  2. ITLibrary does not know the difference between playlists in the Music app and playlists in the TV app. You can ask for discrete music tracks or TV tracks or movie tracks, but not discrete playlists from either app.
  3. ITLibrary does not know what a subscription playlist is. It’s an Apple Music playlist you have added to your library. ITLibrary sees it as a Regular playlist.
  4. Ditto Loved and Disliked for tracks
  5. Ditto Loved and Disliked for playlists
  6. ITLibrary does not distinguish among types of cloud tracks (uploaded, matched, duplicate, etc)
  7. ITLibrary does not provide a Track ID which is used to correlate the tracks in a playlist to their library entries and vice versa.

And I’m sure I’ve run into other minor impediments. Wait, bonus gripe: converting decimal persistent IDs to hexidecimal.

Update (2019-11-02): Adam Bell:

Cool.

Update (2019-11-06): See also: Casey Liss.

FSF Missed the Cloud and Mobile

Stefano Maffulli (via Hacker News):

The point that everybody misses is that Stallman’s views on software don’t matter anymore. The FSF should have nurtured and grown new leaders a long time ago, leaders who looked into the future, understand cloud and mobile computing and their threats to a free society.

[…]

I had the first inkling that the Free Software Foundation and the free software movement was heading to for a crash when the GPLv3 was being drafted in 2005. At the time, I was leading the Italian chapter of Free Software Foundation Europe and it was clear to me that RMS didn’t have a grasp of where the industry was going. He was laser focused on closing the embedded device loophole, preventing what he called the TiVoization of free software. All around him, not a single voice could argue strongly enough about the Google issue that later would become the *-as-a-service loophole and cloud issue.

[…]

Right after the GPLv3 came out, Google was relieved they could continue doing business as usual, Linux kept its license and the FSF waged war against Debian and Mozilla. Stallman led the FSF out of the most important focus for the future because he wanted a pure free software operating system for his laptop? Definitely feels that way: he wanted zero binary blobs in device drivers, zero non-free Javascript. His dream of a pure operating system was there, almost close enough to touch. Meanwhile, the concept of computers evolved to include mobile phones and cloud. And those are just evil.

Much has been written lately about Richard Stallman the person, but what of his movement? I’m not sure whether it’s anyone’s fault, or what could have been done differently, but it definitely feels like the moment has passed. His concerns may be more relevant than ever, but the world has changed so that the avenues to address them seem increasingly futile. Open-source software is more widely used, but platforms and services are increasingly locked down. Free software didn’t bring the expected freedom.

Previously:

WKWebView Scroll Position

Brent Simmons:

In NetNewsWire, I use JavaScript evaluation with a WKWebView to get the current scroll position.

It broke in Catalina. I used document.body.scrollTop to get the y position, which appears to always return 0 now.

Workaround: window.pageYOffset seems to work.

Phil Dokas:

The workaround I found was document.documentElement.scrollTop. This one’s mutable where window.pageYOffset is read-only.

It’s a long road to replace the WebView APIs that worked for so long.

Matt Netkow (via Michael Love):

Recently, Apple introduced a new App Submission warning stating that they are formally deprecating UIWebView. We wanted to let the Ionic community know what this warning is all about and how the Ionic team plans to address it.

[…]

Sometime in the future, iOS apps may be blocked from release to the App Store when Apple decides to enforce blocking apps that use UIWebView.

[…]

The Cordova team is actively discussing a plan to move forward. This will take time as they plan the best way to move forward without severely impacting users.

Previously:

Friday, October 18, 2019

Catalina Screen Time Isn’t Reporting Actual App Usage

Kirk McElhearn:

Screen Time was also added to macOS Catalina, with the same features. However, it doesn’t seem to work correctly. Rather than showing which apps are frontmost when you work, it shows how long apps are open[…]

I keep a number of apps open all the time: Mail, Messages, Fantastical, Omni Focus, Music, and a few others. So counting them as actual “screen time” makes no sense.

In the above example, all these apps were open all day – obviously, the Finder is always “open” – so the data is essentially useless.

[…]

Screen Time also records “Pickups.” While this makes sense for an iOS device – how many times you picked up your iPhone and woke it up – it really makes little sense on the Mac. A pickup on the Mac is the number of times you woke the device from sleep, or restarted it.

Mac remains a product in our lineup. But good news for all the prior art that remains un-Sherlocked.

Update (2019-10-21): John Gruber (tweet):

I can’t see the point of this feature on the Mac other than as a parental control. It seems like Apple just copied the design of iOS’s Screen Time without considering any of the many ways that the Mac is different from iOS.

John Voorhees:

If my Mac’s screen is unlocked for five hours, that means every one of those apps will log five hours of use, which isn’t very helpful if I was writing for three hours, messaging for 30 minutes, and away from my desk with my Mac awake for an hour and a half. I’d prefer if Screen Time on the Mac recorded only the time spent in the app that has the focus.

[…]

That said, there is still utility in having Screen Time built into Catalina. The app works as it does on iOS. Parents can set up limits from a Mac or iOS device, and because the feature works across OSes now, limits can be set for combined usage across all devices.

Beware Apple Security Certificates After October 24

Howard Oakley:

If you have macOS or other Apple installers, chances are that they’ll be signed, or use as an intermediate certificate authority, by a certificate which expires very shortly. If you were to try installing that package, macOS will report that it’s damaged, and can’t be used. The installers affected can be very recent: I’ve checked an Installer package for the Mojave 10.14.6 Supplemental Update 2, which shipped on 23 September, just a month from the date of expiration, and both its intermediate and user certificates expire on 24 October 2019.

[…]

This is unfortunate timing, as it’s when those migrating to Catalina are likely to be downloading Mojave installers to give them a safe way back if necessary, or to use in a VM provided by Parallels Desktop or VMWare, for instance. In a week or two you could discover that those installers can no longer run because of this expiration. The only real solution is to wait until after 24 October, then download all important Apple installers, which should have new certificates.

Previously:

Update (2019-10-31): Howard Oakley:

As usual, Apple isn’t saying anything, not to users or developers. Its most meaningful communication about this inexcusable failure of support were the 404 errors from download pages. There’s no explanation, no apology, no timescale, no support. Yet again, it seems to hope that if it pretends nothing has happened, we’ll all forget about it. Just like Apple clearly did until someone’s Calendar notified them that crucial certificates expired in a few days time.

Rich Trouton:

As a follow-up to last week’s expiration of the certificate used to sign previously-released macOS installers, Apple has released re-signed macOS installers with the new certificate which is good until April 2029.

Update (2019-11-01): There are reports that this same issue is responsible for HomePods getting bricked.

Update (2019-11-05): Felix Schwarz:

Following issues with expired #macOS installers, Apple now provides direct download (!) copies of updated installers for macOS 10.10 - 10.12. For macOS 10.13 - 10.15, Apple provides App Store links.

See also: TidBITS.

PyObjC 6.0

Ronald Oussoren:

This is a major feature release, the two most important changes are the addition of support for frameworks and APIs introduced in macOS 10.15 (Catalina), and the removal of support for Python 2.7.

Catalina still ships with version 2.5.1. This can’t be because of the GPL, since it’s MIT-licensed.

Previously:

No Overview Available

Mattt Thompson:

It’s become a truism among iOS and macOS developers that Apple’s documentation is often incomplete or missing altogether.

But to what extent is this actually the case? With a bit of web scraping, I was able to come up with some numbers:

nooverviewavailable.com

It’s the new “Description forthcoming.”

You have to look beyond the colors, and even the numbers. For example, HealthKit gets 100% for documenting 7/7 symbols. But if you click through this seems to be just a bunch of error symbols. There are actually 55 header files for HealthKit, each containing many symbols. In other words, the denominator is the number of symbols that are admitted to be undocumented, rather than the actual number of symbols.

But that doesn’t mean there’s no documentation for them. Many of the symbols have good doc comments in the headers. Yet despite Apple releasing HeaderDoc 19 years ago, it doesn’t seem to have an automated way to get those comments into the published documentation.

Previously:

Update (2019-10-21): Mattt Thompson:

Source code for NoOverviewAvailable.com is now available on GitHub[…]

Update (2019-10-25): Mike Zornek:

During the multiple discussions it has been suggested that this documentation issue is an easier problem for Apple fix than others since documentation can be produced in parallel, money can buy more writers and Apple has plenty of money.

This is mostly true, but a major factor that is not brought up is Apple’s reluctance to hire remote documentation writers.

[…]

There is a fixed, limited pool of candidates who live or is willing to relocate to the Cupertino area. It gets even more difficult when you consider a technical writer will probably make less (Glassdoor listing) than a developer and yet the cost of living out there is crazy for both professions.

See also: Accidental Tech Podcast.

Update (2019-11-01): Chris Krycho (via Hacker News, Slashdot):

The number of parts of this ecosystem which are entirely undocumented is frankly shocking to me.

[…]

The current state of Apple’s software documentation is the worst I’ve ever seen for any framework anywhere.

[…]

Given what I know of Apple’s approach to this, the problem is not individual engineers (who are not responsible for writing docs) or even the members of dedicated documentation teams (who are responsible for writing docs). But that does not make it any less a failure of Apple’s engineering organization. The job of an API engineering organization is to support those who will consume that API. I don’t doubt that many of Apples API engineers would love for all of these things to be documented. I likewise do not doubt that the documentation team is understaffed for the work they have to do. (If I’m wrong, if I should doubt that, because Apple’s engineering culture doesn’t value this, then that’s even worse an indictment of the engineering culture.) This kind of thing has to change at the level of the entire engineering organization.

Damien Petrilli:

Apple not documenting and providing unstable tools will push people to use cross platform and hybrid technology.

Why use native when the other tools are taking the heat for you and provide documentation?

I’ve even seen people pointing to documentation for Microsoft’s cross-platform stuff as being the authoritative source on how macOS works, because Apple’s own documentation on the topic is absent.

ChrisMarshallNY:

Some time ago, I was contacted by Apple to apply for a job. My code is insanely well-documented. I like to think that a lot of the inspiration for my code docs comes from Apple’s open codebases. Their code is exceptionally well-documented.

[…]

In any case, during the test, I did what I always do when I write code. I stopped to write a header document for the function.

This was clearly not something the tester liked.

Steve Troughton-Smith:

When I was learning Cocoa, Apple’s docs were the best around. These days, it’s all left to rot in the Documentation Archive, and it’s much harder to find anything helpful for newer APIs. If this year’s meme helps Apple realize the damage they’ve done to their documentation, great

What happened to Apple’s docs? I think the biggest reason is Swift: Apple’s adoption of Swift as the language they want devs to think about instantly invalidated decades of great documentation and sample code. All new docs are Swift, all WWDC material is Swift, all focus on Swift.

Dimitri Bouniol:

This makes me so sad, because I felt like Apple had some of the best documentation and programming guides around before the ubiquity of iOS and stack overflow. If there was a hole, there was usually a good article on the topic as well.

Now, there are a ton of “beginner” resources, but almost no guidance on the more obscure APIs and frameworks

I feel like they could easily hire remote developers to document existing APIs without feature of leaks, just to flesh out undocumented things, and any new APIs right after WWDC starts and during the beta period.

Brent Simmons:

There has been some discussion about Apple’s developer documentation being less-than-complete, and people have made remarks about the issue of moving to the Cupertino area as a drawback for potential authors.

But note: Apple is actually hiring in Seattle.

FlexMonkey:

Whoa! The Accelerate page has been updated: every article and piece of sample code is available in one place.

Russell Ivanovic:

Forget “No overview available” Apple’s code documentation has far worse sharp edges. This property is marked as iOS 11.0+. Guess what happens when you use it on iOS 11? It crashes because it doesn’t recognise it

Catalyst in Catalina

Craig Federighi:

When we released the first set of apps using Catalyst [in Mojave], some of the concerns that were voiced placed a certain amount of focus on the technology, but that was really design decisions we made. There were pure design decisions that were different design teams pushing the bounds of what is the future of media oriented design. I think we’re finding our balance there, pulling back in some areas. And the underlying technology has improved.

Dieter Bohn:

iOS apps on the Mac [in the Catalina developer beta] are starting to feel like a pretty sweet solution.

I wanted Apple to go hard and show developers the right way to do these. This is not that.

Jason Hiner:

“Wait for the public beta. We’re still tuning everything up. That’s where it gets really good,” Federighi said.

Well, the public beta came in July, and Catalina shipped in October, but nothing seems to have changed. The state of Apple’s Catalyst apps, as well as the APIs and documentation available to developers, is just sad. We still have weird panels within windows, spinny date pickers, and buttons that don’t look like buttons. There are no APIs for making standard pop-up menus or table views. Developers who care about making their apps more Mac-like are having to reimplement AppKit controls and resort to private API. The Human Interface Guidelines have been updated to include iOS-style switches, which the News app goes on to use in the opposite of the prescribed way.

Steve Troughton-Smith:

Here we are, couple weeks from release, and it seems clear once again Apple can’t walk & chew gum at the same time. SwiftUI was announced a year too early to sabotage Catalyst on the Mac, and now neither are reliable. Catalyst completely undocumented and starved of dev resources

William Gallagher:

“Their quality varies,” says Andrew Madsen, Mac and iOS developer, “but none of them could be called a great Mac app. Apple has made some public commentary to assuage concerns around these apps, going so far as to say that they’d be majorly improved in the first public beta of Catalina.”

“Despite that public pronouncement,” he continues, “the apps have not seen major changes since the first Catalina beta, and seem on track to ship in a less-than-excellent state for another year. If Apple can’t make really great Mac apps using Catalyst, what hope do third-party developers have?”

Peter Steinberger:

Worked all day to implement “Open Recent” which you’d get for free on AppKit. Result: feature doesn’t work, two new radars filed[…]

Steve Troughton-Smith:

It’s more than a little frustrating that to access the full range of NSToolbar functionality in Catalyst you have to resort to using an AppKit plugin.

Steve Troughton-Smith:

Recreating AppKit controls in UIKit for fun and profit — vertically-resizable split views are an easy one.

[…]

It doesn’t take much to style UISegmentedControl more like a Mac app. Little tweaks like this make it far less obvious that you’re looking at UIKit on the desktop.

Konrad Kołakowski:

I don’t really understand why Apple won’t do it themselves, to style UIKit apps more like macOS apps.

Or at least share some code do allow it easily, without having to reinvent the wheel by every Catalyst dev

Peter Steinberger:

With the help of some Apple folks, I finally managed to get security scoped bookmarks working under Mac Catalyst!! You need to redefine some unavailable enum values (🙀) but hey, nothing’s perfect ;)

Colin Cornaby:

The guess that Catalyst was going to be a big driving force behind Apple Arcade? So far the games I’ve looked at all seem to be AppKit native builds from a game engine like Unity. Game engines make the build environment kind of irrelevant.

Steve Troughton-Smith:

I don’t expect a single game in Apple Arcade on macOS to use Catalyst in any form, but if you come across one do let me know!

Steve Troughton-Smith:

Catalyst can’t support any game on Apple Arcade, nor is there a path towards it doing so. It’s an incredibly bad fit for immersive game experiences right now

Steve Troughton-Smith:

I have a feeling Catalyst is gonna be the sole focus of my radars for a while… 😂

Jason Snell:

Mac Catalyst can be simultaneously

1- A source of a bunch of interesting new Mac apps
2- Limited and frustrating for developers
3- In a strange limbo state where it’s unclear how much more work Apple will put into developing it

Michael Love:

3) is the worst for my purposes because it’s hard to come up with a long term product strategy on desktops without knowing whether or not Apple is serious about this thing.

Apple:

For iPad developers, macOS Catalina makes it easier than ever to bring your apps to the Mac: The process starts by checking a single box in Xcode.

[…]

Whether you want to edit photos, learn a language, balance your budget, or play a cutting-edge game, these awesome apps offer the great Mac experience you’ve come to expect, while taking full advantage of the larger screen and powerful hardware.

Jeff Johnson:

They’re seriously advertising this.

Manton Reece:

Trying to resist judging Catalyst by the initial apps out with Catalina today. Most developers were surprised by Catalina shipping so soon, and porting apps is more difficult than “checking a single box in Xcode”. In 6 months we’ll have a better idea.

Mark Gurman:

So far, the reality has fallen short for some developers and is even leaving consumers paying twice for apps.

[…]

On day one of Apple’s new technology debut, the Mac App Store showed only about 20 compatible iPad apps, out of a possible library of more than a million iPad-optimized applications.

[…]

Many of the issues originate from Apple’s initial promise of checkbox simplicity. It is indeed that easy, but the resulting ported app still carries over vestiges of its iPad optimizations that don’t work as well on Mac computers.

James Thomson (Upgrade):

The “single check box” Catalyst version of PCalc is a single resizable window, with many tables and popovers that seem to me to be out-of-place on the Mac.

[…]

It became pretty clear to me that I would need to rewrite a lot of the user interface, to find a happy middle ground between the iPad and the Mac. Which would probably benefit both in the long run, to be fair. But with everything else that was going on this summer, I couldn’t justify that work, with no guarantees at the end of the day that I would have something I was happy to ship.

[…]

From the business side, there is also no way for somebody to get the Catalyst version of the app for free when they buy the iOS version. And no great way to share in-app purchases either if you have a free app. That generally means that somebody will have to pay a second time to get a copy. There is definitely an argument that building a Catalyst version is actual work, work that should be paid for, but I can equally see the side of consumers that have been told it’s just a simple check box. Apple said a shared store will come in two years, but that’s still a way off.

John Gruber (tweet):

I don’t buy the “ran out of time” excuse. Catalyst has had this particular problem — touch-based spinners in place of pop-up menus — since 10.14 Mojave last year. It’s madness. Has there ever been a GUI toolkit for any mouse-pointer-based platform that didn’t offer pop-up menus as a standard control? Mac, Windows, Motif, Amiga, all the various toolkits for Unix X11 systems — they all had pop-up menus.

John Gruber:

But Catalyst is a developer technology. Users have no idea what it is and shouldn’t need to. “You have to pay for iPad and Mac versions separately” doesn’t seem like a big deal to me because it’s been that way all along, regardless of Catalyst.

[…]

At WWDC in early June — four months ago — Apple showcased the catalyzed Asphalt 9 port on stage, with the following quote from Gameloft: “We had Asphalt 9: Legends for Mac running on the first day. It looks stunning and runs super fast using Metal on powerful Mac hardware.”

But it’s now been “slightly delayed.”

Steve Troughton-Smith:

Netflix won’t be making a Catalyst app ☹️ Also didn’t realize Apple had pulled their marketing for the only game they were promoting as a Catalyst app

Colin Cornaby:

I continue to be impressed at the whiplash of Catalyst is the future of Mac apps but it doesn’t work very well but it helps you write your apps without learning AppKit but you need to learn AppKit to make a good Catalyst app but the Mac UI is dead but make it more Mac like

Paul Haddad:

I got some test code running on Catalyst and the thing I found most glaring is how unatural it felt with a mouse. Trackpad was fine, but good luck if you don’t have one.

Steve Troughton-Smith:

Catalyst developers! What are you missing right now? What would you really like Apple to provide as soon as possible?

I’ll go first:

• a roadmap
• the ability to choose to use shared App Store records
• TestFlight

James Thomson:

Equivalent AppKit controls, like popup buttons and checkboxes, and the ability to switch off the scaling.

Peter Steinberger:

NSUIKitHostingView in AppKit. Then let me write my app in AppKit + load stuff as needed.

And performance + bug fixes.

Daniel Jalkut:

Hm, well obviously “native-feeling” isn’t an agreed, objective standard. But FWIW I’ve yet to see a Catalyst app that meets all my expectations of “native feeling” on the Mac.

Colin Cornaby:

Just to be clear on my position on Catalyst:

It’s something that seems reasonable for smaller, more contained applications that have heavy dependencies on UIKit.

That’s very different than building it up to be the replacement for AppKit or the environment for all Mac software.

Steve Troughton-Smith:

I think text editing in Catalyst apps is gonna be a huge point of contention for a while; there’s certainly a disconnect between the iOS editor and what it bridges to on the AppKit side that makes everything feel like it barely works in every app

Steve Troughton-Smith:

I expect the Twitter Mac team have had an incredibly stressful summer getting a Catalyst app of this complexity out the door. There are plenty of UI areas that are going to need another pass, for sure. The double-toolbar just isn’t a good fit for the Mac

Jane Manchun Wong (via John Gruber):

On Twitter for Mac, it’s easy to fix the small fonts issue

Colin Cornaby:

I think it’s also interesting how Apple is adjusting their user facing language on these applications in their marketing copy. They’re now usually calling them iPad Apps on the Mac, and not Mac apps. Which is a pretty accurate description and expectation for Twitter.

[…]

Sometimes I think Catalyst suffers from the hype of it’s own advocates. If you view Twitter as the iPad app on a Mac, it’s pretty decent. If you try and look at it as a full Mac app, then it’s kind of problematic.

Michael Love:

Obviously they’d keep some sensitive new hardware-related stuff secret, but with Catalyst/SwiftUI this year e.g. I can totally understand the argument for announcing them both at WWDC but there was no reason they had to actually ship this fall.

Ben Sandofsky:

I can spot flaws in Catalyst apps because I’m a Mac nerd. For normal people, Catalyst 1.0 apps are already better than web apps, and infinitely better than Electron.

Vidit Bhargava:

I’m sharing this design document to highlight some of the design considerations I made for bringing LookUp’s iOS App to macOS. And while I did use fall backs to AppKit in certain situations (Even though i had no prior knowledge to AppKit, the APIs were relatively easy to get to), I still feel that a lot of apps can design a good experience without having to use them.

Jason Snell:

Unfortunately, a few apps haven’t really improved much—the four apps sourced from iOS last year as a part of the Mojave update, via what we now call Mac Catalyst. They’re all still pretty rudimentary, and while it’s better to have them than not, they could be much better than they are. The Home app has added support for home automation shortcuts (but it’s so buggy as to be unusable), and setting time-based automations still requires you to spin an iOS-style date picker. That date-picker design should not ever appear on macOS, period—it’s a touchscreen interface that doesn’t work with a mouse or trackpad. I can’t believe Apple has left it untouched.

Steve Troughton-Smith:

Going searching for Catalyst documentation is fun. Doesn’t seem like any of the iPad Apps for Mac WWDC sessions have sample projects either

Steve Troughton-Smith:

Here's a fun one: Lotto Machine for macOS gets a blanket App Store rejection

[…]

To bring your iOS app to the Mac you battle your way through Catalyst without documentation, you lose months of progress with macOS SceneKit bugs, and then when you finally go to ship, Apple tells you they don’t think the app should be on the platform at all

Adam Overholtzer:

There’s a difference between “can” and “can but with a ton of work and lots of hacks”. Catalyst is buggy, undocumented, and requires AppKit hacks to get some of the most basic Mac features working. If a developer doesn’t have time for all that, it doesn’t mean they’re lazy.

Marvis App:

Sadly not, while Catalyst focuses on having common UI for Mac and iOS with some common frameworks, MediaPlayer framework that’s on iOS doesn’t work on Mac in my tests, that means the whole backend of the app wouldn’t work. So, I’m sorry to say, no plans. 😔

John Voorhees:

Less successful is Catalyst. I’ve had high hopes for Catalyst since it was previewed at WWDC in 2018. The realization over this summer that Apple wasn’t going to update its original four Catalyst apps was a big disappointment, as was the lack of documentation and sample code and the inability of developers to bundle Mac apps with iOS and iPadOS apps. Together with the workload imposed on developers by changes to iOS and iPadOS 13, many I’ve spoken to put their Catalyst plans on hold, which is understandable. That’s not encouraging because, in the short-term, it means we’re unlikely to see many of the sort of new ideas and competition that the Mac app ecosystem needs to be sustainable long-term.

Nick Heer:

Catalyst is a frustrating bridge between the entirely-discrete AppKit and UIKit worlds, and the ostensibly cross-platform SwiftUI model. It’s “frustrating” because apps built with it don’t feel like Mac apps, and it’s probably too early to start building with SwiftUI since it will likely change dramatically for developers over the next few years. It’s an awkward middle ground that isn’t as good as either. Apple’s promotion of it as “just a checkbox” in Xcode — and, weirdly, using that as part of its pitch to users — is overly optimistic.

That’s not to say that there are no good Catalyst apps. John Voorhees reviewed Lire for MacOS and was fairly impressed with its platform-specific customizations. But it’s a harder process than Apple promotes to developers, and I’m still not confident we’ll see truly great apps built with Catalyst.

John Voorhees:

So far, the most common path to releasing a Mac Catalyst app on the Mac App Store has been to adapt and release an existing iPadOS app as a first-time Mac app. However, that’s not the only route to the Mac App Store. Apple allows developers to use Mac Catalyst in a variety of ways, as Steve Troughton-Smith has demonstrated with HCC Solitaire, a Mac-only game built using Mac Catalyst. He and Brian Mueller, the creator of CARROT Weather, have also used Mac Catalyst to release new versions of Mac apps that were previously built with AppKit.

Corbin Dunn:

News.app on the mac is such a second class citizen. It is pretty easy to crash with keystrokes, and focus navigation is horrific. (Yeah, “Log a bug”)

Steve Troughton-Smith:

There is some new complex sample code (as of this week?) for creating menu commands and contextual menus in Catalyst apps, including spawning dropdown menus at will without needing to right-click, something I wasn’t aware was possible at all.

As of yet there’s no complex sample code for: using a Mac toolbar, using the Touch Bar, managing multiple titled windows & tabbing behavior, customizing your settings bundle to make a reasonable-looking Mac preferences window, or any further integration with AppKit

Maximilian M:

Catalyst has been quite the journey so far. Bringing over @instapdf for Mac to UIKit from AppKit has been difficult. I’ve started creating some OS code to bridge missing functionality[…]

Previously:

Update (2019-10-21): AppStories:

This week, Federico and John interview James Thomson, the creator of PCalc and Dice, for a developer’s perspective on Mac Catalyst[…]

Peter Steinberger:

We finally figured out how to get the system accent color on Mac Catalyst. UIButton gets it, so we use one to set it on the UIWindow subclass…

Update (2019-10-25): Alison DeNisco Rayome (MacRumors):

Apple is taking developer feedback into account when it comes to improving Catalyst, Benjamin said. “For many of the early Mac Catalyst developers, it was their first time ever developing an app for the Mac, and it’s amazing what they’ve been able to achieve in such a short time,” he added. “We’re learning a ton from these early adopters, and are planning additional resources and support to help them create amazing Mac experiences with Mac Catalyst.”

Juli Clover:

Several developers have taken advantage of the new capabilities in Catalina to create Mac Catalyst apps for the Mac App Store, and we thought we’d round up the most useful of these for those who are wondering how Mac Catalyst apps work and how they compare to their iPad app counterparts.

Corbin Dunn:

News.app on macOS suffers from so many UI issues due to the poor UIKit port. When focusing, the sidebar and titlebar don’t appear as the key-window color simultaneously, making it blink in a few frames later.

Update (2019-11-27): Adam Demasi:

the best and worst thing about Catalyst is that apps don’t get killed for high CPU/RAM resource usage.

best - because some apps really do need those resources
worst - because some apps could have bugs that were never fixed because iOS’s Jetsam kills the app after a few seconds

these existing bugs will be fixed over time, and likely new ones will be caught in development since all new code written will be tested on both iOS and Mac. unfortunately this does imply that users of the current set of Catalyst apps are acting as beta testers…

Thursday, October 17, 2019

Core Data Derived Attributes

Scott Perry:

Documentation for Core Data’s new derived attributes feature is up!

It’s a really cool feature.

NSDerivedAttributeDescription (see also: derivationExpression):

Use derived attributes to optimize fetch performance[…]

[…]

Data recomputes derived attributes when you save a context. A managed object’s property does not reflect unsaved changes until you save the context and refresh the object.

That makes sense given that the derivation is implemented in the SQLite store using triggers. And you wouldn’t want every change to cause a fetch for properties that you might not need right away.

However, you have to be careful to manually refresh the objects that you care about because, since at least macOS 10.14, there’s a bug where NSFetchRequest’s shouldRefreshRefetchedObjects option doesn’t work (FB6161838). It fetches the right objects, but their properties may be stale. See, for example, this code:

import Foundation
import CoreData

class Entity: NSManagedObject {
    @NSManaged var attribute: String
}

let attribute = NSAttributeDescription()
attribute.name = "attribute"
attribute.attributeType = .stringAttributeType
let entityDescription = NSEntityDescription()
entityDescription.name = "Entity"
entityDescription.properties = [attribute]
entityDescription.managedObjectClassName = Entity.className()
let model = NSManagedObjectModel()
model.entities = [entityDescription]

let coordinator = NSPersistentStoreCoordinator(managedObjectModel: model)
// Also happens with SQLite store
try! coordinator.addPersistentStore(ofType: NSInMemoryStoreType, configurationName: nil, at: nil, options: [:])

let writeContext = NSManagedObjectContext(concurrencyType: .privateQueueConcurrencyType)
writeContext.persistentStoreCoordinator = coordinator
let readContext = NSManagedObjectContext(concurrencyType: .mainQueueConcurrencyType)
readContext.persistentStoreCoordinator = coordinator

let writeEntity = Entity(entity: entityDescription, insertInto: writeContext)
writeContext.performAndWait {
    writeEntity.attribute = "Old"
    try! writeContext.save()
}

var readEntity: Entity? = nil
readContext.performAndWait {
    let request = NSFetchRequest<Entity>(entityName: entityDescription.name!)
    readEntity = try! readContext.fetch(request).first!
    // Initially the attribute should be Old, and that's what's printed
    print(readEntity!.attribute)
}

writeContext.performAndWait {
    writeEntity.attribute = "New"
    try! writeContext.save()
}

readContext.performAndWait {
    let request = NSFetchRequest<Entity>(entityName: entityDescription.name!)
    request.shouldRefreshRefetchedObjects = true
    _ = try! readContext.fetch(request)
    // Now the attribute should be New, but it is still Old
    print(readEntity!.attribute)

    readContext.refresh(readEntity!, mergeChanges: false)
    // However, manually refreshing does update it to New
    print(readEntity!.attribute)
}

In this example, you could instead use notifications to merge changes from one context into the other. But that wouldn’t work with derived attributes since their changes aren’t reported in notifications.

Laptops Stolen From Cars

Merritt Baer:

Colleagues had a car broken into and laptops stolen in downtown Mountain View last night while we were at dinner. We wondered how they knew to break into the hatchback when it is not see- through.

They turn on bluetooth scanners and follow the beacon to find electronics.

There are probably Wi-Fi signals, too, if the Mac is in Power Nap. I guess it’s better to shut down instead of leaving it in sleep.

Mac-to-Mac Luna Display

Luna Display (via Matt Ronge):

But Mac-to-Mac is more than just taking your old Macs out of retirement — use it as a way to make yourself more mobile! Luna was made with nomadic workers in mind, and with Mac-to-Mac Mode, you can have even more freedom and flexibility to work on the go.

For example, if you have an iMac at your office, and a laptop that moves with you between work and home, pair your laptop with your iMac when in the office to make use of both devices. Or if you’re just working from home, pair your laptop to your iMac or Mac Mini and harness the power of those super computers from your comfy sofa.

Watch for Mac-to-Mac AirPlay in macOS 10.16. I’m only sort of kidding. In any case, this seems like it could be much better than using Screen Sharing.

Olivier Roux:

Boom! @siracusa’s dilemma solved: a new Mac Pro connected to an iMac through the LunaDisplay dongle. No crappy LG monitor, no horribly expensive XDR Display.

Previously:

Catalina Notarization

Rich Trouton:

This is not to say that you can hold up a “Notarized!” sign to the auditor, watch the auditor leave after just tossing the checklist aside and commence the post-audit party. But for those folks who have to undergo regular compliance auditing, I would recommend you examine your auditing requirements carefully to see which IT audit controls on your list now get handled automatically on macOS Catalina with its notarization requirements.

Gus Mueller:

“Your Mac software was successfully notarized.”

Thank god Apple finally changed the subject of the notarization email- it was driving me a little insane, one email at a time.

“You can now distribute your Mac software” was the previous subject. As if we weren’t doing OK before.

Rosyna Keller:

Now that macOS Catalina is live, I’m interested in any reports of users running into non-notarized software.

I’d really appreciate screenshots of the “not notarized” dialog and any information you have on the app or quarantined plugin that wasn’t notarized.

The most obvious example I ran into was Catalina’s own installer, which I copied from one of my Macs to the other via screen sharing.

Hayden:

Apple disabled the GUI option to allow unsigned apps in 10.15 and now users are passing around a sudo command on Twitter that disables all app security checks as the workaround to get things working again.

I think the “Anywhere” radio button in System Preferences was actually removed several releases ago.

Armin Briegel:

As with the previous Gatekeeper checks for a valid signature an administrator user can override the check by choosing ‘Open’ from the context menu instead of double-clicking to open.

[…]

When you install software using the installer command from the Terminal or a script, it will bypass quarantine and the Gatekeeper check.

This is also true when you install software using a management system such as Jamf Pro, Munki, Fleetsmith, etc.

[…]

There are some cases where notarization would be useful for MacAdmins but might not even be possible. I met a MacAdmin working at a university at MacSysAdmin last week. They need to re-package a VPN client with customized configuration files to be installed on student-owned machines.

There is really no solution without the students running into the notarization warning.

Howard Oakley:

From comments being posted on articles here, there’s still some confusion over whether macOS 10.15 Catalina will allow you to install and run old apps which aren’t notarized, or new ones which aren’t either. To clear this up, I’ve diagrammed the whole process in detail, to show you how you can work with Catalina’s new security rules.

Howard Oakley:

Using the Finder’s Open command doesn’t bypass the security assessment sub-system completely. It allows wider tolerance in the application of its rules, such as letting un-notarized apps run in Catalina, and unsigned apps run. Signature revocations and errors should still be detected and result in refusal to run, and XProtect should still check the app for known malware signatures.

Turn the whole sub-system off, and you going to be trying to force macOS to run something which is very likely to be malicious or damaged.

Removing the quarantine flag from a freshly-downloaded app or installer isn’t quite as bad, as signature checks still take place, and in Catalina (but not Mojave or earlier) the app should also be checked by XProtect.

ross tulloch (MacRumors):

I think Apple’s notarization server may have died under the Catalina induced load. I submitted a dmg 4+ hours ago. Still “in progress”.

I ran into delays as well, following Catalina’s release, and then performance returned to normal.

Jeff Johnson:

Don’t worry, they said. It won’t be a problem, they said. It just works, they said.

Frank Reiff:

Ok, so now that everybody is notarizing their apps at the same time.. it’s painfully slow. Who would have thought that Apple would build a required feature that does not scale?

Apple:

We will be conducting scheduled maintenance on Sunday, October 20, 2019 at 6:00 a.m. PT for up to 8 hours. App Store Connect on the web, the App Store Connect app, the App Store Connect API, and the Developer ID notary service will be unavailable during this time. We apologize for any inconvenience and recommend that you make critical deliveries or changes on another day.

All distribution of Mac software will be blocked for 8 hours. Apple’s servers are a chokepoint even if you aren’t using the Mac App Store. Hopefully no one needs to ship an emergency update.

Michael Love:

The big worry censorship-wise is that notarization still presents a single point of failure; in theory the PRC could mandate that Apple use different sideloading code signing certificates for them and that only apps that register w/govt and pass censors can get signed.

Previously:

Update (2019-10-18): Rosyna Keller:

The “Upload Your App to the Notarization Service” section of the Customizing the Notarization Workflow documentation has been updated to include descriptions of new features in altool 4.0 such as making a keychain entry, listing provider membership.

Mark Munz:

Also, the fact that I’m forced to agree to some new Paid Applications Schedule to NOTARIZE my app (not in app store) is absolute crap!!

Update (2019-10-22): Mark Munz:

Where do I go at Apple to get my entire lost morning back while waiting for Apple’s notary service to “bless” my app?

Update (2019-10-23): Mark Munz:

Apple has been providing its Notary Service since June 2018.

This morning, it went from Performance issues to later finally admitting an outright Outage.

Luc Vandal:

I hope you had nothing important to ship today. 🤨

Jeff Johnson:

They took it down on purpose Sunday.

Now it’s down again.

Mark Munz:

Apple’s Developer ID Notary Service back up after being out most of the day.

Great service you got Apple, can’t wait for the next time this REQUIRED SERVICE injects itself into my critical path and eats away at my productivity. 🙄

Update (2019-11-01): Paul Kim:

Anyone seeing issues with notarized apps being unable to run third party Automator actions?

To follow up: to run Automator workflows with third-party actions, you need to check the Disable Library Validation in the hardened runtime entitlements.

[…]

Also, if you create a new workflow and drag a third party action into it, you’ll get a warning. Clicking that brings up an alert where you can enable third-party actions. I don’t see any evidence of this setting in Security & Privacy

Rosyna Keller:

If an app plugin created after June 1st, 2019 is ever going to be quarantined* on Catalina, it needs to be notarized, or else users must approve it in the Security & Privacy prefpane.

*Occurs when downloading from the internet, transferring via AirDrop, iMessage, et cetera.

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

I first submitted SilentKnight version 1.5 using Xcode. This was the first time that I had used version 11.2, and I proceeded in the normal way. It reported that the app had been successfully uploaded, and a few minutes later I was puzzled that it hadn’t yet been notarized and was still not ready to distribute. I gave it a bit longer, then checked its service status, which was green. But when I queried the status of my notarization request within Xcode, it reported that no record of that request could be found, and advised me to submit it afresh.

[…]

[Developers need:]

Accurate error messages which provide the right advice. As it turned out, every error had been misleading, and repeatedly resubmitting wasn’t the right way forward. Had the service informed me there was a problem and notarization would be delayed, I could have done something else instead of wasting most of an evening.

Accurate service status indicators. The service was down, but there was no indication of any problem except after you had submitted a request.

A contact point (Twitter, email) for informing Apple that the service wasn’t working properly.

Update (2019-11-26): James Thomson:

The yellow diamond of doom.

Update (2020-04-23): Norbert Doerner:

Apple claims you can use their main developer tool Xcode to notarize your macOS application with a few simple clicks.

Truth is, that doesn’t seem to be the case. For our NeoFinder project, for example, Xcode doesn’t even show the options to notarize the build and archived product. And yes, we have filed a bug report about this 16 months ago, and Apple said that somehow Xcode couldn’t really see that NeoFinder was actually really an application, so it probably possibly didn’t really work. And that was all. No help from Apple at all beyond that point.

Wednesday, October 16, 2019

Yahoo Groups Shutting Down

Yahoo (via Hacker News):

Yahoo has made the decision to no longer allow users to upload content to the Yahoo Groups site. Beginning October 21, you won’t be able to upload any more content to the site, and as of December 14 all previously posted content on the site will be permanently removed. You’ll have until that date to save anything you’ve uploaded.

“Uploaded” is referring to file attachments and the like. As far as I know, there’s no way to download the actual mailing list conversations, which are the bulk of most groups’ content. Lots of interesting and valuable information will be lost. Will anyone rescue it, à la DejaNews?

I love how the title of this announcement, “Understand what’s changing in Yahoo Groups,” downplays the what’s happening here. Unless you’re accustomed to these types of headlines, you might think that they’re just changing how avatars work, or something, and ignore it.

Groups.io seems like the best successor and is free for unlimited members, funded by premium features. It’s already being used by apple-dev and has instructions for transferring from Yahoo and Google. Another alternative is Gaggle, which is only free up to 20 members.

Update (2019-10-17): erincandescent:

Today it was announced that Yahoo! Groups is shutting down, and taking with it a piece of critical national infrastructure: the Oftel Yahoo Group which is used for managing UK phone number assignments.

Harry McCracken:

This is terrible news for the Internet’s collective memory, just as it was when Yahoo purged GeoCities and AOL purged Hometown.

Update (2019-10-22): Josh Centers:

I’ve received a lot of messages about Yahoo Groups today. “Yeah, they’re shutting the website down, but I can still use the email list, right?”

Take the hint. It’s time to migrate.

Update (2020-10-14): Yahoo (via e-mail, Hacker News):

Beginning December 15, 2020 the Yahoo Groups website will shut down and members will no longer be able to send or receive emails from Yahoo Groups.

iOS 13’s Forced “Find My” Notifications

Casey Liss:

Interesting: in Find My in iOS 13, the subject of a notification is told you set up a notification.

In Find My Friends in the iOS 12 era, you could quietly notify yourself about a friend without them knowing.

[…]

So for example, I know my wife is returning home shortly, and I want to finish up what I’m working on before she arrives. I could notify myself when she leaves her current location.

I can see why they thought this was a good idea, but I don’t think it solves the problem very well. The person being tracked has already consented and can revoke the permission whenever they want. They can also already see in the app when they are being tracked. Some sort of notification may make sense to remind people who have forgotten that they enabled this feature years ago. But a notification for every single use is really annoying. Many people use this feature to avoid bothering the person.

You can control whether Find My notifications are shown in Notification Center, but it doesn’t really help. If I turn off notifications to avoid being bothered when my wife is tracking me, it also means I won’t get notifications when she’s on her way home.

If your worry is that someone will gain access to your phone and start tracking you without your knowledge, that person would likely turn off the notifications, leaving you none the wiser. And, of course, they could still track you simply by leaving the Find My app open, without using the geofence feature. So how is this really improving privacy?

Dr. Drang:

I noticed this last week. I’m sure it’s considered a privacy/consent issue, but you’d think consent had already been given when they allowed you to follow them.

Nick:

This will be annoying for my wife, I set notifications for when she get to a certain location for dinner prep on my end. She says this will end up pissing her off if she can’t turn these off for me.

Tony Scida:

Yeah, I used this all the time in 12 to know when my kids were on the way with my ex so I could be ready. Don’t use it anymore because it’s not important enough to send a notification!

Maik Musall:

I use this a lot with my wife to facilitate family coordination. Despite this new hint, she says she doesn’t get a notification if I set one up about her leaving a place or something. Works as it did in iOS 12. We’re both on 13.

Kyle Howells:

This basically kills the feature for me. I’ll just try to remember to check the app frequently. Nobody I know will use notifications anymore either.

Receipt Validation and AirPlay 2

Chris Liscio:

I hear rumblings about some App Store receipt validation issues relating to MAC addresses on macOS Catalina. The commonly-used Apple sample code has busted logic that—in the presence of a strange condition on a (small?) number of systems—will fail to return a value.

[…]

I don’t know yet, but it manifests on my machine as a service match for both en0 as well as IOTimeSyncEthernetModernInterfaceAdapter (see attached screenshot.) The latter causes a second go-around in the while loop, causing the MAC address to get overwritten with NULL.

It makes no sense for Apple to provide buggy sample code for getting the MAC address when every app in the store needs to do this. With some other aspects of receipt validation, one could argue that you want each app to do it slightly differently to make them harder to crack. But the point of checking the MAC address is that you want to match it with the address provided by Apple when it generated the receipt. So you want to use the exact same logic they did.

Paul Haddad:

BTW I don’t think this is a Catalina issue, have seen reports of what sounds like this for several OS versions. Also seems to work if tested right after reboot, but breaks if tested later.

Chris Liscio:

The plot thickens!

After a reboot, my system no longer exhibits this “strange condition”.

Immediately after playing audio over AirPlay 2? BOOM—“strange condition”! 🤯

The “strange condition” appears to be the presence of IOTimeSyncEthernetModernInterfaceAdapter in ioreg.

Previously:

Update (2019-10-22): Chris Liscio (tweet, James Thomson):

While playing audio using AirPlay 2, there are two devices that have a BSD Name equal to en0. Both the actual en0 interface, and a new device called IOTimeSyncEthernetModernInterfaceAdapter (or IOTimeSyncWiFiInterfaceAdapter, depending on your Mac) that is only present while AirPlay is active.

[…]

When copy_mac_address returns NULL, your receipt validation code fails, and probably results in your application calling exit(173) to ask the App Store for a new receipt. Unfortunately, a new receipt isn’t going to help, and you get stuck in a very strange loop.

For me, this resulted in the app repeatedly appearing & disappearing in the Dock for quite some time. Eventually, the system finally gave up and told me the app was “Damaged” and needed to be re-downloaded.

[…]

The keys to this alternate approach are as follows:

  1. It specifies the kIOEthernetInterfaceClass, which only matches network interfaces. (Before you ask—yes, this includes Wi-Fi adapters.)
  2. It also specifies that kIOPrimaryInterface is set to true, which matches the built-in, primary network interface.

Update (2021-10-20): Paulo Andrade:

In reality the device identifier for macOS is the MAC for the primary network interface, which might not actually be named en0. To be on the safe side, instead of trying to determine which interface is the primary, I just grab all the MACs on that Mac and attempt validation with each one. Problem solved! Right?

Well… not yet. There’s another issue I just encountered recently. The IOBSDNameMatching call to get an interface by name can actually return nil even when ifconfig shows an interface with that name. I haven’t been able to understand why this happens (it’s very rare), but on one occasion Vallum Firewall seemed to be the culprit and on another, a simple restart seemed to fix it.

I finally ended up with a solution based on Apple’s source code here. Instead of getting a list of interface names and then getting the MAC for each by name I just iterate all the interfaces irrespective of what they’re called and collect the MACs for each.

Catalina Vista

Annoyances

Tyler Hall (tweet, Hacker News):

I completely realize and wholeheartedly own-up to the fact that I’m a geek and a Mac power user above and beyond what normal muggles will ever experience, nonetheless, this is the first-run experience I was greeted to this afternoon after upgrading to Catalina.

[…]

I only spent about ten minutes on that system today. But it was enough time to capture all of these papercuts and combine them into one truly-awful über screenshot.

I want to make clear that I’m not blaming the talented Apple engineers who obviously worked their butts off on Catalina just like they do every release.

My side-eye is squarely directed at the managers and Marketers who push for such an insane release cycle.

Sean Heber:

Just installed Catalina and logged in for the first time and have been hit with 6 permission prompts for various things so far.

Ben Sandofsky:

Your first time running Catalina:[…]

Razengan:

Apple seems to be forgetting their own credo against nag-based security

013a:

I’m astounded with some of the user security dialogs that Macs display. I got one today: “VSCode wants to make some changes. Deny or Allow.” That was the exact wording.

Matt Birchler:

Can Apple reimburse my company for all the time I’ve spent authorizing apps to perform basic functionality on my Mac today?

Joking of course, but man, this feels like Vista to me. Do a thing I do every day…“do you want to do this?”

I support the move to make the Mac more secure, but this is a rough first run experience.

Dave Wood:

Thanks for wasting more of my time #macOS #Catalina. Seems cron jobs don’t run anymore if they touch certain files/folders, including your ~/Documents folder (even if your script is stored there).

The system should be prompting for access to that now-protected folder but isn’t.

Dave Wood:

Solved the cron permission issue properly: drag /usr/sbin/cron into Full Disk Access in System Prefs.

Steve Troughton-Smith:

Everybody’s complaining about Catalina getting in the way of the command line and I’m like you know you can turn off SIP, right? Everything goes back to the way it used to be; I’ve never seen aaany of this. If you want the legacy security model, you can have it

Dave Wood:

The problem w/doing that is that I won’t see problems that my customers will run into. I need to swim in the same cesspool first so I can find out how to get them through it.

I bet a bunch of Apple engineers have done this exact thing & thats why we’re in the boat we’re in now.

Phillip Boushy:

There are so many other security controls that SIP implements that disabling it is overkill. Apple should have given a better UX for this. Make them entitlements if needed, pop up a single window during first load. Also an “allow all apps access to X” would be nice...

Benjamin Mayo:

Most of the privacy dialogs in Catalina are sane; patching holes in the permissions system that should have been there for years already. Nevertheless, Apple could have come up with a better policy where you don’t get bombarded with dialogs from every app all at once.

Jeff Johnson:

A good practical joke to play on someone running Catalina:

$ tccutil reset All

Mr. Macintosh:

This article will show you how to Manage Catalina’s New Application Notification Preferences with a Config Profile.

Craig Hockenberry:

If you think the Catalina permissions problem is bad from a customer’s point-of-view, it’s absolutely brutal for developers.

The security prompts are so half-baked that developers have to guess about permissions. And since we don’t know the internals, that guess can be wrong.

Rui Aureliano:

Dear macOS developers, recently for Catalina we see this window for Screen Recording permission. Has anyone found a way to check if it’s already granted?

Matthias Gansrigler:

this is how I do it in @ScreenFloatApp.

Broken

Tyler Hall (Hacker News):

But Catalina has been different in two particularly gruesome ways that get even worse when combined.

[…]

I’ll go through some of the highlights (lowlights?) I’ve run into below, but I guess this is my thesis: The final (well, first) Catalina release along with the outright awful public beta makes me think one thing. And that is Apple’s insistence on their annual, big-splash release cycle is fundamentally breaking engineering. I know I’m not privy to their internal decision making and that software features that depend on hardware releases and vice-versa are planned and timed years (if not half-decades) in advance, but I can think of no other explanation than that Marketing alone is purely in charge of when things ship. Why else would stuff so completely broken and lacking the attention to detail that Apple is known for and (ahem) markets themselves on have shipped if not than to meet an arbitrary deadline? Apple has so many balls in the air – and this metaphor doesn’t really make any sense now that I’m typing it – but they’re all interconnected now that Apple is a services company. And as a services company they must find a way to ship features, fixes, and updates outside of the run-up to the holiday season.

[…]

After upgrading to Catalina, macOS made me reauthorize every app that wanted to send me notifications. Ironically, the following alert appears every time I reboot despite always dismissing it using the most definitive option Apple provides and never giving whatever-process-is-showing-it permission to notify me of anything in the first place[…]

Thomas Claburn:

Since at least 2015, developers and other technically-savvy folk have fretted that Apple’s software quality isn’t what it could be. The gripes reached Apple executives and by 2018, there were reports that company technical leaders were focused on improving quality.

To judge by the reception of macOS Catalina, aka macOS 10.15, it appears Apple’s quality push was more aspirational than actual.

snapples:

Things are so broken here at Apple. I joined about 4 years ago.

I am awed by the fact that we manage to release any software at all, let alone functional software.

The biggest problem is communication. No one fucking communicates.

- No communication between orgs. Tons of bureaucratic tape to cut through just to get a hand on someone working on a different product

- Barely any communication between teams. Literally every group of 4 people is in a little silo with no incentive to go outside it

- Broken management structure. I have had many managers (a red flag in itself) but even worse none of the managers take suggestions from engineers. Everything is purely top down. If an engineer realizes there is a problem on a macro scale they cannot fix it. It is literally impossible to unite more than 1.5 teams to get anything done.

[…]

- Culture of secrecy means nothing gets fucking done. You file a bug report and you can’t even see it any more for some orgs

jarjoura:

When I worked there under SJ, the Mac OS org (then under Betrand Serlet), it was sort of open amongst the org itself. It was really easy to walk to someone’s office and strike up an interesting conversation. Many late nights were spent working through collaborative problems. Or randomly, I had a friend who would pop by my office and spend hours explaining how he figured out some complex Javascript compiler bug of the day.

It always felt like we were in a mission to ship Mac OS together. What Apple did do back then was create these special versions of the OS that had a few key hidden/secret products that SJ was going to demo, like iTunes or iPhoto. So while I could install the latest internal developer build of the OS, it would have a feature or two missing. You would then get radars that mentioned the code-name and explained a bug that you had to fix for the feature, but you had to fix the bug blinded and send the bug back to verify. (Radars could never be closed until the original creator verified them) The secrecy didn’t really get in the way and it made for an interesting culture.

Then it all started to change when Forstall was promoted to VP of the iPhone effort. He took what was probably meant to be a short term secret launch team culture and expanded it to create this massive secret island in the company. The program office and by extension, the original founding engineers were all promoted to management that expanded on the secret culture. I think if management meant to open the culture back up to the same level as Mac OS in 2009, they would have been burned by Samsung and Palm WebOS making exact copies of the software coming out at the time. So the hyper locked down culture persisted and SJ passed away. Then Forstall was fired and Federighi was promoted to replace him and merge both the Mac OS and iOS orgs finally killing off any of the remaining openness that once existed.

Then came all the ridiculous tools such as checking someone’s security clearance when you had a meeting with them.

snapples:

I should note that most developers here really do care, and that’s probably why products can be released in the first place. You have to have really dedicated people willing to cut through the organizational bullshit to get things done.

All of the engineers I’ve met here are smart and innovative. Only if we could organize, things would be much better.

Aftermath

Tyler Hall (Hacker News):

I fully stand behind every criticism I leveled at Apple. From the specific bugs, to the broader statements about detecting a lack of focus on the Mac in recent years, to my final thesis about their lock-step, annual release cycle hurting the company’s ability to maintain software quality.

But the part that wasn’t fair. The parts that I regret are my direct insults at those in charge.

[…]

Around 11am the next day, I received a Twitter DM from an Apple engineering manager who (I thought) had somehow stumbled across my post. And they very kindly asked if I could jump on a call to go into more details about my post and the bugs I identified. They were super awesome and I’m looking forward to working with them more this week.

They say that running to the press “never helps,” but the Mail bug that’s causing users to lose hundreds of thousands of e-mails was reported months ago via a bug report that was apparently ignored. Hall’s concerns are at least being heard.

Luc Vandal:

Really Apple, why bother with this yearly update cycle non-sense if it just adds more bugs that are annoying your users and prevents them to actually do some work? We need stable OSes, not full of bugs shipped because of some marketing-force deadline.

[…]

And I’m not blaming Apple engineers, which are doing their best. I think the issue is within high management.

Michael Rockwell:

Apple should just take the next year or two and Snow Leopard every piece of software they make. Fixing bugs and improving overall quality needs to be their number one priority.

thelittleone:

The position of Apple today reminds me a lot of Microsoft after they peaked (~2000?). Cocky to the point of arrogance because of market position, past innovations and brand loyalty (e.g., it is cool to own Apple). But loyalty and market sentiment can only endure so much amidst plummeting product quality, nonsensical pricing (e.g. dongles) and lack of any meaningful innovation (thinner doesn’t count). Apple doesn’t listen because they think they know better (and that used to be true).

These seem to be common sentiments, though I don’t understand the persistent claim that Apple hasn’t innovated lately.

Justin Blanton:

I genuinely can’t remember the last time I was even remotely excited about macOS/OS X. All I really care about these days is that the newest version doesn’t break shit. 🤷🏻‍♂️

Jeff Johnson:

Let’s not forget that Apple used to charge $129 for Mac OS X updates.

If they charged $129 for Catalina, it would be DOA.

John Gruber:

That’s an interesting measuring stick. A MacOS update (or iOS for that matter) should feel like something many users would pay for. If it doesn’t that’s a problem.

Joe Rossignol:

Apple shares are currently trading above the $234 mark on the intraday market, setting a new all-time high for the company.

Previously:

Update (2019-10-17): scott:

The selling point of Catalina is it will be the only version of macOS that runs on Macbooks with scissor switch keyboards.

Update (2019-10-21): David Shayer:

In a well-run project, features that are lagging behind are cut early, so engineers can devote their time to polishing the features that will actually ship. But sometimes managers play “schedule chicken” since no one wants to admit in the departmental meeting that their part of the project is behind. […] Apple could address this scheduling problem by not packing so many features into each release, but that’s just not the company culture.

[…]

When I worked on Apple products, we’d get a list of the top bugs driving Apple Store visits and support calls, and we were expected to fix them. […] Unfortunately, bugs that are rare or not terribly serious—those that cause mere confusion instead of data loss—are continually pushed to the back burner by the triage system.

[…]

But if you file a bug report, and the QA engineer determines that bug also exists in previous releases of the software, it’s marked “not a regression.” By definition, it’s not a new bug, it’s an old bug. Chances are, no one will ever be assigned to fix it.

[…]

No need to go into the details here, except to say that, apart from a few specific areas, Apple doesn’t do a lot of automated testing. Apple is highly reliant on manual testing, probably too much so.

Riccardo Mori:

What I want from a new version of an operating system, especially one as mature as Mac OS, is that it fixes or improves what was not working well in previous versions, and that it leaves tried-and-true features and functionalities as untouched as technically possible. I don’t need and I don’t want disruption for disruption’s sake on a yearly basis.

Update (2019-10-22): See also: Hacker News:

Colin Cornaby:

I feel like Apple needs to take an OS release cycle just to fix their internal process.

I know it’s a political problem and not a technical one that can’t just be solved by throwing a unit of time at it. But still. Makes it harder to fix actual bugs.

The repeated whispers of a lack of automated testing is concerning just because it’s so hard to ensure quality at the scale Apple is trying to ship at. Either you hire a lot of QA engineers (which Apple doesn’t seem to be doing) or you automate the heck out of things.

The challenge is that it’s a political problem and they need to throw a unit of time at it, which is also a political problem.

Update (2019-10-23): See also: Hacker News, John Gruber.

Bob Burrough:

I worked with David, and I have great respect for him. However, the premise is false. iOS 13 and Catalina are not any more bug-riddled than any release over the last five years. They’ve all been filled with bugs.

Dave Mark:

This one passes the vast majority of those tests. This doesn’t feel like post-Apple spite, but rather a knowledgable take on problems, with thoughts on where things are going wrong.

Apple is a fast moving train, steadily producing and refining immensely complex products. Apple is dancing to the opposing forces of satisfying shareholder demands for ever-increasing growth, and user demands to stop and fix the bugs. Short of halting forward progress and retooling, there’s no easy answer here.

Peter Steinberger:

I still remember at WWDC a few years back, I went with some older radars to the labs, only to get turned down with a „You already have a workaround - why do you care?“

...that made me mostly stop filing radars for older issues. (There are just too many, not even mad, mgmt issue)

Jeff Johnson:

If Apple’s reputation is temporarily dinged, but that doesn’t hurt the company financially, does it really matter to current leadership?

They’re still better than the (sucky) competition. It’s a can’t-lose situation.

[…]

Apple is in a comfortable, stable duopoly with Microsoft on desktop and Google on mobile.

[…]

The awful truth of the tech industry is that technical debt is profitable. It doesn’t pay to fix your bugs. You have to do it because you care, not because your stockholders care.

Andrew Hoos:

If you know anyone that wants to be a part of expanding automated testing at Apple. We are hiring: backend (Scala), client (Python, Objective-C, Swift), infrastructure (Kubernetes), and frontend (some kind of js I guess).

Update (2019-11-06): Manton Reece:

Day 2 of Catalina, now hitting more issues with full disk access and Ruby-related commands. Using rbenv and starting to wonder if I need to throw everything out and re-install to make Catalina happy. I’ve added all the obvious paths to System Prefs.

Rui Carmo:

Apple’s software QA has become so much of a risk to my personal productivity that I’m (again) considering switching to a Linux desktop, and only a combination of inertia, real life and my working at Microsoft has prevented that from happening.

Update (2019-11-27): Maxime Chevalier-Boisvert:

I decided that today I was finally going to upgrade MacOS after putting it off for a year. Three hours later I’m still trying to get my MacBook Air in some kind of working condition. :'(

[…]

As far as I can tell, the OSX installer corrupted my filesystem while trying to convert it to APFS, and left it in a broken state.

Update (2020-02-14): See also: Hacker News.

Update (2020-05-28): Brian Webster:

Ever since upgrading to Catalina, the first time I open up the sound pane in System Preferences after a restart, I get about half a dozen notifications that pop up for the same set of Apple Pay purchases I made over a year ago.

Tuesday, October 15, 2019

Catalina System Issues

Patrick McCarron:

The (null) version of Mac OS Catalina is finally out!

Dave Mark:

And my Catalina install grinds to a screeching halt.

Logged in, got the “Find My” screen (see pic), tapped Continue, and I’ve been frozen for about 15 minutes.

Regret doing this? Why yes, yes I do. 😐

Peter Cohen:

Stuck in an endless iCloud authentication loop after upgrading to Catalina? This fixed it for me.

Christina:

Aaaand another edge case hit: If you are stuck in an iCloud Terms and Conditions loop after upgrading to #Catalina, go to System Preferences > Internet Accounts, click the “inactive” Apple ID used for iTunes/App Store, wait for Terms and Conditions sheet to appear and agree.

Matthias Gansrigler:

Wow, Catalina seriously f**** up Bluetooth connections. To Apple devices. Like the Magic Trackpad. Only reacts after a 1-2 second delay.

Never experienced that in the beta.

David Sparks:

Blasted through my flagged email this morning on my Mac. Interesting issue though. Apple Mail now has a different flag count on every device I own: Mac - 0; iPad - 90; iPhone - 29. All running latest (non beta) releases.

Ugh.

Chris W:

Love how Apple’s new Music app is so lightweight and free of bloat compared to iTunes

Gus Mueller:

In 10.15 AppleFileServer is sandboxed, and it’s unable to read any volumes that I have shared out to Kirstin since upgrading. I guess I can fix this, but how is anyone that’s not a developer supposed to handle this?

Tyler Hall:

My wife’s local account password (not iCloud) on her iMac is an all-lowercase, seven character, simple English word.

Upgraded to Catalina. No problem.

iMac went to sleep. Woke up. Will no longer accept her password. 🤷‍♂️

Corbin Dunn:

I upgraded my laptop to macOS Catalina. No problems, so I did my older iMac yesterday. That was a mistake...I’m now trying to figure out why my login won’t work and where my data went (ah...readonly volumes....)

I used to always relocate my home directory to another partition when I did development on macOS so I could install multiple versions and use the same home dir. Apparently this really confused the migration to Catalina, and really messed up stuff.

Mike Epstein:

Worse still, when you update a phone, tablet, or computer to the new version of Reminders, all of the updates you’ve created using that device will be deleted across all platforms, new and old.

Even if you’ve upgraded, though, there’s still a chance that you could lose your info. The new Reminders app asks you to confirm the update the first time you turn it on. If you’ve made Reminders on your iOS 13 or iPad OS device using a secondary app or process before opening the app, those reminders will get deleted when you open the app and press “upgrade now.”

Windows users are also getting hit especially hard by the change. The new iCloud web app supports the new version of Reminders, but Apple says the iCloud for Windows app “can’t see iCloud Reminders” after the update.

Armin Briegel:

System Image Utility is gone from macOS Catalina.

It is not possible to build a NetBoot or NetInstall nbi based on Catalina.

Steve Troughton-Smith:

Judging by the Catalina GM seed, macOS Catalina is gonna ship with nonfunctional SceneKit in Catalyst on older Nvidia GPU-powered Macs (like my 2012 iMac). If you have SceneKit in your app, it will just render as an empty scene on these configurations. No workaround for users

Simon Gredal:

I’m able to buy a $0.99 Catalina-incompatible 32-bit app from Mac App Store. It even lies to me and say that it will work on my Mac.

Dave DeLong:

Turns out that sharing Maps collections only shares a snapshot. Recipients can’t modify your collection. This leaves joint trip-planning as impotent as it was before. (FB7372447)

And of course, collections don’t exist on Mac. 🤦‍♂️ (FB7372437)

Michael Flux:

Gotta say, Catalina is without a doubt the most shitshow macOS update in years.

On a completely fresh install to eliminate any potential upgrade bugs, somehow everything from photos to iCloud Drive to system apps have large enough bugs to prevent basic usability.

Issues I’ve run into:

Previously:

Update (2019-10-16): See also: Mr. Macintosh’s macOS Catalina System Status.

Update (2019-10-17): LeeW (via Jeff Johnson):

Many [Mac mini users] are having issues getting a basic HDMI connection to work at all or only through weird and wonderful workarounds. Apple has confirmed to me they are aware of the issue and they advised it was an issue they could replicate when using HDMI -> HDMI.

Update (2019-10-18): Matt Henderson:

I wish I hadn’t upgraded to Mac OS X Catalina:

- iCloud Drive has been stuck permanently uploading two small files. (No idea what they are.)

- Safari bookmarks no longer syncing across my devices.

- Messages permanently reporting “Downloading Messages from iCloud”.

Update (2019-10-21): Howard Oakley:

There are several reports of problems getting Catalina to accept and load kernel extensions (KEXTs). This article looks briefly at how they can arise, and whether you can do anything about them.

See also: MacInTouch.

Martin Steiger:

For some OCR’d scanned PDFs, you cannot select the last page in the rewritten Preview.app, the selection jumps to the second last page

Christopher Moss (via Leo M):

Louis Rossman - better known for his hardware repair videos - has made a brief video describing an issue with Catalina bricking machines, and refers to a fix that Apple is assiduously removing from their support forums. [links added]

The issue and purported solution are not very precisely described and don’t make sense to me as written. The referenced file is not 32-bit, and I do not recommend deleting it.

Howard Oakley:

Every major upgrade to macOS brings howls of complaint. It’s the worst upgrade yet, many Macs are bricked by it, it’s full of bugs, and so on. But are those claims really true? What’s the evidence?

Last week I was surprised to see two main threads of complaint: one that Apple was advising internally that the latest Mac mini shouldn’t be upgraded to 10.15 at all because of serious issues, the other that 10.15 made an unholy mess of iCloud Drive for many users.

[…]

The document in question was a PDF, and its every aspect made obvious that it was fake.

[…]

Drilling down on the iCloud Drive problems, I noticed that quite a few of those reporting them mentioned using Catalina betas, and it occurred to me that, although some had clearly never let a beta near their Mac, a significant proportion of those now complaining of iCloud problems in 10.15 release hadn’t cleared up the mess which earlier betas had produced.

Update (2019-10-22): CogSci Apps:

When iCloud sync is enabled under Catalina (10.15), Notes’ AppleScript is almost completely useless. Even just accessing a note object can cause a -10000 error.

[…]

Catalina (10.15) Notes AppleScript is broken, lots of -1700 errors when interacting with note objects

Update (2019-10-25): Brent Simmons:

On Catalina, setting NSSavePanel’s nameFieldStringValue works on the first call but not on subsequent calls.

Let’s say you have an accessory view, and a change there needs to be reflected in the proposed file name. Works in Mojave, but not in Catalina.

I’ve also found that sheets no longer work with NSSavePanel.

Update (2019-10-31): Marco Arment:

oh my god

Thomas Tempelmann:

Caveat when upgrading to #Catalina: If you have Finder Aliases, they may get broken. That’s because the new Data volume will use different File IDs, and Aliases use them to locate renamed or moved targets of Aliases.

Update (2019-11-05): Omer Lev:

I haven’t seen this reported, but I’m encountering a consistent bug in Catalina’s Preview, in which removing a page from a PDF corrupts it in a way that it cannot be opened by Adobe Reader.

Update (2019-12-17): Gus Mueller:

Update to this- looks like NSFontManager’s availableMembersOfFontFamily: is busted on 10.15, and that’s why it’s only coming up as an issue now.

Howard Oakley:

Just when you think it’s safe to upgrade to macOS Catalina, we start hearing of strange and serious problems, like its security checks getting completely out of hand and slowing app launch drastically. Over the last few weeks, as more Mac users take the plunge and upgrade, I’ve been hearing of more and more such cases. Are these bugs and should we still hold off upgrading?

eurozerozero:

Another Catalina issue if you want to note it - weird issue with crons where they never go away and the system runs out of resources and can’t even shut down.

Update (2019-12-23): Kirk McElhearn:

Since the release of macOS Catalina, Time Machine doesn’t work with Apple Mail. If you enter Time Machine from Apple Mail, you are supposed to be able to see your email in all your backups. But if you try to do this is Catalina, Mail crashes.

I reported this during the beta period.

Update (2020-02-28): Marco Arment:

I’m finding that Catalina introduced LOTS of little delays involving Finder integration: displaying open/save dialogs, displaying changed files, starting moves/copies, deleting files…

Update (2020-03-27): Drummond:

This year I opened my 2019 organizer PDF and Preview did not recognize it as a form. The only way I can edit it is by manually using the Markup bar, which would take forever.

[…]

So then I went back to my old machine (a 2015 MacBook Pro still running Mohave) and sure enough, BOTH PDFs were editable as forms.

So what’s going on? Why can’t Preview under Catalina edit a PDF form?

Paul Haddad:

I just got bit by a 10.15 issue earlier today, for some reason my printer/scanner thing is only recognized as a printer now. Booted up a 10.14 VM and it scanned fine. Not quite worse OS X ever, but pretty close.

It also doesn’t like Tripp Lite UPS hardware.

Catalina Reviews

Catalina App Issues

Adobe:

Lightroom Classic 8.4.1 work with macOS 10.15 (Catalina) but have these known compatibility issues. You may want to remain on your current version of macOS until these issues have been resolved.

Adobe:

Photoshop 20.0.6 and later versions work with macOS 10.15 (Catalina) but have these known compatibility issues. You may want to remain on your current version of macOS until these issues have been resolved.

Dave Nanian:

As you might expect, the “new way” Catalina splits your drive into two parts makes things more complicated. The details are hidden from you by Apple for the most part, but SuperDuper has to know, and handle, all the various tricky cases that arise from that split (not to mention the technical details of tying the volumes together, which we figured out early in the summer). […] That beta works great for most users, but will have some limitations around images[…]

Keith Gugliotto:

One other thing – the Add iTunes button and menu item won’t work, and dragging directly from Music will also fail. Work around that by dragging the tracks you need directly from the Finder.

Noodlesoft:

As of this time, Hazel is not compatible with Catalina. Catalina introduces a number of changes and bugs which affect Hazel, many of which are still unresolved. It is strongly advised that you do not upgrade to Catalina if Hazel is an important part of your workflow.

Paul Kim:

Apple: We would like to contact you concerning a crash. Could you please file an FBA?
Me: You’re contacting me now, but sure. files FBA #1
Apple: marks FBA #1 as unactionable
Me: files FBA #2
Apple: crickets
Me: files DTS to look at FBA #2
Apple: crickets*

Motif:

There are two issues you will encounter if you upgrade to Catalina currently:

The first: Upon opening an existing project, all images on all pages are missing

[…]

The second: Images in the image tray appear pixelated

CoreCode:

Specifically, a bug in ‘Paddle’ may cause MacUpdater to ‘forget’ its license-information if you upgrade to ‘Catalina’. Therefore, please make sure that you know your license-code if you plan to upgrade to ‘Catalina’ soon.

tunabelly:

Since all of us developers have been given 3 days notice from Paddle to either update to the newest V4 framework or migrate from V3->V4 for every app, before macOS Catalina is released, they need to step to the plate.

It’s not realistic that we can all do this within 3 days, so I’m proposing that Paddle email everyone who’s purchased a Mac app telling them that they regret the situation and wish that the developers could have had more time. Explain that updates are coming from all developers and that each app will need the license key re-entered after upgrading to Catalina.

OskarGroth:

Seriously, does Paddle have anyone running the ship over there these days? How is it that Catalina has time to go public before you realise that your SDK is completely broken? […] I couldn’t believe it when I got the email saying “We have increased the number of activations for all end users who didn’t previously have any remaining. This way they can activate normally after installing Catalina without contacting your support team.”. Do you seriously not realise what an extreme hack of a temporary solution this is? Not to mention corroding the trust between Paddle and Merchants as you tamper with their activation limits to solve your own front-end bugs?

Matthias Gansrigler:

Since I’m having trouble with the macOS Catalina-compatible ScreenFloat v1.5.17 update getting through review, I thought it’d be best to publish a quick note about how to make sure ScreenFloat works for you on macOS Catalina. Otherwise, you’ll probably end up with screenshots of your Desktop, instead of the actual windows you’re trying to take a screenshot of.

Objective Development:

When you install Little Snitch on macOS Catalina, you may get an error message “Little Snitch version mismatch detected” after restarting your Mac. This is due to a new bug in the operating system.

Catalina sometimes refuses to perform the necessary boot cache update for the newly installed kernel extension. As a consequence, macOS still uses the previous version of the kernel extension from the outdated cache, which then results in a version conflict with all other updated components of Little Snitch.

Houdah Software:

macOS 10.15 Catalina bans third-party applications from searching the Mail.app Spotlight index. On macOS Catalina, HoudahSpot will thus no longer be able to find your Apple Mail messages.

Pilotmoon Software:

If you use the Alfred, Fantastical or TaskPaper extensions for PopClip, you’ll need to download updated versions of those extensions (by clicking the links in this sentence).

Dolphin Emulator:

macOS users: If you want to continue using Dolphin in macOS, please do not update to macOS 10.15! Every macOS release tends to break Dolphin in some way, but this year is especially problematic. We’ll have details on this in the future.

See also: known issues for my apps.

Previously:

Update (2019-10-31): Thomas Warfield:

It has become clear that macOS 10.15 (Catalina) is Apple’s buggiest Mac update ever.  We have identified a number of bugs in Catalina that are causing crashes to our apps.

MeldaProduction:

So the real question is, do you want the developers of your DAW and plugins to spend their days trying to fix the problems arising from system upgrades, or to improve their own software products, making them more functional, more powerful, faster, stable and easier to use? If it's the latter one, then the only solution seems to switch to Windows. The only one, who can make a difference is you, the customer.

See also: Arduino.

Apps Lost With Catalina

Jim Dalrymple:

For those that have been following along, 64-bit is not that new. Apple has been talking to developers about the 64-bit transition for several years. Chances are your apps have already been updated to take advantage of the architecture.

However, if your apps haven’t been updated, they won’t run on the new operating system. You should be aware of that before you upgrade.

Peter Cohen:

Important macOS Catalina upgrade tip: Remember that checking your Mac hard drive for 32-bit apps only reveals the apps that won’t work which you have installed. It won’t show you anything about the state of apps you have in the cloud, via app stores like the MAS, Steam, etc.

A. Lee Bennett Jr.:

Not that I’m updating from macOS 10.12 to 10.15 super soon, but I’m looking at the non-64-bit apps and worrying[…]

TLA Systems (previously):

DragThing is written using the 32-bit Carbon APIs that Apple have now removed in macOS 10.15 Catalina. It will no longer run if you update to Catalina, and there are no plans to make a new version that will.

We are sorry to say, DragThing has launched its last app.

John Gruber:

I haven’t used DragThing in many many years, but for a long time it was essential to my workflow, and I firmly believe it was a much better launcher than Apple’s own system Dock ever has been. DragThing had features — like the ability to create custom palettes that only appeared in a certain app — that I don’t know how one would replicate today.

Fetch Softworks (previously):

Apple had made it clear that 32-bit apps like Fetch 5.7 weren’t long for this world, so it looked like the time had come to lay Fetch to rest for good. But I wasn’t quite ready to say goodbye, and it occurred to me that there was a third option, something between finishing Fetch 6 and letting Fetch die: I could port Fetch 5.7’s Carbon user interface to Cocoa and make a 64-bit Fetch 5.8. […] Fetch 5.8 is now in beta testing; you can sign up to test it here. It currently implements about 90% of Fetch 5.7.7’s features with about 50% of Fetch 5.7.7’s reliability.

AccountEdge:

While AccountEdge is currently a 32 bit application, we have been hard at work on a 64-bit version.

[…]

We do not have an update and we still strongly encourage you to delay your upgrade to macOS Catalina until we have released a compatible version of AccountEdge.

Nilay Patel:

Every late-2000s tech blogger take a moment of silence: the legendary Turbo.264 HD video encoding dongle will never get a 64-bit app and so is now officially dead

Fujitsu (previously):

The 64 bit application for macOS is not provided for the old scanner models such as ScanSnap S1500, S1500M, and etc. because their support periods have already expired. If you wish to have the 64 bit application for macOS, please consider purchasing ScanSnap products that are currently available on the market.

Brent Simmons:

It’s not my intention, and it’s not what I want to happen — but NetNewsWire 3.3.2 apparently does not launch in the next version of macOS (10.15, Catalina).

[…]

NetNewsWire 3.3.2 was the last release of the full version that I worked on, before selling NetNewsWire to Black Pixel, and I’ve heard from lots of people that they’ve been using it ever since. They never switched.

That version is still unequaled, in certain respects.

Stickshift Software:

Mailsmith is no longer under active development. It will not be upgraded for 64-bit macOS compatibility.

PowerMail also looks like it will not get a 64-bit version.

rolleiflex (John Siracusa):

I know there is a contingent of people who are stuck at Adobe CS6, whose certain critical components are 32 bit. Since Adobe no longer sells permanent licenses, opting to only rent their software instead, it’s impossible to get these updated. And these expensive and still-in-use licenses are going to die the moment people update to Catalina.

Toon Boom (via Ben Juwono):

If you have Harmony 16 or Storyboard Pro 6 (or prior versions), they will not open in Catalina. Harmony 17 and future versions of Toon Boom’s software will be compatible with macOS Catalina.

Casey McDermott (Hacker News):

Sadly, we just decided to abandon the Cocoa update for our app. It’s not easy to walk away from 3 years of work, but better 3 years lost than 5. Time will be better spent on our Windows version.

TurtleSoft started Mac-only with Excel templates in 1987. The first prototype of our current stand-alone accounting app was in the early 90s. Since then, programming for Mac has gone through four primary programming languages (Pascal, C++, Objective C, Swift). Three, soon to be four chip architectures (680x0, PPC, Intel, ARM). Four frameworks (MacApp or Think Class Library, PowerPlant, Carbon, Cocoa).

Casey McDermott:

The plan was to subcontract the Cocoa conversion in parallel. We assumed there would be tons of experienced Carbon->Cocoa programmers so late in the game who could whip it out in a year or less. The bigger offshore subs would only touch it on an hourly basis, estimated $100K to $200K. One QT guy quoted $30K for both platforms, which was pretty much our maximum budget. He took the first draw payment then failed. 3 others tried pure Cocoa for a similar price, but got nowhere.

In 2015 we finished the 64-bit prep, and started work on Cocoa in-house. Based on past updates, 4 years seemed like plenty of time. Now, after 2 or 3 programmer-years, a realistic guess is another 2 or 3 needed to finish. Our app has a lot of interface code. Running a construction business is complicated. We do a lot more than QuickBooks.

Casey McDermott:

Yesterday I checked up on a few other companies we know who have Mac software in the AEC market. Most died off years ago. Two are now Windows-only. Three will have 64-bit apps “soon”. So far, nobody is ready for Catalina yet.

TextWrangler:

PSA: with macOS Catalina coming soon, you’re going to need a 64-bit TextWrangler. @bbedit is it. (Seriously: you’ll feel right at home.)

Tyshawn Cormier:

What I missed is with 32-bit support gone, iPhoto and Aperture no longer launch. That’s a little strange. System Information definitely reported both of those apps as 64-bit.

Howard Oakley:

If you need to retain access to key 32-bit apps, or anything else which won’t run in Catalina, a VM running Mojave or earlier is a highly practical solution, and very straightforward to set up using the latest Parallels Desktop 15.

My brother has had trouble even getting Aperture to work in a macOS 10.14 virtual machine. See also: Capture One.

jessamyn:

Super disappointed in @OverDriveLibs decision to not create a 64 bit app so Mac users could listen to audiobooks with their existing app. Instead, their whole system silently fails and we have to dig around in help files to figure out wtf is up.

Joe Fabisevich:

Apple deprecating 32-bit support is completely reasonable but I can’t believe I’m going to have to run a VM to download library books now. Gotta have my library books.

Kyzrati (via Steve Troughton-Smith, Hacker News):

Clearly I was already on the fence about the whole Mac thing before, otherwise it might’ve happened earlier (I did spend a while researching and testing the potential for a solution on Macs, in preparation for a potential future public release), but Apple has time and again taken actions which are clearly hostile to developers as they continue the trend of building and reinforcing their own walled garden.

Among their latest moves, Apple’s newest OS drops support for 32-bit applications, which will unnecessarily render a huge library of software and games unusable on Macs, compared to Microsoft which does a great job of maintaining Windows backwards compatibility in that area even as most modern software tends to be 64-bit. This makes it far easier to hold together Cogmind’s existing tech so I can focus on things players actually care about, like more features.

Aspyr (Hacker News):

Any 32-bit Aspyr games not listed above will be incompatible with MacOS 10.15.

jasper:

in a few days with the launch of the new 64 bit-only mac os, millions of games will no longer work, including my own. how are are other developers approaching this? will you remove your 32 bit games from Steam etc?

The Tape Drive (via Hacker News):

A bundle called IncompatibleAppsList.bundle found in /Library/Apple/Library/Bundles/ in macOS Catalina contains [a list] of 235 apps that are incompatible with Catalina. This list is used by the Catalina installation process to show the user a list of currently installed apps that are incompatible. Many of the apps listed are included only because older versions of the apps are incompatible as noted by the strings included with the bundle.

Previously:

Update (2019-10-17): Rob Griffiths:

With the release of Catalina, though, we’ve decided to remove Witch 3 from the Mac App Store, effective today. Why? Because Witch 3 is 32-bit code, and it will not run in macOS Catalina. Unfortunately, the App Store will lie about this if you look at the Witch 3 listing in the Mac App Store[…] In addition, it’s been three years since we released Witch 4, which is a very generous “sunset period” for the prior release. Hence, it’s time for Witch 3 to retire from the Mac App Store.

Update (2019-10-21): Qdea:

Because Synchronize! Pro X is a 32-bit application, it is not supported by Apple on MacOS 10.15 Catalina and later operating systems. A 64-bit version of Synchronize! Pro X is not planned.

Update (2019-11-26): Fat Cat Software:

Unfortunately, the new Music app does not provide the necessary hooks for PowerTunes to be able to function with it the way it could with iTunes. Therefore, I’ve decided that I’ll be discontinuing development of PowerTunes.

Steve Troughton-Smith:

Somebody should tell Apple that AppleGlot doesn’t install on Catalina, which makes their localization page and glossary downloads pretty useless 😛

Previously:

Update (2019-11-27): Levelator is not making the transition to 64-bit and so won’t run on Catalina.

Update (2020-01-03): Apple3Forever:

Steam / Catalina 32-bit App-ocalypse notes:

I had roughly 1000 Mac games in my Steam library pre-Catalina.

Today, the number of runnable 64-bit Mac games sits at 278.

~72% of my Mac Steam library was killed off.

See also: SwiftOnSecurity.

Nathalie Lawhead:

Our idea of progress shouldn’t come coupled with destroying the past. This is counterproductive to the art movement in games because art requires an actual history. We can’t have that if we’re constantly losing work from the small devs that don’t make enough money to be important to large corporations like Apple.

[…]

Games aren’t a service. It’s like asking for a director to keep updating a movie, or for a musician to keep changing their song so it can keep running.

Matt Birchler:

I know this is more complicated than can be shared in a tweet, but preserving older software is important and these sorts of stats are brutal.

“Devs were told to update” works for active devs, but games built by studios that don’t exist anymore don’t have that option.

Unfortunately, I think the only solution for preserving history is emulation.

Sophie H:

Thread of LRT is absolutely right about Apple effectively expelling all smaller developers who create experimental work. My ability to cover a $100 fee annually has varied WILDLY and even tho I can justify it right now, there’s no fucking way I can justify notarising every project

Rosyna Keller:

I want to reiterate that on November 18th, CodeWeavers released the first beta of a Wine that can run 32-bit software (in bottles) on 64-bit-only macOS.

Update (2020-04-20): AccountEdge (tweet):

We are disappointed to share that we will not be able to offer a Catalina-compliant version of AccountEdge - now or in the future. In the end, AccountEdge’s 30-year-old codebase proved too outdated to establish compatibility with Apple’s newest operating system. In spite of a multi-year project that involved a team of developers and analysts, it’s a project we will not be able to complete.

Catalina Supplemental Update

Eric Slivka:

Alongside iOS 13.1.3, Apple today also released a supplemental update for macOS Catalina, addressing several bugs from the initial public release version, including a problem with Setup Assistant hanging during Catalina installation.

Presumably, if the Mail issues were fixed they would have been called out in the release notes.

masterleep:

Wish they would call it [macOS 15.0.1] and dispense with unversioned “supplemental updates”.

Who knows which version you’ll get if you specify “10.15” when downloading an installer.

Howard Oakley:

It’s just under a gigabyte in size, which is quite substantial for such an early update before the first full update to Catalina.

Update (2019-10-16): Jeff Johnson:

The “Supplemental Update” supplemented my Desktop with this.

Mine, too. Slightly worrying to find system stuff in there, not just the expected files.

See also: MacRumors.

Update (2019-10-23): Howard Oakley:

If you’re really lucky, the same can happen again, during a Catalina update, or when upgrading from a Catalina beta version.

[…]

Some users have reported that certain files which get put in the Relocated Items folder are protected by SIP, and can’t be trashed. If that’s the case, you should be more attentive to those items, and this suggests that there might be a problem with your Catalina installation. All system files protected by SIP should be relocated correctly, the great majority moving onto Catalina’s new System volume.

Update (2019-10-25): Max Seelemann:

Two of my fav features in one picture: Relocated items and deprecated 32bit apps

Update (2020-04-17): Jesse Squires:

When I first upgraded to macOS Catalina, there was a “Relocated Items” folder on the desktop. Well, actually it was an alias to /Users/Shared/Relocated Items/. This was expected, given the new “security features“ in Catalina, which includes a new read-only system volume. What I did not expect was to see this folder reappear with every single update.

Catalina “softwareupdate” Can Download Old Installers

Armin Briegel:

The softwareupdate command has gained a new option in Catalina:

% softwareupdate --fetch-full-installer

Will download the latest ‘Install macOS’ application to this Mac’s /Applications folder. This is extremely useful for many admin tasks.

The --fetch-full-installer flag has a sub-flag: --full-installer-version which allows you to download a specific version.

% softwareupdate --fetch-full-installer --full-installer-version 10.14.6

Oddly, specifying either 10.14 or 10.14.0 works, but to download Catalina you need to specify 10.15 or else it will fail with an “Update not found” error.

These installers can be used with DropDMG’s Create macOS Install Disk command.

Previously:

Update (2019-10-16): There are some questions about which old versions this works for.

Update (2020-06-01): Helge Heß:

I was refusing to install Catalina on my machines for a loong time, living on 10.14. Eventually I did, Xcode 11.4 told me I had to.

You can’t imagine how hard it is to rebuild a working 10.14 dev install. No simple “download installer and put it on a partition” 🤷‍♀️ Wasted hours.

A problem is that the Mojave installer doesn’t run on Catalina, can’t be used to install it on a different partition from within 10.15. And the rescue system brings up 10.15 (or 10.10). So I’m trying to go with the external boot volume thing next …

See also: How to Downgrade a New Mac to Mojave From Catalina, Xcode 11.4 and Swift 5.2.

Update (2021-12-20): See also: Howard Oakley.

Twitter for Mac Returns

Twitter:

The new Twitter for Mac app is here! We’re rolling out an updated Twitter experience made especially for those of you on Mac. Available in the App Store.

Christopher Wong:

The new @Twitter for Mac app is truly one of the funniest (read: worst) pieces of software I’ve ever used. Screenshot below of the full screen compose window.

Project Catalyst seems like an unmitigated disaster

Mario Guzmán:

I mean, naturally, you drag a slider with your finger or holding down on the mouse... Well, that’s what I was trying to do with the slider in the Twitter iPad app for Mac... didn’t go so well. LOL #Catalyst

Ben Sandofsky:

Twitter’s new Mac app uses less than half the memory of the website, and the experience is way better.

Owen Williams:

Wait so Twitter made a Mac app using Apple’s ‘Catalyst’ tool for converting iPad apps.... and it’s...worse than their Progressive Web App? Color me surprised, the iPad app sucks too.

Matt Birchler:

Text selection in the new Twitter app for Mac is insane.

Nolan O’Brien:

A lot of engineering went into bringing the full iOS feature set over to Mac in a very tight timeframe.

There are definitely areas to follow up and improve. We’ll keep iterating and making things better, but in the meantime, check out some of the great features Twitter for Mac offers

Photo uploads get a real boost on Mac. WebP, HEIC and TIFF images now supported in addition to PNG, JPEG and Twitter for Mac supports up to 4096x4096 photo uploads, that’s 16 megapixels!

You can view those UHD images on Twitter for Mac too, of course!

We’ve added support for multiple composition windows at the same time with the ability to resume them if you quit Twitter before you Tweet.

Drag & Drop of photos and GIFs feels very natural on Mac too. We have some work to do for copy & paste of images into composer, so look for that improvement in future iterations too.

[…]

And lastly, don’t forget all the great features that Twitter for iOS has that have never been in a native Mac app before, all here from the get-go. 🥳

Previously:

A Better Finder Rename 11

publicspace.net:

Version 11 allows you to add multiple file filters to your action list, so that different types of files can finally be renamed differently within a single multi-step rename.

You can preview both the file names and the filter criteria directly in the preview table.

[…]

Version 10 introduced support for using meta-data tags, such as shooting dates, camera, image or song information to rename files. Version 11 builds on that foundation and adds new meta-data tags, vastly extends the range of supported file types and improves the speed and reliability of meta-data handling.

[…]

We have now added using natural language analysis technology for identifying grammatical structures and lexical classes, so that we can implement conventions, such as capitalizing proper nouns, etc.

It’s great to see that this utility, which has been around since System 7, is still going strong, despite the basic bulk renaming feature that Apple added to Finder.

There’s an interesting pricing strategy. It’s $20 for a new license or $13 to upgrade. You can also pay $40 for a new license or $20 to upgrade to get a “forever” license that includes “all future product upgrades.”

FAQ:

Yes, all of our current Mac OS X products are available on the Mac App Store.

Unfortunately, Apple have forced us to change the name of most of our products resulting in more than a little confusion. The table below shows the correspondances between the different products and their Mac App Store counterparts.

[…]

We are trying to keep feature parity between the Mac App Store versions and the ones that we sell directly, but Apple’s Mac App Store submission guidelines makes this quite hard and we will probably in future have to remove further features from the MAS versions of our products.

See also: reviews from 1999 and 2006.

Jira Cloud for Mac

Atlassian:

Jira Cloud for Mac is a snappy and simple way for software developers to work with tasks and update their team on progress.

[…]

For a powerful product like Jira, building a Mac application from scratch would have taken significantly longer. But thanks to Mac Catalyst, our iOS developers became Mac developers overnight. It was that easy.

Here’s the App Store link.

Matt Birchler:

I’m sad to say the Jira Mac app is a massive disappointment. It’s ungodly slow, spikes CPU usage to 150%+ whenever I click anything, has poor keyboard shortcut support, is less powerful than the web, and has terrible text entry.

Hard uninstall 🙁

Sunday, October 13, 2019

Podcasts in Catalina

Alex3917:

The new Podcasts app deleted years of downloaded podcasts when I updated, including a lot that are no longer hosted on the web. For some reason the “sensible default” in the new app is to delete anything beyond the most recent ten episodes. Now I need to remember to restore from backup before it gets overwritten, heh.

Beware. But, for me, it did not do this. Instead, it left my iTunes library in place, not migrating it at all, and showed me the list of podcasts from years ago, before I had turned off the Sync podcast subscriptions and settings option in iTunes.

So, naturally I wanted to delete all those old podcasts and import my new ones. I found that:

Overall, the Mac version of Podcasts seems like a huge regression from what we had with iTunes. There’s no standard table view of all the episodes. There’s no list of shows, just a grid of icons. The interface is very modal. You can tell it’s a Catalyst app because instead of sheets you get these little popovers with narrow, rounded text fields and flat buttons like in no other Mac app.

So I’m looking for a replacement app for archiving podcasts. (I mostly listen on my phone using Overcast.) I checked out a bunch of RSS readers—NetNewsWire 5, Reeder, Vienna, Leaf, News Explorer—but none seem to support auto-downloading attachments.

I have previously had success with Downcast, but several times it got totally messed up and could no longer read its own files. This seems to have been caused by a sandbox bug, so maybe that’s fixed in Catalina. I’ll probably give it another try.

I’ve also heard that Newsboat can handle RSS attachments. I’d prefer an actual Mac app. But I’ll use something text-based and cross-platform if it works well. Isn’t this what Catalyst was supposed to prevent?

Previously:

Update (2019-10-14): Colin Cornaby:

It’s a weird app and I quickly get frustrated with it in a way I never was with iTunes.

The blurry text and images on a non-Retina display doesn’t help either.

Andrew Pontious:

Still amazes me that the kinda shitty, nonstandard cross-platform apps that Apple was always so disdainful of are now being shipped by Apple.

Update (2019-10-23): Dr. Drang:

Thought I’d give Apple’s Podcasts app (iOS) a chance. It’s been quite a while since the last time I tried it, and it’s supposed to be much improved.

So, um, where’s the Import Subscriptions command?

Update (2019-10-31): Colin Cornaby:

Launch images/nibs on Catalyst apps are super weird. Especially when the launch image is the iPad interface, and not the actual Mac interface.

Looking at you Mac Podcasts.

Brad Vrolijk:

Even some of Apple’s Catalyst apps have some sloppy oversights in Catalina. In Podcasts, you get different remove dialogs (one macOS-like, one clearly iOS) depending where you decide to remove an episode (show view vs. a station)

See also: The Talk Show.

Update (2020-02-06): Colin Cornaby:

Mac Podcasts still has a lot of bugs. But it seems like the font rendering got better at some point. It no longer hurts my eyes to look at. Physically at least.

I'm not sure if everything is fixed though. The font below looks good. But the header font still looks super blurry for reasons that I think are deeper than the smaller size and color. I wonder if Catalyst has changed how default fonts are rendered, but not custom ones.

Opting Out of Sharing Siri Audio Recordings

Juli Clover:

Today’s iOS 13.2 beta introduces a new option that allows iPhone and iPad users to delete their Siri and Dictation history and opt out of sharing audio recordings, features that Apple promised after being called out for its Siri quality evaluation processes.

And on Catalina, Steve Troughton-Smith notes:

That’s definitely more explicit than before…

Jason:

That’s an improvement, but it still says “Not now” instead of “No”

Kyle Howells:

This year Apple lost the ability to write ‘no’, instead they’ve had to replace it with ‘not now’ everywhere.

It’s their new design pattern.

Previously:

Update (2019-10-14): Kaveh Vaghefi:

This is nice and all, but where is this for the HomePod, which is sitting in your home and always listening?

Update (2019-10-16): John Gruber:

In a briefing with Apple, I was told that even if you opt in to “Improve Siri & Dictation”, no one at Apple will ever review a Siri interaction until 24 hours have passed. So if you ever do say anything to Siri you don’t want reviewed, you have a full day to delete your history.

The setting and history seem to be per-device—with the Mac and HomePod versions unavailable so far.

Update (2019-11-05): Josh Centers and Adam Engst:

Apple should be ashamed of the Improve Siri & Dictation splash screen. The choices are “Share Audio Recordings” and “Not Now,” which implies that you will eventually want to share your Siri recordings—resistance is futile. Would it have killed some marketer to say “Keep Audio Recordings Private” or something similar? Plus, you can change this setting later, but Apple hides it in System Preferences > Privacy > Analytics & Improvements. And no, searching for “Siri” in System Preferences won’t find that preference pane.

Update (2019-11-06): Kyle Howells:

This is a pattern Apple uses all over the place now, and it’s so unbelievably user hostile.

It reads as being like the ‘update now or later’ messages & makes me think the choices are “give in now, or be periodically nagged until you eventually give in later’.

Update (2020-01-03): Ben Sandofsky:

At some point Apple decided it was fine to use Settings for growth hacking. First we got Apple Pay prompts, and this year we get AppleCare.

The “days remaining” adds a time constraint, because Settings should pressure you like a used car salesman.

The Human Interface Guidelines says buttons should use verbs. For example, “Continue” and “Decline.” When a salesman calls the shots you get[…]

Saturday, October 12, 2019

Waiting to Update to Catalina

As a developer, there are a bunch of new APIs that I want to be able to use. And, of course, I’ve been using it for a few months on a couple of auxiliary Macs for testing. But as a user, I see very little to tempt me to upgrade anytime soon. As ATP put it, there’s not enough carrot and too much stick, not to mention early bugs.

Dieter Bohn:

At the risk of being an I-told-you-so kind of person, I’m just going to repeat what I said in the Catalina review again. You probably depend on your Mac or PC for “real work,” and so updating on day one could threaten that real work — literally threaten your livelihood. It’s better to wait and see how things shake out, to let other people experience the problems and report them.

Telling people not to upgrade to the new OS for a few weeks used to be so common that it sounds weird to emphasize it so much. But somewhere in the past decade the yearly updates for both iOS (and, to a lesser extent, Android) lulled us into a false sense of complacency.

Adam Engst:

Nevertheless, for most people, we recommend delaying your upgrade for a while for a variety of reasons[…]

Jason Snell:

If there’s a must-have app that only runs on Catalina, or you want to use Voice Control or Screen Time or Find My or Apple Arcade, and all your go-to software checks out, then by all means, make the jump to Catalina. (I’ve been using it for the last month with only a few minor app incompatibilities that I expect to be resolved as updates roll out alongside the new release.) But if you can wait, you should. Let other people discover the early bugs and suffer the app incompatibilities. Catalina will still be there for you when you’re ready for it.

Mike Rundle:

It’s blowing my mind how many folks are upgrading to Catalina immediately. Unless you absolutely need to upgrade for development testing, macOS releases have been buggy as hell in recent years. I always wait 6+ months just to be safe 👻

John Voorhees:

A lot of the cautionary advice about upgrading to Catalina conflates the risk of installing the new version of macOS with the risk of relying on unmaintained 32-bit apps. Not doing the former doesn’t eliminate the risk of the later.

Robert Hammen (Rich Trouton):

Want to block macOS Catalina from showing up in Software Update preferences on macOS Mojave? sudo /usr/sbin/softwareupdate --ignore "macOS Catalina" prevents it from appearing!

Jeff Johnson:

I temporarily removed the Dock badge with defaults delete com.apple.systempreferences AttentionPrefBundleIDs, but then it came back after checking again. :-(

When you’re ready to update:

sudo /usr/sbin/softwareupdate --reset-ignored should do the trick

You can create a bootable install disk using DropDMG.

Glenn Fleishman:

But maybe you’d like to hedge your bets. In the past, you’d need to partition your startup drive, which could turn into a lot of effort, or get an external drive—preferably SSD—and install and boot from that.

[…]

The way this works to your advantage with Catalina is that if you have enough spare in your main container to handle Catalina—a few tens of gigabytes, but preferably more—you use Disk Utility to add a value into your main container, then install Catalina into that volume. You can then use the Startup Disk preference pane to swap among your volumes without involving an external drive at all.

This can continue to be useful after Catalina is released if you want to keep a Mojave volume active for 32-bit apps that no longer run in Catalina.

Previously:

Update (2019-10-13): Rob Griffiths:

(Note: You may have to restart the Dock for the red dot to vanish; you can do that with killall Dock in Terminal.)

I decided to tackle this by creating a launchd agent—which is just the technical name for scheduled tasks in macOS’ Unix core.

Peter Maurer:

As a user, Catalina is the worst macOS update I’ve ever seen. Worse than 10.7, worse than 10.10.

It’s unfortunate that it also happens to be the first macOS update that Apple pushes this aggressively.

Please slow down.

Update (2019-10-15): Bombich Software:

If you’re thinking about upgrading a Mac that you depend on for productivity, maybe wait a few weeks for the dust to settle. And of course, make a CCC bootable backup before you make the upgrade[…]

Update (2020-06-01): Howard Oakley:

Now’s the time that those who’ve been cautious, and let the early adopters find all the bugs in Catalina, consider whether to upgrade. Is it safe to go ahead, in readiness for macOS 10.16, or are there still showstoppers which will make you regret it?

With Catalina, there can’t be a clear answer.

Howard Oakley:

From the outset, Apple’s abandonment of 32-bit support was inevitably going to leave many users unable to upgrade, unless 10.15 had included some form of compatibility mode. Another change which was bound to cause problems was the enforcement of hardening and notarization. Only last week I looked at buying the superb graphing and analysis software Igor Pro, which I last used many years ago. Because it supports extensions containing executable code, it remains essentially incompatible with Catalina. I’ve also been contacted by a developer of another major software system which has similar problems with app extensions, who’s still struggling to meet hardening and notarization requirements.

See also: macOS 10.15.5.

Friday, October 11, 2019

Mail Data Loss in macOS 10.15

I’m working on more posts about the Catalina release, but I wanted to start with a short warning. I’ve heard a bunch of reports of data loss in Apple Mail. Thankfully, none seem to be caused by my apps. (Ironically, one of the bugs I’ve encountered is the inability to delete messages via AppleScript.) And, in fact, most of the damage has occurred without my Mail plug-in even being installed. Nevertheless, people contact me because it’s not unreasonable to wonder if third-party software is to blame, and I also hear from people who want a second opinion because what Apple support told them didn’t make sense.

What I’m hearing:

I don’t know whether these are due to Mail bugs or to other factors such as problems on the Mac or with the mail server. But my advice is to hold off on updating to Catalina for now. These sorts of issues are pernicious because:

  1. You may not notice that anything is wrong unless you are looking at the particular mailbox or messages that are affected.

  2. Because the data is synced to the server, problems can propagate to other Macs and iOS devices.

  3. Making a backup is difficult because, even if you set the preference, Mail no longer automatically fully downloads all messages. So the backup of the local data will necessarily be incomplete. (See EagleFiler’s Importing Attachments instructions for more about this. I’m happy to have most of my mail archived outside of Mail.)

  4. Restoring a backup is difficult because Mail data is constantly changing. There is no straightforward way to merge restored data in with messages received since the last backup, and also with the live data on the server.

Of course, it’s good to make backups anyway.

Apple advisors are apparently telling customers that if Mail data gets lost on Catalina, it can’t be recovered from a Time Machine backup that was made using Mojave. This didn’t make sense to me, and I’ve verified that it’s not the case. You can use Time Machine to get at previous versions of the folders in Mail’s data store, and then use the File ‣ Import Mailboxes… command to selectively import them into Catalina Mail. Since they import as new, local mailboxes, this shouldn’t affect messages that are on the server.

I also think that the advice to restore the whole Mac to Mojave makes no sense because as soon as you launch Mail it’s going to delete all the messages that were deleted on the server. In order to actually restore them, you have to make copies of the messages that might have already been deleted. That’s what Import Mailboxes does.

Update (2019-10-11): See also: Howard Oakley, TidBITS, Hacker News.

Update (2019-10-12): See also: MacRumors, iMore.

Update (2019-10-13): See also: AppleInsider.

Update (2019-10-14): Commenter Shiner says that the lost messages from “updating Mail’s data store” happens for local mailboxes every time Mail’s database is rebuilt, not just when migrating from Mojave, and reported this to Apple in August. It’s “trivial to reproduce” and lost 160,000 out of 200,000 messages in a test.

There’s some evidence that the moving messages issue is related to Microsoft Exchange accounts.

Peter Steinberger:

A doctor friend of mine lost about 20.000 emails when he upgraded to iOS 13. It was a POP3 account.

See also: TechRadar.

Update (2019-10-15): I’ve received four reports that messages moved to an iCloud mailbox (that were not originally in that iCloud account) simply disappear instead of showing up there. At first, we thought this was a Catalina issue, but it also seems to be happening with High Sierra now. My guess is that it’s an issue with certain of the iCloud servers.

Update (2020-01-29): macOS 10.15.3 fixes one of the bugs but not the others.

Update (2020-05-27): macOS 10.15.5 has the same version of Mail as macOS 10.15.4, which did not include any further fixes, as far as I know.

Update (2020-07-16): macOS 10.15.6 has a new version of Mail. I’ve received several reports that moving iCloud messages no longer makes them disappear, but there is some reason to believe that this may be due to a fix on the iCloud server rather than in Mail itself, meaning that the problem may still occur with other mail providers. If you were seeing messages disappear on previous versions of macOS 10.15 and have updated to 10.15.6, please post in the comments about which type of server you have and whether you’re still seeing the bug.

Update (2020-08-03): One commenter reports that the message moving bug is not fixed in macOS 10.15.6.

Update (2020-08-09): I received a report of the message moving bug on the Big Sur beta.

Update (2020-08-18): I received a report that Mail in macOS 10.15.6 is deleting messages from multiple servers without downloading them.

Update (2020-09-08): I received two more reports that moving IMAP messages in macOS 10.15.6 instead deletes them. Several other users are reporting that dragged messages don’t get deleted but don’t move, either.

Update (2020-09-11): One user reported losing the entire contents of two IMAP mailboxes when updating from macOS 10.14 to macOS 10.15.6. I also received a report from a user who is losing messages when dragging and dropping them on macOS 10.15.6.

Update (2020-09-28): One reader reports that the IMAP moving bug is not fixed in macOS 10.15.7.

Update (2020-10-07): I have received additional reports that the IMAP moving bug is not fixed in macOS 10.15.7 or in the current macOS 11 beta.

Update (2020-12-02): I have received additional reports that IMAP messages disappear when dragged and dropped between mailboxes (particularly when stored in different locations) on macOS 11.0.1.

Update (2021-05-25): I’ve received multiple reports that this still happens on macOS 11.3.1.

Update (2021-05-28): I’ve received a report that this still happens on macOS 11.4.

Update (2022-04-12): I’ve received a report that this still happens on macOS 12.3.1.

Update (2022-04-22): A reader reports losing messages moved server-to-local on macOS 12.3.1.

Update (2022-05-19): I’ve received another report of losing Exchange messages when moving them on macOS 12.3.1, and I saw lots of messages disappear when moving them from local to IMAP on macOS 12.4.

Update (2022-08-11): I’m still receiving reports of messages disappearing when dragged and dropped on macOS 12.4.

Update (2023-01-02): One commenter reports that moving messages from IMAP to local turns them blank on macOS 13.1.

Update (2023-01-18): A reader reports thousands of messages lost from On My Mac mailboxes with macOS 12.6.2.

Update (2023-01-31): Commenter Andy Scott is seeing data loss when moving messages between Exchange and local mailboxes on macOS 13.2.

Update (2023-06-19): Scott Palmer is seeing messages lost when moved out of an IMAP account on macOS 13.4.

Update (2023-06-28): I just encountered the bug again myself with macOS 13.4.1. When re-applying a rule that would move messages to an IMAP mailbox that they were already in, it just deleted them.

Update (2023-11-15): Some readers and customers have reported still seeing the data loss bug when moving messages on macOS 14.1.1.

Thursday, October 10, 2019

How My Application Ran Away and Called Home From Redmond

Mikko Kenttälä (via Paul Haddad):

We were puzzled because I had killed the Beacon process and it should not be running anymore. I logged in to my Windows test machine to see if the Beacon is still running. But there was nothing. We were confused. Then I checked the alerts more carefully.

[…]

After that I realized Beacon’s Home received the packet from an unknown IP address. At this point I was confused and freaking out — why someone else is running the same unique binary which was recently built just for me? Are my systems hacked?

[…]

I managed to narrow it down to Microsoft Defender and the “Automatic sample submission” feature. […] Microsoft Windows 10 sends all new unique binaries for further analysis to Microsoft by default. They run the executable in an environment where network connectivity is available. This opens interesting data leak vector for attacker and also includes some privacy concerns. It is quite common that even in isolated environments, many of the Microsoft IP address ranges are whitelisted to make sure systems will stay up to date. This enables adversary to leak data via Microsoft services which is extremely juicy covert channel.

Silent Failure

John Gruber:

I continue to hold that one of the worst aspects of today’s Apple is their strident antipathy toward error messages. Silent failure is so much worse than an error message, but that’s the way Apple rolls.

I don’t know when it started (maybe with the update to 13.1.2? maybe one of the other 13.1.x updates?) but for a week or so I’ve been unable to buy new apps on my iPad. I hit the buy button, confirm with top button, Face ID authenticates me, it spins for a bit — then, nothing.

[…]

I don’t mind that my card needed to be verified. Security is good. But why in the world wasn’t I told that the reason why I couldn’t purchase anything is that my card needed to be verified?

[…]

Even a bad error message, something that just says “An Error Occurred” with no indication of what the error was, is better than silent failure. Silent failure is the UI equivalent of gaslighting — it makes you feel like you’re going crazy.

Todd Heberlein:

Seriously. In the age of search engines, being able enter error message details into a search field, even if the messages seem cryptic to the typical user, will often lead the user to a simple, step-by-step solution to their problem.

But you need the message to start the search

Dan Crosby:

My guess: software quality is now metric-driven, so their efforts are to driving down (or up) numbers they can track: crashes, dialogs displayed, etc. Silent errors don’t show up in metrics, so nobody is rewarded for either fixing or revealing them.

Andy Newman:

I wonder how much this gives Apple a false sense that their software is performing better than it actually is, simply because so many issues can’t always be accurately described or fixed by the average user. Many just give up.

Previously:

Update (2019-10-11): Jeff Baxendale:

speaking of infuriating Apple bugs with no error messages or information whatsoever… I can pretty much no longer install from the App Store on my laptop (cache clearing/disk repair attempted) 🤷‍♂️

Can’t see anything useful in Console either.

Update (2019-10-13): Cédric Luthi:

“An Error Occurred” without further information is an extremely low bar to set. Software engineers should feel comfortable writing more core handling errors than handling the happy path. Unfortunately, this is often not how software is written. 🤷‍♀️

Brian Webster:

I strive to have good user facing error messages, but even an error with tech gobbledygook can at least give me some clue of what’s going on when I get the angry email so I can try to fix it.

Dave DeLong:

I think it stems from your expectation about what you want your users to actually DO about it.

As an indie dev, you want users to contact you.

I’m not convinced Apple institutionally wants that

scott:

This has seemingly gotten worse with every software release under Federighi. I often say that giving support to Mac and iPhone used to be great since everything was so predictable and explaining the problem often lead the person to a better understanding of the products.

Now it’s just impossible to troubleshoot problems. I won’t even offer to help anymore, because I have no idea where to start. And good luck with official Apple support.

Thomas Fuchs:

The App Store In 10.14 shows Twitter here, but clicking “GET” does absolutely nothing because it’s not compatible with 10.14. No error message, just nothing.

Leo Natan:

The Mac App Store has many such issues. It allows downloading 32-bit apps on Catalina (and worse, allows purchase of such apps). 🤦‍♂️

See also: John Siracusa’s problems with certain contacts that silently didn’t sync because their images were too large.

Update (2019-10-18): Damien Petrilli:

Status of the TV app on #CatalinaOS :

- Can’t stream some movies I purchased
- Can’t download ANY movies I purchased

[…]

Of course called support and apparently there is a lot of wait because they are submerged by calls regarding Catalina (I gave up).

Short talk on phone:

- “What error message do you get ?”.
- “None, I don’t get any error message”.
- “Ho that’s not going to help”
- “Yup”

So we are at the point where even the support won’t be able to troubleshoot because Apple is removing error messages.

Implementing Dark Mode in iOS 13

Tim Johnsen:

That being said, we didn’t use UIKit’s APIs alone since most developers in the company and our build systems are all still using Xcode 10, and introducing iOS 13 APIs would cause build breakages. We went with the approach of writing thin wrappers around UIKit APIs that are compatible with Xcode 10 and iOS 12.

Writing little wrappers is often the best engineering solution, but it seems like a waste that so many developers have to do essentially the same thing for the same APIs. Why can’t the tools handle this automatically?

We discovered towards the end of our dark mode adoption that our implementation of dynamic colors had equality implications because a new instance of UIColor was returned each time and the only thing that was comparable about each was the block passed in. In order to resolve this we modified our API slightly to create single instances of each of semantic colors so that they were comparable. Doing something like dispatch_once-ing your semantic colors or using asset catalog-based colors and +colorNamed: will produce comparable colors if your app is sensitive to color equality.

[…]

One clever testing trick this IGTraitCollection wrapper afforded us is something we’ve come to call “fake dark mode” — which is an internal setting that override IGTraitCollection to become dark even in iOS 12!

Sherlocked by Sidecar

Savannah Reising:

A big misconception is that your main competitors are the other companies creating similar products to yours. In our case, we viewed Astropad and Luna Display’s biggest competitors as other second display and graphics tablet creators.

But all along, we really should have been worried about our platform provider, Apple. There will always be infinite ways to differentiate yourself against other competitor companies via price, features, and target markets. But if your platform provider decides to step into your domain, it’s a tough battle to position your product against a free, native feature.

[…]

We always knew that we wanted to go cross-platform. For quite awhile, we’ve heard from creative professionals about an exodus from Mac to Windows. For these creatives, it all comes down to getting more bang for your buck — super powerful PCs at a lower price than Apple products. In fact, we’d often hear from people begging us to come to Windows. But even though we knew the market was waiting for us, we pushed off the Windows effort because it created a catch-22 situation of really tough engineering problems.

[…]

In other words, while Sidecar will be good enough for the average user, we’ve carved out a niche space for the pro users that need a more powerful tool.

Adam Bell:

I spent an absurd amount of time trying to get Sidecar working on my hackintosh, and I really wish I didn’t :P

@LunaDisplayHQ has much better image quality and a higher frame rate ¯\_(ツ)_/¯

Previously:

Update (2019-10-13): Dan Counsell:

Oh my god, Sidecar on Catalina is incredible, it’s so responsive. My iPad Pro just got a lot more useful!

Michael Luís Brown:

TIL that Sidecar (iPad as external monitor) in macOS Catalina only works if you have an Apple Pencil. I mean, it works without one, but you can't “click” (ie tap) on any control with your finger, it has to be the pencil 🤦‍♀️

Colin Cornaby:

The more annoying thing to me is that Apple didn’t make public the feature to create a new display without physical hardware present (as far as I saw.) A lot of things the rely on creating a second display without hardware could use that.

There’s a legacy kernel extension based interface for that sort of thing. But it doesn’t support Metal acceleration, or easily support Retina output.

Also it requires a kernel extension.

If you use USB display hardware (like DisplayLink) it works by creating a virtual second display and streaming the contents. That experience could be made dramatically better with the private features Apple added for Sidecar.

See also: Hacker News.

Wednesday, October 9, 2019

Settings URLs Supported by iOS and iPadOS 13.1

Federico Viticci (tweet):

A few weeks ago, I came across a post on Reddit claiming that Apple had restored the ability to launch specific sections of the Settings app via Shortcuts in iOS and iPadOS 13.1. I was inspired by that discovery to finish working on a project I had long been putting off: documenting all the URLs supported by the Settings app in iOS and iPadOS.

After some a lot of trial and error, I’ve collected 120+ URLs that can open individual pages and sub-sections of the Settings app. In this post, I’m going to share the complete list of URLs that are supported as of iOS and iPadOS 13.1 (specifically, iOS 13.1.2), as well as a custom shortcut to launch them.

For example, you can open the iCloud Backup settings using prefs:root=CASTLE&path=BACKUP.

The equivalent Mac System Preferences URLs start with x-apple.systempreferences.

Matthias Gansrigler:

So, using @viticci’s iOS Settings URLs (prefs:root) will get your app rejected. Figures.

Now, I’m not sure if it’s the prefs: url scheme itself, or if it’s prefs:root= that they’re having an issue with.

I’m guessing the latter, because before, I used prefs: to launch Settings.app, and that wasn’t rejected.

I’d even argue using public APIs to open a URL constructed from a string doesn’t really constitute using “private API”, but what do I know..

Previously:

Update (2020-02-26): Craig Hockenberry:

PSA: If you’re using a URL that begins with “prefs:” or “App-Prefs:” you will be rejected.

It doesn’t matter if you’re trying to help a customer navigate a byzantine maze of switches and knobs to do the thing they want. You will be rejected.

Craig Hockenberry:

In this specific case, I want someone to know that Dynamic Type settings can be adjusted to make the app work better for them.

In a way, Apple is preventing me from making things more accessible for a customer.

Update (2021-01-05): sindresorhus:

Many apps need the ability to open a specific pane in System Preferences. The most common use is to direct users to manually enable some kind of privacy permission or to toggle an app extension. I also use it to help the user change some system settings, like in “Language & Region”. Some panes support a URL scheme x-apple.systempreferences:, while for others we have to open /System/Library/PreferencePanes/\(name).prefPane. And to open sub-panes of the Extensions system preferences, our only choice is to use an API which is now deprecated (FB8910479). This results in a large amount of boilerplate. It would be nice if the system provided a unified API to open System Preferences panes and sub-panes. This would save developers a lot of time and headache.

Update (2022-10-27): Rich Trouton:

Along with this change [in macOS 13 Ventura], a number of previously-known commands for opening individual System Preferences preference panes from the command line no longer work with System Settings.

However, it looks like the underlying command line functionality wasn’t changed by Apple. You just need to know what the new options are to enter. For more details, please see below the jump.

Previously:

File System Events Privacy Protections Bypass

Jeff Johnson (tweet):

Two months later, Apple has shipped major updates to all of their operating systems. Yesterday, macOS 10.15 Catalina was released. And yet, the new bug bounty program has not opened. Perhaps the public assumes that the bug bounty program has already expanded, but it has not. To this day, there’s still no Mac bug bounty program. Apple announced the expanded bug bounty program while their major OS updates were still in beta testing, but Apple did not open the bug bounty program during the beta testing period. The irony is that the new program was announced to offer increased bounties for bugs found in pre-release software, but no opportunity was given for that to occur.

[…]

I did not give Apple a deadline, but many security researchers give vendors only 90 days before they disclose a reported vulnerability. I reported mine to Apple 8 months ago, so they’ve had a lot of time.

Apple has since said that this vulnerability is not eligible for the bounty (because it’s only for privacy, not security?), so he’s disclosing it and saving the other two that he found until the bug bounty program opens:

An app without special permissions can register for notifications of file system events that occur in directories that are supposed to be protected. These file system event notifications can disclose private information that the app should not have access to.

[…]

I said, “a malware app could secretly violate a user’s privacy by examining their web browsing history.” How is this possible with file system events? If you look inside the directory ~/Library/Safari/LocalStorage, you’ll see that Safari saves local storage files that are named after their associated web sites, for example, https_www.apple.com_0.localstorage. The File System Events API can’t see the file contents, but it can see the file names! And because Safari names files after the web sites you visit, the File System Events API can be used to determine your web browsing history.

Previously:

Taiwan Flag Removed from iOS Emoji Keyboard in Hong Kong

Kris Cheng (via Daniel Sinclair):

According to an article on Hiraku, a blog about Apple devices, any device model with “CN” or “ZA” region – denoting China and Hong Kong – will not have access to the Taiwan emoji via the keyboard.

If users have a device from another region, but they set the region to Hong Kong or Macau, the Taiwan emoji will also disappear.

[…]

Last year, HKFP reported that the names of some Chinese state leaders and activists were deemed “inappropriate words” and censored shoppers hoping to engrave their iPad, iPod Touch or Apple Pencil with a custom message.

Jeremy Burge (Hacker News):

Previously restricted on Chinese iOS devices, all other regions of the world have continued to enjoy access to all flags in the iOS emoji font, until now.

[…]

Notably, the emoji 🇹🇼 Flag: Taiwan is still supported by iOS in Hong Kong. As of iOS 13.1.2, released last week, this is now hidden from the emoji keyboard but remains available by other means.

[…]

Apple’s Hong Kong approach differs from the complete ban on the emoji in China.

Previously:

Update (2019-11-27): Tim Cook:

“China really hasn’t pressured us, and so I I don’t envision that,” he added.

John Gruber (Slashdot, The Talk Show):

If China hasn’t pressured Apple, why was the Taiwanese flag emoji removed from iOS devices in Hong Kong?

Adobe to Ban Users From Venezuela

Adobe (Hacker News, Reddit):

The U.S. Government issued Executive Order 13884, the practical effect of which is to prohibit almost all transactions and services between U.S. companies, entities, and individuals in Venezuela. To remain compliant with this order, Adobe is deactivating all accounts in Venezuela.

[…]

We are unable to issue refunds. Executive order 13884, orders the cessation of all activity with the entities including no sales, service, support, refunds, credits, etc.

[…]

You have until October 28, 2019 to download any content that you have stored in your Adobe account. After this date your account will be deactivated.

I’m not sure what happened to the English version of this page that was originally at the linked URL; it now only shows Spanish.

CM30:

What makes this even worse is that this is only a huge issue because Adobe moved to the whole ‘Creative Cloud’ thing rather than the old ‘buy each product outright’ model. With the old model, it wouldn’t hurt these creators all that much if their accounts got deactivated, since the software would just not get updates. Now on the other hand… they’re screwed. It’s a ‘brilliant’ example of how these ‘cloud’ based services are a bad deal for the user, because it puts them at the risk of getting locked out their own purchases due to legal hassles like this.

And the old non-subscription version is stuck at 32 bits and so won’t work with Catalina.

Sergiu Gatlan:

Microsoft-owned GitHub also banned users from Crimea, Cuba, Iran, North Korea, and Syria following previously imposed U.S. economical sanctions.

Previously:

One Year After “The Big Hack”

Nick Heer:

It sounded like the information security scoop of the decade — except there’s virtually no proof that any of it is true.

At the time of the story’s publication, representatives from the named companies denied Bloomberg’s reporting in statements that left virtually no wiggle room. Tim Cook called for the story’s retraction — a call that was soon echoed by Amazon and Supermicro. Michael Riley — who reported the story alongside Jordan Robertson — took to Twitter on October 5 to point out that the physical evidence would make it “hard to keep more [details] from emerging”.

So far, that has not happened.

[…]

Most upsetting is that we don’t know the truth here in any capacity. We don’t know how the story was sourced originally other than the vague descriptions given about their roles and knowledge. We don’t know what assumptions were made as Riley and Robertson almost never quoted their sources. We don’t know anything about the thirty additional companies — aside from Amazon and Apple — that were apparently affected, nor if any of the other nine hundred customers of Supermicro found malicious hardware.

William Gallagher:

Mind you, if it were true, there would also be proof.

This was the one thing lacking from the Bloomberg piece, though you would think it would be the first thing that this or any publication would have insisted on. You would at least, at the utter least, expect Bloomberg to have one of these motherboards and show us this spy chip. Instead, we got an illustration by artist Scott Gelber.

It’s not as if the company would have had to go far —the Bloomberg company itself owns some Super Micro servers.

[…]

There is this one exception, but it’s not that anyone agrees with the story, it’s that we do not know the outcome of this other investigation. That’s because it was done by Bloomberg itself, after publication, and its findings have not been published.

[…]

Co-author Michael Riley was promoted in September 2019 to oversee all of Bloomberg’s technology security coverage.

John Gruber:

With not one shred of evidence emerging in a year, it seems very clear that this was, in fact, “the biggest reporting fuck-up of its type”.

Previously:

Update (2019-12-30): See also: Hacker News.

GyazMail 1.6.1

GyazMail is now 64-bit, just in time for macOS 10.15 Catalina. This version also improves its SSL support, so it can work with mail servers that have more stringent security requirements.

I’ve always been impressed by how many OS versions it supports. The prior version worked all the way from Mac OS X 10.1 through macOS 10.14. The new version drops PowerPC support but still works all the way back to OS X 10.6.

GyazMail has built-in support for SpamSieve.

Previously:

Friday, October 4, 2019

BBEdit 13

Bare Bones Software (tweet):

The “Pattern Playground” window provides an interactive interface for experimenting with the behavior of Grep patterns (regular expressions). This makes the process of creating complicated patterns much less trial-and-error, since you can see exactly what will match, and how, before committing to any irreversible actions.

A complete description of the pattern playground is in the Pattern Playground Notes.

This is really great.

Added the Grep Cheat Sheet. […] The button pops up a menu which provides some common Grep pattern idioms and brief descriptions; choosing one will insert it literally into the pattern and select it (replacing anything that has been selected).

As is this.

BBEdit allows you to make rectangular selections in documents for which “Soft Wrap Text” is turned on.

A longstanding limitation addressed.

When editing the search string in the Find window, any matches for it will highlight in the “target” document window[…] This allows basic previewing of the effects of a Find All or Replace All operation.

What did I ever do without this?

There are two new commands on the “Select” submenu of the Edit menu[…]

Live Search Results: selects matches found while searching using the Live Search feature.

The trick to using this is that before you can do anything with the multiple selection you need to click the Done button or press Esc to go back to editing mode. I haven’t quite figured out yet when working with the selection is better than using the Find window (since it’s also live now).

The Python language module gets a built-in set of tags, for the core Python symbols.

This is kind of a regression for me because it highlights a bunch of commonly used words when I’m only using them as argument names or local variables. However, it was easy to turn it off by creating a language-specific color scheme that colors the “ctags symbols” the same as regular text.

Added a new command to the Text menu: “Apply Transform”. This command provides an “express” way to apply a single text transformation to specific files or folders, without requiring the explicit creation of a Text Factory.

I like this because, in recent versions, the “Convert to ASCII” command has only been available via a text factory.

The Text Colors preferences are now easier to use for selecting and editing color schemes. A central concept is that there is now always a color scheme in effect. It can be a factory color scheme, one you’ve downloaded, or one you’ve created. The previous “Custom Settings” indication no longer appears.

[…]

If you have a color scheme selected, any changes you make to settings in the Text Colors preferences will change the color scheme file on disk.

This was kind of confusing before and is much more intuitive now.

Andrew Madsen:

BareBones continues to set the standard for detailed change logs.

Jeff Johnson:

Has @siegel ever considered trolling everyone with a “Bug fixes and performance improvements” update? Maybe on April 1.

Rich Siegel:

That’s kinda what we have to do in the app store, because there’s not enough space or formatting support to render the full change notes. ¯\_(ツ)_/¯

Jason Snell:

BBEdit 13.0’s paid version costs $50, and users from previous paid versions can upgrade for $30 (from the previous version) or $40 (from older versions). The last paid update to BBEdit was two years ago, and the previous one to that was five years ago. Users of BBEdit on the Mac App Store won’t have to pay to get the update; on the Mac App Store, BBEdit’s premium features are a subscription for $40/year or $4/month and get access to all updates forever.

Ryan Dotson:

It’s been my companion for over twenty years. I’ve never seriously considered any alternative – BBEdit doesn’t let me down, and is never anything short of helpful.

[…]

My favourite enhancement is to the editor’s status bars – a large text option. My eyes are still good enough to see the normal size but the large version is just a bit more comfortable to read. Importantly, though the widgets are larger, they don’t feel it.

Peter Hosey:

It says a lot about my trust in @BBEdit —and my lack of it in almost all other software—to not move my cheese or otherwise fuck things up that I saw this and was immediately excited to update.

It really doesn’t suck. And I trust its developers to keep it that way.

Previously:

Update (2019-10-17): Adam Engst:

Even for someone like me who has been writing regular expressions for years, building a grep search usually requires trial and error. That’s not because I’m lousy at grep, but because it’s easy to assume a source file is more regular than it actually is.

Ryan Dotson:

BBStylish is a stylesheet for BBEdit’s Preview window that offers attractive defaults, but which can be customised with little to no knowledge of CSS.

Weather Line 2

Ryan Jones (9to5Mac):

+ All-new design
+ All-new weather data solution
+ 21 new features
+ 17 themes (4 dark modes)
+ Super Forecast
+ Travel Assist
+ 10-day forecasts
+ HD radar
+ Hyperlocal rain

[…]

Initially we had Dark Sky, The Weather Channel, and WDT, a meterorlogist PhD we consulted said those were the best.

We directed users how to pick… but wait… why pick one, just give me THE BEST OF THEM ALL!

Sounds really good. I haven’t tried it yet, because it requires iOS 13, and I plan to stay away from that for a while longer. Weather Line 1 was one of my favorite iOS apps, but I can no longer use it either its weather data was turned off. So, for now, I’m using Apple Weather. I’ll miss the old Weather Line icon, and I’m slightly worried about the two-level design and lower information density, but I’m reserving judgement until I’ve used it for a while.

Off Coast LLC:

There is a Free plan for those who wish to continue using our core features with limited ads, plus some of the new 2.0 features.

Our Pro plan is called “Supercharge” and includes a 7-day free trial, all the new features, and no Ads. It will be $1.99 per month, $0.83 per month ($9.99 billed annually), or $44.99 for a lifetime unlock.

Anyone who ever bought Weather Line 1 will get their first year of Supercharge at 50% off - just $4.99 (less than 50 cents per month).

Ryan Jones:

If you HATE subscriptions, there is an expensive Lifetime Unlock that goes for the lifetime of Weather Line.

Some people are upset because features that were formerly included in the purchase price are now accompanied by ads if you haven’t subscribed. I guess this is a gray area of the App Store guidelines.

Marco Arment:

Do the math. If you bought it for $4.99, they got 70% of that: $3.49. If you use it for 4 years, that’s 87 cents a year in revenue.

The Dark Sky API costs $0.0001 per call. If data refreshes once an hour, it’s about 88 cents per year, per weather location.

See the problem?

Ryan Jones:

Times 3 for The Weather Channel and radar

Mike Piontek:

For me it went something like:

• A few years of “eventually Apple will support upgrades”
• OK, subscriptions are clearly the only option
• Wow people are mad about subscriptions
• Wow it takes a long time to try to create something people won’t be mad about paying a sub for

Ryan Jones:

Bingo. Exactly why we worked for 2 years with no income, while the app lost money for 4 years.

To make WL2 worthy of a $10/yr subscription.

Previously:

Update (2019-10-04): Isaac Halvorson:

FYI, the old Weather Line icon is one of the options in Weather Line 2!

At the top, I linked to two tweets, since deleted, saying that Weather Line 1 “would be shutting down today no matter what” and that “shutting down” meant “turning off the data.” This has now been clarified:

We are not shutting off WL1 data! We would have to if we did not do this (WL2)

I updated a spare iPhone to iOS 13 and installed Weather Line 2. What was not clear from the blog post is that the Free plan is a regression from Weather Line 1. Even with the ads, it includes different (less accurate) weather data, and it does not include the Dark Sky precipitation information. (As of this writing, Weather Line 2 predicts tonight’s low to be 10 degrees warmer than either Weather Line 1 or Apple Weather, and the current temperature is already below its predicted low.)

At least on the iPhone SE, I’m not a fan of the new card-based design, as I can no longer see all the important information without scrolling.

Keyboards as Competitive Advantage

John Gruber:

Microsoft started yesterday’s event by banging the drum that they never have and never will compromise on the quality of their laptop keyboards — a clear and completely fair competitive dig at Apple. That’s the message they should have left the world with — that they, not Apple — now make the best laptop hardware in the world. Instead, they left everyone talking about two products that won’t be out for another year.

In less than six months, my wife’s Retina MacBook Air developed some keys that sometimes don’t type anything. This Mac has the third-generation butterfly keyboard. It’s never been used outside the home, isn’t used near food or sources of dust, and isn’t left open when not in use.

David Heinemeier Hansson:

“Went in for a keyboard replacement, they decided it needed a logic board. Got back home, it didn’t turn on, so back to the store. Apple replaced the entire machine because it’s had 3 major repairs in 12 months.”, employee just trying to get work done on a MacBook Pro. Disgrace.

This is just normal course of business at Basecamp. Every single month we have employees taking their machines back to Apple for the second, third, fourth, or fifth repairs of their broken MacBook Pro keyboards. Apple keeps claiming “small minority”. Bullshit.

Seriously, nothing has eroded my trust in Apple’s capacity as a computer maker as their inability to come clean on the utter catastrophe that is the butterfly keyboard design. If ever there was a worthy cause for a class-action lawsuit to take them to the cleaners.

Matt Anderson:

We are dealing with this at TaxJar weekly. We spend too much time shipping machines and buying loaners for those in remote areas far from Apple stores.

Per Henrik Lausten:

Picked up my MBP 2018 this morning from the 3rd repair in 3 months. Logic board replaced twice and battery replaced once. With each repair I’m without my primary work laptop for a week (oh, and replacing the logic board means all data on the SSD is lost)

Michael Hartl:

I’ve had mine fixed twice and completely replaced on a third occasion.

Mike Wilkerson:

As an Apple fanboy who’s all-in on the ecosystem, I used to dismiss this as overblown. After a keyboard replacement for my 2017 MBP last week, and the space bar on my 2018 MBP now acting up, confidence is shaken enough to look at alternatives. Definitely not a premium experience.

See also: Joanna Stern’s keyboard broke while she was writing her iPhone 11 reviews.

Previously:

Update (2019-10-04): Daniel Jalkut:

Had my late-2016 MacBook Pro keyboard replaced again. It’s really impressive how fast Apple turns around mail-in repairs. I sure am glad I keep a spare (previous gen) MBP around as a backup. Maybe the 2016 will serve that purpose soon...

NSDistributedNotificationCenter No Longer Supports nil Names

merlinme (via Jeff Johnson):

I’m not sure if this is a bug or an API change, but we have an app which relies on distributed notifications which didn’t work on Catalina. After debugging I think the problem is that specifying a name: nil in addObserver fails silently.

[…]

Apple have now replied to my Feedback submission to confirm that the API has changed. Specifying a nil name in addObserver is now a privileged operation, so for practical purposes all applications currently using a nil name will stop receiving notifications when they move to Catalina, and will need to be updated to use a specified name.

Another breaking change to an API that’s been around since Mac OS X 10.10, without updating the documentation or mentioning the change in a release note:

notificationName The name of the notification for which to register the observer; that is, only notifications with this name are delivered to the observer. When nil, the notification center doesn’t use a notification’s name to decide whether to deliver it to the observer.

I guess maybe there are privacy reasons to prevent an app from seeing notifications from other apps or the system. However:

Stop Saying, “We Take Your Privacy and Security Seriously”

Zack Whittaker (Hacker News):

[DoorDash] said in a blog post Thursday that 4.9 million customers, delivery workers and merchants had their information stolen by hackers.

[…]

The news comes almost exactly a year after DoorDash customers complained that their accounts had been hacked. The company at the time denied a data breach and claimed attackers were running credential stuffing attacks, in which hackers take lists of stolen usernames and passwords and try them on other sites that use the same passwords. But many of the customers we spoke to said their passwords were unique to DoorDash, ruling out such an attack.

Zack Whittaker:

Companies can start off small: tell people how to reach contact them with security flaws, roll out a bug bounty to encourage bug submissions and grant good-faith researchers safe harbor by promising not to sue. Startup founders can also fill their executive suite with a chief security officer from the very beginning. They’d be better off than 95 percent of the world’s richest companies that haven’t even bothered.

But this isn’t what happens. Instead, companies would rather just pay the fines.

It does seem like breaches have been normalized. I doubt they cause many people to close their accounts, both because the business or service may not have a good replacement and because you have no way of knowing whether the alternatives are any safer.

Thursday, October 3, 2019

Instapaper Safari App Extension

Instapaper:

Today we’re launching Instapaper Save for Safari on Mac. You can download it now from the Mac App Store.

As with MarsEdit, I’m torn between using the bookmarklet, because it’s simpler and can have a keyboard shortcut, and using the extension, because it doesn’t show a security alert for each invocation.

Ironically, despite triggering the scary alert, the bookmarklet is probably better for privacy because it only has access to the pages I invoke it on (and doesn’t have a companion app that can run arbitrary code).

Previously:

Update (2019-10-03): I confused my different bookmarklets. The Instapaper one does not trigger a security alert because it sends the page to a Web URL rather than to a native app.

Thus, I think the main downside of the bookmarklet is that it often makes me log into instapaper.com. I’m not sure whether Instapaper or Safari is responsible for logging me out. But perhaps the app is better able to stay logged in.

Update (2019-10-04): Paul McGrane:

the old pre-Safari 13 @InstapaperHelp extension also had a context-menu item for saving links by right-clicking on them.

Neither the bookmarklet nor the new MAS extension can do that today. I don’t know if the modern extension can do it or not.

Also the old Safari extension inserted “Save to Instapaper” links quite subtly into every post on Reddit and Hacker News, which is a little disturbing but was actually very useful. Neither modern option does that either.

Instapaper:

We’ll be working on getting those back into the save options, we just decided to get the most basic version of it out there to ensure users could save from Safari 13 first - thanks for making sure!

Two Weeks With Apple Arcade

Craig Grannell:

Part of the blame lies with Apple, but it’s also an indication of modern society. When content becomes ephemeral rather than something you can hold, people have been trained to assume they should not have to pay for it. So we now exist in a world where a developer can create a mobile title, and get a review slamming them for including ads and not enough levels, by someone who otherwise claimed they loved the game – and yet played with Airplane Mode on to disable ads, thereby robbing the developer of any income.

[…]

Even with these features, I initially tempered optimism with a healthy dollop of scepticism. Remember, this was Apple. This was the company that got good in games by mistake – and despite itself. This was the company that repeatedly bafflingly rejected perfectly good games from the App Store, often for oddball puritanical reasons. It was the company that messed up games controllers to a degree that possibly warrants some kind of trophy. It was the company that despite raking in millions from games, still gave you the impression no-one senior at the company gave the slightest crap about them.

[…]

Personally, I’d say it splits slightly better than 50:50 in terms of great-to-good and OK-to-poor (with OK being a larger group than the few games that are garbage). Some of the titles reek of freemium with freemium bits removed at the last moment, and that’s a pity. But there are deeply premium efforts made with love. […] And with iCloud save states, this is a service you could feasibly dip in and out of, perhaps subscribing for a while every now and again, if you don’t fancy dropping a fiver every single month.

Craig Grannell:

What surprises me most, though, is the amount of grading on a curve. Having so far played at least some of 68 of the 71 games on Apple Arcade (It’s a living! Sort of.), my personal take is they split right down the middle in terms of what’s good and what’s merely mediocre or outright crap. That in itself is not a bad hit rate, note, but I’m often seeing people championing the entire package – and even games that are objectively a bit shit.

Craig Grannell:

The thing is, as much as the press wants to drum up these services as direct competition, I don’t see them as existing in the same space. Although there’s more than a whiff of me-too about Google Play Pass, it reminds me more of something similar I once tried on Amazon – bundling a bunch of existing apps under an all-you-can-eat subscription.

Cabel Sasser:

I am finally getting a chance to play Apple Arcade games! Quick thoughts:

• The selection is incredible, so well curated, SO many good games
• It’s an incredible bargain
• I will never buy a game in the regular App Store again
• I can’t stop playing What The Golf
• Good job

Andrew Webster (via Dieter Bohn):

The real loser in this scenario is Android users, who likely won’t see many of the biggest iPhone games ported to their platform of choice. For developers, though, this may not be a huge loss. “If premium games were dying on iOS,” Holowaty says, “they’ve been a rotting corpse on Android.”

Previously:

Update (2019-10-04): Patrick Klepek:

Apple Arcade’s launch was a mixture of well-known franchises (Frogger, Rayman), new games from designers during the App Store’s creative heights (Card of Darkness, Overland), and releases from high-profile publishers (Square Enix, Capcom). The service, part of a larger shift towards monthly subscriptions, is a big deal for Apple, so it made sense to double down on attention-grabbing titles. Operator 41, also part of the launch, is hardly that, but is notable for a different reason: Operator 41 was developed by 14-year-old London designer Spruce Campbell.

Update (2019-10-13): See also: The Making Of Operator 41 for Apple Arcade (via Phil Schiller).

Update (2019-10-16): Wil Shipley:

It’s amazing how great Apple’s curated “Apple Arcade” is, because they chose to amplify less-heard, independent voices. Then there’s Apple’s TV Plus, where they backed a money truck up to the usual suspects...I have no hope for it.

HKmap Live Rejected From the App Store

Kieren McCarthy (Hacker News):

Apple has banned an app that allows people in Hong Kong to keep track of protests and police activity in the city state, claiming such information is illegal.

“Your app contains content - or facilitates, enables, and encourages an activity - that is not legal … specifically, the app allowed users to evade law enforcement,” the American tech giant told makers of the HKmap Live on Tuesday before pulling it.

The makers, and many others, have taken exception to that argument, by pointing out that the app only allows people to note locations - as many countless thousands of other apps do - and so under the same logic, apps such as driving app Waze should also be banned.

That argument is obtuse of course[…]

It’s actually an interesting question whether apps should be reviewed based on what they technically do vs. what they are marketed to do vs. what customers end up choosing to do with them. The same issue came up with Gab.

Anyway, here’s your regular reminder that the only reason Apple is involved in deciding which politically sensitive apps should be available is that it forbids iOS users from downloading and installing apps themselves.

Tim Hardwick:

Apple is reviewing its decision to reject HKmap Live, reports Bloomberg, and is likely investigating whether the software violates local laws. It’s not yet clear if the app will be re-added to the App Store and the developer has not yet received an update from Apple following the commencement of the new review.

Previously:

Update (2019-10-04): Nick Heer:

At this stage, it seems just as likely to me that this rejection was due to an App Review failure as it was a way to appease the Chinese government. Either way, it’s a problem of Apple’s own creation.

If it’s the former, it just goes to show how accurate App Review needs to be, and the gaping chasm between where it is now and where it ought to be.

[…]

But if it’s deliberate, it suggests a far worse situation.

John Gruber:

Hanlon’s Razor — “Never attribute to malice that which is adequately explained by stupidity” — has never applied to anything more aptly than App Store rejections (although “incompetence” might be a better word than “stupidity”). So I think there’s a good chance that there’s nothing to this other than a bad decision on the part of a rank-and-file App Store reviewer. The HK Map developers think the same thing. (And to be clear, this is a new app that was rejected, it’s not an app that Apple pulled from the App Store. Also, the good news for iPhone-owning Hongkongers is that HK Maps has a good mobile web app.)

HKmap.live (Hacker News):

@Apple finally made the right decision. Will update later as things are going crazy in #HK now.

No explanation for why it was first rejected.

About Project Zero

Lorenzo Franceschi-Bicchierai (tweet):

Ever since Project Zero was announced in 2014, these hackers have taken apart software used by millions of people—and predominantly written by other company’s engineers—with a mission to “make zero-day hard.”

[…]

In five years, Project Zero researchers have helped find and fix more than 1,500 vulnerabilities in some of the world’s most popular software, according Project Zero’s own tally. In Apple products, Beer and his colleagues have found more than 300 bugs; in Microsoft’s products they found more than 500; in Adobe’s Flash, they found more than 200. Project Zero has also found critical issues in CloudFlare, several antivirus apps, and chat apps such as WhatsApp and FaceTime. A Project Zero researcher was also part of the group who found the infamous Spectre and Meltdown flaws in Intel chips.

[…]

For one, Project Zero has normalized something that years ago was more controversial: a strict 90-day deadline for companies that receive its bug reports to patch the vulnerabilities. If they don’t patch in that time frame, Google drops the bugs itself. […] According to its own tally, around 95 percent of bugs reported by Project Zero get patched within that deadline.

[…]

But some think Project Zero may actually be helping law enforcement and intelligence agencies learn from its research and help them develop what are known as N-day or 1-day exploits. These are hacks based on zero-days that have been disclosed—hence their name—but work until the user applies the patch. According to some critics, the idea here is that malicious hackers could lift the code published by Google researchers as part of their reports and build on it to target users who have yet to update their software.

Indeed, Apple and other vendors don’t always update old versions of their software, so some users can’t update. But I don’t think that’s a good reason not to publish the research.

See also: Fun with FaceTime.

Previously:

Tuesday, October 1, 2019

Apple’s New Map Expands to Northeast U.S.

Justin O’Beirne:

This is the fifth time that Apple has expanded its new map since its public launch in September 2018[…]

In June 2019, Apple announced that its new map would cover “the entire U.S. by the end of 2019”[…]

With this latest expansion, Apple’s new map now covers 27.5% of the U.S.’s land area...and almost half of its population (47.2%)[…]

It definitely looks much improved in my area, though I still find Google Maps to be better.

Previously:

Update (2019-10-04): See also: Hacker News, Andrew J. Hawkins.

Update (2019-10-11): Michael Love:

New Apple Maps data is out for New England and the 3D visualization tool is a really interesting way to visualize how towns are developed. For example, here’s the dividing line between Norwalk on the left and Westport on the right[…]

Deep Fusion Beta

Matthew Panzarino:

Deep Fusion is a technique that blends multiple exposures together at the pixel level to give users a higher level of detail than is possible using standard HDR imaging — especially in images with very complicated textures like skin, clothing or foilage.

[…]

According to Apple, Deep Fusion requires the A13 and will not be available on any older iPhones.

As I spoke about extensively in my review of the iPhone 11 Pro, Apple’s ‘camera’ in the iPhone is really a collection of lenses and sensors that is processed aggressively by dedicated machine learning software run on specialized hardware. Effectively, a machine learning camera.

John Gruber:

Deep Fusion only works with the telephoto and regular wide lenses — it does not work with the ultra-wide lens. Because of that, Deep Fusion is not compatible with “Photos Capture Outside the Frame”, because the outside-the-frame content is usually captured with the ultra-wide lens. So I think we now have two reasons why “Photos Capture Outside the Frame” is not turned on by default[…]

[…]

Deep Fusion is not a mode or even an option like Night Mode is — it will simply apply automatically when the Camera app thinks it should.

Previously: