Posts

Showing posts with the label mobile

Moving to giffgaff

Much like moving bank account, it's not very often I move mobile network.  I tend to favour staying with the same provider unless they provide me with a good reason to leave.  My current network, TalkMobile, have just done so by completely shutting down their PAYG service and so are only able to offer me a contract (that I don't want) or a rubbish deal to move to Vodafone (they're a Vodafone MVNO).

I thought I'd write a similar post about my experience moving to the giffgaff network today to the one I wrote about Moving to TalkMobile back in 2012.  You'll see from that link that joining TalkMobile was extremely painful.  However, I'm happy to report I found the network very solid and reliable with what I can only presume is good coverage (there's always black spots, right?) on the Vodafone network.  Getting them to do anything was always painful as there's little option for self-service so it's more or less always a call to their support staff.  The staff are very polite and extremely helpful but the processes and presumably the systems they have to use seem somewhat antiquated today.

So in comparison to my previous blog post about moving to TalkMobile, moving to giffgaff went a bit like this:

Day 1 (yesterday)

  1. Register a giffgaff SIM a friend gave me and create a new giffgaff account all in one simple guided wizard on the giffgaff web site
  2. Request a PAC from TalkMobile
  3. Go through the number transfer process via another simple wizard on the giffgaff web site
Day 2 (today)

  1. Observe a short outage in mobile service as my number was transferred just after lunch
  2. Happy customer

So now I'm looking forward to years of good service from giffgaff until they provide me with a good reason to leave some time in the future.

By the way, if you want to grab a giffgaff SIM then feel free to register via my referral link as we'll both get a free £5 credit if you do.

Nexus 4 Red Light of Death

I've written a few times in the past about various poor or laughable customer experiences I've had when dealing with technology and the companies making or retailing them.  Things usually work out well in the end of course as we're well protected as consumers here in the UK.  However, when my Nexus 4 went wrong late on Saturday night I thought I was in for another world of pain, I couldn't have been more wrong.

The short version of this post is that my phone died late on Saturday night.  On Sunday morning I raised a support call.  By Tuesday morning I had a brand new phone in my hand, delivered to my door, all under warranty.  I need not have worried it seems, Google appear to have customer support really very well sorted out.  I only wish the vast array of companies out there who are terrible to deal with would learn the lessons of having satisfied customers even when things go wrong.

The slightly longer version of the story is that my phone completely ran out of charge on Saturday and when I went to plug it in for an over night full charge before going to bed, I noticed the LED was solid red.  I've never seen this before but left it for a few hours and tried turning it on, nothing.  I left it on over night and it still wouldn't turn on the next morning.  I tried a few other things, like a separate wall outlet and another charger and cable but still all I got was a solid red light and no ability to boot the phone.

I phoned Google at 10am on a Sunday in the hope that they ran a call center on Sundays or that I would be connected to an international person who would be able to help.  I think that's probably what happened as it was an all-American experience from start to finish.  Benjamin answered the phone, asked me some questions and got me to do a couple of things with the phone, it was still dead.  He was first class, easy to understand and took ownership of the issue straight away, I can still email him directly about the problem now.

After Google support (Ben) realised the phone was dead, there was no quibble, no problem, no hoops to jump through.  He told me that he'd send the issue through to the warranty department, they would send me an email with how to order a new phone and when I receive it I should send back the old one in the same packaging (standard practice for the tech industry).  We parted company, and I'm thinking this is all a bit too easy and something will go wrong later.

A couple of hours later, I get an email from Google warranty.  It has a link to click which allows you to order a new phone at no cost (the link is only live for 24 hours).  I set about ordering the phone, it was Sunday night by this time.

8:30am Tuesday morning and Parcel Force knock at the door and deliver my new phone.  Inside the package is a return envelope, exactly as described by Ben at Google and exactly what the warranty email said would happen.  I printed the RMA note attached to the email, packaged everything up and it's ready to go back to Google - we're still less than 5 days from the start of the issue at this point.

Quite simply, brilliant.  I thought I should say so (or more so).

So would I buy a new Google hardware product again?  You bet I would.  Software updates come regularly, I'm always at the latest Android level (unlike the Transformer Prime tablet we have in the house which is stuck on 4.1 because Asus dropped support after little more than a year), I don't suffer from the Apple single vendor lock-in issue, and now to top it all off it seems the warranty support is first class.

Android Clients for Twitter

I've been a long time fan of Tweetdeck as a piece of software for social management, certainly long before it was bought by Twitter.  I've used it everywhere via the Air Desktop app, on the web, the Chrome app and on Android too.  That is, up until now.  In their infinite wisdom Twitter appear to have realised maintaining two clients across a wide range of platforms doesn't make sense (begs the question why the bought it in the first place but I wont have that argument here) any longer and most versions of Tweetdeck are being phased out leaving only the web version or the heavily-based-on-the-web-version Chrome app.  So for the fans, what's next?  Which Twitter client should I be using on my mobile device now?  I've been assessing a bunch of them for quite a while now and I know I'm not the only one facing this decision so here's what I've learned.

First of all to put into perspective my thoughts on each client, here's a list of things I want or that I'm concerned with in an Android client:

  1. I should very easily be able to get to different content streams from my main Twitter stream, my mentions, searches, lists, to my direct messages.  A column interface (similar to Tweetdeck I guess) is ideal for this with a swipe gesture to navigate between them.
  2. It should support multiple Twitter accounts and switch easily between each account.
  3. It should be slick, fast, nice to use and be configurable in terms of its look and feel, notifications and ideally offer per column filters.
  4. It should ideally support push notifications and Twitter streaming. When notifications are pressed in the notifications bar the client should open directly to the Tweet being notified.
  5. It should not contain adverts.  It doesn't matter if I have to pay for the app or pay to get rid of the adverts, paying (within reason) is fine.
  6. It would preferably be free (as in open source) but I appreciate many of them are not and indeed to get the best Android clients at the moment it's less likely to be so.

So onward, to the apps...

Twitter (official client)
I guess the main critique of a post such as this is to ask what's wrong with the official client.  Well for me I find it takes ages to get to the content I read regularly.  Twitter lists take 3 taps and a scroll-down to find (for each list) so the official client fails at point 1 in my requirements list.  It doesn't do particularly well at points 2 or 3 either.  However, it does have the beefed-up mentions column they're calling Interactions that also includes favourites and new followers which I really like so I'm likely to keep it installed just for this until some other clients catch up.

Scope
Requires a special Scope account in order to login.  Screenshots appear to indicate a lack of column support so I didn't even bother signing in and got rid of it straight away.

Slices
An interesting take on reading Twitter and may once have provided lots of useful extra functionality on top of the basic Twitter.  However, with the introduction of Twitter lists there seems less point to Slices ability to carve up your social content into chunks.  The UI I found to be really rather confusing and difficult to navigate.  I quickly got rid of it after some investigation into its features.

Carbon
One of the slickest and nicest looking Twitter clients I think there is, this one really excels at want list number 3 with its fancy animations and cool look.  However, in the end it's still a button based UI that takes far too many taps to get to each piece of content you want to read.  That makes it slow and confusing to navigate so it's a sad farewell when uninstalling this one as it does implement swipe between columns but you can't configure your own columns to swipe through.

Tweet Lanes
This one does everything I want more or less out of the box with zero setup.  All I did for this app was sign in and a carousel swipe interface is loaded with all my tweets, mentions, lists, etc. and more can easily be added.  This app also appeals due to its free and open source mentality so is good for want list number 6.  However, it was left by the original developer (who no longer maintains it) somewhat feature incomplete with no notifications or sync although it does handle multiple accounts rather nicely.  Other developers have hacked in a few of these missing features here and there but there's still no driving force behind the project any more.  I wouldn't be expecting regular updates so the amount of life left in this app without someone taking up the reigns is probably quite short.  If it wasn't for the fact it's in a state of limbo I could seriously like this one but in the end lack of attention to detail such as pressing a notification in the notification bar and it merely starting the app rather than dropping you to the right place are just annoying.

