May 7 2011
I love Google Wave, I think it is a great technology for offices that need to colaborate things together. When Google announced that it was shutting down the project, my hopes in Google got dashed and it actually kinda depressed me for a bit. (yeah, I’m a geek, I know…)
Wave in a Box, to the rescue?
When I heard that you could install Google Wave on your own system, I got a little excited again, and this weekend I finally took the time to install it on my mac. Only to be disappointed again.
Wave In a Box is not to the level that Google Wave was when they canned the project. Right now you can make a wave, and add gadgets, add replies to each wave, and add other participants to the wave. But that is it. No playback history or even profile management (so no avatar to distinguish who is who). WIAB also does not have the polished feel that Wave has. Plus the biggest disappointment, is that waves do not save yet.
No Saving Waves
There are 2 methods to save waves, (called delta’s). The first is in memory, this works great, is quick, and is what is recomended. But if it is in memory then as soon as you restart the server software, all of your wave data is gone.
They give you the option to save to the file system, (hard drive), which saves your waves even if you restart the server, but there are 2 negatives. The first, is they warn that this will likely crash the server. The second, and severe downside to the file system, is they plan on using a completely different setup in a later release, and they warn that when you upgrade the server you will lose all data that is saved.
So no matter how you cut it, you will not be able to use WIAB for anything serious right now. If I had known this before I started I likely wouldn’t have wasted my time.
But, alas, I did, so hopefully others can learn from my exerience. So here you go, here is how I did it, step by step instructions.
Step by Step installation (OS X)
For the first part you can pretty much follow the directions on the WIAB website, but I will walk you through anyway just so there is no confusion.
1. Download Mercurial and install it
2. Open Terminal
Type “Terminal” in the search bar.
3. Make the directories
Go to where you want to install wave, we will use your home directory, then make a new folder
Optionally you can install Mongo DB at this point, make a directory in wave called “dependencies”, download Mongo, unzip it inside the dependencies directory, rename it to “mongodb”, then in another terminal window launch with “sudo ./mongod”. This will be used to store usernames instead of using the file system, but the 32 bit version is limited to 2 GB of storage.
4. Download Wave-Development
Note 1: when using sudo you will have to enter your admin account password
Note 2: If you are having trouble with the “hg” command, check that you installed mercurial correctly (from step 1)
5. Take a Mountain Dew break.
250 Mega bytes of Google awesomeness are being downloaded, so take a break, grab a Mountain Dew, and read my other blog at Eternal Truth Ministry.
6. Build Wave in a box
7. Take a Bejeweled break
This build took me about 5 and a half minutes, so relax with some Bejeweled 2 or check out the projects I am working on. (shameless advertising FTW!)
7. Configure Wave
Here you will have to use your mad vi skills (or another editor) to change some variables in the config file.
The wave_server_domain is the appearance of how your name looks, i.e. jon@local or firstname.lastname@example.org
# Domain name of the wave server wave_server_domain = mysite.com
Next change the address used to access your server. The first value, http_frotend_public_address is any URL allowed to access your server. If you only access this from one machine then leave it as localhost:9898, but if you want to access it from any computer in your network add the ip address of the machine.
http_fronend_address is the default value, but I had trouble accessing the site from any URL that did not match the frontend_address.
# A comma separated list of address on which to listen for connections. # Each address is a comma separated host:port pair. http_frontend_public_address = localhost:9898, 192.168.1.101:9898 # Default value: values passed to http_frontend_public_address. http_frontend_addresses = 192.168.1.101:9898
Next we change the variable that tells the system where to save user accounts. If you are just testing this and do not need it to save then you can leave it as memory, which will be erased when you restart the software. If you installed mongo db then use “mongodb”, otherwise use “file”.
# Currently supported account store types: fake, memory, file, mongodb account_store_type = file
Here is the sucky part. delta_store_type is where the waves are saved. If you are just playing around keep it at memory. If you really want to use the WIAB server use file, but take notice of the warning they give you that upcoming changes will make you lose your wave data no matter what.
# Currently supported delta store types: memory, file # Note: file system support is experimental. Your server may crash. And the file format is # not stable and shouldn't be relied upon for long-term storage yet; upcoming changes will # require you to blow away your data. delta_store_type = file
Finally, make sure you comment out the line that wants to include the federation server configs.
# To enable federation, edit the server.federation.config file and include it here. # Or run ant -f server-config.xml server-federation-config # If not using the server-config.xml ant script - it is possible just to comment the line. #include = server.federation.config
Save and quit the config file.
8. Start the wave server (YAY!)
From the ~/wave/wave-development/wave-protocol/ directory run this command
If there are errors then the script will stop running and give a bunch of warnings. If everything stays running then your server is setup. Now go to your browser and type in the address to your server using port 9898 (localhost:9898 or the ip to the server) and enjoy your own personal wave in a box.
Accessing from the Net
The last thing I tried (for 3 hours and then failed) to do is access the wave server from the net. No matter what I tried for port forwarding or anything else I could not get this to work…. Maybe it is because I am running a qwest modem (which is also a router) and then going to my Linksys router? Both devices allow for port forwarding, but are on different networks and no combination I tried would work.
But that is just my rant and has nothing to do with this tutorial. If you have any ideas, though, let me know.