My Review of Roku 2 XS Streaming Player

Originally submitted at Roku

Adds an enhanced remote for playing games, plus extra connectivity options.

Loving my Roku

By Mark Milbourne from Walnut Creek on 12/22/2011


5out of 5

Pros: Reliability, High quality picture, Easy to use, Easy to set up, Built in Wi-Fi

Best Uses: Primary TV, Holiday Home, Living room

Describe Yourself: Netflix fan, Power User, Early adopter, Technophile

I love that its so small. I have it sitting right next to my TV and no-one notices it.

It’d be awesome if you could connect to a SlingBox with the RoKu.


It’s “Polybrowseristic” not “Browser Agnostic”!

Something that has been bothering me lately is the use of the term “Browser agnostic” to refer to a website that works on all Internet browsers, that being it doesn’t matter which browser you use.  My problem is two fold, first I’m certain that websites (especially mine) do not run on Navigator 7.2 (Go look up the browser wars if you don’t know what this is).  Which means that we do not work with all browsers.  Its the ‘All’ that I have a problem with.  Its the ultimate setup, and over generalized statement.  Anyone hearing that description can say, “ah ha!! Did you try it on Konqueror? No? Well, I caught you out! Liar!”.

Secondly, since its stealing the word from a religious context, we could interperet its meaning to be:

My website doesn’t believe the existence of your browser, but believes there is a browser out there that it will work with.

Well that’s definitely not true, I don’t have to believe a browser exists, I’m using one right now.  But maybe on second thought, it could be the illusion of a browser.  Maybe its just different flashing lights to deceive me.  But either way I’m sure my website doesn’t believe anything….its inanimate.  Although sometimes I think its deliberately creating bugs for me to find.

So this brings me to the question, so how do I refer to a website that works on most browsers?  Well, I came up with this word:


Stealing the word poly to mean many, and browseristic to refer to something that works on a Internet browser.  So I’m happy to describe my websites as polybrowseristic.  They work with all the browsers I tested them with.

So now we could take the next logical step.

Monobrowseristic: A website that only works with one browser.

I’m certain some of the stuff comes out of Microsoft is IE Monobrowseristic.  I’m not sure if Monobrowseristic should apply to one version or multiple versions.  For the sake of an augment, lets say it is.  Then we could say

Iebrowseristic: A website that only works with IE.  But all relevant versions of IE.

Similarly for other browsers, but it starts to be become tongue twisters.

I’m looking forward to the next conference where one of the presenters drops the word, polybrowseristic, to make themselves seem cool.  Big smiley face.


Clearing a hung build in TeamCity

We recently had a build that was hung on TeamCity.  When we cancelled it, the build just stayed around saying it was cancelling.  After googling for the solution, I couldn’t find one.  So this is what I did to clear it.

Go into team city and find the directory and machine that the build is on (assuming you’re using multiple build agents).  It will be something like C:\TeamCity\buildAgent\work\dc426554e8b0f33.   Stop the Build Agent on that machine,

  • net stop “TeamCity Build Agent Service”
  • Delete the offending dir.
  • net start “TeamCity Build Agent Service”

Then go to the webserver machine and do this;

  • net stop “TeamCity Web Server”
  • net start “TeamCity Web Server”

I hope this helps someone.

string.Format and curly brackets throwing “Input string was not in a correct format.”

I just fell into what seems a newbie C# programming pitfall, so I thought I’d document it for someone else’s learning pleasure.

Using string.Format() to create a string (ala printf), I was hit by the exception “Input string was not in a correct format.” Here’s an example of the problem;

string.Format("{0}/{id}", "controller");

While its may seem obvious that its the second curly braces, it does seem silly that it doesn’t figure this out correctly. Here’s the solution;

string.Format("{0}/{{id}}", "controller");

Which now does look silly, but it works.


Interview Question #1

Today I came accross an awesome interview question for programmers.


Given this psuedo C like code;

if "operation"

What “condition” would cause it to output “HelloWorld”?

C Solution

if (0 == printf("Hello"))

C# Solution

if ((new string[] { "Hello" }).All<string>(delegate(string n) { Console.Write(n); return false; }))

JAVA Solution

Graciously from Jack Dunham (the Java man);

if (new Object() 
  {@Override public boolean equals(Object foo) { System.out.print("hello ");return false;}}
  .equals("hello ")) {
System.out.print("hello ");
} else {

Drush – Out of Memory

So this weekend I tried to push some new changes to my staging website.  The site,, is running Drupal so you basically need to run Drush to do any form of updates.  Anyways, I logged onto the server and tried to do a drush update, and I recieved this error:

Fatal error: Out of memory (allocated 22806528) (tried to allocate 30720 bytes) in /home/musici12/ on line 105
Drush command could not be completed.

After digging around the net I found many references to PHP memory limits.  Where most people have fixed this error by simply setting the PHP.ini for Drush to use, or simply added ini_set to the drush.php file.  Here are some links;

None of these worked for me.  I always hit the 22806528 limit no matter what.  This is roughly 20M, which is really small.

The Solution

My problem was the Fork Bomb protection ( that some hosting providers setup.  The basic defense is to restrict your Bash (or whatever) shell to a very limited set of resources so that its difficult to bring down the server.  In my case the memory limits.

After requesting that my hosting provider disable the fork bomb on my VPS, I’m back to being able to update my site.

I hope this helps someone, I wasted a few midnight hours trying to figure this out.