Installing Leopard on the G4 Cube

CubeLeopardHeader.jpg

The PowerMac G4 Cube, arguably the coolest computer on planet Earth, is not supported by operating systems later than Mac OS X 10.4 Tiger, but there are many reasons you may want to run a later system. For me the main incentive to upgrade was that Apple dropped Tiger support with the release of iTunes 10, which means a Cube on 10.4 can not partake in the wonders of Home Sharing.

The minimum system requirements for installing Leopard on a PowerPC based Mac is an 867 MHz processor and 512 MB of RAM. The memory requirement isn't really a problem since the Cube supports up to 1.5 GB, and you wouldn't want to run Leopard on any less than 512 MB anyway. The processor speed requirement, however, is a problem since the fastest (unmodified) Cube runs at 500 MHz. Luckily there is a way to fool the Leopard installer's system requirements check by temporarily modifying the processor speed reported by the firmware.

Back up your Tiger

First off you'll want to create a bootable backup of your internal disk on a firewire drive. Do this using SuperDuper! or a similar tool, and make sure you can really boot from the backup drive.

No really, do not go on until you have succesfully booted from your backup and made sure it works.

Set the startup disk

CubeStartupDisk.jpg

Put your Leopard installation disk in your DVD slot, or copy it onto a firewire drive if your Cube can't read DVDs. Then set the installation disk as your Startup Disk in the System Preferences so that on next restart your Cube will boot from it and start the installation.

Modify Open Firmware

CubeOpenFirmware.jpg

Restart your Cube, and hold Opt-Cmd-O-F during boot to enter the Open Firmware prompt. You will now temporarily set the reported CPU speed to 867 MHz and then continue booting. To accomplish this you will type some commands on the prompt, Open Firmware will respond with an 'ok' message after each understood command. The reported speed will revert back to the original value after next reboot.

For single CPU systems type the following three commands exactly as shown.

dev /cpus/PowerPC,G4@0

d# 867000000 encode-int " clock-frequency" property

mac-boot

For dual CPU systems use the following five lines.

dev /cpus/PowerPC,G4@0

d# 867000000 encode-int " clock-frequency" property

dev /cpus/PowerPC,G4@1

d# 867000000 encode-int " clock-frequency" property

mac-boot

Continue with the installation normally, and eventually end up with a Leopard Cube.

CubeInstallation.jpg

Thanks to MacRob on CubeOwner.com for turning me onto this solution.

Launching the App Store from within your iPhone application

Today I decided to figure out how to launch the App Store application from within an iPhone application using the SDK.

It turns out this is pretty simple, but you have to beware of a few issues.
  • First and foremost, it doesn't work from the iPhone Simulator, in all probability since the App Store application is not available on the simulator.
  • Second you need to provide a valid URL to an application in the App Store. You can access the URL to an application by simply right clicking the Application in iTunes and selecting the "Copy iTunes Store URL" menu item.

Here is the core code needed.

[[UIApplication sharedApplication]
 openURL:[NSURL
  URLWithString:@"http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=291170459&mt=8"]];

The above URL points to my Hiragana application.

I then chose to store the App Store URL in the info.plist file under a key named TEBAppStoreLink, so that I can use the same code for any future applications.

I ended up with this method for launching the App Store with the URL in the info.plist file.

- (void)goToAppStore
{
  UIApplication *app = [UIApplication sharedApplication];

  // Get the url from info.plist.
  NSString *appStoreLink = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"TEBAppStoreLink"];

  // Open the url if it was available.
  if(appStoreLink){
  [app openURL:[NSURL URLWithString:appStoreLink]];
  }
}


What really happens is that Mobile Safari is launched with the provided URL, and upon realizing that the link is an App Store link it in turn launches the App Store application.

Of course, if you provide any other URL it just opens in Safari as usual. I haven't tested what happens if a YouTube URL is used, but I imagine the YouTube app would launch. That, however,  is not the problem i set out to solve today.

Japanese navy flag and the App Store reviewer backlash, an apology

As you may remember from my previous post Analyzing App Store sales data, the vast majority of sales I've seen for my iPhone applications have been in the US market. 

My applications have been available for well over a month now and I had been wondering why I barely saw any reviews in the store. As it turns out, reviews are not combined worldwide but instead tied to the store the reviewer is in. This makes sense I suppose, avoiding any language problems. Sadly there is no way for a developer, as far as I can see, to get a summary of the reviews left worldwide. Instead you have to go into each and every store to see if any reviews have been written for the specific markets.

