Sunday, March 22, 2009

Silverlight 3 a tipping point, Mac development available

Nearly two years ago I asked Where are the Silverlight developer tools for Mac?. Well we have the answer, there is a plugin for Eclipse called eclipes4SL which allows Mac developers to write Silverlight applications.

Inflection Point
I am not vouching for these tools, I have installed them, but I don't know enough about the specifics of Silverlight (yet...) to make a claim either way, but the world has changed. With development tools in any form on the Mac, Silverlight as a long term cross-platform solution just became real.

Silverlight 3
I don't know if the Mac dev tools were out before Silverlight 3 was announced on Wed. March 18 at MIX09, but I found out about them through Tim Heuer's guide to Silverlight 3 features. Silverlight 3 addresses some more of my concerns for the environment. Native H.264 video/ AAC audio is included. Silverlight 3 applications can now run outside the browser, probably to compete with Adobe Air.

Evaluation Time
I recently started thinking about using Silverlight for a redesign of one of the day jobs primary .NET apps. The Silverlight 3 announcements, and I haven't even begun to process the actual development enhancements, make evaluating Silverlight an urgent day job task. The mental calculus also got a lot easier between Adobe Air and Silverlight with the alarming resource usage of a couple popular Adobe Air apps, Twhirl and TweetDeck, documented in this tweet and this one.

Monday, March 16, 2009

App Store Review System Still Broken

I have been extremely frustrated by the App Store review system. At first anyone could post anything they wanted about your app, whether they bought it or not. In September 2008, Apple stopped accepting reviews for apps that the reviewer hadn't bought. Good right, but then Apple didn't actually go back and remove old reviews recorded without owning the app until late February 2009! Great, another baby step toward a more fair system to app producers and consumers. But it still wasn't fair to app producers for a number of reasons:
  1. Apps were getting rated on deletes from devices. No way to log a rating without deleting.
  2. App rating distribution, meaning how many times your app had been rated a particular star level, weren't visible
  3. Reviews and ratings had no visible date associated with them
  4. Reviews and ratings had no visible app version associated with them
  5. The relationship between reviews and ratings was unclear
iTimeZone All Ratings
What Changed March 10, 2009 - March 13, 2009?
Apple slowly trickled out an overhaul of the review system for the App Store. It has been very strange how this has been done. Bits of functionality here, more there. It seems by March 13th, 2009 (Friday the 13th, must be an omen) Apple started breaking out the distribution of rating scores by stars. In the screenshot on the left, current version means iTimeZone 1.2.1
These changes made great strides forward, answering at first glance all of my bullet points above. Sadly, I have to conclude Apple still has a slight miss here.
What's Still Wrong?
Here's why based on my analysis of the data for iTimeZone:
  • Average Customer Ratings do not include Customer Reviews. The only way the math works, that Average rating for all versions is 3 stars, is if you exclude customer reviews. A 3 star rating has to at least fall between 3.0 and 3.25. Since we don't know Apple's rounding policy, and we know Apple does half-stars, it is entirely possible anything between 3.0 and 3.49 is a 3 star rating. Luckily for this exercise, the average of iTimeZone's customer reviews is 4.26. That happens to be just enough to make the combing ratings and review score 3.5, yet iTunes only shows a 3 start average rating for all versions. Thus, the aggregate rating can't include customer reviews, only ratings. So Customer Ratings are averaged for the current version, and across all versions, but customer reviews are not, they are only listed. If a customer took the time to write a review, surely that star score should be included in the ratings? That is just not intuitive at all. I would have to recommend at this point that if you write a review, you also leave a rating.
  • Tracking Reviews/Ratings by Version is too literal. The accepted convention for version numbers, and the one I am using follows Apple's generic versioning scheme. Major.Minor.Revision, X.Y.Z, 10.5.6, 1.2.1. Major means a platform release, minor means a feature release, revision means changes/fixes to existing features. Mac and iPhone apps are thought of feature stable when X.Y remains the same. This is not controversial, except the App Store is now boxing reviews by X.Y.Z. So reviews for version 1.2 of iTimeZone mean the current version doesn't have any reviews because the current version is 1.2.1, and there are no written reviews yet for that version. Current version literally means the one on sale, there is no intelligence behind it. This is going to result in developers being reluctant to release fixes quickly, and instead only take the version review reset hit when they are going to release features. The other possibility is gaming the version system so that the app gets updated, but the version number doesn't change so reviews don't get reset. I haven't investigated this thoroughly yet, but I am sure it has already crossed more than my mind. Sure, developers could try and game the review by version system the way I propose, but if Apple had clear rules posted on versioning and then bounced apps during review for adding features without upping the X.Y version, developers would get the hint.