Seesmic
A really popular client at one point, even if it's not now.  However, I really didn't get Seesmic at all.  It's a button based UI similar to the official Twitter client that takes lots of taps to get anywhere.  Lets count how I read a Twitter list: Profile Button -> Lists -> List Name, that's 3 which is too many in my book.  So it fails in the same way the official client fails at point 1 in my want list and doesn't do well at points 2 or 3 either.  It also has ads that I could pay to get rid of but why pay when it doesn't work very well for me anyway?

UberSocial
Not a bad column-based client that allows you to easily add the columns you want and arrange them in the order that suits.  It's easy to switch between accounts too.  The big problem with this client is that it's a battery-eater, I've no idea what it's doing but presumably polling quite a lot as when installed and in use on my phone it was one of the top reported apps in terms of battery usage where none of the other clients are anywhere to be seen.  If you want decent battery life then don't bother with this one.

TweetCaster
A not particularly easy on the eye button based app which, like other similar apps that limit the columns you're allowed and don't swipe between them, makes it rather awkward to traverse all the various parts of Twitter that a modern user might expect.  I really don't see the advantage of TweetCaster over the standard Twitter app.

The Winners Are
These three are all very good indeed and for me and my list, worth a shot.  I've not yet completely made my mind up which way I'll be going but it will definitely be one of these.

Janetter
With the default theme, this client can be a bit "oh my eyes" with its jet black text on bright white background.  Not much imagination in the colouring and shading of the interface except the bright lime green.  However, when switched to the dark theme it's much easier on the eye and you can start to look at the functionality a little more closely.  It manages multiple accounts very well, returning you to the same account you left when you start the app but making it easy to move between the two accounts - perfect for when you have a major account and other minor accounts you don't read that much.  The interface itself is the typical column/swipe style interface and the columns are easily configured, edited and arranged.  It also has another feature that is becoming more important in the management of busy columns, the idea of muting certain keywords, hashtags, user accounts or apps.  The free version has adverts built in but if this is the app I end up going for then it's a one-time £4.99 purchase to get rid of the ads and unlock a couple of other features.

HootSuite
Really easy to use from the off and has a nice separation of accounts that allow you to read content from any particular account with ease.  Accounts are separated so you can only scroll through the columns for a particular account that's active.  However, switching between accounts feels a little awkward to me as you have to remember how to navigate back to the main start page which isn't done using the most obvious (and normal for Android) method of clicking the button in the title bar.  Other than that, once you've got an account selected it's really quite nice to browse through all the different content and with no ads either, for free.  If you want more than a certain number of accounts (I'm not sure how many) or you want to unlock some particular features (that I've not found the need for) then you need to pay a fairly staggering $9.99 per month to use the pro version of the app.  That sum plus the features you get in the paid version clearly indicate HootSuite is aiming to make money from commercial users of Twitter where lots of different people might be maintaining lots of different accounts, a marketing department perhaps.  Because of that the free version is really good, as I've said, but I do wonder if one of the other two of my favourite apps will win out with a slicker user experience overall.

Plume
I'm really liking Plume at the moment, along with Janetter it's quite slick at the way it handles navigation and moving between accounts.  However, it does have a couple of annoying "features" that can't be changed.  The worst is that every time the app is started it shows a feed of information from all of your accounts configured in the app.  Unlike most apps, Plume doesn't separate content from different accounts, they're all shown in the same columns and colour coded to match a particular account.  That's great except that most of the time I want to read content from my main Twitter account and only occasionally do I want to dip into content from other accounts.  Hence, at the moment every time I start the app I have to tap a couple of buttons to select my main account - how hard can that be to add as an option?  Many users have asked for it and as yet it's not been added.  The free version is supported by ads so you you need to shell out the small sum of £3.73 to get rid of them.  Another similar feature to Janetter is that you can mute certain things from column content, either accounts, hashtags, keywords or apps.  This highlights another annoying Plume buglet in that not everything you ask to be muted actually gets muted, or at least it seems mutes only apply to the main column and not to specific columns or all columns as you might expect.  This is a really excellent Twitter client and if you can work around the few annoyances I've highlighted then it's a real winner.  For me, time will tell whether they sort it out enough for me to be able to live with it on a daily basis.

Killer Android Apps

This is my second blog post with this title with the first one having appeared in December 2010.  I thought it would be good to look over which apps I was using back then and of those which I'm still using now but also what new apps I'm using.  It feels like Android and the apps available for it advance at quite a slow pace so it'll be interesting to see the differences between the two blog posts and see what's changed in the last 16 months or so.  I've also updated from Android 2.2 to android 4.2.2 in that time.

Back then I was using the following list of apps regularly:
  • Angry Birds (Game)
  • Barcode Scanner (Bar Code Scanner)
  • eBuddy (Instant Messenger)
  • ES File Explorer (File Manager)
  • Google Reader (Feed Reader)
  • Maps (Navigation)
  • RAC Traffic (Traffic/Navigation)
  • Scrobble Droid (Social Music)
  • Skype (Instant Messenger and VOIP)
  • Todo List Widget (Productivity)
  • TweetDeck (Social Client)
  • Youtube (Video)

AccuWeather (Weather)
Back in the old days of Android 2.2 I was running an HTC Desire with Sense and there was a really good weather widget in sense which meant I didn't bother using a weather app.  Now I'm using Android 4.2.2 on a Nexus 4 and running the stock Google image that widget is no longer available.  I find the AccuWeather app to be a good alternative.  I also keep a mobile bookmark handy for the BBC weather page for my local area.

Amazon (Shopping)
I'm quite surprised that I've started using more dedicated apps.  I suppose they've got better over the years and there is a wider selection available.  If I used Amazon on my HTC Desire I would have done so via the mobile web browser interface but these days I tend to use the app instead.  That's probably got a lot to do with the fact I've got loads more storage space for apps on the new phone though.

Angry Birds (and Bad Piggies)
So I still play Angry Birds which is either a testament to the game or a worrying sign I'm slightly addicted.  A bit of both perhaps.  Now though, there's a whole series of these games to wade through as well as the spin-off Bad Piggies game which I also quite like.

BBC iPlayer and Media Player (TV)
It's not very often I use it but it's still handy to have installed.  It might get even more useful if I ever get round to buying one of the over-priced slimport adapters so I'd be able to pump out HD content from my phone over HDMI.

Bubble UPnP (DLNA Client)
This can come in really handy from time to time either to stream content from my NAS onto the phone but more often to use it as a DLNA controller for other devices in the house.

Business Calendar Free (Calendaring)
The standard Google calendaring app and widget leaves quite a lot of room for improvement in my opinion, hence I find this little free app to be a better alternative.

Chrome (Web Browser)
A default app on the Google Android install but I thought I'd mention it here anyway since it's a huge improvement over any other browser I've used on a mobile device (I've got Firefox installed as well but it's not as good in my opinion) and much better than the previous Android browser I was using.

Chrome to Phone (Link Sharing)
This is a great little app that allows you to ping links from your Chrome web browser (with an installed extension) straight over to your mobile phone.  Sadly, it only works in one direction though so you can't go from phone to desktop although there are third-party scripts that allow you to do that as well.

Dropbox (Cloud Storage)
Another app I don't use a huge amount but it's useful to be able to access my dropbox files on my phone if I need to.

ES File Explorer (File Management)
An app I've been using more or less since day 1 when I got my first Android device.  I think it's still the best file manager on the app store, look no further.

