Archive for the ‘Development’ Category

Sal Soghoian’s position eliminated at Apple

Thursday, November 17th, 2016

Wait. Who? Sal Soghoian is Product Manager of Automation Technologies at Apple. That basically means he has been the motivating force behind AppleScript, Automator, application scriptability and the technologies that underly them. He’s been doing it for the last 20 years, and I don’t think most Mac users understand how important his influence has been to the platform we use and love. He’ll be leaving Apple on December 1, as his position has been “eliminated for business reasons.”

While I’ve met Sal several times, I don’t know him on a personal level. I’ve seen him speak numerous times, and like many long-time Mac developers, have benefited from his passion and consistent evangelism of system-level scriptability.

Why do I care? Indeed – why do we care about this? Well, let’s rewind a bit and set some groundwork for why Sal’s contributions matter so much.

Interoperability – from Copy/Paste to AppleScript. We all take copy and paste for granted – of course I can copy an image out of Photoshop and paste it into Mail, right? Well, it didn’t always work so easily – the Mac was the first major platform that standardized that by providing system-level support for standard image types and an extensible way to move them between applications. The key was that it was natively supported by the system, so developers could add it to their apps and it worked the same way, with the same basic data formats, in all applications. You could copy and paste between any applications.

Like copy and paste, in 1993 Apple added system-level support for scripting. Instead of every developer inventing their own custom scripting language that only worked in their application, Apple created AppleScript – and more crucially, AppleEvents beneath it that provided a rich way to send commands and data from one application to another. Many applications have scripting dictionaries built into them, letting you, or any application, send commands to do useful stuff.

Anyone can create simple or hugely complicated AppleScripts to do all sorts of things – from changing the format of all image files in a folder to automating email handling to batch-processing audio and video clips for movies. You can use all the best-of-breed tools on the Mac and string them into workflows that meet your specific needs. That’s always been one of the Mac’s big advantages – you can combine applications to accomplish more than any of the individual apps can do themselves. Apple’s Automator application even tried to make this accessible to everyone – with varying levels of success, depending on who you talk to.

But I don’t use AppleScript. So I don’t care, right? You may not directly use AppleScript, but many applications use AppleScript or AppleEvents in lots of little ways. iTunes, for example, lets you pause, play, go forward and backward a track, change playlists, add properties to songs, and a zillion other things. Those little iTunes controller apps that live in your menubar or dock? They use AppleScript to talk to iTunes. The ones that add lyrics to the currently playing song at the push of a button? Yup, AppleScript. Applications that grab the current page from your browser? AppleScript. The “contact us” button in an app that automatically creates an email in Mail with a subject and the To: address filled in? AppleScript. There’s probably something on your Mac that uses AppleScript or AppleEvents, even though you’re not aware of it.

So where does Sal come in? Sal is the guy at Apple who has kept this whole vision alive. He prodded developers to add AppleScript capabilities to their applications. He kept system-level scripting a priority – or at least on the radar – at Apple. He spoke at WWDC and numerous other conferences, showing how powerful the technology was. He explained to developers how a little work on their end could yield huge benefits for scripting-aware users.

My fear is that with Sal’s departure, Apple’s waning interest in scripting, and application interoperability in general, will be gone for good.

Losing interoperability. So if system-level scriptability disappears, what do we lose? For starters, it makes it harder for one application to talk to another or to use another application’s capabilities. Those iTunes controllers wouldn’t be able to talk to iTunes. My own product, Default Folder X, tracks your recently-used folders and then lets you go back to one of them in the Finder, Path Finder or Terminal. The latter two wouldn’t be possible (or would be much harder) without AppleScript. And when someone tweeted me that they wanted to use iTerm2 instead of Terminal, I could add that in 10 minutes because iTerm2 supports AppleScript.

Yes, those are little things, but sometimes they’re the little things that separate an acceptable application from an awesome one. I’ve always felt that the interoperability between Mac applications was one of the things that distinguished the Mac from other platforms like Windows. Even when you can get the same applications on both OS’s, everything is just tied together better on the Mac. I hope that doesn’t change.

Oh, and if you do use AppleScript? Yeah, this sucks even more.

Dash gone from the App Store – what the heck, Apple?

Thursday, October 6th, 2016

Just a random PSA for developers: This just happened:

https://blog.kapeli.com/apple-removed-dash-from-the-app-store#what-happened

Summary: Bogdan Popescu, the developer of Dash (one of the most awesome programmer’s reference tools ever), contacted Apple to convert his personal developer account into a company account. Apple started the process, then disabled his personal account and revoked his permission to sell apps on the App Store. It looks like another capricious and supremely unhelpful App Store move from Apple. Thanks guys – you make it so much fun to develop for your platforms.

