Archive for April 13, 2020

Monday, April 13, 2020

SoundSource From Rogue Amoeba (Sponsor)

My thanks to Rogue Amoeba for sponsoring the blog this week.

Do you ever listen to audio on your Mac? Then SoundSource is for you. It lives in your menu bar and provides you with superior control over all your audio.

SoundSource From Rogue Amoeba

Take control of audio on a per-application basis. Now you can change the volume of any app relative to others and play individual apps to different audio devices.

Add effects to any audio, too. The Magic Boost and Volume Overdrive features let you hear your audio even in loud environments, and the built-in equalizer can sweeten the sound. Advanced users will love the ability to apply Audio Units to any audio.

SoundSource also provides fast access to the settings for your Mac’s Output, Input, and Sound Effects audio devices. Adjust levels, tweak the balance, and even switch sample rates, right from the menu bar. You may never need to open the Sound System Preference again!

SoundSource is made by Rogue Amoeba, the masters of Mac audio who bring you Audio Hijack, Airfoil, and more. Download the free SoundSource trial today. Through the end of April, readers of this excellent blog can save 20% with coupon code MJT20.

Arq 6

Stefan Reitshamer (tweet):

It’s been 4 years since Arq 5 first came out (although we’ve shipped 155 updates to Arq 5 in the meantime).

Our goal with Arq 6 was to make it work with the latest operating system features and the latest cloud storage options, make it more secure, and add the features people have been asking for, all while keeping it very simple to use, with smart default settings.

It’s $50 or $25 to upgrade. Lifetime licenses are no longer for sale, but they’re honored if you had already purchased one.

We worked with Apple to get access to the APFS API, so Arq 6 has native support for creating and using APFS snapshots.

This is great because it means Arq’s backup will be a perfectly consistent view of your files at a point in time, even if you’re modifying files as Arq is backing them up.

Backing up from a snapshot is great, and it’s one of several important enhancements to Arq’s backup engine:

The user interface has been completely redone. The good news is that the new design makes much more logical sense. It is easier to find things and to see what the app is currently doing. You can view the log for a backup right in the activity display, without having to go to a separate app. There are finally progress bars.

The bad news is that the app you interact with is now built with Electron. (The background agent process that does the work remains Objective-C.) The problems with Electron range from the superficial (everything just looks and feels off) to the functional (you can’t navigate outline views with the arrow keys or type-selection).

There are also areas where the new interface is designed in a less useful way. For example, when selecting which files to exclude, there used to be an outline view showing a live view of the file system, with checkboxes to mark items for exclusion. And there was a rule-criterion-like interface for excluding items based on patterns in their names. With Arq 6, this is all replaced by a text box filled with a mix of paths and globs. It’s short and narrow, with no indented wrapping, so I pretty much need to copy the text to BBEdit to see what’s going on. Even then, it’s cumbersome enough that I need to invert my backup selection model: instead of including a few big folders with lots of exclusions, it now makes more sense to selectively include smaller folders.

Other useful features from Arq 5 are absent. It no longer shows the amount of cloud storage used. You have to enter the backup password every time you change a setting. The log and status e-mails no longer tell you what was backed up. You can no longer see a preview of which items will be backed up. You can no longer start and stop backups from the menu bar. You can no longer quit the agent process—I now regularly force-quit it, as it swells to 25 GB of RAM. You can no longer control the software updater, which now updates to the latest version without even telling you. The data format specification and documentation are not available yet.

Overall, it just seems like the app was shipped before it was ready. After upgrading, all four of my backups (1 Amazon, 1 Google, 2 to hard drives) encountered problems importing the old backup data. One import reported 1.7 million errors, which ground the Electron interface to a halt and consumed 5.3 GB of RAM. I ran into a cascade of issues, and none of the original backups is yet working properly. Some backups got stuck and don’t do anything. Others seemingly want to upload all the files again, even though only a few have been modified.

