Monday, December 31, 2012

Reputation Algorithm Change

Happy New Year!

To celebrate we just changed the way we calculate reputation.  This will result in a reputation increase for 41 users immediately and will be much nicer going forward.

You used to gain one point for a successful build and lose four points for a failed build.

Sadly there were quite a few users in the negative.  The negative numbers appeared to occur due to high concentrations of failed builds occurring infrequently.  In other words because someone was configuring the CI server.

So rather than adjust number of points for failure we opted to disallow going negative.  Thus if you're doing configuration you can at least have a lower bound.

We recalculated everyone's reputation from the beginning of time.  For example if your reputation was -3 because:

1. You failed a build and lost 4 points = Reputation -4
2. Then you passed a build and gained 1 = Reputation -3

Then effective immediately your reputation will change to 1.  In other words the with the new algorithm it should have been:

1. You failed a build and stayed at zero because you can't go negative = Reputation 0
2. Then you passed a build and gained 1 = Reputaiton 1

Hopefully this will produce a slightly less shameful 2013.  Happy New Year!

Thursday, November 8, 2012

Released 2.0.3


  • Can now sort columns in full screen mode by clicking on the column names (Issue #26)
  • Full screen mode displays on the monitor the app was last in (Issue #19)
  • Can hide users by right-clicking on them (and 'show all' from the menu to unhide)

Bug Fixes

  • Travis wasn't detecting server unavailable correctly
  • An error with one build in Hudson/Jenkins was shutting everything down, errors are now isolated
  • There is now more logging for when build statuses change to help diagnose issues some users are experiencing (Issue #40)
  • Attempted to fix the anonymously submitted "Cannot access a disposed object" bug (again)
  • Hudson/Jenkins wasn't always finding the author of a commit correctly


Big shout out to @mightymuke who contributed almost all of the features and bug fixes in this release.

Thursday, October 4, 2012

Released 2.0.2

A very boring release.

Bugs fixed

  • SoS now qualifies any build definitions that share a name

  • Added tool tips to the funnel icon in view user and view build pages

  • Renaming a user now immediately renames them on build and user tiles
  • The user display name edit text box is no longer too "sticky"
  • The user image picker is no longer too "sticky"
  • Screensaver is now disabled in full-screen mode
  • Main page elements now line up correctly


Big thanks to everyone that reported bugs in 2.0, particularly @MightyMuke, @EricHoch, and @DamianEdwards

Thursday, September 27, 2012

Siren of Shame 2.0

For our first major release we've got some great new stuff:

New Features

  • Complete UI overhaul 
  • News feeds
  • User stats
  • Getting started wizard
  • View build page
  • View user page
  • SoS Online integration
  • Moved to GitHub

Complete UI Overhaul

We're banking on attractiveness bias.  Hopefully the app is now so pretty that you won't care that it barely works.

"Content first" was our primary objective.  You should also notice:

  • Pretty animations draw your attention to new content
  • Advanced options don't take up prime real estate
  • Users have custom pictures so you can more quickly identify who's done what (they will be customizable in a future release) 
  • The app has more consistency in icons and fonts
For instance we hid the action bar at the top and redid all the icons (and no, it is not nor was it ever a ribbon):

In short we did like 5 minutes of research on design best practices and pretended we knew what we were doing.

News Feed

With the old app you could go out to lunch and your teammates could break the build like 15 times while adding insulting check-in comments, then make a legit check-in seconds before you get back and you'd never know.  No more:

User stats

This may be the coolest feature even if you aren't a baseball fan or an accountant:

Clockwise from top:
  • [big number]: Reputation
  • [yellow disk]: Achievements
  • F: Fail percentage
  • CSB: Consecutive Successful Builds
  • T: Total Builds
  • FSB: # of times Fixed Someone else's Build

Getting started wizard
You're probably an existing user who could care less, but getting started is now far more obvious:

View build page
If you find yourself caring 99% about one build -- yet somewhat wanting to watch others in order to humiliate build breakers from other projects -- then you'll love this feature.  Click the title of a build to get:

  • The selected build always stays on top
  • News gets filtered to just the current build
  • Other projects are still visible, but few details
  • You get a pretty chart of the last 8 build times (numbers in minutes, newest on right)

View User Page

Click a user to get:

From here you can
  • View news, filtered to just the current user
  • View achievements
  • Change a photo
  • Edit a display name

SoS Online Integration

Who isn't into public humiliation, right?  Or at least some heckling.  We now show all SoS Online content right there in the news feed.  If you want to shame someone just type in the textbox and hit enter.  And thanks to SignalR everything is instantaneous.

Moved to GitHub

We finally did it.  We'll keep task requests and releases on Google for now, but the code will love in GitHub at the following location:


We fixed some.  We introduced a ton.  When you find them please see How to Report Errors.

Major Refactoring

If you care to open the hood we're now slightly less embarrassed by what you'll find (particularly with the rules engine).


We've added lots of great new functionality which we hope will help you increase code quality while having a bit of fun.  Please post your feedback below in the comments, on twitter, on our issues list, on facebook, or heck on SoS Online.

Wednesday, August 1, 2012

A Year of Shame

A year ago we figured we'd maybe sell a couple of these things.  But since September of 2011 we have averaged a sale of one and a half units per week.  That's 71 units to 61 Locations Worldwide.  We've shipped Siren of Shame units to thirteen countries.  We've had generous open source advocates buy us 44 beers!

Not too bad for a couple of guys working out of a basement in their spare time.  Thank you to everyone who has helped including friends, patient customers, and especially family.

And here's a cool map of locations we've shipped to:

View Siren of Shame Units Worldwide in a full screen map

Thursday, July 19, 2012

How To Reset Reputation

If you've got a negative reputation in SoS Online and were considering just creating a new account, but didn't want to lose your achievements, we now have a solution.

Go to your profile page.  Click Activity.  Click the new "Reset Reputation" link.  Your reputation will reset to zero and your achievements will remain.

The only down side is that the reputation reset will be visible in the leader board activity feed.

Travis CI Support in Siren of Shame 1.6

One of the new features in Siren of Shame 1.6 is support for Travis.  If you aren't familiar with Travis it's an awesome continuous integration server that works with GitHub projects.  No dedicated server required.

The beauty of this new feature is you can now gain reputation and earn achievements on your side projects in addition to your professional work.  Even if you have two instances of Siren of Shame, one at work and one at home, if they're both syncing to SoS online your reputation and achievements will be merged for purposes of the leader boards.

Adding Travis to Siren of Shame is slightly different than other CI servers because there is no authentication and projects are based on owner name and project name rather than url.

Other than that once you've added the project it will look just like a Jenkins, Team City or any other supported CI server.

Friday, July 6, 2012

Released 1.6

We've got some awesome new features.  Here's what's new:

Because why not gamify continuous integration?

Some of our favorites are "CI Ninja" which you get when you fix someone else's build.  Or "Macgyver" which you get when you reduce build times by 15%.

View the full list of 23 achievements on our website.  As an existing user we'll even retroactively find achievements from the time you started using the app.  You can also now view an individual's achievements by clicking on their name:

SoS Online
What good are achievements and reputation if you can't do a little smack talk?  You can do that with the SoS Online button:

If you create a free account and click "Sync whenever I trigger a build" we'll put you on the leader boards and keep your personal page up to date:

We even have the capability to manually sync if you've got crazy firewall rules or work disconnected.

We'll provide more details on achievements and SoS online in a future post.  We hope you enjoy and would love to hear your thoughts in the comments section.

You shouldn't even notice, but switching to Wix toolset should make the setup experience as smooth as butter.

New CI Server: Travis 
That's the one that runs against GitHub projects.  We'll provide more Travis details in a future post. 

New CI Server: Buildbot
Thanks to @BubbaFatAss for this contribution.

Minor Features

  • When people's reputation changes you can see the delta and a pretty fade animation
  • The error dialog now allows you to specify contact information
  • The firmware upgrade process is simpler there should be no more HidD_SetOutputReport bugs
  • You can now connect to TFS with a named account rather than your windows account
  • The SoS splash screen now displays the product version
  • If SoS gets an error while retrieving build status it now assumes the server is unavailable and won't send an error report unless you click a new button in the lower left of the status bar

Bugs Fixed

  • Issue #25: If you double click a build for TFS it now goes to the build status page rather than the artifact's page
  • Issue #22: Dates displayed on the main page are now culture-aware (e.g. d/M in europe, M/d in the US)
  • Issue #21: If you use Hudson or Jenkins with and set it's "Internal URL" incorrectly SoS no longer dies a terrible death
  • Issue #20: If two builds occur simultaneously in TFS SoS no longer bugs out
  • Issue #18: If you connect to TFS using someone else's credentials they are passed correctly in all API calls
  • Issue #16: SoS now runs under non-admin accounts
  • Issue #15: When you go back and edit the list of builds you're watching SoS defaults old watched builds to being checked
  • Issue #14: If you use Hudson or Jenkins with and set it's "Internal URL" incorrectly SoS no longer dies a terrible death
  • Issue #13: When you have multiple SoS instances open in different windows accounts SoS now gives a nice error message
  • If Team City runs a scheduled clean up jobs it no longer confuses SoS
  • If you haven't associated .log with a default app in Windows and you view the log you no longer get an error
  • If you have rules to make the LED lights on the device stop sometimes they would never stop

Monday, June 4, 2012

Bug Prioritization

Bug Prioritization

Ever seen something like this while running the siren of shame software?

When you click the send button it shoots us an e-mail with the stack trace, and (as of version 1.6) some optional contact information.

Ways to Submit Bugs
This dialog represents one of three ways to submit bugs. In addition to in-app bug reports we additionally welcome your patches and pull requests, and as described in how to report bugs we accept bug reports through Google Code.

Unless we see a large number of similar errors we typically prioritize anything submitted via the in-app dialog as low. In other words we probably won’t get to it any time soon. For the fastest response we love patches and a pull requests. But we’ll also get right on that if you submit the bug via Google Code over here:

That will allow us to start a dialog with you, gain context into your error, request relevant parts of your log files (see how to report bugs), try very hard to reproduce your error, and allow others with the same error to diagnose their problem and sign up for status notifications.

We welcome in-app bug reports, we prefer Google code issues, we really love patches pull and requests. Regardless we appreciate all your help in making Siren of Shame the best build monitor software around.

Sunday, March 4, 2012

Released 1.5

Here's what's new:

Double click a build to see build details (86)

Oft-requested, finally implemented. This opens an appropriate URL, regardless of whether the build server is TFS, Team City, Jenkins, Hudson, Cruise Control, or Bamboo.

Display build id on main page (158)

Implemented across all CI servers. See screenshot above.

Can now sort builds (153)

Now you can keep the most recent builds on top rather than always sorting by name.

Added "Never Update" to configuration options (81)

Useful if you're on a disconnected network. Selecting this option will also disable retrieving alerts, so SoS will never try to get to the Internet at all.

Bug Fixes
  • "Invoke or BeginInvoke cannot be called on a control until the window handle has been created" (128)
  • TFS should treat partially succeeded as failed (150)
  • Team City bug: Can't move focus to the control because it is invisible, not enabled, of of a type that does not accept the focus (151)
  • TeamCity error: Timed out waiting for authentication was reported as a bug is now server unavailable (154)
  • CruiseControl.Net wasn't returning started date in some circumstances (155)
  • Importing firmware from some other cultures was causing an error when interpreting day as month (156)
  • When you close the Configure Server dialog it no longer refreshes all build status if nothing actually changed (157)

Hope you enjoy the updates. You can either download verison 1.5 here or if you're on a public network it should auto-upgrade on next install.

Saturday, March 3, 2012

Firmware V3

We just released a new version of the firmware that allows you to visually identify who broke a build from across the room. To accomplish this V3 contains 71 LED patterns!

Ok, technically it only contains 11 truly unique ones, but most of them have seven variations: the main pattern followed by 0-6 blinks. To identify who broke the build from across the room simply assign a number to each developer.

So imagine you get up to fix a cup of coffee, you hear the sad trombone, you glance up to see the "Jarring Flash" LED pattern, then a pause, then three blinks, then back to "Jarring Flash". Oh crap, you're developer #3. Quick, better get back to work and fix it before anyone notices.

The 11 led patterns are:
  • SOS
  • Slow Pulse
  • Pulse
  • Chase
  • Dark Chase
  • Fade Chase
  • Random Fades
  • Random
  • Jarring Flash
  • Dim; and
  • 255
Patterns like Slow Pulse, Random Fades, and Dim would be excellent indicators that a build has been triggered, but not broken. These patterns then would be good to allow you to see who checked in from across the room.

Sadly we had to remove audio to fit these LED patterns in our (whopping) 32K of memory, so we could only fit the sad trombone into this version. But hey, shoot us a note if you'd like a custom firmware build and we'll see what we can do.

Wednesday, February 22, 2012

How To Unbrick a Siren of Shame

Several of the sirens we've sent out recently have become bricked upon upgrading the firmware. Future sirens we ship should not have this issue, but if you find yourself in the following situation after an upgrade:

"It lights up, starts the spinning and then just stays lit after a few rotations (3 of 5 columns are lit). The “Show Off” button is no longer available"

Then the following procedure should unbrick you:

  1. Disconnect the siren
  2. Click “Upgrade Firmware” from the obscure button in the toolbar next to “Siren”
  3. Select the upgrade file
  4. Click “Upgrade”
  5. Wait until the text below the progress bar says “Upgrading…”
  6. Plug in the device before it times out (you’ll have about 10 seconds)

Siren of Shame Review

Patrice Lamarche just wrote up a wonderful
Siren of Shame review, both of the application and the device. His review covers how he combined it with continuous integration to increase software quality.

Following is a part of the review I translated as best as possible from the original French with the aid of Google Translate (I do not speak French ^LR).

The developers used to perform check-ins without necessarily getting latest. This occasionally resulted in code under source control that wouldn't compile, which would produce an unpleasant surprise for the next developer getting latest.

To solve this problem and be able to more quickly respond to similar issues we established a build server with [TFS] Team Build.


This resulted in some progress toward our goal of being more responsive to these issues, but I still had to educate the team to pay attention to the status of the build in TFS.

We achieved this goal thanks to the siren. Team members now want to avoid the siren and lights and so they think twice about what they are about to commit *before* they check-in. The siren represents a highly visible reminder of the state of the build server. Its lights and siren are almost no longer necessary: its mere presence is sufficient.

This represents another (small step) toward increased software quality and decreased stress for the team!

Check out the entire review as translated by Google here.

Monday, February 6, 2012

Released 1.4

Here's what's new:

Play audio through windows PC speakers for build events (149)

You wouldn't strictly need this feature if you bought the USB siren -- but hey, we aim to please. So now if you right-click to customize rules there is a new option "Play the following audio in Windows".

You can play different audio per build or per person (see How To Configure Rules).

The mute button now mutes both your Windows speakers as well as any devices you have attached.

Never ever display "Moved to the tray" notifications (147)

Apparently this was seriously bothering some users.

Firmware upgrade now uses file picker (144)

We just saved you 0.5 seconds for an activity you perform at most several times a year. You're welcome.

Bug Fixes
  • If you change the name of a build in Team City it is now reflected in the app (Issue #12)
  • Some versions of Jenkins returned results that were parsed incorrectly (Issue #10)
  • TFS Workspaces with a cloaked directory now work (Issue #9)
Get It Now

Your existing version of Siren of Shame should automatically upgrade on your next restart. If not download 1.4 here.

Thursday, January 26, 2012

Firmware V2

We released a new version of the firmware last week. This version provides new audio for existing siren of shame devices. Specifically it contains a sad trombone sound, a ding and a plunk. You can find the new file and instructions on the new firmware page of the site.

We'll publish new versions from time to time. No need to use the most recent, feel free to pick the version you like the most.

Thursday, January 19, 2012

How To Report Errors

Updated 3/29/2014

We have moved our issues list to GitHub, please report issues there.

Also, you can get to the logs in Siren of Shame 2.0 like this:

Original Post

If you find an error please report it on the issues list of the Google Code site. When you do please provide relevant information from the logs such as a stack trace. You can get to that by clicking "View Logs..." from here:

Monday, January 9, 2012

Released 1.3

Here's what's new:

Full Screen Mode (106)

Now you can have a wall of shame to compliment your siren:

Alerts (142)

To advertise to you, isn't that awesome?

Mute Siren (134)

In case the shareholders meeting next door is trying to figure out which developers to fire.

Edit Names and Hide Users (135 & 136)

Right click a name in the reputation bar to find some new options:

New names cascades everywhere.

Bug Fixes
  • Full screen mode for The Enforcer didn't restore your screensaver settings until app close (138)
  • Builds are now listed alphabetically when adding (#6)
  • TFS now supports multiple mappings in a workspace (#7)
  • Fixed "The process cannot access SirenOfShame.config because it is being used by another process" (#140)
  • Fixed "could not open the firmware upgrade file" if firmware file not present (#139)
  • Can now downgrade firmware (#141)