Novell Pulse and Google Wave: Demonstrating Inter-company Collaboration

Thursday, March 25, 2010 | 4:28 PM

Ian Roughley is an architect on Novell Pulse, a new real-time collaboration environment for enterprises that federates with Google Wave so users of both products can work together using their tool of choice.

For Novell Pulse, it was a pretty easy decision to adopt the Google Wave Federation Protocol. For many months before Google Wave was announced to the world, we had been working on solving exactly the same problems: how to collaborate instantly and on‑demand; how to make collaboration easier for groups; how to expedite document workflow; and how to do it all in real‑time. We had also come to many of the same conclusions, and if you look at the products side‑by‑side you can see this reflected through the interfaces. Not exactly, but certainly the big decisions.

The Google Wave Federation Protocol excited us, because for the first time since email, it provided a way for collaboration systems to cooperate in a non‑silo'dway . The promise is that each organization can choose what product to use and the communication will flow unimpeded between the different systems, in the same way that people on different email systems can send and receive messages to each other today. This is a collaboration revolution we wanted to be a part of.

From a technical perspective we've leveraged the code Google has open sourced by integrating Google Wave's operational transformation algorithm and the federation parts of the FedOne implementation into Novell Pulse. This allowed us to quickly get the core federation protocol features working. We have developed our own editor, which provides compatibility with a large number of browsers, and provided a mapping from the Google Wave Conversation Model to our own internal structure. Along with the Google Wave Federation Protocol, we also support the Wave Gadgets API and are working to support the Wave Robots API. This allows extensions built by 3rd parties to work seamlessly with a mix of users on Novell Pulse and Google Wave.

Check out this video to see a business use-case of federation between Novell Pulse and Google Wave.

We're excited about the opportunities for open collaboration that utilizing the Google Wave Federation Protocol will bring to both the users of Novell Pulse and Google Wave, as well as a growing ecosystem of extension developers that now have broader distribution opportunities. For more information on Novell Pulse, visit www.novell.com/pulse.


Upcoming Wave Developer Events

Saturday, March 13, 2010 | 7:10 AM

Now that the new Wave Robots API is launched, we're excited to spread the word about Wave to developers in all corners of the world. Please join us in one of the upcoming events:


Chicago GTUG Google Wave & Android Workshop
  • March 13, 9-5pm
  • Chicago, Illinois
Google Hackathon @ SXSW Interactive
  • March 14, 12pm
  • Austin, Texas
SF Wave Meetup
  • March 16, 6:30pm
  • San Francisco, CA
Novell Brainshare
  • March 23 and March 25
  • Salt Lake City, Utah
DevFest Mexico
  • April 13, All day
  • Mexico City, Mexico
EJA Melbourne Forum
  • April 21, 5pm
  • Melbourne, Australia

Introducing the Google Wave Extensions Gallery

Friday, March 12, 2010 | 4:18 AM

We've just rolled out an initial version of our extensions gallery: simply look for "Extensions" in the navigation panel of Google Wave. The gallery is intended to make it easier for users to discover the fun and useful extensions you all are building with the Google Wave APIs.

The gallery is simply a set of waves containing extension installers (the puzzle pieces). The first wave, "Read me first" contains an introduction to extensions and how to use them. In many cases, those particular waves won't maintain their read/unread status in Google Wave preview; we're working on this. Beyond that, we have some design improvements in the works, but we wanted to get this out there to get feedback and help users find your extensions.

As a tip, you can also use the waves in the gallery to share a direct link to your extension's installer with other Google Wave users -- simply open the installer and copy-and-paste the URL (note: the panel arrangement and search query are included in the URL, but can easily be edited out).

While you're building your extensions, if you'd like them to be included in the gallery, please be sure to submit them for review. You may also want to check out Mashable's Google Wave API Challenge.

We look forward to seeing what you come up with -- especially with the new Google Wave robots API (v2).


My Extension Wish: Recipeasy

Monday, March 8, 2010 | 6:00 AM

Hi! I'm Anna Rose Kerr, a Kiwi and Google Wave user living in Sydney. Coming from a background in creative advertising, I see a lot of potential for Wave to make everyday tasks more efficient and enjoyable. Now, I want to share one of my ideas for how developers can make my own life easier.

