For years and years I have been vaguely to quite interested in locations. Kind of travelling around stuff. Like shortest routes and the like. And the more I think about it, the more I am interested in being able to track where I go daily. Not sure why I would ever care, but here are types of questions I may sometimes care about
- How many times have I eaten at yamato in the past few months?
- Do I get to work earlier during the summer?
- How long does it take me to walk to / from my car?
Impossible to answer? Perhaps not. For awhile I thought about buying a garmin device or the like, carrying it around with me all the time, uploading bread crumbs to a server somewhere, tieing into some maps api, etc. Sounds terrible, and heck, I can barely remember my phone sometimes. Also, some clunky gps thing would likely look a bit dorky in my pocket, and folks would be asking stuff like, “why do you carry that around all the time again?”
Turns out there are a couple phones (systems) with geo apis. One day it hit me that I could just buy an iPhone, program it up and be on my way. A few things slowed me down. Two listed on the iPhone OS wikipedia page.
- Apple has not announced any plans to enable Java to run on the iPhone.
- The SDK requires an Intel Mac running Mac OS X Leopard.
- My buddy Matt was spending a lot of time with perhaps not a lot of progress.
- The whole register and then get blocked anyway wasn’t real compelling.
There are a few reasons I started to consider android, also partly from wikipedia.
- Also, at least for now, software installed by users must be written in Java
- Includes a device emulator, tools for debugging, memory and performance profiling . . .
- . . . a plugin for the Eclipse IDE.
- By buddy Drew might actually write some Java code with me.
- Heck, it’s Google, they do things right, right?
Turns out I am now a fulltime Java developer (as per my resume), so the Java thing is pretty dang compelling. I also working in Eclipse pretty well all day, so that was exciting. And I figured the emulator would be cool. And yeah, Google! Who loves Google? Heck, who doesn’t. I am using Chrome right now! How cool is that? How cool is android? Well, over the past few nights, not very.
I read that there was a way to spoof location data in the emulator. Also read that there was a sqlite api. I used to play with sqlite quite a bit and have years of sql experience, so rock on.
Getting a hello world! app going was pretty easy. Then I tried the geo stuff. Figured there would be a simple api, a few google-written examples to follow and I would be on my way. Well, I read through some of the docs and mostly got lost. Just too much. I found a blog, dated Christmas 2007 that talked walked through some geo api stuff. I pasted the code into eclipse and . . . it didn’t compile. Looks like an abstract method got added and hadn’t been implemented. Not so hardened. There was accompanying code at google code, and I tried the latest release with similar results. I checked the blog and found a more recent post saying he had tried for a few hours to get things working, but to no avail. I checked out his most recent code from subversion, learned a little about kml and was on my way.
So, one api, some few changes.
Then I thought I would try to insert my location points into sqlite. Had a similar experience with the docs. Figured that there would be a nice jdbc interface and it would look much like what I do at work for hours most days. No such luck. I found another blog, this one posted December 1, 2007 that walked through a simple sqlite implementation. Cut and pasted the code. Didn’t compile. I think this line right here
db = ctx.openDatabase(DATABASE_NAME, null);
I think there was no matching openDatabase method. Amazing to me.
Two apis, neither works with code from just a few months ago.
What about google’s sample code? I looked, I think pretty hard, and couldn’t see a single geo or sqlite example. Maybe the gravity stuff will someday interest me, but not so much today.
So, yeah, not real impressed. A little while ago, I spent a day or two at work looking at google’s recently open sourced protocol buffers. Got it working without too much pain. Apis worked as advertised. There were simple examples that I could change to match my investigations. Maybe those guys could help out android stuff. I am pretty blown away by my prima facie android experience. They gotta know that folks gotta get some things working within a night or two, or they might leave and not return.
Is google just getting too full of themselves? Cell phone os? We can do that, we’re google! I had to pass like twenty interviews to get this job, I rule! I eat (for now) free food every day! If some dorky senior java engineer from utah wants to do some android, let him figure it out on his own time. I work at google!
I watched a couple google io videos in the background while I was working today. The presenter in this one starts his talk by saying something like “this talk is about a C++ library and is going to be pretty technical, so if you’re here for some javascript, you might want to evaluate being here.” Just kind of rubbed me the wrong way.
In this one, the presenter had (I think) code that had to be changed to compile, and his laptop eventually had to be rebooted. He also (I think) kind of talks down to someone asking about CSS.
Anyway, enough of my rant. Mostly I would like to get some android stuff working, and I guess android is still beta, but I wouldn’t be too big of a fan to get stuff working only to have apis change.
I had written that chrome seemed pretty cool, but then my line spacing broke in this entry 🙂 And I need to add that I have played a fair amount with google app engine, and the docs there were quite good. Oh, and I bought a url for my android stuff, http://crumbtracker.com, which I registered via google and it all went well.
Also want to mention that I noticed tonight a few (ok, quite few) comments on this blog from folks I didn’t know, that might not even be spammers. Welcome!
enjoy!
Earl