15 days, 8 countries and zillions of developers

Tuesday, December 29, 2009 | 5:00 PM

Leaving October spring weather in Sydney for a trip around Europe was not easy. But any doubts about the wiseness of our trip disappeared as we walked into the first GTUG event in London where 300+ developers showed up to learn more about the Google Wave APIs. We met two of the most prolific wave developers there (you might know them from extensions such as Rssybot and Votely) as well as meeting David Crane who asked for 1000 accounts for Global Youth Panel to debate climate change. As we flew from country to country, we continued to meet more developers whose enthusiasm for Wave gave us the energy to overcome our jetlag and see the sights of Europe.

Check out the lives waves, videos, and slides for the various events below:
London, England
Oct. 26:
GTUG London: Live waves, Blog post
Vienna, Austria
Oct 27:
TechEd SAP
Amsterdam, Netherlands
Oct. 28:
Dutch GTUG: Video
Oct. 30:
eComm Europe 2009: 30+ live waves, Many blog posts
Zurich, Switzerland
Nov. 2:
Google Wave Tech Talk: Live wave
Prague, Czech Republic
Nov. 6:
Google Developer Day: Prague: Wave APIs talk (and slides), Wave client talk
Moscow, Russia
Nov. 10:
Google Developer Day: Moscow: Wave APIs talk (in Vadim's native Russian!), Wave client talk, Live waves
Munich, Germany
Nov. 11:
GTUG Munich: Live wave, Video

We look forward to hearing about future Wave events put on by European developers, like the recently held 2-day Wave Hackathon in Munich.
See you next year, Europe!

2 days of ideas, hacks, and pufferfish in Tokyo

Wednesday, December 16, 2009 | 9:21 PM

I am never one to turn down a trip to Japan. Firstly, because a friend of mine has become entirely dependent on a constantly flowing supply of authentic Pocky (a surprisingly addictive chocolate-covered pretzel snack that I once ate for breakfast every day for 2 weeks). Secondly, because the Japanese developer community has a creativity and energy that both infects and inspires me.

I stopped by Japan on my way back to Australia, for 2 days of Google Wave developer events. I arrived on the first night in a strangely alert jet-lagged state to find myself amidst what they called an "Idea-a-thon". This was basically a pre-party for the hackathon the next day, where groups of developers would brainstorm ideas and then present them. I didn't understand much of what they said, but luckily, they sketched out logos and diagrams on sheets of paper. I saw a Wave/Twitter logo, where the "w" was Wave's "w", and a diagram involving a flow between Eclipse and SVN... enough info to get me excited.

After the idea-a-thon, we all headed upstairs to a real party (beer = party, right?), where a mix of developers and journalists gathered to hear the latest about Google Wave. Ando Yasushi started off the night with an introduction of the APIs, and a demo of his own Animal Chess ("Dobutsu Shogi") gadget (which is now near and dear to my heart, as I was actually able to win the game.. that never happens). I then showed off a series of my favorite demos - using Napkin Gadget to collaboratively draw a demon love-child, AJAX Animator to show my flight across the Pacific, and AmazonBot to aid my purchase of an inflatable castle and a pony (childhood dreams never die). Googler Hiroshi Ichikawa demo'd his own extensions - an HTML5 drawing gadget and a Kanjy robot, and then blazed through a wave of Japanese-created games, like Donpachi, Reversi, Tetris, Tictactoe, and yet another Shogi implementaton. After a few more talks and rounds of beer, we headed home to rest up for a full day of hacking the next day (well, that would have been the plan, if I hadn't sold my soul to the jet lag devil).

Bright and early, at 10am, I kicked off the hackathon with several debugging tips, and presented "Making Wave-y Extensions", a talk about how to make gadgets and robots that take full advantage of the collaborative & real-time experience of Google Wave. For the next 8 hours, the developers dilligently worked together to make their idea come to life, each group huddled around a 30inch monitor.

Finally, my favorite part: demos! The first team showed "Weclipse", a plugin for Eclipse that embedded the Google Wave client as a tab in the IDE, with the hope of making coding more social. In that embedded wave, they also showed a robot that received messages from an Android and posted them as blips. Then, Maripo Goda, author of the Brainstorming gadget and tDiary plug-in, showed her team's project: an end-to-end message translation system. One of her team members is on the Debian JP project, and wanted an extension to expedite translations for the operating system. The extension starts with a gadget that loads in translation files, lets the participants set the translations, and then it commits them to an SVN repository. There have been multiple translation helper extensions created by international developers over the last few months, but this is the first I've seen that tackles the software message translation problem.

Atsushi Nakamura, who also attended the Tokyo Chrome Extensions hackathon the week before, then demo'd his Chrome+Google Wave hack, a bookmarklet which pops down an embedded Wave - "ChroMemo." I can see that being really useful for storing little notes, a to-do list, or a schedule. Ando Yasushi demoed his own prototype of operational transforms - in JavaScript. Well, that's certainly one way of learning how Wave works. :)

