Nokia 770 to Another 770 GTalk Call

I’ve been meaning to install the 2.0 Beta of the Maemo software for Nokia 770 for a little while, and today is official “install a whole bunch of new stuff I know I won’t have time to play with” night. I saw Russ playing around with the new release, and I started getting upgrade envy. I installed it hoping that at some later point when sitting somewhere with decent connectivity I’ll have time to play around with the features and install some additional software. But I did try out a 770 to 770 GTalk connection with Russ.

Now due to a comedy of errors on the part of Comcast (today’s tech said “The guy who was out here last time didn’t have a meter with him? He didn’t check this line at all did he?”) I still don’t have an Internet connection of my very own at home. I’m actually sipping off the open wifi of a neighbor in another appartment. And still, I was impressed with the call. We were able to hear each other very clearly and talking into the 770 isn’t nearly as awkward as I expected it to be. This was my first attempt, so I’m not sure if it’s going to be representative of the overall experience. But certainly a good start.

I need to install the 2.0 SDK and play around some. I went through the tutorial before, but I don’t remember a lot of the topics that are in the 2.0 version of the tutorial, so I clearly have some catching up to do.

Posted in ThisIsMobility | Leave a comment

June BayCHI

I went to the June meeting of BayCHI. They had a very mobile-focused event this time around, and the speakers were fantastic. Unfortunately it’s after midnight already, and I got all of about 2 hours of sleep last night. So you’re gonna have to get a shotgun treatment of some of the interesting stuff that was said there.

  • When women text message they tend to have multiple threads of conversation bundled into each message, and there tends to be more of a structure to the message itself. Standard things like a sign off for each message (kisses, love you, etc). Messages from men a simple and normally singularly focused.
  • Clamshell devices are apparently considered girlie in Europe. I didn’t know that.
  • There was mention of a corpus of text messaging data available from somewhere in Singapore. Sure enough, here it is. Very cool. A collection of about 10K messages that can be used as a base in doing research.
  • Scott Jenson told a story about how difficult it was to find web folks to work on set top boxes because they kept dragging preconceptions from the desktop into the new system, and that just didn’t work.
  • He also gave much of his presentation with the slides formatted into small screen rendering style to show just how small that small screen is. About 50 to 100 times small on the handset than on the desktop. Although screens are getting “bigger”, that doesn’t really mean there’s all that much more you can display in terms of text. the difference between small and large screens can be up to 9 times as much in terms of pixels, but that only results in 50 percent more characters on the screen.
  • He brought up Christian Lindholm and the work during the 90s to get as many buttons as possible off the phone. And the glowing reports from users that it “felt like their phone was reading their mind” when the interface was tuned to make common actions the default and use context sensitive interaction. Of course power users hated it.
  • Mention of some of the one button games being put out by Digital Chocolate, where the entire game is played by pushing and releasing one button.
  • Web content is going to need to be tailored to the mobile if it’s ever going to be useful on the mobile. Interaction styles that work on the desktop simple do not on the handset.
  • ZoneTag apparently lets you add RSS feeds to provide additional context info to be used in tagging photos. I completely missed this. For example you can add an Upcoming.org feed to your ZoneTag config and the names of the events occuring around a given time will appear as tagging options when you upload a photo. How cool is that?
Posted in ThisIsMobility | 3 Comments

Increasing the Performance of WURFL (for at least one case)

I’ve been using the PHP interface for WURFL on a few projects recently and always had some nagging questions about how the thing works in terms of caching and performance. So today I really dug into the stuff that’s there to find out why WURFL seems to take longer than what I expect it to. First I should mention that I might have a non-standard workload going on here. The site that I’m trying to optimize gets traffic from all over the place, and WURFL seems to be optimized for a small working set of maybe two dozen or so active sessions.

My test was realistic however, I grabbed a stream of traffic from the website I wanted to optimize, snagged the user agent from each of 500 requests, and then replayed those user agents in the order they came into the site. My test script just loaded up WURFL and did a GetDeviceCapabilitiesFromAgent(), which is pretty standard behavior from what I was able to tell looking at what other folks do. The starting values hovered around 81 seconds to fulfill 500 requests.

