MeeGo – The Idea vs The Product

The more I have been reading about MeeGo, the more I get excited about its potential, but I also am worried about the way its going to be succesful.

The idea behind the MeeGo handset has me hopeful for the future of an open mobile phone operating system. Meego is being developed in the open, with a documented roadmap, scheduled releases, weekly meetings, etc. MeeGo has more of an open approach than Android where the latest code only gets released with major releases, glimpses of each revision and essentially everything is controlled by Google. The MeeGo approach sounds better to me as someone who loves open source and uses it on a daily basis.

Philosophical differences aside, both MeeGo and Android have me fearful of running into the same problem. The product of open source software running on closed hardware with closed off access. Sure, we can gain root access by literally breaking into these devices, but we shouldn’t have to do that.

The phones I think show both sides are the Nexus One, Nokia N900, and the T-Mobile G2. The Nexus One and N900 for the most part are good examples of what I would like to see with MeeGo. They are given good specs, run stock software without any customizations, but most importantly, give you the option to run whatever you like with your device. On the N1, you can unlock the bootloader, load your own rom, overclock, underclock, even run MeeGo, etc. The N900 follows the same idea as your only limited by time and imagination. With the exception of proprietary drivers these devices run open source software with open access to make changes as you wish. Then we have the T-Mobile G2 that runs Android but has been locked up by the carriers and manufacturers. It runs almost stock Android except for the pieces T-Mobile has deemed to take out. The G2 isn’t the first Android device to be locked up, buts its the most recent and most active in terms of disallowing permanent access to the entire phone. I can imagine that this trend will continue if perceived as a success by the carriers and manufacturers.

This is what worries me about MeeGo. MeeGo in its purest form is open to take and do anything you want with it. This is great especially if you manufacture products. In order for MeeGo to be successful on handsets it needs to be in the hands of regular consumer hands, not just the geeks. And what could manufacturers and carriers do with it? Take it, mold it, fix it up, and lock it up, cancel updates, and say live with it. Ultimately, we would be no closer to a truly open handset that is ours.

I could be mixing apples and oranges. Granted, the N1 and N900 are unlocked and unbranded. I’m also looking at this from a U.S. smartphone market perspective. Nokia (the main contributor to the MeeGo platform) is trying to catch up in this market and the percentage of users who want this open handset is marginal at best. Will Nokia or other manufacturers bend to the will of the carriers and follow the same path with MeeGo as HTC, Motorola, Samsung and the likes have done with Android to get their cut of the US market? Only time will tell and I’m interested to see how it plays out.

What do you think?

iPad: First Impressions

My impressions on the iPad.

The iPad from a design point of view is what you expect from Apple. I already had a MacBook Pro prior to getting the iPad which is partly why I like their products. They are built very well and are “easy on the eyes”, and the iPad is no exception. The large glass screen, clean lines and minimal buttons and design choices are very nice and well thought out. Of course there are things the iPad could have like a usb port, camera, sd card slot, hdmi out, or whatever else, but for the most part I don’t need those things here. If I had to choose it would be the USB port because it allows the most flexibility in using other things, mainly charging other devices for me.

The iPad does some things very well. The virtual keyboard works great for me in portrait mode just using my thumbs. The landscape keyboard works well also, but i wouldn’t be writing anything super long on it. For cranking out short emails, blog posts (like this one), tweets, the virtual keys work well enough. The browser is fast and very easy on my eyes. I use the browser more than any other apps and for the most part it does what I need it to do. It allows me to read a lot more information than I would normally on my Nexus One because of the large screen. Despite the lack of flash video, other than the video player choking on a few videos, watching videos on most sites I visit works pretty well. I do wish there was an option to disable images in the browser when I’m tethered to my phone. I am new to the iTunes, iBooks, app store experience and hadn’t previously purchased any content on iTunes, but it does make a lot of content easily accessible which is always nice. The app store is great for it’s large selection of iPhone apps and it’s upcoming selection of iPad apps, although I wish there were easier ways to find free apps and games without digging throughout the entire catalog. I also wish I didn’t have to connect the iPad to a computer right out of the box, but I guess this is something Android does very well and has me spoiled. If I had to pick a favorite app besides the browser, it would be Twitterific. The battery life is very good, which I think maybe it’s strongest point so far. I’m currently running on two days without charging. I haven’t been hammering it the whole time, but I pick it up and use it frequently without losing much battery life. My only real issues have been with word autocorrection not working right, and wifi acting weird sometimes, but overall it’s been solid.

This is where things get tricky for me. I like a well packaged product just as much as the next person and the whole Apple, iPad, iTunes ecosystem works well as long as you work within those confines. I call them confines because as soon as I step out of the Apple line of thinking with easy, simplicity, and boundaries, frustration sets in. I don’t care if you think Apple’s way is the best thing ever. I would agree in some cases, because the level of the integration Apple puts into it’s products is great, but it’s a gift and a curse. Maybe it’s just the side of me that loves freedom of choice. Apple makes great software built on open standards, but locks them up. Why can’t we have both? Why can’t we (the consumers) have a great experience, along with (the geeks) having the ability to choose those things that we prefer? Maybe thats an argument for a different day.

