Monday, April 27, 2009

A Letter To Senator Collins of Maine on Pandemic Flu Preparation

The Nation with Know-Nothings Fought Pandemic Preparedness reminded me that Senator Susan Collins of Maine (R) trumpeted that she took the lead role in stripping the Economic Stimulus bill of pandemic flu preparation. Comically and tragically, nature has "conspired" to make Republican complaints about preparing for extreme events, e.g. Bobby Jindal against volcano monitoring and now Susan Collins against pandemic flu preparation, look even more backward than before these events happened.

So I wrote Senator Collins this letter and I encourage you to do the same:

Mrs Collins,

Since you were the primary proponent in the Senate of stripping the Economic Stimulus bill of money for pandemic flu preparation, now that governments all over the world are actually confronting a possible pandemic flu, I want to know if you feel good about your irresponsible actions in order to play politics? My wife and I considered today whether I should commute to my job in NYC as a precaution against any possible outbreak, it doesn't take long to consider the massive financial impact a full blown outbreak would have on the economy if everyone stayed home because of potentially contracting a fatal disease like this swine flu.

I expect you to denounce your former actions and get ahead of this issue by introducing the pandemic flu portion of the Economic Stimulus bill as it's own legislation now that you can see first hand what could happen if a flu pandemic hits near panic proportions. Just look at the footage from Mexico of soccer games, the countries most popular sport, played in an empty stadium, and office buildings empty, and apply that to the US. Thankfully, it looks like DHS and the CDC are ahead of the swine flu in the US, but the next time we might not be as prepared or able to respond in an appropriate manor because those agencies don't have the funds to meat the threat.

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 tangerineelement.support at gmail.com. 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.

Conclusion
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.

Update
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?

Saturday, February 21, 2009

How Apple and iPhone Jailbreakers Can Get Along

Full Disclosure: iTimeZone is on the App Store, so I leave it to you to decide if Apple as our application distributer affects this opinion.

Ready...Fight
It's been in the news a lot recently that Apple wants iPhone jailbreaking to not be legal. You can read all the documents linked through the Engadget article if you care, I have only skimmed Apple's response, and the arguments are pretty simple:

EFF: We bought the device, it's the consumers, they should be able to do what they want with it.

Apple: Jailbreaking violates our copyright, the DCMA, and we get millions of support calls from jailbreakers when the software is broken. Plus, regular people who view a friend's jailbroken iPhone, aka a pirated iPhone, could think that crappy experience is the real iPhone experience. In other words, a jailbroken iPhone is just like a Folex (aka fake Rolex) you buy in Times Square.

Analysis
This post apparently containing a letter from Cydia (jailbroken iPhone App Store equivalent) to the US Copyright office is interesting. Their arguments all amount to the way I have classified the EFF position. However, it does remind that there are people (I remembered I knew one after reading it) that love the iPhone except for something here, something there. Some choose to jailbreak. It would be intellectually dishonest, as that letter is, to suggest that all or most jailbreakers are just trying to make legitimate changes to their iPhone when everyone knows jailbroken iPhones/iPod touches are running pirated software from Apple's App Store as I found out first hand yesterday. The image on the left is from a blog listing free Appstore games and apps (misspelling on Appstore is the sites). iTimeZone is $1.99 on the App Store, that post was from November, and I haven't seen the current version 1.2.1 pirated yet.

Where do Apple's rights ends and consumers begin? As I learned from a trio of lawyers at the Intellectual Property 101 session at NY Comic Con (I know, real learning at a comic book convention, who knew), what's copyrighted is the product that is being distributed, the whole work. If anyone thinks I have misunderstood this, please comment. As should be plainly obvious is that the iPhone is just a hunk of commodity hardware if it weren't for the software. As a product, you can't separate the two. Apple allows specific uses of their product, as a consumer, that is how you are allowed to use the product, those are the terms of sale. If you were individually negotiating with Apple, and you told them you wanted to break their software, which might break their hardware, after purchasing, they would most likely choose not to sell it to you. As a consumer, you are not entitled to buy any product on the market and do with it whatever you choose. If you don't like the terms of sale, don't buy the product. I am sympathetic to people that buy a product like the iPhone and don't understand its limitations and then choose to jailbreak when they have no other option. Well, they feel that way, their options are to live with it, sell the device and get another, or break the law.

We are all consumers, but we are not all producers. If you are only a consumer, your thinking is different, you feel you should be able to do whatever you want with the products you buy. As a producer, you are creating a work that you put on sale under specific conditions with specific intended usages. How can this fight end? Every device has "jailbreakers" and every producer of devices has to fight this battle. Is there an end in sight?

Proposal
Apple sets up the ability to register consumers' iPhones as jailbroken. Why would consumers do this? What is the incentive? We all know some consumers are jailbreaking their iPhones and then asking Apple for support anyway (aka they aren't taking personal responsibility for their decision), why wouldn't they keep doing that. I think Apple would have to offer a rebate to people looking to register as jailbreakers, something nominal like $15. Once registered, consumer loses full support from Apple. Reported hardware malfunction resolution is more restrictive then a real iPhone customer. Hardware damage caused by jailbroken software is not a fixable item. The rebate can't be so large that a majority of iPhone owners take the rebate and role the dice only to really want support from Apple in the end. If you take an unregistered device to Apple that is jailbroken, your warranty is voided immediately. Consumers can restore their jailbroken iPhone to the real iPhone OS by Apple for say US $50.

