October 10th, 2013 § 0 comments § permalink

This blog is going into mothballs. Follow my new dev blogging exploits at bunnyhero dev 2013 series personal compublog.


RIP Steve Jobs

October 6th, 2011 § 0 comments § permalink

A Mac, an iPhone and an iPod mourn Steve Jobs' passing
Thanks for everything you brought to this world.

Exploring Flixel

March 7th, 2011 § 4 comments § permalink

exploring flixel
Flixel is a free, open source 2D game engine built in ActionScript 3, from Adam Atomic, creator of Canabalt and other games. I became especially curious about Flixel ever since the iOS version of Canabalt went open source at the end of 2010. Both the Flash and iOS versions of Canabalt use Flixel. I understand that the iOS port of Flixel is still early, and from what I can tell, documentation for the iOS port is essentially nonexistent as of yet.

Regardless, here is my plan:

  1. Learn Flixel and create a game
  2. Port it to iOS [EDIT: that is, port my game to iOS, using the Flixel iOS port that is in the Canabalt source]
  3. ???
  4. PROFIT!!!

…all while blogging about the experience, of course. At least, that’s the idea — no promises that I’ll actually get very far! If I get really ambitious I might even write a tutorial at some point.

First experiences

Getting started with Flixel was pretty easy, thanks to the “Hello, World” tutorials available on the Flash Game Dojo wiki (which appears to be the main documentation hub for Flixel). After that I wasn’t sure where to go next, since the documentation is a bit scattered and disorganized. I did find some great info on the Github project page and wiki, which oddly is not linked to from the Flixel home page (as I said, a bit scattered). Perhaps Flash Game Dojo is where all the action is supposed to be now? I’m not really sure.

What I’m finding most helpful right now are the very simple example games, complete with source code, provided by Adam Atomic, which are a great help to see how the framework expects things to be set up. The FlxTeroids source code is instructive, as well as EZPlatformer (which has a nice tutorial with it).

Despite the disorganization, there is a lot of good information out there, including the very active forums (which I’ve not yet explored).

A question of units

One bit of info I couldn’t find was what units the FlxObject class uses for velocity and acceleration. I did a quick experiment, and it turns out that velocity is in pixels per second, and acceleration is in pixels per second per second — all very sensible, but it wasn’t explicitly stated anywhere I could find. Similarly, the angle and angularVelocity members are in degrees (not radians) and degrees per second.

What’s next?

This has been a bit of a rambling blog post (I, too, am a bit scattered!). Next I decide on what kind of game to make (something very simple) and start making it! Along the way I will share what I’ve learned.

Stay tuned…!

An iOS dev comic

February 21st, 2011 § 8 comments § permalink

It’s a black art… if you can even get it to work.

Descriptive text in iPhone settings bundles

February 14th, 2011 § 1 comment § permalink

Back in the iPhone OS 3.x days, I would stare longingly at the Settings bundles in Apple’s built-in iPhone apps:

If an app wanted explanatory text in the Settings app, you pretty much had to make do with Titles and Group titles. Ugly.

It turns out that in iOS 4.0 and higher, Apple allowed for third-party apps to have descriptive text too. And I only found out about this last week (I noticed its use in the Ladidude app).

The longer descriptive text is called “Footer text” in Apple’s nomenclature, and can be attached to any Group. To add your own, do the following:

  1. Open your Settings.bundle Root.plist in Xcode
  2. Go to the group you want footer text attached to.
  3. Add a new Item to the Group and edit the key to be “FooterText” (you’ll have to type “FooterText” in manually):
  4. The set the value to whatever text you want to show up. If you need to insert linefeeds, type option-Enter.
  5. Now you can visit your app’s settings in the Settings app. It should look something like this:

If your app is compatible with iPhone OS 3.x as well, not to worry: the extra FooterText key is simply ignored on pre-iOS4 devices.

Simplifying wireless iPhone app distribution with PHP

February 7th, 2011 § 6 comments § permalink

iOS 4.0 came with the ability to distribute your ad hoc apps over the air, which is very convenient for testers. More details are available on Apple’s website. Unfortunately, doing this manually can be a bit of a hassle, partly because the everything in the XML manifest requires absolute URLs.