I just realized this fact the other day when I switched over to the US iTunes store to see what movies are available for rental there. I then did a search for my app Hiragana and noticed that all of a sudden there were a couple of reviews that I hadn't seen before. Almost none of them positive!

My applications are marketed towards students of the Japanese language, and apparently people were taking offense with the Japanese navy flag that I was using both for my icon graphics and as a background image for the flash cards in my applications.

 Version 1.0 look

Version 1.0 look

Some review excerpts:

"I don't know if you know what it means but it is like using Nazi flag for learning German application icon."
"Are you even aware of the gross political incorrectness of that imperial military flag you're using as an icon and background? People don't even dare fly that thing in Japan anymore."

Read more reviews here (App Store link, make sure you are in the US iTunes store)

The second review above hits it on the spot. I was not at all aware that the flag I was using is considered politically incorrect. In my eyes it is a very neat design, I even bought a jacket featuring it as a design element when visiting China last year. I guess now I know not to bring that jacket when going across the Atlantic to Aaron Hillegass' Cocoa Bootcamp at the Big Nerd Ranch this winter (more about this in a later blog post). 

I did know the flag was/is used by the Japanese navy and i know that the Japanese committed a bunch load of horrible war crimes during WWII, but it never crossed my mind that people may equate it to the nazi flag. Is this really true? Wouldn't the App Store staff have considered this before clearing the applications for release? Feel free to leave your thoughts in the comments section, I would really appreciate it.

Measures taken

Of course I could not let the current state stand, so here are the measures I have taken to try to rectify the situation.

  • Redesigned icon
  • Removed card background
  • Half price during the full month of November!

Also I would like to express my apologies here to everyone offended by my using that flag in my applications.

Shameless plug

Introducing version 1.1 of my Hiragana and Katakana apps.

Now containing:

  • 100% less Japanese navy flags
  • Refined transition animations
  • Other minor fixes
 Version 1.1 look

Version 1.1 look

These have already been available for a couple of days, and a few more positive reviews have trickled in. If you own the previous versions i recommend getting them updated via the App Store, unless you really want to hang on to that navy flag of course.

If you have avoided purchasing these applications for any reason, now is your chance to get them at a discount; $1.99 as opposed to the regular price of $3.99. Get them at the App Store.

Oh, and don't forget to leave a review in the store if you feel like it. Thanks!

Analyzing App Store sales data

I am currently selling two applications on the iTunes App Store. Hiragana and Katakana are educational applications aimed at the novice students of the Japanese language. Hiragana and Katakana are also the names of the two Japanese character alphabets my applications focus on.

Apple provides sales data for applications sold via the App Store, but the data is presented in the most unintuitive way possible, as plain data tables. This makes it extremely hard to get a view of sales performance, so I dropped the data files for my first three weeks of sales into my favorite data analysis application and ended up with the following insights. Click the images for higher resolution.

Sales Growth

Hiragana was first available for download from the App Store on 20th of September, with Katakana following on the 27th. In less than three weeks 266 units have been sold with Hiragana representing the majority of sales. The last week had the highest sales with a combined 126 units, 71 of which were Hiragana and 55 were Katakana.

Biggest Markets

Close to half of the sales were in the US market (122) with Germany, Canada, Japan and Australia being the other regions with more than ten sales each. The long tail of stores selling less than ten units represents 85 sold units, with 11 stores clocking in at one sold unit each. I doubt I'll ever see any profits from those markets as I need to sell approximately 100 units in a store to reach Apples minimum amount of $250 for royalty payout.

The information above is based on the weekly stats reported by Apple. Apple also provide daily statistics, but you have to grab them while they're fresh, only the last 7 days are available. I was out of town for a little over a week and forgot to download a few days worth of data. Going forward I'll try to store every day and return with a more detailed analysis. It should be interesting to se the daily trends. I would expect weekends to lead the sales since that's when people may have the extra time to play around with their iPods and iPhones. We'll see.

iTunes application icon in Ad Hoc distribution

A few weeks ago I started a beta program for my iPhone application using the official Ad Hoc distribution model, allowing my beta testers to install early versions of the application by simply dragging it into iTunes. It's all very convenient, but it bothered me that my application showed up under the Applications section of iTunes with a boring black generic icon.

Luckily there is a simple fix for this.

What you have to do is prepare a 512x512 pixel JPG image, rename it iTunesArtwork, without extension, and then copy it into your application bundle. You access the contents of your application bundle by right clicking the .app in Finder and selecting Show Package Contents, then just drop the image in there next to all the other stuff making up your application.