Archive for September, 2006

E61 Access Point Groups, Push Email, and Certificates

Friday, September 15th, 2006

So it looks like access point groups are working on the E61 now after the firmware update. I have an access point group defined that includes my home and work wifi network as high priority, and a low priority access point corresponding to cellular. I still can’t use that access point everywhere, the groups don’t show up in some applications. But the apps it does appear for seem to be working. And one of those apps is the built in messenger, which includes email support. Supposedly it had push email support, in the form of IMAP IDLE, but everything was so buggy before that I didn’t bother using it too much before.

Now however things look much better. I got an email on my phone on my way to work this morning after having used the messenger from home wifi for a bit. The client swapped over to the work access point when I got into the office. All without me having to poke at the thing at all, just like magic. Or a sufficiently advanced technology, always hard to tell those apart.

So it might be worth posting about how to get a self signed certificate working with the E61, cause with everything else working all automatically it’s annoying having to keep accepting what the device thinks is an invalid certificate. I’m using SSL with both IMAP and SMTP on my server, cause that’s just how I roll.

I’m running Debian testing/unstable with courier handling the email, most of the config done via the courier-webadmin interface, and processing/delivery done via maildrop. Everything installed in a pretty much working state, generating certificates and pretty much setting itself up. A little poking around to get authenticated SMTP working, but not much. We just need to do two things really to get this working:

  1. Create new certificates for the IMAP and SMTP services using the name you type into the email client as the common name field in the cert. Here are the commands I used (cd /etc/courier first):
    • openssl req -x509 -nodes -days 3650 -subj ‘/C=US/ST=California/L=Palo Alto/CN=madgat.com’ -newkey rsa:1024 -keyout imapd.pem -out imapd.pem
    • openssl req -x509 -nodes -days 3650 -subj ‘/C=US/ST=California/L=Palo Alto/CN=madgat.com’ -newkey rsa:1024 -keyout esmtpd.pem -out esmtpd.pem
  2. Then you have to get the certificates into the device. Which means tranforming from the format that the servers use into the DER format:
    • openssl x509 -in imapd.pem -out /somewhere/web/reachable/imapd.crt -outform DER
    • openssl x509 -in esmtpd.pem -out /somewhere/web/reachable/esmtpd.crt -outform DER

    I named my certs *.crt because my system already had a type setup for crt in /etc/mime.types that defined it as application/x-x509-ca-cert content. So then I just had to point the khtml based web browser to the two files. Each one popped up a ‘download’ dialog, which when complete offered the option to accept the cert for use and a tag for the certificate.

And that’s it, my email now seems to flow freely just about all the time. A few more trips back and forth across access point boundaries should establish how well it works. But so far it’s looking pretty good.

SMS Accelerator for the E61

Thursday, September 14th, 2006

There’s an “SMS Accelerator” app that appeared on the E61 downloads page at Nokia. Russ mentioned it last night, and then I got a comment on my post from last night from Techmundo (great site!) recommending it. I’ve definitely seen sending SMS take a long time on the E61, but I assumed it was network problems.

So I have to follow suit and ask what everyone else is asking. What is this thing? What does it do? How does it “accelerate the sending of SMS”? Sometimes stuff like this ends up being a perception fix. The app pulls the SMS out of the outbox and holds it in another queue so that you don’t see the little outbox tray icon, making the user think that the SMS has been sent faster. That I really don’t want. However, if it’s a fix to the way the networking is handled so that an SMS is prioritized ahead of other traffic and activities that could block sending, perfect. Anyone know?

Trying the E61 Firmware Update

Thursday, September 14th, 2006

I just installed the firmware update for the E61. That’s right, all by myself I installed it. No sending my phone away or figuring out where the hell a Nokia Service Center is in the US. That itself rocks, thank you Nokia. I definitely appreciate it.

As for the firmware, the update was a bit weird. After restoring from a backup to the phone I found a bunch of the weirdness, like settings that don’t get restored for active standby, different settings for the browser (not even sure where those came from). And some of the apps didn’t come back. I’m not really sure which ones did and which ones didn’t. Fortunately I keep just about all my apps in my inbox so that when someone says “oooh, cool, where did you find that” I can just send it to them. So I just reinstalled from there.

It does seem a whole lot more responsive now, a whole lot more. We’ll see if that keeps up as time goes on. I need to check out the email client and see if the IDLE support is any better. And if it deals with disconnects without freaking out. I’m trying out the podcast client again also. I never was able to get that to automatically update more than once without hanging indefinitely (where indifinite is greater than or equal to 5 days, the longest I had waited to see if it would manage to figure out how to update on it’s own). I’ve also been experiencing the menu shortcuts issue where you have to hold down the blue function key. I definitely need to hold down the blue function key while pressing the keypad button. Changing the mapping layout is good, but requiring two hands to access the shortcut cancels that out and then some. That’s just dumb.

GPS Python S60

Tuesday, September 12th, 2006

I started playing around with some GPS stuff again. So instead of sleeping to get ready for CTIA tomorrow, I’m mucking with the 4 and a half hours of samples I setup the E61 to record on the drive down. Anyone know if its possible to set an access point explicitly in a python script? A little RConnection action? I wanted to upload the samples in realtime, but need to set a default access point for that to work the way I want.

