Building the Perfect Cellphone: the #iPhone, #droid and #N900

At the most recent Woodbridge Board of Education Meeting, Superintendent Stella spoke about the school’s commitment to constructivist education “which argues that humans generate knowledge and meaning from their experiences”. When my eldest daughter was born, I busily read Piaget, and I told my daughters that they were free to play any computer game they could write.

Fiona, my youngest prefers broadcast media to computer games, so it should be no surprise that she has her own radio show. Sometimes, as she watches television, I hear ads for Build A Bear workshops, which as much as I dislike stores in malls that advertise on children’s televisions, the idea of building one’s own toy has always appealed to me.

It is with this in mind that I wrote my blog post about the Nokia N900. I want a cellphone that I can build my own applications on. Friends have recommended that I start developing for the iPhone, and other friends have done so, but have spoken about many difficulties they’ve run into. I haven’t made any effort at developing for an iPhone.

I thought that the Android might be the platform I want to develop on. I downloaded an Android SDK onto my Linux laptop and tried running that. I got far enough to start up the Android Emulator, but not much further. I also tried setting it up on my Vista laptop, but haven’t gotten to the point of starting successfully starting the emulator.

With that, I moved to the N900. First, I tried installing with the maemo-sdk-installer.py. Unfortuantely, it did not recognize Ubuntu 9.10 (Karmic). I also tried following the instructions at http://maemo-sdk.garage.maemo.org/install-ubuntu.html but could not get that to install. It may have simply been that the repository was down.

So, I attempted installing using the instructions at http://wiki.forum.nokia.com/index.php/Maemo_5_SDK_installation_for_beginners. This page provides very good details and I ran through step after step without major problems. I will note that they say you must close the terminal window after you create your Scratchbox userid. I failed to do this and had lots of different problems getting my userid to work in Scratchbox. After several different attempts, it finally started.

Following through the steps, I finally got it to install and to run properly. The final hurdle I had in setting up the emulator was that it defaults to setting the nameserver to 127.0.0.1. Since I didn’t have a nameserver on my laptop, I couldn’t find any websites. I went into the /etc/resolv.conf file, put in a valid nameserver and everything started working quite nicely.

Currently, this is working just in X86. The N900 uses an ARM CPU, which the qemu program should be able to emulate. However, I’m currently getting core dumps when I try to run in ARM mode. This means that I probably won’t be able run any binaries for the N900 yet.

However, I should be able to do some software development. The documentation with the Android recommends using Eclipse, and I’ve downloaded this and kicked it around a little bit. There are a bunch of other projects that I want to use Eclipse on as well. The other development environment that I want to kick around is QT. I’ve installed QT on both my Linux laptop and my Vista Laptop, and I’ve built a couple sample applications.

One project I’m interested in playing with is QWaveClient. I’ve been running the Windows binary on my Vista machine, connecting to my FedOne server. One of my next projects will be to try and compile QWaveClient for the N900.

All of this fits into my interests in lifestreaming and playing with real time data. How can this integrate with tools like Skype, IM clients, Twitter, StatusNet and so on? Can I use something like DataTurbine on the N900? Can I feed data from the phone calls and text messages that I send and receive into a DataTurbine of LifeStream?

There are plenty of interesting things to explore on the N900 and right now, I’m doing it all from emulation mode. So, are you looking at a cellphone where you can construct your own applications and experience? Let me know how it is going.

(Categories: )