liquidsoap source authentication

Setting up source authentication in liquidsoap is pretty easy (although you may find an aforementioned hack useful, depending on what source client you may be using). If you are using input.harbor, you can supply a function that returns true or false to be used as an authentication mechanism. Since you...


streaming datafruits radio metadata with action controller::live and redis pub/sub

Right now the metadata for the currently streaming song/live dj on datafruits is updated via simple polling and ajax requests. The metadata is stored in a simple redis key, and a sinatra app with an endpoint /currentsong will return this key in JSON format. The ajax request simply polls this...


mozGetMetaData() possible solution for icecast stream metadata?

I recently saw someone point out that mozGetMetaData() exists on the jPlayer google group. Its a commonly asked question in this group if its possible to pull icecast stream metadata directly from the element, instead of going through and polling the server every once in awhile instead, like the trick...


yet another blog post about dependency injection

I recently tried to apply ideas about testing at the correct boundaries to testing a decorator. class Foo < ActiveRecord::Base def get_row(headers) row = [] headers.each do |header| cell_decorator = CellDecorator.decorate self row << cell_decorator.to_cell(header) end row end end describe Foo do it "generates the row correctly" do headers =...


why aren't you using hosted ci?

I finally switched over to a hosted ci service last week. I am beyond happy with the new setup. Hours spent toiling away configuring jenkins and its many plugins are no more. No more trying to get janky setup either. It seemed that I wasn’t able to use janky without...