Sunday, 07 February 2010

Oyster iPhone app

The My Oyster iPhone application has had to be removed from the Apple AppStore due to a request by TranSys citing patent/trademark issues. A newly renamed version (with additional functionality) has been uploaded and awaiting review by Apple. We'll be back soon!

Saturday, 06 February 2010

Zend_Log and custom writer Log_Writer_Prowl

Prowl is an iPhone app that's usually used to extend Growl notifications from your Mac to the iPhone. By using the Prowl API you can extend the application to almost anything you like. So following in the footsteps of Log_Writer_Script here's Log_Writer_Prowl in use:

<?php
    date_default_timezone_set( 'Europe/London' );
    require_once( 'Zend/Log.php' );
    require_once( 'Log_Writer_Prowl.php' );

    $params = array(
            'apikey' => 'my_api_key',
            'application' => 'my_application_name',
    );

    $writer = new Log_Writer_Prowl( $params );
    $logger = new Zend_Log( $writer );
    $logger->log( 'Example of Zend_Log::DEBUG', Zend_Log::DEBUG );

Error levels have been re-written as below and I'll include an option later on allowing you to re-map these:

    // We'll need to re-write the event priority
    switch( $event['priority'] ) {
        case 0: // Emergency
        case 1: // Alert
            $event['priority'] = 2; // Prowl Emergency
            break;
        case 2: // Critical
            $event['priority'] = 1; // Prowl High
            break;
        case 3: // Error
            $event['priority'] = 0; // Prowl Normal
            break;
        case 4: // Warn
            $event['priority'] = -1; // Prowl Moderate
            break;
        case 5: // Notice
        case 6: // Info
        case 7: // Debug
            $event['priority'] = -2; // Prowl Very Low
            break;
    }

Here's the source if you'd like Log_Writer_Prowl.phps

Links for 06 February 2010

Thursday, 04 February 2010

CouchDB on Mac OS X using MacPorts

CouchDB seems to generating quite a bit of interest lately so I thought I'd have a peek and see what it had to offer. The preferred way of installing CouchDB on OS X is using MacPorts:

sudo port install couchdb
... trimmed output ...
checking whether autoconf is recent enough... no
configure: error: Autoconf 2.61a-341 or better is required.

An odd error as everything in my ports tree was updated. Googling for the error returned some results pointing to your current path being incorrect. I'd checked and the version of autoconf was 2.65 (my ~/.profile was fine) so it had to be something else. After a bit of hair pulling I discovered /opt/local/etc/macports/macports.conf which is what port uses for it's path. And what did I find in there?

BEFORE:
binpath     /Developer/usr/bin:/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin

And then running /Developer/usr/bin/autoconf --version resulted in "autoconf (GNU Autoconf) 2.61" which was what was causing the error. A quick change later as follows:

AFTER:
binpath     /opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/Developer/usr/bin

and CouchDB was merrily installing away.

Friday, 29 January 2010

Links for 29 January 2010

Saturday, 23 January 2010

Links for 23 January 2010

Friday, 15 January 2010

Links for 15 January 2010

Saturday, 02 January 2010

State of the Apple iTunes App Store

The Apple iTunes App Store has been a runaway success, both in terms of the number of applications and sales, but fraught with it's PR disasters too. Of course those mainly hinge around the rejections that developers receive, something quite a few have experienced. But there's another dark side, one that's not often mentioned but hits many a developer, and has to do with the current "social, user-generated, 2.0 everything" culture. Comments and reviews.

Your parents told you not to say anything unless you had a something nice to say, but in the age of the Internet people who forget that can cause quite a bit of havoc. I'm not saying that at times it's not deserved, but only go on a tirade if you've exhausted all other avenues in trying to resolve an issue. Developers are people too and they've taken the time to write applications that they think will be useful to you. They get that warm gooey feeling inside when users connect with the application and find it useful. And guess what? They get a sad feeling when something breaks or does not work for the user - but they want to fix it. They just need to be given the chance, and that's where you come in.

Recently on Twitter two iPhone application developers whom I followed tweeted the following:

Michael McNeela - "iPhone developers: don't read your App Store reviews. 'Tis my conclusion after almost a year."

Vinny Coyne - "Here's a New Year resolution idea: I'll contact the developer for help before posting a one-star rant on the App Store. That'd be nice!"

And I feel exactly the same way. My recently released application, My Oyster, started off with a 5 star rating but has slowly gone down to 3 stars now. I've had my first 2 star review on the comments page with a person complaining that their journey history was not shown. Well how about contacting me, like I state all over the description, so that I can sort it out. All it would have taken was an email and we could have solved it within a few hours. But for whatever reason, no.

I've had about 5 people email me when they've had problems as been able to resolve all of the issues. Even had emails commenting how great the application was and what features they'd like to see in the future. So what's the problem? One issue bringing down the rating is Apple's insistence on asking users for a star rating when they're uninstalling an application. Er if you're removing it there's quite often a problem and it's ever so easy to touch the 1 star and submit that. And boom the rating slowly creeps down with no feedback available to the developer. Not entirely fair and it gets nobody anywhere.

Perhaps one day Apple will allow developers to respond to the comments left by users on the App Store but until then let's make a deal:

  • I, as an application user, hereby swear that I'll contact the developer with any issues I experience.
  • I, as the developer, promise to make it easy for users to get in touch and will respond to every query I get

and lastly, and probably the most importantly:

  • If you like an application then leave a positive comment. It's human nature to complain but we so rarely mention the good things. So make sure everyone out there knows how awesome the game or utility was with your comments pushing the rating up.

Twitter

Rui Carmo is going through an interesting "de-socialising" process and it's mostly ended in this post, De-Tweeting, where he details how he's pruning his twitter account. Before Rui made is scripts public I'd done a similar thing with a PHP script, twitter_archive_zend.php I'd written. Fill in lines 12 and 13 with your Twitter username and password and set your maximum tweets on line 9. Then run and you'll get a JSON file that'll be appended to later on.

Be warned that this uses the Zend_Service_Twitter library and I'm fairly certain there are horrible caching issues going on. I've run it a few times with no username / password and it's brought back results - definitely not correct.

Friday, 01 January 2010

Links for 01 January 2010