I’ve created a PHP script that makes this task somewhat easier.

A web server that runs PHP 5 with the following extensions:

  • ZIP
  • either MBString or Iconv
  • either BC or GMP or phpseclib


  1. Download and unzip the files into a new directory on your web server.
  2. Create a directory for each app you want to deploy (the directory cannot have any spaces in its name!).
  3. In this directory, put:
    • the .IPA file of your app, built using Xcode’s “Build & Archive” command (no spaces in the filename)
    • the .mobileprovision file (again, no spaces in the filename)
    • a 512×512 PNG file named iTunesArtwork.png (case-sensitive)
    • a 72×72 PNG file named Icon.png (case-sensitive)

    The directory structure should look like this:
    Directory layout for wireless app distribution PHP script

  4. Now visit the web page that corresponds to the directory where you unzipped the files. You should see something like this:

    with one entry for each directory.
  5. Visit the same page on an iOS device running iOS 4.0 or higher. You should be able to install the app simply by tapping on the corresponding “app” link. You shouldn’t need to install the provisioning profile separately, but if you do, it can also be installed via the web site by tapping on the “provisioning profile” link.

That’s it. I admit the code is a bit of a mess, as it was hacked together relatively quickly. I haven’t been able to get it working when there are spaces in the names of the files or directories. Perhaps someone else can fix that :)

This code uses the very useful CFPropertyList PHP library by Rodney Rehm to parse the Info.plist file that’s in the IPA, to extract all the info required by the XML manifest. That’s how the magic happens.

Download the files here.

Push notification head-scratcher, solved

December 21st, 2010 § 0 comments § permalink

So here I was, testing push notifications on various devices. I plugged in the old iPod touch (which had been out of juice for a few weeks) and ran the app on it in the Xcode debugger.

But something odd was happening. After my appDelegate called registerForRemoteNotificationTypes:, I was not getting any response callback at all; neither application: didRegisterForRemoteNotificationsWithDeviceToken: nor application: didFailToRegisterForRemoteNotificationsWithError: was being called. That’s right, not even an error callback.

Meanwhile, the code was working fine on my iPhone. A few quick Google searches didn’t turn up anything very useful, except for one suggestion to try installing another app from the app store that used push notifications. I figured that would at least be good for a test.

I launched the App Store app, and tried to download Boxcar. I immediately got this alert:

Alert: Cannot connect to the App Store. A secure connection could not be established. Please check your Date & Time settings.

The clue!

Aha! Of course. Because the iPod touch’s battery had died, its clock had been reset to 1969, and thus could not make an SSL connection to Apple’s servers. Setting the iPod’s clock to the correct data and time fixed the issue: push notifications were now working correctly.

I just thought I’d document this in the off chance that it might help someone else :)

Generating certificates for push notifications? Don’t use Chrome!

November 3rd, 2010 § 0 comments § permalink

Thank you again Stack Overflow, for telling me why the Apple Push Notification service SSL Certificate Assistant (on the iOS Provisioning Portal) kept rejecting my certificate signing request.

It turns out that for whatever reason, if you try uploading your certificate signing request using Chrome, it will fail with an error (Chrome bug? site bug?). So: use Safari (or Firefox, apparently, based on the comments)!

Plague: 1; bunnyhero: 0

October 25th, 2010 § 0 comments § permalink

So after almost 3 weeks I’m finally feeling close to normal. Whiskey tango foxtrot! Plague from hell.

That means there’s no way I could get anything approved for the app store before October ends. I suppose, in theory, I could get something ready to at least submit by then, but that means completing a whole game in a week’s time. It’s possible, but to be honest I’m not sure if I’m up to it.