The way the caching works in WURFL the scripts end up including a lot of PHP that’s actually data var_dump()ed by the parse routines. So the obvious place to start was trying to speed up loading of files, and APC seems to be the favored accelerator cache these days. It made a pretty decent difference actually, with the average time dropping down to about 67 seconds after installing APC and doing nothing else.

Matching was the next obvious place to look, so I started checking out the logic in GetDeviceCapabilitiesFromAgent() that does the matching against agent strings. I was surprized to see that the code seemed to be doing a linear scan through the agent strings trying to find one that matched, including an optimization to subgroup by a match against the first four characters of the agent, and relooping with sucessively smaller substrings until one of the agents matches. About a dozen different ideas popped to mind about how to fix that up some, but the quickest to implement was turning the agent array used as the main cache element (cache.php, which creates wurfl_agents) from a flat array indexed by full agent strings into a two leveled array indexed by the first four letters of the agent strings (which is naturally very sparse) and then holding a subarray of agents. That paid off, but only a little bit, the average time was now about 60 seconds.

If a major change like that to the matching logic didn’t improve the performance drastically there must be something in there that I’m missing. So I figured maybe this fast cache agent2id thingie is too small. So I up the number of entries in that cache to 60 from 30 and retry the tests. The benchmark goes UP this time. Interesting, very interesting. So I actually take a look at the file and realize that the thing is hundreds of kilobytes long. And with the frequent switches of user agent forcing rewrites of that file, for my workload at least that cache file is causing tons of thrashing. I turned it off completely and reran my tests. 10 seconds to process the 500 agents. Now that’s more like it!

Going back and fooling around with it some it looks like I can get down to 25 seconds with simple APC and removing the use of the WURFL_AGENT2ID_FILE. If you’re seeing a lot of load from scripts using WURFL I suggest checking that out, playing with the config file if you’re not comfortable hacking the code. It looks like there’s a lot of savings that can be wrung out of that code if your workload is outside the expected.

Posted in ThisIsMobility | 4 Comments

Adventures in T-Mobile Tech Support

