Archive for May 6, 2020

Wednesday, May 6, 2020

Reviving a 16-year-old Mac App

Jonathan Deutsch (Hacker News):

Today we released Whisk 2.0: a lightweight web page editor with a live preview that updates as you type. The name may be new, but the mac app’s origins are in shareware called HyperEdit that I started while in college over 16 years ago. It is hard to believe I’ve worked on an app old enough to get its driver’s license!


From a developer perspective, distributing software is significantly harder. In 2003, you could switch the config to Release, hit build, zip the app, and then put on a web server. In 2020, distributing requires learning the intricacies of certificates, code signing, provisioning profiles, hardening, notarization, .dmg creation, gatekeeper, and paying a $99 per year fee. From a mac technology perspective, I don’t think it is an exaggeration to say the amount required to learn to distribute software exceeds the amount I needed to know to write the first beta of HyperEdit! I wonder if it would have gotten off the ground if I started today.

Update (2020-05-18): Benedikt Terhechte:

I spend the last 9 months working almost every spare minute on a new iPad / macOS app. It seems I’m almost done, but this affected me really hard. It was so so so much work. Looking back I should never have started this. I’m unbelievable proud, but also totally exhausted 😔


I think there were times when I was close to crying because it was all just too much. This also includes a plethora of UIKit bugs which more than once made things that seem trivial cost me weeks.

There’s just so much complexity going on, and my app doesn’t even use the network, but there’s so much tech you need to know, understand, incorporate, and then manoeuvre around all weird iOS behaviours

SwiftUI, Cursor, UIDocument, iCloud, Spotlight, Unicode (two different strings), Drag and Drop, Splitscreen, Multi-Window, Keyboard, Objc Interop, Sharing, Undo, Dark Mode, Assets, and so on. Building an indie app is a suicide squad

Oluseyi Sonaiya:

This whole thread, amen.

I’ve paused my indie iOS app multiple times, because it’s unclear that the return is worth the effort. I’m finding peace treating it purely as a hobby.

AirPods Pro Firmware Problems

Joseph Curran (via Adam Engst):

Those first two weeks with AirPods Pro were like heaven on earth. Then came the sting in the tale and the start of this ongoing saga: a firmware update.

AirPods firmware updates happen automatically. And unlike with iOS and macOS updates, they can’t be stopped. You’re getting the update whether you like it or not.


2B588 weakened the noise cancellation, and this was quickly picked up on by many users. On Apple’s support forums, a thread was created on November 24th entitled AirPods Pro firmware 2B588 reduce the noise cancelling capability. As of today, it has an astronomical 39,000 views and runs to 37 pages.


To make matters even worse, this month (April 2020) it emerged users were being shipped replacement AirPods running an unreleased firmware version, 2D3, which rendered their product unusable due to a mismatch between the left and right pods.

Juli Clover:

Apple today released a new firmware update for the AirPods Pro, upgrading the previous firmware, version 2C54 or 2B588, to the new firmware, 2D15.


AirPods Pro firmware updates often include performance improvements, bug fixes, and feature tweaks, but we may not find out what’s new as Apple does not provide any kind of release notes for AirPods updates.

Damien Petrilli:

Latest AirPods Pro firmware doesn t fix noise cancelling. It might even be worst esp with high-pitched noises.

At this point we should be able to ask for a refund. This is not the product I purchased and updates are forces upon the user by Apple without choice.

I’m still happy with the noise cancellation on mine, though I don’t think I ever got to experience the “good” firmware.

See also: Pixel Buds versus AirPods and AirPods Pro.


CleanMyMac X in the Mac App Store

Oleksandr Kosovan:

The fact that the Mac App Store became much better and that it supported subscriptions, made us work on building CleanMyMac X for the Mac App Store.


The fact that some CleanMyMac X features aren’t available on the App Store doesn’t mean they’re harmful or illegal. The App Store limits privileges of applications to protect your Mac from malicious software, but this approach also imposes unnecessary restrictions on safe activities, like cleaning system logs or even updating applications. That’s exactly what happened to CleanMyMac X.

There’s a long list of missing features.


Mac Pros Don’t Really Sleep

Colin Cornaby:

One weird thing about the Mac Pro I haven’t seen mentioned… It does not support sleep. It can do display sleep, and the sleep command in the Apple Menu will trigger display sleep. But the machine itself will not support deep sleep and the fans will always run.

I don’t know if it has its own version of sleep that isn’t deep sleep. Power nap is there. But it doesn’t sleep like other Macs where the fan turns off and the machine is on standby. And if you tap the keyboard to wake it feels like only the display is sleeping.

Brendan Shanks:

Wow, power usage in “sleep” is 15W, that’s really high. iMac is 1W, even trashcan Mac Pro was 4W.


Update (2020-05-06): John Siracusa:

You can absolutely get a 2019 Mac Pro to sleep and spin down all its fans. Use the pmset command-line tool to find out what’s keeping your Mac from sleeping.

Colin Cornaby:

Ohhhh interesting. Sharingd and powerd were preventing sleep even though no one was connected? Turned screen/file sharing off and then back on again, and now after about a minute the fans spin down all the way.


Mine turns on the rear blower after about 90 minutes of sleep. It’s barely audible but you can feel the air flow. I wonder if this behavior is normal?!

Advantages of the Arq 6 File Format

Stefan Reitshamer:

The problem [with Arq 5] is, as your backup set gets bigger, the number of “index files” that explain what’s in those pack files grows until it becomes unwieldy. To find an object, Arq had to check every index file, as well, as the list of unpacked blobs, until it found the identifier it was looking for.

Arq 6 doesn’t do that. It stores the actual location in the data. A “snapshot” (backup record/commit) contains the path, offset and length of the trees and blobs it needs. The trees contain the paths, offsets and lengths of the trees and blobs they need. No more looking at all the index files.

Arq 6 also doesn’t store “commits” like git did, where each commit contained the identifier of the parent commit. Deleting a commit from the bottom of that queue was costly. Arq 6 stores “snapshots” (replacement for commits) independently, so one can be deleted without affecting any others.

Also, Arq uses a sqlite database to keep a list of all the blobs, trees and commits and the references among them, so that finding and deleting unreferenced data is very quick. Enforcing a budget is also far faster than in Arq 5.

I’ll be interested to learn more about how this works. It seems like it would still need to do a complete scan to see whether a new file has the same content as one that was already backed up and to locate unreferenced blobs after pruning snapshots.


Apple’s Q2 2020 Results

Jason Snell:

Apple on Thursday announced that it generated $58B in revenue during its second fiscal quarter. Services revenue was up again, wearables revenue was up again, and iPhone, Mac, and iPad were down. The company declined to give guidance on what it thought would happen during the current quarter, given how uncertain the world economy and pandemic situation are.

Charts! We’ve got many of them below.

John Gruber:

Services (23%) now account for quite a bit more of Apple’s revenue than Mac and iPad combined (9% and 7%).

See also: This is Tim.