<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title>Kartar.Net</title>
  <link href="http://www.kartar.net/"/>
  <link type="application/atom+xml" rel="self" href="http://www.kartar.net/atom.xml"/>
  <updated>2012-02-14T23:00:01-08:00</updated>
  <id>http://kartar.net/</id>
  <author>
    <name>James Turnbull</name>
    <email>kartar@kartar.net</email>
  </author>

  
  <entry>
    <id>http://kartar.net/2012/02/please-take-an-arts-degree...</id>
    <link type="text/html" rel="alternate" href="http://www.kartar.net/2012/02/please-take-an-arts-degree..."/>
    <title>Please take an Arts degree...</title>
    <updated>2012-02-14T01:19:37-08:00</updated>
    <author>
      <name>James Turnbull</name>
      <uri>http://kartar.net/</uri>
    </author>
    <content type="html"><![CDATA[<p>Years ago I remember coming across some choice graffiti in the
Engineering facility toilets at my university. Above the toilet roll dispenser some wit had added the comment: &ldquo;Please take an Arts degree&rdquo; with an arrow pointing down to the roll.</p>

<p>I have an Arts degree (Liberal Arts degree to my American readers). I majored in Politics and Philosophy. My politics interests were largely around political theory and US politics and my philosophy major was in Cognitive Science. But somehow I ended up being a geek. And weirdly I found that I am not alone. </p>

<p>These companions of the road have prompted me to start thinking about how and why I ended up in IT. What makes we Arts graduates and students, who are obviously a minority in IT, attracted to the field at all? My musings are obviously highly subjective and your mileage may definitely vary but I thought I&rsquo;d put a few thoughts down.</p>

<p>So how did I end up in IT? I&rsquo;ve always had an interest in computers from an early age and can remember when I first discovered BBS&rsquo;es and the sound of our first modem, a monstrously fast 1200 baud brick, featured heavily in my childhood. I never really considered actually working with computers though. I had some idea I might like be a lawyer, a journalist or perhaps work in government. Those are certainly fields many of my classmates at university ended up in.</p>

<p>I stumbled into IT through local government. I worked through university doing odd jobs but largely as a library assistant. Libraries were one of the environments that computerized early and, for all the jokes people make about matronly librarians, are often at the cutting edge of &hellip;  well managing information. At the library they had an AS/400 that ran things. Or sometimes not as often happens. When that &ldquo;not&rdquo; happened they generally had to find someone to get it working again. Being one of the more computer literate people I wasn&rsquo;t afraid to try to fix it. Throw in dumb terminals, PC, scanners, bar code readers and a myriad of other electronic devices and that quickly turned into a full time job. When I worked out that the full time job I had just acquired paid a hell of a lot better than stacking books I decided I&rsquo;d give this IT thing a shot. That was twenty-something years ago.</p>

<p>As my career in IT continued I began to run across more and more people with Arts degrees. Before I worked in IT I had presumed everyone who worked with computers had computer science, mathematics or information technology degrees.<sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup> That turned out to be a somewhat erroneous assumption. Looking around the office today I can see three Philosophy majors, one Anthropology  major and dog help us an English major. All cutting code. </p>

<p>So why did we all end up there? I could say money. That certainly played a factor for me. But I actually think it&rsquo;s something more interesting. I think we&rsquo;re wired right for IT. Arts students are generally good at three things<sup id="fnref:2"><a href="#fn:2" rel="footnote">2</a></sup>:</p>

<ul>
  <li>Consuming information,</li>
  <li>Assimilating information, and</li>
  <li>Synthesizing information</li>
</ul>

<p>And IT? It&rsquo;s intrinsically about those three processes. Replace &ldquo;information&rdquo; with &ldquo;data&rdquo; and you&rsquo;ve just described about 80% of the workflows I&rsquo;ve built in the last twenty years. I&rsquo;m good at taking the inputs, working out how to manipulate them and output them in some new, hopefully useful, way. I don&rsquo;t claim to be a brilliant developer. I&rsquo;m much more a hack&rsquo;n&rsquo;slash experimenter. But learning how to do this manipulation with code instead of prose actually wasn&rsquo;t that hard. </p>

<p>Another reason I think a lot of Arts students are attracted to IT is that we&rsquo;re good at Systems thinking. Good at seeing the big picture. You want to understand political, economic and social models? Welcome to Systems thinking 101. Perversely some IT graduates I&rsquo;ve worked with seem wired to respond to specific outcomes or events in systems rather than see that those are components of a larger whole. Naturally they often then trip down the stairs of unintended consequence.</p>

<p>Finally, many of us are also quite articulate.<sup id="fnref:3"><a href="#fn:3" rel="footnote">3</a></sup> Most Arts students can make a serious case for Marxism as a viable political system. Arguing vim versus emacs is kinda child&rsquo;s play in comparison. We can produce documents, presentations, design specifications, cut code, and argue obscure points of German philosophy. Don&rsquo;t get my started on one of my colleagues obsession with Saul Kripke.<sup id="fnref:4"><a href="#fn:4" rel="footnote">4</a></sup> All of which means we&rsquo;re people who can combine tech with talk. A winning combination for getting cool jobs and making good money.</p>

<p>And I never did become a lawyer. So I guess things can&rsquo;t be all bad.</p>

<div class="footnotes">
  <ol>
    <li id="fn:1">
      <p>This is not to say Computer Science, Eng, and Maths students don&rsquo;t go into IT - they do in huge numbers - but more highlighting the strangely large pool of Arts graduates in IT.<a href="#fnref:1" rev="footnote">&#8617;</a></p>
    </li>
    <li id="fn:2">
      <p>Oh and also smoking, drinking and shooting pool and/or shite.<a href="#fnref:2" rev="footnote">&#8617;</a></p>
    </li>
    <li id="fn:3">
      <p>I know - not me. :)<a href="#fnref:3" rev="footnote">&#8617;</a></p>
    </li>
    <li id="fn:4">
      <p>Although you know modal logic makes a lot of sense in the context of a configuration language designed to express application and service relationships.<a href="#fnref:4" rev="footnote">&#8617;</a></p>
    </li>
  </ol>
</div>
]]></content>
  </entry>
  
  <entry>
    <id>http://kartar.net/2012/02/knives</id>
    <link type="text/html" rel="alternate" href="http://www.kartar.net/2012/02/knives"/>
    <title>Knives</title>
    <updated>2012-02-05T23:59:50-08:00</updated>
    <author>
      <name>James Turnbull</name>
      <uri>http://kartar.net/</uri>
    </author>
    <content type="html"><![CDATA[<p>One weird thing I&rsquo;ve noticed since I moved to Portland was the number of people carrying knives. Or Leathermen tools. But mostly lots of folding clasp knives. In Australia you rarely see it outside of farms or occasionally tradespeople. I am not even sure it&rsquo;s legal in some states to carry a knife at all.</p>

<p>Initially I thought it was a bit silly: a bunch of office workers wandering around with knives. Then I started to notice another American phenomena: packaging from hell.<sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup> All of a sudden every time I got a package I had to go find a knife or scissors to open it (or have the three people near me nod knowingly and lend me their knives). </p>

<p>So whilst I don&rsquo;t think I am ever going to need a Leatherman tool on a regular basis a simple clasp knife is actually quite useful.  So I bought a nice and fairly cheap Gerber folding knife with a clip that I can tuck into my jeans. It&rsquo;s proven quite practical so far.</p>

<div class="footnotes">
  <ol>
    <li id="fn:1">
      <p>Now I know &ldquo;packaging from hell&rdquo; is not uniquely American but it is particularly egregious here. Rarely do I get a box where the contents haven&rsquo;t been vacuum-plastic sealed, wrapped, boxed and the box sealed with half a roll of tape.<a href="#fnref:1" rev="footnote">&#8617;</a></p>
    </li>
  </ol>
</div>
]]></content>
  </entry>
  
  <entry>
    <id>http://kartar.net/2012/01/most-hacker-movies-ever</id>
    <link type="text/html" rel="alternate" href="http://www.kartar.net/2012/01/most-hacker-movies-ever"/>
    <title>Best and Worst Hacker Movies Ever</title>
    <updated>2012-01-29T15:12:47-08:00</updated>
    <author>
      <name>James Turnbull</name>
      <uri>http://kartar.net/</uri>
    </author>
    <content type="html"><![CDATA[<p>Whilst at the Puppet Triage-a-thon today we put on a few films that
featured hacking and hackers. This prompted a discussion of the worst
hacker movies of all time and their appalling representations of
technology. I present our brief list. Note SOME of these movies were
good despite the appalling use of technology &hellip; others not so much.</p>

<p><a href="http://www.imdb.com/title/tt0113243/">Hackers</a></p>

<p>What a cast of off-beat and improbably handsome computer hackers: Crash
Override AKA Zero Cool, Acid Burn, Lord Nikon (token black hacker!), The
Phantom Phreak (token Puerto Rican hacker!), Cereal Killer and of course
my personal favourite: Mr The Plague. In the classic &ldquo;Damn you meddling
kids&rdquo; scenario famous since Enid Blyton and Scooby Doo our youthful
hackers foil the evil plans of evil hacker The Plague to steal money and
sink oil tankers?!? Add and stir rapidly a bumbling Secret Service
agent, a lame romantic sub-plot, hip young folk on roller blades and a
club scene soundtrack. Instant hot geek.</p>

<p>The Good: Social engineering at the start of the movie as Crash Override
hacks the TV Network.</p>

<p>The Bad: The typically ridiculous depiction of the actual hacking. The
appalling clothes. Matthew Lillard.</p>

<p><a href="http://www.imdb.com/title/tt0244244/">Swordfish</a></p>

<p>Oh my &hellip; where to start with Swordfish?  We have the classic hand-wavey
construction of a virus to hack 1024-bit DNA Binary SSL HiTek Security
TM.  We have &ldquo;Axl&rdquo; Torvalds - famous and bloodily assassinated Finnish
hacker. And of course we have Hugh Jackman&rsquo;s improbable hacker
pentetrating a government system in 60 seconds with a gun held to his
head and whilst getting blown. Oh please.</p>

<p>The Good: Ummm&hellip; Halle Berry?</p>

<p>The Bad: Pretty much everything technical AND non-technical in the film.</p>

<p>P.S. None of which compares to John Travolta&rsquo;s massive piece of
over-acting in a performance that would be truly hideous had Travolta
not made Battlefield Earth.</p>

<p><a href="http://www.imdb.com/title/tt0408345/">Firewall</a></p>

<p>Another &ldquo;blackmailed hero forced to do wrong&rdquo; story has Harrison Ford as
a corporate security expert forced to rob his own employer. Mayhem
ensures, family kidnapped, lamest bank security ever and incredibly
tenuous connection between the title of the movie and the plot.</p>

<p>The Good: Using his daughter&rsquo;s iPhone as a USB drive&hellip;</p>

<p>The Bad: Using his daughter&rsquo;s iPhone as a USB drive&hellip; Oh wait.
Completely unrealistic security controls. Also firing his secretary on
the spot? Yeah the script writers have never worked in a bank.</p>

<p><a href="http://www.imdb.com/title/tt0086567/">WarGames</a></p>

<p>Rogue AIs, war dialing hacker, cute teen romance, nukes and Cheyenne
Mountain? What&rsquo;s not to like about this movie? Computer hacker breaks
into what he thinks is a game company but rather finds a back-end into a
top secret NORAD system. From there whilst trying to play a war game he
accidentally triggers the countdown to World War III and nuclear war. He
then rushes to try to stop the AI launching it&rsquo;s missiles and &ldquo;winning&rdquo;
the game.</p>

<p>The Good: Actually resembling good depiction of social engineering, war
dialing, and how a hacker compromised a system back in the day. Except
the AI of course. Everyone knows the US government doesn&rsquo;t have an AI
running war games at NORAD&hellip;</p>

<p>The Bad: Actually there&rsquo;s not much to hate about this film. I mean the
AI theory (tic-tac-toe as learning tool) is kinda lame but generally
it&rsquo;s good fun AND has <a href="http://en.wikipedia.org/wiki/Ally_Sheedy">Ally Sheedy</a>.</p>

<p>P.S. We don&rsquo;t discuss the sequel - <a href="http://www.imdb.com/title/tt0865957/">WarGames: The Dead
Code</a>. IT DID NOT HAPPEN. DID NOT
HAPPEN.</p>

<p><a href="http://www.imdb.com/title/tt0105435/">Sneakers</a></p>

<p>What is it with buttons/ciphers/boxes that can magically hack through
all encryption instantly? Yep here&rsquo;s another. This time in a unique
twist a mathematical genius comes up with a box that allows all
encryption to be overcome. Naturally it also magically interfaces
automatically with every system ever developed.</p>

<p>Throw in a quirky team of hackers lead by on-the-run super-hacker Robert
Redford (BTW no one background checked this guy for 30 years? Really?
Whatever&hellip;). The team&rsquo;s line-up even sets the pattern for a number of
future films: young kid looking to prove himself, cynical older
operative, brilliant but disabled tech, conspiracy obsessed oddball,
etc, etc.</p>

<p>Sneakers though does have some street cred. Despite the magic cypher box
they use some nifty social engineering and much of the &lsquo;tiger team&rsquo;
hacking they perform at the start of the movie is reasonably feasible.
They even hearken back to the glory days of phone phreaking with a Cap&rsquo;n
Crunch reference.</p>

<p>The Good: Cosmo on InfoWar - &ldquo;There&rsquo;s a war out there, old friend. A
world war. And it&rsquo;s not about who&rsquo;s got the most bullets. It&rsquo;s about who
controls the information. What we see and hear, how we work, what we
think&hellip; it&rsquo;s all about the information!&rdquo;</p>

<p><a href="http://www.imdb.com/title/tt0218817/">AntiTrust</a></p>

<p>Open source. Obviously most people know us because of the beaucoup bucks
we make as rock-star developers but many people don&rsquo;t realize it&rsquo;s also
mandatory to have our model-like good looks. This movie thankfully
captures that and the purity of our code. Like some others in the list
it&rsquo;s not a true hacker film, more a glorified action movie/thriller, but
some code is actually cut and they do introduce open source software.</p>

<p>The Good: Hmmm. Ummm. &ldquo;Look! Over there! A large software company that
really isn&rsquo;t Microsoft&hellip; honest.&rdquo; Probably vaguely raised public
awareness that open source code exists.</p>

<p>The Bad: That anyone got paid for this film.</p>

<p><a href="http://www.imdb.com/title/tt0113957/">The Net</a></p>

<p>Reclusive but beautiful developer (<em>giggles</em>) discovers secret Internet
conspiracy and is forced to go on the run. Against all odds do you think
she&rsquo;ll win through? Yeah I totally didn&rsquo;t either. So apparently every
website has a magic link (and you can bet about a thousand idiots added
that icon to their sites right after the movie came out) that allows you
to take control of it. Despite the magical decryption link this isn&rsquo;t
actually a hacking movie. The main character cuts code and the evil
terrorists use the Internet to conduct their foul deeds but it&rsquo;s largely
a rather poor action movie.</p>

<p>The Good: Nothing.</p>

<p>The Bad: A little icon on every web page that unlocks the secrets of the
Interwebs&hellip;</p>
]]></content>
  </entry>
  
  <entry>
    <id>http://kartar.net/2012/01/puppet-and-flowdock</id>
    <link type="text/html" rel="alternate" href="http://www.kartar.net/2012/01/puppet-and-flowdock"/>
    <title>Puppet and Flowdock</title>
    <updated>2012-01-05T19:10:36-08:00</updated>
    <author>
      <name>James Turnbull</name>
      <uri>http://kartar.net/</uri>
    </author>
    <content type="html"><![CDATA[<p>I&rsquo;ve written a Puppet report processor that allows you to notify
<a href="http://www.flowdock.com">Flowdock</a> - a nifty tool for team collaboration - 
of failed <a href="http://www.puppetlabs.com">Puppet</a> runs.</p>

<p>It requires the <code>flowdock</code> gem to be installed on your Puppet master:</p>

<pre><code>$ sudo gem install flowdock
</code></pre>

<p>You can then install <a href="https://github.com/jamtur01/puppet-flowdock">puppet-flowdock</a> as a module in your Puppet master&rsquo;s
modulepath. Now update the <code>flowdock_api_key</code> variable in the <code>/etc/puppet/flowdock.yaml</code> 
with your Flowdock API key.</p>

<p>Then enable pluginsync and reports on your master and clients in
<code>puppet.conf</code> including specifying the <code>flowdock</code> report processor.</p>

<pre><code>[master]
report = true
reports = flowdock
pluginsync = true
[agent]
report = true
pluginsync = true
</code></pre>

<p>Finally, run the Puppet client and sync the report as a plugin and hey
presto you&rsquo;re logging failures to Flowdock.</p>

]]></content>
  </entry>
  
  <entry>
    <id>http://kartar.net/2011/12/james-&-nigel</id>
    <link type="text/html" rel="alternate" href="http://www.kartar.net/2011/12/james-%26-nigel"/>
    <title>James & Nigel</title>
    <updated>2011-12-23T18:12:57-08:00</updated>
    <author>
      <name>James Turnbull</name>
      <uri>http://kartar.net/</uri>
    </author>
    <content type="html"><![CDATA[<p>So a colleague got this made. I wasn&rsquo;t sure how to react initially but
it&rsquo;s rather grown on me. </p>

<p><img src="/images/posts/2011/12/jamesnigel.gif" alt="James &amp; Nigel" /></p>

]]></content>
  </entry>
  
  <entry>
    <id>http://kartar.net/2011/12/cloudkick-and-puppet</id>
    <link type="text/html" rel="alternate" href="http://www.kartar.net/2011/12/cloudkick-and-puppet"/>
    <title>Cloudkick and Puppet</title>
    <updated>2011-12-11T00:17:16-08:00</updated>
    <author>
      <name>James Turnbull</name>
      <uri>http://kartar.net/</uri>
    </author>
    <content type="html"><![CDATA[<p>We use Cloudkick to provide some backup monitoring for us (we use Nagios
internally <em>sigh</em>). I noticed a while back that they had an API and made
a note to create a Cloudkick module and write some Puppet integration
with their API. That was sometime ago.</p>

<p>Last week I finally got around to hammering something out and after some
fighting with the Cloudkick API I&rsquo;ve written up a module that handles
agent installation and node creation (via the API). You can have a look
at it <a href="https://github.com/jamtur01/puppetlabs-cloudkick">here</a> and I&rsquo;ll
pop it on the Forge
<a href="http://forge.puppetlabs.com/users/jamtur01/modules/cloudkick">here</a>.</p>

<p>It&rsquo;s very easy to use and documented etc. Patches, feedback, etc
welcomed.</p>

]]></content>
  </entry>
  
  <entry>
    <id>http://kartar.net/2011/11/why-i-hate-product-comparisons</id>
    <link type="text/html" rel="alternate" href="http://www.kartar.net/2011/11/why-i-hate-product-comparisons"/>
    <title>Why I hate product comparisons</title>
    <updated>2011-11-29T20:55:01-08:00</updated>
    <author>
      <name>James Turnbull</name>
      <uri>http://kartar.net/</uri>
    </author>
    <content type="html"><![CDATA[<p>I read a lot of &ldquo;Product Comparison&rdquo; blog posts, a consequence of
working in a software firm. Most of them are really not very good. So 
what&rsquo;s wrong with many of these posts? </p>

<p>Well generally the bad posts aren&rsquo;t product comparisons at all. Rather 
they document someone&rsquo;s experiences with trying to find a solution to 
suit a specific organisation or set of needs. This is sometimes interesting 
and sometimes useful. But interesting only as a subjective point analysis. 
These posts are far from actual product comparisons.</p>

<p>It&rsquo;s pretty easy to identify the two categories. Let&rsquo;s examine these two statements:</p>

<pre><code>"We needed to achieve x and Product Foo had a widget for doing x that we 
liked better than Product Bar's widget. This is how we implemented
th x widget."
</code></pre>

<p>And:</p>

<pre><code>"When doing x with Product Foo and Product Bar we observed that:
  - Product Bar was y times faster than Product Foo
  - Product Foo works on platforms a, b, and c whilst Product Bar only
    supports platforms a and b.
  - Product Bar has a comprehensive API and documentation whilst Product
    Foo needs more work in this area and didn't cover how to do d, e, and f."
</code></pre>

<p>One of these is an organisation-centric analysis of a product and the other is a
product comparison.</p>

<p>So why does the difference matter?  It matters because it impacts how and
why we choose new products. Selecting a product based on someone else&rsquo;s
selection criteria makes for a poor technology choice. To avoid this:</p>

<ul>
  <li>Gather your requirements</li>
  <li>Find the quality product comparison posts, the ones that use objective
criteria</li>
  <li>Use these posts to stock your short list of products</li>
  <li>Test the short list against your requirements and document</li>
  <li>If you do document your choice in a blog post then be clear about your
selection criteria and document the sources of your information</li>
</ul>

]]></content>
  </entry>
  
  <entry>
    <id>http://kartar.net/2011/11/world-of-warcraft</id>
    <link type="text/html" rel="alternate" href="http://www.kartar.net/2011/11/world-of-warcraft"/>
    <title>World of Warcraft</title>
    <updated>2011-11-28T15:48:16-08:00</updated>
    <author>
      <name>James Turnbull</name>
      <uri>http://kartar.net/</uri>
    </author>
    <content type="html"><![CDATA[<p>So some time after everyone else played it I decided to give World of
the Warcraft a try. This led to a number of declarations from Ruth and
others that I would become an addict and my life over before I reached
40. Visions of me in WoW rehab sprang to mind.</p>

<p>Well it hasn&rsquo;t turned out quite like that. I really, really wanted to
like World of Warcraft. Really I did. I like computer games. I was a fan
of a lot of role-playing games. I enjoyed years of playing level-based
fantasy and science fiction games. I also find a quick session of
senseless pixel destroying often relieves a lot of internal stress. I
enjoy blowing away bad guys, zombies, aliens or post-apocalyptic beasties.</p>

<p>So what&rsquo;s wrong? Well the key problem isn&rsquo;t the graphics - it really is
quite a beautiful game. One of my favourite things is flying through the
various landscapes and looking at the scenery. But the game play. My word
it is boring. And repetitive. And slow.</p>

<p>The same basic scenario, give or take a few minor variances, occurs over
and over again. Kill x number of these things, so fetch that thing,
collect x number of these things. Now before you all jump in and say
&ldquo;All computer games are like this&hellip;&rdquo; Well they ain&rsquo;t. There is a long
tradition of amazingly interesting and plot-driven fantasy (and other
genres) computer role-playing games. The early Fallout games (and their
precursor Wasteland too) are excellent examples, as is early fantasy
such as Darklands, much of the Might &amp; Magic series and classics like
the Elder Scrolls series.</p>

<p>The other part that bewilders me is the so-called social element of the
game. I&rsquo;ve discovered that almost all of the &ldquo;Dungeon&rdquo; maps require a
party. A single player is quickly swarmed and overcome in most of these
locations (although perhaps I just suck at it?). Now I like the idea of
playing with others but most of the people I know in the game are based
in Australia or New Zealand and time zones make cooperative gaming
tricky. So a whole segment of the game is largely unavailable to me,
which is somewhat annoying.</p>

<p>Sadly it seems I&rsquo;ll skip any potential addiction to WoW and have to
settle for maintaining my existing addictions to work and cigarettes.</p>

<p>P.S. And I did give it a good shot - I levelled a character up to about
level 50 before I got frustrated and bored.</p>
]]></content>
  </entry>
  
  <entry>
    <id>http://kartar.net/2011/11/sensu</id>
    <link type="text/html" rel="alternate" href="http://www.kartar.net/2011/11/sensu"/>
    <title>Sensu</title>
    <updated>2011-11-15T00:01:36-08:00</updated>
    <author>
      <name>James Turnbull</name>
      <uri>http://kartar.net/</uri>
    </author>
    <content type="html"><![CDATA[<p>A while back John Vincent spawned the hashtag #monitoringsucks.  Oh and does
it. Nagios is still state of the art in the monitoring world. And damn that&rsquo;s
depressing.</p>

<p>So since #monitoringsucks appeared I&rsquo;ve been hoping that some people who take
heart and start writing modular, scalable, and extensible monitoring components
and tools.</p>

<p>The team at Sonian have kicked off things with the introduction of
<a href="http://www.sonian.com/cloud-tools/cloud-monitoring-sensu/">Sensu</a>.  Sensu is a
new cloud monitoring framework with a Message Bus-based model. Sonian describes
the concept as:</p>

<p><a href="http://blog.sonian.com/technology-blog/bid/77977/Sensu-A-Monitoring-Framework"><em>The idea behind Sensu is simple, schedule the remote execution of checks and
collect their results. As mentioned above, Sensu uses RabbitMQ to route check
requests and results, this is the secret sauce. Checks will always have an
intended target; servers with certain responsibilities, such as serving web
pages (webserver) or data storage (elasticsearch). A Sensu client has a set of
subscriptions based on its server&rsquo;s responsibilities, the client will execute
checks that are published to these subscriptions. A Sensu server has a result
subscription, this is where clients publish check results. Since each component
only connects to RabbitMQ, there is no need for an external discovery
mechanism, new servers are monitored
immediately.</em></a></p>

<p>It&rsquo;s an interesting concept and one I think merits some development. It&rsquo;s not
quite the direction I think is needed totally. It&rsquo;s still heading towards a
somewhat more monolithic framework than I feel is needed. I&rsquo;d like to see
things broken into a lot smaller components but it&rsquo;s a really good start. </p>

<p>To make it a bit easier to try Sensu out I&rsquo;ve added a <a href="https://github.com/sonian/sensu/tree/master/dist/puppet">Puppet module and
Vagrant file</a> to help
you build it. Tim Sharpe of GitHub fame is also working on it and has
<a href="https://github.com/rodjek/puppet-sensu">developed his own module too</a>.  I&rsquo;ve
also added some <a href="https://github.com/sonian/sensu-plugins/tree/master/plugins/puppet">plugins to monitor
Puppet</a> and
an <a href="https://github.com/sonian/sensu-plugins/tree/master/handlers/irc">alerting
handler</a> to
send check notifications to IRC.</p>
]]></content>
  </entry>
  
  <entry>
    <id>http://kartar.net/2011/11/boundary</id>
    <link type="text/html" rel="alternate" href="http://www.kartar.net/2011/11/boundary"/>
    <title>Boundary</title>
    <updated>2011-11-13T23:04:32-08:00</updated>
    <author>
      <name>James Turnbull</name>
      <uri>http://kartar.net/</uri>
    </author>
    <content type="html"><![CDATA[<p>The team at <a href="https://boundary.com/">Boundary</a> were kind enough to demo
their new network and flow monitoring and visualisation solution to me.
It&rsquo;s pretty cool albeit it has a fairly limited feature set so far.
Their future directions show some interesting promise though especially
around the potential ability to visualise networks and services.</p>

<p>If you&rsquo;re lucky enough to be involved in the beta (or if you make use of
the product after launch) then I&rsquo;ve developed a <a href="https://github.com/jamtur01/puppetlabs-bprobe">Puppet module to deploy
Boundary probes</a>. It
installs the required software and has a custom type and provider to
deploy Boundary meter probes.</p>
]]></content>
  </entry>
  
  <entry>
    <id>http://kartar.net/2011/11/weechat-notifications-for-android</id>
    <link type="text/html" rel="alternate" href="http://www.kartar.net/2011/11/weechat-notifications-for-android"/>
    <title>Weechat notifications for Android</title>
    <updated>2011-11-05T17:10:44-07:00</updated>
    <author>
      <name>James Turnbull</name>
      <uri>http://kartar.net/</uri>
    </author>
    <content type="html"><![CDATA[<p>I spend a lot of time in IRC but I also spend a lot of time away from it
too. I usually leave a Weechat session inside a screen session signed
onto IRC 24x7. I have XMPP notifications set up from Weechat to have
Jabber notify me when people say my name or private message me. That
works fine for notifications to my laptop. It doesn&rsquo;t, however, suit
for sending notifications to my phone as I am often mobile and don&rsquo;t 
have my laptop with me.</p>

<p>If you&rsquo;re an iPhone user then there are lots of options available to
you, like <a href="http://boxcar.io/">Boxcar</a> for example, but Android users
have a lot less choice. Especially since
<a href="http://blog.notifo.com/notifo">Notifo</a> is going to shut down (it&rsquo;s
still running right now but apparently only for a little while longer).</p>

<p>After some searching I stumbled onto
<a href="https://www.notifymyandroid.com/">NotifyMyAndroid</a> which provides
exactly the service I was after. Using their excellent bindings I
quickly added a simple Weechat plug-in to notify me when people private
message me or my name is highlighted.  You can find it
<a href="https://github.com/jamtur01/nma-weechat">here</a> and instructions for
deploying it are in the
<a href="https://github.com/jamtur01/nma-weechat/blob/master/README.md">README</a>
file. You&rsquo;ll also need the NotifyMyAndroid application installed on your
phone.</p>

<p>Hope it helps someone!</p>
]]></content>
  </entry>
  
  <entry>
    <id>http://kartar.net/2011/11/why-am-i-a-tool-maker?</id>
    <link type="text/html" rel="alternate" href="http://www.kartar.net/2011/11/why-am-i-a-tool-maker%3F"/>
    <title>Why am I a tool maker?</title>
    <updated>2011-11-01T00:36:21-07:00</updated>
    <author>
      <name>James Turnbull</name>
      <uri>http://kartar.net/</uri>
    </author>
    <content type="html"><![CDATA[<p>If this was a vlog instead of a blog post then it&rsquo;d start with the opening scene
of <a href="http://en.wikipedia.org/wiki/2001:_A_Space_Odyssey_(film)">2001: A Space
Odyssey</a> with
the apes shuffling around the Monolith until finally touching it and
sparking their development into tool makers and users. Obviously,
broadly speaking, most of my tool making doesn&rsquo;t involve turning bones
into weapons although I did a solid line in improvised explosives in my
early teens. I think I was the only kid in junior high who had his own
mortar. Well at least in the 3207 area code. Possibly.</p>

<p>This post was inspired by a question, possibly snarky, about why I
bothered to publish things to GitHub. I publish a lot of little tools, 
plug-ins, add-ons and even small applications. The questioner&rsquo;s
sentiment was &ldquo;why bother?&rdquo;. Write the code, solve the problem, move on.
Posting the code means writing documentation, maybe tests, cleaning it
up. Then having people actually using it means you get bugs logged
and people want help. All of which consumes time and is a &ldquo;pain in the
arse&rdquo; to manage.</p>

<p>So why bother indeed? Well I&rsquo;ll front up and say part of it is ego. I
like showing off and publishing solutions, neat tricks or cool
tools is the ultimate show-off material in the technical world. It&rsquo;s
also excellent career material. I rarely see a job advertised (at least
ones I am interested in) that doesn&rsquo;t ask for your GitHub user name. In
some cases your GitHub account is as good as a cover letter AND a CV.</p>

<p>It&rsquo;s also a personal development opportunity as well as a career
enhancer. I love learning new languages, new frameworks and puzzling out
how to make things work. Ironically often using snippets of code other people have
puzzled out. Turtles all the way down.</p>

<p>Some part of it also overlaps with why I am involved in open source. If
you write code that could help others then it just makes sense
to apply an open source license to it and publish it. This is
not just because other people should suffer through my code but because
good open source citizens share.</p>

<p>Lastly, sysadmins spend their lives solving problems. Often painful and
un-fun problems that occur at inopportune moments that mess with your life. Being 
a sysadmin is an awesome job but it can also be a job that sucks when 
things go wrong or when you have an annoying or labour intensive task.
The way I solved a lot of those problems, automated a lot of those tasks
or just generally made things better was by steali^H^H using other
people&rsquo;s code and tools. If others hadn&rsquo;t made their cool solutions and
tools available then my life as a sysadmin would have sucked a whole lot
more. The fact that others went to the trouble of making things that
made my life easier matters to me. So in turn helping solve other people&rsquo;s
problems or making their lives easier matters to me too. And that&rsquo;s why I make
tools.</p>
]]></content>
  </entry>
  
  <entry>
    <id>http://kartar.net/2011/10/mafia</id>
    <link type="text/html" rel="alternate" href="http://www.kartar.net/2011/10/mafia"/>
    <title>Mafia</title>
    <updated>2011-10-25T23:27:42-07:00</updated>
    <author>
      <name>James Turnbull</name>
      <uri>http://kartar.net/</uri>
    </author>
    <content type="html"><![CDATA[<p>One of the things that I use a lot of lately is Sinatra. However I find the
native application layout a tad annoying and I find myself wanting the
same basics from every Sinatra application I create:</p>

<ul>
  <li>A simple binary</li>
  <li>Laid out so I can create a gem from it including a Gem specification</li>
  <li>Versioning</li>
  <li>A <code>config.ru</code> file so I can rackup if I need to</li>
  <li>A README file, license and the miscellaneous trappings</li>
  <li>Created as a Git repository</li>
</ul>

<p>I was going to create a tool to generate my own Sinatra application templates but 
then I saw a Tweet from <a href="http://wwww.rubygems.org">RubyGems</a> about a
Sinatra application generator called
<a href="https://github.com/georgedrummond/mafia">Mafia</a>. </p>

<p>Naturally being a proper Rubyist I examined it disdainfully and then
proceeded to write my own anyway because there can never be enough
Ruby-based tools that do the same thing. Oh wait. No I didn&rsquo;t.</p>

<p>I did, however, add some new code:</p>

<ul>
  <li>Addition of a simple binary</li>
  <li>A default action for the application. I like things to work out of the
box.</li>
</ul>

<p>I&rsquo;ll also add basic RSpec testing to the template when I get a chance. I
struggle with testing for Sinatra still. I&rsquo;m still learning RSpec and am
not sure yet what the best framework is to test simple Sinatra
applications with. If anyone has recommendations or suggests
alternatives to RSpec or has some good examples of how to test
applications (especially DataMapper) I&rsquo;d welcome the input. Every
example I&rsquo;ve seen online is subtly and annoyingly different.</p>
]]></content>
  </entry>
  
  <entry>
    <id>http://kartar.net/2011/10/tally</id>
    <link type="text/html" rel="alternate" href="http://www.kartar.net/2011/10/tally"/>
    <title>Tally</title>
    <updated>2011-10-23T21:28:10-07:00</updated>
    <author>
      <name>James Turnbull</name>
      <uri>http://kartar.net/</uri>
    </author>
    <content type="html"><![CDATA[<p>I like scoreboards and tallies. I have an amazing penchant for becoming
competitive about electronic totals: number of things done, changed,
updated. I am really quite surprised I never got addicted to gold
farming in WoW although I had an unhealthy interest in
<a href="http://zeal.com">Zeal.com</a> for a long time (when it was a LookSmart
property - long story).</p>

<p>So when we started talking about running some public triages of tickets
at Puppet Labs I decided we must have a tally board to score who changes
the most tickets (or at least who games the system fastest to achieve
the highest score).</p>

<p>So I set out to write a very quick and dirty tally board. I rather
unimaginatively called it <a href="https://github.com/jamtur01/tally">Tally</a>.
It&rsquo;s written in Sinatra and uses DataMapper and an Sqlite3 database
back-end. It takes a feed from a Redmine plug-in that generates events
when tickets are updated. You can see a sample:</p>

<p><img src="/images/posts/2011/10/Screen Shot 2011-10-19 at 6.05.58 PM.png" alt="Tally front page" /></p>

]]></content>
  </entry>
  
  <entry>
    <id>http://kartar.net/2011/10/what-a-great-little-book</id>
    <link type="text/html" rel="alternate" href="http://www.kartar.net/2011/10/what-a-great-little-book"/>
    <title>What a great little book...</title>
    <updated>2011-10-21T22:44:38-07:00</updated>
    <author>
      <name>James Turnbull</name>
      <uri>http://kartar.net/</uri>
    </author>
    <content type="html"><![CDATA[<p>So I recently started trying to buy Kindle books rather than paper books. </p>

<p>The reason for this is two-fold:</p>

<ul>
  <li>I don&rsquo;t have space to buy and keep books as we&rsquo;re living
overseas in a small apartment.</li>
  <li>I buy a lot of books I just want to read but not keep. Previously
this meant every few months I&rsquo;d cart piles of books to Powells to
sell. This was/is annoying.</li>
</ul>

<p>Obviously not everything I read is available on the Kindle but a lot of
it is and the other stuff I don&rsquo;t mind buying because it&rsquo;s low volume
and I do still like the feel of paper when I&rsquo;m reading. Although I&rsquo;ve
been pleasantly surprised to discover I do find reading on the Kindle
quite satisfactory as an experience. Indeed I&rsquo;ll probably even buy one of
the new Kindle Touch 3Gs when they are released because I find the
keyboard and page change buttons annoying and painful (I see no need for the
full color bells and whistles Kindle Fire).</p>

<p>One of the side-effects of buying Kindle books is that I noticed the
&ldquo;People who bought this book also bought/liked&hellip;&rdquo; page at the end of
Kindle titles and I started browsing the Kindle store a lot more. There 
are a lot of books in the store, actually far more than I was
expecting for the sometimes backward publishing industry.  Then I
realized that a hell of a lot of them were self-published titles with quite 
reasonable price tags: $0.99 - $2.99 on average.</p>

<p>The self-published material greatly varies in quality. Some of them are 
best described as simply awful. An old adage about behind every 
good author is a depressed and inebriated editor sprang to mind but 
in many cases not even good editing could save these books. I&rsquo;ve mostly
been looking at genre fiction and every bad example of pulp horror, thriller, 
science fiction and fantasy is present. Every space marine, post-apocalyptic 
nuclear wasteland dwelling, mutant killing, psychic-powered zombie barbarian warrior overlord is
present. Often with a buxom blond sidekick, a lost throne and/or a
deadly secret. Oh my!</p>

<p>And my word are some of these people terrible writers. Wooden dialog,
transparent characters, plot holes you could drive the Death Star
through and some truly, hilarious by its badness, prose. I was reminded of the writing
contest in Sharyn McCrumb&rsquo;s iconic <a href="http://en.wikipedia.org/wiki/Bimbos_of_the_Death_Sun"><em>Bimbos of the Death Sun</em></a> (ironically
named in rather a similar manner to some of the books available in the
Kindle store). I tried to put some of these on a scale against some of
the more dire things I&rsquo;ve read (I collect post-apocalyptic fiction as a 
hobby and I&rsquo;ve read some appallingly bad books, for example almost all 
of William Johnstone&rsquo;s &ldquo;<em>Ashes</em>&rdquo; series which should frighten anyone who 
knows the genre).</p>

<p>And to be fair in the process of finding out that many of them were crap I
did buy many of the books involved hence lessening the sting of the
insult by paying for the right to insult them although tragically also potentially 
validating the author&rsquo;s belief in their writing being good&hellip; :)</p>

<p>Amongst the dross though there is a gem or two. Some talented writers who
clearly haven&rsquo;t found any other avenue to publication. Or perhaps who have 
not wanted to jump through the many hoops and annoying idiosyncrasies of 
the publishing industry. I&rsquo;ve found two or three reasonably solid sci-fi
writers and a couple of excellent crime/thriller authors. I don&rsquo;t know 
yet of any writers who have started as purely Amazon self-published authors 
although I know of some who have entered the industry via the self-publishing 
route (I have some vague memory that Matthew Reilly self-published his first 
book but think there was more to the story) but I expect if it hasn&rsquo;t happened 
already it&rsquo;ll happen soon.</p>

<p>Of course, that assumes that publishers are looking at any of the material 
that is published or that some of these more successful writers have any 
interest in being published in print. For many I suspect the potential deal 
they will get from a print publisher simply won&rsquo;t be worth it - Amazon pays 35% to 70%
royalties (70% on titles priced from $2.99 to $9.99!). When I read that
I nearly fell off my chair. It beats every one of my contracts with
publishers previously by a huge margin. Of course a traditional publisher 
would also be highly reluctant to touch most of these titles because they 
know they can&rsquo;t match the sell price and they are unlikely to find an 
audience at the higher price point.</p>

<p>So what do traditional publishers bring to the table that might entice
one of these authors or allow publishers to compete? Publishers traditionally 
bring three (maybe four?) capabilities:</p>

<ul>
  <li>Marketing,</li>
  <li>Quality control,</li>
  <li>Distribution, and</li>
  <li>Credibility?</li>
</ul>

<p>Marketing in traditional publishing covers a broad spectrum of potential
channels both electronic and physical. These include promotional activities in
media, book sellers, libraries, advertising, and tours. Of course, the
investment publishers make into each of these activities is directly
correlated to potential revenue the publisher perceives from the title.
And in an increasingly tight market &hellip; well the resources are slim and
hard to extract from publisher&rsquo;s marketing departments. BTW In the case 
of most technical books the investment is close to zero.</p>

<p>The quality control publishers offer is a valuable service. A good editor 
alone is an awesome advantage that can make a book far more polished. A
lot of the Kindle titles I looked at would have greatly benefited from
an aggressive edit. Of course it&rsquo;s also to hire one of the numerous (and
often recently unemployed) editors on the market. It&rsquo;s a relatively
cheap commodity service usually priced per page or on word count.</p>

<p>Publishers also get books onto shelves in bookstores, have
warehouses, ship titles, etc. All of which is moot with e-books or
largely moot with print-on-demand because of Amazon&rsquo;s immense economies
of scale in procurement, warehousing and distribution.</p>

<p>And finally there is the credibility issue. For literary books,
certainly anything for example that might win a Booker or similar
literary prize, being published on paper seems to be the only way to go.
That being said the I don&rsquo;t know what the volume of book sales is generated
by the demographic of literary readership: older, educated, likely to shop 
in a bookstore, my parents. Interestingly I think the death knell of the
paper publishing industry will be when a pure e-book wins a major
literary prize.</p>

<p>All in all if you&rsquo;re publishing a Kindle title and making money the print 
publishing industry doesn&rsquo;t seem to hold a lot of attractions. And unless the 
mainstream publishers somehow make themselves more attractive to those
authors or seize the ground by publishing themselves (including offering comparable 
royalty rates - <em>laughs</em>) they are going to go out of business. Leaving these new self-published 
Kindle authors and Amazon to steal away the entire genre market if not
beyond.</p>

<p>(And yes here I&rsquo;ve largely ignored the non-Kindle self-publishing
market, not because I see any problems with it. Certainly in that model
100% of the price of the book is yours rather than some royalty
arrangement. My interest in this article is largely the ease of purchase
of these titles via a medium like the Kindle because it clearly drives
volume in a way that I am not sure self-published titles available via
PDF or the like does yet.)</p>
]]></content>
  </entry>
  
  <entry>
    <id>http://kartar.net/2011/10/mexico</id>
    <link type="text/html" rel="alternate" href="http://www.kartar.net/2011/10/mexico"/>
    <title>Mexico</title>
    <updated>2011-10-06T22:29:59-07:00</updated>
    <author>
      <name>James Turnbull</name>
      <uri>http://kartar.net/</uri>
    </author>
    <content type="html"><![CDATA[<p>So we&rsquo;re off to Mexico for a week. Neither of us has been before and
our expectations verge somewhere between roaming bands of mariarchi
players and cartel gun battles. I am hopeful it&rsquo;s not the latter.</p>

<p>We&rsquo;re going to fly into Oaxaca, spend a few days there, doing some
things that I am as yet a little vague about but will probably involve
eating and drinking lots.  Then we&rsquo;re going to fly to Mexico City.</p>

<p>(Anyone ever flown AeroMexico?  Am I taking life into hands? I guess
I&rsquo;ve flown Air Southern China and a bunch of tiny, weeny light planes in
the Pacific and South East Asia so it can&rsquo;t be all that bad - <em>stops
myself Googling their safety record</em>).</p>

<p>In Mexico City we have pretty limited plans with only Trotsky&rsquo;s
house/museum and Frida Karlo&rsquo;s &lsquo;Casa Azul&rsquo; (&ldquo;The Blue House&rdquo;) on our list
of things to see but there seems a long list of other possible things.</p>

<p>Feel free to suggest stuff in the comments anyways.</p>

<p>Oh and then I am in NOLA for a week including taking a day off to go
visit <a href="http://en.wikipedia.org/wiki/New_Iberia,_Louisiana">New Iberia</a>
(I am apparently just going to miss the &ldquo;World Championship Gumbo
Cook-Off&rdquo; too!) and see where all the <a href="http://en.wikipedia.org/wiki/James_Lee_Burke">James Lee Burke</a>
books are set.  That should be cool fun albeit I will probably be the
youngest person on the damn tour as per every literary tour I&rsquo;ve ever taken.</p>

]]></content>
  </entry>
  
  <entry>
    <id>http://kartar.net/2011/10/when-MVPs-go-wrong</id>
    <link type="text/html" rel="alternate" href="http://www.kartar.net/2011/10/when-MVPs-go-wrong"/>
    <title>When MVPs go wrong</title>
    <updated>2011-10-04T22:44:15-07:00</updated>
    <author>
      <name>James Turnbull</name>
      <uri>http://kartar.net/</uri>
    </author>
    <content type="html"><![CDATA[<p>Most startups operate on the practice of delivering Minimum Viable Product or MVP to customers. The MVP has the bare minimum of features needed to achieve a goal or attack a target market. You get
out code, features, functionality and fixes fast to customers to demonstrate the value of your product or service. The MVP concept is awesome and I&rsquo;ve become a real convert to it. You get the product to deployment, get it in the hands of customers fast and maximize the crucial return on investment of your precious investment or starting capital.  </p>

<p>Done right the MVP model is dynamic, iterative, fast to deploy, gets quick feedback and fearless.  The best MVP comes out from a tightly run and managed product management process. Each feature of your MVP product emerges from a user scenario/script, good UX/UI design and pragmatic architecture and design decisions.</p>

<p>Sadly, done wrong and it can be a disaster. This post highlights some of the key things that can potentially go wrong with an MVP and provides some suggestions on how to avoid those land mines.</p>

<p>So how does an MVP go wrong?  Well in my humble and recent experience there are three principal failure modes for an MVP:</p>

<ol>
  <li>
    <p>Shipping</p>
  </li>
  <li>
    <p>&ldquo;Ostrich Syndrome&rdquo;</p>
  </li>
  <li>
    <p>Quality</p>
  </li>
</ol>

<p><strong>Shipping</strong></p>

<p>The first failure mode, shipping, is pretty simple. It happens when you don&rsquo;t get off your arse and ship the damn product. The idea and the true value behind a minimum viable product is that you iterate, ship fast and iterate again based on customer feedback. Holding onto the product for &ldquo;just one more feature&rdquo; not only keeps you from the market but it also potentially digs any architectural, technical or UX/UI holes you&rsquo;ve made for yourself deeper. Or potentially allow your whole product to fall off a cliff.</p>

<p>Failing to actually get code out and product in front of customers can be recognized when you hear comments like:</p>

<p>&ldquo;We just need to close these feature tickets out and&hellip;&rdquo;</p>

<p>&ldquo;I know it&rsquo;s the third time the ship date has slipped but&hellip;&rdquo;</p>

<p>&ldquo;At our burn we have three months of money left and we&rsquo;re going to ship two weeks before that&hellip; It&rsquo;ll be fine.&rdquo;</p>

<p>The only solution to shipping failure is discipline. Smooth out rough edges by all means but don&rsquo;t be tempted by feature creep.  Set deadlines and met them. Not only does it get your product out into the world but it teaches your Engineering team the discipline they&rsquo;re going to need to ship regular and solid product.</p>

<p><strong>&ldquo;Ostrich Syndrome&rdquo;</strong></p>

<p>One of the key points of an MVP is to seek feedback from customers. Get a product out there that customers can use and see if this triggers interest or causes the market to poke back and validate all your hard spent Engineering and Product hours. Failing to seek that feedback constitutes a failure of the MVP as does failing to seek the right sort of feedback. Seeking but failing to heed that feedback also constitutes a failure of the MVP and makes you an idiot as well. </p>

<p>Ostrich Syndrome can be detected when you hear comments like:</p>

<p>&ldquo;I know our <em>real</em> customers will want to use it like.&rdquo;</p>

<p>&ldquo;She&rsquo;s definitely not our target demographic.&rdquo;</p>

<p>&ldquo;I think we can assume.&rdquo;</p>

<p>The solution to Ostrich Syndrome is simple: build feedback systems with your product, actually gather the relevant data and then use it make decisions. Building feedback systems is pretty easy:</p>

<ul>
  <li>Embed feedback mechanisms in the product. The easier, simpler and lowest barrier to use the mechanism is then the more likely someone will actually give you feedback.</li>
  <li>Like/Dislike buttons</li>
  <li>Links to feedback forms</li>
  <li>Tweet/Re-tweet shortcuts</li>
  <li>Inbuilt diagnostic/anonymized data output if feasible</li>
  <li>Use electronic surveys and customer calls/interviews to gather more detailed data</li>
  <li>Monitor social networking, media and blog channels for people&rsquo;s feedback. This is the hardest sort of feedback to deal with as a lot of it is heavily opinion-orientated.  But detect a trend of opinions and you may have tapped a vein of useful feedback.</li>
</ul>

<p>Then actually devote the time to reviewing and interpreting the data. Divide the feedback into types or categories and track it. To do this you can use a ticketing system or a tool like Pivotal Tracker. A spreadsheet or document can be suitable too or if it suits better a visual representation such as file cards pinned to a wall or stuck to a whiteboard.  </p>

<p>Finally, be honest with yourselves about the product and the feedback. And if ultimately you do choose to discard some data make sure you document why so you avoid future rabbit holes. </p>

<p>P.S. Of note is the correlated problem: striking the balance between listening to customers and having one or two vocal customers dictate your product strategy. Obviously if you have some highly engaged customers then that&rsquo;s awesome but you need to temper their input against a wider pool if you don&rsquo;t want your product potentially pigeon-holed or a bespoke solution that suits those customers and not the wider market. Favor feedback mechanisms that generate pattern, trend or themed data as well as point information. Patterns, trends, and themes help validate point opinions.</p>

<p><strong>Quality</strong></p>

<p>The last failure mode comes from a misunderstood conception of the MVP:</p>

<p>Liquid error: undefined method `join&rsquo; for &ldquo;\n    MVP != Quality\n&rdquo;:String</p>

<p>Ensuring quality before you release might potentially seem like an inherent contradiction with the first failure mode of an MVP, a lack of shipping. It&rsquo;s really not. There is a clear difference between shipping something usable and something crap. If a user can&rsquo;t consume your MVP product because it&rsquo;s buggy, unusable or fragile then you&rsquo;re either going to get zero feedback or feedback that highlights its flaws rather than feedback on its capabilities. And naturally people who can&rsquo;t get your product to work at all or find it too hard to use are unlikely to be persuaded to try it again even if you do fix it.</p>

<p>You&rsquo;ll see the harbingers of a poor quality MVP if you overhear:</p>

<p>&ldquo;We&rsquo;ll fix the UI bugs next release.&rdquo;</p>

<p>&ldquo;Don&rsquo;t worry! It only crashes under load.&rdquo;</p>

<p>&ldquo;We don&rsquo;t have time to test the upload capability.&rdquo;</p>

<p>So how do you fix enough bugs to ensure people test but not so much that you&rsquo;re spending more time fixing bugs than actually releasing product? Testing the right things. Especially getting acceptance and scenario based testing right. You know those product plans you have for your MVP? The user scenarios you used to create each feature of your MVP? They are your test scripts. You used your product management process to generate user scenarios and develop features from them. Use them again to generate and execute test plans for each of the portions of the scenarios you&rsquo;ve developed.  </p>

<p>This isn&rsquo;t rocket science and it&rsquo;s more than just writing unit tests. Take the user scenarios you&rsquo;ve developed and execute them: if the feature calls for uploading a file then upload file(s).  Treat the product like you&rsquo;re expecting the user to use it and then test it. If there are bugs fix them. There&rsquo;s no excuse for writing any feature and then not using that feature internally exactly as you think the end user is going to use it. </p>

<p><strong>Summary</strong></p>

<p>So is this advice worth anything? Well perhaps. I&rsquo;m not a developer by trade but I&rsquo;ve played product manager, release manager and hack-n-slash developer over the last few years. It&rsquo;s based on my experiences over that period and what I&rsquo;ve learnt. Mostly from stuffing up. Hopefully you&rsquo;ll avoid some of the mistakes I&rsquo;ve made.</p>
]]></content>
  </entry>
  
  <entry>
    <id>http://kartar.net/2011/09/Hello-Jekyll</id>
    <link type="text/html" rel="alternate" href="http://www.kartar.net/2011/09/Hello-Jekyll"/>
    <title>Hello Jekyll</title>
    <updated>2011-09-25T16:34:12-07:00</updated>
    <author>
      <name>James Turnbull</name>
      <uri>http://kartar.net/</uri>
    </author>
    <content type="html"><![CDATA[<p>So here we are again with a new site design and a new blog engine.  I
discovered a while back that I had changed the way I write both
professionally and for this blog.  Basically I now write locally on my
machine the vast majority of the time, version control everything
(albeit I&rsquo;ve never quite gone as far as Cory Doctorow does with
<a href="https://github.com/commandline/flashbake/wiki">Flashbake</a>), and more and
more prefer to write in something like Vim or in a Markdown-enabled simple
editor like <a href="http://www.youtube.com/watch?v=foE-dXgTHoU">Emdee</a>.</p>

<p>This means the Wordpress model didn&rsquo;t overly suit me anymore and I
decided I&rsquo;d finally get around to converting my site to use
<a href="https://github.com/mojombo/jekyll">Jekyll</a>.  The process was pretty
simple:</p>

<ul>
  <li>A new layout which I thought was in line with my new workflow</li>
  <li>Converted posts (yes I know some early posts have some crap formatting in places)</li>
  <li>Added some plugins for creating tags, categories, ordinal dates and
some other tweaks</li>
  <li>Added Disqus to handle the comments and converted my existing comments</li>
</ul>

<p>The only gotcha is that my sitemap and RSS feeds will have probably been
reconstructed so you might see some older posts as new posts.  Apologies
for that. :(</p>

<p>Overall though it&rsquo;ll hopefully mean I write more. Well that&rsquo;s the theory
anyway.</p>
]]></content>
  </entry>
  
  <entry>
    <id>http://kartar.net/2011/08/bunraku-v0-0-3</id>
    <link type="text/html" rel="alternate" href="http://www.kartar.net/2011/08/bunraku-v0-0-3"/>
    <title>Bunraku V0.0.3</title>
    <updated>2011-08-02T14:00:09-07:00</updated>
    <author>
      <name>James Turnbull</name>
      <uri>http://kartar.net/</uri>
    </author>
    <content type="html"><![CDATA[<p>I introduced <a href="http://www.kartar.net/2011/08/bunraku-a-puppet-status-panel/">Bunraku</a> earlier in the week. It was a bit POC and messy in
places so I took some time to clean it up tonight and <a href="https://github.com/jamtur01/bunraku/tree/v0.0.3">release v0.0.3</a>. The
major changes are:</p>

<ul>
  <li>Added /node/detail/node_id screen that shows details from
the specific run (linked as a click-thru from the specific run on main pages
(see picture).</li>
</ul>

<p><img src="/images/posts/2011/08/Screen-Shot-2011-08-02-at-11.28.28-PM-300x199.png" alt="Bunraku Detail page" /></p>

<ul>
  <li>Added /node/node.example.com screen that shows all runs from that node </li>
  <li>Now uses Redis hashes instead of storing JSON - The overall code has been refactored
and cleaned up in a lot of places </li>
  <li>The report processor is much cleaned up and simpler to understand </li>
</ul>

<p>The unfortunate piece is that to upgrade you&rsquo;ll need
to flush your existing Redis data (I promise I won&rsquo;t do this to you again &hellip;
the refactor to make this a lot better involved me slapping my head at my
previously stupid approach) and start again. As always hope it&rsquo;s useful to
someone and patches and input welcomed.</p>

]]></content>
  </entry>
  
  <entry>
    <id>http://kartar.net/2011/07/bunraku-a-puppet-status-panel</id>
    <link type="text/html" rel="alternate" href="http://www.kartar.net/2011/07/bunraku-a-puppet-status-panel"/>
    <title>Bunraku - A Puppet Status Panel</title>
    <updated>2011-07-31T13:00:03-07:00</updated>
    <author>
      <name>James Turnbull</name>
      <uri>http://kartar.net/</uri>
    </author>
    <content type="html"><![CDATA[<p>Since I started playing with it I&rsquo;ve been a big fan of <a href="http://www.sinatrarb.com/intro">Sinatra</a>. I&rsquo;ve
built a couple of small applications with it - mostly just prototypes or tools
to solve internal problems and been throughly impressed by how easy it is to
produce simple apps and to extend those apps with helpers and templates. The
only downside is the reminder of the fact that I am lousy with designing
HTML/CSS. :) One of the recent prototypes I&rsquo;ve built is a very simple Puppet
status panel. It uses a Puppet report processor to post the time, name of the
host and status of Puppet runs to a Sinatra app with a <a href="http://redis.io/">Redis</a> back-end.
I&rsquo;ve called it <a href="https://github.com/jamtur01/bunraku">Bunraku</a> (the word refers to a form of traditional Japanese
puppetry). You can query successful (changed), unchanged and failed reports.
It refreshes every 5 seconds and displays a maximum of 100 previous runs (all
other data is stored in Redis but not displayed).</p>

<p><span class="image">
<img src="/images/posts/2011/08/Screen-Shot-2011-08-01-at-9.48.17-AM-300x139.png" alt="Bunraku screenshot" />
</span></p>

<p>I hope it proves a useful example for someone and improvements and patches most welcome to it. I have
some ideas on how to extend it beyond the very MVP v0.0.1 prototype it is now.</p>

]]></content>
  </entry>
  

</feed>

