All posts by mike

I haven’t had a chance to write any blog posts last week while I was at WWDC, but I had a great time and learned a lot. This may have been the most important WWDC in recent years.

While last year’s WWDC focused primarily on iOS, this year’s conference was about equally split between iOS 5 and Mac OS X Lion. Both systems share some major enhancements including iCloud storage and Objective C runtime improvements that make memory management easier and a lot faster. I can’t write about much of what I saw, since everything except the keynote is under NDA. I will say that I’m running iOS 5 on my iPad and Lion on my MacBook Air and I’m very happy with both and find them stable enough for regular use. I haven’t installed iOS 5 on my iPhone, though.

On Sunday I went on the annual bus Pilgrimage to Apple’s headquarters in Cupertino. As always, the only thing we were able to see was the Apple company store. I took advantage of it to pick up a USB Ethernet adapter for my MacBook Air, since large downloads aren’t allowed over wireless connections during WWDC. I was pleasantly surprised by how fast the MacBook Air USB adapter is and how it just works without any fuss, unlike USB ethernet adapters I’ve used in the past.

1 Infinite Loop

WWDC isn’t all work. There are also a few fun events, starting with Tuesday night’s Apple Design Awards and Stump The Experts. One highlight of the conference is always the Thursday night WWDC Bash. Since the Bash moved from Apple’s campus in previous years to Yerba Buena Garden across from Moscone Center, Apple has been getting major bands to perform at the Bash. In previous years they had Ozomotli, Barenaked Ladies, Cake, and OK Go. This year they got Michael Franti & Spearhead for a great show.

The conference ended at noon on Friday, so I took advantage of the rest of the day to enjoy San Francisco. I walked from Moscone to the Ferry Building & took lots of pictures, which you can see here. I only brought my Canon G12, since I didn’t feel like lugging the D90. I’m very happy with the results, both for still photos & videos.

After Sugar Rush Free was approved, I discovered it was using the wrong leaderboard name to submit scores to Game Center. I just submitted a quick update (version 1.0.3) which fixes it. Hopefully it won’t take too long to approve.

The full version of Sugar Rush will be free this Memorial Day weekend, starting Friday May 27 through Sunday May 29. The ad-supported version is still in review and hopefully will be approved when the full version reverts to its regular price of $0.99.

Our early sales for Sugar Rush were very low, despite a big PR push.  We had a problem on the first day when the screen shots disappeared for a few hours after I tried to update the description & screen shots. Second day sales were even worse.

However, I noticed something very interesting: the number of users in Game Center and the number of users reported by Flurry Analytics were at least 3 times the total number of sales reported in iTunes Connect. At first I thought the iTunes reports were delayed, but a google search revealed that there are lots of pirated copies available. If the numbers are accurate, this means there are at least 3 or 4 times as many pirated downloads as we had legal sales.

I’m amazed and disappointed that an app can be that widely pirated after only two days of sales, especially when the legal sales were lackluster.

As a result I’m very unlikely to develop any future iOS apps, since it looks like I can’t make a living on app sales.

UPDATE: according to a source, the illegal copy got 2000 downloads, which is a lot more than 4x the number of legal downloads.

Sugar Rush

For the last 2 months I’ve been working full-time on Sugar Rush, my new iPhone game. It’s finally going to be released on Tuesday, May 10. We now have a new company, Notion, founded by myself & Patrick Mandia to market Removr & Sugar Rush, as well as other apps we develop in the future.

Thanks to Jonas for designing the original Flash game and providing the graphics for the app.

We’re now designing the iPad version, which will be a separate app since we want to take advantage of the larger display and provide an alternative to accelerometer control, which can get tiring with an iPad.

Since I’m preparing to release a new app next week, I wanted to make my MC Development site focus on software and services, so I moved my personal blog off that site. One major goal was to maintain all of my existing posts and preserve all of the old permalinks, which I accomplished.

Here’s how I did it.

The first step was to do a clean install of WordPress on this site. Meanwhile, I went to my old site and exported all content at /wp-admin/export.php. When it finished exporting, I returned to this site and imported the XML file from the last step at /wp-admin/import.php. Since the file was huge, the import took several minutes. When it finished, all of the posts, pages, and comments were intact. Finally, I had to make sure I installed & enabled all of the appropriate plugins at this site.

To preserve the old permalinks, I had to add a few rewrite rules to the old site. Since I’m using nginx, I added the following lines to my nginx.conf file:

# redirect permalinks to

rewrite ^/blog/ last;

# all other requests go to WordPress
    if (!-e $request_filename) {
	  rewrite ^(/20../../../.*)$$1 last;
      rewrite ^.*$ /index.php last;

location ~ /.ht {
    deny  all;

The first rewrite rule does a simple redirect of to this site.

The second rule is a bit tricky. I’m using permalinks of the form /%year%/%monthnum%/%day%/%postname%/ and I wanted to redirect only those permalinks and nothing else to this site. The first part of the rule, ^(/20../../../.*)$ matches 4 characters starting with 20 (since my earliest posts are in 2002), followed by a slash, followed by two more characters, another slash, two more characters, another slash, and any number of characters. The second part of the rule creates a URL at this site using the matched characters.

The final rewrite rule simply passes anything else to WordPress.

If you’re running Apache, you would have to use similar rules in your .htaccess.