Default Folder X 5.0.6b5 fixes some glitches with Sierra betas

Wednesday, August 17th, 2016

There’s a new public beta of Default Folder X that addresses issues with the latest beta releases of macOS 10.12 Sierra. I’m also testing some changes to Default Folder X’s activation method that get rid of problems with it occasionally not loading in some applications, as well as fixing a hang that could occur under some circumstances. Oh, and there’s also improved support for LaunchBar.

You can see the full change history and download a copy from the Default Folder X Testing page.

If you’re running App Tamer, make sure you get a copy of the latest App Tamer Beta too.

Default Folder X 5.0.6b1 brings support for macOS 10.12 Sierra

Wednesday, June 22nd, 2016

SierraA new public beta of Default Folder X 5.0.6 is available, adding support for the developer release of macOS 10.12 Sierra that was unveiled at WWDC last week. It also adds “always sort by name” to your Favorite Folders list and fixes a couple of compatibility issues.

More details and download links are on the Default Folder X beta testing page.

Integrating Default Folder X with LaunchBar

Thursday, March 10th, 2016

launchbar_320@2xI’ve long been an avid (addicted) user of LaunchBar – if you’re a person that’s keyboard-based like I am, it’ll save you ridiculous amounts of time. Hit Command-Space to activate LaunchBar and then start typing – you can do anything you want to without taking your hands off the keyboard.

Now I’m happy to announce that Manfred Linzner, an engineer at Objective Development (the makers of LaunchBar), has put together a LaunchBar action that gives you access to Default Folder X’s favorite and recent items within LaunchBar.

If you’re a LaunchBar user, you just need to download the Default Folder X Files action from Manfred’s Github repo. After it downloads, double-click on the .lbaction file and LaunchBar will offer to install it for you. Then it’s just a matter of invoking LaunchBar and typing the first few letters of “Default Folder X Files” (or “DFX”) to get this:

launchbar_dfx

Hit the right arrow key from there to select any favorite or recent folder or file from Default Folder X, or Command-right-arrow to narrow the search to just your Favorites, Recent Files, or Recent folders.

launchbar_dfx_select

Yet another way to get to your files and folders faster – thanks Manfred!

Auto-Update Vulnerability in Sparkle

Wednesday, February 10th, 2016

A security vulnerability has been found in Sparkle, the framework used by many Mac applications to check for and download software updates automatically. Full details are at:

http://arstechnica.com/security/2016/02/huge-number-of-mac-apps-vulnerable-to-hijacking-and-a-fix-is-elusive/

While some of our applications (like HistoryHound) are using older versions of the Sparkle framework at the moment, they all use encrypted HTTPS connections to check for and download updates, so there’s no chance of a man-in-the-middle attack, as described in the report.

So you can safely leave automatic update checking turned on in all of our products – it’s being done safely.

– Jon

Finally! Default Folder X 5.0 Released!

Monday, January 11th, 2016

 

Default Folder X 5.0 is finally done and out! You can get it from https://www.stclairsoft.com/DefaultFolderX/index.html now. A quick list of the new features is at https://www.stclairsoft.com/DefaultFolderX/release.html, though there’s so much new and improved that it’s impossible to really list it all. It’s a ground-up rewrite that brings in all the improvements I’ve wanted to do for years.

Important details, for those of you who haven’t been following the betas:

  • It’s fully compatible with El Capitan and doesn’t require that you turn System Integrity Protection off anymore.
  • Yes, it’s a paid upgrade. It’s $14.95 unless you bought your license on or after June 1, 2015.
  • There are more features that are on the way – I held back a few in order to get 5.0 out sooner.
  • Localization in other languages still needs to be done – that’s a high priority now.
  • Version 5 also runs on Yosemite, but not on earlier versions of OS X.
  • If you turned off System Integrity Protection to use version 4 on El Capitan, you can turn it back on now.

Default Folder X 5.0b14 – it’s just about done!

Friday, December 25th, 2015

Merry Christmas / Happy Holidays!

I just posted beta 14 of Default Folder X 5 – it squashes a bunch of miscellaneous bugs and now checks your serial number. If you bought your version 4.x license (full or upgrade) after June 1, 2015, it’ll automatically give you a free upgrade to version 5.

My bug list is down to just a couple, so it’s looking good for release in the first week of January. Thanks for your patience – this has been a much longer beta period than I expected. Despite a few bugs that have trickled in over the last couple of weeks, I’m very happy that the feedback has been extremely positive, with Default Folder X working trouble-free for most of the people who are running it.

