LightS5

For the Second Rails meeting in Osaka I needed to prepare some slides for my presentation. Usually there is no projector there, but we have network, so I thought it will be good everybody to access slides with their own browser. Before I used the great S5presents open-source web-based slideshow application. I even made some modifications to it.
For the current presentation I wanted to use one of the OpenBlockS boxes we have around. So I installed Debian 3.1 (sarge) (document is in japanese) on it, added ruby and rubygems. The problem was, that the box come with only 64MB RAM, that's why I needed a light versions for all software.
For the web server I wanted to use lighttpd or Mongrel. The latest require ruby-1.8.4 and also there was no lighttpd .deb in Sarge, so I dist-upgraded to Debian Etch.
Next was the problem with the database. s5presents using MySQL for database, but the box was to weak to handle it. As a result I rewrote the whole stuff to use SQLite3. It fact it's pretty cool - now I have my presentations in addition to the code added to the subversion repository. I can checkout and use them without need to do some database dump/restore.
For the slides s5presents using markdown by default, but I prefer Textile (warning: rebel inside). So I added Textile and RDoc support.
Finally I moved the whole installation to my notebook (hahahaha, work for nothing a ;) ), but the LightS5 code become pretty good, so I decided to continue working on it. The result:

  • Single user version (no authentication)

+ tarball of LightS5-v1.2 for download
+ development version - for subversion users

+ tarball of LightS5-v1.2 (Multi) for download
+ multiusers development version - for subversion users (WARNING: be sure after checkout to create the db/s5.db:

$ cd db
$ sqlite3 s5.db < s5.sqlite3

BEFORE using the application)
The Multiusers version is running online (Thanks to William for the great hosting he gave me for free ) and there is also Trac for bugs reports and requests.
Pretty hard job only for one rails meeting a ;)