No Clean Feed - Stop Internet Censorship in Australia

Ryan Booker.com

Developing games, applications and websites

Followup on App Store Pricing and Developer Payments

 | 2009-12-02 06:52:59 UTC | Tagged with: apple, app store, payments, pricing

I received a message from Apple today, in response to an earlier post of mine. I've reproduced it bellow:

Hello

Your assumptions on UK VAT are correct; the iTunes Store sales prices 
in the United Kingdom are VAT (Value Added Tax) inclusive, as are any 
other goods sold in the UK. This is required by law, not by Apple policy. 
You can refer to the government tax website www.hmrc.gov.uk for an 
understanding of VAT laws. Every customer in the UK expects that VAT 
is included in their price, so this is not unusual for them.

To the contrary, USA customers are used to seeing sales taxes added at 
the time of checkout, and not included in the sales price of an item. This 
is how the iTunes Store reflects taxes - the same way customers are 
accustomed to seeing it as they would in any other store in the USA.

This is address in the FAQs on iTunes Connect, as well as explained in 
detail to anyone who emails iTStax@apple.com.

Kind regards,
[redacted]
iTunes Royalty Accounting

Fixing the App Store Review Process Is Easy

 | 2009-08-27 00:19:32 UTC | Tagged with: app store

The App Store approval process should be wholly automated and solely technical.

Autotest Your Rails Apps

 | 2009-06-23 11:09:17 UTC | Tagged with: xp, agile, ruby, rails

Do this:

$ sudo gem install ZenTest autotest-rails autotest-fsevent autotest-growl redgreen

