NCurses Internet Radio Player

Since moving house last year, I've found myself unable to receive Saorview (Irish DVB-T) using an indoor aerial (my new house is about 10km further from the transmitter). This was previously my primary way of receiving the RTÉ Radio stations when working on my desktop. I have a high gain wideband antenna in the attic which works great, but with no neat way to get a cable to my desktop, this is unfortunately not an option..

I had a look around for terminal-based internet radio players but could find none packaged within Debian, which I found a bit surprising. I came across pyradio, but I found it a bit clunky. Nevertheless, it is still an improvement on RTÉ's horrible Flash-based web player. I figured I could do better, and remembered VLC's nifty NCurses interface; which is ideal for my requirements.

I've collated the IceCast m3u streams from RTÉ and other Irish stations into a XSPF playlist and placed it on Github. By opening this playlist within VLC, we get a pretty clean terminal interface for playing my radio stations:
vlc -I ncurses --no-color /path/to/radio_playlist.xspf


Git remote helpers

If you follow upstream Git development closely, you may have noticed that the Mercurial and Bazaar remote helpers (use git to interact with hg and bzr repos) no longer live in the main Git tree. They have been split out into their own repositories, here and here.

git-remote-bzr had been packaged (as git-bzr) for Debian since March 2013, but was removed in May 2014 when the remote helpers were removed upstream. There had been a wishlist bug report open since Mar 2013 to get git-remote-hg packaged, and I had submitted a patch, but it was never applied.

Splitting out of these remote helpers upstream has allowed Vagrant Cascadian and myself to pick up these packages and both are now available in Debian.

apt-get install git-remote-hg git-remote-bzr

HP Firmware Updates (or lack thereof)

HP recently announced that they are no longer offering free firmware updates for their ProLiant line of servers.

I have a HP ProLiant G7 N36L MicroServer at home (running Debian stable, naturally) which I got back in early 2011. While it has, and continues, to serve me well, I'll have to reconsider my options when I go looking for a replacement. This is a pity because I really like the MicroServer form factor.

As recently as November 2013, HP released a BIOS update to fix random lockups when installing Windows 8.1/2012 R2 on a MicroServer (I'd never ever be running these operating systems, but the point still stands). I'd be worried if I couldn't upgrade my system for fear of uncovering a bug in firmware that I couldn't get an update for.

Non-free firmware is bad, but in certain circumstances, it can be tolerated. Non-free firmware behind a paywall is worse, and can never be tolerated.

DVB-T on Linux using DVBStreamer

I've tried most of the DVB streaming solutions for Linux, including VDR, MuMuDVB, DVBBlast, dvbstream, DVBStreamer, GNOME DVB Daemon. I've only managed to find one that does this well though, which is DVBStreamer.

Getting started with DVBStreamer is pretty easy. First of all you need a DVB adapter that works with Linux. I use a USB ITE IT913x-based adapter, which works well for me.

Once you have a compatible package, you need to install necessary (Debian/Ubuntu) packages:
apt-get install dvb-tools dtv-scan-tables dvbstreamer vlc

Use the scan tool to create a DVB channel configuration file using the DTV initial scan file for your nearest transmitter. I'm based in Dublin, Ireland, so I've used my nearest DVB-T transmitter, Three Rock in this example:
scan /usr/share/dvb/dvb-t/ie-ThreeRock > /tmp/channel.conf

Once you have your channel.conf file, you can pass this to setupdvbstreamer which creates the necessary DVBStreamer config files:
setupdvbstreamer -t /tmp/channel.conf

Create a startup file to auto tune to LCN 2 to on startup and output some useful DVB-T information. LCN 2 currently corresponds to RTÉ Two HD on Saorview:
printf "set udp://localhost:1234\nselectlcn 2\nfeparams\nfestatus\nstats\nlslcn\n" > ~/.dvbstreamer/dvbstreamer.conf

Now you can start DVBStreamer using the following:
dvbstreamer -f ~/.dvbstreamer/dvbstreamer.conf

DVBStreamer is now streaming over UDP to localhost:1234. You can view this using vlc:
vlc udp://@localhost:1234

I don't like keeping a terminal open just to run DVBStreamer, so usually I start it in daemon mode by passing '-f -d' at startup, and control it using the remote interface to control instead:
telnet localhost 54197