Entries from September 2009 ↓

New Robot API

Just found that a new JAVA API of the robots is available on the download site. The difference in the code can be seen on the changes page.

One interesting concept is the AbstractRobot which has been added. From my look at it this class gives is able to create the capabilities XML and the profile information. So you only need to implement one class and then you can have all the information you need one place. This will make it much easier to program robots. The Rave Ruby frameworks has something like this, you just implement the methods for each event you want to have. Then the framework can manage to create the capabilities XML file. The AbstractRobotServlet and ProfileServlet was not changed, this could lead to thoughts about deprecation of these classes.

Of other changes the Annotations and Range has better toString functions, which was missing when you needed to debug applications.

I hope there will be posted a change to the tutorial, so we can start using the AbstractRobot instead.

Bookmark and Share

Wave News for 15 September

In this week there has been some interesting blogs about Google Wave and Enterprise.

  • The Fedone Book has been created by James Purser. It contains a description on how to install the example wave server and getting started with using it.
  • GoogleWaveBlogger has created a blog about Google Wave + Google Voice = The Holy Grail. He gives ideas on how a mashup of Wave and Voice could be. With this post in mind, it looks like Wave can be mashed up with many different technologies to make new killer apps.
  • A wave forum has also been created, where it is possible to talk about Wave applications and usages.
  • Dagfinn Parnas has created a SAP Blog about how to embed waves in SAP enterprise portals. This gives some really nice examples on the usage of wave in portals.
  • Talking about embedding Waves in pages, I wrote a blog about embedding Wave in wordpress. The story was picked up by Mashable and also on other sites.
  • The last I found was an example on a robot to integrate with Salesforce. The blog by Kyle Roche, is a tutorial which go in details with how to create the robot. I like the API to Salesforce; it looks really easy to get started with compared to using Webservices.
  • A wave hackathon was held in Copenhagen, I blogged about it and it was also written on Version2 a Danish media.
  • DJ Adams has also created an example on how Wave can call a SAP REST service to get data about transports.
  • Process-One made a demo of their Wave server. It should be implemented in Erlang and had realtime updates between users. So users can see each other’s key stroke as they type. The UI is not as impressive as Googles but Process One have probably been working on the protocol. They are using the ejabberd to the XMPP/Wave communication and it looks promising. Their server could be one of the first third-party wave servers created.

If you have any comments or know any post that I have missed, please comment on this post.

Bookmark and Share

Blip debug robot

In the last post I created a screencast of how a debug session, which showed which annotations is created.

Now I have posted the robot so it is possible for others to start using the robot. This will allow all users to investigate how the annotations work. I hope it will help you to gain some more knowledge on how annotations work.

Simply add the robot with the name BlipDebug@appspot.com to you wave, and start modify your application. Just be careful and not add the robot to any large waves. This robot is quite disturbing and should only be used for testing purposes.

The Java code to the robot is in the code.google.com repository.

The robot is now approved in the sample gallery.

Bookmark and Share

Google Wave annotations

Annotations (com.google.wave.api.Annotation) is a key concept to understand, when you are developing robots, how should understand the content of a robot.

I have created a screencast, where I show how the annotations are changed because of the editing.

I have found the following types of annotations.

  • user/d/key identifies that the user is on the blib and is in edit mode
  • user/e/key identifies where the users cursor is only the from selection counts.
  • user/r/key identifies the selection the user has created with start and end. The user will still have his curser at a place in the blip.
  • style/fontWeight identify if the selection is bold
  • style/textDecoration can be used to add line through
  • style/color is the color of the selected text
  • lang identifies the language of a region. There can be multiply different languages in a blip.

There are probably a number of different style markings, which you will have to find your self.

Key is probably a hash of the user address.

Bookmark and Share

Wave hackathon in Copenhagen

Today a wave hackathon was held in Copenhagen. Tommy Pedersen from Miraclegeekhouse started with the ide and got everything organized. National IT and Telecom Agency (IT- og Telestyrelsen) hosted the event in their nice meeting rooms.

The group ready to start Waving

The day started with an introduction with Tommy, about Google Wave and how to build robots. So everyone got up to speed on what wave was.

Joakim showing how to make gadgets

Then Joakim Recht from Trifork gave an introduction to the gadget api and how to use the shared state in gadgets. It was a good introduction, which made me wanting to code a gadget.

We had a brainstorm before the meeting in a wave. See the embedded wave for more information (sorry none wavers, I felt like this was the time to use the embed plugin).

We had some hectic hours programming on wave in small groups on the subject of our choise.

For the presentation we had some problems namely that the link between the Wavesandbox and Appengine was very slow. We had therefore response time of up to 5 minutes, before robots could interact. The robot demos were therefore pretty lame.

Bjarke Walling and Allan Ebdrup had made a gadget to make freehand drawings in. It was possible to collaborate on drawing in the wave, and both participants could see the drawing. He had some problems with the mouse down and up events, which was a little slow. Also the drawing created a lot of events, so the playback was long.

Bjarke presenting his drawing gadget

I was together with Bo Stendal Sørensen and worked on a robot to record each participant’s contribution to the wave. It mostly ended out in a research project for how to annotations works. It was a pain, but I hope to be able to create a write up about it soon. It might solve some hair lose.

It was a great day, and we all learned a lot from the event. Big applause to the team around the event.

[wave id="wavesandbox.com!w+Qx64lCXy%F" bgcolor="#ffffff"]

Bookmark and Share