There are a few issues, of course – one being a bug in Photoshop that renders Default Folder X inoperative in the Save for Web dialog. I’m afraid there’s not much I can do with it until Adobe fixes Accessibility support in that dialog (my bug report is here, if you’d like to “me too” it in hopes of making it more of a priority in Adobe’s eyes).

Anyway, Merry Christmas! I’m taking the day off to go skiing – you should get away from your computer too 🙂

Default Folder X 5.0b6 – Happy with the progress!

Monday, November 23rd, 2015

It seems like it’s taking forever (at least to me), but there are a lot of good changes in the latest beta (5.0b6) which I just posted at http://www.stclairsoft.com/DefaultFolderX/beta.html

Older Carbon apps will no longer always start in your Documents folder, the Finder-click feature once again allows you to click on the Desktop as well as on Finder windows, and there are significant improvements in several areas that speed things up and make Default Folder X more reliable.

My bug list has gotten much shorter, and there are only a few features missing now – yay!

Thanks for all the feedback (both positive and negative) and all your support. Please let me know if you run into any problems with 5.0b6!

– Jon

We interrupt your normally scheduled Default Folder X development for… expiring App Store receipts??

Thursday, November 12th, 2015

The Problem:

So I started getting emails yesterday complaining that Jettison was suddenly telling users their trial period was over – even though they’d already purchased a license. When I got the first few, I thought they’d just deleted their preference files and needed to re-activate their licenses, but then the trickle became a deluge – what the heck?

So I dropped everything and looked into it – I needed an answer ASAP or I was gonna spend the next couple of days doing nothing but answering email. It turns out everyone who was affected had bought Jettison through the Mac App Store and then upgraded to the direct-from-the-website version (because it’s better, of course – instructions here if you’re interested). When you do this, Jettison copies your Mac App Store receipt to a safe place so that it can verify that you’ve actually bought a license, even if you delete the App Store copy of Jettison.

Lucky for me, I’d bought a copy of Jettison myself when testing this mechanism, so I had my own receipt still sitting in ~/Library/Application Support/ so I could look at it. Printing the certificates in the receipt showed this little tidbit:

[...]
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=US, O=Apple Inc., OU=Apple Worldwide Developer Relations [...]
Validity
    Not Before: Nov 11 21:58:01 2010 GMT
    Not After : Nov 11 21:58:01 2015 GMT
Subject: CN=Mac App Store Receipt Signing, OU=Apple Worldwide Deve [...]
[...]

See that “Not After:” entry in the Validity section? “Nov 11 21:58:01 2015 GMT” – yeah, that’d be yesterday. When the emails started. Apple signed the receipt with a certificate that expired yesterday, so if you have one of these receipts, Jettison no longer thinks you’re legit. Sorry about that – I hadn’t considered that eventuality. And reading the news this morning, it appears that Apple hadn’t either.

The Fix:

So what to do? I’ve wrapped up Jettison 1.5 and posted it. You’re going to have to do a little dance again to get Jettison to update your receipt, but this version will do the right thing once you follow these instructions:

  1. Put every copy of Jettison on your Mac in the Trash and empty the Trash.
  2. Open the App Store application and click on the Purchases tab.
  3. Re-download the copy of Jettison you purchased. It will include a new, non-expired receipt.
  4. Download the latest version of Jettison (http://www.stclairsoft.com/download/Jettison-1.5.1d2.zip)
  5. Double-click the .dmg file to open it, then double-click on Jettison before copying it to your Applications folder.
  6. After Jettison tells you that it has found your App Store license, you can copy it to your Applications folder.

Sorry for the hassle. But hey, at least it forced me to get the version 1.5 update out the door, so there’s some benefit there, eh? And thanks Apple – I didn’t need to sleep last night anyway.

– Jon

P.S. I’m seeing a bunch of people buying non-App Store licenses directly from the St. Clair Software store today instead of jumping through these hoops to deal with the App Store. I have to say I’m all for that 🙂

Update:

A bit more info that’s interesting and could use some corroboration: I think this problem only affects apps that were downloaded before September 24 (either via purchase or update). When I download a new copy of Jettison from the App Store, the receipt is signed with a cert valid within these dates:

            Not Before: Sep 24 19:09:31 2015 GMT
            Not After : Oct 23 19:09:31 2017 GMT

So in my sample size of 1, copies of Jettison purchased or updated today will work until Oct 23, 2017, and could have worked with this receipt only as far back as September 24. If Apple has been using the same certificate to sign all App Store receipts (which seems reasonable), then anything that has been downloaded from the App Store after September 24 won’t expire until 2017. And apps downloaded prior to that have some other expiration in their receipts. If I had more time, I’d dig through all of my App Store apps to find out when each cert expires, but alas, I’ve got work to do and have killed enough time on this already…