Fireeagle location updaterPosted on September 2nd, 2008 8 comments
I have been running it for a while now and things look pretty good. The python script which updates my Fireeagle location does a couple of things.
- Watches the cell tower that the phone is connected to, queries Google cell mapping webservices (using the script detailed in previous post)and caches the location information of the cell tower in a local db on the phone
- Optionally uses GPS to get the current location
- If current location, determined by above positioning methods with preference to GPS, is more than a configurable distance away from my last updated location, update Fireeagle
- Optionally when doing a cell tower lookup also looks up geonames.org for the nearest neighborhood to give a meaningful place name to the cell location
- Oh yeah of course does a mobile auth with Fireeagle first time and stores the authorization key for future access.
Why one more updater? Navizon does a good job but i wanted it to do the distance based update, if i am within a certain radius, say 1 Km, of my location i really am not bothered about it getting reflected on Fireeagle. Making it configurable tunes it to the users taste. Also in an urban area cell towers keep hopping even though i have not moved. Dont bother updating in those cases. Not sure if Navizon caches the cell lookup information locally, but i feel its one piece that should be really cached. Why waste my mobile bandwidth doing the same cell lookup calls. Persisting this in a DB is really efficient. And last I would really like to have my location to be at one place.
The J2ME updater is a perfectly simple GPS updater but GPS is too power hungry and useless indoors. I really dont want to always keep my phone such that GPS signals are available (you know the belt pouch). This one too a distance based decision to update Fireeagle or not would be great in addition to time based.
So yeah i wanted a mix of the two mentioned above and with Python on S60 what better way to get it done that writing my own. The pain point to get this working was to port the existing oAuth and fireeagle libraries to python 2.2. The fireeagle libraries i just switched it to talk json and used the python-json module. Doing XML DOM parsing was really useless. The oAuth libraries needed some tinkering but manageable. The dependencies were the problem most of them were resolve by installing the mobile web server for s60 which has a bunch of python libraries like the cgi stuff.
After all this rambling where is the stuff? Well I have not bothered to package it into a standalone sis. If anyone is interested let me know i will put the bunch of scripts out with hopefully some sensible instructions to get it running. Download the source here GTower FireEagle Updater