October challenge week 1: ha! :(

October 8th, 2010 § 0 comments § permalink

I’m off to a terrible start, unfortunately :( This month started off very busy, with little time for me to work on the challenge, and now I’ve been struck down with some kind of plague that makes it very difficult to concentrate on anything for any length of time.

All I’ve got so far are two rectangles on the screen. In theory, this will become a gameplay prototype. In practice… it’s two rectangles on the screen.

I sure hope I get better quick. Not going to give up just yet. In the meantime, I think I’ll just go and have a little lie down somewhere.

viagra cialis trial pack
cialis generic 20mg
cialis 10 mg where to buy
viagra sales
generic cialis prices
generic propecia
viagra ireland
generic viagra 50 mg
levitra india
inderal overnight
buy strong viagra
cialis viagra cocktail
does generic viagra work
viagra cheap prices
us cialis online pharmacy
viagra pro online
buy viagra without prescription
sun pharmaceuticals india
uninsured cost of cialis
viagra gold
cheap sildenafil
generic cialas
brand cialis 20
cialis online nz
buy viagra usa
cialis soft tabs canada
tadalafil 20mg
viagra levitra cialis offers
.buy viagra
viagra price in india
viagra for sale australia
discount viagra
buy nolvadex
cialis 5mg
viagra levitra which is best
genaric viagra
ordering viagra onl
cialis no perscription
is levitra sold at walmart
order viagra from canada
viagra patent date
sildenafil citrate
100mg viagra
where to buy viagra in calgary
viagra super active
generic cialis
cialis 36 canada
where to buy genuine viagra online
genaric propecia
viagra video
cialis onlilne
cialis no prescrition
need prescription for viagra in cyprus?
cheep viagra
buy proscar
viagra for sale online
sildenafil online canada
european cialis
buy wholesale viagra
cheapest viagra
no risk pharmacy
levitra 10mg buy
levitra order
viagra canada free sample
ca i buy viagra online
cialis 20 mg
cialis men
cheap cialis generic online
what works as well as viagra
aftermarket viagra
cialis 40 mg
viagra suppliers canada
sildenafil citrate overnight delivery
redtube viagra
generic viagra 50mg
online viagra
where to get viagra online
Sildenafil citrate 50mg
Viagra 50mg pills
very cheap propecia
viagra over the counter walgreens
viagra prices walmart
viagra no prescription online
cialis 20mg price
viagra canada no prescription
viagra canada
viagra on line
cialis for daily use disount
Generic viagra
viagra no prescription
best viagra deals from India
canada customs and cialis
buy levitra online
buy viagra on line
cialis online
generic viagra
where to buy viagra in toronto
viagra professional
i need cialis
buy cialis
cialis online canadian pharmacy
viagra generic
Sildenafil Citrate
cialis fastest shipping
tadalafil dosage
cheap generic viagra pills
viagra prices
supreme suppliers cialis
viagra 4 pack
ed. trusted medstore in cialis
where can i buy finasteride
levitra 100mg uk
propecia generic price
status 365 pills
buy viagra no prescription
cialis doesnt work
cialis overnight
lilly cialis 20mg
buy cialis black
viagra free trial offer
purchase propecia
cialis paypal
Cialis 50mg price
viagra profesionals
black cialis
generic cailis
voucher cialis index
low dose cialis
best viagra online toronto
generic viagra
levitra buy
cialis without prescriptions
viagra quebec
viagra without a prescription
viagra costs walmart
nolvadex buy
tadafil cialis
cheap levitra online india
viagra express
sildenafil citrate
Sildenafil Citrate
cialis for sale canada
finasteride sale
cialis black
canada generic viagra
how to buy viagra from canada
1 mg propecia
is super active cialis a scam
cheapest cialis 20mg
cialis vs viagra
generic levitra overnight delivery
levitra generic
buy real viagra with a echeck
100mg Viagra
cialis 200 mg price
levitra canada
viagra 100 tablets
generic viagra soft tabs
Discount Viagra
ordering cialias
where to buy Propecia
30 day free cialis
ciali sell from usa
viagra online without a prescription
buy dapoxetine online
levitra professional 100mg
overnight pharmacy4u
finasteride 1mg
cheap vigra
viagra for women for sale
Tadalafil canada
Sildenafil Citrate 50mg
generic viagra canada
Viagra online
generic viagra online
buy tadalafil
cialis online canada
cialis 20mg
buy cialis online canada
cialis soft tabs
cheaP viagra
generic cialis 20mg
buy cialis using paypal
reasons to use viagra
pfizer viagra price
Viagra Oklahoma city
buy cialis from india
where to buy viagra
cialis for sale
generic viagra price
30 day free trial of cialis
generic viagra paypal
cialis price
cealis generic
cheap viagra online canada
cialis 10mg
36 hour cialis
viagra no prescription canada pfizer
viagra online 365
viagra cialis combo
cialis no prescription
purchase generic viagra
sildenafil tablets
buy viagra
propecia generic finasteride
generic viagia
ed pro trial pack
generis cialis
buy cialis 20mg
Propecia 1mg
cialis professional
indo viagral
original viagra for sale
buy propecia
Finasteride purchase
cialis daily
shipping viagra to australia
10mg cialis
viagra with dapoxetine overnight
where can I buy cialis 20mg
brand levitra
viagra sale
viagra 100mg
Cialis 5mg Tablets
cialis 20mg prices
cialis pills canada
cialis 10mg vs 20mg
viagra for sale in ireland
buy viagra in canada fast
sildenafil citrate generic
cheap cialis overnight
generic cialis cipla
tadalafil soft gelatin capsules
viagra patent expiration date
generic viargra
buy viagra from germany
cialis black reviews
order viagra
Viagra uk
viagra, no prescription
Order viagra
supreme suppliers viagra
viagra jelly sachet
buying viagra online in montreal
viagra and dapoxetine
viagra no prescription
buy viagra online sydney
buy viagra Australia
cialis without prescription
cheap sildenafil citrate
overnight generic viagra
buy generic cialis
generic viagra blogs
viagra online netherlands
original cialis
cialis paypal payment
dsicount viagra
viagra in united states
cialis 200 mg no prescription
20mg cialis
kamagra for sale
cialis with dapoxetine
canadian levitra vs usa levitra
causes of irectal dysfuction
viagra coupons
viagra usa
buy finasteride
generic viagra from india
tadalafil daily use
ebay + cialis
pfizer viagra without prescription
Finasteride 1mg
viagra pills for sale
cialis overnight shipping
viagra mail order
amazon viagra
cialis promise program
discount cialis 20mg
viagra next day delivery usa
viagra softtabs
viagra coupons and discounts
100 ml viagra for sale
order cialis 20mg
Cheap viagra
ganeric viagra
buy Dapoxetine
bying viagra uk
ggeneric viagra for sale
canadian pharmacies selling viagra
Viagra greate britain
viagra coupon
how can i buy viagra online in canada
price of tadalafil 20 mg
cialis 200mg
buy cialis online in canada
viagra in uk
viagra canada pharmacy
paypal online pharmacy
cialis comparison
viagra nz
pills house
viagra no prescription overnight
Generic Cialis
where can I buy propecia?
10 mg cialis for sale
drugstore 1st
viagra price comparison
viagra no prescrition
canadian generic viagra
buy super viagra
cialis viagra levitra canada
viagra uk
montreal online pharmacy
buy kamagra
viagra for boys
Cheap Viagra
levitra online canadian
finasteride 1 mg
cialis no prescription canada
online pharmacy for cialis
Generic Viagra
canadian cialis online
brand name viagra canada
Buy Viagra online
cialis generic versus brand name
cost of viagra
levitra coupon
viagra no prescription cialis
cipla canada
generic viagra
viagra without a script
tadalafil canada
buy cialis generic
buy cheap cialis
drugstore 365 org order levitra online
viagra india
viagRA online
canada pharmacy generic cialis
best viagra source
buy levitra
cheapest cialis tadalafil 20 mg
tadalafil tablets
sildenafil 100mg
viagra loest prise
cilias 20mg
levitra 20mg
viagra canada online
cheap viagra
Cialis online
order levitra
black tab cialis
cialis usa online
viagra melbourne
buy oral viagra online
buy generic propecia
viagra alcohol effects
planet pharma warehouse pvt ltd
Cheap viagra
Cialis generic alternative
viagra online without prescription
cialis super active review
buy viagra online ireland
200 mg cialis deals online
viagra by mail
buy cialis 20 mg
viagra overnight no prescription
cialis generic 10 mg