About
Click here to check if anything new just came in.
February 08 2010
My Extension Wish: Wave Timer
I would love a collaborative timer, clock, or stopwatch that I could put at the top of a wave when the meeting starts. As we begin each topic, we can set the timer for a given amount of time, and we could easily see when we are taking too much time (or approaching that stage). Ideally, we could embed the gadget twice, and use one of them to keep track of the overall meeting length. I run a tight ship! :)

While my example use case is for work, I think a stopwatch extension could work for school applications (like timed practice tests), or any sort of timed activity in a wave, like office hours or a timed creative brainstorm like: How many haikus can we create in 5 minutes? Ready.....go!
A more sophisticated stopwatch extension could also include a robot to update the wave when time was nearing to an end, so that the wave popped up in participant's inboxes. Then, it could be used for things like warning people when a meeting is about to start, or when a big event is about to happen (New Years!).
Feel free to discuss ideas for the stopwatch extension in the forum or in a public wave, and make sure to submit it to the extensions gallery when you're ready to share it with the world (and most importantly, *me*).
Happy waving!
February 05 2010
Open source library syncro brings realtime collaboration to Google Wave Gadgets
We have written syncro, an open source JavaScript library for Google Wave gadgets that makes it really simple to bring complex collaboration to gadgets. Syncro provides an interface to a distributed command stack stored in the gadget state. The library ensures an unambiguous chronological order of all commands pushed to this stack.January 29 2010
Google Wave at I/O
As you may remember, Google Wave was first unveiled to the world at last year's Google I/O, in the 80-minute (infamous?) keynote. In the handful of sessions that we squeezed in on that second day, we explained the basics of the API, the core operational transformation (OT) algorithm, how we take advantage of GWT to build the client, and a bit about the federation protocol. This year, we are focusing on how you can build upon those basics to take Wave integration to the next level. We'll teach you how to build amazing extensions, how to get your own wave server running, and how to start using Wave inside your business. Check out the sessions below, and make sure you can join us for them by registering for I/O!
Open source Google Wave: Building your own wave provider
Dan Peterson, Jochen Bekmann
Google Wave API design principles + anatomy of a great extension
Pamela Fox, Douwe Osinga
Making smart & scalable Wave robots
Douwe Osinga, David Byttow
Google Wave and the enterprise environment
Greg D'alesandre
We're looking forward to chatting with you all, seeing what you've been working on, and discussing what awesome ideas are brewing in your heads.
January 15 2010
My Extension Wish: A Joint Jukebox
In the API corner of the Google Wave cubicles, we're often digressing into energetic discussions about an awesome extension that we want to see, and scheming about how we can encourage developers to implement these fantasy extensions. Since none of us are very good at inserting subliminal messages into forum posts, we figured we'd share our ideas on this blog instead, in a series of posts from various members of the Google Wave team.
To start off the series, I want to sell you on the idea of the "Joint Jukebox". First, some background. Sometimes I find myself in situations where friends put me in charge of playing music during a party, and I am constantly reminded by said people that I have one of the "worst" tastes in music ever.
So, I have experimented with various ways of giving people a way to influence the stream of music. When I was a lab assistant in college, I wrote an app that used Google Spreadsheets to power a Youtube player that I projected on the screen. My classmates could add Youtube video IDs to the spreadsheet, and change the number in the "rank" column to get the video to play sooner. That worked alright, but the voting mechanism (the "rank" column) was too easy to hack, and not that fun to use. I always envisioned writing a digg-like interface for it, but since I never got the chance, I'm putting you up to the challenge of doing it... but Wave-ified!
The Joint Jukebox would let users search for songs (using any one of the various music APIs on the web), and then submit play requests (or skip requests for the haters) on each submitted song. A highly intelligent algorithm would be constantly analyzing the current rankings and play history of all the songs, and use that information to select the next song to play. A group could use this as their DJ for a party or joint working space, just by hooking up a computer displaying the Wave to their audio system. Or, a couple in a long-distance relationship could use it across oceans, to feel like they're aurally connected. The Jukebox could also support playing music videos, or even playing karaoke versions of songs with lyrics displayed. No more listening to lame slow songs by the one depressed dude at Karaoke — you'll just vote him down!
The diagram below — made using a cool UI mockup app called Mockingbird (which would also make a great extension to Google Wave) — shows what the main screen and stats dialog could look like for the gadget. The jukebox shows the currently playing songs, the songs slated to play next, and then tabs to browse other songs users can rate. Users can suggest new songs, of course, when they want to listen to the latest from their favorite pop star or musical TV drama. :)

