Moving Van

Posted in apple, business, iphone, mobile development, software on March 4th, 2010 by Hamish Rickerby – Comments

Yesterday when I came home Moving Van’s sales were up. I was a bit surprised as I hadn’t done any specific marketing for the app, and what was really odd is that they were only up for the UK. A little investigation and I discover that Moving Van has been featured as “New and Noteworthy” in the iTunes Store UK.

Moving Van in the iTunes Store

How frickin’ exciting!

Ad from Digg

Posted in Uncategorized on February 8th, 2010 by Hamish Rickerby – Comments

Seriously, WTF? I assume it’s some sort of movie tie-in…

Calculate age in objective-c

Posted in apple, iphone, mobile development, software on January 7th, 2010 by Hamish Rickerby – Comments

For an iPhone application I’m developing for a client I need to capture the birthdate of a user, and then show their age on a profile screen. I went looking for a function to help with this simple and tedious task, but couldn’t find any example code that could be lifted to help me, so I rolled my own.  Here is what I made, steal as you see fit.

- (NSInteger)age:(NSDate *)dateOfBirth {
  NSCalendar *calendar = [NSCalendar currentCalendar];
  unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
  NSDateComponents *dateComponentsNow = [calendar components:unitFlags fromDate:[NSDate date]];
  NSDateComponents *dateComponentsBirth = [calendar components:unitFlags fromDate:dateOfBirth];

  if (([dateComponentsNow month] < [dateComponentsBirth month]) ||
      (([dateComponentsNow month] == [dateComponentsBirth month]) && ([dateComponentsNow day] < [dateComponentsBirth day]))) {
    return [dateComponentsNow year] - [dateComponentsBirth year] - 1;
  } else {
    return [dateComponentsNow year] - [dateComponentsBirth year];
  }
}

iPhone Camera Overlays + iphonearkit

Posted in apple, augmented reality, iphone, mobile development on September 20th, 2009 by Hamish Rickerby – Comments

Today I have been hacking away on the iphonearkit source available at github and have incorporated the ARGeoViewController as an overlay over a ImagePickerController with the camera as the source (which was introduced with iPhone OS 3.1).  Results below.

ARGeoViewController as the overlay on a ImagePickerController on iPhone

ARGeoViewController as the overlay on a ImagePickerController on iPhone

I want to tidy up some of the code before I check it back into my clone of the source, but this is a really good basis for some smart location and direction aware augmented reality apps on iPhone.  Wonder what the iphonearkit license is – it’s unclear…

— EDIT —

Bugger.  It appears that zac has implemented similar functionality to me already :-(  Bloody github and it’s slow (never!) updates to fork queues and network graphs.  Oh well, maybe I won’t bother tidying my code.

Augmented Reality – Hello World

Posted in augmented reality on September 20th, 2009 by Hamish Rickerby – Comments

I’ve recently discovered augmented reality. After I saw my first “virtual business card” application I was hooked.  I’ve been doing a lot of reading and experimenting with software over the past 2 days, and have got ARToolkit working here.  Here are some shots of the obligitory “cube over marker” demo.  I would post a video, but my screen capture software and AR software = a really poor frame rate and substandard video :-(

Marker with no overlaid image

Marker with no overlaid image

Blue cube over the Hiro marker

Blue cube over the Hiro marker

Next up, something more substantial.

No, I don’t agree

Posted in Uncategorized on September 17th, 2009 by Hamish Rickerby – Comments

Tough luck – the box is un-uncheckable.Screen shot 2009-09-17 at 18.13.53I guess it’s one way to make sure that people accept your terms & conditions – force them to.  One less click.

Kit Quiz: UK

Posted in iphone, mobile development on September 11th, 2009 by Hamish Rickerby – Comments

<shameless self promotion>

My 4th iPhone application was approved yesterday by Apple, and it launches in the iTunes store today. It’s called Kit Quiz: UK and is a UK team based football (soccer) shirt quiz game. It features over 130 shirts from UK football teams, and will have more added shortly.  There are 3 modes of gameplay, from the practise model “Friendly” to a time challenge “Blitz”.

It’s integrated with Twitter and Facebook so you can check out your friends scores and find out once and for all who can recognise the most football shirts.

Couple of screenshots below for anyone interested.  Download it now!

Kit Quiz: UK menu screen

Kit Quiz: UK menu screen

Kit Quiz: UK - Blitz screen

Kit Quiz: UK - Blitz screen

</shameless self promotion>

Passenger (Ruby on Rails) + PHP on OSX

Posted in apple, internet, ruby, software, web on August 15th, 2009 by Hamish Rickerby – Comments

I’ve spent the last hour or so trying various things out to get passenger and PHP to play nicely together on my mac under OS X (Leopard) and apache2.

The situation I was finding was that PHP apps would run, but only if you explicitly call the script (ie index.php) rather than just the directory. If you called the directory, passenger would take over and give me a rails routing error.

The issue was to do with the passenger vhosts configuration. On my machine I have an number of ruby on rails apps configured with the passenger preferences pane (creating vhost entries within /private/etc/apache2/passenger_pane_vhosts/. I have enabled user_dirs, so that the users of my machine’s pages (and other apps) are served from their ~username/Sites directory.

My users configuration info for apache is installed in /private/etc/apache2/users/, and the instructions to load the configuration from that directory is stored within /private/etc/apache2/extra/httpd-userdir.conf (content below).

# Settings for user home directories
#
# Required module: mod_userdir
#
# UserDir: The name of the directory that is appended onto a user's home
# directory if a ~user request is received.  Note that you must also set
# the default access control for these directories, as in the example below.
#
UserDir Sites
#
# Users might not be in /Users/*/Sites, so use user-specific config files.
#
Include /private/etc/apache2/users/*.conf

To get everything working together nicely, I merely wrapped this inside a vhosts configuration directive, and gave it a ServerName of localhost – so that this vhost would be the one that responds to requests for localhost, rather than some random passenger vhost assuming it was the boss of everything. New /private/etc/apache2/extra/httpd-userdir.conf below.

<VirtualHost *:80>
  ServerName localhost
  UserDir Sites
  Include /private/etc/apache2/users/*.conf
</VirtualHost>

Thanks to this, all of my rails apps are served under passenger, and I can have static HTML, PHP and camping apps (previously configured – nothing to do with the above) all served from within my ~username/Sites directory.

Hope this helps someone.

123456789

Posted in Uncategorized on August 7th, 2009 by Hamish Rickerby – Comments

Today in the UK the time hit 12:34:56 7/8/9. Not exciting for everyone I guess, but it won’t happen again for another 100 years.

123456789

Undefined method rewind and rails 2.3.3

Posted in ruby on August 4th, 2009 by Hamish Rickerby – Comments

Today I updated a project I’m working on from rails 2.2.something to 2.3.3. Then, I started getting the following wacky error.


undefined method `rewind' for #<TCPSocket:0x3631e58>

Turns out if you see this after a rails 2.3.3 update, you might just need a phusion passenger update (I was on passenger 2.1.3, apparently this error happens on passenger 2.1.2 too)


sudo gem update passenger
sudo passenger-install-apache2-module

Put the lines recommended by the install script in your apache config file, restart apache and you’re good to go.

Hope this helps someone.