Yosemite’s Automation Improvements

October 29th, 2014

Ray Robertson of Automated Workflows offers a good rundown of the automation changes Apple provides in OS X Yosemite and their iWork suite of apps. When you look at the mass of changes, including enhancements to AppleScript, Automator, and the addition of an all new JavaScript dialect for application scripting, it reads like a pretty huge update to the state of automation. So much for AppleScript being “dead” to Apple, huh?

One of the interesting new features in AppleScript is support for scripts exposing their own “progress” as they run. This facilitates the system displaying e.g. a busy indicator, or even a progress bar that fills up as the script moves along the steps of its work. Unfortunately the progress feature of AppleScript has not been exposed to 3rd party developers, so far as I can tell. So an app like FastScripts, or any other app that runs scripts on its own, cannot yet take advantage of showing users the fancy progress feedback.

I’m especially impressed and intrigued by the changes Apple has made to iWork to better facilitate scripting. When they launched the major updates to the suite last year, they gutted AppleScript support in the apps. They’ve been gradually adding stuff back, and the latest updates make another big leap. As described by the Automated Workflows post, they’ve gone so far as to provide custom UI in the app for labeling fields with scriptable terms. I look forward to seeing what I can do now with some automated Pages workflows that I’ve been holding back to the previous generation of the app.

FastScripts 2.6.8: Fix Folder Aliases

October 24th, 2014

FastScripts 2.6.8 is available now from the FastScripts home page, and will soon be submitted to the Mac App Store for review by Apple.

For years FastScripts has supported the ability to follow Mac OS X aliases, so you can drop an alias to a script, or an alias to a folder of scripts, and it “just works.” For example, some folks found this to be a handy way of keeping a bunch of scripts on Dropbox that would be accessible from whatever computer they use FastScripts from.

At some point along the line, this functionality started breaking in subtle ways that I didn’t track down until now. The long and short of it is Apple has moved away from “alias files” in recent years, and now favors a format they call “bookmarks.” To users, the files behave the same way, and Apple continues to call them “aliases” e.g. in the Finder when it offers to make an alias to a file. However, the older system service for “resolving an alias file” does not work on bookmarks. Thus, existing aliases in your FastScripts tree may have worked, but new aliases created recently would actually be “bookmarks” and thus not work.

The problem was compounded at some point, maybe as recently as OS X Yosemite, when Apple started aggressively converting old alias files into bookmarks. So even if you had an old, functional alias to a folder in your script tree, it may have recently stopped working in FastScripts because Apple converted it … helpfully … to a bookmark.

FastScripts 2.6.8 solves this problem once and for all by using newer system services that resolve both alias files and bookmarks. You should now be able to make an alias to a folder or script, drop it into your Scripts folder, and have it show up as expected.

This update also addresses a cosmetic issue with 2.6.7, where my efforts to update the FastScripts icon for Yosemite’s “dark mode” caused it to appear inadvertently too light when running in standard mode.

FastScripts 2.6.8

  • Fix a bug from 2.6.7 that caused the menu bar icon to draw too lightly in OS X Yosemite
  • Restore proper functionality of aliases to folders within the script hierarchy
  • Fix a typo in the first-launch welcome message

Let me know if you run into any issues!

Yosemite’s Speakable Scripts

October 17th, 2014

One of the cool new features in OS X Yosemite is a major expansion of the system’s dictation features. Not only has the dictation become more accurate and reliable (probably by leveraging the work that goes into Siri on iOS), but there are new integration points that facilitate really interesting workflows.

I developed FastScripts many years ago expressly because at the time I found it tedious to have to open a script in Script Editor, and run it. For quick-fix type scripts, it was easier to just do the thing than jump through the hoops of running it!

Over the years, Apple has improved the built-in mechanisms for running scripts, by adding their own standard script menu, and slowly increasing the ways in which scripts can be invoked through various built-in actions. Still, when it comes to organizing and invoking scripts by keyboard shortcut, I am convinced FastScripts is best.

But a nuanced feature of Yosemite’s Dictation feature actually leapfrogs FastScripts in one interesting area: it’s now possible to configure app-specific speaking commands that run arbitrary scripts.

I learned about this feature via Macworld’s Christopher Breen, who writes extensively about the new speech commands and how they can be used to create custom Automator workflows.

At first I griped that the commands could not be configured to run scripts, because that is what any reasonable person would infer from the selection of choices:

SpeakableCommand

Granted, these are all fine choices and you can perform some pretty interesting tasks by configuring a specific spoken phrase to open a file, paste a specific text phrase, or simulate a keyboard shortcut. But why can’t I run a script?

Going out on a limb I chose “Run Workflow…” and navigated in the file chooser to my scripts folder. Lo and behold, you can run a script, you just choose one instead of a workflow and speakable commands will handle it with aplomb.

Whether or not you use FastScripts to accelerate script execution with keyboard shortcuts, I think you might find some uses for speakable scripts. Enjoy!

Update Oct 17, 3:17PM EDT: Well, my excitement may have been a little premature. It seems the scripts are run not as the streamlined items that they are but are instead sort of wrapped in an automator action and run. It’s nice that you don’t have to go out of your way to translate a script into an Automator Workflow, but unfortunately this means that “Speakable Scripts” do put up the little Automator gear icon in the menu bar, and are probably ultimately slowed down at least a bit by being run as a full-on workflow.

Update Oct 19, 5:50PM EDT: Wait a minute, maybe it is running them as native scripts. There’s just a change on OS X Yosemite with how the system runs scripts, such that they always show an Automator-style progress indicator in the menu bar. I find this pretty irksome as a default behavior because for example short-lived scripts don’t need progress to be indicated at all. I’ve also noticed that the system automation progress indicator is liable to pop up at semi-random location in the menu bar, and then leave a gap when it goes away.

OS X Yosemite

October 17th, 2014

OS X Yosemite is now available, and if you rely upon any Red Sweater apps, you’ll be happy to know that we are good shape with compatibility. I’ve been running the beta releases for a few months and fixing little things here and there as I run into them. For the most part, Apple made this an easy transition for me, and I hope it will be an easy transition for all of you as well!

There are only two issues, both with MarsEdit, that I would point as possibly needing fixing, but they shouldn’t impede your normal use of the app:

  • The script menu icon doesn’t draw right in “dark mode.” If you flip the switch in System Preferences to favor a dark menu bar with white text, you will find that in MarsEdit the Script menu icon continues to draw darkly. This is rooted in a problem that Apple apparently plans to fix in a future update.
  • The “vibrant” translucency currently applies to the categories table in the post editor’s options side bar. I’m not sure it’s appropriate for this to happen, and it seems distracting to me. I plan to arrange for this content to always draw opaquely in a future update to MarsEdit. In the mean time, if the translucency bothers you in MarsEdit or in other apps, you can turn it off across all apps by selecting the option under System Preferences > Accessibility > Display to “Reduce transparency.”

Hopefully those little quirks are the extent of issues with Yosemite. Please do let me know if you run into anything else.