So, that's my wish — making music listening into a collaborative experience. If you want to help fulfill my wish — or if you're inspired to take it in a different direction — pop by the forum and share your ideas. Thanks, in advance!
January 06 2010
German Wave Camp - Stand der Dinge
- das Camp soll zwei mal im Jahr stattfinden
- das erste soll im Frühling 2010 in Berlin statt finden
- das zweite im Herbst 2010 in München
- wir werden mit allen Google Technology User Groups in Deutschland zusammenarbeiten
- Warum ging es Ende 2009 nicht? Weil es noch zu wenig Projekte gab und die grundlegende Waveentwicklung mehr Zeit in Anspruch nahm als gedacht. Beides nicht so gut für eine große öffentliche Veranstaltung.
- Ausserdem ist es wichtig Google in die Planung gut einzubinden. Wir stehen in Kontakt zu Google. Herausforderung da: alle Google Wave Entwickler sind in Australien. Wir müssen also auch Leute aus Australien zu den Veranstaltungen holen. Google macht sein Jahresplan für 2010 gerade fertig. Anfang Februar sollte es konkret werden hoffe ich. Eine große Konferenz ohne die Wissensträger macht nur wenig Sinn.
Bei weiteren Fragen schreibt einfach.
Wir melden uns wieder sobald es mit Google konkret wird. Bitte schreibt auch, wenn ihr Technologieunternehmen kennt, die an Wave interessiert sind und entweder
- die Wave Entwicklung pushen wollen (Stichwort Wave Server)
- oder für ein Sponsoring in Frage kommen würden (einige Sponsoren haben wir schon)
Alles Liebe und ein erfolgreiches Jahr 2010 wünscht
das Orga Team!
Email: ir <at> oneaim.org
Web: wavecamp.mixxt.org
DokuWiki und Google Wave
Du möchtest DokuWiki Inhalte mit einer Wave synchronisieren? Dann probiere mal die verlinkte Entwicklung aus und gib uns Feedback ob es klappt!team
wavecamp.mixxt.org
December 30 2009
15 days, 8 countries and zillions of developers
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!
December 17 2009
2 days of ideas, hacks, and pufferfish in Tokyo
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!
December 08 2009
What Does Clam Chowder & the Google Wave API Have in Common? Boston!
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. :)
December 03 2009
Google Wave API Articles: Extensions Debugging & Robot-to-Gadget Communication
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!
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.
November 04 2009
Upcoming US Events with Google Wave Presentations
Similiar to the Google Wave European tour, we're stopping by several developer events in the states:
- LISA 2009
- Nov. 1-6, 2009, in Baltimore MD
- Nov. 4 (today!) - "Google Wave Federation Protocol" with Joe Gregorio
- SF Java User Group
- Nov. 10, 2009, in San Francisco, CA
- "Google Wave APIs: Now & Beyond" with Marcel Prasetya
- Dreamforce
- Nov. 17-20, 2009, in San Francisco, CA
- Nov. 19 - "Ready to Ride the Google Wave?" with Dan Peterson
- Massachusetts GTUG Wave Hackathon
- Nov. 21, 2009, in Boston, MA
All of these events are still open for registration - so grab a seat while you still can. See you there!
November 02 2009
WaveSandbox.com: Federate This
When we first unveiled Google Wave a few months ago, one of the fundamental concepts we discussed was the vision for wave as an open communications protocol. We are happy to announce that the developer instance of Google Wave is now available for experimental interoperability testing with other wave providers. This means that if you are interested in building a service that uses the Google Wave Federation Protocol, you can begin prototyping with a tool like FedOne against WaveSandbox.com.
Since Google Wave Federation Day, there have been a number of developments:
- The Google Wave Conversation Model Spec (draft) was published to provide more clarity to implementors of the spec
- The FedOne client was updated to the new model spec and now displays character by character updates
- Echoey the agent was built to help you experiment with developing your own wave provider
If you'd like to dive in and get started, please check out the introductory docs. You can learn more by reading the more detailed status note on the wave protocol forum. Please keep in mind that things are early, and there will still be many changes, so your feedback is important. You can also contribute to the development of the growing open source reference implementation -- check out this guide to submit open source code.
Given the goal to build out a distributed network of providers, we're glad to be taking this step today and opening up the federation port for development purposes. We look forward to working with you to continue iterating on the protocol, developing an open source production quality reference implementation, and, of course, federating wave.google.com with many wave providers in the future.
November 01 2009
Happy Hallo-Wave-een!
I moved down to Australia a year ago, and just a few weeks ago, decided to stay here indefinitely because it's an awesome country. It has beaches, forests, cities, shark-eating-shark, kangaroos, and drop bears. What more could you want? Well, there is one thing: Halloween. I am a huge fan of any holiday that revolves around dressing up in ridiculous outfits and being rewarded with candy for it. Heck, I have two permanent (and really nasty looking) scars from trick-or-treating incidents, and I still love the holiday. (Tip: If your witch cape is held on by a shoestring, make sure you don't get the end of the cape caught under the wheels of a car when it revs up.) So, I've decided to show the Google Wave team what halloween is all about, first by dressing up like a faceless robot avatar (in honor of the recently resolved issue 335), and second by collaborating with Austin, another displaced American, to create a trick-or-treating extension for Google Wave.
The "Tricky" extension uses all of the Wave APIs together to create an interactive Halloween experience. First, the extension installer gives you an option in your New Wave menu to "Go Trick or Treating". When you click that, it creates a new wave and inserts a gadget (try clicking around that to see what surprises await). Then, whenever a user types 'trick or treat', the robot fetches an image from Google Image Search for either a yummy candy bar, or well, something not that yummy. Now, all of you world-wide developers can go trick or treating together, by visiting this WaveSandbox.com sample wave -- and learn the Wave APIs at the same time, by browsing through the code.
Have fun, and let us know in the forum if you found other wave-y ways to celebrate Halloween.
October 20 2009
Google Wave is headed to Europe: Join us!
Back in May and June, members of the Google Wave team traveled the world meeting developers in the SF Bay Area, Asia, and South America. Now, we're heading to Europe, and we're eager to meet all the European developers that are hacking on the Google Wave APIs.
There are many upcoming events — with links for registration and more details:
- London, England
- Oct. 26: GTUG London
- Vienna, Austria
- Oct 27: TechEd SAP
- Amsterdam, Netherlands
- Oct. 28: Dutch GTUG
- Oct. 30: eComm Europe 2009
- Zurich, Switzerland
- Nov. 2: Google Wave Tech Talk
- Prague, Czech Republic
- Moscow, Russia
- Nov. 10: Google Developer Day: Moscow
- Munich, Germany
- Nov. 11: GTUG Munich
We're looking forward to updating you on all things Google Wave, chatting with you about what you've already built, and hearing what else you'd like to do with Google Wave APIs.
October 19 2009
Google Wave at GTUG London: Monday, October 26
I'm happy to announce that the Google Wave team will be presenting at a specially-arranged London GTUG meetup on Monday, October 26. Stephanie Hannon and Lars Rasmussen will give a talk about Google Wave and the APIs that are currently available, and discuss some of what we've learned as a result of the developer preview and where we're headed next. There will also be ample time for Q&A, and you're welcome to submit questions beforehand. We hope to meet a lot of current WaveSandbox.com developers, and inspire others to get started building great extensions. No need to wait for the talk though — you can jump in and check out the docs and the samples.
The event will be held at the Google London office at 6pm on Monday, October 26. We have limited seats, so act fast to request yours. Please sign up here.
We look forward to seeing many of you there! If you're in Europe, but can't make it to London — stay tuned for another post talking about the rest of the European tour.
October 16 2009
Google Wave Samples Gallery: Best Practices & New Features
The Google Wave Samples Gallery has been a great way to see what developers have been creating and find starter code to build on. We added a search box to enable developers to find what they're looking for, but we heard that it still wasn't easy to find examples of code that uses a particular class/method or does one particular task. So, we've added a few new features to the gallery:
Best Practices
Some samples just demonstrate a fun and inspiring use of the API, but others demonstrate a nice use of a particular API feature, like how a robot can set the state of a gadget, or how a gadget can store per-participant keys. We wanted to call out these samples and make them easier to find, so we've added a "best practice" badge, highlighted these samples on the front page, and added a filter. We've also added a form field to the submit page, so that developers can tell us what aspects of the APIs their sample shows off.
Indexed Code Repositories
When a developer submits a sample, they must also submit a URL that points at their source code. Most of the time, this URL is to a public SVN or GIT repository. We've now added these URLs to the custom search engine that powers the search box, so that when you search, you'll also get results from code files. This makes it easier to find usage of particular parts of the API. Search for "GetDocument" as an example.
Code Snippets
When a developer submits a sample, they can specify that they're submitting a "Code Snippet" or a "Working Sample". With a code snippet, instead of providing links to the robot address, gadget XML, or installer XML, they need only to provide useful lines of code. You can use this to share some bit of code that you've written, even if you don't want to share the whole sample. And if at some point you want to change a snippet into a working sample, you can do that. Check out my Send Email from a Robot snippet for an example.
We hope that you will find these new features useful while you're designing your own Wave-y extensions. And, don't forget to subscribe to the recent samples ATOM feed to find out about new samples in the gallery.
October 06 2009
October 03 2009
“ This project is intended to create for emacs a mode specifically designed for Google Wave. The major parts of this project are the Java-based backend that connects to the server, and the emacs elisp code that connects to that backend and exchanges data with it, and the emacs UI for interacting with Wave. ”— wave-client-for-emacs - Project Hosting on Google Code
Maybe Soup is currently being updated? I'll try again automatically in a few seconds...



