Fake: “Mac OS X Web Browser Automation and Webapp Testing Made Simple.”

Version 0.2 just launched, and it be impressive:

Inspired by Apple’s Automator application, Fake looks like a combination of Safari and Automator and allows you to run (and re-run) “fake” interactions with the web.

Power Users will love Fake for automating tedious web tasks like filling out lengthy forms and capturing screenshots. Developers can use Fake for graphically configuring automated tests for their webapps, including assertions.

Like Automator and Safari got married and made the most beautiful baby. This is already The Best Thing.

E-Book Reader Eucalyptus Now Available on The App Store

Apple has made it right with developer James Montgomerie:

Earlier today I received a phone call from an Apple representative. He was very complimentary about Eucalyptus. We talked about the confusion surrounding its App Store rejections, which I am happy to say is now fully resolved. He invited me to re-build and submit a version of Eucalyptus with no filters for immediate approval, and that full version is now available on the iPhone App Store.

This hasn’t “fixed” any of the serious issues around the approval process, and it took them way too long to do the right thing, but I’m glad for James. Eucalyptus is an application that was obviously crafted with much care. Previously.

The App Store Is Fucking Broken Part XXXL

Apple has now rejected an application that allows users to remotely manage the popular Bittorrent desktop app, Transmission. Why? Because sometimes people use Bittorrent to bootleg things. In Apple’s own words:

this category of applications is often used for the purpose of infringing third party rights. We have chosen to not publish this type of application to the App Store.

Which means, “we choose to tell you to go fuck yourself” if you’ve just wasted hours/days/weeks of your life developing an app only to have it shot down on a whim.

Presenting Software Features and Understanding User Unrest

Adding features to applications is a constant trade-off between opposing forces. Sometimes adding to or changing software can be a hinderance both to the user and the developer in several ways.

Ego, Garrett Murray’s excellent iPhone application, was blocked by Google Analytics yesterday. Since support for GA is one of Ego’s advertised features, paying users are understandably upset. Garrett is a good developer, and I’ve been using his software for years (his application xPad was one of the first non-Apple bits of Mac software I ever purchased) but I think much of the user reaction to this issue was predictable and preventable.

Unlike many of the other stat-tracking widgets used in Ego, Google Analytics does not have an official API with which developers can retrieve data for use in applications. This means that to get the data at all, Ego has to use what I’d (not at all disdainfully) classify as a “hack”; Getting at useful information in an unsupported way. The problem with this is that the average user has no reason to suspect that Google Analytics portion of his $2 iPhone application may stop working without any prior warning. This is a case of the classic “stopped working for no reason” that developers hear all the time. There is a reason, and it’s a pretty simple one, but the user has no frame of reference for it. What’s more,the user has absolutely no reason to know the reason. It’s not their job. They just saw a feature list and clicked buy.

Here’s a screen shot of the features section of the Ego application page on the iTunes store:

ego-features

You can see here that the Google Analytics feature is listed right next to services with officially supported APIs, such as Feedburner and Twitter.

What this says to the user is “these features are equal, and just as likely to work” which we now know isn’t the case. A lot of applications do things like this, and the intent isn’t malicious- the average user just genuinely doesn’t know and doesn’t need to know what an API is, or what has one and what doesn’t.

Since there is no “official” way to include Google Analytics data, the GA widget is a trade-off between feature set and usability. Unofficial means that it’s more likely to stop working “for no reason.” Unofficial means that Google can change whatever they like whenever they like, and you just have to eat it, like Garrett is doing now.

He’s is obviously a smart guy, and I’m sure he weighed the pros and cons of including support for Google Analytics in the first place, but I’m also pretty sure he’s second guessing that decision at least a little bit today. This isn’t to say that he made the wrong one- I don’t think he did- but that the way in which application features are presented to users create expectations for those features that may have unintended consequences for developers.