Archive for June, 2006

Nokia 770 to Another 770 GTalk Call

Friday, June 16th, 2006

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.

June BayCHI

Thursday, June 15th, 2006

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?

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

Saturday, June 10th, 2006

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.

Adventures in T-Mobile Tech Support

Friday, June 9th, 2006

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.

Python on Series 60 Presentation

Thursday, June 8th, 2006

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.

WidSets Widgets

Thursday, June 8th, 2006

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.