Vibe Streamer goes open source
Posted: August 2, 2012 Filed under: Software Development | Tags: opensource, programming, vibestreamer Leave a comment »Early in 2006 I developed and released the first version of Vibe Streamer. Vibe Streamer is a streaming server that gives you access to your music collection using a standard browser, and at the time it was a pretty unique solution. I was suprised to see such a great interest in the software, which kept me going many long nights over a couple of years improving it.
Today there are many services available that fills the gap that Vibe Streamer once did, such as Spotify, Rdio and similar solutions from giants such as Google and Apple. Since Vibe Streamer has been stable for quite some time now, and there are always new ideas and interesting projects ongoing for me, I decided to release Vibe Streamer to the open source community.
Vibe Streamer is now released under the GLPv3 license and hosted at Github:
http://www.github.com/versionstudio/vibestreamer
Rhetoric, props and inspiration
Posted: April 3, 2012 Filed under: Uncategorized | Tags: rhetoric Leave a comment »Yesterday during a course, we were discussing the use of props and tools in presentations to further engage your audience and help strengthen your message. Some truly inspiring examples of how powerful visual aids can be were given by Hans Rosling on “the magic washing machine” and Dick Hardt on “Identify 2.0“. Be sure to check out more presentations by Hans Rosling on TED.com. His creative ideas combined with his unquenchable enthusiasm is impossible not to love.
Turn XBMC into a retro console running real game cartridges
Posted: January 6, 2012 Filed under: System Administration | Tags: emulation, linux, retrode, xbmc 12 Comments »
Being quite the nostalgic tech geek and especially fond of the 8-bit and 16-bit era, I’ve managed to stack up on quite a bit of original cartridges and consoles from the glorious days of my youth.
Even though the world of emulation has been around for some time now, it’ll never beat the real thing. But for some reason I got the idea of exporting my own game cartridges into ROMs and somehow transfer them together with the save files to a media center running XBMC and back, thus making it possible to play my original games both on the media center as well as on the actual consoles.
After plenty of research I stumbled upon the amazing Retrode which was just about to be released in an updated version: Retrode 2. The Retrode is a USB adapter for both Super Nintendo and Sega Genesis game cartridges and controllers, and seeing that it would also be fully compatible with Linux, Mac OS X and Windows and supporting both reading/writing, it was just what I needed.
Running XBMC on Ubuntu 10.04, here’s what I did:
- Make sure your Retrode works as expected by simply plugging it in and inserting a game cartridge. Your Retrode should be automatically mounted at /media/RETRODE/ and it should now contain an .sfc rom-file, representing your game cartridge.
- Install the ZSNES emulator: apt-get install zsnes
- Next, either start ZSNES by typing zsnes and configure it to your needs using the GUI, or simply go ahead and try out your game cartridge by typing: zsnes /media/RETRODE/*.sfc
- Depending on your configuration the emulator will probably not be running in full screen. To solve this you can force a video mode when starting your game: zsnes -v 4 /media/RETRODE/*.sfc. Available video mode options and other parameters can be found by typing: zsnes -?
- Now, launching this setup from XBMC requires that you install the Executor add-on, which is available from the XBMC repository and is easily installed just like any other add-ons.
- When the Executor add-on is installed, go into the Programs section, select Add new program and configure it to execute /usr/bin/zsnes with parameters -v 4 /media/RETRODE/*.sfc or other any video mode and/or parameters that you prefer.
- You should now be able to launch whatever game cartridge you have in your Retrode unit, and I’d recommend that you add the execution to your Favourites section together with an execution to the ZSNES GUI in order to do simple configuration changes from XBMC

The Retrode 2 unit is shipped with write protection enabled, so by default it will not be possible to save any game progress to your cartridges. Instead, all your game data will be saved locally on the computer. This is probably fine for most people, but since I’d rather save all progress to the actual game cartridge, I had to make some further configuration:
- Edit /media/RETRODE/RETRODE.cfg and set sramReadonly to 0, allowing the Retrode to write save files to the cartridge. On Linux and Mac OS X this is a reported problem, but copying the modified configuration file between the computer and the Retrode worked well for me using cat, just like the troubleshooting recommends.
- Next, open the ZSNES GUI and go to Config/Paths and change the saves path into /media/RETRODE/. Since you’ve now configured ZSNES to store all save files on your retrode, I wouldn’t recommend you to run any other ROMs except the ones inserted into the Retrode while having this configuration. It is also important to remember that by disabling the write protection of the save files, the chances of your game data being corrupted increases, so I’d make sure to backup any saved games on your cartridges before attempting this.
- Running your game cartridge using ZSNES should now read and write to the save file available on the cartridge, just like a regular console.
There are of course other SNES emulators to use for this, such as Snes9X and bsnes, and for those of you wanting to run your Genesis games, I’d recommend you to try out something similar using a supported emulator, such as dgen.
Installing ModSecurity on Debian Lenny
Posted: September 20, 2011 Filed under: System Administration | Tags: apache, debian, httpd, linux, modsecurity, security Leave a comment »A few years back, libapache2-mod-security was removed from the Debian repository due to licensing issues. Even though there is much info out there regarding how to compile and install ModSecurity 2 manually, I ran into a few missing dependencies that at least stole a few minutes of my time. Maybe this will make it easier for anyone:
- Download the source for the latest stable release from the ModSecurity website (At the time of writing, the latest available version is 2.6.1)
- Install the following packages required for compiling the source:
apt-get install apache2-prefork-dev build-essential libxml2-dev libcurl4-gnutls-devNote that the apache-prefork-dev package is required if your apache is running non-threaded MPM prefork. If you are running your apache threaded using MPM worker you should install the apache2-threaded-dev package instead.
If you are not sure whether your Apache is running threaded or not, try finding out using the command dpkg –get-selections | grep apache2 and look for either apache2-mpm-prefork or apache2-mpm-threaded.
- Unpack the downloaded source and compile it by running ./configure && make from the unpacked directory.
- Now to install ModSecurity, simply run make install from the unpackaged directory.
- If you’d rather do a manual install, start by copying the library apache2/.libs/mod_security2.so from the unpacked directory to /usr/lib/apache2/modules
Make sure the library has the appropriate permissions:
chmod 644 /usr/lib/apache2/modules/mod_security2.so
chown root:root /usr/lib/apache2/modules/mod_security2.soCreate the file /etc/apache2/mods-available/security2.load containing:
LoadModule security2_module /usr/lib/apache2/modules/mod_security2.so - Configure ModSecurity
- Enable the configured module by running a2enmod security2 and restart Apache.
Last.fm Radio Spotify Button – Greasemonkey Script
Posted: June 15, 2011 Filed under: Software Development | Tags: greasemonkey, javascript, last.fm, spotify Leave a comment »As a regular user and proud subscriber to Last.fm I’ve been using the radio feature as a good way to discover new music, and probably more than ever for the past weeks. I mainly use Spotify to stream music, and I recently started to find it slightly tedious to look up whether an interesting band or track I heard on the Last.fm radio existed on Spotify, so I decided to put together a simple solution to get rid of this huge burden of mine :]
For those of you not familiar with Greasemonkey, it’s an addon for Firefox that “allows you to customize the way a web page displays or behaves, by using small bits of JavaScript.”
After installing the Firefox addon, simply install the script I put together here:
Last.fm Radio Spotify Button – Greasemonkey Script
With the script installed and enabled, the Last.fm radio player should now show an additional button, which will be linked to the track (or artist, if the track couldn’t be found) on Spotify.

I believe this currently won’t work in other browsers than Firefox without further improvements, but it should be quite simple to implement a fix per browser, or transforming the script into a Chrome Extension for use with Google Chrome.
Minnty – a better terminal
Posted: April 5, 2011 Filed under: Software Development, System Administration | Tags: cygwin, linux, mintty, windows 2 Comments »There are times when I’m required to work in a Windows environment. For such cases I’m glad that Cygwin exists to provide me with nifty tools. I haven’t been a huge fan of Cygwin’s default terminal emulator though, much due to bad support for resizing, text selection and scrolling. I decided to do something about it, and so I recently discovered the terminal emulator minnty which is a great improvement. It’s possible to download from Google Code or to simply install from Cygwin’s setup.
Varnish and SSL
Posted: March 23, 2011 Filed under: System Administration | Tags: linux, pound, prone, ssl, varnish 2 Comments »Some believe a missing feature of Varnish is the lack of SSL support. There are many good reasons why Varnish doesn’t support SSL, and there are of course ways to work around this. I’ve used Pound myself for this task, a light-weight reverse proxy, load balancer and HTTPS front-end that serves as a SSL-capable proxy in front of Varnish. A side note is that your application backend won’t have any idea that the initial request was sent on a secure socket. Therefor it’s a good idea to let Pound add a header describing the initial protocol. There are more details and configuration examples of how this could work when combined with a Plone backend.