I like well built products, which Apple excels at, but I like free and open source software also, which Apple does not make. That’s the biggest dilemma I have with Apple in general. Is the experience Apple provides enough for me to hand my life over to them with no means of easily taking it back? It’s all or nothing and only time will tell.

Nokia N900 with Maemo and Android? Yes please …

Its more proof of concept, but its real and it could be spectacular :-) 

Wubble : Controlling Bluetooth DUN with upstart on the n900

Wow, it’s been a long time since I posted anything. But I’ve got something worth coming out of hibernation for.

Perhaps, unsurprisingly, I got myself an n900 and it’s a great device; I’m using it as my primary phone and it really is impressive.

One thing that doesn’t work out of the box is DUN (Dial-Up Networking) over Bluetooth. DUN is one of the simplest ways to tether a computer to a phone, so it’s a useful feature to have. (The n900 does support DUN over USB by default). Fortunately, it’s very easy to turn on, as documented on the maemo wiki. However, if you want the feature to always be ready to go (say, after you restart your phone), you need to do a little more.

Like modern versions of Ubuntu, the n900 with Maemo 5 uses upstart to control most startup services, such as bluetooth. So, if we want the DUN service to be nicely coordinated, we should start it with upstart too. Here’s my script:

description "DUN over Bluetooth"
author "Philip Langdale"

console none

start on started bluetoothd
stop on stopping bluetoothd

pre-start script
sdptool add –channel 1 DUN
end script

exec rfcomm -S — listen -1 1 /usr/bin/pnatd ‘{}’

post-stop script
sdptool del `sdptool browse local | grep Dial-Up -A 1 -m 1 | tail -n 1 | cut -d ‘ ‘ -f 3`
sleep 1
end script

So, what is this doing? As upstart is pretty new, and quite different from old style init-scripts, it’s worth explaining a bit.

The description and author fields are just for documentation. respawn means to restart if the main process exits. console none means don’t log stdout or stderr anywhere.

Now, the start on and stop on directives are the heart of Upstart. They allow you to express dependencies between services, events, and each other. In this case, we want to start the DUN server after bluetoothd is started and stop it as soon as we start stopping bluetoothd. You can express multiple start and stop conditions and the upstart site documents these.

With that done, we can move on to the functional code. From the wiki page, we see that the invocation of rfcomm is the key call. What happens here is rfcomm will wait for an incoming connectio request on channel 1 and then spawn pnatd and connect it to that channel. When the connection is complete, pnatd will exit and then rfcomm will too. Upstart either tracks a particular binary or a script. In either case, it execs the binary or script and watches the resulting process to see when it exits. So, we can conveniently transfer the rfcomm command line to an upstart exec directive.

However, there’s more to do. We have to register the service with sdpd so that clients know we offer DUN, and we have to unregister when the service is terminated. This can be done with the pre-start and post-stop blocks. This also gives us a place to enforce the one second delay suggested by the example script.

Registering the service is easy, but unregistering it is a bit of a chore. The example script can avoid it because it uses the while loop, but for upstart, the entire service is ‘inside’ the loop, so we must unregister to avoid adding an extra registration each time. The problem arises because you can only unregister by the service record ID which is selected at registration time, but not provided back to us. So, we must look for it ourselves. The long command line searches the list of services for DUN and then extracts the ID.

Now, all you have to do is drop the script into /etc/event.d/ and then execute start bluetooth-dun, assuming you name the script “bluetooth-dun”. Obviously, you must be root for both these steps.

You can download the script from here. I’ll probably package it up as a deb in due course, but I don’t have a working scratchbox environment right now.


The Nokia N900 needs to DEHUNGERIZE!

8 hours is all I can squeeze of the N900. This is with the 3G radio turned off all day, no push email, no wifi, no bluetooth, no gps, screen turned all the way down. Something has gotta give or this will be the most expensive paperweight I carry everyday.

Anyone have any other tips to improve battery life?

Nokia N900 First Impressions

I’ve had the much anticipated Nokia N900 for a little over a week now, and decided to give some first impressions about the device. To give a little background, I am coming from a T-Mobile G1 running Android 1.6. Prior to that I used a Blackberry Curve, Nokia E61i, and a T-Mobile Wing, and also have owned the Nokia N800 so I’m familiar with previous versions of Maemo.

