Thursday, October 30, 2014

Released 2.3.7

We just released verison 2.3.7 and took the 2.3.x line out of beta.  If you've been sticking with the more stable 2.2 line then you now have the following features and bug fixes to look forward to:

TFS 2013

We now support Team Foundation Server 2013 including the new Git based projects.  You may also be happy to learn we fixed some issues we had with watching builds from multiple project collections.  You can also search and add new builds more easily for those with large TFS repo's.

Travis Pro and Enterprise

We now support Travis Pro and Travis Enterprise.


If you have a large Jenkins repository you can now filter and select all nodes more easily.


CruiseControl.Net now returns comments and build names.  Big thanks to Benoit Martin (benoit808) and Jonathan Ritchie for these contributions.

Bug Fixes

  • The chat box in news now only appears if you're a Team CI member - in which case it allows you to chat with your team only (What is Team CI? More on this later.)
  • Fixed the issue with adding and playing custom .mp3's when you had upgraded via wyGet
  • You can now type your username in "Who I Am" rather than having to wait until you perform a build (Issue #47)
  • The full screen shortcut key ("F") is now Alt-F, fixing a problem with using that character while chatting :)
  • Fixes performance issues when watching many builds (see Issue #38 and Issue #16 on Github)
  • When a build definition is unavailable, Team City no longer breaks (thanks @monovo for this contribution)
  • In TeamCity when one build fails to connect we now return unknown build status rather than mark the entire server an unavailable (Issue #24)


That's it for now.  This update sets the stage for a big announcement we'll have shortly.  In the meantime thanks for all your support!

Sunday, September 14, 2014

Released 2.3.4 with Travis Pro / Enterprise Support

We just released version 2.3.4 which adds support for Travis Pro and Travis Enterprise.

Unfortunately setting up authentication isn't as straightforward as it could be.  To set up a private repository:

Configure Server in Sos

  1. Add Server, Select Travis
  2. Enter your Owner and Project
  3. Select a type of Public, Private (Pro), or Enterprise
  4. If you select Enterprise enter the full url to your domain (e.g.

Generate a Travis API Access Token
  1. Click "Generate New Auth Token"

  2. Follow the instructions on the page.  Specifically:
  3. Open GitHub's Application Settings
  4. Generate New Personal Access Token
  5. Give it a name and select the following scopes: repo, user:email, write:repo_hook, repo:status, read:org, repo_deployment
  6. Click Generate Token
  7. Copy the token's value and paste it into the textbox
  8. Click "Generate Token" and we will initiate a request to Travis (using the URL you specified on the previous screen) to create a travis API access token.
  9. Upon success the new travis api access token will be entered into the textbox on the configure server page and you can click "Add" and then "Add" again

Bug Fixes

  • Can now open up the Sounds menu from a fresh install 
  • When a build definition is unavailable, Team City no longer breaks (thanks @monovo for this contribution)


We hope you enjoy the new features.  Shoot us a note at support at our domain name if you need help or drop a bug on github if you find any issues.

Tuesday, July 15, 2014

Raspberry Pi Powered Siren of Shame via Node.js

If you have a spare Raspberry Pi sitting around (and who doesn't) or are seeking an excuse to buy that newly released Model B+ model with 4 USB ports, then have you considered combining it with a Siren of Shame to hassle your build breaking office mates whether you're at the office or not?  If that sounds good this article is for you.

Getting Started

You'll need a Siren of Shame device and a Raspberry Pi that's running and connected to the Internet.  Element14 has a great getting started set of videos if you're completely new to Raspberry Pi.  This post used the Raspbian OS, but theoretically it shouldn't matter what OS you use.


Libusb provides an API for applications to interface with USB devices, including Human Interface Devices (HID) such as the Siren of Shame.  To install libusb use apt-get (the universal Linux installer).

If this is a new Raspberry Pi with a fresh install of Linux then you will need to update your list of available packages with

sudo apt-get update

Follow that up with:

sudo apt-get install libusb-dev

You should now be able to run lsusb from the command line to list devices.  Plug in a Siren of Shame, run lsusb, and you should get a device with an id of 16d0:0646 called GrauTec.  It should look like:


Bus 001 Device 011: ID 16d0:0646 GrauTec

If your device doesn't show up, it could be an issue with the cable.  Andy Lowry, who has an excellent blog post where he lights up his siren of shame when freight trains are near, reports that he had to try several cables before finding one that worked.


Thanks exclusively to Joe Ferner and his node-sos-device project we have a solution for connecting Siren of Shame's to linux using Node.js.  To install Node.js it should be as easy as:

sudo apt-get install nodejs
sudo apt-get install npm

Incidentally, rather than using node-sos-device directly, we will be using the higher-level node-sos-client, which knows how to monitor Jenkins and Bamboo CI servers.


If you haven't configured your device to work with git you could do it the right way with SSH and generate an ssh key or you could just:

git clone


cd node-sos-client

Next you'll need to download all Node dependencies.  If this is a fresh install you'll need to tell the node package manager (npm) where to retrieve dependencies from:

npm config set registry

Now you can install all dependencies for node-sos-client by running

npm install

Upgrading Node

For some fortunate users (Andy Lowry for one) installing node via apt-get works fine.  If, however, you get an error about node being out of date you'll have to uninstall, download, and update your path.

First, to uninstall the old version of node:

sudo apt-get remove npm
sudo apt-get remove node

No download and unpack:

cd ~
tar -xvzf node-v0.10.2-linux-arm-pi.tar.gz

To add it to your path

nano .bashrc

And add the following two lines at the bottom:


If you restart your command prompt and type node --version you should get v0.10.2.

Now retry npm install.

cd node-sos-client
npm install

And you should be good to go.

Running node-sos-client

First make a copy of the default configuration file:

cp config.json.example config.json

We'll configure it correctly later.  Next pick up the dependency on node-sos-device by running:

npm install sos-device

To run the app you should be able to run

sudo node build/sos-client.js

However, if you had to install node with the wget method, then you'll need to run

sudo $NODE_JS_HOME/bin/node build/sos-client.js

If you're lucky you'll see the app print out the device stats as json and a configuration error, something like:

deviceInfo: { version: 1,
  hardwareType: 1,
  hardwareVersion: 1,
  externalMemorySize: 0,
  audioMode: 0,
  audioPlayDuration: 0,
  ledMode: 0,
  ledPlayDuration: 0,
   [ { id: 2, name: 'On/Off' },
     { id: 3, name: 'Fade' },
     { id: 4, name: 'Chase' },
     { id: 5, name: 'Fade Chase' } ],
   [ { id: 1, name: 'Sad Trombone' },
     { id: 2, name: 'Ding!' },
     { id: 3, name: 'Plunk' } ] }
Failed to poll: bamboo0 { [Error: getaddrinfo ENOTFOUND] code: 'ENOTFOUND', errno: 'ENOTFOUND', syscall: 'getaddrinfo' }

However, if you have a cable that doesn't work well, or are connecting through a non-powered USB hub you may see:

Error: usb_detach_kernel_driver_np: -113 could not detach kernel driver from interface 0: No route to host

In this case try experimenting with the way you connect the device to the Pi.

Configuring the Connection

Today node-sos-client can connect to two CI servers: Bamboo, and Jenkins.  To connect to Jenkins update the config file to something like:

  "builds": [
      "type": "jenkins",
      "config": {
        "url": "",
        "username": "[username]",
        "password": "[password]"

And you're done.  With any luck running sudo node build/sos-client.js will light the siren and sound the speaker on initial connection, and whenever the build breaks.


And now you too can terrorize your build breaking colleagues, even when you're not at the office.  Enjoy!

Saturday, April 19, 2014

Released 2.2.0

Today we released Siren of Shame 2.2.0, adding some good stuff including the #1 most requested feature:

Custom Audio Sounds 

"Sounds", it's a new option in the menu:

Click it to add/delete/preview MP3's or WAV's:

Then configure rules to play them:

With per-user rules and our fancy rule engine you can now taunt co-workers by name when they break the build.  How cool is that?

Visual Studio Online

If you're into TFS (by choice or divine mandate) and using the Microsoft-hosted cloud version (previously called Team Foundation Services) we now have your back.  See Configuring Visual Studio Online for details.

Keyboard Shortcuts

If you're a keyboard kind of person (and what self-respecting developer isn't?) you'll appreciate the following new keyboard shortcuts:

  • 1-9 - Go to the build detail page for the appropriate build
  • Backspace - Go to the home page
  • Alt+1-9 - Go to the the user detail page for the appropriate user
  • F - Go full-screen

Bug Fixes

  • Can now treat unstable as passing for Jenkins (Issue #30)
  • When new users are added, the leaders tab now immediately updates (Issue #26
  • Fixes an issue with Team City authentication 
  • Fixes a bug with users that have comma's in their user names 
  • Fixes a bug with hidden users 
  • Fixes some issues with build dates (thank you @mightymuke
  • Fixed authentication issues in Travis 
  • Fixed issue #48 typo 
  • Fixed a bug with user mappings (thank you @gregorycu
  • Improved pretty date calculations 

Configuring Visual Studio Online for Siren of Shame

As of Siren of Shame 2.2.0 we now support Visual Studio Online (previously Team Foundation Services).

You will need to configure Visual Studio Online to enable authentication from Siren of Shame.  To do this:

1. Log in to Visual Studio Online
2. Edit your Profile

3. Click Credentials and select "Enable alternate credentials"

4. Enter a username and password
5. When you add a server in Siren of Shame the URL should be https://[myproject]/, and the username/password should be what you entered in alternate authentication credentials

Sunday, January 5, 2014

My CI Gets Localized

We recently talked with a Siren of Shame user who proudly announced that Siren of Shame was the second app they installed on their new smartphone.  Naturally we asked: "So what did you think?" to which they sheepishly responded "Um, it installed".

The problem was that the Siren of Shame app (Android in this case, but all the apps work the same way) showed global leader boards and global news.  The user could see the state of their builds, and the push notifications were nice, but they wanted localized gamification data.  They wanted to know their reputation within their team and to see news relevant to their project rather than competing with a bunch of people they didn't know.

Today we are proud to announce two new features for My CI customers that help make data more localized and relevant.

My CI News Feed

First, My CI customers now get news on their My CI page.  In fact, the page should look nearly identical to the Siren of Shame desktop app itself. The My CI page used to look like this:

And now the My CI page looks like this:

Better?  We think so, but feel free to respond in the comments.

Localized Mobile Apps

The second feature we want to announce is that effective immediately all mobile apps including Android, iPhone, Windows Phone, and Windows 8 now will show localized news and leader boards if you're signed up for My CI.  For instance here is the iPhone news feed, complete with check-in comments aggregated across build definitions:

The Leaders page looks similar in that only those individuals listed above will be shown.


We hope you enjoy the new localized data.  Please post in the comments if you feel we're headed in the right direction (or not) because there is more great stuff to come along these lines in 2014 (hint: it's called Team CI and it's nearly ready).