Technology
Google Wave Federation Update
Submitted by Aldon Hynes on Thu, 11/05/2009 - 12:08My Orient Lodge Google Wave Server has now successfully federated with several different servers, including the Google Wave Sandbox server. I’ve hit various bumps and curves along the way and hopefully this blog post will help others hitting similar curves.
Initially, I tried to use StartSSL for my certificates. However, my preferred web browser is Google Chrome and StartSSL just doesn’t work with Chrome. I gave up and went over to CACert.org.
I created a certificate file using a certificate signing request (CSR) to get a certificate from CACert. The generated certificate worked fine, and I started my wave server with just that certificate file. Later, I received signed certificates for my XMPP server as well, but these did not help with federation.
On the mailing list, there was a long discussion about people chaining certificates, so I added CACert’s root certificate in my chain.
e.g.
CERTIFICATE_FILENAME_LIST=${WAVE_SERVER_DOMAIN_NAME}.crt,cacert.crt
(I had saved CACert.org’s root certificate as cacert.crt)
With that, I managed to successfully federate with another wave server that runs using CACert.org certificates. However, I could not connect with WaveSandbox or other federated servers. Some of the problem connecting with other federated servers may have been because we are all struggling to get federation up and running.
Last night, I federated with one server whose owner I’ve been talking with on the production Google Wave server. What was interesting was that he could send blips to me, but I could not send them back to his server. He checked the log and found that his server was rejecting my requests because of a signing error. He suggested moving to StartSSL and noted that while it does not seem to work well with all browsers, it does work well with Firefox.
So, I went to Firefox and set up an account and got a certificate. I went back and forth trying to get the certificate to validate the certificates. If you can’t validate them with the openssl verify command, then the odds are your wave server will crash when you try to run it
In the end,
openssl verify –CAfile startssl.pem –untrusted sub.class1.server.ca.pem orient-lodge.com.crt
worked.
As part of my testing, I ran the keytool commands:
keytool –importcert –storetype jks –keystore /etc/java-6-opensdk/cacerts –file startssl.pem
keytool –importcert –storetype jks –keystore /etc/java-6-opensdk/cacerts –file sub.class1.server.ca.pem
With all this in place, I changed my run-config.sh file to include:
CERTIFICATE_FILENAME_LIST=${WAVE_SERVER_DOMAIN_NAME}.crt,sub.class1.server.ca.pe
m,startssl.pem
When I restarted my wave server, I could federate with wave24z, wavesandbox and even a CACert certified server. I’ve tested various combinations, federating with several different servers at the same time. This seems to work well. However, if you add servers federated with CACert to servers that do not recognize the CACert certified server, the wave appears to crash on all the servers.
I also ran into a problem with Wavesandbox where I was typing along, and seeing the typing show up on two other federated servers, when it stopped mid sentence. Wavesandbox had a message about the wave becoming unstable and marking it crashed. This is an area that needs further exploration.
For more on this, and a major hat tip to Ralf, whom I worked with a lot trying to get the wave server running, please got out and read his blog post Federate Google Wave sandbox with your own (FedOne) server.
A few other notes, partly as a followup to his blog post:
First, my environment:
Hosted via a 512M Slice at Slicehost. Slicehost is owned by Rackspace.
Running Ubuntu 8.04
With that, I’m running java-6-opensdk instead of java-6-sun
Now using certificates from StartSSL
If people want access to my wave server, please contact me directly.
P.S. I also added the StartSSL root certificate to Google Chrome on my main computer and that seems to have fixed the problem with their site.
Federated Google Wave Server Update
Submitted by Aldon Hynes on Tue, 11/03/2009 - 22:06Today, I did continued testing on my Federated Google Wave server. As a starting point, I received an email with a test id for the WaveSandbox server. This is the server to test federation against and I was glad to be able to do some testing there.
I found that I was still having problems connecting to the sandbox server, and started reading my logs a lot more closely in search of clues. I tried a collection of different things to get the server to work. These included changing my certificate to being signed by CACert.org, adding signed certificates to my XMPP server, adding an SRV DNS record for my server, and ultimately, opening up ports 5269 and 5270 in my firewall. These steps are described in the wiki page about federation. It seems like the key was opening port 5269.
With that, I am now successfully discovering wave servers and sending messages back and forth with them. However, I have yet to successfully create a wave on one server and then add a user from another server and have the other user see the wave.
I did use the client-console to connect to another server and had a great discussion on the production wave server about ways of testing. To connect on Google Wave, do a search on “wave federation” to see the waves where we’ve been working on this.
It seems like a lot of people are having problems with signed certificates. In looking at various reports, it seems like it is if they are using a signed certificate from cacert.org and java-6-sun. I’m using a signed certificate from cacert.org, but I used java-6-opensdk and this seems to be working okay.
I also did have one crash when I attempted to connect to a wave server that does not yet have signed certificates. My configuration is looking for signed certificates.
Latest Explorations in Google Wave
Submitted by Aldon Hynes on Mon, 11/02/2009 - 21:43During a few moments of free time today, I did some more explorations into Google Wave. Much of the explorations my friends are doing are using Google’s Wave interface connected to Google’s Wave server. If you’ve been invited, you should spend some time exploring the interface and thinking about use cases for Google Wave. It is well worth the exploration. One friend pointed out The Complete Wave Guide as a good source for ideas about how to use Wave. However, I’m much more interested in the geeky side of things.
So, I’ve set up my own Wave server and described the efforts in Google Wave Federation on Ubuntu. Since then, I started doing some testing. First, I connected with the run-client-console.sh client program. I managed to connect to my wave from a couple different logins and see that it was behaving the way it seemed like it should.
I’ve also set up another interesting aspect. I wrote a very simple shell,
#!/bin/bash
cd /home/waveserver/wave-protocol
./run-client-console.sh $USER
I then use that shell as the login shell for users that I’ve set up. So, a person logging in on a predefined account gets taken into the client-console. It has worked nicely for testing.
Another interesting test that I did was I build the wave-protocol software on another machine. This second machine is behind a firewall and does not have an XMPP server on it. So, when I started up the client console, I wasn’t expecting to be able to do much. In fact, if I tried starting a new wave, I would get a Java error. However, I was able to do something fairly interesting. I could connect to my wave server using the client and talk between local wave users. It also appears as if I can connect with other federated wave servers.
The other thing that I want to do is to add people from different federated servers to various waves. So far, I’ve had no luck on doing this. The best, perhaps, would be to use Google’s Wave Sandbox, but I don’t have an account there yet. I’ve applied and am waiting.
As I understand things, you need to have certificates enabled to connect with Google’s Wave Sandbox. Since XMPP.NET is no longer providing certificates, and I’ve had no luck with startssl so I tried CACert. Setting up the CACert certificate was fairly easy.
The next issue was making sure that I had the latest version of the software. I’m not used to working with mercurial, which is used to distribute the software, and it took me a little while to figure out that what I really wanted to do was go to my wave-protocol directory and execute the command
hg log | head -20
This shows the top twenty lines of the log, from which you can look at the changeset to determine which is the most recent. Currently, I’m using changeset 117 for my installation.
So, I can navigate around some different federated waves and try to figure out why they don’t seem to federate the way I would like. It may be that this is an aspect of the client console not showing the federation and not a problem with the servers failing to federate with one another. That is another aspect to check out.
This takes me to the next aspect of Google Wave Federation. So far, I’ve only used the text based client-console that comes with the software. However, there are some very interesting other projects emerging. One is Ruby on Sails. This is a nice client for testing Wave. However, I haven’t managed to connect to it via federation yet. When I try from my machine, I get an error saying that wave.danopia.net does not appear to have wave.
Another interesting client appears to be PyGowave, a Google Wave Client in Python. Unfortunately, I’ve been told that it does not yet support federation and I did get a similar error when I attempted to connect to it.
As another note, it has been suggested that I should run with WAVESERVER_DISABLE_SIGNER_VERIFICATION=false
I restarted my server in this mode and it still appears to behave essentially the same way. One thing that I do notice is that waves do not appear to be persistent between invocations of the wave server. When I shut it down and restart all the waves and blips disappear. This is okay for testing for right now, but persistence of waves seems to be a fairly crucial underlying function that is necessary.
So much for testing for now. If you are running a Google Federated Wave server, playing with a fun new client, or want to test in other ways, let me know.
Refurbished Ubuntu Laptops
Submitted by Aldon Hynes on Mon, 11/02/2009 - 14:36Over the weekend, I updated an old laptop that I have to the latest version of Ubuntu, Karmic Koala. For those who don’t know Ubuntu, it is a very nice version of Linux that you can download and install on your computer.
The computer that I loaded it onto is an old IBM ThinkPad R51. The R51 came out about five years ago, and the one that I have, I am using third hand. It is in pretty good shape, and works very nicely as a spare laptop.
I’ve been running a previous version of Ubuntu on it for a while, and wanted to test out some new things, so I decided to give it a try. The update ran slowly and I had a few glitches, so I had to restart the update a couple times. However, when it completed, now runs very nicely.
The Ubuntu distribution that I’m running came with Firefox on it, so I can surf the web. It has Pidgin, a nice IM client that works with most IM networks. I’ve been using this to connect to a special IM server I’ve been working on. It comes with OpenOffice, which gives me spreadsheet, document and presentation capabilities, similar to Microsoft Office. It has Evolution Mail, which seems fairly similar to Outlook, including the ability to connect to an Outlook server, as well as calendars, tasks, and contacts.
I also installed Google Chromium, a version of Chrome for Linux and use that fairly often, and have installed lots of geeky programming tools.
However, my eight year old daughter always wants to steal the computer for going online. Since it is my spare and a development machine, I let her do this and it does seem like a great introductory machine for elementary school kids.
A quick check on Ebay showed these machines going for between $140 and $240. However, additional looking around showed machines preloaded with Ubuntu for under $100. So, I’ll keep an eye on good inexpensive laptops running Ubuntu.
I’m wondering, have you installed Ubuntu on any refurbished laptops? Which laptops have worked well for you? Which ones have been nightmares?
Google Wave - Naysaying the Naysayers
Submitted by Aldon Hynes on Sun, 11/01/2009 - 19:16I just read a tweet pointing to CogDog's recent thoughts on Google Wave. He complains about mostly seeing Google Waves talking about Google Wave and sums up his thoughts saying "I am not seeing any value in endless chatter on the Surfboard."
I must admit, I have a different perspective which I expressed in my comment on his blog, included here for your reading pleasure
I am glad I read your post. It reassures me that there is a good future for Google Wave. Before disruptive technology gets a chance to disrupt things, there need to be naysayers complaining about it. Sort of makes me think of the early days of Twitter when people talked about how useless Twitter was and how everyone on Twitter just spent all their time talking about Twitter. Likewise, it makes me think of the early days of Blogging. With each of those, not only was there the phase of introspection, but there was also a phase of people complaining about the new media and the navel gazing on it.
Fortunately, we don't have as much talking about the medium in virtual worlds, which is probably why virtual worlds are so much more pervasive than blogging or tweeting. (* snark *)
Yet perhaps, this self reflection is important. Before a disruptive technology can get a chance to disrupt, people need to experiment with it and explore ideas of what it might be possible to do with the technology that hasn't been explored yet and complaining about things that just aren't working right with the technology yet.
To me, what is important are the underlying aspects; the ability to create gadgets that can be shared in waves as well as on other platforms; the ability to federate servers; and the ability to extend the platform.
Okay. That's my counter-rant. Go ahead looking at what is, and asking why. I'll go about experimenting with what is not fully yet, and asking, hmm, I wonder what I can do with this.
So, what are you thinking about Google Wave, the navel gazing taking place on it, (or should I say Wavel Gazing?) Will this technology disrupt? What are your ideas about what the disruption might look like?