Skip to content

macOS Apps

Articles about OS X applications.

Bring the Buddy List window back to High Sierra’s Messages

With the release of High Sierra, Apple removed the last vestiges of support for AOL's AIM protocol in Messages: You can no longer login to an AIM account. Yes, this is ancient tech. But it had one feature that a small group of my friends, family and coworkers relied on: The Buddy List window, as seen at right.

The buddy list was a great way to know if someone was available to chat or not—unlike Messages, which simply assumes that it's OK to text someone anytime. You could also customize the away message, to let someone know you're on the phone or you'll be back in 10 minutes or whatever.

As someone who works all day at my desk, the buddy list was a nice way to let friends and coworkers know when it's OK to talk and when I was busy. Also, I could keep these chats exclusive to my Mac, and not have them appear on all my devices, which was a nice benefit (no messages received when I didn't want to receive them).

Alas, High Sierra took that all away…or did it? It did not, as it turns out—the above screenshot was actually taken in High Sierra. The solution? Jabber, another ancient (but open source, unlike AIM; history) messaging protocol.

[continue reading…]



Apple says don’t use Time Machine if you take lots of photos

I know that's a shocking headline, but that certainly seems to what they're saying for a certain group of users (red emphasis added):

By default, your System Photo Library is stored in the Pictures folder on your Mac, but you can move it to another location on your Mac or store it on an external storage device.
WARNING: If a Photos library is located on an external drive, don’t back up the drive using Time Machine. The permissions for your Photos library may conflict with those for the Time Machine backup

Jan 23 2018 update: Thanks to reader Brian for commenting below that Apple has updated this page with much clearer wording. It now reads (emphasis added):

If a Photos library is located on an external drive, don’t use Time Machine to store a backup on that external drive. The permissions for your Photos library may conflict with those for the Time Machine backup.

That just means you shouldn't use the same external drive for both your Photos library and as a destination drive in Time Machine. This makes much more sense; continue reading only if you care about my feelings on the original incorrect wording.

[continue reading…]



Remove duplicate purchased movies in iTunes

Earlier today, I tweeted about duplicates of purchased movies in my iTunes library…

With 150 or so purchased movies over the years, these dupes make reading through the movie list quite annoying…

Finally annoyed enough to do something about it, I chatted with Apple Support this morning, and they quickly identified the cause…

Why are there two? iTunes is showing both 1080p and 720p versions of each movie (which also explains the size differences), so you can choose which to sync to an iOS device—you'll save a bit of space with the 720p versions. That makes sense, though the way it's handled seems quite odd and visually annoying.

To prevent this from happening in the future, iTunes support suggested I open iTunes' prefs, go to Downloads, and make sure only the "Download full-size HD videos" box is checked (assuming you want HD). My iTunes had both that and the "Download high-quality SD videos" box checked, so I unchecked the SD box.

I don't really understand how this will prevent the dupes from showing on future purchases, because my dupes are primarily all in the cloud, as noted by their icons, so I wouldn't think this setting would help. But I won't know until I purchase my next movie—changing the setting had no effect on existing duplicates.

But what about getting rid of the existing duplicates? That took a bit of trial and error, but this method seemed to work for me…

[continue reading…]



See how long an app has been running

For a recent customer support question, I needed to know how long our app Witch had been running. There are probably many ways to find this out, but I couldn't think of one. A quick web search found the solution, via ps and the etime flag.

You need the process ID (pid), which you can find via ps ax | grep [a]ppname.1That [s]quare brackets around the first letter are there so grep won't find itself—and thus list itself in the output. In my case, Witch runs a background task called witchdaemon, so I did it this way…

$ ps -ax | grep [w]itchd
  774 ??        26:40.73 /Users/robg/Library/PreferencePanes...[trimmed]

With the pid, the command to find that process' uptime is:

$ ps -o etime= -p "774"
11-03:17:12

The elapsed time readout is in the form of dd-hh:mm:ss, so Witch had been running for 11 days and a few hours and minutes. Note that you can combine these steps, getting the process ID and using it in the ps command all at once:

ps -o etime= -p "`ps -ax | grep [a]ppname | cut -d ' ' -f 1`"

It's messy looking, but this form saves time and typing.

June 2018 Addendum: If you add the lstart flag, you can see the exact start date and time for the process. For example:

$ ps -o lstart= -o etime= -p "16866"
Tue Jun  5 05:49:19 2018     09-06:11:25


Configurator covers (some of) iTunes’ lost app features

