Things got even better today when we got our second google wave account for the same user. mmm wait… a second google wave account ? Yep. Google wave is split into googlewave.com accounts for normal end users and the wavesandbox.com accounts for developers and geeks. It is interesting to note the differences.
- Is a little less buggier. It has more features like read only waves that the sandbox is missing.
- Linked to your existing gmail and docs. All your existing contacts can be… contacted.
- Has this cool green box that opens up for active wave conversations.
- No debugging or anything technically related.
- Number of invites allowed are varied. If you requested for the account yourself, you get anywhere from 8 – 22 invites (from what I have heard so far).
- Pretty buggy and is a developer’s paradise.
There are times when you need to display wireframes of your application for internal discussions / presentations etc. Some online applications allow you to draw a wireframe in no time. Here are a few of them
Pencil: Mozilla firefox plugin based
Each application has its own style of doing the mockup. Some use an informal approach. Other advanced ones let you click and see the results then and there. There are other tools out there that also run on desktops and IDEs like eclipse, Netbeans etc if you are looking for an offline solution.
As most of you are aware by now, developers can write java robots that can aid a conversation that happens in google wave. A conversation is a wavelet and each reply in this wavelet is called a blip. There are some ‘getting started’ tutorials available out there that are of great help. These links should help you
Official google wave guide
Google wave getting started – Sort of an abridged version of the official guide written by Vogella.
Grasping the overall picture of a java robot is a little difficult. This is because there are no flow or architecture diagrams (at least none that I know of) that show you the sequence of events. Given below is a diagram that does that. Assume that you wrote a java robot that is meant to edit blips in a wavelet. The robot should provide a profanity filter service which will delete objectionable words from the wave. This is how the series of events happen.
If you are a newbie to working with java threads, this post will help you. Certifications like the SCJP require you to understand java threads to a fair degree. Threads behavior can be difficult to understand even for experienced programmers, so I will try to present some examples which will help candidates identify how threads wait / lock and synchronize.
Lets cut the chit chat and jump into a problem. A program increments a counter in a for loop as shown below.
public class StaticSync
public static final Object s_lock = new Object();
public static int s_counter=0;
public static void main(String... args)
public void go()
for(int iCounter=0; iCounter<50; iCounter++)
Thread thread = new Thread(new Incrementer(new StaticSync()));
class Incrementer implements Runnable
public Incrementer(StaticSync staticSync_INP)
m_staticSync = staticSync_INP;
public void run()
This program is pretty simple. This is the sort of code that you can expect on the SCJP exam. Advanced versions of the code above can also appear by adding notify() wait() sleep() etc into the picture. Let us concentrate on the program for now. What can be guaranteed about the output of this program ?
After a long wait I got a google wave account. yay ! Took the wave for a spin over the last few days and there were some interesting things that I observed. I wrote my first java wave robot and it was pretty cool. But an explanation of how the robot works should be left to another post all together. I will share my general observations in this post.
Deleted welcome messages:
The first thing that was weird was that welcome messages are often deleted by wave users or by bots. This is nuts. The wave welcome messages also have a lot of noise amidst them with quotes like ‘Please do not delete this !’ in bold red with a big font size. Wave still does not have a feature to disable edits. It is coming soon but it is not yet active.