Edit ~/.autotest (create it if it doesn't exist) and add the following:

require 'autotest/fsevent'
require 'autotest/growl'
require 'redgreen/autotest'

If you want autotest to skip certain paths, you can add something like the following to ~/.autotest as well (thanks to Bitcetera):

Autotest.add_hook :initialize do |autotest|
  %w{.git .svn .hg .DS_Store ._* vendor}.each { |exception| autotest.add_exception(exception) }
  false
end

Then run autotest for your rails app

$ cd myrailsapp
$ autotest

Update: I've noticed that autotest seems to require complete restarts for similar reasons to the rails server. If you don't restart it, it will report a slew of false errors.

Tar2RubyScript, RubyScript2Exe and wxRuby

 | 2009-06-15 11:08:44 UTC | Tagged with: ruby, windows

Recently, I needed to write a quick proof of concept Windows app. Not wanting to install Windows on my Mac or work on the POS Windows box over there (points to shitty box), I went in search of a way to write Windows apps on OS X.

I found Tar2RubyScript, RubyScript2Exe and wxRuby which let me use Ruby, any gems I needed and creates an app with native widgets. As a final step you can 'compile' on the Windows machine and it creates a (rather large) Windows executable file. Once the app is bundled, it can be distributed to any machine without the need for Ruby to be installed.

There was a hitch, however. Tar2RubyScript and RubyScript2Exe no longer worked and hadn't been updated for a few years.

Well, now they work:

Enjoy.

On App Store Pricing and Developer Payments

 | 2009-05-05 07:41:21 UTC | Tagged with: apple, app store, payments, pricing

I had a rather long and messy discussion with Garret Murray on twitter today, after he expressed some concerns regarding apparent discrepancies in App Store developer payments. I think the confusion can be put down to two issues:

  1. Apple is less than transparent
  2. There is a minor misunderstanding with regard to sales taxes

On Transparency

The only official word is that developers receive 70% of App Store profits. Without any further details, many developers make the reasonable assumption that this equates to 70% of sales. After all, Apple made a big deal of covering all the costs for us. Unfortunately, a quick look at your monthly financial statements scuttles this idea.

Tier 2 pricing is $1.99 USD in the US, and £1.19 in the UK. So, we might expect the following payments in our financial statements:

$1.99 * 0.7 = $1.40
£1.19 * 0.7 = £0.83

What we find is a UK payment of only £0.72. Bastards.

On Sales Taxes

Sales taxes are applied to the price of goods and services. They are collected by the seller and remitted directly to the government, having no relationship with the seller's income tax obligations.

There are two ways to apply sales taxes. They can be included in the list price or applied at the register. For example, Europe and Australia include the tax, but some states in the US apply it at the point of sale. However applied, when considering profit margins and pricing the seller only cares about the base price. That is, the price not including sales taxes. How the final sale price is displayed is a semantic issue and the result of local laws.

So What Happened?

My educated guess is that Apple withheld sales tax (VAT of 15%) from the UK payment. A quick calculation confirms this as a definite possibility, assuming tier prices already include any applicable sales taxes. That is, the tier price in this case is 115% of the base price.

Base Price  = Price * 100/115
            = £1.19 * 100/115
            = £1.03

£1.03 * 0.7 = £0.72

This satisfied me. However, Garrett wondered if Apple is reducing the price in other regions to absorb the sales taxes. I doubt it, but we really don't know and that's the biggest issue. There doesn't appear to be any information available on exactly how tier prices were converted from USD.

My guess? When the tiers were priced, Apple used the current exchange rate to convert $USD to £ then added 15%. Of course, without word from the mother ship, we have absolutely no way of verifying this. If Garrett's right, the tiered pricing model is fundamentally broken; charging different relative prices in each region.

Clear as mud

Personally, I think Apple should release details of the pricing model and include a specific break down of developer payments in our monthly financial statements. However, I don't expect to find a story dissimilar to what I've described above.

UPDATE: A reply from Apple

Busy Bee

 | 2009-04-16 08:08:59 UTC | Tagged with: apps, diving, mixer

Things are busy here at the moment. Firstly, I have a new scuba diving app in progress for iPhone OS. With the back end work done and wrapped in a nice set of unit tests, I'm finishing off the interface, which requires a lot more thought than either Air Depth or Depth Gauge. Secondly, I'm working on a large rails app for a friend's business, which is keeping me busy and hopefully fed for a while.

On a marginally related note, if anyone has a line on some research or film related diving work, paid or volunteer, let me know. I'd like to do some grunt work underwater for someone.

Depth Gauge Now With More Air Depth

 | 2009-03-22 06:03:06 UTC | Tagged with: apps, depth gauge, air depth

I've submitted a new version of Depth Gauge to the iPhone App Store. Other than being recompiled for OS 2.x backward compatibility, this update brings an enhanced version of Air Depth's EAD calculator. The Depth slider's range is now tied to the MOD of the gas.

Version 1.1 of Air Depth has also been submitted. Other than recompilation for backward compatibility, this is a cosmetic update.

Update: Both updates are now available on the iPhone App Store.

Backward Compatibility

 | 2009-03-17 13:18:20 UTC | Tagged with: apps, air depth, depth gauge

A little research by Arstechnica revealed that a significant portion of the iPhone community—around 45%—have not yet upgraded to iPhone OS 2.2.1. In light of that, the next release of both Depth Gauge and Air Depth will be compatible with all versions of iPhone OS 2.x.

Depth Gauge 1.1 in the Queue

 | 2009-03-10 06:26:19 UTC | Tagged with: apps, depth gauge

I've submitted Depth Gauge 1.1 to the App Store. This update incorporates Air Depth allowing MOD, END and EAD calculations from within one application. Air Depth is still available and can be considered a 'lite' version of Depth Gauge.

Update: Depth Gauge 1.1 is now available from the iPhone App Store (it may take a few hours to trickle through to your local store).

Get Dropbox

 | 2009-03-03 07:37:42 UTC | Tagged with: useful stuff, referral link

Just a quick note, I've been using a great little app called Dropbox to sync documents etc between multiple computers. It's seamless and works on Mac OS X, Windows and Linux. If you sign up with this link we'll both get extra free space.

Finally

 | 2009-02-26 00:36:19 UTC | Tagged with: apps, air depth, depth gauge

Air Depth and Depth Gauge 1.0.1 have finally gone live on the App Store. The biggest change is that both now share a lot of code (in preparation for Depth Gauge 1.1), however the visible changes are:

  1. The Nitrogen slider's visibility is controlled by a new setting: "Show Nitrogen %".
  2. New gas icons replace the labels to the left of each slider.
  3. Localización española.

Depth Gauge 1.1 is almost ready for publishing. I'm just waiting on one last piece of localised text and for the resurrection of my Mackbook Pro. The big change for 1.1 is the inclusion of Air Depth, allowing you to use both tools from the one application. The free version of Air Depth will of course still exist and could be considered a lite version of Depth Gauge.

WARNING: MacFUSE, Disk for iPhone

 | 2009-02-24 15:22:41 UTC | Tagged with: rant

A friendly warning. I wanted something to mount my iPhone via the USB cable. I found Disk for iPhone, a MacFUSE file system.

Of course, this could be a remarkable coincidence; it seems odd that this would happen; but my MackBook Pro is now a brick. So stick to Air Sharing until I have more information.

Update: I have my MBP back and working. The Logic Board was fried. I suspect this was a remarkable coincidence and I have since started using Disk for iPhone again. It is working perfectly. However, I can't claim with any degree of certainty whether or not it had anything to do with my MBP's sudden demise.

Inconsistency Upsets Me

 | 2009-02-21 02:00:30 UTC | Tagged with: apps, depth gauge, rant

So today version 1.0.1 of Depth Gauge was rejected by Apple. Why? Because it contains a disabled slider control. A control disabled on purpose and for good reason. A control included and displayed to the user for good reason.

According to the rejection letter, Depth Gauge was rejected for two reasons. Firstly, it doesn't do what it claims in the release notes. This is, of course, utterly wrong. It does exactly what it claims.

Secondly, apparently you aren't allowed to disable or automatically update slider controls. Say what? No, the HIG doesn't mention that. No, no other documents I can find mention that. Oh and the SDK explicitly supports both things. Which you'd expect, seeing as they're useful features particularly in the way I'm using the controls.

By far the worst aspect of this is that version 1.0.1 has been in the queue for about three weeks, for only cosmetic changes. That's right. This functionality was in the original version. It has already been approved.

So what's a poor boy to do? Send a nicely worded, if mildly abrasive, email to Apple and in the meantime, try to come up with a work around that doesn't confuse users.

Update: I've seeded new versions of each app.

I ♥ the Pragmatic Programmers

 | 2009-02-19 04:05:47 UTC | Tagged with: xcode, tips, mac, iphone, development

For those of you new to Mac/iPhone/Xcode development, I highly recommend two new screencast series from The Pragmatic Programmers: Becoming Productive in Xcode, and Coding in Objective-C 2.0.

The four screencasts provide a slew of coding and productivity tips ranging from memory management, to shortcut keys and build automation.

My favourite tips were the git versioning script, clang static analysis integration and the explanation of Objective-C memory management (the clearest explanation I've encountered).

Screencasts seem to be the perfect way to relay this type of information.

Depth Gauge and Air Depth 1.0.1 in the Pipe

 | 2009-02-11 03:41:10 UTC | Tagged with: apps, air depth, depth gauge

New versions of Depth Gauge and Air Depth are in the publishing queue at the iPhone App Store.

New in this version:

  1. The Nitrogen slider's visibility is controlled by a new setting: "Show Nitrogen %".
  2. When visible, the Nitrogen slider is completely disabled and faded.
  3. New gas icons replace the labels to the left of each slider.
  4. Localización española

Updated: Apple is taking a good long while to approve this update, in the meantime I've added Spanish localisation.

Depth Gauge Released

 | 2009-02-11 03:40:16 UTC | Tagged with: apps, depth gauge

Version 1.0 of Depth Gauge, an operating depth calculator for iPhone and iPod touch, has been released.

Aimed at technical divers, Depth Gauge calculates Minimum Operating Depth, Maximum Operating Depth, and Equivalent Narcosis Depth1 for a specified breathing gas mixture and maximum partial pressure of oxygen2.

Get Depth Gauge from the iPhone App Store.

  1. Supports both metric and imperial units.
  2. Depth Gauge is a useful tool for double checking gas requirements, but should not be used in lieu of your own calculations or to exceed the depth limits recommended by your dive association's standards.

Air Depth Released

 | 2009-02-11 03:39:46 UTC | Tagged with: apps, air depth

Today marks the release of Air Depth, an equivalent air depth calculator and my first app for iPhone and iPod touch.

Aimed at divers using Nitrox gas mixes, Air Depth can be used to calculate the Equivalent Air Depth1 of your mix, allowing the use of air based tables for planning your dive.

Get Air Depth from the iPhone App Store.

  1. Supports both metric and imperial units.

Built Website

 | 2009-02-11 03:39:12 UTC | Tagged with: admin

I've finally built a website and removed the postit! note that occupied this space for the past seven years.