Yesterday, a workshop floor build of ThisService produced the first service with more intimate interplay with Snow Leopard’s service architecture. A few hours later, John Gruber, ThisService’s instigator, received a copy of ThisService 3.0 beta 1.
With the smallest possible margin, ThisService produced a Snow Leopard ready service before Snow Leopard went out of style. I know I could have, should have done this a long time ago. It’s a long story; one that involves trying to work out what else to do with ThisService besides adding Snow Leopard service support. It is the paradox of choice in action. We apologize for the inconvenience.
What’s already done in ThisService 3.0?
- Support for service icons. Snow Leopard and Lion show icons next to the services in the Services menu. Even beyond that, they appear on the service bundle you have to install.
- Support for “required context”. This is the ability to say that this service should only show up if the input has a specific writing system, a specific dominant language, contains a specific type of detected data (email, URL, address, date and/or file path) and/or has a maximum number of words, or that the service should only be available from a particular application. The services architecture supports a number of combinations of these rules, but at least initially, 3.0 will only support one combination. The backend code is ready to produce combinations, but the UI gets very involved.
- Creating pre-enabled services. Snow Leopard only pre-enables services if you write out the “required context” information (even if you don’t require anything) and ThisService now does this.
- More information available to the service script about the environment in which it runs.
- The service skeleton (ThisService’s glue that in addition to the service script makes up the service) is now a lot smarter about pumping data when you’re feeding it large data sets. The previous approach was, to put it mildly, naïve. Naïve in a way that seemed to work for the vast majority of cases, but still not really correct.
What’s left to do?
- Hooking most of the application back up. I’ve been performing some spring cleaning.
- Possibly upgrading previous services to Snow Leopard services by providing a new mode where you pick a ThisService service and supply additional data.
- Updating the documentation.
- Releasing ThisService 3.0 as open source under the BSD license.
A few things will be going away. I’m removing the shortcut box, since you can change the shortcut (and keep changing it) inside the Keyboard system preference panel and since (due to that) I consider it a bad practice to distribute a service with a shortcut already set.
I am also removing support for Mac OS X 10.4, Tiger. I am estimating that fewer than 20 regular ThisService users are afflicted by this change. By taking the step up to Leopard as a minimum I’ve been able to take advantage of many small improvements to make the application better and easier to maintain. There’s also fewer and fewer dividends for any pre-Snow Leopard version.
If you want to beta test ThisService 3.0, contact me at thisservice, commercial at symbol, wafflesoftware dot net.
ThisService 3.0 is dedicated to Aaron Swartz. Scraping is not a crime.