Tuesday, April 26, 2011

The Human Chaos Monkey

I have never worked on a project with an automated Chaos Monkey, but I have had the great pleasure of working with a human Chaos Monkey for many years (I'm sure you know who you are :-)

This particular Chaos Monkey insisted on;

  1. Having everything load balanced/replicated even in the testing environment (both for testing and for making sure it matched the production environment as much as possible)
  2. Making sure that the replicated services worked correctly but killing one instance, waiting for it to fail over then kill it again to make sure it failed back.
  3. Running a short stress test even for minor changes
  4. Running long, preferably over the weekend, load tests for major infrastructure changes
The result was a rock solid infrastructure that had close to zero downtime apart from planned maintenance windows where changes depended on other systems. The outages we had were due to external systems replying slower than required so we implemented a killer monkey that recycled com+ processes taking to long.

Making the process clear upfront is a great help; there is no way your code is going into production until you've passed the Chaos Monkey.

Sunday, April 24, 2011

Five-leaf clover

Four-leaf clovers should bring luck. What about the five-leaf clover I found in the local park?

Too close to Milano and pollution or will I be extra lucky?

Friday, April 22, 2011

Reading protected PDF files on the Amazon Kindle 2

I recently bought a new Nikon DSLR on Amazon.fr as it had the best price I could find in Europe. As usual it arrived in no time in perfect condition but it only had the French manual. I found an English version of the  PDF version of the Users' Manual on the Nikon web site but is not readable by the Amazon Kindle 2 as printing is password protected.

I already own a paper copy of the manual so I don't feel guilty about removing the password protection of the PDF file so I can read it on my Kindle. This one line command on Mac/Linux uses GhostScript to remove the password protection:

gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=unprotected.pdf -c .setpdfwrite -f protected.pdf
It also reduced the size of the file from 23Mb to 14Mb :-)