Things I like:

  1. Build Quality – the N900 is very nicely built. It definitely feels solid in the hand, and feels like it can take a drop or two. I like my phone with a little weight on it, and the N900 doesn’t disappoint. It doesn’t feel much heavier than my G1 which was about the same size.
  2. Screen – coming from the T-Mobile G1, I only went from a 3.2” screen to a 3.5” screen, but the resolution makes all the difference. The screen is crisp, and bright enough for me even on the lowest setting. Even though the screen is resistive, I enjoy using the screen once I got used it coming from a capacitive screen.
  3. Camera – I’m not much of a photographer, but I could instantly tell the difference in speed and quality of pictures with the N900. I can see myself taking more pictures just because its fast and the pictures come out very nice. Plus the N900 comes with picture editing tools out of the box which already came in handy during Thanksgiving.
  4. Multiple Desktops – having multiple customizable desktops is nice, as I can set them up however I want to with whatever I want to. I had this option before, but was restricted to a grid of icons and 3 desktops on the stock Android device, even though you can get additional desktops. The N900 desktop is only limited by the amount of stuff you are willing to stuff on it.
  5. Media Player – it feels good to finally have a media player that can play videos without any conversion. So far I’ve only found 1 video that wouldn’t play on the N900, and it was due to an unsupported audio codec, but options KMplayer from the repository was able to play the video. Videos look great and play very smoothly.
  6. Developer support – Maemo has a wide range of options for developers. Whether your a casual developer like me or serious software developer, there are many different languages that are supported and documentation is available.

Things I love:

  1. Web Browser – I spend alot of time browsing on my mobile phone and the N900 web browser has handled every web page I have thrown at it so far. Coming from the Android browser I almost had to change the way I went about browsing websites. Browsing on the n900 is the best I’ve ever used. Its not perfect, but it suits my needs very nicely. Flash pages load with ease, and I’m getting alot more use of the browser then I was able to previously.
  2. Keyboard – I love hardware keyboards, and even with the 3-row keyboard the N900 keys feel nice to type on. The keyboard was a bit of an adjustment with the offset space bar, but after a few minutes I was able to crank out messages with ease.
  3. Speed – the N900 is fast, fast, and did I mention fast? The overall operating system is very speedy. Transitions, apps, webpages all load up quickly, even when i’m running multiple apps at the same time. The cpu and available ram in the N900 definitely make for a better overall experience than what I previously had.
  4. Connectivity – wifi, bluetooth, gps, 3G data, threaded conversations, skype, and it finally makes *real* phone calls :-)
  5. Freedom – Maemo is based on linux, which I use as my primary operating system, so the linux geek in me loves to have a full blown linux computer in my pocket. It gives me the option to pretty much do whatever I want with MY phone.

Things I don’t like (things that need improvement):

  1. Web Browser – although I love the web browser, its still missing a few features I would like to have. Features such as browser reflowing of text (I don’t like playing finger shortcut twister). Being able to use the directional keys more in the browser is something I also would like to see. I know the phone has a touchscreen, but I also like using the hardware keys, and I think aren’t being used as much as possible. Occasional browser crashes have also occurred here and there with no apparent reason.
  2. Battery Life – The battery life is my biggest hurdle so far. My day usually consists of taking the phone off the charger at 6 a.m., and my phone is consistently just about dead by 2 p.m. even with light/moderate use. There are many contributing factors, mine being signal strength, but its still an issue nonetheless. I’m not expecting spectacular battery life with all of the features the N900 has, but being able to get through a full day of moderate usage would be very nice.
  3. Navigation – even though overall Maemo is pretty easy to use, I think its almost too simple. Applications seem to take too many clicks to get back and forth in some places.
  4. Community – I know that the N900 isn’t a consumer device, but consumers(non linux geeks) are going to buy this device and when they need help, they have to resort to using the forums, which I find incredibly painful at times. I think the linux community has a certain stereotype that comes with it in general, and while this isn’t the case all the time, I think people hold up the stereotype almost too well sometimes.

Things I don’t care about either way  (yet)

  1. Apps – there are a few number of good apps available for Maemo 5 already, with more supposedly on the way. The browser takes care of most of my needs, but things like dedicated social networking apps, location-aware apps, and games are definitely needed.
  2. Missing features – MMS, portrait mode support, and other features are already in the works, so I’m not too worried about these at this point in time. Maemo has very good community support from a developer standpoint that has been established for years, and will continue to push open source, which ultimately is a good thing.
  3. Polish – Maemo 5 definitely needs some polish in certain areas, but seeing as how its supposed to be an early adopter device, fixing those things will only enhance the overall experience which isn’t bad at all.

Overall, Maemo 5 and the Nokia N900 is exactly what I hoped it would be. Its fast, responsive, and a well needed change of pace, and for the most part pretty feature complete. I can only hope that Nokia builds on these positive steps they have made with Maemo. There are lots of people who want to see Maemo thrive, myself included.

I hope to do a full review after some more time with the Nokia N900, but its definitely here to stay. If you have any questions, thoughts, or anything you would like me to test out, feel free to leave a comment or send me a reply on twitter to @bdogg64

Nokia N900 + Posterous Bookmarklet = Instant Blogification

If you love the ease of use of Posterous and you are one of the lucky people to own a Nokia N900 right now, you will find the two combined make it easy to post from web pages. You can use the Posterous Bookmarklet in the N900 web browser.

1. Go to
2. Long press the “Share on Posterous” and click “Add Bookmark”.
3. Give it a name and save it.

If you want to share a page, just go to that page, Go to your Bookmarks and Click on your Posterous Bookmark and up pops the Posterous window.

I imagine this will work with other Bookmarklets as well.

See and download the full gallery on posterous


Get every new post delivered to your Inbox.