Thursday, November 26, 2009

Two days of Google Goodness: Geo + Wave Hackathons


Hackathon-maps

New York Geo Hackathon Friday Nov 20th
I've been using Google's geo products and APIs for a large portion of our Sailing Trip, so when I read about the NYC Geo hackathon and that it was on the same continent, I had to go!! It was a long day starting with a 4am wake up to drive to the 5:45 train from Providence to NYC (luckily I had Google maps to help).
Although I didn't really learn anything new about the APIs, I had a great time talking with the other developers. You have to realize that I've been living in a virtual "geek vacuum" for the past six years. All of my interactions have been through online forums, my sailing friends typically glaze over at "click the Start Menu". I selectively demoed my sailing blog with integrated geoblogs, blurbbits and automatic interactive maps. I was actually a little bit surprised about how much I knew about the various Google products and APIs. I found myself helping others with their issues/projects..
I even got to talk in detail with one of the developer advocates from Google, Roman Nurik. I realized it's a lot more fun to brainstorm when you get to bounce ideas off other people.


Fusion tablesDuring a presentation of Fusion Tables I thought of trying it with all my trip data (position reports, blogs, journals, photos, photo albums, videos). I developed a similar spreadsheet format for blurbbits, back before I realized javascript didn't handle file I/O (hey I was a C on Unix kind of guy).
The resulting table represents a chronological "life stream" of our trip (with 1124 entries) and is available here along with the generated KML file. Note: this is NOT what fusion tables were designed for, but I like like kicking tires with data I know!! Detailed Fusion docs here. Our Sailing trip KMZ file took much much longer to develop (and maintain) but we give it to other sailors as a better reference at sea.
Cambridge Wave Hackathon Saturday Nov 21st

Gtug
After a ridiculously long day Friday (18 hours), and a night of "sleep" (with a 4.5 month old son) I dragged myself to another hackathon, this one via MassGTUG. I never got sucked in by the hype of Google Wave or the subsequent wave pounding (Google Wave crashes on beach of overhype). I don't think the initial over-hype was caused by Google but by users expectations that "Wave will solve everything".. If I had a dime for every time I read.. "Wave will.." I wouldn't be looking for a job. Google has a release early, release often development philosophy, a mantra that I heard repeated multiple times at both hackathons and one I have a love/hate relationship with.
From a developers standpoint Google wave is awesome, a game changer. The ability to dynamically extend and update collaborative content using extension installers, robots and gadgets is extremely powerful. Just like friendfeed changed the way I interacted with the web, wave changes the way I think about development. And this is just the beginning, more features are being added all the time, both by Google and other developers.
Pamela Fox gave a couple of presentations Understanding & Extending and Making Wave-y Extensions (I also found an overview Google Wave: Product, Protocol, Platform). My plan was to develop gadgets (vs robots with require app engine) but once again I found myself interacting and thinking more than hacking. My thoughts weren't "how do I do xyz" but more of a "what do I want to do", the power of wave was overwhelming. The more I thought about it, the more I realized what could be accomplished. I even found myself wishing for robots in other tools like Fusion tables.. Fetch feeds, process, extract, load, sort.. output results.
Once again I found the average user was overwhelmed by all that Google has to offer. .. "you don't need wave for that, just use the collaborative feature of Google docs".. "data apis can give you access to ALL that".. It was a great day with lots of good discussions. The day ended with demos of what had been developed, the demos were interesting but the development cycle is more complex and time consuming than traditional methods. It was so engadging I almost missed my train.. I literally had to run to make it!!
My Love/Hate relationship with Google (support)
I was amazed at the enthusiasm and knowledge the Google developer relations team showed at both events. I even sent a message that said if Google could clone that energy and duplicate it to the millions of customers, Google's customer support issues would be solved. Then I started hacking up my fusion tables idea.
I spent more time trying to work around an almost two year old Picasa API bug than coding all the other APIs and hacks combined. During my years working with Google products and APIs I have consistently had issues with stability, documentation, and support. In many cases it appears that the individual groups don't talk or work together, which makes it almost impossible to integrate products together by developing utilities like Blurbbits. In the long run Google should be integrating them, which would utlimately kill my utilities (and efforts). Product and api issues have caused a large percentage of downtime, something I don't think my customers would except.
 I'm a little gun shy about putting Google products and APIs in my critical path, hopefully something will be done to fix these issues.. soon. I'm starting to hear crickets in some of the product development groups.. effectively killing any "free" external resources.
Videos
Looks like they filmed Pamela's talk

Update 12/8: Pamela just posted this blog post about the event.
Additional resources
Google Code Playground: you can edit many of the API code examples and run them in a controlled environment
Google Geo Developer Blog: the latest and greatest news for Geo developers (Geo API links in the sidebar).
Geo API Codelabs: Some of the canned labs.
Google Wave Developer Blog: the latest and greatest news for Wave developers (API links in the sidebar).
Google Wave Samples Gallery
Google Wave API and Wave Extensions
Wave Protocol
Design Patterns for Wave Robots (slides)
Debugging Wave Gadgets
Debugging Wave Robots

















No comments:

Post a Comment