The situation as it is now isn't sustainable, their is mistrust between producers and consumers. Producers works get pirated, resulting in time spent enforcing their copyrights instead of on new or existing products. Consumers feel "cheated" that they can't do whatever they want with "their" product. The only way forward, even if you disagree with my specific proposal, is to attempt to restore trust on both sides by giving consumers more choice about their ongoing relationship with a producer. Just giving producers stronger laws to sue everyone that infringes isn't the answer.

Wednesday, February 18, 2009

iPhone App Ideas I Apparently Could Have Got Rich With

Rich in at least one case. In the past couple weeks, I have learned that a few ideas I was considering implementing for the iPhone had been done.

This is a simple matter of resources for me. I don't have infinite time to work on iPhone stuff, I do have a day job. I don't have deep pockets to fund additional development resources. I am also not looking for funding for iPhone projects. It just seems incredibly risky to, if you are a moonlighting indie, ditch a day job to work on iPhone apps full time on your dime or an investors when the economy sucks and app success is hard to impossible to predict. Plus, iTimeZone has taken a lot of time to get to the point it is, and I still feel like there is a ton to do. If I am not thinking clearly on this, please educate me in the comments.

Here are the app ideas I had most seriously considered.

Yo Mama (iTunes Link)
Middle of January, I was brainstorming about ringtone apps, what did I think could be done that could potentially hit the App Store jackpot, a Top 10 Paid app. The one idea that came to mind which didn't appear to be done was an app for Yo Mama jokes. I have always loved these things, and it felt like the perfect ringtone idea.

Well 100 Proof Software released their Yo Mama app on February 17, 2009, and it's right now #2 paid on the App Store. My implementation would have been considerably more sophisticated, which was part of the problem. I had set the quality level way to high for myself, if you look at Yo Mama (iTunes Link), it is an incredibly simple app. You might be looking at a few weeks of work. Congrats to 100 Proof on your success, you are digging in the gold mine now.

comiXology (itunes Link)
I have been going to NY Comic Con every year since it started. February 7th 2009 I was walking through the Expo hall when I see a large iPhone printed around a flat screen TV. I went over to talk to the guys, and they showed me the app, comiXology, I have wanted to build for a long time for both the Mac and iPhone. This kind of app was the reason I started looking at Mac development in the first place. That knowledge helped get iTimeZone out when the App Store opened.

Take a look at the app in iTunes, it shows you comic book titles coming out week to week, and helps manage which books are on your pull list. The app looks great, with services tied to the comiXology site. The only negative I had was the demonstrator I talked to at NY Comic Con was clearly nervous (shaky hands) and wasn't that familiar with the iPhone/iPod touch (e.g. double-tapping on table cell rows). Relax and learn your product, it looks like a winner.

Well the other negative I had was jealousy, but I was quickly over it. I haven't bought comiXology because I have stopped buying weekly books back in June. This was a budgetary and time management decision. Since I was mostly reading comics on train rides into and out of NYC, and I replaced that leisure activity with iTimeZone development and other production instead of consumption. If you are buying weekly comic books, then I strongly recommend you take a look at comiXology.

Conclusion
If you have an app idea that you haven't seen others do, move fast.

Update
I forgot to mention that comiXology has a Lite version for free to try. comiXology on Twitter responded to my blog post through Twitter to inform me of the Lite version. Apologies for the oversight, I had just told some friends about the Lite version before posting to the blog, but it slipped my mind when writing the post.

Monday, January 26, 2009

ClickToFlash - Stop Automatic Flash Loading in Safari

Daring Fireball posted about ClickToFlash, a Safari or WebKit plug-in that stops the downloading of Flash in the browser and currently shows a gradient instead. Click to load Flash if you want. While this is fantastic, and I wish it were built-in to Safari, the gradient isn't enough to know that it could be clicked. For example, if you go to the site for the upcoming MMO Star Wars: The Old Republic, all you see is a blank gradient screen. There is an open issue for this on Google Code, so hopefully in an upcoming release it's changed.

Update
When I was cleaning up the download, realized it came with the source code. I then cut and pasted the code from the open issue and put it into the _drawBackground method in the code, compiled, and replaced the installed plug-in with my custom built version. Problem solved, I now see Click To Flash centered in the gradient. Excellent!

If you want my custom version, click here to download. Source and the plug-in included, no warranties of course

Updatex2
Jonathan 'Wolf' Rentzsch has taken over ownership of the ClickToFlash project, and released ClickToFlash 1.1 today. This version never implemented the Click To Flash text, which was the change I made, with an image pictured left. The other big feature is a whitelist, so you can always load Flash on selected sites. This installer for this version will replace my custom built version if you installed that.

Sunday, January 25, 2009

GeoNames Web Service Crushed Under Load From Free iPhone App

The GeoNames blog posted today What to do against DDOS effects? They aren't suffering from a malicious DDOS attack, but a free iPhone game called iMob Online is using the GeoNames web service for data. The app has become so popular that the GeoNames free web service has been crushed under the load.

In my iTimeZone 1.1 Post-Mortem, I talked about the choice to use the GeoNames CSV files instead of the web service for city data because, in part, the web service took control of the user experience away from me and put it in the hands of a potential fickle network resource. I feel bad for the GeoNames and iMob teams, no one could really predict this on either side. It again highlights though the inherent risk of building a product around free web services with no recourse if something goes horribly wrong.

Wednesday, January 21, 2009

US Democracy Server: Patch Day Version 44.0

If you have ever read an MMO's patch notes (like the recent released World of WarCraft Patch 3.0.8, then the US Democracy Server: Patch Day Version 44.0 release notes are hysterical, or at least me and Michael Jurewitz did. Thanks for tweeting the link Mike.