The productive Wave system

I just logged into my new Wave today, I wanted to share what I have learned so fair.

Invitations are not sent all at once, but it seems like invitations are rolling out in batched. I still have not received an invitation one of my wave accounts.

There are some differences between the sandbox and the productive system. First the logo is from a “dev preview” to just a “preview”. Is preview then before beta?

The debug menus are gone. In the Sandbox it was possible to see call a debug menu, from where it was possible to see information about the wave. The menu was mostly used for inserting gadgets to the wave; it is now possible to from the menu. The debug is also removed from the blips. Using this function it was possible to see the raw content of the wave. This was very useful, when developing to the wave.

I had two waves in my inbox. One welcome wave with Docter Wave, how had made a short video on how to get started with Wave. These waves are read only, so they have managed to add that feature somehow. It is not possible to everyone else to change this. There is also a link to wave, which contains some videos for how Wave can be used. This is an excellent guide to get started.

The other wave is to send invites. You can enter a mail on how you want to invite. Google will then send out the invitations when the system is stable. So you cannot get you peers on wave yet. Google will probably see how the system scales before; they add the potential 800.000 users from just 30.000 in the sandbox.

The way you update your profile is also much easier. There is a wave you can use to add this information. Just select All waves and find the wave with your profile. In this wave you can edit your profile really easy.

Google has also made room for waves for Extension Settings and Setting for the wave. So all configuration is performed inside waves. Using this type of waves for configuration also makes it possible for third parties to have configuration waves. That way you only need to be in one place to configure your application.

Robots in .NET


I’m not a .NET coder, but I’m always keen to see new libraries for creating Google Wave Robots. Dagfinn Parnas had linked to the project which creates Robots in .NET

Jonathan Skeet has created a project for developing robots in .NET. Obvious .NET is not supported to run on the App Engine yet. I would guess that Google will not support .NET on App Engine. I don’t know if anybody are working on creating a C# Java compiler, so C# can be run from a Java environment.

To use .NET Jonathan is instead using the Downy to forward all request to the .NET server. Jonathan has created a nice guide to deploy Downy to the AppEngine. I guess that Downy also can be used for other projects, where you don’t want to use the AppEngine for your robots. As I can see Downy just forwards the plain http requests to the .NET server. Downy can also be used to run robots in Ruby or Grails hosted outside the Appengine, which can be necessary for some applications.

The code for the Robot API looks much like the Java API and parses all the JSON using one of standard library for parsing. It looks fairly easy to use and you should be able to follow most of the Java tutorials. Expanding the Robot library to more languages, will make it much easier for developer to choose their favorite language.



Designing robots

I was just trying to design a robot that I would like to show for a demo. I needed somehow way to describe how the robot would interact with the user.

As so many other times I found the Whiteboard very useful. With the whiteboard is it possible draw with different colors for each participant. By using this method it will be possible to see the resulting Wave. The resulting wave will give an impression if the content is sufficient.

I would expect that use cases also could be an option, but they would focus more on with what the participants interacted with, not on how the result looked. The use case design is probably still a good idea, to make sure that all interactions are covered,

Designing such an interacting robot, might be involve many participants. It would be idea if the users cold design the resulting wave, by using Google Wave as the collaborative tool. They should probably create a wavelet, they could collaborate on and one where they could sketch the resulting wave.

Do you know of any modeling tools or methods, which could be prove useful for designing robots?



Workflow applications in Google Wave

One interesting aspect of Google Wave is the way that users can make semi structured workflows. In the workflows everyone can interact with each other in a simple flow manner. The workflow can be created just by adding other people to the conversation, and ask them questions or guide the process. This type of workflow can

But for some workflow instances you want to have the user to follow certain guidelines. You want another person for approve or sign the document, so what there is an agreement for the document. Something like this can also be performed by using voting Gadget. With the help of robots is it possible to make the workflow more structured. I have created a sample workflow application. The application emulates a bank loan submission form.

The process is as following:

  • The customer creates a Wave and writes a reason for getting the loan.
  • Then he adds the Bank robot. He thereby gets a form to fill in some fields, in a structured manner.
  • He submits the form. The robot sends the form to a bank employee. In this case the users “test” user for approval. The customer can’t approve the form, because of access limitations.
  • When the bank employee approves the application, the form data can be sent to the backend system.

This workflow is showed in the following video.

This is a proff of concept solution and demonstrates that it is possible to build workflows in Wave.

Using wave for frontend for a workflow engine, will allow the users to interact more with each other. It will give the participants a much better idea of the whole conversation and change the content in the mean time. I believe that this semi structured way for handling workflows is the easiest way to handle many of the tasks in today’s organizations. You don’t have to follow the rules completely, but can work the most natural way.

One problem with Wave workflows is that you don’t know which workflows you need to take action on. You just have a list of all the Waves, which has changed since you where on the page last time. This could maybe be solved using tags, which each user could search for.

For some workflows you need very strict or concrete results, like invoice approval. When you need to approve an invoice you need to assign the right cost elements to the different lines, get approval from manager and pay the vendor. This might be an area where the information given is too much structured data, so it is better to handle this in the ERP system.

Architecture for Google Wave applications.

I’m designing an application for Google Wave, which interacts with the user. The following is the considerations that I have for how the architecture of the application works best.

The application that I’m planning on should consist of a Robot which interacts with the user. The other part of the application should be a web application where users can configure how the robot should interact and view status from the waves. There should also be some analytics capabilities. The backend application needs to be rather a little complex to fulfill the requirements.

The most convenient way would be to use appengine, since it is the place that is mostly integrated with Google Wave currently. Continue reading Architecture for Google Wave applications.