Facebook (Social Networking)
I've started to use the dedicated Facebook app a little more recently than I ever did before.  That's partly because it offers more functionality than I had available before (via either the web interface or Tweetdeck) and partly because Tweetdeck is going away soon and will no longer be available on Android.

Feedly (RSS Reader)
An app that Google forced me to discover recently because they appear to have got fed up with not making any money from Google Reader.  This appears right now to be the best alternative solution available on both Android and the web.  The Feedly producers currently use the Google API and back end for RSS reading but they are in the process of writing their own and are promising a seamless move when Google finally pull Reader in a few months time.  I'm sure more of these apps will pop up in the future now the market has opened up so it'll be interesting to see what I'm using next time I get around to writing one of these blog posts.

Flickr (Photography)
I use this app to upload the occasional photo I take on my mobile.  However, it's also one of those go to apps that I tend to read through more or less every day to see what's new on there.  Much like the Flickr web site itself, it's not exactly radical these days and passes for just about usable but if you're a Flickr user it's the best option I've found on Android if you want an app.

Hotmail (Email)
Previously I always used to use the in-built email app from HTC sense which was compatible with hotmail.  However, that's no longer available to me these days so I had to look around for an alternative when I got my new phone.  The official Hotmail app seems to do the job quite nicely.

LoveFilm (Movie Rental)
Again, another app that I don't use often and would previously have used the mobile web version instead.  However, this is handy to have sitting around for those times when someone recommends you a film and you want to shove it straight onto your rental list.

National Rail (Railways)
This can be incredibly handy for me in two situations, there's the obvious one where I'm using the rail network and want to plan routes, work out costs, see when trains are running and get live departure updates.  However, as the hubby of someone who uses the train network every day it can be really quite useful to spot when late arrivals home might occur or be armed with the latest information if the phone rings.

RAC (Traffic)
I'm still using this and finding it useful to check for traffic jams when I go on a long trip.  It's still not that great an app though so if there are better alternatives out there I'd love to hear about them.

Reader (RSS Reading from Google)
An app that I use every day, quite probably multiple times a day along with the Reader interface in my web browser.  Really very unfortunately indeed, Google have decided to think better of the Reader app and it's going away this year.

Rocket Player (Music)
I don't use Spotify, Google Play Music or other streaming services as I have a preference to copy my own music onto my device and listen to it locally.  I'd be doing this anyway if I were on a plane or something so I don't really see the point in streaming.  Rocket Player seems to be quite a nice app to play your music through.  It comes in a few different forms from a free version (which I use) to unlocking more features with paid versions.  It's simple yet functional and with their equaliser turned on it makes your music sound pretty decent (as far as phone + headphones go) too.

 Scrobble Droid (Social Music)
Another app I'm still using from the old days and more or less since day 1 on my first Android phone.  This simple little app works with music players (Rocket Player is compatible with it) and allows you to scrobble the tracks you're playing on your phone.  If you're not connected to a network then it'll save them up and scrobble when you make a connection instead.

Squeezer (Logitech Squeezebox Controller)
Unfortunately Logitech have neglected the Squeezebox brand since buying them a few years ago and that seems to be pervasive throughout everything Squeezebox including the Android app.  I'm unable to install the official app on the recent version of Android I have but fortunately someone has written an alternative in Squeezer.  I'm glad they did, I think they've made a better job of it than the official app.  Sure, it doesn't have half of the whizzy fancy features you get on the official app but given I don't use the vast majority of those I really don't care and would recommend anyone with a Squeezebox to give Squeezer a try instead.

Skype (Instance Messaging and VOIP)
Another app I've been using for ages on my phone.  It's great to finally be able to do video messaging now I have a front-facing camera too.  Also, the introduction of logging into Skype via your MSN account and compatibility with Messenger means I've stopped using the eBuddy app.

Stickman Games (Gaming)
Most of these are quite fun and generally absolutely hilarious.  I'd recommend anyone with a bit of time to kill to check out Play for the various stickman games, they range from golf to cliff diving with things like skiing, wingsuits and base jumping included in there too.

Talk
As a result of ceasing use of eBuddy I've started using the official Google Talk app instead which seems to be much better all-round than eBuddy for things like battery usage when staying logged into the app permanently.

Todo List Widget (Productivity)
This widget (or set of widgets) is still perfect for a really simple to do list on your phone.  It allows you to add different sized widgets to the desktop (which is a bit superfluous these days since you can resize widgets) and then simply add an item, remove an item and give the list a title.  All very easy.  All very simple.  Job done, don't need any more than that. 

Tweetdeck (Social Client)
Much like Google Reader this is an app I use every day or multiple times a day for reading and managing Twitter and to a lesser extent Facebook.  Another similarity is the announcement of the impending death of Tweetdeck on Android.  A couple of months ago I was looking around for Twitter clients as I know there's a huge range out there and was wondering if there was anything better than Tweetdeck.  I ended up installing 10 different apps to check them all out individually.  However, there wasn't anything I liked nearly as much as Tweetdeck (although one or two came close) because they all seem to rely so much on a huge amount of navigation and taps on the screen to see any content vs Tweetdeck's simple swipe-column interface.  I'm really apprehensive about what's next for Twitter on my phone.

YouTube (Video)
Another standard app, but it's still there on my phone.


So it seems in general I'm using a mixture of the same old apps I've always used, mostly because nothing better has come along rather than not trying to find new apps but I guess I'm probably a little stuck in my ways with the ones I'm using too.  There's definitely a theme of using more apps rather than mobile versions of web sites on my phone now which I put down to having loads more storage space available for installing them.  The list of apps is clearly quite a lot longer though so I'm using a lot more apps than I ever did as I've become a little more comfortable with using a touch screen mobile device and dipping in and out for content more regularly than I used to before my first smart phone.

Nexus 4

