<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Madstop &#187; luke</title>
	<atom:link href="http://madstop.com/category/luke/feed/" rel="self" type="application/rss+xml" />
	<link>http://madstop.com</link>
	<description>Puppet development, configuration management, and less</description>
	<lastBuildDate>Mon, 02 Aug 2010 04:07:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Trying to restart</title>
		<link>http://madstop.com/2010/08/01/trying-to-restart/</link>
		<comments>http://madstop.com/2010/08/01/trying-to-restart/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 04:07:53 +0000</pubDate>
		<dc:creator>luke</dc:creator>
				<category><![CDATA[luke]]></category>
		<category><![CDATA[blog]]></category>

		<guid isPermaLink="false">http://madstop.com/?p=89</guid>
		<description><![CDATA[I&#8217;m hoping I can start posting to my personal blog again, after a long-ish hiatus.  I&#8217;ll be sticking  Puppet posts on the company blog and hopefully posting more personal posts here &#8211; things that aren&#8217;t necessarily of interest to Puppet &#8230; <a href="http://madstop.com/2010/08/01/trying-to-restart/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m hoping I can start posting to my personal blog again, after a long-ish hiatus.  I&#8217;ll be sticking  Puppet posts on the <a title="Puppet Labs Blog" href="http://www.puppetlabs.com/blog/">company blog</a> and hopefully posting more personal posts here &#8211; things that aren&#8217;t necessarily of interest to Puppet users or anyone else but at least give me a place to be someone other than the Puppet guy.</p>
<p>In the meantime but to some extent on a related note, I&#8217;m disabling all comments here.  Mostly it&#8217;s because the spammers have gotten so far ahead of the spam processors that I&#8217;ve gotten 10x spam vs comments in the last couple of years (which probably says more about my lack of commenters, but meh).  It&#8217;s also because people tend to reply on twitter or their own blogs, rather than on the actual post.</p>
<p>So, if you want to comment, drop me a line on <a href="http://twitter.com/puppetmasterd">twitter</a>.  And feel free to harass me for never posting. <img src='http://madstop.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://madstop.com/2010/08/01/trying-to-restart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Puppet on the IT Management Podcast</title>
		<link>http://madstop.com/2008/12/22/puppet-on-the-it-management-podcast/</link>
		<comments>http://madstop.com/2008/12/22/puppet-on-the-it-management-podcast/#comments</comments>
		<pubDate>Mon, 22 Dec 2008 15:46:44 +0000</pubDate>
		<dc:creator>luke</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Puppet]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[luke]]></category>
		<category><![CDATA[cote]]></category>
		<category><![CDATA[podcast]]></category>

		<guid isPermaLink="false">http://madstop.com/?p=49</guid>
		<description><![CDATA[I was a guest on last week&#8217;s IT Management Podcast again last week, and we ended up talking a lot about Puppet and the difficulties in running an open source software company.  As always, John Willis and Coté are informed &#8230; <a href="http://madstop.com/2008/12/22/puppet-on-the-it-management-podcast/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was a guest on last week&#8217;s <a href="http://www.redmonk.com/cote/2008/12/22/itmanagement030/">IT Management Podcast</a> again last week, and we ended up talking a lot about Puppet and the difficulties in running an open source software company.  As always, <a href="http://www.johnmwillis.com/">John Willis</a> and <a href="http://www.redmonk.com/cote/">Coté</a> are informed and interesting.  Give it a listen, and maybe subscribe to the whole series.</p>
]]></content:encoded>
			<wfw:commentRss>http://madstop.com/2008/12/22/puppet-on-the-it-management-podcast/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>iPhone thoughts so far</title>
		<link>http://madstop.com/2008/12/06/iphone-thoughts-so-far/</link>
		<comments>http://madstop.com/2008/12/06/iphone-thoughts-so-far/#comments</comments>
		<pubDate>Sat, 06 Dec 2008 07:59:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[luke]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[commentary]]></category>
		<category><![CDATA[g1]]></category>
		<category><![CDATA[hater]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://madstop.com/?p=42</guid>
		<description><![CDATA[Yes, I know, I owe you the third and final Puppet history post, and I&#8217;ve got a few other posts brewing in there, but, well, I just can&#8217;t seem to muster up the energy in the hour or two between &#8230; <a href="http://madstop.com/2008/12/06/iphone-thoughts-so-far/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Yes, I know, I owe you the third and final Puppet history post, and I&#8217;ve got a few other posts brewing in there, but, well, I just can&#8217;t seem to muster up the energy in the hour or two between the girls going to sleep and my own descent into fearful (of waking babies) slumber.</p>
<p>I&#8217;ve now had my iPhone for a bit over two weeks, and it seems to be easier to write about others&#8217; gadgets than my own software, so here&#8217;s a bit about this one.  Note that this isn&#8217;t an attempt at a structured review &#8212; it&#8217;s a conversational, &#8220;luke hates stuff&#8221; review.  I do a much better version in person, so feel free to corner me at the next conference.</p>
<p>Overall, I think I made the right decision.  The momentum (and thus the developers, the apps, etc.) is clearly behind the iPhone, but more importantly, my wife can easily use hers while nursing, or sitting with sleeping babies, which turns out to be really important.  The fact that the iPhone never requires two hands is critical for her.</p>
<p>See, I think the g1 was actually a better option for me, but the iPhone is a dramatically better option for her, and my geek snobbery loses out to her practicality.  It&#8217;s also true that the device itself is much better &#8212; I can comfortably put it in my pocket, and I find that the soft keyboard is just as good as the g1&#8242;s physical keyboard.  And all of you crackberry addicts whining about two-thumbed typing, I do it all the time on my iphone and I&#8217;m about 10x faster that way, probably about as fast as I was on the g1.</p>
<p>That being said, my main conclusion about the iphone is, &#8220;welcome to 1987&#8243;. That&#8217;s the last year you couldn&#8217;t run multiple apps at the same time on the Mac, and this is one of the two main things that sticks out about the iphone for me.  That, and the modal notification dialogs.</p>
<p>For those who didn&#8217;t suffer through MacOS 7.x and earlier, modal dialogs require your attention and will not go away or let you do anything else until you deal with them.  And they suck, horribly.  There&#8217;s absolutely no excuse for them in a modern operating system, and yet&#8230;</p>
<p>Here, on the iPhone, we have an OS that can&#8217;t run multiple apps at the same time, and if I get a text message while I&#8217;m working, I can&#8217;t do a damn thing until I deal with the text.  These, combined with the lack of any real task switching (&#8220;it&#8217;s easy &#8211; press home to start all over again!&#8221;), mean that you&#8217;re pretty much back in the 80s computing experience, except with a touchscreen and the interwebs.</p>
<p>Obviously I&#8217;m exaggerating, but it really is ironic that Apple going to have to relearn the MultiFinder and modal dialog lessons all over again.  I&#8217;m sorry, this push thing just won&#8217;t work &#8212; even if the technology works, and the devs adopt it, and it scales for ten million poorly written iphone apps, you still have the modal notification dialogs to deal with.</p>
<p>The g1 had this completely licked &#8212; it had a single notification space, and you had both non-modal notifications, and something like builtin task-switching because you could go from the different notifications straight to the correct app.  Oh, and you could hold down the home key to get a list of the most recent six apps.  Crappy task switching, but task switching nonetheless.  Whereas the iPhone just says, &#8220;hit the home key!&#8221;</p>
<p>For those of you saying, &#8220;oh, well, sure, maybe for *some* people, but that doesn&#8217;t matter to me!&#8221;, I have a relatively normal scenario for you.  I went for a bike ride the other day, and I chose to involve two apps:  I was listening to podcasts, and I was using TrackThing to track my bike ride.  Unfortunately, my podcast was 50 minutes, and my ride was an hour and a half.  Thus, partway through the ride, my soundtrack ends, and I have to switch apps.  Because TrackThing is stupid, I thus lose my current ride state.  Actually, in retrospect, I don&#8217;t think the state was gone, I think it just looked like it, because it used a stupid snapshot as its startup screen, implying there was no data.  The point is, something changes and you have to switch apps, and most of the time you really do have to switch apps, and now you&#8217;re stuck.  Especially since one of the favorite techniques to get you to pay for an app is to provide storage in the paid version.</p>
<p>But I have a simpler example of how the lack of background apps and the lack of non-modal dialogs suck:  Instant messaging.  I was an IMing fool on my G1 &#8212; it was almost justification for the phone by itself.  But I can&#8217;t use IM at all on my iphone, because none of the apps can run in the background.  And imagine what life would look like if they could:  You&#8217;d constantly be being interrupted, being forced to deal with each new IM.  This problem is exactly why Growl on the Mac is so great:  Passive notification but no need to act immediately.</p>
<p>The lack of backgrounding  means that the *only* option for IM is a solution from Apple.  There&#8217;s just no way anyone else can provide anywhere near a sufficient solution.  Sure, I can use Meebo or Palringo, which will keep me logged in for a few minutes, but I&#8217;ll have to continually switch out of my current app to the IM app (going back to home, then the IM app) to see if there are replies or whatever.  Useless.</p>
<p>And the worst thing is, even if Apple does provide a great IM app, it&#8217;ll still suck because of the modal notifications.  If I&#8217;m writing an email or reading an article, I don&#8217;t want to deal with the IM that second &#8212; I want to deal with it in a couple of minutes, when I&#8217;m ready.  This is exactly how we&#8217;ve all learned to do IM by now, but you can tell the iPhone will never allow it.</p>
<p>And for those of you saying, &#8220;oh, well, I don&#8217;t use two apps in the same day, and I don&#8217;t use IM&#8221;, then suck it, because you also can&#8217;t use Facebook or Twitter or whatever.  Or rather, you can, but you can only use one of them, else you&#8217;ll constantly be rotating around each of these apps.  I have this list of applications that I just open periodically on my iphone to see if anything new is happening, because they can&#8217;t notify me.  And for the record, Mail isn&#8217;t one of them &#8212; I actually don&#8217;t want push email, but I need push IM, and I wouldn&#8217;t mind some forms of push Twitter and Facebook.</p>
<p>And for those of you saying, &#8220;Oh, I use SMS instead of IM&#8221;, please, make a single friend in another country, and you&#8217;ll be so busy in the second job you&#8217;ll need to pay for the text messages that we won&#8217;t have to listen to your silliness.</p>
<p>Now that I&#8217;ve gotten past the really annoying, in your face, this-is-stupid part of the review, let&#8217;s cover a couple of other bits.  First, there are some great things about it.  The touchscreen, and the keyboard, are great.  It&#8217;s a device I constantly want to use, want to find a use for.</p>
<p>The app store has clearly inspired people and companies to make apps they wouldn&#8217;t have made for any other phone, and it&#8217;s very clear that plenty of people are making real money on the apps, which is a great thing.  I think Apple&#8217;s store and the dev community around it are 90% of what&#8217;s great about the iPhone vs. the g1 (the device itself being the other 10%, but that hopefully won&#8217;t hold up as more Android phones get released).</p>
<p>I&#8217;m a bit shocked how few apps deal with both landscape and portrait mode, and especially shocked that the Home screen doesn&#8217;t.  In retrospect, the g1 apps, including the main screen, were surprisingly good at this.</p>
<p>I really like how few buttons the iphone has.  I like the lock button, the volume buttons, and I *love* the silence switch.  Love it.  And I love that the touchscreen is used for everything.  Except&#8230;</p>
<p>Why aren&#8217;t there more interesting gestures used on the iPhone?  Can you even name a single gesture used other than the flick used to switch albums in the iPod or whatever?  Why can&#8217;t I use gestures to authenticate?  Why aren&#8217;t there other gestures (e.g., ones with more than one direction) available for things like app shortcuts, app switching, phone speed dials, or whatever?  While Apple is making steady progress in the things you can do with their trackpads (albeit still annoyingly focused on straight lines), the gestures available on the iPhone seem to match their absolute earliest efforts with trackpads.</p>
<p>And that&#8217;s mostly it; that&#8217;s been my iPhone experience so far.  This may seem like an unnecessarily negative review.  To some extent, that&#8217;s true &#8212; I&#8217;m a hater and always have been.  But at the same time, my stupid Razr four years ago did AIM pretty damn well and it was a total piece of crap (although notifications *were* modal).</p>
<p>To top it all off, literally ever person I&#8217;ve ever asked has said that I absolutely must have a case on my iPhone (one Apple employee even implied a case would help me fraudulently convince Apple to replace my iPhone if I broke it), yet the iPhone 3g dock won&#8217;t work with any case.  Oh, and it would cost me $100 to have a dock that I can plug into the wall ($30 each for the dock and power, $20 for the cable).  Considering that the iPhone must be charged every night, this is almost a necessary investment for each of our phones, so my wife and I can easily charge while we sleep.  Crazy.</p>
<p>So, we&#8217;ve got a phone that is absolutely ground breaking, sets a completely new interface standard, is a great device.  And it constantly pisses me off for being not quite there, and it&#8217;s especially bad because it brings back all the horrors of really early operating systems.  Remember how much you loved having computers that couldn&#8217;t do symmetric multiprocessing?  Yeah, me neither.</p>
]]></content:encoded>
			<wfw:commentRss>http://madstop.com/2008/12/06/iphone-thoughts-so-far/feed/</wfw:commentRss>
		<slash:comments>38</slash:comments>
		</item>
		<item>
		<title>In Praise of Snobbery</title>
		<link>http://madstop.com/2008/11/18/in-praise-of-snobbery/</link>
		<comments>http://madstop.com/2008/11/18/in-praise-of-snobbery/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 16:39:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[luke]]></category>
		<category><![CDATA[boingboing]]></category>
		<category><![CDATA[gadget]]></category>
		<category><![CDATA[me]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[stuff]]></category>

		<guid isPermaLink="false">http://madstop.com/?p=40</guid>
		<description><![CDATA[I&#8217;m all kinds of snob:  Bike snob, beer snob, whisky snob, shoe snob, pants snob (yes, pants), and much more.  I get called this by friends and family because nearly everything I own I&#8217;m particular about &#8212; I don&#8217;t just &#8230; <a href="http://madstop.com/2008/11/18/in-praise-of-snobbery/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m all kinds of snob:  Bike snob, beer snob, whisky snob, shoe snob, pants snob (yes, pants), and much more.  I get called this by friends and family because nearly everything I own I&#8217;m particular about &#8212; I don&#8217;t just buy or wear stuff, I spend too much time researching, deeply assess a purchased object, and then return (or give away, if necessary) those I don&#8217;t like.</p>
<p>Really, I usually preempt people by calling myself a snob, because I think it&#8217;s silly to be anything else.  Why own something you don&#8217;t care about?  You&#8217;ve got to wear a given amount of clothing, use a computer a given amount of time, own a given amount of dishes and furniture and stuff &#8212; why not surround yourself with things you actually like and prefer, rather than just settling for whatever crap wanders along?</p>
<p>Of course, this isn&#8217;t entirely feasible &#8212; I have plenty of bookshelves I don&#8217;t really care for, but my spending priorities don&#8217;t currently including spending a bunch of money on replacements, for example.  But certainly, all things being equal, care about what you buy and use.  Be a snob.</p>
<p>I was considering blogging this anyway, because it gives me a reason for writing a bit of a gadget blog &#8212; not specifically gadget, but review-oriented.  Obviously I&#8217;m not going to switch to all reviews all the time, but my research is thorough enough and (according to friends) my reviews are humourous enough that I figure it&#8217;s worth writing some of these things down.  Given I was already thinking of this, I was happy to see (via <a href="http://www.boingboing.net/2008/11/18/viridianisms-last-no.html">BoingBoing</a>) that Bruce Sterling <a href="http://craphound.com/lastviridian.txt">agrees</a>:</p>
<blockquote>
<pre>It's not  bad to own fine things that you like.  What you need are things that
you GENUINELY like.  Things that you cherish, that enhance your existence in the
world.  The rest is dross.

Do not "economize."  Please.  That is not the point.  The economy is clearly
insane.  Even its champions are terrified by it now.  It's melting the North
Pole.  So "economization" is not your friend.  Cheapness can be value-less.
Voluntary simplicity is, furthermore, boring.  Less can become too much work.

The items that you use incessantly, the items you employ every day, the normal,
boring goods that don't seem luxurious or romantic: these are the critical ones.
 They are truly central.  The everyday object is the monarch of all objects.
It's in your time most, it's in your space most. It is "where it is at," and it
is "what is going on."</pre>
</blockquote>
<p>I completely agree.</p>
<p>So, you may see a few more reviews here than you might expect from a sysadmin blog, but hopefully you&#8217;ll find them useful and entertaining; and if not, you can always just call me a <a href="https://www.smartwool.com/default.cfm">sock snob</a> at the next conference. <img src='http://madstop.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://madstop.com/2008/11/18/in-praise-of-snobbery/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>A short history of Puppet, pt.1</title>
		<link>http://madstop.com/2008/11/01/a-short-history-of-puppet-pt1/</link>
		<comments>http://madstop.com/2008/11/01/a-short-history-of-puppet-pt1/#comments</comments>
		<pubDate>Sat, 01 Nov 2008 02:37:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Puppet]]></category>
		<category><![CDATA[luke]]></category>
		<category><![CDATA[cfengine]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[isconf]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://madstop.com/?p=25</guid>
		<description><![CDATA[I was asked recently for more information on Puppet&#8217;s history, and although it seems to me that I&#8217;ve talked about it plenty,  I guess I might not have written it all out, nor is it necessarily all in one place.  &#8230; <a href="http://madstop.com/2008/11/01/a-short-history-of-puppet-pt1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was asked recently for more information on Puppet&#8217;s history, and although it seems to me that I&#8217;ve talked about it plenty,  I guess I might not have written it all out, nor is it necessarily all in one place.  I&#8217;m relatively verbose, so this looks like it will be long enough to break into multiple parts.</p>
<h3>ISconf</h3>
<p>Puppet was heavily influenced by two tools, but almost more importantly, it was heavily influenced by what I couldn&#8217;t do with those tools.  I attended LISA in 2001, where I saw <a href="http://www.stevegt.com/">Steve Traugott</a> give his talk on automating infrastructures.  I was impressed enough that I convinced my then-company to bring him in for a week of consulting.  During that week, he convinced me to give a tool he&#8217;d written, <a href="http://isconf.org">ISconf</a>, a try.</p>
<p>ISconf is an insanely simple tool &#8212; it&#8217;s just a way to apply a set of make stanzas in the same order every time.  Steve&#8217;s theory was that the only way to get consistency from your computers was to do exactly the same thing on them every time.  So, he wrote up everything he did as a make stanza, and then built ISconf as a way of executing them in a consistent order.</p>
<p>Or at least, that was the theory.  When I got his code for ISconf, it was, em, not terribly usable.  It was written in shell and perl, with shell calling perl calling shell calling shell calling perl then exploding.  I had already bought into the basic theory, but I couldn&#8217;t see how to his code (which he was calling ISconf 2), so I rewrote it with some pretty significantly different functionality but following, as closely as possible, his basic theory.  Naturally, I called this ISconf 3.  On the ISconf web site, you can read more of this history, along with Steve&#8217;s relatively bitter version of how this portion of the history goes. (Incidentally, I wrote the majority of the content on that site.)</p>
<p>I won&#8217;t go into the detail of how it worked, except that all of the actual work happened with make stanzas.  This meant that, really, ISconf was a huge collection of very small shell scripts. This seems straightforward, until you start thinking about things like package installation &#8212; the command to install one package is almost the same as that to install a different package, which meant that a lot of my make stanzas had a lot of duplication.</p>
<p>To make my life easier, I started abusing the hell out of make, switching to gmake, and starting to make simple rules using &#8216;%&#8217; to avoid duplication:</p>
<pre>pkg/%:
...</pre>
<p>I can&#8217;t even remember how this worked, thankfully; I just know you can extract what the &#8216;%&#8217; matches and use it to choose the package name when installing a package.</p>
<p>This worked great for packages, since in most cases (and all the cases I was dealing with), you can easily specify a package by name.  It didn&#8217;t work so well for things like cron jobs, though &#8212; you&#8217;ve got between 1 and 6 fields, and the last field can have spaces and all manner of crap.  So, I started maintaining a separate file of all of these cron jobs, written in a perl Data::Dumper format, with each cron job having a unique name.  Then my make stanza would just refer to the arbitrary name I&#8217;d chosen.</p>
<p>This at least made ISconf more usable, but there were still a lot of problems.  You can read my writeup from around then in my <a href="http://www.usenix.org/events/lisa03/tech/full_papers/kanies/kanies.pdf">LISA paper</a>, but there were some serious problems with using ISconf.  First and foremost, it wasn&#8217;t a real solution &#8212; it was just a way to organize billions of little shell scripts, and as most anyone knows by now, I&#8217;m not so fond of shell scripts.  Also, the whole theory was bogus &#8212; there&#8217;s just no way you can guarantee consistency, not through order or any other mechanism.  Your dev servers and test servers can never be exactly the same, so stupidly replaying the same scripts in order also can&#8217;t guarantee sameness.  As a ridiculous example, I&#8217;ve seen printers that don&#8217;t work if their hostnames have an odd number of characters, and there&#8217;s just no way you can test this kind of case.</p>
<p>Beyond the theoretical problems, though, there were even worse practical issues.  You were <em>supposed</em> to never touch any code once it&#8217;d been deployed to a machine, because otherwise you couldn&#8217;t guarantee consistent behaviour, but this is just silly, because it means that you can never refactor code or change how you manage a given aspect of your system.  Imagine a solution that required immediate calcification of anything you ever did &#8212; once you deploy it, it&#8217;s deployed like that forever, even if it&#8217;s stupid.  No reason to learn; even worse, you get punished for learning, because you just add a new system to maintain every time you learn anything.</p>
<p>So, I wanted the ability to refactor my solutions, and ISconf couldn&#8217;t deliver that, so I started looking for something else that could.  Check back for part 2 to see what I did next. <img src='http://madstop.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://madstop.com/2008/11/01/a-short-history-of-puppet-pt1/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Project vs. Company (and a bit of me)</title>
		<link>http://madstop.com/2008/10/22/project-vs-company-and-a-bit-of-me/</link>
		<comments>http://madstop.com/2008/10/22/project-vs-company-and-a-bit-of-me/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 18:01:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Puppet]]></category>
		<category><![CDATA[luke]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[me]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[oss]]></category>
		<category><![CDATA[startup]]></category>

		<guid isPermaLink="false">http://madstop.com/?p=21</guid>
		<description><![CDATA[Strangely, I've heard complaints that I'm focusing too much on the company and not enough on the project, and as a result the product is suffering.  I find this strange because the project doesn't pay my bills, feed my children, or buy my beer, the company does, and without those things, the project itself couldn't exist.  If, instead, I had taken some corporate sysadmin job, I'd have been spending maybe 5-10 hours a week on Puppet, instead of between 10 and 60 hours a week like I've been doing for the last three and a half years.  This, I think, is the thing that people tend to forget about open source -- yes, you can make money doing open source, but in doing so you almost always put yourself in conflict between making money and writing code.  <a href="http://madstop.com/2008/10/22/project-vs-company-and-a-bit-of-me/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One of the constant struggles in trying to build a company to build an open source project is finding the right balance between the two.  For a company as small as Reductive Labs, and as closely tied with me as it is, there&#8217;s the further struggle of finding a balance between the company, the project, and me.  This isn&#8217;t a post with answers, nor, in retrospect, is it a terribly organized post; it&#8217;s just an attempt to lay out something I think a lot about, and something I expect the Puppet community has a lot of questions about.  This is one of many topics that&#8217;s always bouncing around in my head but that I can&#8217;t seem to find a way to talk about, so this post is really just an opening salvo, something that I hope will break the writer&#8217;s block.</p>
<p>One thing some people apparently don&#8217;t realize is that Puppet couldn&#8217;t have been created without Reductive Labs &#8212; there&#8217;s no way I would have had the time or motivation to create Puppet without a company devoted to funding its development.  All of the money that Reductive Labs makes goes back into funding Puppet, mostly in the form of development, marketing, and community management (although less of the latter, recently).  Almost all of the money I spend on marketing is in the form of conference speaking, so don&#8217;t think I&#8217;m spending big coin on TV spots or anything, but these conferences have been *huge* sources of community growth.</p>
<p>Strangely, I&#8217;ve heard complaints that I&#8217;m focusing too much on the company and not enough on the project, and as a result the product is suffering.  I find this strange because the project doesn&#8217;t pay my bills, feed my children, or buy my beer, the company does, and without those things, the project itself couldn&#8217;t exist.  If, instead, I had taken some corporate sysadmin job, I&#8217;d have been spending maybe 5-10 hours a week on Puppet, instead of between 10 and 60 hours a week like I&#8217;ve been doing for the last three and a half years.  This, I think, is the thing that people tend to forget about open source &#8212; yes, you can make money doing open source, but in doing so you almost always put yourself in conflict between making money and writing code.</p>
<p>The key is that Reductive Labs doesn&#8217;t make money when I write Puppet code, it makes money by helping people with existing code; yet, my business model is based on plowing that money into writing code, on the assumption that the code will make the product better, increasing the market, and hopefully allowing both project and company to grow.</p>
<p>This gets especially complicated when my own goals show up.  I&#8217;ve always seen Puppet as the first step toward building a significantly enhanced toolchain for system administration, and it was always my goal to use Puppet as a launchpad to having Reductive Labs fund other great projects.  (This phrasing is important &#8212; I need to make money to do development full time, so Reductive Labs (currently) needs to make money to fund that development.)  This is why I&#8217;ve always resisted billing us as &#8220;the Puppet company&#8221; &#8212; I don&#8217;t want to be pigeonholed in the event we have other successes, which I hope we will.</p>
<p>These longer-term goals are also why I&#8217;ve avoided joining other companies and just doing part-time development on Puppet for them.  Leaving aside that none of them would have considered hiring me until I&#8217;d already had significant success with Puppet (which puts us in a strange Catch-22, where they&#8217;d only offer to hire me once I&#8217;d shown I didn&#8217;t need their help), no one has ever expressed an interest in hiring me to build a product group, which is what I&#8217;m trying to do here.</p>
<p>Going back to finding that balance, one of the things I&#8217;ve foolishly allowed myself to do in the last year is get too caught up in fixing bugs, rather than adding functionality or doing interesting refactoring.  It&#8217;s amazing how disheartening and depressing it is to spend all of your days fixing bugs in code you wrote, all the while struggling to make enough money to pay people to help you fix those bugs.  Having more people at the company has helped bring focus to my efforts and those of the company as a whole, and having many more people involved in the project has helped bring focus to the needs of the project.</p>
<p>I think that&#8217;s about all I have to say on the subject right now &#8212; a presentation of the problem, a statement of the status quo, and a wandering finish.  Now that I&#8217;ve introduced the topic, though, I hope to be able to post more lucidly and usefully about it in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://madstop.com/2008/10/22/project-vs-company-and-a-bit-of-me/feed/</wfw:commentRss>
		<slash:comments>56</slash:comments>
		</item>
		<item>
		<title>A Short Update</title>
		<link>http://madstop.com/2008/10/17/a-short-update/</link>
		<comments>http://madstop.com/2008/10/17/a-short-update/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 03:15:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Puppet]]></category>
		<category><![CDATA[luke]]></category>

		<guid isPermaLink="false">http://madstop.com/?p=12</guid>
		<description><![CDATA[There&#8217;s no way to catch up for the last four months or so of not posting at all, so I&#8217;m not really going to try.  Instead I&#8217;ll just introduce a few of the topics that are taking my brain space, &#8230; <a href="http://madstop.com/2008/10/17/a-short-update/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s no way to catch up for the last four months or so of not posting at all, so I&#8217;m not really going to try.  Instead I&#8217;ll just introduce a few of the topics that are taking my brain space, and hopefully they&#8217;ll be the impetus to my writing more focused posts later.</p>
<p>Generally, of course, I&#8217;m basically split between trying to build my company and trying to maintain Puppet.  It&#8217;s an interesting struggle, because the company exists to support Puppet, and Puppet exists because of how I&#8217;ve been able to fund its development through the company.  I don&#8217;t think this struggle is ever going to go away, and it&#8217;s going to get even more interesting as I do other projects.</p>
<p>The company is going pretty well &#8212; we&#8217;ve get three employees (me, <a href="http://kopacetic.net/">Teyo</a>, and <a href="http://stochasticresonance.wordpress.com/">Andrew</a>), and we&#8217;re apparently managing to get paid enough to make it through.  We are providing support, consulting, training, and some custom development, all focused on Puppet and how best to use it.</p>
<p>The product, however, is doing even better.  Its popularity seems to be <a href="http://puppet.markmail.org/">exploding</a>, and just in the last few months we&#8217;re getting a ton of developer contributions.  Every week I hear from a company looking for employees with Puppet expertise, and I now rarely meet people who are in the industry and haven&#8217;t heard of Puppet.</p>
<p>We&#8217;ll be releasing 0.24.6 in the next week or so, and even though it&#8217;s only been three months since the last release, this one is looking to be a really large release with a bunch of new bug fixes but even more new functionality.  We&#8217;re also making good progress on the mythical 0.25 release &#8212; all of the necessary plumbing is done, and it actually seems likely that it&#8217;ll be out this year.  Then we&#8217;ll just have to struggle with maintaining stable and dev releases at the same time, which will be an interesting challenge.</p>
<p>Ok, that&#8217;s our short update.  Now I&#8217;m just going to act like I&#8217;ve been posting frequently for a while, and I&#8217;ll just post what I can, when I can.  One thing I&#8217;ve decided to do is to more clearly make this &#8220;my&#8221; blog as opposed to the &#8220;Puppet&#8221; blog.  This means I&#8217;m going to try to talk more about my other interests, like random technology, <a href="http://flickr.com/photos/lkanies/tags/bicycle">cycling</a>, entrepreneurship, and other stuff.</p>
<p>Talk to you soon, hopefully.</p>
]]></content:encoded>
			<wfw:commentRss>http://madstop.com/2008/10/17/a-short-update/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Luke lives!</title>
		<link>http://madstop.com/2008/10/13/luke-lives/</link>
		<comments>http://madstop.com/2008/10/13/luke-lives/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 23:51:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[luke]]></category>
		<category><![CDATA[blog]]></category>

		<guid isPermaLink="false">http://madstop.com/?p=7</guid>
		<description><![CDATA[Yes, I&#8217;ve finally posted again, as unlikely as that seems. My blog has been in need of transitioning for the last few months (it was being hosted by Spike and he needed the server back), and it&#8217;s taken me this &#8230; <a href="http://madstop.com/2008/10/13/luke-lives/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Yes, I&#8217;ve finally posted again, as unlikely as that seems.</p>
<p>My blog has been in need of transitioning for the last few months (it was being hosted by <a href="http://www.spikelab.org/blog">Spike</a> and he needed the server back), and it&#8217;s taken me this long to get my act together (although I&#8217;ve been a bit <a href="http://flickr.com/photos/lkanies/tags/twins/">busy</a> in the mean time).</p>
<p>I&#8217;ll hopefully be posting more often again, and I also hope to play with the many widgets available for WordPress, so you might find a bit more context available now.</p>
]]></content:encoded>
			<wfw:commentRss>http://madstop.com/2008/10/13/luke-lives/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>