I don’t think I’ve lost any data (though apparently some users have). The import process doesn’t delete the Arq 5 metadata, so it should still be possible to access all the snapshots with Arq 5. And Arq 5 snapshots are also restorable within Arq 6, although I ran into interface glitches with both the snapshot list and the file outline that made it impossible to actually access most of the data because the view wouldn’t scroll.

Still, to be on the safe side, I decided to put my old backups on pause and create all-new ones for Arq 6. The developer is normally very helpful and responsive but seems to be completely swamped making a flurry of fixes. It’s not really possible to get help at the moment, so I don’t want to mess anything up. New backups also make sense, anyway, because it’s the only way to take advantage of the new cloud storage classes, and because of the changes to selection/exclusion.

Arq Backup:

I’ve fixed a lot of issues in the past 5 days. I think importing is quite stable at this point. I apologize again for the problems. I will keep fixing issues as quickly as possible. And I’m going to rework the UI to look a lot more like Arq 5.

This is a sad situation because Arq is one of my favorite Mac apps of all time, and I don’t like to see it struggle. Plus, as a developer, it’s my nightmare to ship a build that I thought was stable only to find major bugs that no one encountered during testing. And then to have to choose between fixing the bugs ASAP and being responsive to the customers who are hitting them.

I still think that Arq, uniquely, gets the overall backup architecture right. Arq 6 makes major progress, but it also has some serious regressions. Most importantly, it needs more testing and refinement. I do not recommend updating right now. Arq 5 still works great. There’s no rush.

I remain positive about the long-term prospects for the app. There is, unfortunately, a history of major releases shipped with inadequate testing. But the developer has always worked hard to fix everything. Most of the time, Arq has been incredibly stable with everything just working as it should.


Update (2020-04-15): Stefan Reitshamer:

Unfortunately quite a few people experienced problems with importing Arq 5 settings and data.

I sincerely apologize for that. We’re doing everything we can, as quickly as we can, to fix the issues.


We’ve gotten a lot of feedback on the UI and have taken it to heart. We’re going to rework the UI to be cleaner, more compact, and laid out more like Arq 5.

I think the new layout is fine. I just prefer having native controls and button ordering.

Update (2020-04-17): Arq Backup:

We’ve removed the feature for importing Arq 5 data into Arq 6 format because of too much incompatibility between the 2 apps’ configuration approaches. Instead we’re working on adding an Arq 5 compatibility mode which will function just as Arq did -- same folder structure etc.

We plan to deliver compatibility mode before end of June 2020.

Git Tower 4.3

Julian Rothkamp (tweet):

Wouldn’t it be great if you could select individual files for stashing instead of all files - which is the default when using stashing? Now you can! Directly in Tower. Save Partial Stash enables you to do exactly that - stash only selected changed files from the Working Copy.


The new version includes another handy feature: Filtering the History by first parent. Doing so will hide merged commits in the history view. This is super useful if you are just interested in the mainline history and not the commits on a feature branch.

Lukas Kubanek:

Partial stashing in @gittower is much more helpful than I have initially thought. Instead of picking and committing the desired changes and stashing the rest, it’s now possible to go the other way around by picking the unwanted changes and stashing them first. Great addition!


Temporarily Free Content


Update (2020-04-15): See also: Pluralsight (via Cesare D. Forelli).

Resources for Learning Objective-C and AppKit

Jeff Johnson:

Back then, about 15 years ago, if you wanted to develop for the Mac, the recommended programming language was Objective-C, and the recommended application framework was AppKit, so I learned them. […] Since these technologies have unfortunately fallen out of favor, the resources for learning them are not as readily available as before. It appears that many would-be Mac developers don’t even know where to start learning. That’s where I come in, as someone who has been there before. There’s no definitive way to learn, but I can offer some suggestions from my own experience.

There’s also lots of great information in the Apple and Omni Group mailing list archives.

Update (2020-12-08): Isaac Halvorson:

I started cataloging some macOS dev resources in a git repo a while back.