WAP Games

Friday, September 8th, 2006

I happened across Kalador, a portal for mobile gaming, while poking around this morning. What really got me interested was the selection of games they have at wap.kalador.com, which seem to be ports of old school BBS style games for WAP interaction. That’s a really cool idea actually. Some of those games were really interesting, and in general worked out very well over the slow links and text only interfaces we had at the time. I’ve got to play through a couple of them and realy get a feel for it.

So I was thinking about the whole idea of BBS style interaction in general. What other kinds of content that was out there, and interaction styles that were available on BBSes, would map well to use on a mobile? It’s taking the geeky approach to figuring out how to make some interesting mobile apps, but hey, I’m a geek.

The general chat stuff was on BBSes, and does seem to be working out pretty well as a set of mobile applications. The text based games look like they could be an interesting set. There were a whole set of door games, any of which I bet would work decently as a mobile WAP game. Others?

Carrier Targeting at AdMob

Thursday, September 7th, 2006

Omar put out the news today about the funding we’ve gotten at AdMob. But just chattering on about the money you’ve gotten is, well, tacky. So we’ve also put up a new release of the AdMob site to go along with the news. What’s new up there? Tons of little usability tweeks that should make it easier for advertisers coming to the system for the first time, an important thing when your number one priority is to make some phat cash for the publishers in your network.

But I think the real big one is carrier targeting. It’s only on for a subset of regions that we’ve had lots of demand for. The US is one, so you can check it out there. In the targeting tree you can select to advertise to only Cingular, or Verizon, or Alltel, etc. Lots of people were asking for that, so hopefully that one puts some smiles on a few faces. That plus the phone manufacturer targeting should be killer for folks selling applications or services tied to a particular environment.

Symbian Scripting

Wednesday, September 6th, 2006

Apparently I missed a few things late last week and this weekend. First off, the Ruby port for Symbian Second Edition devices. Looks to be a console app, but it’s a start. I would love to see more. Anyone poked around with it?

Second, in following pointers dropped by the AllAboutSymbian crew in relation to the Symbian Third Edition self signing ability of an application generator, I found out about the free community edition, featuring Linux support. Unfortunately I don’t have the time to dig into it more. So does this mean that the self-signing process has support in some Liinux based tools? Or does the Linux version just Wine wrapper the command line versions from Windows? Just curious.

WURFL Evolution

Saturday, September 2nd, 2006

Just catching up on some reading this evening and I saw Tom Hume’s post about the WURFL survey. Very cool! WURFL is a fantastic tool, I use it for a few different projects. Even hacked on it some to get it humming for some of the abnormal workloads we see at AdMob. I have no idea how long it’s been up there, but there’s a pointer to some info about the WURFL evolution up at the top of the WURFL project homepage. Check it out, interesting stuff in there. Modularization in particular, and keying off device info besides the user agent.

Small WBMP Images

Friday, September 1st, 2006

I spent a bunch of time slamming my head against a problem with small wbmp (wireless bitmap) images, and I’ve run into some interesting stuff. I had what I thought were small 2×2 wbmp images that I was trying to use in a wml page. However I was getting errors when I brought them up in the Services browser on my E61. Odd. At first I thought maybe I was returning bad MIME types or something, but I grabbed some sample wbmp images and put them on my server to test with, no problems.

Then I figured there must have been a problem with the image conversion, so I install a few additional packages to that wbmp images and convert using them. All give the same results, none of them show up properly on my E61. Hmm. Well maybe there’s some funkyness that I don’t understand about wbmp conversion and source images. wbmp is supposed to be a dirt simple format, so I set off in search of the spec. I was almost thwarted there, all the spec versions that showed up seemed to require authentication in some form. Luckily I found a version of the WAP 1.1 spec including wireless bitmap that had what was looking for.

The converted images looked good as far as I could tell. I hex dumped the sample images I found online and they looked like the same format. I hex edited a new image into the sample I got and even that came up alright. So the only thing that realy seemed to be different was the size, and sure enough when I created an image the same size as the wbmp sample I had and converted it that one worked fine!

After a bunch of fooling around I eventually ended up with bunch of wbmp images in different sizes, which when I bring it up using my E61 results in broken image indicators for all the images below 8×8 in resolution and proper display for anything 8×8 and above. I’m pretty sure I understand the file format now and it all looks fine:


mike@www:/var/www/www.madgat.com$ xxd 2x2.wbmp
0000000: 0000 0202 c0c0 ......
mike@www:/var/www/www.madgat.com$ xxd 4x4.wbmp
0000000: 0000 0404 f0f0 f0f0 ........
mike@www:/var/www/www.madgat.com$ xxd 8x8.wbmp
0000000: 0000 0808 ffff ffff ffff ffff ............

Is there a restriction somewhere in the spec that I’m missing that doesn’t allow for images with height or width below 8 pixels? Or is this some funkiness that I’m hitting into that affects just my handset? Or a subset of handsets of which mine is one? The info out on the interweb is pretty spotty. Wikipedia, normally the source of all that is good and right with the world, wasn’t even able to help on this one. Hasn’t this stuff been around for years? 1999, that’s like the dark ages. I would expect there would be tons of info floating around.