Sunday, December 27, 2009

How I made the SlideBlast work on my Ubuntu server

We want to start with the clean Ubuntu server to test and then run the SlideBlast, created by Rusty Klophaus.
Yes, there is the SlideBlast.com, but we need to have an instance "at home".
So, let us do it!

We will need the Git,Mercurial to get the codes, and GhostScript and ImageMagick for the SlideBlast. The first lines are needed for Erlang.

sudo apt-get update
sudo apt-get install libssl-dev libncurses-dev build-essential m4 
sudo apt-get install git-core
sudo apt-get install mercurial
sudo apt-get install ghostscript
sudo apt-get install imagemagick
mkdir ~/src
cd src
Riak needs Erlang at least of version 5.7.4, so we need to compile it from the source:
wget http://erlang.org/download/otp_src_R13B03.tar.gz
tar zxf otp_src_R13B03.tar.gz 
cd otp_src_R13B03/
./configure 
make
sudo make install
cd ..
As of today, the SlideBlast does not work with Riak 0.7 - we need to roll it back a bit.
Let us take the last SlideBlast (with Nitrogen) and the label "riak-0.6" of Riak:
git clone git://github.com/rklophaus/SlideBlast.git
cd SlideBlast/deps
hg clone http://bitbucket.org/basho/riak
hg update -r riak-0.6
cd ../..
make
./start.sh
Now we would be ready to point your browser to http://localhost:8000 and start working.
Hey! What browser? We have Ubuntu Server, running as a virtual guest. Let us make the app visible: edit the SlideBlast/src/caster_mochiweb_app.erl to look like:
...
%%%Options = [{ip, "127.0.0.1"}, {port, 8000}],  %%% Just this one line to update
   Options = [{ip, "0.0.0.0"}, {port, 8000}],
...
Now we will re-compile it and try it from the host using the proper IP.
make 
./start.sh
From the outer box, we will try it as in our case, http://192.168.1.115:8000.
And it worked!
Your IP address of course will be different.

Word of advice for users: best works on FF, Safari. Chrome and IE show minor glitches, but work too. Best viewed slides have big fonts and little text. The client browser better be open full screen and "f" key is used to use all available browser window space.

Enjoy!