This post could as easily have been titled "buying my first mobile phone".  Yes, it's 2013 and I've just shelled out for my first ever new mobile phone, buying the Google/LG Nexus 4 so I thought I'd put something down about switching phones.  Prior to this as regular readers will know, I had an HTC Desire (which was actually a work phone), before that a Nokia N73 (which I bought second hand from eBay).  So I don't have a particularly prolific phone history, I tend to wait for what I want after researching long and hard and buying something that will last me several years (I'd say I change every 3 years or so).  With the price and feature set of the Nexus 4 as they are, it was a no-brainer next move for me so after the early rush on stock saw them getting sold out everywhere I waited and ordered when they came back in stock (on Feb 4th) and took delivery the very next day in spite of the 2 week wait Google were advertising for delivery.  Having had the phone a couple of months now, I'd say I've got used to it so now seems like the right time to talk about it.

So why the move to a new phone this time?
Basically, it wasn't at all driven by the Nexus 4, it was all about the HTC Desire.  I had been running non-standard firmware versions on it for quite a while and got fed up of the various instabilities in them, or out of date Android versions (for the more stable versions) but the real sticking point of the HTC Desire is that 150MB user space for apps.  That was OK back in the day, when apps were small and relatively few and far between in Android.  However, it quickly became far too little and I was either constantly battling to have the minimal set of apps I needed installed or copying them out to SD card in a custom firmware and suffering the slow-down consequences of doing that.

OK, so I decided I needed a new phone but why the Nexus 4?
Price.  Simple.  End of.  Having been lucky enough to have had the HTC Desire since it first came out, I've been used to a high end smart phone for quite a while.  A lot of the cheaper phones on the market today aren't really much better than the HTC Desire even now, so I needed to look high end.  Obvious choices were other top notch phones from HTC or perhaps a move to Samsung for the Galaxy S3.  However, looking at the high end market as it is right now, you just can't beat the Nexus 4 for "bang for your buck".  It's a high end phone offering all the features of the S3 and other similar phones but at a whisker over half of the price, so no contest.

What do I like about the Nexus 4?
I'm going to split this into two parts.  Software and then Hardware.

Well it's Android, and being a Google phone it's a bang up to date version too.    I can still use all the same apps I know and love from the HTC Desire (with the odd change of widget here and there as I've moved away from HTC Sense, obviously) but now I can have them all installed at the same time and running and comparative speed.  There are three things that come to mind when talking about the software differences.  First, the gesture typing keyboard seems really quite adequate to me; I was a Swype user before now but I've not even been remotely tempted to install Swype on the Nexus 4 as the gesture typing from Google more or less exactly replicates the experience with a few subtle differences.  Second, Google Now really does seem very clever indeed; within a couple of days it had worked out where I live and where I work so I get traffic updates before I make the journey; I get similar information if I've travelled somewhere I don't usually go; recently on holiday in Spain, Now welcomed me with local weather information, an estimate of the time back to the airport, a list of local restaurants and attractions, etc.  Third, the camera software completely blows me away; yes there's the photosphere camera which is a nice toy but the in-built ability to do time lapse videos, HDR pictures, panoramic pictures (which get stitched automatically) as well as all the various scene modes, editing facilities, location and social functions they've put in the app make it absolutely first class - my two cameras (a compact that is a few years old and an SLR) get absolutely nowhere near this level of functionality.

Hardware wise, the tech specs speak for themselves being dual core, 2GB RAM, nice screen, camera, etc.  Speaking of camera, I've been particularly impressed by the quality of the pictures and video from it against what I had before with the HTC Desire in addition to the camera software I've already talked about.  I could go on and on about what I like, the list is really long since it's more or less bigger, better and more powerful than the HTC Desire as you'd expect being released 3 years later.

So what's not to like?
If I was an Apple fan-boy I'd say "it's not an iPhone" but more seriously there are probably two downsides that I can think of.  You know it's coming... battery life.  Until humankind invents a more compact version of storing more electricity then battery life is always going to suck.  I can get 2 days from the phone with light usage but under heavier load I can get 1 day out of it.  The other thing is the size.  Preferably, I'd like to be able to break the laws of physics somehow and have a phone with a gorgeous massive screen that is absolutely tiny, unrealistic at the moment.  It is bigger than the HTC Desire and I would say, while thin, is still quite a large phone.

HTC Desire Cyanogen Mod

I have the HTC Desire phone that to all intents and purposes is a decent phone even by todays standards and was an excellent phone when it was released some 2½ years ago at the time of writing.  That is, with the rather fundamental flaw for a phone that boasts an App Store - a complete lack of internal storage space.  It was built with 512MB flash storage which after HTC had muddled with it was cut to a mere 150MB for users to install applications.  That wasn't so bad back in the day, but these days you just have to install a standard set of Google apps and a few other utility applications and you're done, no more room.

The plight of the HTC Desire was giving me enough grief that I decided to do something about it by flashing CyanogenMod on it.  This like any third-party phone hack is a risky business but I figured if it failed miserably I could always restore the original HTC firmware or more likely get rid of the phone and move to something like the Samsung Galaxy S3 instead.  It turns out Cyanogen is quite the saviour of the HTC Desire and since the instructions for installing it were somewhat less than clear I wrote down what I did based on a Cyanogen forum post and a wiki page, so here it is...

I re-iterate what the forum post states:

#include <std_disclaimer.h>
/*
* Your warranty is now void.
*
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in this ROM
* before flashing it! YOU are choosing to make these modifications, and if
* you point the finger at me for messing up your device, I will laugh at you.
*/

Backup
I found it really useful to take a backup of things that were on the phone and put them to one side for safe-keeping both in case something went a little wrong but also to help with restoring the phone when running the new OS.  There are utilities you can use to backup your contacts (or sync them with your Google account), backup your SMS messages, even backup your saved games if you're that worried about carrying over your Angry Birds records to the new phone.  I also took a complete copy of the SD card so I had all the pictures and other things that had accumulated on there as well.

My Phone
BRAVO PVT1 SHIP S-ON
HBOOT-0.93.0001
MICROP-031d
TOUCH PANEL-SYNT0101
RADIO-5.11.05.27
Aug 10 2010,1752:18

Why don't you just S-OFF?
All the instructions talk about S-ON and how to go about gaining S-OFF without really saying anything about what this is.  It turns out that HTC implement a self-protection feature on the phone that is designed to prevent phone hacks and third-party installations that they call S-ON (presumably security on?).  With this switch set in the "on" position your phone cannot be modified.  Unfortunately for HTC they left a security flaw on some of their devices that means this switch can be altered to the "off" position.  Hence, the first thing that must be done to an HTC phone is use some software to take advantage of this and set S-OFF.

Use Revolutionary to set S-OFF
You need to find out some information about your phone similar to the info I've put above.  This will be different between models but for the HTC Desire you simply turn the phone off, then turn it on again while keeping the volume-down key depressed until the information is displayed.

The guys responsible for the software at revolutionary.io insist that you give them some information on your phone which turns out to be a sensible idea since they can attempt to ensure that this beta software doesn't screw up your device or that if it does they can prevent it being installed on similar devices in the future.  You simply go to their web site, fill out a form and download the software.

Put the phone into USB Debugging mode (Settings -> Applications -> Development -> USB debugging) and run the software.  It needs to be run as root under Linux.  It does it's thing and then reboots the phone, you'll now see you've got S-OFF set instead of S-ON if you view your phone information with the volume-down button trick once again.

One other note about revolutionary, being an open source enthusiast, is that they don't provide the source code.  Doing so would expose the security flaw that the software takes advantage of and thus would allow HTC to patch their phones accordingly and stopping this sort of modification instantly.

Use ClockworkMod to Back Up your current HTC firmware
Revolutionary gives you the option of installing ClockworkMod which is definitely worth doing.  ClockworkMod is an improved ROM manager and boot loader with some more advanced features over the stock HTC loader that comes with the phone.  One of these advantages is the ease of which a full backup of the phone's flash memory can be taken.  This appears to be called a NANDroid backup if you come across that term.  I assume that it's essentially just booting into a small program from the boot manager without accessing/mounting the flash device such that the entire flash device can be consistently backed up - a bit like a partimage or dd copy of an unmounted hard disk or partition under Linux.

Boot the phone into the bootloader (this is the same volume-down while holding power when the phone is turned off trick).  Use the volume keys to navigate up/down the menus and the power button to select the desired menu item.  You need to head for the "recovery" option which will take you through to ClockworkMod.  Select the "backup and restore" option to create a backup of the phone as it stands right now - this will give you a fighting chance of restoring the phone as-is should something go pear-shaped or for any other reason you decide to return to the stock HTC firmware.

The backup is placed on the SD card so you need to boot the phone again, access the SD card from your computer with a USB cable and store the backup image safely away somewhere - this is really important since the SD card will be wiped later along with your backup unless you copy it somewhere else first!

Get CyanogenMod Binaries onto the Phone
I grabbed the following files but there may be later versions now:

The first of these is the CyanogenMod package that will be your new operating system on the phone.  The other two packages are Google apps installed on top of the new OS.  I forget why you need the Google ones, but presume you can't get them from the Play Store on Android.

You'll need to copy these into the root directory of the SD card, still using the stock HTC firmware.

Install CyanogenMod
Boot the phone back into the recovery mode with the volume-down trick and selecting the "recovery" option to access ClockworkMod once again.  This time select the "Wipe data/factory reset" option and let that do its thing.  Then select the "Wipe cache partition" and let that complete as well.  Then you need to select the "Choose Zip from SD card" option and select the CyonagenMod zip file.  This will install the OS onto your phone after which you can choose the "Choose Zip from SD card" option again to select the Google apps zip and once again for the other Google apps.

During the installation you should create an ext data partition on the SD card that will be used a little later after the installation has completed (keep reading).  I have the stock 4GB class 2 micro SD card that came with the HTC Desire still in my phone so I opted to carve that up to use 1GB for data and keep 3GB free for use as a normal Android SD card partition.

Reboot
Reboot the phone and simple as that, you've got rid of HTC and you're booted into something that feels a lot closer to what you get on a Samsung phone i.e. a fairly stock version of Android which in this case is is 2.3 Gingerbread.

Install and Configure S2E
This app is the primary reason for installing Cyanogen, it's not the OS that's so much the saviour of the HTC Desire but the fact that using an app such as S2E (simple2ext) you can format part of your SD card for use as internal storage and thus completely resolving the tiny storage problem.  S2E is only compatible with Cyanogen and as far as I'm aware you can't do anything equivalent in the HTC stock firmware.

Once the phone has booted into Cyanogen for the first time, just fire up the Google Play store and find the S2E app.  Install it to the phone and run the configuration part of the app.  This lets you pick which parts of your installation you want to move to the ext partition you created on the SD card.  You can move over whatever you think you need to and when you're done just reboot the phone once again.

The S2E configuration will have installed a little script into the boot sequence of the phone such that on this reboot (i.e. the next reboot after running the S2E configuration) the script run and move the data you have selected onto the SD card.  It will only do this each time after you've run the S2E configuration and made changes.  These reboots can take quite a while since you could be moving quite a lot of data from your internal storage onto the SD card so be patient while it completes and boots back into Cyanogen.  Once you've done that you're good to go with using the phone again.

Final Thoughts
Having worked through all that, you'll need to tailor your phone to how you like it once again.  Restore the backed up SMS messages, contacts, files, etc.  You'll need to completely re-download any apps you liked on the HTC, configure those, set up widgets, etc, etc.  All standard stuff really, except this time you'll actually have some space in which to install things.

I'm currently using Cyanogen 7.2.0.1 which seems stable enough, it has crashed the phone a couple of times, just after I installed it but now it seems to have settled down and is running absolutely fine.  Running apps from the SD card using S2E can seem to make the phone rather laggy too so tweaking the settings in the S2E configuration to give a good balance of data stored on the SD and on the internal memory seems to be wise, along with tweaking other settings such as the read buffer.  I dropped the read buffer from the standard 2MB down to 512KB and that seems to have removed the lag.  Another way of reducing lag would be to update the SD card, say to one of the latest class 10 cards in which case it'll probably be quicker than the internal memory anyway!  I've not done that as yet and seem to be running just fine as I am for now.

Moving to Talkmobile

Having been with Vodafone for the best part of 10 years I decided it was time to move on and go with another network offering much cheaper rates, no idea why it's taken me this long to be honest.  I decided to go with Talkmobile as they came recommended from a colleague, have great PAYG and monthly rates and are based on the Vodafone network so I'll get the same coverage I'm already used to.

That all sounds great, except for the fact that moving to Talkmobile has turned into a nightmare of sorts.  You'd think it would be simple to switch network operators.  Basically, you get a Sim card from the new provider, ask your old provider for a PAC, then call the new provider and they arrange to transfer your number over.  Not so.  Here's my story.

Thu 29th March
Ordered Sim from Talkmobile.

Fri 30th March
Talkmobile Sim arrived.

Sat 31st March
Called Vodafone to get my PAC which was given with much less hassle than I was expecting, basically I just told them I found a better deal on another network and they gave me the PAC with no further questions or persuasion to stay with them.

Called Talkmobile support to arrange for my number to be ported to the new Sim.  I was informed because it was a Saturday the request would be queued and completed on Tuesday, no later than 5pm - 6pm.  No problem for me, I still had some Vodafone credit to use up as I was on PAYG with them.  I was told to call back on Wednesday after the porting was complete in order to register and set up the top up card.

Tue 3rd April
Called Talkmobile support at around 7pm and explained my phone was still responding to the temporary number and that my number porting had not yet completed.  The number I want to use is now disconnected and not responding at all so I'm now disconnected from anyone calling or sending me texts, either with the Talkmobile or Vodafone Sims.

After some time spent with them on the phone and going through the phone numbers and Sim numbers for both the Talkmobile Sim and the Vodafone Sim they concluded that the porting had been performed incorrectly and that the problem was with Vodafone as Talkmobile don't do their own number porting but use Vodafone to do it for them.  The fix for this is to do the porting again so another request was put in to port my number, but being late on Tuesday this would be queued on Wednesday for completion on Thursday.

Thu 5th April
The porting was successful, my number is now reconnected and people can call/text me once again.  I set about explaining to those people who had contacted me via other means that my number was now working again - I have no idea if anybody else tried contacting me during this downtime, there's no way of knowing.

I figured out I was now on a different price plan to the one I had originally purchased the Sim to use.  I had sent some texts to people to tell them my number was working again but realised I was over-charged compared to the text price I thought I should be paying.  I also noticed that when I checked my balance I was informed I had "3 minutes before lower rate" which wasn't something I would expect to see of the plan I wanted to use, the PAYG Essentials plan.

I called Talkmobile support again to get them to switch me back to the Essentials plan, figuring that during porting something must have got switched over.  The guy on the phone was very confused and told me the price plan was wrong (he easily switched me over to the one I wanted) and that mobile Internet connection, Voice Mail and MMS were not enabled for my Sim which he said he'd never seen before.  He was also easily able to add those to my Sim card so I could use those services.

I took the opportunity to register at this point and to connect my top up card to the Sim as I'd been informed I should do when I first called Talkmobile.

Fri 6th April
I decided to test the mobile Internet connection, not something I use a huge amount as I'm normally connected to a wireless network and hence why I don't bother with a monthly contract and go with PAYG.  The connection didn't work.  After a bit of searching around the Internet I found out that I have to manually configure the Access Point Name (APN) on my HTC Desire Android phone.

This was an entirely new concept to me as in all my years on the Vodafone network I'd never had to manually configure anything at all, it always "just worked" and was configured over the air to my phone.  The best Talkmobile can do here, however, is to provide a page of settings for Android users to manually configure their phones.  I followed the instructions to set up the APN on my phone and was unable to connect, getting a "connection failed" message.

I was going away for the weekend to see family and decided to wait until Tuesday after I could check my APN settings with my friend at work who is also with Talkmobile.

Tue 10th April
I checked the APN settings with my friend at work and was still unable to connect to the Internet using the mobile network, still getting a "connection failed" message.  Time to phone Talkmobile once again!

I spoke to the assistant (who are all very good, clear English speakers by the way - I'm getting a lot of experience with them) who directed me to the web page for Android settings.  In informed him that I'd already entered the settings and needed some further assistance.  As you would expect he double-checked the settings I entered with me and we decided they matched what was required.  He did some further debugging and got me to re-register my phone onto the Vodafone network and to reboot the phone but nothing appeared to work.  I was put on hold while he did some further checks, he came back to me and informed me there was nothing wrong with my phone but the Sim card is faulty.

The resolution this time is that I'm being sent a new Talkmobile Sim which I should receive in 2-3 days time and will have to go through a number transfer process once again when it has been received as I still want to keep my old number.

Wed 11th April
The replacement Sim arrived in the post so I called Talkmobile to get the number swapped between the original Talkmobile Sim and the replacement.  As I've become used to, the chap on the end of the phone was very helpful and arranged for the number transfer to take place.  It is, however, going to take another 24-48 hours to transfer the number again due to the fact they have to send spreadsheets of porting information over to Vodafone by email (so he said) for the number swaps to be done.

Fri 13th April
Checked the new Sim and my original Talkmobile Sim and the number transfer has not yet completed by 7pm - it was due by 6pm at the latest today.  I'm now wondering whether I should give Talkmobile more time or if it's time to consider looking at another network entirely as this really is becoming a shambles.

Called Talkmobile yet again.  I was informed that there has been an issue (which was not specified to me) with the number transfer and that this issue has been escalated but they are not able to give me more accurate information than that at this time.  I enquired when the transfer might happen and if I should wait indefinitely for the transfer to happen.  The guy on the end of the phone really had no idea and seemed to think there was an outside chance the transfer might happen on the weekend but thought Monday was more likely.  I was advised to call back on Monday for further status.

Tue 17th April
Called Talkmobile for a status update of the number transfer as it's still not completed 1 week after I initiated the process.  I'm told now that there is a backlog of number transfers outstanding and that my number swap is in the queue awaiting processing and there is some hope that it might be done by tomorrow.  Talkmobile offered a £5 credit to my PAYG account for the inconvenience.  I'm assured that one of the managers has my issue in hand and is going to encourage the number swapping team to complete the request as quickly as possible.

Wed 18th April
The good, my number has finally been moved across to the new Sim.  The bad, I still can't connect to the Internet - the very problem the new Sim was supposed to solve!  So, guess what?

A familiar call to Talkmobile to ask what's going on.  I'm told that now my number has been moved across I no longer have GPRS or MMS facilities enabled on my Sim card, so I'm back to the same place I was at on Thursday 5th/Friday 6th April when I couldn't connect to the Internet because my Sim is not enabled.  Talkmobile have to once again escalate the problem back to Vodafone, so it's yet another 24-48 hour wait for the turnaround of my issue.  At least this time the Talkmobile contact on the phone appeared to be taking some ownership of the issue and has said she will contact me either tomorrow or on Saturday with an update on the issue.

I feel sorry for Talkmobile in a way, they appear to be attempting to do everything they can to help and get the issue(s) sorted, but on the other hand I really have no idea where the incompetence lies throughout this whole story.  Once again, I'm left wondering how long it will be before I'll be asking Talkmobile for my PAC?  I've come this far so figure I may as well stick with it a little longer, but if it's not sorted fairly quick-smart from now I think I'll be taking another close look at GiffGaff.

Thu 19th April
I received a call from Talkmobile tonight.  Yes, it seems someone really has taken ownership of my problem and I'm finally getting some good customer service in addition to the polite customer service I've been receiving all along.  I was told the problem(s) should now all be fixed and I should try a manual roam on my phone to disconnect from the network and reconnect again before I should attempt a GPRS connection.  I was informed if that didn't work I should try a couple of times just to be sure.  I confirmed with the person on the phone just what that meant and what I should do on my phone.  We agreed to part company there and I would attempt the instructions with another call-back expected on Saturday to check how I got on.

So, I set about having dinner first of all (I was in the middle of cooking when the call came through).  But not entirely eagerly after that I turned on mobile data on my phone, no worky.  I did a manual roam, still no worky.  I did another manual roam, still no worky.  By this time I'm thinking there's still an issue but decided to allow a little time and try again later.

A couple of hours later and I've just done another couple of manual roam cycles and still got nothing.  I decided a to do a full reboot of the phone and when it came back up, bingo.... IT'S FIXED!!!

I'd like to thank the unnamed (unnamed on this post anyway) person on the end of the phone for finally taking some ownership and getting things sorted out.  I'm sure I'll find the network perfectly ok now I've moved across and you've saved your company a disgruntled customer - I'm merely just an annoyed customer now for the length of time and number of calls I've spent speaking to your service personnel.

In conclusion then, it took me eight calls to Talkmobile, one call-back and exactly 3 weeks to the day to transfer satisfactorily from Vodafone while keeping my number.

Fri 20th April
It's not over, until... well no fat ladies here I don't think!  However, with the saga behind us (I say "us" because I'm certainly glad it's sorted and think Talkmobile are too) I received a call this afternoon from one of the managers.  He was very gracious and first of all apologised for all the troubles I've documented above.  We went on to have a nice chat about the situation, whether there was anything else he could do for me, thanked me for my feedback both here and on Twitter, and he was appreciative of both my patience and for the lack of ranting (ranting is not my style) and good humour on this post.  I gratefully accepted a further £20 credit to my account in addition to the £5 I was offered on the 17th.  We parted company on good terms at the end of the call and I pointed out that all my calls have been courteous (as I've documented) and while my problems weren't always sorted out I appreciate having someone easy to understand (UK call centre) and polite on the other end of the phone, and I asked him to thank his staff.

Going forwards, as I've said before I'm really not expecting to have any problems.  My better half has initiated her transfer to Talkmobile, so unknown to them until now, they were in danger of losing 2 customers.  I wish her better luck than I had, but I really suspect my experience is a rare one-off kind of a situation.

So, the big final question is really whether I would recommend Talkmobile.  I'm hesitant either way at the time of writing.  Based purely on my experience joining it would probably be a negative, however, given the way the situation has been turned around, the likelihood it's a one-off, and assuming normal life with my mobile is resumed over the next month or two I would gladly make a positive recommendation.  So essentially it's a "well done" to Talkmobile, you could have properly screwed up and lost custom, but you didn't and I'm grateful for that.

Building Native-like Web Apps for Mobile

Sencha Touch
I spent a few months at the back end of last year working on a project to bring company information down to mobile devices within that company.  I took the decision early on in the project to implement the solution using a web browser to host the application and a Javascript tool kit to fake the look and feel of a native application inside the web browser.  It's this technique and tool kit that I want to focus on here.

The first key decision in a project such as this is whether to go with a native application or an app delivered through the browser.  Since in this particular case the people I was writing for all used iPhones, perhaps the natural choice would have been to write a native iPhone application.  They could, however, just as easily have been using Android or a whole host of other devices.  The real benefit of the native application (aside from speed perhaps) is the ability to interact with the hardware on the device your application will be running on.  Since I did not require access to a camera, GPS, accelerometers or any other phone features, delivery through a web browser was a very realistic option.  In giving up the ability to access these hardware features you gain the ability (if done carefully) to write-once run-anywhere.  That is, the application I came up with would be able to run on an iPhone and Android or pretty much any device with a web-kit based browser and a decent touch screen interface, but at the cost of not being able to use, for example, a bar code scanner.

There are probably others but to the best of my knowledge there are currently three Javascript toolkits positioning themselves for the mobile space.  Dojo MobileJQuery Mobile and Sencha Touch.  Did I just say positioning for mobile space?  Lucky you, if you're playing buzzword bingo, sorry!  At the time of creation, Dojo and JQuery weren't options, they are both only now ramping up development in this area and in the case of JQuery releasing early alpha drops.  Sencha Touch was much more advanced and already at a 0.90 beta when I first started playing with it.  I followed it through the beta development cycle over the summer months in 2010.  Fortunately, it seemed the timing of the production release of Sencha Touch was likely to be at the same time the first phase of my customer work went live so it became the obvious choice.

As a bit of background (and again this is my understanding so may not be absolutely accurate) Sencha was formed by the merger of JQ Touch and the EXT JS toolkit when the original author of JQ Touch, David Kaneda, joined forces with EXT development.  Essentially, Sencha Touch is the next generation version of JQ Touch but now has a small army of developers, a community, and a company behind it to provide a support network.

I quite like the approach of delivery mobile apps through the web browser, where it's appropriate to do so of course.  I've already discussed that in my view you can develop a web app in the browser if you don't need access to the device hardware.  If you don't require that sort of access, it's hard to see why you'd want to develop any other way.  As an Android user, I often get frustrated when apps (pointless or otherwise) are released only for the iPhone simply because that's what an iPhone user expects.  One example I had recently was while reading through my subscription of BBC Good Food magazine who seem to provide only an iPhone or iPad application.  In fact if you go to their web site they also provide a Chrome app and a Samsung Wave app, why I wonder?  The magazine simply displays content with little or no interaction from the user, sure the online versions contain video and other features you can't put down on paper but there's nothing there to suggest the maintenance of a myriad of different apps for different mobile platforms is worthwhile.  Not to mention my surprise that an organisation such as the beeb are carving up their community by device type rather than, as we'd expect, supporting the masses as we saw with iPlayer coming to Mac and Linux after their early Windows only versions.  Surely, a javascript toolkit approach here would be better?

In the early days of my playing around with the Sencha Touch beta code I wrote a mobile version of a badminton web site I maintain.  It's not particularly advanced and certainly not representative of all the things you can do with a toolkit like this but thought I'd put it out there anyway.  It should, at the time of writing work with iPhone, iPad, Android and Blackberry devices and quite probably with others too.  If you're trying on your desktop then make sure you're using a WebKit based browser such as Google Chrome or Safari, or for something a little bit different the great little browser Midori.  For a better selection of demos take a look at the Sencha Touch Demo page and for a developer perspective on the widgets and options available in the toolkit have a look at their Kitchen Sink demo which gives a simple overview of many of the components.

Killer Android Apps

There have been plenty of articles written around the web about the top or best Android apps.  I always find these lists very subjective but they are at least a good way to share what you've found and a great way for other users to discover new apps they've not tried yet.  I've been using an HTC Desire for over six months so I'd consider myself a reasonably experienced user now.  It's a world away from the Nokia N73 I was using previously and my first foray into wifi-enabled portable touch screen devices (for personal use anyway).

Rather than bother myself considering which is the most useful, here's an alphabetical list of the apps I'm using right now.  I'd love to hear what other people are using for similar things, there's so many good apps out there I'm sure to have not checked them all out.

Angry Birds (Game)
There's loads of games on the Android platform but this is the one I've spent most time playing.  I'd be very surprised if you haven't come across it by now but if not then give it a go.

Barcode Scanner (Bar Code Scanner)
When I first got the phone I really didn't see the point of having a barcode scanner.  It has, however, proven quite useful on occasion.  I've yet to use it to scan any tangible product in a shop for example.  Where it does come into its own is opening links from the web on your desktop in your mobile browser.  I have, on more than one occasion, now come across sites that provide a QR code (2d bar code) that gives you a link to a web page or even better gives you a link directly to the right app in the marketplace.

eBuddy (Instant Messenger)
A multi-protocol instant messenger for Android.  It connects to all the instant message services I use and gives me a nice way to increase the amount of time I spend logged into them so I can still be contacted even when not directly using a computer.  I use a multi-protocol client on my desktop so it's great to find a decent one on the mobile platform which means you don't have to run individual apps for each of the services you want to log into.

ES File Explorer (File Manager)
The version of Android I have (2.2 from HTC) doesn't come with any sort of file manager or mechanism for installing APK files.  ES File Explorer is excellent for both of these tasks.  It's the best and most flexible file explorer I've come across but for some reason isn't the most popular or widely known/used.  It has some neat advanced features such as the capability to connect to files over FTP/Samba and integrated bluetooth, etc.  A real step up from any of the other file managers I've seen on Android.

Google Reader (Feed Reader)
As I write Google have just released the official app for their Reader service.  It's definitely an improvement over the mobile version of Reader in the web browser so I'd recommend it just for that.  However, it also seems to be (IMHO) better than other popular reader apps such as Feedsquares.  Personally, Reader is the only internet based feed reader I use so having something integrated to it on my phone is fab.

Maps (Navigation)
Google maps in an app.  You've almost certainly already seen it, but I still use it a lot and like it so it makes my list of useful apps.

RAC Traffic (Traffic/Navigation)
This is one area where I've not searched around much for other apps in the field.  The RAC traffic app shows you where the traffic hot spots and problems are on roads in the UK.  It's really useful to check this (when I remember to do so) before going off on a longer journey in order to help pick the best route that day.  I'm sure it can't be the best app out there for this sort of thing so would be interested in hearing about others too.

Scrobble Droid (Social Music)
I find the last.fm service on the Internet a really useful way to discover music and share music with friends.  I don't tend to use the last.fm clients to listen to music very much so that app doesn't feature on my list.  However, this is a really tiny but useful app (more of a utility really) that will send the tracks you play in the Android music player to last.fm.  This means anything I listen to on my phone gets added to my last.fm account and helps build my profile on the site.

Skype (Instant Messenger and VOIP)
Either you use Skype or you don't and you know what it is or you don't.  The official client for Skype on Android seems to be pretty good to me and a neat way to make free calls to friends over your wireless network.

Todo List Widget (Productivity)
I've tried several todo list apps and widgets on Android but essentially wanted something stupidly simple that would literally just shove a list of stuff on the desktop and allow me to add/remove/tick off items as I deem necessary.  Through a recommendation from a friend I found a widget called "Todo List Widget" which does just that, it's everything I wanted, very very simple and easy to use.  If you want something advanced or more pervasive across devices this isn't the one for you, check out something like Remember The Milk instead.

TweetDeck (Social Client)
I've ditched the Facebook and Twitter apps in favour of using the same app on the phone as I do on the desktop.  I've never experimented with Adobe Air but TweetDeck seems to be a great example built on that platform.  I find TweetDeck much more usable than the other apps and it does seem to just work, is intuitive and nice to use.  Once again a great user experience wins the day on the mobile platform.

Youtube (Video)
Ever tried watching videos in the web browser, they're rubbish right?  The bulk standard youtube app sorts this out nicely, giving a much better view and size of the video and easy to use controls.

I found some other useful apps on my phone too that I have used briefly but can't necessarily recommend with the apps above because I've not used them extensively enough.  These are "AndChat" for IRC related chats, it seems to be very similar to xchat but for Android; "c:geo" for Geocaching as it appears to be a fully functional geocaching app you can use out in the field while caching; and "Gesture Search" which is a Google app which allows you to very neatly search for things (apps, contacts, etc) on your phone via gestures.

In full Trevor McDonald style I'll sign off this post with an "And finally" thought... wouldn't it be really useful to have a social market place where you can suggest and rate apps to friends?  The ratings system in the market place is all very well but isn't particularly relevant to me.  My friends and contacts know me best and I respect their recommendations much more than a generic ratings system.  This sort of functionality would certainly remove the need for this type of blog post entirely.

Mobile Internet over Bluetooth Part 2

Following on from configuring your mobile phone for Internet over bluetooth...

Once you have your device configured, the next thing you need is to connect over bluetooth to some machine to route your traffic for you. I have a laptop with built-in bluetooth and I'm running Redhat Enterprise Linux version 5. You need to configure and setup bluetooth, a ppp bluetooth daemon, and some simple routing to get your phone on the Internet. First off you need to pair your laptop with your phone, there's plenty of info on how to do this around the web and it's simple enough I'll assume you now have a GnuBox configured phone paired with your laptop.

First off you need to set up Internet Connection Sharing (in windows speak) or IP Masquerading (to anybody who know's what they're talking about), on Linux this is done with iptables. Insert the following rules:
  • iptables -A FORWARD -i ppp0 -j ACCEPT
  • iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
  • iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
The last rule for the postrouting chain should point to the interface on your laptop where you have an outgoing Internet connection enabled. In my case this can be either eth0 (the first Ethernet device) or wlan0 (my wireless device, could also be ath0, eth1, etc), so I insert two rules to cover both devices, even though I only show one of these above.

Enable IP forwarding:
  • echo 1 > /proc/sys/net/ipv4/ip_forward
With your bluetooth device turned on, and previously paired with your phone, now all you need to do is set up a ppp daemon listening for incoming bluetooth "serial" type connections. This can be done in a couple of easy commands, first to add the serial protocol to your bluetooth SDP server, then to set up the listening daemon:
  • sdptool add SP
  • dund -n --listen --msdun noauth 192.168.1.1:192.168.1.2 crtscts 115200 ms-dns lock
The second command will start a dun daemon on the command line that doesn't background itself so you can debug your connection if necssary. It will set up a point to point connection between your laptop and the bluetooth connecting device with IP addresses 192.168.1.1 and 192.168.1.2, you can replace these with any addresses you like. It will also ensure the connection is operating at a sensible speed and you should provide a DNS server that will be passed to the device to resolve Internet server names - you can see this from the contents of your current /etc/resolv.conf file.

Start your web browser on your phone and tell it to connect using the Bt access point you have already configured. On the command line on your laptop you should see something similar to:
    Using interface ppp0
Connect: ppp0 <--> /dev/rfcomm1
local IP address 192.168.1.1
remote IP address 192.168.1.2
This shows your phone and your laptop are now connected through a ppp serial type connection over bluetooth using the /dev/rfcomm1 device, your phone will have the IP address 192.168.1.2 and your laptop ppp0 device will have the ipaddress 192.168.1.1. Your phone should have 192.168.1.1 set as the gateway automatically by GnuBox and the DNS address will be passed when dund sets up the ppp connection as per your command line options. Once connected, you should be able to browse the web on your phone for free through your laptop!

As I said, I run Red Hat, which provides for several handy interfaces to help with the setup of Internet over bluetooth from my phone. Here are some further instructions specific, but not limited to, how I've done things on my machine so I everything happens neatly during boot and I don't need to run any commands to set up the connection...
  • You'll want your iptables rules in place when you boot, you can append rules to /etc/iptables.d/ to do this:
    • Add the following lines to a file in /etc/iptables.d/filter/FORWARD/
      • -A FORWARD -i ppp0 -j ACCEPT
      • -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    • Add the following lines to a file in /etc/iptables.d/nat/POSTROUTING/
      • -A POSTROUTING -o eth0 -j MASQUERADE
      • -A POSTROUTING -o ath0 -j MASQUERADE
  • Use sysctl to configure IP forwarding at boot time
    • Add (or change) the following definition in /etc/sysctl.conf
      • net.ipv4.ip_forward = 1
  • Register the serial protocol at boot time for your SDP server
    • Add the following line to the start definition after SDP is started in /etc/init.d/bluetooth
      • sdptool add SP
  • Start the dund daemon at boot time with the correct configuration options
    • chkconfig dund on (to start the service at boot time)
    • Create a file called /etc/ppp/peers/dun with the following contents
      • noauth
      • 192.168.1.1:192.168.1.2
      • crtscts 115200
      • ms-dns
      • lock
    • Edit the file /etc/sysconfig/dund so you have the following configuration
      • DUNDARGS='--listen --msdun call dun'
These settings should be enough that you can connect your phone to your laptop without having to modify any settings or start any services every time you boot. Once all the services are configured and started, and your phone is paired with the laptop, you will be able to connect to the phone's Bt access point to access the Internet any time you're in range of your laptop.

Mobile Internet over Bluetooth Part 1

I'm one of these "mobile phones are for calls and texts" types, but last year I bought a new phone, shoved in my PAYG SIM, and set about working out how I could connect it to the Internet. I have a Nokia N73 so it doesn't do wifi but I still wanted to be able to synchronise to my Google Calendar. For me this doesn't involve using the Nokia tool set as they're all Windows based. I found out it's possible to do IP over bluetooth on the N73 so I got it going that way. This is great for cheap data connection, I can maintain a PAYG SIM and get as much data as I like for free, but obviously only when I'm in bluetooth range of my laptop. That's absolutely fine for something like calendar synchronisation, which is all I need.

What's sparked off this post is I've just got a new laptop and so I looked out my notes on how to do IP over bluetooth once again and have now got it going on my new machine too. For the benefit of anyone else who might want this type of setup, here's what I did for the phone (how to set up the data connection on the laptop will be coming in Part 2)...

My N73 runs Symbian S60 version 3. This type of phone has all the required software and hardware built in to do what I want. All you need to do is alter the communications database to set yourself up a bluetooth access point and you're done. The problem here is, the mobile network operators don't want this option exposed on your phone so you have to pay them for a data connection. With a little research you can discover third party open source apps to make the necessary modifications to your database to enable these options, I found and am using one called GnuBox.

GnuBox works nicely enough, but getting it going on S60v3 can be tricky. The developer makes the app available for S60v2, hence it doesn't need to be signed in order to access the features locked down on your S60v3 phone. GnuBox requires write access to your comms DB which requires the app to be signed on S60v3, you can't download a signed version, so we're into the realms of self-signing in order to get this working on S60v3. So for S60v3 you need to get hold of a tweaked version of GnuBox, sign it for your phone, install and configure.

Grab the S60v3 version (search for gnubox_s60v3.sis) which must then be signed for your phone (since writing the instructions below, it's become possible to sign symbian apps online at symbiansigned.com):
  • sign up for an ID at http://symbiansigned.com
  • download their certificate request application
    • sadly this is a windows only app, but find yourself a windows box and install+start the app
    • Select an output file for your *.csr file (say gnubox.csr)
    • If you don't have an ACS pub ID, select No. Then select your key output filename *.key (say gnubox.key) and pick a password
    • Fill out the personal info and your IMEI number, find your IMEI by typing *#06# on your phone
    • Add all the capabilities to your certificate request, from the left box to the right
    • Log into symbiansigned.com, click the "My Symbian Signed" tab and upload your gnubox.csr file.
    • You will automatically be taken to the dev cert page. You can download your certificate file (*.cer) to your machine.
  • now you need the signsis files package to sign your app for your phone with your developer certificate
    • run the signsis program, signsis.exe -o -s -v gnubox.sis gnuboxs.sis gnubox.cer gnubox.key [ENTER]
    • This will use your certificate file and key to sign the gnubox.sis file and output gnuboxs.sis for your phone.
    • You can copy gnuboxs.sis to your phone and install it. You will get a warning about it being signed with a developer certificate!

You now have the software in place to configure Internet over bluetooth on your phone, so lets do just that:
  • On the phone go to, Tools -> Settings -> Connection -> Access points, to set up a new access point
    • Options -> New acces point -> use default settings
    • Name the access point, Bt, GnuBox uses this name internally so make sure it is called Bt case sensitive (it stands for bluetooth, duh!).
    • Change the data bearer to "Data call"
    • Set any old dial up number, say 321, this is not at important as it will be nulled by GnuBox later anyway
    • Set a username/password combination with prompt password set to No. Say abc/xyz for username/password, also not important.
    • You should be able to leave the rest of the settings, including, options -> advanced settings, alone!
  • Now start GnuBox, it's installed and located in your applications folder.
    • The phone number you just entered is printed on the screen, but the ModemBearer should still show nothing
    • Go to Options -> Install -> Create records
    • Exit GnuBox with Options -> Exit
    • Start GnuBox again, the ModemBearer should now be set (the exit of GnuBox was just a sanity check to show you this)
    • Select Install -> Set RAS login script
    • Then select 2box bluetooth -> Serial Port, which will tell GnuBox to set a point to point connection between 2 machines when you "dial" your Bt connection later

Thats it, you now have Internet over Bluetooth capability on your phone. The next step is to connect to another machine to act as your router to the Internet, but that's for my next post.