Tuesday, February 7, 2017

Released: Siren of Shame 2.4

Version 2.4 has a huge number of features and bug fixes since 2.3.  Here are highlights:

Custom Avatars!

Custom avatars has been the #1 requested feature (usually predicated with "whoever thought of cat and dog avatars should be shot").

You can now add custom images by clicking a person and then "change" on the left:

Then the new picker dialog gives two additional choices.  Gravatar, which requires an e-mail address:

And Custom which allows selecting images on disk, from a url, or from Active Directory.  In all cases images will be resized and possibly stretched if they are not already square.

Import avatars en-mass from AD

Theoretically you can now import avatars for all of your users if active directory contains images.  Do this from settings.

However, users have seen mixed results.  If you have an active directory with images we would greatly appreciate your help in flushing out this feature.

New Full Screen Mode

Alt-F (or "Full Screen" from the ribbon) now gives you a lot more information:

If everything is too small by default we now have:

Ability to zoom

Ctrl+ and Ctrl- will zoom nearly everything (currently excluding avatars) which is super handy when projecting to a dedicated screen, although it works in normal mode too.  Ctrl-0 will reset to normal.  On that topic:

Ability to start in full screen mode

This long time feature request is handy for dedicated machines that project build info.  Get to it in settings.

TFS 2015 Support and New Build Definitions

This is a completely new server type that uses the new TFS REST API and supports the new non-XAML based build definitions.

If you're using Visual Studio Team Services (Visual Studio Online) you probably need to generate a Personal Access Token for authentication, more details in a future blog post.

Support for AppVeyor CI Servers

Through a generous contribution from from jezzsantos.

And Some Other Stuff

  • Replaced all unencrypted server communication with https 
  • Added rank indicator to list of leaders (thanks to Johan Olsson) 
  • Support for Team City 10.0.4 (thanks to iamkrillin)
  • Adds a maximize button (different from full-screen)
  • App now shows in taskbar when not minimized

And Some Bug Fixes

  • Fixed issue where sos tries to update itself after every reboot
  • Resolved Issue #67 where leaders where getting duplicated
  • Fixed bug with long running reputation resets conflicting with in-progress builds
  • Fixed issue where opening and closing settings dialog would show stale build info
  • Fixed bug in (older) TFS dialog where checking project or project collection didn't check build definitions
  • Team city builds that have been deleted on the server can now be removed by editing the server configuration 
  • Fixes Issue #68 - Manually triggered builds in TeamCity had no-one associated with them (generously contributed by @iamkrillin)


We hope you'll download and try out the new version today.  Let us know what you think in the comments, on twitter, or on facebook.

Monday, May 30, 2016

New Nuget Package for Custom UWP Siren Apps

We just release a new SirenOfShame.Device nuget package for controlling sirens from Universal Windows Platform (UWP) projects.  Between that and the new cross platform soscmd.jar capability we released last week, and the original device api, there's no reason not to build that siren-based bathroom timer you've always wanted for your office.

What's cool about our new UWP support is that you can now build apps for a wide range of devices including Windows PC's, tablets, (phones?), Raspberry Pi's running Windows IoT, and even XBox (!).  In fact, the first person that successfully runs a siren from an XBox gets a free mug (tweet us).

The documentation is in the GitHub project, but at the moment it looks something like the following.

Getting Started