I recently changed around my account at T-Mobile. I was actually planning to move off of them completely, but then I found out that the Internet Package they have includes unlimited data on the cellular side and unlimited hotspot access. Sweet, cause I have a Nokia 770 that I’ve been using more and more, and I’m planning to get an E70 as soon as I can. TMobile Hotspots in Starbucks are pretty much ubiquitous. Here is my adventure in finding out how to use the TMobile Hotspot access that comes with my account. Half of it is to embarass TMobile into maybe getting a clue about how to support this feature, cause they obviously can’t as it is. But the other is to put info about how to use your TMobile Unlimited Internet access at a Hotspot, cause I still can’t find that info on their site. And I’ll be happy to pick up that search traffic if no one else is.

  • Day 1 – I try accessing a TMobile Hotspot from San Francisco airport as I’m about to get on a plane for the east coast. The login I normally use to access TMobile itself (my 10 digit phone number and my password) does not work. I connect using my cell phone and send T-Mobile an email cause I have to hop on the plane, figuring I’ll get a quick answer back that I can read when I land. My question is simply “What are my default username and password? And if there are no defaults how do I login?”
  • Day 2 – I get an email from TMobile cellular telling me that the support message has to be forwarded over to TMobile Hotspot, which is apparently a completely different group. Not a big deal, but kinda odd that they wouldn’t even know how I’m supposed to login.
  • Day 4 – No response from TMobile Hotspot, so I email on the support ticket again. I get a response within just a few minutes saying “Sorry, I’m reforwarding it to them, they must have had a problem with their support system”. Sure. Whatever.
  • Day 5 – Hotspot mails back saying “You need a Hotspot account to use TMobile Hotspots, sign up for an account and you get a username and password”. I’m much shaken by this, figuring maybe I misunderstood what the representative said to me on the phone when I updated my account. Do I not really have Hotspot access? So I pick up the phone and call support for TMobile. The woman there tells me that yes, I do indeed have Hotspot access using the Unlimited Internet option from my cellular plan. Great! Now my question is how do I login? She gives me a URL that she says I need to use to login…. Well that’s weird. I ask if I should be able to login at the normal Hotspot connection screen, maybe using something special in the username like @tmobile or something? She says no, you have to connect to this URL she read off.. something long like locations.hotspot.tmobile.com, I’ve since thrown it out. The reason why I threw it out lies ahead. She says I use the same username and password as I use on the TMobile website.
  • Day 6 – I stop by Starbucks to try the URL the support representative gave me, and a page comes up. Different than the default connection screen. I’m surprized by that, that it works at all. But as maybe you’ve suspected, the login still does not work. I don’t have time to call back up right away, so I leave the Starbucks very frusterated. Later that day I email back on the support ticket I had originally and explain to them that I already have a TMobile Cellular account, and that account includes unlimited internet access which includes hotspots (include link to internet package on TMobile site listing “unlimited hotspot” usage), and explaining that I just want to find out what username and password I use when connecting to the hotspots.
  • Day 9 – Still no response on that ticket from TMobile, so I make some free time, go down to Starbucks with my 770 so that I can test this as I get answers, and call support at TMobile. I say “can you please transfer me to someone who does have the answer to my question”, occasionally followed up with “can you close down my account then please” when they seem like they might not be willing to do that, and eventually end up at a very polite but curt woman with a heavy Indian accent. At each stage I have to redescribe my question, mostly the people at the other end have question after question about what exactly I have. A cellular account with hotspot access? What the hell is that? I tell this woman I have a TMobile account with unlimited internet, and I need my login info. She instantly shoots back the answer to the question I’ve been looking for almost 10 days for : Username is your 10 digit phone number, default password is the last 4 digits of your social security number. YES!!! That’s it. It works. So simple, I have to wonder why no one else in the company was able to understand my question, let alone answer it.
  • Day 12 – The response from my trouble ticket finally comes. “We don’t discuss username and password info over email, please call support in order to resolve your issue”. Holy Shit, I had almost forgotten about the problem, my memory span in general being about 6 hours. But thank you TMobile for tickling my memory in just the right way and reminding me to post this.
Posted in ThisIsMobility | 13 Comments

Python on Series 60 Presentation

I’m giving a demo of Python on the Series 60 at the next SDForum ETech SIG. Here are the deets:

  • What: Python on the Series 60 demo
  • When: June 14 2006, 7:00 PM
  • Where: Cubberley Community Center, 4000 Middlefield Road, Room H-1, Palo Alto, CA
  • Cost: $15 at the door, free for SDForum members

Hartti is going to do a presentation about Python on the Series 60 overall, and I’m going to give a demo of hacking about some Python on the device. I’ve fooled around with a bunch of Python S60 stuff overall. Most of it has been networking related in some way, uploading info from the phone, sucking down contact info, interacting with web services. There’s been some GPS stuff, and some bluetooth stuff, as well as the camera. I think between going over the basics of interacting with Python on the phone, how the phone UI has been mapped into python, interacting with the network and other devices, and using data from the built in applications it should make for a pretty good overview.

Posted in ThisIsMobility | Leave a comment

WidSets Widgets

I just saw Charlie’s post on WidSets, a new mobile widgets app. I played around with it and I really like what I see. Why? Cause I didn’t have to download a widget toolkit or SDK in order to fool around with it. I was able to sign up for an account online, download the app to my phone, use my PC browser to configure up some custom widgets, and use them on my phone. Very low activiation energy, that’s what I like to see!

I’m sure there’s more complex stuff in there, making your own widgets and whatnot. But I was able to add a Flickr widget pulling images from a tag name that I provided and see it work on my phone right then. Perfect! I still haven’t gotten all the way through the Opera Mobile Widgets tutorials and tried out my own widgets. Instant gratification and push any complexity to be dealt with if and when necessary. I’ll have to spend some more time playing with this, it looks like a great effort.