Before I moved in with my boyfriend, I had no idea that making dinner could be such a complex problem. My normal approach of "eat whatever I feel like when I get hungry" does not compute with him, and thus we spend hours each day discussing what is for dinner that night. We have to factor in what's in the fridge that needs to be consumed, seasonal product, and which animal he currently feels sympathetic towards and won't eat. It often gets too complicated and we end up eating take-aways.

An ideal solution would be a cookbook extension that could do the math and come up with a recipe given all these variables, and I call that solution "Recipeasy." This extension would sit on a wave between you and your dinner guests, suggesting recipes using the ingredients you have and the foods you all like to eat.

First, the extension could insert a gadget that let users add lists of food items which they "have", "would like" or "would not like". Other users can click on these items to confirm they are a good choice or delete them from a list. The most popular ingredients have the greatest influence on the generated recipe suggestions. The extension could also include a robot that would scan the conversation for food items, and pull those out and insert them into the gadget. It would work off phrases such as "I can bring some..." or "yuck I don't like..." to place the various ingredients discussed into the right lists.

Recipeasy would automatically produce 3-5 of the top recipes based on your selections. Clicking on a recipe name within the gadget would open the recipe's own Wave. Here, you might find suggestions and tips from other Wavers who have already tried the recipe and you can add your own review. These "Recipeasy" waves form your own virtual cookbook, which would be easily accessible by searching "with:recipeasy".

There are some obvious businesses to partner with when making this extension — like supermarket chains which could offer to deliver the extra food needed to complete a recipe. Recipe sites or chefs could add to the Recipeasy database from their own repertoire and pull the Waver's comments back onto their site.

An extension like Recipeasy would make cooking so much easier by using food you already have (or getting what you don't have delivered) and taking the effort out of agreeing on a meal. While cooking may not appeal to you directly, just think — this could be the way you get your mother using Google Wave!


Introducing Robots API v2: The Rise of Active Robots

Tuesday, March 2, 2010 | 5:02 AM

Robots are an important part of the Google Wave API, and they've just become a lot more powerful. We've recently released version 2.0 of the robots API, which includes a bunch of new features:

  • Active API: In v2, robots can now push information into waves (without having to wait to respond to a user action). This replaces the need for our deprecated cron API, as now you can update a wave when the weather changes or the stock price falls below some threshold. You can learn more in the Active API docs.
  • Context: Robots can now more precisely specify how much information they want to get back from a particular event. If only the contents of the affected blip needs updating and you want to reduce your robot's bandwidth, then you can specify the new 'SELF' context. On the flip side, if you do need all the information in the wavelet, you can specify the new 'ALL' context. You can learn more in the Context docs.
  • Filtering: In a similar way, with this new API, the robot can specify what events it needs to respond to, conserving valuable bandwidth -- and ignore all those that don't apply. You can learn more in the Filtering Events docs.
  • Error reporting: Robots are now able to register to receive errors about failed operations, such as insertion on non-existent ranges. You can learn more in the Error Reporting docs.
  • Proxying-For: Robots can now convey to Google Wave that their actions are actually on behalf of a different user, via the proxyingFor field. For robots like the Buggy sample, which connects with the Google Code issue tracker, this means that the wave can be updated with attribution to users on non-wave systems. You can learn more in the Proxying-For docs.

To get started with the new API, please check out the basics and download the new client libraries: Java | Python. As part of this new API release, we're also standardizing around a new robot wire protocol. These client libraries are built around this wire protocol, and this protocol specification also opens the door for you to write your own client libraries in your preferred language.

As you're getting started, visit the samples gallery to see what others have built, which includes examples of the new robot API in action: Stocky, Submitty, and Twitter-Searchy.

If you create an amazing extension and think it's ready to share with users, please submit your extension (naturally, we're using a robot to help, but more on that later).

Additionally, as part of this release, we're experimenting with holding discussions about the new API in Google Wave itself. We've actually created a robot to help facilitate these conversations, and you can read more about how to get started with Wave API discussions in the Wave API Forum Botty page. Please continue to file bugs in google-wave-resources.