Entries from March 2010 ↓

Google Wave Robot and gadget interaction

With the new Robot API version 2 is it possible to interact with the gadgets using robots. This will allow for some interesting integrations and will mean that the gadgets can be used to show the graphical information that needs to be displayed by a user. By using the robot to fetch and populate the data, you are also able to make the requests update other information than is possible using the social API.

I have created a small demo that shows how this can work out. Look at this video.

The code for the robot is the following.

  @Override
  protected String getRobotName() {
    return "DGR1";
  }

 
  @Override
  public void onWaveletSelfAdded(WaveletSelfAddedEvent event) {
    Blip blip = event.getWavelet().reply("\nHi everybody!");
    blip.append(new Gadget("http://dgrjava1.appspot.com/gadget.xml"));
  }  
  @Override
    public void onGadgetStateChanged(GadgetStateChangedEvent event) {
      Blip blip = event.getBlip();
      Gadget gadget = (Gadget) blip.getElements().get(event.getIndex());
     String count =  gadget.getProperty("count");
     
     blip.append("State changed changed " + count);
     gadget.setProperty("count", "56");
  }

Currently it is not possible with the Java api to update the gadget. But there is room for it in the gadget state information.

Bookmark and Share

Email with updates on Wave changes

Probably the most requested feature of Google Wave has been delivered yesterday. It is simply to get email notification when a Wave changes.

It is quite easy to start to use. Simply select the dropdown button on your inbox, select notifications. Then you have the option to select how often you want the notifications.

 

The email you then will get looks like the following.

One feature missing feature is that it is not possible to look for updates in the inbox. I might only be interested in updates in Wave, when a search term is updated. So I only get updates when Waves with the word SAP or the tag SAP is updated.

I currently use Google Wave Notifier to get updates, when a Wave is changing. The program gives instant notifications when your inbox changes. It is quite useful. But it is probably not a solution for non-it savvy users how don’t want to install all kinds of addons.

Bookmark and Share

Wave presentation at Opensource days 2010

I have just performed a presentation on Google Wave at the Opensourcedays.org. My presentation is in the slideshow below.

 

Come to thinks about how Google has open sources Wave and still seems like they are getting the major part of the pie.

The session was recorded and I hope to be able to share the session with you when the video is online.

Bookmark and Share

5 Easy Steps To Create A Google Wave Gadget Using Flex

Hi Everyone! We’re presenting you a simple 5-part video tutorial showing a sample in creating a google wave gadget using flex (Flash Builder Beta as the IDE and Flex 4 as the Compiler). The application is of the same with the common flash actionscript file having a counter button that increments the result number by 1 and a reset button that resets the result number back to 0. Any of the participants that will click the buttons will be able to update the state having them with the same result on their screen. Apologies if you find the video not clear enough and so as the speaker or mispronounced some words but hopefully you’ll be able to follow and at least this will give you a head start.

The 1st part of the video is some sort of a short introduction to flex showing how to call or place given components from flex through typing the codes or dragging the component in the design view.

FlexWave Gadget Part 1

The 2nd part of the video demonstrates how to add functionality to your components and testing the application locally.

FlexWave Gadget Part 2

The 3rd part of the video shows how to apply google wave api (wave-as-client) or incorporate it as a library in the flex application/project.

FlexWave Gadget Part 3

The 4th part of the video is the continuation of how to manipulate or use the  google wave api to pass or update states.

FlexWave Gadget Part 4

The 5th part is the last part of the video that shows how to publish a release build of the application/project and compile with all the files needed to get it work as a gadget in google wave.

FlexWave Gadget Part 5

Reminders: You always need the wave-as-client as the library of the flex application and make sure to have the wave-as-client.js placed in the same folder of the release build. In creating a gadget.xml, just make sure you’ll be able to apply an extension code to the url of your flex swf file application to avoid caching to prevent problems in updating and testing the application on the wave.

Thank you so much for the time and hopefully the video is helpful. Have a blessed and healthy day everyone!

Bookmark and Share

New Google Wave Robot API v2

Finally there is an update to the Google Wave robot API. In the blog Introducing Robots API v2: The Rise of Active Robots the new features are described.

It is really nice to see that a lot of new features has been delivered. It is a long time since the last release of any updates on the API, so it looked like the development or patching had stopped. But this new release solves many of the problems that have exists. I have written my comments to all to all of the functions.

  • 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.

This features is really useful for enterprise contexts, where it is required that you will be able to update the wave based on external events. With this features you can get a new Wave, when something happens that you need to react to. From the SAP perspective there is Universal Worklist where all events that you have to process are. With this Wave you can achieve some of the same ideas.

  • 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.

With this enhancement it will be much easier for robots to interact with the wave, because they can get a much better control of what the data is need in each instance. This will make the development easier because you got the date that you need and it will specify the data you need.

  • 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.

With this function you will only get the events that you need in your robots. Simply create a regular expression and then only the entries matching the expression is sent. This is quite useful if you only want events, when a large number of capital letters is written.

  • 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.

This function will make it possible to make better and more stabile robots. The use requires that you work, how the robot should interact when an error is created.

  • 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.

I can see that this function will be really interesting when working with one place to monitor all of your solution. It will also make collaboration with external partners much easier.

With all of this information it looks like the robots have been much more decentralized and acts as regular clients. So in the principle the new features will allow you to create a client to Wave using the robot API and some proxy functionality.

There is still room for improvements in the API. This is the two things that I see that currently are missing.

  • Better form handling and the ability to apply styles to the forms, so they don’t look as 90ish.
  • UPDATE: This is also possible. Integration with Gadgets, so the robots can update the gadgets with new information. With the Active API is this even more interesting. It is now possible to update the statistic gadget when you get a new expression.

Pamela Fox has created a great presentation describing what how the features connect.

Bookmark and Share