Two bits of feedback I would give:

  • The whole add widget/arrange widget/publish widget/refresh from phone thing is a bit confusing. I thought I had added the Flickr widget when it appeared in the studio thingie, but then I realized it was dragable and I had to move it out to the panel. I get the whole toolwell/main canvas paradigm, but maybe that’s not the right interface for the end user tool.
  • How can I publish my widget sets so my friends can pick them up and use them as the base of their config? If that’s in there I would love to see it. If it’s not, it really should be.

Overall, fantastic. Charlie, if you’re listening, go over and congratulate the people working on this for me.

Posted in ThisIsMobility | 4 Comments

June 2006 Mobile Monday

The info for the June 2006 Silicon Valley Mobile Monday is up. The topic is handset hardware, in particular info about what hardware is out there right now. Not just out there in the market, but out in people’s hands and being used. After picking the topic a few weeks ago it’s come up a few times with different groups of people looking to do some work on mobile projects. There’s definitely interest in the topic, but I suspect the people who it’ll be most valuable to are the ones who aren’t already involved in mobility. So if you know folks looking to do something mobile related who need help establishing a baseline model of the environment definitely point them our way.

Posted in ThisIsMobility | Leave a comment

Some Slight Madgat Updates

I put up the 0.4 version of Madgat this evening. There are some small fixes for relative URL handling. GET argument rewrite URLs (ones that start with a question mark) weren’t being handled correctly, now they are. That one seems to exist in Phonifier too, not an error of my making this time. W00t! Browsing del.icio.us through the transcoder is a lot nicer now. I also tied in WURFL to determine the max size to use for images. Not extensively tested.

Posted in ThisIsMobility | Leave a comment

Device Adaptation Makes Sites Less Transparent

I’ve been waiting for a while to see the FIFA stuff, which was rumoured to be very mobile-friendly. So when Christian posted about the FIFA site being up I headed over there and poked around for a while. Great site! And I think the cup is going to be big in the US this year. I’ve heard a lot more people talking about it and seen much more advertising than I have in previous years.

When I put the fifa.com URL into the native browser on my 6680 I got a very nice looking mobile layout. So of course I started digging to see what they were doing on the site itself. Bringing up source on the FIFA.com site yeilded no hints though. No mobile stylesheet, so I assumed it must be keyed off the user agent (a-la WURFL or something similar). I changed the user agent returned by firefox to “Nokia6680/1.0 (2.04.15) SymbianOS/8.0 Series60/2.6 Profile/MIDP-2.0 Configuration/CLDC-1.1″, same as that returned by my phone. Here are some simple instructions for changing the user agent in Firefox for anyone who wants to fool around some. That did it, I got the layout I expected when I pulled up the page with the agent sent as if I were a Nokia phone.

This is something I really see as an ongoing problem in mobile web development. A lot of the knowledge about how to make something work on the mobile web is now walled off in server logic instead of laid bare for everyone to see and share. For most applications there’s application logic that lives on the server side and ends up somewhat walled off (although that doesn’t have to be, Ning is working to reverse even that). But the presentation side was always something that lived fundamentally in a “visible source” environment. That’s part of what made it work, and I think part of the reason it continues to progess the way it does. Unfortunately the mobile side doesn’t seem to be benefitting from the intrinsic transparency. Making a good mobile website currently really demands a technique like this be used. The more this stuff stays closed off the more I think we’re going to see fragmentation and competition within the segment. Is there a good way to make a functional mobile site and at the same time put all that presentation logic out for all to see?

Posted in ThisIsMobility | 3 Comments

Mobile Monday in India

A couple of folks in India (Rajan and Rajiv) have started talking about setting up a Mobile Monday chapter in India. If you’re over in that area send them a message if you’re interested. Or if you know others in the area who might be interested pass the info about the new group along. I had to check the Mobile Monday Finland page to make sure there wasn’t a group in India already, it seems like an obvious place to have some meetings.

Posted in ThisIsMobility | 1 Comment