On the same day that Apple announced the new iPhones and such, they also released iTunes 12.7, which has a number of minor changes, and one very major change (here's a nice summary). The major change is the removal of pretty much anything related to iOS apps: You can't sync apps, you can't browse the store, and you can't reorder your iOS device's app icons.

As someone who is Mac-bound for the majority of the day, this is a horrible change, and I absolutely hate it. Apple does provide one workaround, the ability to manually sync data from your computer to your iOS device. But this method isn't really user friendly, and offers almost nothing in the way of actual app management. Further, it doesn't let you rearrange your apps, which is one of the most awful tedious tasks one can undertake on an iOS device.

Enter Apple Configurator 2, a free Mac app that Apple says "makes it easy to deploy iPad, iphone, iPod touch, and Apple TV devices in your school or business." But here's a secret—shhhhhh!—you don't have to be a school or business to use Configurator, nor do you have to use it for multiple devices—it works just fine for a single user with a single iOS device. And as an added bonus, it does some things that iTunes 12.6 and earlier never did.

In summary form, using Configurator, I can…

  • Easily view (customizable) device info for multiple devices at once.
  • See a summary screen for any given device, containing lots of useful tidbits about the device.
  • Rearrange icons on any device's screens.
  • Change the wallpaper on any device.
  • View info on all installed apps, and sort by name or seller or genre, etc.
  • Update installed apps.
  • Install apps from either purchase history or from a folder on my Mac.
  • Install configuration and provisioning profiles (for beta software, etc.).
  • Install documents and assign them to applications.
  • Create backups (open or encrypted) and restore them.
  • A whole bunch more…

The one thing it can't do—and for which there's still no alternative I'm aware of—is browse and purchase apps from the iOS App Store. For that, you'll still need to use your iOS device…or a virtual machine running iTunes 12.6. (Configurator requires a physical connection via USB cable; it won't work over WiFi. Configurator also grabs any connected devices it sees, so don't launch it while iTunes is syncing other iOS content, for instance.)

Keep reading for a slightly deeper look at a few of Configurator's features…

[continue reading…]



Selective pruning of old rsync backups

In yesterday's post, I described a couple rsync oddities, and how they'd led me to this modified command for pruning old (older than four days) backups:

find /path/to/backups/ -d 1 -type d -Bmin +$((60*4*24)) -maxdepth 1 -exec rm -r {} +

After getting this working, though, I wondered if it'd be possible to keep my backups from the first day of each month, even while clearing out the other dates. After some digging in the rsync man page, and testing in Terminal, it appears it's possible, with some help from regex.

My backup folders are named with a trailing date and time stamp, like this:

back-2017-05-01_2230
back-2017-05-02_0534
back-2017-05-02_1002

To keep any backups made on the first of any month, for my folder naming schema, the modified find command would look like this:

find /path/to/backups/ -d 1 -type d -Bmin +$((60*4*24)) -maxdepth 1 -not -regex ".*-01_.*" -exec rm -r {} +

The new bits, -not -regex ".*-01_.*" basically say "find only files that do not contain anything surrounding a string that is 'hyphen 01 underscore.' And because only backups made on the first of the month will contain that pattern, they're the only ones that will be left out of the purge.

This may be of interest to maybe two people out there; I'm documenting it so I remember how it works!



How to not accidentally delete all your rsync backups

With my Time Machine-like rsync backups running well, I decided it was time to migrate over the cleanup portion of my old script—namely, the bit that removes older backups. Soon after I added this bit to my new script, though, I had a surprise: All of my backups, save the most recent, vanished.

In investigating why this happened, I stumbled across two rsync/macOS behaviors that I wasn't aware of…and if you're using rsync for backup, they may be of interest to you, too.

[continue reading…]



How to burn an ISO file to a USB stick

I wanted to install Linux on a hard drive in Frankenmac, as Clover is a multi-boot utility—it lets you choose from any OS it sees during power up. (I'll add Windows, too, eventually.) To do this, you need to get Linux onto a USB stick. I've done this in the past, and my vague recollection of the process was download the ISO, convert to an image file, write image file to USB stick. However, as it'd been a few years, I went searching for references to make sure I had all the commands correct.

I found a lot of pages with a general summary of the process, and few with the specific steps. I tried one of those, but my USB stick didn't work. The other specific pages contained the same basic process, so I was stuck. Until I found this page, which contained a critical step I was missing: Formatting the USB stick before copying the image file.

For future reference, here's the precise process to follow if you want to burn an ISO file onto a USB stick…

[continue reading…]



How to install ruby gems in Terminal

In yesterday's tip, See sensor stats in Terminal, I implied that installation of the iStats ruby gem was a simple one-line command. As a commenter pointed out, that's only true if you already have the prerequisites installed. The prerequisites in this case are the Xcode command line tools. Thankfully, you can install those without installing the full 5GB Xcode development environment.

(Rather than starting from scratch, I'm just going to borrow this bit from my detailed instructions for installing the transcode-video tools, because the Xcode command line tools are required there, too.)

Here's how to install the command line tools. Open Terminal, paste the following line, and press Return:

xcode-select --install

When you hit Return, you'll see a single line in response to your command:

$ xcode-select --install
xcode-select: note: install requested for command line developer tools

At this point, macOS will pop up a dialog, which is somewhat surprising as you're working in the decidedly non-GUI Terminal:

Do not click Get Xcode, unless you want to wait while 5GB of data downloads and installs on your Mac. Instead, click the Install button, which will display an onscreen license agreement. Click Agree, then let the install finish—it'll only take a couple of minutes.

If you're curious as to what just happened, the installer created a folder structure in the top-level Library folder (/Library > Developer > CommandLineTools), and installed a slew of programs in the usr folder within the CommandLineTools folder.

[continue reading…]



See sensor stats in Terminal

Someone—perhaps it was Kirk—pointed me at this nifty Ruby gem to read and display your Mac's sensors in Terminal: iStats -- not to be confused with iStat Menus, a GUI tool that does similar things.

Installation is sinmple, via sudo gem install iStats. After a few minutes, iStats will be ready to use. In its simplest form, call istats by itself with no parameters. Normally I'd list the Terminal output here, but istats (by default, can be disabled) presents informatiomn with neat little inline bar graphs, so here's a screenshot:

This tool is especially useful on a laptop, as it provides an easy-to-read battery summary.

[continue reading…]