Subsonic: Pick the Right OS!

One of the items on my tinker list was to build a Subsonic streaming media server for home. For one, I do enjoy building things, and two, I continue to look for a clean way to stream music both at home and away without relying on a cloud service that has limited storage. Subsonic is a free, open-source, web-based streaming server. You can set up user permissions so you could allow access to your music and videos to your family and friends. When I started out this journey, I failed because I picked an operating system I was familiar with, but Subsonic didn’t really appreciate.

I began with an installation of OpenSUSE 11.4 on an old HP 6710b laptop. It had 2gb memory and a Centrino Duo processor, so I wasn’t too concerned with bogging it down. After going through the standard OS installation, I installed Tomcat to run the web server for Subsonic. I had planned to just download their WAR file, start up Tomcat and kick the tires. Not so. What I soon learned is that Linux doesn’t like wma (Windows Media) files — no surprise. I tried my best to locate codec converters such as lame and ffmpeg from third-party sites to no avail. Granted, I should have ripped my old CDs years ago in mp3 and not let Windows Media Player convert them to wma files in the first place, but the past is the past. I wasn’t about to go back and convert all those wma files into mp3 format. It sounded more intriguing to build a server than to watch music files convert from one format to another. Watching paint dry sounded more interesting. I digress.

With a rainy afternoon invested, I decided to scrap my escalation of commitment into a codec pit of despair and go with a different operating system. Subsonic offers a standalone, self-contained installation for Ubuntu 12.04 LTS. It seemed like the next best option since I wasn’t too keen on bringing up a Windows web server (ack!). I hadn’t played with Ubuntu for about 5 years and the OS has come a long way. I was impressed that while the software was installing, I was prompted to enter all the mundane info like name, time zone, and language. It seems little, but it’s a nice efficiency. The desktop interface would be very familiar for those used to using MacOS. I felt more confident about my OS selection, so now it was time to see if we could get things up and running.

A Rough Step-by-Step Installation Guide

  1. Download and install the latest release of Ubuntu. I used the desktop version, which I’m sure will be fine for most people.
  2. Download and install the latest software updates. I can’t stress enough how important it is to keep up-to-date with these to mitigate the risk of security vulnerabilities or defects within code.
  3. Be sure to give yourself a static IP address on your network. This will make it much easier to access the web interface, and later, setup port-forwarding to access your songs away from home.
  4. Follow the step-by-step instructions from Subsonic: http://www.subsonic.org/pages/installation.jsp#debian I followed the Advanced Configuration because I didn’t want to be exposed to security vulnerabilities by running the subsonic service as root.
Once you get logged in to the web interface, it will direct you through setting up locations for your music and videos. Rather than keep all my music locally, I have them hosted on my FreeNAS file server. I am able to maintain a multi-tier sever environment and keep single points of failure out of my hair for one, but I’m also able to tighten down security a little more this way too. Especially since I’d like to have Subsonic available away from home, this is good practice.
Now, it’s time for me to tinker some more and learn about the different Subsonic players. More to come, I’m sure.

Getting Ready for Raspberry Pi

I’m getting ready to start tinkering again. It’s been a slower summer than I thought due to a last minute class to teach, vacation, and all the other summer outdoor temptations. Earlier this spring, I started looking into Raspberry Pi. The prospect of a credit card size motherboard that has been mass produced inexpensively is intriguing to me. Not just because of its size and proof that Moore’s Law still lives on, but because of the foundations’s mission. The goal of the Raspberry Pi is primarily to teach basic computer science in schools. This has historically been difficult due to the cost of technology. With a sticker price of $35 per motherboard (Revision B), one big barrier has been lifted. The other thought was that these motherboards could be used in developing countries as a low-cost way of introducing technology into their cultures. Plus, with a name like Raspberry Pi, what’s not to like? 

So, I started doing some research and figuring out just what all I needed to get started with a “Pi.” (Mmm, Pi! Oh, different Pie). I digress. It turns out that $35 gets you just that, a Raspberry Pi motherboard. No power supply… No storage… nada. The newer revision (Rev B) contains 512MB RAM (not expandable), onboard Ethernet, 2 USB ports, SD card slot, and HDMI (also video composite and audio out). It’s $35 for a reason — it’s bare bones. I now felt what it was like to “accessorize.” It was time to do some serious peripheral shopping on Amazon without breaking the bank. After going through their site’s helpful list of FAQs, here is the starter kit I have on order and should be here next week. For a total price of $127.23, I’m still pretty impressed how lost cost you can build a machine like this.

  1. Raspberry Pi Motherboard (Revision B)
  2. Raspberry Pi Clear Case (that’s right — just a motherboad. No enclosure)
  3. 8 GB Flash Memory SD Card
  4. Micro USB Power Supply
  5. HDMI to DVI Adapter
  6. Audio Cable
  7. Nano USB WiFi USB Adapter
  8. Mini Keyboard with additional USB Port
  9. Mini Mouse
  10. Carrying Sleeve
My goal here was to make sure I had enough components that made the kit portable and fit a variety of scenarios based on who was going to use the kit. I’m likely to get started by installing the recommended Linux distribution and putting it through its paces. After I’ve had my tinkering, I’d like to see some students take charge and see how they can innovate and use the hardware to learn Python, build a multimedia PC, or a model desktop platform with basic functions for low-income individuals. Others have been really creative in the gadgets they have built.
Regardless, I’m excited to see how this tinkering exercise works out for me and even more excited to see what students can do. But first, I have to wait for all these parts to arrive.