waffle

ThisService and Snow Leopard

Since it’s now abundantly clear that Services will be much better in Snow Leopard, and since the guy who asked me to write ThisService in the first place has basically taken the stance that the new version of Automator that will allow for direct Service creation is good enough, I think I need to clarify exactly what will happen.

Here’s where ThisService stands today: ThisService 2.1, with a fixed crasher and some pipeline improvements, sits unreleased on my SSD, waiting for me to finish up its help book and polish the edges. There’s a plan for a future version — whether that’ll be 2.1 or not, I don’t currently know — that will let you set the service as accepting a specific type of input. (The new services system can use data detectors and these context hints to emphasize services that work with dates, addresses, URLs, phone numbers and email addresses.) Once this feature gets in, some people will ask for a way to change this information on existing ThisService services, and I will need to work out whether I’ll want to update the few hosted services with this information.

I’m not entirely sure about anything else beyond that. Services have always supported media beyond just text, and the new Automator unlocks the potential in being able to move files, folders, images, video and audio around. Changing ThisService simply to support creating such services is trivial. The reason I’ve chosen not to for so long is because the kinds of scripts people write using the methods ThisService support is not a natural fit for processing most of these things (besides perhaps files and shell scripts).

What if you make a Ruby script with ImageScience or MojoMagick to do image processing, and it turns out that running it strips embedded metadata? Just returning a pile of rearranged pixels isn’t good enough. ThisService had to come to terms with this problem on the text-only level already by deciding on a manifest text encoding (UTF-8); these other things bring much harder questions.

ThisService will be around for at least the shorter term because the new Automator isn’t a good IDE for creating scripting language services unless that scripting language is AppleScript, and there’s still a need for that. (Also, not everyone will run Snow Leopard in two weeks time.)

So, to recap. Snow Leopard, the new Services architecture and the new Automator are all good and advance the state of Services far more than any single change since their inception in NeXTStep over 20 years ago. These features finally put in place an official way provided by Apple to create Services without necessarily learning about Cocoa, and this is good for Services. There’s still a place for ThisService, and I intend to fill the gaps over time to make sure that it’s the best ThisService it can be. But I couldn’t tell you where exactly ThisService will go beyond those plans. I’m listening.

Comments

  1. Don’t abandon this useful app just because John Gruber seems happy with automator. Your app is much lighter weight than automator.

    Certainly please don’t stop working on it until it’s running bug-free in Snow Leopard. There are rumors from people who’ve used Snow Leopard that currently services created by ThisService don’t work in the new OS.

    By Maristic · 2009.08.28 00:49

  2. I’ve never said anything about “abandoning this app”; much of that post was spent saying I wouldn’t do that. I thought that it would be useful to clarify what my plans for it are since a large chunk of its functionality is both duplicated and improved in a more accessible application. Part of that is realizing that ThisService can still add something, and part of that is me wondering what could be added to it when the current issues are fixed.

    I just created a service in Snow Leopard (a simple Ruby puts STDIN.read.reverse) and it runs swimmingly. Another quick test service transferred from Leopard also runs just fine. You do have to enable the service to exist in the menu in Service preferences though. If I can, maybe I should automate that as well, or at least ask.

    I would consult with the Console and make sure that the updated version of $LANGUAGE in Snow Leopard still runs your script. If you can extract some details from those rumors, I’d be happy to look into it. It’s certainly possible that an improved service pipeline works subtly differently.

    By Jesper · 2009.08.28 07:02

  3. Sorry if I came on a little strong, but you did say:

    the guy who asked me to write ThisService in the first place has basically taken the stance that the new version of Automator that will allow for direct Service creation is good enough

    which made me worry about how relevant you thought your app was these days.

    I didn’t realize that in Snow Leopard, the service preferences were set up so that “Keyboard” preferences actually control whether or not services show up in the services menu (rather than just their keyboard shortcuts as was the case previously).

    That explains why services created with ThisService weren’t showing up. Definitely something you need to make sure users understand.

    By Maristic · 2009.08.28 22:57

  4. I also said that “since [that thing] I need to clarify what will happen”, and then spent the rest of the post doing so. :) It’s probably as relevant as ever, it’s just not the only or best choice for a subset of its tasks any more.

    You’re right that I should make sure people understand this, which is why the ThisService web site now details this.

    By Jesper · 2009.08.28 23:42

Sorry, the comment form is closed at this time.