To create your own custom siren of shame device software:
  1. In Visual Studio Create new Universal Windows Platform project
  2. In Nuget Package Manager:
    Install-Package SirenOfShame.Device
  3. Add the following to the Package.appxmanifest:
      <DeviceCapability Name="humaninterfacedevice">
        <Device Id="vidpid:16D0 0646">
          <Function Type="usage:FF9C 0001"/>
  4. Instantiate a SirenOfShameDevice, subscribe to Connected, try turning on the led's like this:
    public MainPage() {
      _sirenOfShameDevice = new SirenOfShameDevice();
      _sirenOfShameDevice.Connected += SirenOfShameDeviceOnConnected;
    private async void SirenOfShameDeviceOnConnected(
      object sender, EventArgs eventArgs) {
      var manualControlData = new ManualControlData
        Led0 = (byte)255,
        Led1 = (byte)255,
        Led2 = (byte)255,
        Led3 = (byte)255,
        Led4 = (byte)255,
        Siren = false
      await _sirenOfShameDevice.ManualControl(manualControlData);
  5. For more details on how to use the API check out the SirenOfShame.HardwareTestGui project


We hope you enjoy. Please consider sharing anything fun that you create. If you have any questions please don't hesitate to ask on twitter, facebook, or here in the comments.

Monday, May 23, 2016

Announcing soscmd-1.0.jar

Until today integrating a siren of shame device into non-continuous integration workflows has involved either writing a custom app or paying for a Team CI Pro subscription to get a custom HTTP endpoint for your siren.  Even still the Linux story has been weak and the Mac story has been non-existent.

Today we are happy to release a new tool to address non-CI, cross-platform, custom workflow requirements of siren owners.  That tool is soscmd-1.0.jar.

As with everything, soscmd is open source.  All of the hardest work was performed with a generous contribution from Filip Hanik.  We are very grateful to him for his help.

Finally, this tool is also our first step in working toward a truly cross platform CI monitoring solution.  More details to come.


To get started
  1. Download soscmd-1.0.jar.  
  2. Ensure you have Java 8 JRE or later installed
  3. Enter java -jar soscmd-1.0.jar
With any luck you'll get something like this:

usage: soscmd -[i|ra|rl|m|l|a|sa|sl]

        -i  Retrieve info about device
        -ra List audio patterns
        -rl List led patterns
        -m  Manually set LED's
        -l  Play an LED pattern
        -a  Play an audio pattern
        -sa Stop audio
        -sl Stop LED's

At this point you should be able to connect a siren and do

java -jar soscmd-1.0.jar -i

and get something like this:

Firmware Version: 2

Hardware Type: Standard
Hardware Version: 1
Audio Mode: 0
Audio Play Seconds Remaining: 0
Led Mode: 0
Led Play Seconds Remaining: 0
External Memory Size: 0

Now if you want to manually light up some of the light bars you can do

java -jar soscmd-1.0.jar -m 128 0 255 0 0

which will set the 1st led bar to 50%, the 3rd led bar to 100% and the remaining bars to off.

To view the led or light patterns that your device has (which is based on your device's firmware) enter either the -ra or -rl command and you'll get something like this:

java -jar soscmd-1.0.jar -ra
Audio Patterns:
1 - Sad Trombone
2 - Ding!
3 - Plunk

If you want to play one of the audio commands above note the ID# and specify it along with a duration in seconds like this:

java -jar soscmd-1.0.jar -a 1 5

That plays the Sad Trombone for 5 seconds.  You can accomplish the same thing with a -l command to play led patterns or you can turn audio or led patterns off with -sa or -sl.


That's it!  Hope you enjoy, and if you do something fun with it please let us know.

Wednesday, May 11, 2016

New API: Snapshot Stats

If you're a Team CI Pro user enjoying the weekly e-mails and stats, and thinking what fun you could have with that raw data (we won't judge), then we've got some fantastic news: we've opened up a new API just for you!

Weekly recap e-mail

This API is basically a list of weekly snapshots of your teams stats.  We originally took these snapshots to get the delta's that are in the e-mails.  But now they're available for you to use and abuse.


To get started you'll need an API key.  To get it click the new "Get Your API Key" button in the Team CI section of the site.

Then type your password, click the button and copy the resulting API Key.

Hit That API

To get the data POST to http://sirenofshame.com/ApiV1/Snapshots.  To pass your credentials you can use: Content-Type: application/json with

{'UserName': '[YourUsername]','Password': '[YourApiKey]'}

or if you prefer you can use Content-Type: application/x-www-form-urlencoded with


In other words:

curl --url http://sirenofshame.com/ApiV1/Snapshots -H "Content-Type:application/x-www-form-urlencoded" -d "UserName=[Username]&Password=[ApiKey]"

The result is hopefully something like:

    "Success": true,
    "ErrorMessage": null,
    "Result": [
            "StatSnapshotId": 174,
            "SnapshotDate": "/Date(1428091201543)/",
            "Users": [
                    "DisplayName": "Lee Richardson",
                    "RawName": "leerichardson",
                    "Fseb": 4,
                    "TotalBuilds": 399,
                    "Csb": 0,
                    "FailPercent": 105,
                    "Achievements": 12,
                    "Reputation": 189,
                    "UserId": 782,
                    "UserStatSnapshotId": 2958
                { /* all of your other users should be listed here */ }        
        /* up to 2 years worth of snapshots should be here */


Hope you enjoy.  If you do something fun with the data please consider sharing by posting here or shooting us a note on twitter or Facebook.

Wednesday, October 7, 2015

Updated Android App V1.2

The Good News

We've fixed a bug in the Siren of Shame Android App that was turning on Android devices when users received push notifications.  This issue was causing mass butt-dialing everywhere.  For that we apologize to both senders and receivers alike.  The issue is fixed now ... with the caveat that:

The Bad News

   Siren of Shame V2- screenshot  The idiot who build our last app (an intern, honestly, not the author of this post) lost the original Android signing key.  That means the old version (1.1) won't auto-upgrade.

To get the new Android app you'll need to search Google Play for "Siren of Shame 2".

That also means we've lost all our excellent ratings.  Any ratings, good or bad, you could give the new app would be greatly appreciated.

Fortunately, the individuals responsible (stupid interns) have been thoroughly chewed out, tar and feathered, and made to back up the new key by scratching it into a bar of depleted uranium, so nothing like this will ever happen again.

Wednesday, February 25, 2015

Introducing Team CI Pro - 8 New Feature's You'll Love

Today we are very proud to announce our biggest change in almost two years: it's a new service called Team CI Pro.

The CI Problem

You're trying to improve software quality.  You implement continuous integration.  You're lucky, you have a motivated team that rarely breaks the build and religiously fixes breaks.  If this is you, Siren of Shame probably adds a some fun around the office, but is mostly a toy.  In this case you likely don't need most of what Team CI Pro offers (skip to Curl to Siren, below).

If you're like the rest of us your team or program breaks the build with some regularity, fails to fix it quickly, requires nagging, and/or avoids fixing builds when someone else caused the break.  If this is you, our new Team CI Pro service will provide the extra motivation your team needs to realize the full potential of continuous integration.

If it Ain't Broke?

But why a new service?  Today, at little to no cost, you can increase build awareness by throwing builds up on a dedicated monitor with our free desktop app and full-screen feature.  You can light up a siren when the build breaks.  You can require that everyone download desktop clients to get the motivating stats and gamification information.

You could even mandate that everyone sign up for My CI to get build information, stats, and gamification information pushed to their e-mail and phones for free.

But what if you don't have the authority to require your team members do anything?  How do you deal with team members less passionate about CI, and far less likely to install another app, than you?  And what if you have a distributed team that can't all see the siren or the dedicated monitor?

Even if you could mandate desktop clients and My CI for all, there's a bigger problem.  If a desktop client instance is turned off it can get out of sync.  For instance when developer #1 goes on vacation for a week, their client misses a week's worth of reputation changes and achievements from their team mates.

It's hard to brag about your superior reputation or "Consecutive Successful Build (FSB)" score when everyone has different numbers.

Feature #1 - Consolidated Accounts

Team CI Pro inherently addresses these problems with an architecture designed around a single instance of the desktop client.

Continuous integration data flows in from the CI server (bottom right) through a single desktop client (and maybe fewer, see A Shameful Future below for details) into Siren of Shame Online.  The desktop client sync's its stats and achievements to SoS Online, where the information is distributed to team members through a variety of mediums.

To facilitate distributing information to team members, teams maintain a single Team CI Pro master account on Siren of Shame Online.  Desktop clients sync to the master account in the SoS Online menu as if they were doing My CI.

Once that master account has signed up for Team CI Pro (via the 'start free trial' button at of the Team CI Page) it can access a configuration page where it can add team member accounts that will receive the master account's data.

Team members added to the configuration page gain access to a number of cool new features.

#protip - Syncing to a team master account and adding yourself as a team member allows your team to continue with Team CI Pro in the event you ever leave the team.

Feature #2 - Reputation Over Time

While the web client isn't new, Team CI Pro adds some new features.  Team members will get a new chart at the bottom of their Team CI page so they can see reputation over time.

Feature #3 - Team Heckling

Team Members will also get the ability to chat (via the blue floating button in the bottom left).  Chat messages are sent as news items to Shame Extruders (see below), mobile clients, and other web clients in realtime so team members can taunt, brag, heckle, or worst case discuss actual work.

Feature #4 - Web Full Screen Mode

All web clients now get a new full screen view (via the leftmost red button in the screenshot above).  The page is fully responsive and is designed to look good at tiny phone resolutions as well as large, high-dpi displays.

The full screen page could easily replace the full screen view in the desktop client and teams could throw identical build data up on multiple information radiators around the office, or around multiple distributed offices.  Just hit F11 (or Command+Control+F).

Feature #5 - Personalized Mobile Clients

The Android, iOS, Win Phone, and Windows Store mobile clients today show your build information, your placement and stats among a large list of virtual strangers on the SoS Online Leaderboard, and a list of news items that mostly don't relate to you or your team.  

Members of Team CI Pro will immediately have news items replaced with only news items relevant to your project (build events, achievements of fellow team members, and chat messages).  

Team CI Pro members will also see their placement and stats among just their team members.  The end result is the data displayed will be more meaningful and engaging.

And of course Team CI Pro members will continue to receive push notifications about build events and badge updates with the number of currently broken builds just like they did with My CI.

Feature #6 - Shame Extruders

A very exciting new feature for Team CI Pro members are Shame Extruders.  Shame Extruders are lightweight desktop clients that give team members all the benefits of desktop clients without any of the polling (updates are sent via SignalR).

Specifically team members can install the Shame Extruder from our download page to get

  • Tray notifications
  • Build status, leaderboards, and news
  • The ability to connect USB Sirens (see the data flow diagram earlier)
  • Team chat

They can even configure rules

While nice for individuals Shame Extruders make it even easier to install multiple sirens in different rooms or at different locations around an office with a large or distributed team.

Feature #7 - Weekly Recap E-mails

My CI sent team leads e-mails when achievements were unlocked or builds broken (including stats like highest CSB attained).  Team CI extends these features by sending e-mails directly to appropriate team members.

Better yet it provides a weekly recap e-mail with overall pass/fail ratio and a summary of team members standings and delta's to help maintain the team's continued focus on quality.

Feature #8 - Curl To Siren

We're extremely excited by the potential of this last feature.  Curl to Siren allows the master account to light up any siren in their network that's connected via a shame extruder by hitting a REST based URL.

To make it work fire up a Shame Extruder, log on as the team owner account or a team member, and connect a USB siren.  Now navigate to the master account's My CI page.  The red button furthest left should have a badge with the number of Extruder's connected.

When you click you can select "test" to fire a quick default audio and led pattern.  Or if you click the "curl" button you'll be presented with a CURL builder that will allow you to build the exact command you can run from the command line on any computer in the world to light up that siren.

You can extrapolate how you would light up the siren via JavaScript or your favorite language, but let us know if you have difficulty and we'll be glad to help.

This feature should enable you to integrate sirens into all kinds of things.  Stock ticker watchers, e-mail notifiers, room busy indicators, train schedules, or ifttt.  We can't wait to hear what you come up with.


Pricing starts as low as $10 per month for small teams.  Check out our pricing page for more details.

Or better yet try it out at no cost for a month. It's one click to get started.  No credit cards, or DNA samples required.

A Shameful Future 

We've got some exciting things in the works, but limited resources.  Please vote here to let us know what you'd like to see us work on next:


Shame Extruder for Mac - Right now the Shame Extruders are for Windows clients only.  Vote for this option if you use a Mac and like Team CI Pro, but the web and mobile options aren't cutting it.

Team CI On Premise - Behind a firewall but still want all that Team CI Pro goodness?

Bluetooth Controlled Power Plug - For integrating lava lamps, model trains, or other on/off items into your CI pipeline.  This is actually prototyped out and just about ready to go.

Shame Whisperer - Wouldn't it be great to cut out polling and the Desktop Client all together?  Shame Whisperers are Plugins to CI servers that send data up to Siren of Shame Online.

Productized Raspberry Pi - You can hook your siren up to a Raspberry Pi today with some fiddling.  Wouldn't it be great if you could buy a pre-configured Raspberry Pi or download an image to turn your siren into an IoT device with virtually no effort?  Even cooler with curl to siren.

Full Desktop Client for Mac - This is expensive and time consuming, but if a Shame Extruder and/or a Shame Whisperer isn't right for you we're ready to start work on a native Mac client today.

Slack Integration - If you use Slack and want your gamification data integrated vote for this.

What Else? - There's a write in option.  Please submit any other great ideas, we'd love to hear them all.


We've put a lot into these features and hope you love them.  We hope you'll check out the free trial.  We've also got some exciting plans for what's next, and we hope you'll help us choose our next direction.  As always please let us know what you think in the comments, on twitter, facebook, or google+.

Wednesday, January 7, 2015

Released 2.3.10

We just released version 2.3.10 to prod.  If you were on 2.3.7 (our last non-beta version) you now get:

Support for Team City 9.X
This was generously contributed by @tupac21354

A Slew of TFS Fixes

  • TFS was showing "IndividualCI" instead of the author and comment while build definitions were building. This has been fixed and a large part of the TFS logic rewritten (Issue #53
  • Fixed an issue in TFS where you couldn't easily select all build definitions (Issue #44

And Some Misc Fixes

  • Fixed SOS was ignorning "Never check for updates (Issue #50
  • Fixed a bug where you can't set "Who I Am" in the settings page 


Short and sweet this time.  Please 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.