<?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"
	>

<channel>
	<title>sterlinganderson.net</title>
	<atom:link href="http://sterlinganderson.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://sterlinganderson.net</link>
	<description>you probably got here by mistake. seriously.</description>
	<pubDate>Tue, 04 Nov 2008 19:58:37 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<item>
		<title>Halloween 2008</title>
		<link>http://sterlinganderson.net/2008/11/halloween-2008/</link>
		<comments>http://sterlinganderson.net/2008/11/halloween-2008/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 19:58:37 +0000</pubDate>
		<dc:creator>sterling</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<category><![CDATA[halloween]]></category>

		<category><![CDATA[Holiday]]></category>

		<category><![CDATA[jack]]></category>

		<category><![CDATA[kids]]></category>

		<category><![CDATA[noah]]></category>

		<guid isPermaLink="false">http://sterlinganderson.net/?p=310</guid>
		<description><![CDATA[We had a good Halloween this year. Sarah and Noah found a great costume idea for Noah and Jack online. They went as stick people! When outside trick or treating they looked amazing, and got lots of compliments.
We carved pumpkins a few days before Halloween. Amazingly, I got home from work and Sarah and the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://sterlinganderson.net/wordpress/wp-content/uploads/2008/11/img_0014_3.jpg" ><img src="http://sterlinganderson.net/wordpress/wp-content/uploads/2008/11/img_0014_3-75x75.jpg" alt="" title="Stick People" width="75" height="75" class="alignleft size-thumbnail wp-image-311" /></a>We had a good Halloween this year. Sarah and Noah found a great costume idea for Noah and Jack online. They went as stick people! When outside trick or treating they looked amazing, and got lots of compliments.</p>
<p>We carved pumpkins a few days before Halloween. Amazingly, I got home from work and Sarah and the kids had already cleaned them out. The messy work was done. I helped Jack carve his pumpkin, and this year Noah carved her pumpkin completely on her own. She did a great job too.</p>
<p><a href="http://sterlinganderson.net/wordpress/wp-content/uploads/2008/11/the-jack-o-lanterns.jpg" ><img src="http://sterlinganderson.net/wordpress/wp-content/uploads/2008/11/the-jack-o-lanterns-75x75.jpg" alt="the-jack-o-lanterns" width="75" height="75" class="alignleft size-thumbnail wp-image-312" /></a><a href="http://sterlinganderson.net/wordpress/wp-content/uploads/2008/11/noahs-jack-o-lantern.jpg" ><img src="http://sterlinganderson.net/wordpress/wp-content/uploads/2008/11/noahs-jack-o-lantern-75x75.jpg" alt="noahs-jack-o-lantern" width="75" height="75" class="alignleft size-thumbnail wp-image-313" /></a><a href="http://sterlinganderson.net/wordpress/wp-content/uploads/2008/11/jacks-jack-o-lantern.jpg" ><img src="http://sterlinganderson.net/wordpress/wp-content/uploads/2008/11/jacks-jack-o-lantern-75x75.jpg" alt="" title="jacks-jack-o-lantern" width="75" height="75" class="alignleft size-thumbnail wp-image-315" /></a><a href="http://sterlinganderson.net/wordpress/wp-content/uploads/2008/11/jack-o-lantern.jpg" ><img src="http://sterlinganderson.net/wordpress/wp-content/uploads/2008/11/jack-o-lantern-75x75.jpg" alt="jack-o-lantern" width="75" height="75" class="alignleft size-thumbnail wp-image-314" /></a>
<div style="clear:both">&nbsp;</div>
<p>We went to my parents, had some pizza, and played with the kids&#8217; cousins for a while in the late afternoon. We then decided to do our trick or treating at Grandma and Grandpa&#8217;s this year. Noah and Jack had fun with their cousins, it was a good time. Now though we have most of our candy that we were going to hand out left. This is good and bad. I have a weakness for candy, but also need to trim the gut a bit.</p>
<p>Overall a great holiday.</p>
]]></content:encoded>
			<wfw:commentRss>http://sterlinganderson.net/2008/11/halloween-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Fun Diversion - Zombie in My Pocket</title>
		<link>http://sterlinganderson.net/2008/10/fun-diversion-zombie-in-my-pocket/</link>
		<comments>http://sterlinganderson.net/2008/10/fun-diversion-zombie-in-my-pocket/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 14:51:11 +0000</pubDate>
		<dc:creator>sterling</dc:creator>
		
		<category><![CDATA[Entertainment]]></category>

		<category><![CDATA[fun]]></category>

		<category><![CDATA[gaming]]></category>

		<category><![CDATA[halloween]]></category>

		<category><![CDATA[horror]]></category>

		<category><![CDATA[zombies]]></category>

		<guid isPermaLink="false">http://sterlinganderson.net/?p=308</guid>
		<description><![CDATA[Zombie in My Pocket is a game mentioned in the Halloween Gaming, Part 1: Zombies post I linked to in my last post. I wanted to post quick about this game since I got a chance to try it out.
Zombie in My Pocket is free, you just download and print out a PDF file. After [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.boardgamegeek.com/game/33468" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.boardgamegeek.com');">Zombie in My Pocket</a> is a game mentioned in the <a href="http://www.defectiveyeti.com/archives/002599.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.defectiveyeti.com');">Halloween Gaming, Part 1: Zombies</a> post I linked to in my last post. I wanted to post quick about this game since I got a chance to try it out.</p>
<p><a href="http://www.boardgamegeek.com/game/33468" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.boardgamegeek.com');">Zombie in My Pocket</a> is free, you just download and print out a PDF file. After you cut out the pieces (best to use cardstock, but I just used regular printer paper) you are ready to go. It&#8217;s a great solitaire game. A session only takes 5-15 minutes, and it is really easy to learn. If you need a little diversion from time to time do yourself a favor and print out a copy of <a href="http://www.boardgamegeek.com/game/33468" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.boardgamegeek.com');">Zombie in My Pocket</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sterlinganderson.net/2008/10/fun-diversion-zombie-in-my-pocket/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Halloween Games</title>
		<link>http://sterlinganderson.net/2008/09/halloween-games/</link>
		<comments>http://sterlinganderson.net/2008/09/halloween-games/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 17:48:22 +0000</pubDate>
		<dc:creator>sterling</dc:creator>
		
		<category><![CDATA[Entertainment]]></category>

		<category><![CDATA[Holiday]]></category>

		<category><![CDATA[gaming]]></category>

		<category><![CDATA[halloween]]></category>

		<category><![CDATA[horror]]></category>

		<category><![CDATA[vampires]]></category>

		<category><![CDATA[zombies]]></category>

		<guid isPermaLink="false">http://sterlinganderson.net/?p=299</guid>
		<description><![CDATA[The Make: Blog linked to a series of excellent posts on Halloween games by Defective Yeti. I&#8217;ve played a couple of these, but my list of games to try has just increased after reading these.

Halloween Gaming, Part I: Zombies
Halloween Gaming, Part II: Vampires and Witches
Halloween Gaming, Part III: Miscellaneous Malevolence

Board games, and to a lesser [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://blog.makezine.com/archive/2008/09/halloween_games_braaaaiii.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/blog.makezine.com');">Make: Blog linked</a> to a series of excellent posts on Halloween games by <a href="http://www.defectiveyeti.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.defectiveyeti.com');">Defective Yeti</a>. I&#8217;ve played a couple of these, but my list of games to try has just increased after reading these.</p>
<ol>
<li><a href="http://www.defectiveyeti.com/archives/002599.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.defectiveyeti.com');">Halloween Gaming, Part I: Zombies</a></li>
<li><a href="http://www.defectiveyeti.com/archives/002602.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.defectiveyeti.com');">Halloween Gaming, Part II: Vampires and Witches</a></li>
<li><a href="http://www.defectiveyeti.com/archives/002603.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.defectiveyeti.com');">Halloween Gaming, Part III: Miscellaneous Malevolence</a></li>
</ol>
<p>Board games, and to a lesser extent card games, are two things my wife and I really enjoy playing together. When they get a little out there in the realm of the fantastic she tends to get a little turned off, but I may need to pick up a zombie or vampire game and see how we like it.</p>
]]></content:encoded>
			<wfw:commentRss>http://sterlinganderson.net/2008/09/halloween-games/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Zombies Are Back!</title>
		<link>http://sterlinganderson.net/2008/09/the-zombies-are-back/</link>
		<comments>http://sterlinganderson.net/2008/09/the-zombies-are-back/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 20:59:37 +0000</pubDate>
		<dc:creator>sterling</dc:creator>
		
		<category><![CDATA[Entertainment]]></category>

		<category><![CDATA[comedy]]></category>

		<category><![CDATA[horror]]></category>

		<category><![CDATA[movies]]></category>

		<category><![CDATA[zombies]]></category>

		<guid isPermaLink="false">http://sterlinganderson.net/?p=295</guid>
		<description><![CDATA[I wrote a post back in March about a couple zombie books I had read. I figure it is time for more zombies, especially since we are getting close to the Halloween season. That, and I watched Night of the Living Dead on my iPhone this week while eating lunch over the course of a [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote a post <a href="http://sterlinganderson.net/2008/03/zombies/" >back in March</a> about a couple zombie books I had read. I figure it is time for more zombies, especially since we are getting close to the Halloween season. That, and I watched Night of the Living Dead on my iPhone this week while eating lunch over the course of a few days.</p>
<p><a href="http://www.amazon.com/Night-Living-Millennium-Chilly-Cardille/dp/B00005Y6Y2%3FSubscriptionId%3D1GYNVV2AHF4CDXVJNFG2%26tag%3Dsterlander-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB00005Y6Y2" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.amazon.com');"><img src="http://ecx.images-amazon.com/images/I/51R29C1GK7L._SL160_.jpg" class="alignleft" /></a><a name="evtst|a|B00005Y6Y2" href="http://www.amazon.com/Night-Living-Millennium-Chilly-Cardille/dp/B00005Y6Y2%3FSubscriptionId%3D1GYNVV2AHF4CDXVJNFG2%26tag%3Dsterlander-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB00005Y6Y2" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.amazon.com');">Night of the Living Dead</a> is of course the classic Zombie film. You really need to watch this movie in order to judge all the others. I don&#8217;t want to go into the plot too much if anyone would read this post and then want to see the movie. The real brief synopsis is there is a small group of people trapped in a farmhouse that is surrounded by zombies. In zombie films it&#8217;s important to keep things simple. Too often filmmakers try to get fancy and come up with a good reason why there would be zombies running around. There are zombies running around, or more often shambling around, you really don&#8217;t need to spend time on coming up with a great reason for it. Night of the Living Dead used the excuse of a spacecraft that brought back some weird radiation from Venus. There was some good news footage to establish that, but otherwise it was left alone. <a name="evtst|a|B00005Y6Y2" href="http://www.amazon.com/Night-Living-Millennium-Chilly-Cardille/dp/B00005Y6Y2%3FSubscriptionId%3D1GYNVV2AHF4CDXVJNFG2%26tag%3Dsterlander-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB00005Y6Y2" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.amazon.com');">Night of the Living Dead</a> is a classic, you should really take the time to view it.</p>
<p>After watching <a name="evtst|a|B00005Y6Y2" href="http://www.amazon.com/Night-Living-Millennium-Chilly-Cardille/dp/B00005Y6Y2%3FSubscriptionId%3D1GYNVV2AHF4CDXVJNFG2%26tag%3Dsterlander-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB00005Y6Y2" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.amazon.com');">Night of the Living Dead</a> to get a little history on zombie films, there are a couple recent films I can recommend that will probably scare you a bit more. I&#8217;m actually kind of a big baby when it comes to scary movies, my wife can confirm that for you. For some reason I still watch the damn things though. If you are like me make sure you have someone&#8217;s shoulder to bury your head into for these next two.</p>
<p><a href="http://www.amazon.com/Dawn-Dead-Widescreen-Unrated-Directors/dp/B0002ABURA%3FSubscriptionId%3D1GYNVV2AHF4CDXVJNFG2%26tag%3Dsterlander-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB0002ABURA" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.amazon.com');"><img src="http://ecx.images-amazon.com/images/I/51%2BSLdOgNDL._SL160_.jpg" class="alignright" /></a><a name="evtst|a|B0002ABURA" href="http://www.amazon.com/Dawn-Dead-Widescreen-Unrated-Directors/dp/B0002ABURA%3FSubscriptionId%3D1GYNVV2AHF4CDXVJNFG2%26tag%3Dsterlander-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB0002ABURA" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.amazon.com');">Dawn of the Dead</a> is a remake of a 1970&#8217;s film of the same name. I&#8217;ve actually never seen the original, but this was a good movie. It got going really quick and didn&#8217;t really let up. The big change in this movie, and something that seems to be happening in recent films, is that the zombies didn&#8217;t shamble around. They ran. That alone made things really edgy at times. <a name="evtst|a|B0002ABURA" href="http://www.amazon.com/Dawn-Dead-Widescreen-Unrated-Directors/dp/B0002ABURA%3FSubscriptionId%3D1GYNVV2AHF4CDXVJNFG2%26tag%3Dsterlander-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB0002ABURA" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.amazon.com');">Dawn of the Dead</a> is a great movie to watch late at night with the lights out so your imagination can take you away. Watch Night of the Living Dead before this so you can pick up on the homage to the original zombie movie.</p>
<p><a href="http://www.amazon.com/Days-Later-Widescreen-Ray-Panthaki/dp/B00005JMA8%3FSubscriptionId%3D1GYNVV2AHF4CDXVJNFG2%26tag%3Dsterlander-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB00005JMA8" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.amazon.com');"><img src="http://ecx.images-amazon.com/images/I/511KHM89SFL._SL160_.jpg" class="alignleft" /></a><a name="evtst|a|B00005JMA8" href="http://www.amazon.com/Days-Later-Widescreen-Ray-Panthaki/dp/B00005JMA8%3FSubscriptionId%3D1GYNVV2AHF4CDXVJNFG2%26tag%3Dsterlander-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB00005JMA8" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.amazon.com');">28 Days Later</a> is another pretty good zombie-like flick. I say zombie-like, because the zombies aren&#8217;t really zombies. In this movie England sees an outbreak of a &#8220;rage&#8221; virus. People are infected by coming in contact with infected blood or saliva. It&#8217;s a pretty scary premise. The infected aren&#8217;t seen very much, but when they are there is definitely tension. The movie opens with a bike messenger waking after being unconscious in the hospital for a month. He has no idea what has happened, and all he sees is an abandoned city of London. He has his first run in with the infected in a church, and luckily for him, is saved by a couple other survivors. This was another pretty good zombie flick. There is a sequel, <a name="evtst|a|B000TJBN80" href="http://www.amazon.com/Weeks-Later-Widescreen-Catherine-McCormack/dp/B000TJBN80%3FSubscriptionId%3D1GYNVV2AHF4CDXVJNFG2%26tag%3Dsterlander-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB000TJBN80" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.amazon.com');">28 Weeks Later</a>, which I have not yet seen. It is on my list though.</p>
<p><a href="http://www.amazon.com/Shaun-Dead-Kate-Ashfield/dp/B0006A9FKA%3FSubscriptionId%3D1GYNVV2AHF4CDXVJNFG2%26tag%3Dsterlander-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB0006A9FKA" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.amazon.com');"><img src="http://ecx.images-amazon.com/images/I/51K4E45MTJL._SL160_.jpg" class="alignright" /></a>I would be remiss if I didn&#8217;t mention a couple more light-hearted takes on the zombie movie phenomenon. <a name="evtst|a|B0006A9FKA" href="http://www.amazon.com/Shaun-Dead-Kate-Ashfield/dp/B0006A9FKA%3FSubscriptionId%3D1GYNVV2AHF4CDXVJNFG2%26tag%3Dsterlander-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB0006A9FKA" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.amazon.com');">Shaun of the Dead</a> is a wonderfully campy take on the zombie movie. They do a wonderful job of making a zombie apocalypse funny. Shaun is a bit of a slacker who can&#8217;t seem to do much right, but when the dead rise up he sees his chance to turn his life around.</p>
<p><a href="http://www.amazon.com/Fido-KSun-Ray/dp/B000V4UH08%3FSubscriptionId%3D1GYNVV2AHF4CDXVJNFG2%26tag%3Dsterlander-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB000V4UH08" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.amazon.com');"><img src="http://ecx.images-amazon.com/images/I/51vSUFJaE1L._SL160_.jpg" class="alignleft" /></a>Another great comic zombie movie is <a name="evtst|a|B000V4UH08" href="http://www.amazon.com/Fido-KSun-Ray/dp/B000V4UH08%3FSubscriptionId%3D1GYNVV2AHF4CDXVJNFG2%26tag%3Dsterlander-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB000V4UH08" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.amazon.com');">Fido</a>. It seems there was a great war fought after the zombies rose up, and now we all live in wonderful 1950&#8217;s era communities surrounded by scorched landscape crawling with the dead. Thanks to the people at ZomCom the upwardly mobile family can have a zombie of their own. The movie chronicles the story of Fido, one such zombie. It&#8217;s a great boy and his dog type movie, except it&#8217;s about a boy and his zombie.</p>
<p>That&#8217;s it for my second zombie post. I&#8217;ll have to read some more zombie books or watch some more movies if I&#8217;m going to keep this up. If you have any suggestions feel free to leave a comment.</p>
]]></content:encoded>
			<wfw:commentRss>http://sterlinganderson.net/2008/09/the-zombies-are-back/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Automatic Web Site Deployment with SVN and Ruby</title>
		<link>http://sterlinganderson.net/2008/09/automatic-web-site-deployment-with-svn-and-ruby/</link>
		<comments>http://sterlinganderson.net/2008/09/automatic-web-site-deployment-with-svn-and-ruby/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 21:48:05 +0000</pubDate>
		<dc:creator>sterling</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[deployment]]></category>

		<category><![CDATA[ruby]]></category>

		<category><![CDATA[svn]]></category>

		<category><![CDATA[web]]></category>

		<category><![CDATA[Website]]></category>

		<category><![CDATA[www]]></category>

		<guid isPermaLink="false">http://sterlinganderson.net/?p=280</guid>
		<description><![CDATA[I was setting up a new test server and production server for our web sites at work. I had finally persuaded my manager that we needed to mandate the use of a SCM system for the site source. I wanted to make deploying the sites drop dead simple as well. The last thing I wanted [...]]]></description>
			<content:encoded><![CDATA[<p>I was setting up a new test server and production server for our web sites at work. I had finally persuaded my manager that we needed to mandate the use of a SCM system for the site source. I wanted to make deploying the sites drop dead simple as well. The last thing I wanted was to force people to check changes into Subversion, then have them upload those changes to the test server, then when the changes are approved, upload them to the production server. Too much shifting, and too much opportunity for files to get out of sync.<br />
I created a couple Ruby scripts that sit on the test server and production server. On the test server the script checks out the latest revision of the test web sites. The script is run via a cron job, so very shortly after changes are checked in to the repository they are exported out to the version of the site running on the test server.</p>

<div class="wp_syntax"><div class="code"><pre class="ruby ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;">#!/usr/bin/env ruby</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># The path to the directory where your site folders sit</span>
web_root = <span style="color:#996600;">&quot;/path/to/document/root/&quot;</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># A hash of sites. Folder name and SVN repository name</span>
websites = <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#996600;">&quot;site_folder&quot;</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;repo_name&quot;</span>,
  <span style="color:#996600;">&quot;site2_folder&quot;</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;repo2_name&quot;</span><span style="color:#006600; font-weight:bold;">&#125;</span>
&nbsp;
websites.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> |site, repo|
  <span style="color:#008000; font-style:italic;"># First we check for a file named &quot;revision&quot; in the site</span>
  <span style="color:#008000; font-style:italic;"># folder. If that's not there we quit. This is a just in</span>
  <span style="color:#008000; font-style:italic;"># case safety measure, you have to create the revision</span>
  <span style="color:#008000; font-style:italic;"># file for the script to work. Initially it can be a file</span>
  <span style="color:#008000; font-style:italic;"># with just a single &quot;0&quot; in it (no quotes).</span>
  <span style="color:#9966CC; font-weight:bold;">if</span> <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">exist</span>?<span style="color:#006600; font-weight:bold;">&#40;</span>web_root <span style="color:#006600; font-weight:bold;">+</span> site <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#996600;">&quot;/revision&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    local_revision = <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#CC0066; font-weight:bold;">open</span><span style="color:#006600; font-weight:bold;">&#40;</span>web_root <span style="color:#006600; font-weight:bold;">+</span> site <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#996600;">&quot;/revision&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#CC0066; font-weight:bold;">gets</span>.<span style="color:#CC0066; font-weight:bold;">chomp</span>
  <span style="color:#9966CC; font-weight:bold;">else</span>
    <span style="color:#CC0066; font-weight:bold;">exit</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
  <span style="color:#008000; font-style:italic;"># Get the current revision in subversion</span>
  svn_revision = <span style="color:#996600;">`/usr/bin/svn info http://svn.server.com/#{repo}/ | grep '^Revision' | sed -e 's/Revision: *//'`</span>.<span style="color:#CC0066; font-weight:bold;">chomp</span>
  <span style="color:#008000; font-style:italic;"># The the Subversion revision is greater than the number in the revision file</span>
  <span style="color:#008000; font-style:italic;"># then we need to update the site.</span>
  <span style="color:#9966CC; font-weight:bold;">if</span> svn_revision.<span style="color:#9900CC;">to_i</span> <span style="color:#006600; font-weight:bold;">&gt;</span> local_revision.<span style="color:#9900CC;">to_i</span> <span style="color:#9966CC; font-weight:bold;">then</span>
    <span style="color:#996600;">`/usr/bin/svn export --revision #{svn_revision} --force --username USERNAME --password PASSWORD http://svn.server.com/#{repo}/trunk #{web_root}#{site}`</span>
    <span style="color:#008000; font-style:italic;"># After the export make sure the update the revision number in the revision file</span>
    <span style="color:#996600;">`echo &quot;#{svn_revision}&quot; &gt; #{web_root}#{site}/revision`</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>In order to get a site on the test server we need to create a folder for it in the web_root, add the revision file to the empty folder, set up the virtual host, and finally add the information to the websites hash in the script. I have this script running every thirty minutes on the test server. Once the site script runs the site is there. It will always be up to date, and the developer does not have to touch the test server. The most important rule you need if you are going to do things this way is don&#8217;t check broken code into Subversion. If you do then your test site will very shortly break as well.</p>
<p>The production server is pretty much the same, except I have a second file called deploy_revision that tells the script exactly what revision to check out. In production we may not always want the freshest code. Other than checking the deploy_revision file, the script on the production site is pretty much the same as the script on the test server.</p>

<div class="wp_syntax"><div class="code"><pre class="ruby ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;">#!/usr/bin/env ruby</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># The path to the directory where your site folders sit</span>
web_root = <span style="color:#996600;">&quot;/path/to/document/root/&quot;</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># A hash of sites. Folder name and SVN repository name</span>
websites = <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#996600;">&quot;site_folder&quot;</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;repo_name&quot;</span>,
  <span style="color:#996600;">&quot;site2_folder&quot;</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;repo2_name&quot;</span><span style="color:#006600; font-weight:bold;">&#125;</span>
&nbsp;
websites.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> |site, repo|
  <span style="color:#008000; font-style:italic;"># If deploy_revision file isn't there just quit.</span>
  <span style="color:#9966CC; font-weight:bold;">if</span> !<span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">exist</span>?<span style="color:#006600; font-weight:bold;">&#40;</span>web_root <span style="color:#006600; font-weight:bold;">+</span> site <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#996600;">&quot;/deploy_revision&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    <span style="color:#CC0066; font-weight:bold;">exit</span>
  <span style="color:#9966CC; font-weight:bold;">else</span>
    deploy_revision = <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#CC0066; font-weight:bold;">open</span><span style="color:#006600; font-weight:bold;">&#40;</span>web_root <span style="color:#006600; font-weight:bold;">+</span> site <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#996600;">&quot;/deploy_revision&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#CC0066; font-weight:bold;">gets</span>.<span style="color:#CC0066; font-weight:bold;">chomp</span>  
    <span style="color:#008000; font-style:italic;"># Check for the revision file, it's okay if it's not there, in that</span>
    <span style="color:#008000; font-style:italic;"># case just set the revision to 0</span>
    <span style="color:#9966CC; font-weight:bold;">if</span> <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">exist</span>?<span style="color:#006600; font-weight:bold;">&#40;</span>web_root <span style="color:#006600; font-weight:bold;">+</span> site <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#996600;">&quot;/revision&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
      local_revision = <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#CC0066; font-weight:bold;">open</span><span style="color:#006600; font-weight:bold;">&#40;</span>web_root <span style="color:#006600; font-weight:bold;">+</span> site <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#996600;">&quot;/revision&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#CC0066; font-weight:bold;">gets</span>.<span style="color:#CC0066; font-weight:bold;">chomp</span>
    <span style="color:#9966CC; font-weight:bold;">else</span>
      local_revision = 0
    <span style="color:#9966CC; font-weight:bold;">end</span>
    <span style="color:#008000; font-style:italic;"># Check the SVN revision</span>
    svn_revision = <span style="color:#996600;">`/usr/bin/svn info http://svn.server.com/#{repo}/ | grep '^Revision' | sed -e 's/Revision: *//'`</span>.<span style="color:#CC0066; font-weight:bold;">chomp</span>
    <span style="color:#008000; font-style:italic;"># if the SVN revision is less than the deployed revision quite, that's not right...</span>
    <span style="color:#9966CC; font-weight:bold;">if</span> svn_revision.<span style="color:#9900CC;">to_i</span> <span style="color:#006600; font-weight:bold;">&lt;</span> deploy_revision.<span style="color:#9900CC;">to_i</span>
      <span style="color:#CC0066; font-weight:bold;">exit</span>
    <span style="color:#9966CC; font-weight:bold;">else</span>
      <span style="color:#008000; font-style:italic;"># If the deploy_revision is greater than the local then we need to update</span>
      <span style="color:#9966CC; font-weight:bold;">if</span> deploy_revision.<span style="color:#9900CC;">to_i</span> <span style="color:#006600; font-weight:bold;">&gt;</span> local_revision.<span style="color:#9900CC;">to_i</span> <span style="color:#9966CC; font-weight:bold;">then</span>
        <span style="color:#996600;">`/usr/bin/svn export --revision #{deploy_revision} --force --username USERNAME --password PASSWORD http://svn.server.com/#{repo}/trunk #{web_root}#{site}`</span>
        <span style="color:#996600;">`echo &quot;#{svn_revision}&quot; &gt; #{web_root}#{site}/revision`</span>
      <span style="color:#9966CC; font-weight:bold;">end</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>I don&#8217;t have the production script running under a cron job just because I want to be really careful about what gets deployed. You could easily do that thought.<br />
We&#8217;ve only got half a dozen sites getting updated this way right now, but eventually as changes are made to sites they are being added into Subversion and rolled into this setup.</p>
]]></content:encoded>
			<wfw:commentRss>http://sterlinganderson.net/2008/09/automatic-web-site-deployment-with-svn-and-ruby/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Dog With a Death Wish</title>
		<link>http://sterlinganderson.net/2008/09/dog-with-a-death-wish/</link>
		<comments>http://sterlinganderson.net/2008/09/dog-with-a-death-wish/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 20:21:06 +0000</pubDate>
		<dc:creator>sterling</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<category><![CDATA[candy]]></category>

		<category><![CDATA[chocolate]]></category>

		<category><![CDATA[dog]]></category>

		<category><![CDATA[pet]]></category>

		<category><![CDATA[piper]]></category>

		<category><![CDATA[sick]]></category>

		<guid isPermaLink="false">http://sterlinganderson.net/?p=272</guid>
		<description><![CDATA[We think Piper might be suicidal or something. Last week Sarah had her outside with the kids, and she decided then would be a good time to not listen and run across the street. We don&#8217;t live on a busy road, but Piper timed it so she was bolting across right as a car came [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://sterlinganderson.net/wordpress/wp-content/uploads/2008/09/pipe-on-noahs-bed.jpg" ><img src="http://sterlinganderson.net/wordpress/wp-content/uploads/2008/09/pipe-on-noahs-bed-75x75.jpg" alt="" title="pipe-on-noahs-bed" width="75" height="75" class="alignleft size-thumbnail wp-image-271" /></a>We think Piper might be suicidal or something. Last week Sarah had her outside with the kids, and she decided then would be a good time to not listen and run across the street. We don&#8217;t live on a busy road, but Piper timed it so she was bolting across right as a car came through and she got hit. Luckily she didn&#8217;t even get knocked over, and after Sarah checked her out and I called the vet we gave her the all clear.<br />
Then this weekend we went out for a few hours and left Piper at home. When we got back she had eaten around eight <a href="http://www.hersheys.com/kisses/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.hersheys.com');">Hershey Kisses</a>. I called the vet and they said she would probably be okay, but just to be safe we should &#8220;vomit&#8221; her, ie. induce vomiting. We had to force down a little hydrogen peroxide and wait. After about ten minutes she vomited, and we figured we were in the clear. Oh no, she was not done. We let her in the house and a few minutes later the Kisses came up in force. There was at least one complete, fully wrapped Kiss. There was also a decent amount of foil. Suffice to say, Piper spent a good portion of the evening out on the deck finishing her business.</p>
]]></content:encoded>
			<wfw:commentRss>http://sterlinganderson.net/2008/09/dog-with-a-death-wish/feed/</wfw:commentRss>
		</item>
		<item>
		<title>All Three Kids Love Wii</title>
		<link>http://sterlinganderson.net/2008/08/all-three-kids-love-wii/</link>
		<comments>http://sterlinganderson.net/2008/08/all-three-kids-love-wii/#comments</comments>
		<pubDate>Sat, 09 Aug 2008 17:16:21 +0000</pubDate>
		<dc:creator>sterling</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<category><![CDATA[gaming]]></category>

		<category><![CDATA[jack]]></category>

		<category><![CDATA[joe]]></category>

		<category><![CDATA[kids]]></category>

		<category><![CDATA[noah]]></category>

		<category><![CDATA[wii]]></category>

		<guid isPermaLink="false">http://sterlinganderson.net/?p=233</guid>
		<description><![CDATA[All of the kids love playing Wii. These pictures Sarah took are great. Joe isn&#8217;t quite ready for batteries in in Wii Remote yet, but I&#8217;m sure he isn&#8217;t far off. When someone is playing Joe just needs a remote of his own and he is satisfied. He really gets into it at times too. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://sterlinganderson.net/wordpress/wp-content/uploads/2008/08/kids-playing-wii-04.jpg" ><img src="http://sterlinganderson.net/wordpress/wp-content/uploads/2008/08/kids-playing-wii-04-75x75.jpg" alt="" title="kids-playing-wii-04" width="75" height="75" class="alignleft size-thumbnail wp-image-246" /></a><a href="http://sterlinganderson.net/wordpress/wp-content/uploads/2008/08/kids-playing-wii-07.jpg" ><img src="http://sterlinganderson.net/wordpress/wp-content/uploads/2008/08/kids-playing-wii-07-75x75.jpg" alt="" title="kids-playing-wii-07" width="75" height="75" class="alignleft size-thumbnail wp-image-247" /></a>All of the kids love playing Wii. These pictures Sarah took are great. Joe isn&#8217;t quite ready for batteries in in Wii Remote yet, but I&#8217;m sure he isn&#8217;t far off. When someone is playing Joe just needs a remote of his own and he is satisfied. He really gets into it at times too. <img src='http://sterlinganderson.net/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://sterlinganderson.net/2008/08/all-three-kids-love-wii/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Joe Drinking</title>
		<link>http://sterlinganderson.net/2008/08/joe-drinking/</link>
		<comments>http://sterlinganderson.net/2008/08/joe-drinking/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 04:50:05 +0000</pubDate>
		<dc:creator>sterling</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<category><![CDATA[drink]]></category>

		<category><![CDATA[joe]]></category>

		<category><![CDATA[photos]]></category>

		<guid isPermaLink="false">http://sterlinganderson.net/2008/08/joe-drinking/</guid>
		<description><![CDATA[Joe was figuring out how to drink with a straw tonight. I&#8217;m testing the Worspress iPhone app with this post too.

]]></description>
			<content:encoded><![CDATA[<p>Joe was figuring out how to drink with a straw tonight. I&#8217;m testing the Worspress iPhone app with this post too.</p>
<p><a href="http://sterlinganderson.net/wordpress/wp-content/uploads/2008/08/p-480-360-c13ecd27-21cc-486e-8125-b62563121789.jpeg" ><img src="http://sterlinganderson.net/wordpress/wp-content/uploads/2008/08/p-480-360-c13ecd27-21cc-486e-8125-b62563121789.jpeg" alt="" width="225" height="300" class="alignnone size-full wp-image-364" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://sterlinganderson.net/2008/08/joe-drinking/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Action Streams - .Mac Web Gallery Plugin now MobileMe</title>
		<link>http://sterlinganderson.net/2008/07/action-streams-mac-web-gallery-plugin-now-mobileme/</link>
		<comments>http://sterlinganderson.net/2008/07/action-streams-mac-web-gallery-plugin-now-mobileme/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 20:38:51 +0000</pubDate>
		<dc:creator>sterling</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<category><![CDATA[.mac]]></category>

		<category><![CDATA[action streams]]></category>

		<category><![CDATA[mobileme]]></category>

		<category><![CDATA[movable type]]></category>

		<category><![CDATA[mt]]></category>

		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://sterlinganderson.net/wordpress/?p=186</guid>
		<description><![CDATA[I updated my Movable Type plugin for Action Streams. It now uses a MobileMe icon and is named accordingly.
The main page for the plugin is here, but the direct download is here if you would like it.
A readme file with installation instructions is in the zip file. Requirements are MovableType 4.1 and the Action Streams [...]]]></description>
			<content:encoded><![CDATA[<p>I updated my <a href="http://www.movabletype.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.movabletype.org');">Movable Type</a> plugin for <a href="http://plugins.movabletype.org/action-streams/" onclick="javascript:pageTracker._trackPageview('/outbound/article/plugins.movabletype.org');">Action Streams</a>. It now uses a <a href="http://www.apple.com/mobileme/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.apple.com');">MobileMe</a> icon and is named accordingly.</p>
<p>The main page for the plugin <a href="/projects/action-streams-mobileme-web-gallery/">is here</a>, but the direct download <a href="/downloads/ActionStreamsMobileMeWebGallery.zip">is here</a> if you would like it.</p>
<p>A readme file with installation instructions is in the zip file. Requirements are MovableType 4.1 and the <a href="http://plugins.movabletype.org/action-streams/" onclick="javascript:pageTracker._trackPageview('/outbound/article/plugins.movabletype.org');">Action Streams</a> plugin.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://sterlinganderson.net/2008/07/action-streams-mac-web-gallery-plugin-now-mobileme/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Wisconsin Historical Society&#8217;s Photostream</title>
		<link>http://sterlinganderson.net/2008/06/wisconsin-historical-societys-photostream/</link>
		<comments>http://sterlinganderson.net/2008/06/wisconsin-historical-societys-photostream/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 13:18:08 +0000</pubDate>
		<dc:creator>sterling</dc:creator>
		
		<category><![CDATA[Interesting]]></category>

		<category><![CDATA[flickr]]></category>

		<category><![CDATA[history]]></category>

		<category><![CDATA[photos]]></category>

		<category><![CDATA[weirdwi]]></category>

		<category><![CDATA[wisconsin]]></category>

		<guid isPermaLink="false">http://sterlinganderson.net/wordpress/?p=185</guid>
		<description><![CDATA[A set in this photostream was just posted in a Yahoo! Group a subscibe to. The Wisconsin Historical Society has several hundred photos online.
Thanks to Hoodoo in the weirdwi group for posting the link.
]]></description>
			<content:encoded><![CDATA[<p>A set in <a href="http://www.flickr.com/photos/whsimages/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.flickr.com');">this photostream</a> was just posted in <a href="http://tech.groups.yahoo.com/group/weirdwi/" onclick="javascript:pageTracker._trackPageview('/outbound/article/tech.groups.yahoo.com');">a Yahoo! Group a subscibe to</a>. The <a href="http://www.wisconsinhistory.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.wisconsinhistory.org');">Wisconsin Historical Society</a> has several hundred photos online.</p>
<p>Thanks to Hoodoo in the <a href="http://tech.groups.yahoo.com/group/weirdwi/" onclick="javascript:pageTracker._trackPageview('/outbound/article/tech.groups.yahoo.com');">weirdwi</a> group for posting the link.</p>
]]></content:encoded>
			<wfw:commentRss>http://sterlinganderson.net/2008/06/wisconsin-historical-societys-photostream/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