My trip ended with a dinner of traditional "Fugu" - pufferfish, cooked (and not cooked) in every way possible: sashimi, grilled, boiled, and my favorite: deep fried. I learnt over dinner that a dish of pufferfish can cause instantaneous death, if the internal organs aren't plucked out properly. Well, luckily, my new Japanese friends took me to a properly licensed restaurant, and I'm alive now to tell you about the trip and enjoy my souvenirs - 10 flavors of Pocky and 3 flavors of Mochi.

The Japanese developers are going full speed ahead into Wave development, with another two events planned in the next month: Kyoto GTUG Wave Hackathon, and a Tokyo "Demo Tournament". I'm too bloated on my pocky to make it out there for those events, but I expect to hear about more innovative ideas and exciting extensions coming from my new developer friends in Japan. Until next time, Tokyo!


What Does Clam Chowder & the Google Wave API Have in Common? Boston!

Monday, December 7, 2009 | 9:39 PM

I've always been a fan of Boston, Massachusetts. If I could dig it up and transport it to an eternally warm weather location, it would rank in my top 3 of best cities in the world. It's filled with history (really gruesome stuff like the Salem Witch trials) and creative intellect (the MIT Media Lab is like a playground for nerds), and conveniently enough, 2 members of my immediate family (3, counting my kitty). So, I like to visit it whenever I'm in the states, and since there is now a Massachusetts GTUG, I took the opportunity to co-organize a Google Wave APIs hackathon with them (using a wave to plan it, of course).

On the day of the event, about 60 developers showed up (including my sister, a Drupal developer), and they filled the office cafe up nicely with their laptops and power cords. I kicked it off with a talk called "Understanding & Extending Wave", then Brian Kennish led them through a coding walkthrough of the "click me" gadget and Embeddy robot. We used ustream.tv to stream the the talks and also recorded them, so you can watch them now on Youtube. Then we grabbed lunch and got to coding. There was a never-ending stream of good questions throughout the day, which I captured in the comments wave and later used to fuel our new Google Wave APIs FAQ. There was also a table of people hacking specifically on FedOne, creating agents and getting their own servers running. After everyone had gotten their hands dirty in code for a few hours, I showed extension installers and presented "Making Wave-y Extensions".

After another few hours of hacking, we started demos and wrote them up in this live wave. We were once again using ustream.tv to stream demos, and after tweeting about it, we suddenly had developers from all over the world commenting on the Wave and watching our demos. They hailed from Argentina, Ukraine, and Japan, and used the Yes/No/Maybe gadgets to demand that we wave hello to them on our webcam (and then uploaded a recording of our real lifewave as an attachment!). The local developers showed off nifty demos, like the VoiceChat-9 gadget, Ruby FedOne Agent API, and the Mastermind game gadget. Interning Googler Jonathan Goldberg also showed off beginnings of integration with the just-released Google Fusion Tables. You can watch those demos on Youtube.

It was great to meet Bostonian developers, and it gave me a new reason to love Boston. Hopefully by the time I make my next annual visit, I'll have taught my kitty cat to use Wave. :)

Google Wave API Articles: Extensions Debugging & Robot-to-Gadget Communication

Thursday, December 3, 2009 | 2:25 PM

We've recently added an articles section to the Google Wave APIs documentation, with three articles to make Google Wave API development easier.

Debugging Robots
Learn how to use the App Engine logs for easier debugging, verify your robot is set up correctly, and even test your robot locally (without deploying). This article can speed up your development process by making it faster and easier to catch bugs.

Debugging Gadgets
Get tips for testing new code, simulating multiple users, logging debug messages, and logging state deltas. Developing multi-user real-time gadgets is hard when you're just one developer, and this article should make it easier for you.

Robot-to-Gadget Communication
Delve into the innards of "Embeddy", the robot that generates embed code for a wave. This article describes how robots can insert gadgets on a wave, and then set the state of them. Some of the most useful extensions out there involve careful interaction of robots and gadgets, and this can get you started.

Enjoy the articles - and please tell us in the forum if you have improvements or your own articles to share.


You got questions? We've got answers!

Wednesday, December 2, 2009 | 6:06 PM

Last Saturday, at the Mass GTUG Wave Hackathon, I spent six hours hopping from table to table, answering questions about the best way to do X, the quickest way to do Y, and the future way to do Z. I soon realized that these questions were likely reflective of the questions that go through the heads of developers getting started with the Google Wave APIs, and I started taking notes (in Google Wave, of course). With the help of my colleagues, we've turned those notes into the beginnings of an FAQ for Wave developers. There are 4 sections in the FAQ, covering questions on sandbox/preview accounts, client libraries, and general development tips, helping you answer questions like "How do you retrieve a submitted blip?" and "How can you view the XML representation of a Wave?".

The coolest part of the FAQ is that it's actually generated from a series of waves on WaveSandbox.com, and a robot takes care of exporting the waves into the HTML page. This means that our team can use Wave for super-easy collaboration on the FAQs, but we can represent the information in a format that is viewable by everyone and fits in with the rest of the documentation. The FAQ-generator robot is based on the Exporty sample, so take a look at that if you want to implement a similar system to meet your own needs.

Please read through the FAQ when you have the chance; you might learn something new, or hey, you might have an answer that's better than ours. Stop by the Google Wave API forum to let us know what we can improve or add.