But you don't take my word for it, download the spreadsheet in your format of choice and look at or mess with the data:

One More Thing..
I have real trouble drawing conclusions from data like this. Either people really like/love the app, or they just hate it. There is no middle ground. Even if you look at the ratings for all versions, the app is top heavy with 4 and 5 star ratings, but 1 stars are just as frequent as 2 and 3 star ratings. If you rate an app 1 star, you are saying it just flat out sucks, no mincing words. I would only give an app 1 star if it were a total failure at what it was doing. iTimeZone is not that. You may not like how some things are implemented, think things could be done better, but its not an out and out failure by any stretch. I haven't received any feedback from anyone that harsh, so if you think iTimeZone sucks, tell me why at at That said, 1 star ratings seem frequent enough I wonder if there isn't a systemic problem where users feel they have to go nuclear on an app.

I can only hope Apple further tweaks the system and fixes the problems I have highlighted. Given that it took 8 months from App Store launch to get the current changes pushed through and the amount of work they surely have ahead of them with iPhone OS 3.0, I am not very hopeful.

Since I wrote the bulk of this, iTimeZone has received 2 more customer ratings both 5 stars. So the current version has a 3.5, yeah for me, but it doesn't change the unintuitive disconnection between Ratings and Reviews.

Friday, March 13, 2009

Recommended Custom Keyboard Shortcuts in Mac OS X

It all started by listening to the Customizing Keyboard Shortcuts episode of the Apple Quick Tips podcast. In Mac OS X, you can do all sorts of keyboard customization, assigning hot keys to any menus you see, with a built-in System Preference panel. I have been using OS X for over 5 years now, and it was only since Feb 2, 2009 that I actually started using this powerhouse feature. I know there are power OS X users out there that, like me, didn't know what you could do with this funtionality, because they have whined on Twitter that something should have a keyboard shortcut. But you can do that yourself!

This is where you start

Click on the Keyboard Shortcuts tab:

You can start adding your own shortcuts now by clicking the + button, but let me show you the ones I recommend:

ApplicationMenu TitleShortcut 
All ApplicationsSystem Prefernces...CMD-SHIFT-,⇧⌘,
SafariMerge All WindowsCMD-SHIFT-M⇧⌘M
Microsoft WordSave As...CMD-SHIFT-S⇧⌘S
Microsoft ExcelSave As...CMD-SHIFT-S⇧⌘S
PreviewAdjust Size...CMD-OPTION-T⌥⌘T

Notes On Creating Your Own

  • Custom Keyboard Shortcuts only work on menu titles.
  • The menu titles you enter in system preferences have to match exactly what is in the menu, including the ... on Save As... for example.

Fixing A Bad Default Finder Shortcut
There is one default shortcut choice in OS X that I find either a poor choice or just outright bad design. In the system wide Save dialog box, ⌘D goes to the Desktop. This is great for quickly saving something. The catch is that in the Finder, ⌘D doesn't bring you to the Desktop, it Duplicates whatever is selected. By default, to get to the Desktop in the Finder, you type ⇧⌘D. I can't stand this mismatch in keyboard shortcuts, and now I know how to change it. There is a catch though. The Finder does not appear to be an application that the Keyboard & Mouse System Preference wants you to find. This is how you can.

  1. After clicking +, scroll to the bottom of the Applications list and pick Other...
  2. Navigate to Macintosh HD/System/Library/CoreServices/ (or whatever you have named the main hard drive)
  3. Double-click on Finder
  4. For the Duplicate menu title type ⇧⌘D and click Add.
  5. Click + again, then for the Desktop menu title type ⌘D and click Add.

Now you should have the Finder configured to match the Save dialog, and your Finder keyboard shortcuts should look like this:

Someone would wear a Java jacket?!? Really?