Skip to content
Mar 23 11

Where Is Mobile Gaming Going?

by Julian

At last month’s NSWG, I gave a short presentation about where I think (mobile) gaming is going. I put mobile in parentheses because, well, the distinction between mobile and non-mobile is evaporating.

And that’s kind of the conclusion of the presentation. It’s written for a mixed audience of geeks, but not necessarily of the mobile or game dev kind.

The highlights of the presentation are:

  • Nintendo hardware in trouble
  • Sony trying lots of different things
  • Don’t dismiss WP7 – it’s Microsoft’s mobile gaming solution.
  • Apple gunning for control of your TV
  • AirPlay way more significant that Apple TV
  • Hybrid ‘console’ device; on the move AND at home.

Here’s a PDF of the presentation: Where Is Mobile Gaming Going? (It’s worth reading the presenter notes, as that’s where a lot of the meat is.)

The presentation was written well before GDC and before the iPad 2 was released. We knew it was coming but not the specs. It’s worth noting a few things that weren’t known about when I wrote it:

  • The GPU in the iPad 2 is more powerful than I expected. Nice. The iPad 1 was severely underpowered graphically, so it’s good to see the GPU getting some love. I wonder how Sony feel about this, as it’s pretty close to the NGP now (capabilities not cores)? It makes you think considering that the NGP will be around for a few years while the iPad 2 will be replaced sooner.
  • Video mirroring. This is big. People will be plugging their iPad 2′s into their TVs. There’s a great chance we’ll see an Apple gaming controller soon. Of course, don’t forget that you could use an iPhone as a controller too.
  • AirPlay enabled devices – first Denon, now Pioneer. It really can’t be long before we see AirPlay enabled TVs. At that point you won’t even need to plug your iPad into your TV.




Mar 17 11

Boston Globe article about the North Shore Web Geeks

by Julian

There’s a nice writeup of our North Shore Web Geeks meetup last month in the Boston Globe. Head over there and check it out.

The NSWG (also @nswg on Twitter) is a monthly meetup for tech-involved people. The “Web” moniker is increasingly inaccurate, so if you’re a graphics designer, IP lawyer or a sysadmin whizz you won’t feel left out at all.

The format varies between straight socializing, lightning talks and larger, often sponsored, events. But there’s always beer!

The meetup is held every third thursday, except for today because it’s St Patrick’s Day. The next event will be on March 24th 2011. If you’re in the area, come and join us!

I’ll be putting up my slides from the last talk shortly. Though as is the way with technology, it’s already out of date!

UPDATE : You can find the PDF of the presentation here.

Dec 10 09

Fix for FogBugz/Perforce integration on OSX

by Julian

The Short Answer

Add --no-check-certificate to the wget call in

The Waffle

On the recommendation of Kirby, I’ve been trying out FogBugz for task and bug tracking. I’d dismissed FogBugz assuming the cost would be too much (and for the daft name), but, amazingly, it has a free startup edition – good for 2 users. (One of the most interesting features is the Evidence Based Scheduling i.e using historical metrics for better estimates. I’ll be very interested to see how it works out.)

FogBugz integrates with a number of SCM packages. In my case I’m also running the free 2-user Perforce install, and of course wanted to link the two. (I’ll get around to SVN and Git too but for now it looks like I’ll have to sort myself out for integration with AccuRev).

For Mac OS X, FogBugz has a Perl script ( which scans your changelist description for lines like:

BugzIDs: 1234

This allows FogBugz to link back to the Perforce changelist (if you’re running P4Web). By default though, the script appears to fail when issuing the wget.

The answer is to add –no-check-certificate to the wget calls, so that:

system("wget '$url' -q -O /dev/null");


system("wget '$url' -q -O /dev/null --no-check-certificate");

In my version I’ve removed the -q and the /dev/null preferring to dump the output and logging to files, so I can see what’s going on.

(There are two calls around lines 134 and 165.)

Jun 29 09

Unit testing on the iPhone and the Simulator

by Julian

A recent post over on Acorn Heroes, “Unit Testing and linking Static Libraries with XCode”, has got me thinking: I went through a similar process a few months ago, when I was integrating UnitTest++ into my build environment. I use external makefiles to build static C++ libraries and the associated tests, and although the standard approach works well for the simulator, I still haven’t found a decent solution for the running on the iPhone itself (read more below).

Unit testing on the iPhone Simulator

Although this is a solved issue (using the “google-toolbox-for-mac” approach), it still runs UI-less, which most of the time is fine. Approaches such as using OCMock look great, but at the time I wanted to see if I could get unit testing running on the simulator with the UI.

Using a combination of tools like fseventer (which observes filesystem changes) and Peek-a-Boo (which observes processes), I set about documenting the application startup process (on the simulator). From this, I cobbled together a script which I’d hope would do the trick… but unfortunately not :( . But I think it must be close!

I’ve put the salient points of the script at the end of the post, in case someone else has a solution.

Unit testing on the iPhone

Running tests from the command line (built via makefile) on the device is what I’d really like to find an answer to, but I haven’t really got very far with this :(

The strongest candidate at the moment may well be a combination of CMake to generate an XCode project file, and then using Applescript to launch the app, as others are discussing here. Unfortunately the command-line tool xcodebuild doesn’t appear to have an option to launch applications.

Do you know of any alternatives?

For running test sub-projects (not built from the command line) the article Unit Testing Applications on the Apple developer site is definitely worth reading, especially the section “Setting up Application Testing”, but again doesn’t help in my situation.

“Script” for running unit tests on the iPhone Simulator

Finally, here are the snippets of the script I talked about earlier. I haven’t had time to revisit this since the release of OS 3.0, but if anyone else has tried anything similar I’d be very interested in hearing about it.  As I mentioned above, this script doesn’t work, so is only here for reference!

# Start the simulator, but wait...
"/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone Simulator" -SessionOnLaunch NO &

# Get the pid of the simulator, we'll need that in a moment
pid=`ps wwax | egrep -i '[i]Phone Simulator' | awk '{ print $1 }'`

Now I found I had to set the usual environment variables, as per the standard approach, namely, DYLD_ROOT_PATH, DYLD_FRAMEWORK_PATH, IPHONE_SIMULATOR_ROOT and CFFIXED_USER_HOME.

# Start the simulator bridge
"/Developer/Platforms/iPhoneSimulator./Developer/Applications/iPhone" $pid &

# Had to unset some environment variables for the following commands to work.

The following is where it gets a bit odd. I noticed a sequence of launchd, installd and securityd (which may need to be run as another user, possibly _securityd).

#launchd - not sure what this is doing perhaps handling the following sequence.

# Run installd with a timeout of 30 seconds
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/usr/libexec/installd -t 30 &

# Run securityd - think this is something to do with entitlements

# Now start SpringBoard
    -SBDisableAutoDim YES
    -SBAutoLockTime -1
    -SBAutoDimTime -1
    -SBDontLockAfterCrash YES
    -SBDidShowReorderText YES
    -SBFakeBars YES
    -SBDontAnimateAppleDown YES
    -SBEnableDoubleHeightToggling YES &

# Now start the app, which you'll find in some auto-generated folder in
"/Users/.../Library/Application Support/iPhone Simulator/User/Applications/.../"

There’s not a huge point in chasing a solution to this broken script, as the UI-less testing works so well. But, have you tried anything like this at all? It strikes me that the jail-breaking crowd may know more.