Google Stop development of Wave

I just read the article Wave Goodbye To Google Wave. It is such a shame that it had to go like that. It also ties to what the shiny wave wrote a while ago, that I did not get to respond to. The idea that nothing new was released at IO2010 or not enough could have something to do with it.

It seems like Wave stopped being hyped when everybody got on, and could not find a way to use wave. And when nobody responded to waves it seemed like everything just stopped. I guess the live typing was not enough to get people to be attracted to the application.

I guess that working on bold new ideas can have some draw back. For Google it could have made it a large upside with the investment in Wave. It could attract people to the Apps and thereby get more people to switch form Exchange to Gmail.

For me how has been trying to develop applications for Google Wave it has been going down for a long time. I guess that you do not need to be the first to create applications and plugins for a new platform. But it is something like the chicken and the egg, Wave could not be successful without a thriving ecosystem of software vendors.

I’m not sure what is going to happen to the blog. I guess it does not make a lot of sense to continue to write. I will admit that the blog has not been active for a long time. I also stopped being interested and have time to write about wave.

image by

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.

  protected String getRobotName() {
    return "DGR1";

  public void onWaveletSelfAdded(WaveletSelfAddedEvent event) {
    Blip blip = event.getWavelet().reply("\nHi everybody!");
    blip.append(new Gadget(""));
    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.

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.

Google Wave Gadgets lack quality

I tested quite a bit of different Google Wave gadgets in my christmas calender last month. I tried 40 different apps with a large verity in their complexity and usability. Some of them did not have any useful functions or did not work.

I really liked many of the ideas created in the gadgets and some was really useful. It was fun to see how people wanted to impress with new ideas.

The quality of the gadgets and robot was lausy. Mine included. I believe that many of to my application must be improved. But with the limited option in the robot API hinders making layouts to shine. It also provide a hindering there is a lack of way the gadget/robots can work together. If there was a better way to make the gadgets/robot work together, the layout issues could be solved.

I will say that most of the gadgets except maybe the simpler voting gadgets all require extra work before they can be used by a wider audience. The robots where you need to write commands with # or ! as the only thing in blip, I doubt that my mother will pick it up easily which is required to get non tech savvy users on board.

One key to make it possible to get the robot to function better is to pay the developers. I guess most of the developers of the robots/gadgets I have seen just tried the protocol out of see if they could make something useful. And they can. But to make them look wave-y the gadgets need to look better.

To make the gadgets/robot complete we need to be able to get some better apis and more importantly be able to charge for your apps. Currently it can be possible to charge for the usage of a robot and with some development also a gadget, but it is a pain and will require to much of the user.

I’m therefore looking forward a Wave app store is created. It will be interesting to see if it only supports one time payments or monthly payments and maybe even corporate multi seat licenses. The wave app store will mean that more developers will start with developing programs for Google Wave, making the platform more attractive.

I’m currently only letting my apps be available to my mail list subscribers. We have a new scrum gadget that just need to be published. So sign up to the newsletter and try it out.

Google Wave as a replacement of Notes databases

databaseI was talking a person how was using Lotus Notes to administrate some of their interfaces towards the users. That made me think if Google Wave can replace Lotus Notes.

I have been using Notes 6.5 and seen some of their databases. I did try to create some databases/application back in Notes 5. I was not really great at creating the applications. Some of the companies I have worked with have been using Notes to mange parts of their enterprise. Some use notes to employees easy has access to create new customers instead of using the more complex SAP screen for it. Or to build workflow applications to make the approval process of new customers easier than developing the same in SAP. I have also seen Databases with extract from SAP, where Notes just was a different interface.

I have not see how the newest version of Notes 8.5 works, but a lot of improvements should have been implemented to make it even more user friendly. I have always seen Notes as a system which was not really user friendly. The previous versions of Notes mail solution was not worth using compared to outlook, but the new version should be better. So I have always thought the killer app of notes was the many databases you could create and not the mail feature.

Lotus Notes is like Wave a collaborative software, which helps many people work together. I don’t think it is possible to edit documents together. But Notes has the Instant messaging feture, which works nicely together with the email contact. I see Notes databases as a strong force that it has the option of synchronization to off-line work.

Can you create an application on Google Wave to perform the same as you would to in a Notes database? Lots of the examples that I have created like the workflow and form demo, es-robot could be examples an example of where an application was exposed on Wave instead of the ERP system. That is basically what Notes also does.

Wave is not a good container for lots of unstructured data. In the instance we want to have our customers in Google Wave, we can either create a Wave pr customer or we can create one Wave with all the customers. The best would probably to have one Wave pr customer. It will be easy to find a specific customer using the search function, for name or street. But if we need all customers in the northern part of Zeeland ie post numbers 1000-3000 it will be difficult. You could tag the customers with lots of different tags like area, this will require a structured approach to create the customers.

When you have found the customer you want to perform an action on there could be a form making it possible to create order in a new Wave or a link to the Wave of previous orders.

It would be interesting to have all orders in Wave. I don’t think that it will create so much value, because you can just find them but not do anything with them. I think that it will be a bit deficult to make a great Wave robot/gadget for analizing changing sales orders. From my experiacnes with sales orders is that they are quite complex, when you use scheduling and have different processes for handling them.

But back to the question if  Wave will replace Lotus notes. I think that companies what to have their data more structured, which Lotus Notes supports best. In university I learned about the semi structured data, but I don’t see that it adopted on a massive scale.  On a longer sight there might be a swift toward using unstructured data to store data unstructured, with the structured data in the ERP system. I think Wave could be one of the places where Notes databases should be dropped.

If the development APIs for Wave became better to make applications, it would probably be easier to expose your data in Wave.

Image fo.ol