Saturday, August 16, 2008

Late Night Mobile Programming


I'm sitting here on the boat, with a Miller High Life on the table here. Also on my desk is my laptop, my BlackBerry, a GPS puck, a headset, and a bunch of wires.
I've been working on a mobile project all night long. There's a project in the future that I'm super excited about. It's still in the "does this really have a snowball's chance in hell to be a viable product?" stage. I hate that stage.
An offshoot of this endeavor though is an idea for a CDMA location database. Opencellid has the GSM version, and I was super bummed that no one had tried to put this together for CDMA yet. Some evil companies (Verizon, in particular) disable GPS chips in devices, because they want to "own" your location. Your location is valuable to them, and if someone (like myself) wants to know where you are, Verizon wants you to pay them money for that service.
So there are all these people out there with no GPS, or a disabled GPS. BUT! There are certain things we know about your location. We know something about the network you are connected to. Some things that distinguish it from others. And, some people with GPS are on that same network. So if that person (with the GPS) tells a server what network it's on and it's GPS position, phones with no GPS can send in their network information and see a GPS position that's probably not too far off. The smaller the cellular networks (like in a city), the more accuracy.
So check out my little sample: http://www.thekeel.com/CDMAReports.aspx . It's some pretty beautiful stuff. Right now my BlackBerry has my little application loaded on it, and every five minutes it connects to a webservice and sends in its location and network data.
I'm going to experiment with this over the weekend and start identifying problems as they pop up. It will probably take me at least a couple of months to get something resembling a stable JavaME client to hand out for others to help, but it would be neat to one day have a lot of people running this client, updating a common database.

0 comments: