<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Daniel Stutzbach</title>
	
	<link>http://www.barsoom.org</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Tue, 02 Feb 2010 18:58:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/DanielStutzbach" /><feedburner:info uri="danielstutzbach" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/</creativeCommons:license><feedburner:emailServiceId>DanielStutzbach</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Field Reports from Tatooine for @darthvader</title>
		<link>http://feedproxy.google.com/~r/DanielStutzbach/~3/Dy463SRgQgk/field-reports-from-tatooine</link>
		<comments>http://www.barsoom.org/field-reports-from-tatooine#comments</comments>
		<pubDate>Tue, 02 Feb 2010 18:58:50 +0000</pubDate>
		<dc:creator>Daniel Stutzbach</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[humor]]></category>
		<category><![CDATA[poker]]></category>
		<category><![CDATA[Star Wars]]></category>

		<guid isPermaLink="false">http://www.barsoom.org/?p=832</guid>
		<description><![CDATA[<p>I have to wonder how Darth Vader felt upon reading the field reports from the stormtroopers on Tatooine in Star Wars Episode IV: A New Hope.  Days 5 and 6 must have throw him for a loop.</p>
<p>Day 1: Located droid parts near an escape pod, and two sets of tracks leading away from the <p style="font-family: serif;">Continue reading &#8220;<a href="http://www.barsoom.org/field-reports-from-tatooine">Field Reports from Tatooine for @darthvader</a>&#8221;</p>]]></description>
			<content:encoded><![CDATA[<p>I have to wonder how Darth Vader felt upon reading the field reports from the stormtroopers on Tatooine in Star Wars Episode IV: A New Hope.  Days 5 and 6 must have throw him for a loop.</p>
<p>Day 1: Located droid parts near an escape pod, and two sets of tracks leading away from the pod.  The tracks appear to be from an astromech droid and a bipedal droid.  Based on the gait, the bipedal droid is likely a protocol droid.</p>
<p>Day 2: The tracks split up.  The astromech's tracks lead off into the wilderness, while the bipedal's head roughly for Mos Eisley.  A droid specializing in communications is more suited as a spy, so we're following its tracks first.  Probably the astromech has a loose wire.</p>
<p>Day 3: The bipedal's tracks intersect with a Jawa sandcrawler, then vanish.  It will be easy to catch up with the sandcrawler later, so we're backtracking to pursue the astromech's tracks before they fade beneath the shifting dunes.</p>
<p>Day 4: The astromech's tracks lead into rocky terrain, then vanish in an area covered with Jawa footprints.  Returning to pursue the sandcrawler.</p>
<p>Day 5: Located and stopped the sandcrawler.  Examination of the Jawas' financial records indicates they recently captured an astromech droid and a protocol droid wandering the desert with numbers R2D2 and C3PO, respectively.  The Jawas promptly sold the droids to a moisture farmer named Owen Lars.  Slaughtered the Jawa's and framed the indigenous Tusken raiders.  </p>
<p>Day 6: Raided the Lars homestead.  Under interrogation, Owen and Beru Lars revealed that after purchasing the droids, they learned that R2D2 claimed to be the property of an "Obi-wan Kenobi".  Under further interrogation, Owen revealed that "Obi-wan Kenobi" is another name for a local named "Old Ben Kenobi" who he alternately described as a "wizard" and "a crazy old man".  They sent their nephew, Luke Skywaker to Anchorhead to have the droids' memories erased.  Put Owen and Beru to death for dealing in stolen goods.</p>
<p>Day 7: Encountered a protocol droid and an astromech droid traveling with two men, one young and one old, but we're sure they were not the droids we're looking for.  Later, a bounty hunter spotted R2D2 and C3PO boarding a YT-1300 light freighter named the Millennium Falcon.  Dispatched a squad to seize the ship, but encountered heavy return fire and the ship was able to take off.</p>
<p><a href="http://www.barsoom.org/field-reports-from-tatooine/droids-hindsight-starwars-motivational1" rel="attachment wp-att-834"><img src="http://c0348292.cdn.cloudfiles.rackspacecloud.com/wp-content/uploads/2010/02/droids-hindsight-starwars-motivational1.jpg" alt="Hindsight: Those really were the droids you were looking for." title="droids-hindsight-starwars-motivational" width="500" height="366" class="aligncenter size-full wp-image-834" /></a></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.barsoom.org%2Ffield-reports-from-tatooine&amp;linkname=Field%20Reports%20from%20Tatooine%20for%20%40darthvader"><img src="http://c0348292.cdn.cloudfiles.rackspacecloud.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a><img src="http://feeds.feedburner.com/~r/DanielStutzbach/~4/Dy463SRgQgk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.barsoom.org/field-reports-from-tatooine/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.barsoom.org/field-reports-from-tatooine</feedburner:origLink></item>
		<item>
		<title>Review: Buffalo NAS</title>
		<link>http://feedproxy.google.com/~r/DanielStutzbach/~3/9KnvzVrJZ5c/review-buffalo-nas</link>
		<comments>http://www.barsoom.org/review-buffalo-nas#comments</comments>
		<pubDate>Thu, 12 Nov 2009 14:43:22 +0000</pubDate>
		<dc:creator>Daniel Stutzbach</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://www.barsoom.org/?p=822</guid>
		<description><![CDATA[<p>I've been meaning to blog about the Buffalo NAS that I purchased and have finally been spurred into action by a post from <a href="http://bouncingleaf.livejournal.com/392167.html">Leaf</a>:</p>
<blockquote><p>I'm thinking of buying an external drive for backups for my home pc. Reviews online don't even suggest clear leaders, let alone a winner.</p></blockquote>
<p>For a few years, I've been using external <p style="font-family: serif;">Continue reading &#8220;<a href="http://www.barsoom.org/review-buffalo-nas">Review: Buffalo NAS</a>&#8221;</p>]]></description>
			<content:encoded><![CDATA[<p>I've been meaning to blog about the Buffalo NAS that I purchased and have finally been spurred into action by a post from <a href="http://bouncingleaf.livejournal.com/392167.html">Leaf</a>:</p>
<blockquote><p>I'm thinking of buying an external drive for backups for my home pc. Reviews online don't even suggest clear leaders, let alone a winner.</p></blockquote>
<p>For a few years, I've been using external hard drives as a way of backing up main computer's data.  I create a fresh backup once a month and incremental backups for the rest of the month.  Since my main computer is a laptop, it's been pretty easy to get an external drive with much more capacity than the computer.  The extra space allows me to store a few months worth of backups.  I use an ancient version of <a href="http://www.amazon.com/gp/product/B002SRNS7A?ie=UTF8&#038;tag=agthorr&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=B002SRNS7A">Norton Ghost</a><img src="http://www.assoc-amazon.com/e/ir?t=agthorr&#038;l=as2&#038;o=1&#038;a=B002SRNS7A" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important; padding:0px !important;" /> to perform the actual backups.  It works pretty well and I've configured it to send me an email every morning letting me know if the backup was successful or not.</p>
<p>I've gone through two Western Digital MyBook USB drives.  Each worked great for around a year and a half, then died.  Having all of your backups die simultaneously isn't really ideal in a backup solution, so I decided to search for a better option.</p>
<p>Based on the advice of my cousin Paul, I investigated&mdash;then invested in&mdash;a <a href="http://www.amazon.com/gp/product/B001696ZXA?ie=UTF8&#038;tag=agthorr&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=B001696ZXA">Buffalo LinkStation Pro Duo</a><img src="http://www.assoc-amazon.com/e/ir?t=agthorr&#038;l=as2&#038;o=1&#038;a=B001696ZXA" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important; padding:0px !important;" />, which is a Network-Attached Storage (NAS) device.  It contains two hard drives and I configured the device to mirror them, so if one drive fails the other one still has all of my data.</p>
<p>I'm pretty pleased with the Buffalo.  The web-based configuration is quite flexible.  It's even possible to make some or all of my data accessible from elsewhere on the Internet, so I can access it while I'm traveling.  Very handy.  I also configured it to email me every morning to let me know the status of the drives and how much capacity remains.  That way, I have some warning when I'm running out of space and I'll know right away when one of the drives fail.</p>
<p>Under the hood, the Buffalo runs Linux and there's an active <a href="http://buffalo.nas-central.org/wiki/Main_Page">Buffalo NAS hacking community</a>.  Using their instructions, I was able to unlock ssh access into my Buffalo device.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.barsoom.org%2Freview-buffalo-nas&amp;linkname=Review%3A%20Buffalo%20NAS"><img src="http://c0348292.cdn.cloudfiles.rackspacecloud.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a><img src="http://feeds.feedburner.com/~r/DanielStutzbach/~4/9KnvzVrJZ5c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.barsoom.org/review-buffalo-nas/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.barsoom.org/review-buffalo-nas</feedburner:origLink></item>
		<item>
		<title>Wikipedia on Cats</title>
		<link>http://feedproxy.google.com/~r/DanielStutzbach/~3/YriDQ_3Laxk/wikipedia-cats</link>
		<comments>http://www.barsoom.org/wikipedia-cats#comments</comments>
		<pubDate>Mon, 26 Oct 2009 19:53:42 +0000</pubDate>
		<dc:creator>Daniel Stutzbach</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cats]]></category>
		<category><![CDATA[wikipedia]]></category>

		<guid isPermaLink="false">http://www.barsoom.org/?p=804</guid>
		<description><![CDATA[






<p>Yesterday I stumbled across the <a class="reference external" href="http://en.wikipedia.org/wiki/Cat">Wikipedia entry on cats</a>.  I'm convinced that a cat wrote most of the article.  Below are some choice excerpts, emphasis mine.  I'm going to taunt my cats now by showing off my opposable thumbs.</p>
<blockquote>
<p>The cat (Felis catus) … is currently <strong>the most popular pet <p style="font-family: serif;">Continue reading &#8220;<a href="http://www.barsoom.org/wikipedia-cats">Wikipedia on Cats</a>&#8221;</p>]]></description>
			<content:encoded><![CDATA[



<!-- -*- mode: rst -*- -->
<!-- This data file has been placed in the public domain. -->
<!-- Derived from the Unicode character mappings available from
<http://www.w3.org/2003/entities/xml/>.
Processed by unicode2rstsubs.py, part of Docutils:
<http://docutils.sourceforge.net>. -->
<p>Yesterday I stumbled across the <a class="reference external" href="http://en.wikipedia.org/wiki/Cat">Wikipedia entry on cats</a>.  I'm convinced that a cat wrote most of the article.  Below are some choice excerpts, emphasis mine.  I'm going to taunt my cats now by showing off my opposable thumbs.</p>
<blockquote>
<p>The cat (Felis catus) … is currently <strong>the most popular pet in the world</strong>.  A skilled predator, the cat is known to <strong>hunt over 1,000 species for food</strong>.</p>
<p>[The] female is called a &quot;molly&quot; or &quot;<strong>queen</strong>&quot;.</p>
<p>… their small size, social nature, obvious body language, love of play and relatively <strong>high intelligence</strong>.</p>
<p>Unlike human arms, cat forelimbs are attached to the shoulder by free-floating clavicle bones, which allows them to <strong>pass their body through any space into which they can fit their heads</strong>.</p>
<p>A cat delivers a lethal neck bite with its two long canine teeth that insert between two of the prey's vertebrae and sever its spinal cord, causing <strong>irreversible paralysis and death</strong>.</p>
<p>Cats have excellent night vision and can function at <strong>only one-sixth the light level required for human vision</strong>.</p>
<p>They can hear higher-pitched sounds than either dogs or humans … Cats' hearing is also extremely sensitive and is among <strong>the best of any mammal</strong></p>
<p>Cats have an acute sense of smell, which is due … to a large surface of olfactory mucosa … about <strong>twice that of humans</strong> and only 1.7-fold less than the average dog.</p>
<p>Humans start to feel uncomfortable when their skin temperature passes about 44.5 °C (112 °F), in contrast <strong>cats show no discomfort until their skin reaches around 52 °C (126 °F</strong>) ... Indeed, their kidneys are so efficient that cats … can even <strong>rehydrate by drinking seawater</strong>.</p>
<p>Anthropologist and animal scientist Desmond Morris … suggests that when cats bring home mice or birds, they are teaching their human to hunt, or <strong>helping their human as if feeding &quot;an elderly cat, or an inept kitten&quot;.</strong></p>
</blockquote>

<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.barsoom.org%2Fwikipedia-cats&amp;linkname=Wikipedia%20on%20Cats"><img src="http://c0348292.cdn.cloudfiles.rackspacecloud.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a><img src="http://feeds.feedburner.com/~r/DanielStutzbach/~4/YriDQ_3Laxk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.barsoom.org/wikipedia-cats/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.barsoom.org/wikipedia-cats</feedburner:origLink></item>
		<item>
		<title>Star Wars Uncut</title>
		<link>http://feedproxy.google.com/~r/DanielStutzbach/~3/TdWZOb-ZTFo/star-wars-uncut</link>
		<comments>http://www.barsoom.org/star-wars-uncut#comments</comments>
		<pubDate>Thu, 01 Oct 2009 22:45:16 +0000</pubDate>
		<dc:creator>Daniel Stutzbach</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[movie]]></category>
		<category><![CDATA[Star Wars]]></category>

		<guid isPermaLink="false">http://www.barsoom.org/?p=785</guid>
		<description><![CDATA[<p>The people over at <a href="http://starwarsuncut.com">Star Wars: Uncut</a> have cut up the original Star Wars film into 15 second clips and setup a web site where fans can re-film each clip in the manner of their choosing.  Once all of 15 second increments have been re-filmed and uploaded, they will stitch them all together <p style="font-family: serif;">Continue reading &#8220;<a href="http://www.barsoom.org/star-wars-uncut">Star Wars Uncut</a>&#8221;</p>]]></description>
			<content:encoded><![CDATA[<p>The people over at <a href="http://starwarsuncut.com">Star Wars: Uncut</a> have cut up the original Star Wars film into 15 second clips and setup a web site where fans can re-film each clip in the manner of their choosing.  Once all of 15 second increments have been re-filmed and uploaded, they will stitch them all together into one zany, geek-tastic movie.  They have 50% of the film done already and have a trailer (below).</p>
<p>I wonder if this will turn into the newest Internet craze, with many movies being remade by fans (at least until the MPAA throws a hissy fit).</p>
<p><object width="600" height="450"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=6788001&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=10d1f2&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=6788001&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=10d1f2&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="600" height="450"></embed></object></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.barsoom.org%2Fstar-wars-uncut&amp;linkname=Star%20Wars%20Uncut"><img src="http://c0348292.cdn.cloudfiles.rackspacecloud.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a><img src="http://feeds.feedburner.com/~r/DanielStutzbach/~4/TdWZOb-ZTFo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.barsoom.org/star-wars-uncut/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.barsoom.org/star-wars-uncut</feedburner:origLink></item>
		<item>
		<title>Health and Fitness</title>
		<link>http://feedproxy.google.com/~r/DanielStutzbach/~3/ULPl1RQIYOI/health-fitness</link>
		<comments>http://www.barsoom.org/health-fitness#comments</comments>
		<pubDate>Fri, 21 Aug 2009 12:13:16 +0000</pubDate>
		<dc:creator>Daniel Stutzbach</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[exercise]]></category>
		<category><![CDATA[fitness]]></category>
		<category><![CDATA[health]]></category>

		<guid isPermaLink="false">http://www.barsoom.org/?p=744</guid>
		<description><![CDATA[




<a class="reference external image-reference" href="http://xkcd.com/189/"><img align="right" alt="" class="size-full align-right" src="http://imgs.xkcd.com/comics/exercise.png" style="width: 250.0px; height: 180.5px;" /></a>
<p>Around New Year's, when other people were posting their goals for the year, I meant to post some health and fitness goals for myself.  And by &#34;New Year's&#34;, I actually mean &#34;New Year's 2008&#34;.  I think it's a little <p style="font-family: serif;">Continue reading &#8220;<a href="http://www.barsoom.org/health-fitness">Health and Fitness</a>&#8221;</p>]]></description>
			<content:encoded><![CDATA[



<!-- -*- mode: rst -*- -->
<a class="reference external image-reference" href="http://xkcd.com/189/"><img align="right" alt="" class="size-full align-right" src="http://imgs.xkcd.com/comics/exercise.png" style="width: 250.0px; height: 180.5px;" /></a>
<p>Around New Year's, when other people were posting their goals for the year, I meant to post some health and fitness goals for myself.  And by &quot;New Year's&quot;, I actually mean &quot;New Year's 2008&quot;.  I think it's a little late for me to post fitness my goals for 2008, or even for 2009, so instead I'm going to grade some of the tools that have and haven't worked out.</p>
<span id="more-744"></span>
<p><a href='http://www.amazon.com/gp/product/B000KK02X0?ie=UTF8&amp;tag=agthorr&amp;linkCode=as2&amp;camp=1789&amp;creative=9325'>Omron Body Fat Monitor and Scale</a>: <strong>B-</strong>.  In addition to measuring weight, this scale also includes electrical sensors to estimate what percentage of the body are composed of muscle, fat, and other tissues.  While somewhat interesting, my experience has been that the percentages change at such an excruciatingly slow rate that they're hardly worth measuring.  Furthermore, although the scale measures the values down to one-tenth of a percentage point, the values fluctuate within a one percentage point range from day to day depending on the contents of my stomach, the humidity in the air, etc.  The scale also calculates several other values such as resting metabolic rate and body-mass index, but these are just simple arithmetic computations based on the other values.  The primary function of measuring weight works great, naturally, but the Omron Body Fat Monitor and Scale is overkill for my purposes.</p>
<p>The Gym: <strong>C-</strong>.  All the gadgets are neat for a little while, but I realized pretty quickly that anything that requires me to leave the house to exercise isn't going to last.  Not when it's 100+ degrees outside.</p>
<p><a href='http://www.amazon.com/gp/product/B000A5CEUO?ie=UTF8&amp;tag=agthorr&amp;linkCode=as2&amp;camp=1789&amp;creative=9325'>Omron HR-100C Heart Rate Monitor</a>: <strong>A+</strong>.  Ever wish that you had an infallible personal couch who would tell you when you were exercising too hard or not enough?  This is it.  I had no idea how useful a heart rate monitor could be.  As long as I stay within my target heart rate, I find that I can keep exercising more or less indefinitely.  When I exceed my target heart rate, I start to get tired quickly (physiologically, I'm exhausting the supply of oxygen in my muscles).  Without a heart rate monitor, it was very easy for me to push myself to work harder, leading to exhaustion and frustration.  The heart rate monitor is like a little angel that whispers &quot;No, it's okay.  You don't need to work any harder than that&quot;.  For my target heart rate range, I use 50% to 85% of the way between my resting heart rate and maximum heart rate.  To find my resting heart rate, I measure my heart rate when I wake up in the morning (52 beats/minute).  To find my maximum heart rate, I exercise as hard as I can for around two minutes (185 beats/minute).  That gives me a target heart rate range of 118 to 165 beats per minute.</p>
<div style="clear: both;"><a class="reference external image-reference" href="http://www.amazon.com/gp/product/B00029A7C0?ie=UTF8&amp;tag=agthorr&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B00029A7C0"><img align="right" alt="Creative Fitness Door Gym" class="size-full align-right" src="http://g-ecx.images-amazon.com/images/G/01/ciu/91/5c/6bbe81b0c8a0c9b724f3a110.L.jpg" style="width: 250.0px; height: 187.5px;" /></a>
<p><a href='http://www.amazon.com/gp/product/B00029A7C0?ie=UTF8&amp;tag=agthorr&amp;linkCode=as2&amp;camp=1789&amp;creative=9325'>Creative Fitness Door Gym</a>: <strong>A</strong>.  The Door Gym pull-up bar attaches to any standard door frame, without needing to be permanently installed.  I love this thing.  I hung mine in the door frame between the main hallway and the kitchen, and once a day or so I'll do some pull-ups when I'm walking by.  I'm not sure why, but they're fun!  There's just something exhilarating about pulling yourself off the ground.  When I first go the Door Gym, I could perform a grand total of zero pull-ups and had to build up my upper-body strength with push-ups (which are not nearly as much fun).  I'm also impressed by the engineering of the Door Gym.  It transfers the force of my weight into a lateral force on the door frame.  Takes all of 5 seconds to insert or remove from the door frame.  Most of the time, I just leave it installed.</p>
<p><a href='http://www.amazon.com/gp/product/B0006HHI3E?ie=UTF8&amp;tag=agthorr&amp;linkCode=as2&amp;camp=1789&amp;creative=9325'>Yourself! Fitness</a>: <strong>C+</strong> (<strong>B</strong> with Heart Rate Monitor)  I got this PC software for Alisa two Christmases ago.  There are also versions available for the XBox, Playstation, and Wii (the Wii version is sold under the name &quot;<a href='http://www.amazon.com/gp/product/B001H0RZX2?ie=UTF8&amp;tag=agthorr&amp;linkCode=as2&amp;camp=1789&amp;creative=9325'>My Fitness Coach</a>&quot;).  In a nutshell, Yourself Fitness provides a virtual fitness instructor, &quot;Maya&quot;, who guides you through a dynamically generated exercising routine.  You choose a length for the workout, as well as a one of six focuses for the routine: weight loss, cardio, upper body strength, core strength, lower body strength, or flexibility.  If you have an exercise ball, step bench, hand weights, or heart rate monitor, Maya will incorporate those into the exercise routine.  After each group of exercises, Maya asks how well you feel you were able to perform the exercises.  If you found it too easy, she'll make them harder next time, and vice versa.  Overall, the workouts are pretty good and Maya provides a wide enough variety of exercises that they don't get stale quickly.  I did encounter one problem with the software, though.  After using a few times a week for several months, I was working my way into more vigorous routines.  Unfortunately, I was advancing partially by being more fit and partially by pushing myself harder.  Eventually, I was utterly exhausted after every workout and became less inclined to exercise.  When I eventually got a heart rate monitor, I gave Yourself Fitness another go and realized what had happened: I could perform the workout, but my heart rate was beyond the target range.  Once I scaled back the difficulty several notches, the workouts left me feeling energized instead of miserable (while remaining vigorous enough to make my muscles sore a few days later).</p>

<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.barsoom.org%2Fhealth-fitness&amp;linkname=Health%20and%20Fitness"><img src="http://c0348292.cdn.cloudfiles.rackspacecloud.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a><img src="http://feeds.feedburner.com/~r/DanielStutzbach/~4/ULPl1RQIYOI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.barsoom.org/health-fitness/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.barsoom.org/health-fitness</feedburner:origLink></item>
		<item>
		<title>Camp Stutz 2009</title>
		<link>http://feedproxy.google.com/~r/DanielStutzbach/~3/v03wLxwdq14/camp-stutz-2009</link>
		<comments>http://www.barsoom.org/camp-stutz-2009#comments</comments>
		<pubDate>Mon, 03 Aug 2009 17:51:31 +0000</pubDate>
		<dc:creator>Daniel Stutzbach</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[camping]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[New Hampshire]]></category>

		<guid isPermaLink="false">http://www.barsoom.org/?p=735</guid>
		<description><![CDATA[




<p>Back from the annual Stutzbach family camping trip in New Hampshire.  This year's menu included:</p>
<ul class="simple">
<li>frushi</li>
<li>filet mignon</li>
<li>french fries (from scratch)</li>
<li>pickles (pickled on-site)</li>
<li>chocolate chip cookies (baked on-site)</li>
<li>homemade marshmallows (vanilla, chocolate chip, and root beer)</li>
<li>waffles (from scratch)</li>
<li>grilled pizza</li>
<li>ratatouille</li>
<li>green eggs and ham</li>
<li>bruschetta (with mozzarella made on-site)</li>
</ul>
<p>What can I say?  Several years ago, Dad picked up gourmet <p style="font-family: serif;">Continue reading &#8220;<a href="http://www.barsoom.org/camp-stutz-2009">Camp Stutz 2009</a>&#8221;</p>]]></description>
			<content:encoded><![CDATA[



<!-- -*- mode: rst -*- -->
<p>Back from the annual Stutzbach family camping trip in New Hampshire.  This year's menu included:</p>
<ul class="simple">
<li>frushi</li>
<li>filet mignon</li>
<li>french fries (from scratch)</li>
<li>pickles (pickled on-site)</li>
<li>chocolate chip cookies (baked on-site)</li>
<li>homemade marshmallows (vanilla, chocolate chip, and root beer)</li>
<li>waffles (from scratch)</li>
<li>grilled pizza</li>
<li>ratatouille</li>
<li>green eggs and ham</li>
<li>bruschetta (with mozzarella made on-site)</li>
</ul>
<p>What can I say?  Several years ago, Dad picked up gourmet cooking as a hobby and now we're all spoiled!</p>
<p>The weather was mostly good, sunny overall with a few brief thunderstorms.  Alisa and I did a great job of getting my sister and her boyfriend hooked on <a href='http://www.amazon.com/gp/product/B0006HCA82?ie=UTF8&amp;tag=agthorr&amp;linkCode=as2&amp;camp=1789&amp;creative=9325'>San Juan</a>.</p>

<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.barsoom.org%2Fcamp-stutz-2009&amp;linkname=Camp%20Stutz%202009"><img src="http://c0348292.cdn.cloudfiles.rackspacecloud.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a><img src="http://feeds.feedburner.com/~r/DanielStutzbach/~4/v03wLxwdq14" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.barsoom.org/camp-stutz-2009/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.barsoom.org/camp-stutz-2009</feedburner:origLink></item>
		<item>
		<title>DefaultValue Attribute as Initial Value</title>
		<link>http://feedproxy.google.com/~r/DanielStutzbach/~3/D5BRNgYbhSU/defaultvalue-attribute-initial</link>
		<comments>http://www.barsoom.org/defaultvalue-attribute-initial#comments</comments>
		<pubDate>Tue, 14 Jul 2009 22:03:24 +0000</pubDate>
		<dc:creator>Daniel Stutzbach</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.barsoom.org/?p=720</guid>
		<description><![CDATA[




<img align="right" alt="Visual Studio Properties" class="size-full wp-image-729 align-right" src="http://c0348292.cdn.cloudfiles.rackspacecloud.com/wp-content/uploads/2009/07/visual_studio_properties.png" style="width: 323px; height: 105px;" />
<p>C# lets the programming define a default value on a class property, so that GUI widgets can test the property to see if it still has the default value.  Visual Studio, for example, bolds any properties that have a non-default value, <p style="font-family: serif;">Continue reading &#8220;<a href="http://www.barsoom.org/defaultvalue-attribute-initial">DefaultValue Attribute as Initial Value</a>&#8221;</p>]]></description>
			<content:encoded><![CDATA[



<!-- -*- mode: rst -*- -->
<img align="right" alt="Visual Studio Properties" class="size-full wp-image-729 align-right" src="http://c0348292.cdn.cloudfiles.rackspacecloud.com/wp-content/uploads/2009/07/visual_studio_properties.png" style="width: 323px; height: 105px;" />
<p>C# lets the programming define a default value on a class property, so that GUI widgets can test the property to see if it still has the default value.  Visual Studio, for example, bolds any properties that have a non-default value, making them easy to pick out.</p>
<p>Unfortunately, the default value isn't used to actually initialize the property.  The initialization must be done elsewhere in the code, typically in the class's constructor.  Having to type the same value in two separate places in the code is error-prone, since it's easy to inadvertently change the value in one place and forget to change it in the other.</p>
<span id="more-720"></span>
<div class="highlight"><pre><span style="color: #008000; font-weight: bold">public</span> <span style="color: #008000; font-weight: bold">class</span> <span style="color: #0000FF; font-weight: bold">Widget</span>
{
<span style="color: #7D9029">    [DefaultValue(5)]</span>
    <span style="color: #008000; font-weight: bold">public</span> <span style="color: #B00040">int</span> WidgetLength { <span style="color: #008000; font-weight: bold">get</span>; <span style="color: #008000; font-weight: bold">set</span>; }

    <span style="color: #008000; font-weight: bold">public</span> <span style="color: #0000FF">Widget</span>()
    {
         WidgetLength = <span style="color: #666666">5</span>;
    }
}
</pre></div>
<p>With only one property in the class, the chances of an error are small.  However, when you have dozens of properties and the constructor is hundreds of lines away from the DefaultValue, mismatches are bound to happen.  Furthermore, <a class="reference external" href="http://stackoverflow.com/questions/40730/how-do-you-give-a-c-auto-property-a-default-value/40734#40734">so</a> <a class="reference external" href="http://www.eggheadcafe.com/software/aspnet/32319410/defaultvalue-attribute-on.aspx">many</a> <a class="reference external" href="http://jalpesh.blogspot.com/2007/03/how-to-set-default-value-of-property-in.html">people</a> assume that setting the DefaultValue will initialize the property that Microsoft issued a <a class="reference external" href="http://support.microsoft.com/kb/311339">Knowledge Base bulletin</a> to clarify the matter.  (Why can't they just make the documentation more explicit?)</p>
<p>Since I hate maintaining error-prone code, I wrote a function that initializes all of an instance's properties using the DefaultValue attributes.  I can set the DefaultValue attribute on each property, call the function once in the constructor, and forget about it.</p>
<div class="highlight"><pre><span style="color: #008000; font-weight: bold">static</span> <span style="color: #008000; font-weight: bold">public</span> <span style="color: #008000; font-weight: bold">void</span> <span style="color: #0000FF">ApplyDefaultValues</span>(<span style="color: #B00040">object</span> self)
{
     <span style="color: #008000; font-weight: bold">foreach</span> (PropertyDescriptor prop <span style="color: #008000; font-weight: bold">in</span> TypeDescriptor.GetProperties(self)) {
         DefaultValueAttribute attr = prop.Attributes[<span style="color: #008000; font-weight: bold">typeof</span>(DefaultValueAttribute)] <span style="color: #008000; font-weight: bold">as</span> DefaultValueAttribute;
         <span style="color: #008000; font-weight: bold">if</span> (attr == <span style="color: #008000; font-weight: bold">null</span>) <span style="color: #008000; font-weight: bold">continue</span>;
         prop.SetValue(self, attr.Value);
     }
}
</pre></div>

<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.barsoom.org%2Fdefaultvalue-attribute-initial&amp;linkname=DefaultValue%20Attribute%20as%20Initial%20Value"><img src="http://c0348292.cdn.cloudfiles.rackspacecloud.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a><img src="http://feeds.feedburner.com/~r/DanielStutzbach/~4/D5BRNgYbhSU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.barsoom.org/defaultvalue-attribute-initial/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.barsoom.org/defaultvalue-attribute-initial</feedburner:origLink></item>
		<item>
		<title>Playing with Google Voice Transcriptions</title>
		<link>http://feedproxy.google.com/~r/DanielStutzbach/~3/NNFqT8tJ-LI/playing-google-voice-transcriptions</link>
		<comments>http://www.barsoom.org/playing-google-voice-transcriptions#comments</comments>
		<pubDate>Thu, 09 Jul 2009 19:41:18 +0000</pubDate>
		<dc:creator>Daniel Stutzbach</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.barsoom.org/?p=706</guid>
		<description><![CDATA[<p>Want to play the Google Voice Transcriptions Game?  It's the solitaire version of the "telephone" game that children play.  Here's how to play:</p>
<ol>
<li>Click this button:

</li>
<li>Have Google Voice call you, which will connect you to my Google Voice Voicemail.</li>
<li>Leave a message.</li>
<li>Reply to this post with what you actually said.</li>
<li>I'll reply with what Google Voice <p style="font-family: serif;">Continue reading &#8220;<a href="http://www.barsoom.org/playing-google-voice-transcriptions">Playing with Google Voice Transcriptions</a>&#8221;</p>]]></description>
			<content:encoded><![CDATA[<p>Want to play the Google Voice Transcriptions Game?  It's the solitaire version of the "telephone" game that children play.  Here's how to play:</p>
<ol>
<li>Click this button:<br />
<object type="application/x-shockwave-flash" data="https://clients4.google.com/voice/embed/webCallButton" width="230" height="85"><param name="movie" value="https://clients4.google.com/voice/embed/webCallButton" /><param name="wmode" value="transparent" /><param name="FlashVars" value="id=a81f404bbe5d5ffab08439d2ac7cfda11cd3b5cd&#038;style=0" /></object>
</li>
<li>Have Google Voice call you, which will connect you to my Google Voice Voicemail.</li>
<li>Leave a message.</li>
<li>Reply to this post with what you actually said.</li>
<li>I'll reply with what Google Voice <em><strong>thinks</strong></em> you said.</li>
</ol>
<p>Here's what it made of a message my wife left me last night:</p>
<blockquote><p>
hi sarah it's matt and that the alright new voicemail if and i think we should placed in one now or rather reformer neil scoop really try to fix my computer weren't tuesday okay and </p></blockquote>
<p>Clearly they still have some work to do. <img src='http://c0348292.cdn.cloudfiles.rackspacecloud.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.barsoom.org%2Fplaying-google-voice-transcriptions&amp;linkname=Playing%20with%20Google%20Voice%20Transcriptions"><img src="http://c0348292.cdn.cloudfiles.rackspacecloud.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a><img src="http://feeds.feedburner.com/~r/DanielStutzbach/~4/NNFqT8tJ-LI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.barsoom.org/playing-google-voice-transcriptions/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.barsoom.org/playing-google-voice-transcriptions</feedburner:origLink></item>
		<item>
		<title>How to debug a program</title>
		<link>http://feedproxy.google.com/~r/DanielStutzbach/~3/BFVoYpChTCQ/debug-program</link>
		<comments>http://www.barsoom.org/debug-program#comments</comments>
		<pubDate>Wed, 08 Jul 2009 21:54:27 +0000</pubDate>
		<dc:creator>Daniel Stutzbach</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.barsoom.org/?p=644</guid>
		<description><![CDATA[




<img align="right" alt="Cicada" class="size-full wp-image-672 align-right" src="http://c0348292.cdn.cloudfiles.rackspacecloud.com/wp-content/uploads/2009/07/Cicada-no.jpg" style="width: 144px; height: 125px;" />
<p>Debugging is a fundamental programming skill.  It's also one of the least fun and least glamorous tasks a programmer faces.  In order to reduce time spent debugging, I've invested time in examining my debugging methods.  Below, I've documented the techniques that <p style="font-family: serif;">Continue reading &#8220;<a href="http://www.barsoom.org/debug-program">How to debug a program</a>&#8221;</p>]]></description>
			<content:encoded><![CDATA[



<!-- -*- mode: rst -*- -->
<img align="right" alt="Cicada" class="size-full wp-image-672 align-right" src="/wp-content/uploads/2009/07/Cicada-no.jpg" style="width: 144px; height: 125px;" />
<p>Debugging is a fundamental programming skill.  It's also one of the least fun and least glamorous tasks a programmer faces.  In order to reduce time spent debugging, I've invested time in examining my debugging methods.  Below, I've documented the techniques that most reliably lead me to a solved problem.</p>
<p>I'll avoid getting into the gritty details of particular tools and instead stick to basic principles that can be applied in almost any situation.</p>
<span id="more-644"></span>
<div class="section" id="reproduce-the-problem">
<h2>Reproduce the problem</h2>
<p>The first step is to reproduce the problem.  If you cannot reliably reproduce the problem, you will not know if you have successfully fixed the problem or not.  Some bugs will initially be difficult to reproduce, such as race conditions.  Often, the problem can be flushed into the open by adding extra code that checks assumptions along the way.  In some cases, you will need to implement a verification function to walk a complex data structure and check it for consistency.  Verification checks will slow the program down, but they can easily be commented out later.</p>
</div>
<div class="section" id="question-assumptions">
<h2>Question assumptions</h2>
<p>If a program does not operate in the way you believe it should, one or more of your assumptions about the code is wrong.  Debugging is the art of identifying which of your assumptions is the culprit.  Sometimes you will feel that a particular part of the code is suspect and begin investigating it.  With luck, you're right and will quickly identify and fix the problem.  However, if you start to feel like your banging your head against a wall, you're probably relying on wrong assumptions to guide your debugging methods.  Take a step back and question.</p>
</div>
<div class="section" id="look-at-more-than-code">
<h2>Look at more than code</h2>
<p>Suppose you've implemented a moderately complex algorithm, but it produces the wrong output.  You look over the code, find what you believe to be a problem and change it.  Now the program produces different wrong output.  After you've done this a few times on the same code, you start to get the feeling that you're taking stabs in the dark.  If you find yourself changing your mind about a &quot;fix&quot; and reversing it, you know you're lost.</p>
<div class="sidebar">
<p class="first sidebar-title"><strong>What if my data structures are complicated?</strong></p>
<p class="last">If you need to write additional tools just to visualize your data structures, write additional tools to visualize your data structures.  You'll need them again the next time a bug crops up.</p>
</div>
<p>To make progress, examine the state of the machine as the algorithm executes.  Tracing through the execution with a debugger may be sufficient.  In some cases, you will be best off by implementing a function that prints the relevant state of the program and calling the function at key points in the algorithm.  By viewing the progress of the algorithm on actual data, you can pinpoint where it went wrong.</p>
<p>If you're not sure what the state of the program should be in the middle of the algorithm, step away from the computer and trace through the algorithm with pencil and paper.  You cannot fix a program without a clear vision of how it <em>should</em> work.</p>
</div>
<div class="section" id="do-a-binary-search">
<h2>Do a binary search</h2>
<p>Computer Science undergraduates are often required to implement the binary search algorithm.  The basic idea is to eliminate half of the search space with each step.  Many learn binary search as a children's game:</p>
<blockquote>
<p>Alice: I'm thinking of a number between 1 and 10.  Pick a number and I'll tell you if it's too high or too low.</p>
<p>Bob: 5</p>
<p>Alice: Too high.</p>
<p>Bob: 2</p>
<p>Alice: Too low.</p>
<p>Bob: 3</p>
<p>Alice: That's it!</p>
</blockquote>
<p>Alice could be thinking of a number between 1 and 100,000,000 and we'd still be able to find her number quickly.  That's the beauty of binary search.  It's also a wonderful algorithm for debugging.  The key is to write a verification function that determines if the problem has occurred.  When you insert the function into the program and reproduce the problem, you're essentially asking, &quot;Did the problem occur before or after this line?&quot;  In some cases, in lieu of verification checks you can simply comment out a chunk of the code.</p>
<blockquote>
<p>Computer: I have a bug on a line between 1 and 10,000.  Insert your verification function, and I'll tell you if the bug is before or after it.</p>
<p>You: Line 5,000</p>
<p>Computer: The bug is before.</p>
<p>You: Line 2,500</p>
<p>Computer: The bug is after.</p>
<p>...</p>
</blockquote>
<p>Virtually any reproducible bug can be pinned down by the binary search method.</p>
<p>Often you will have an intuitive sense for where the bug might be and won't need a binary search.  That's great.  However, sometimes your intuition will be fouled up by incorrect assumptions.  When you're stuck, binary search is priceless.</p>
</div>

<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.barsoom.org%2Fdebug-program&amp;linkname=How%20to%20debug%20a%20program"><img src="http://c0348292.cdn.cloudfiles.rackspacecloud.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a><img src="http://feeds.feedburner.com/~r/DanielStutzbach/~4/BFVoYpChTCQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.barsoom.org/debug-program/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.barsoom.org/debug-program</feedburner:origLink></item>
		<item>
		<title>Website Facelift</title>
		<link>http://feedproxy.google.com/~r/DanielStutzbach/~3/pu7RMeG5fcI/website-facelift</link>
		<comments>http://www.barsoom.org/website-facelift#comments</comments>
		<pubDate>Tue, 30 Jun 2009 19:44:52 +0000</pubDate>
		<dc:creator>Daniel Stutzbach</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.barsoom.org/?p=619</guid>
		<description><![CDATA[<p>My new <a href="http://www.barsoom.org/">website/blog</a> is GO!  And automatically mirrored to LiveJournal.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.barsoom.org%2Fwebsite-facelift&#38;linkname=Website%20Facelift"><img src="http://c0348292.cdn.cloudfiles.rackspacecloud.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a>]]></description>
			<content:encoded><![CDATA[<p>My new <a href="http://www.barsoom.org/">website/blog</a> is GO!  And automatically mirrored to LiveJournal.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.barsoom.org%2Fwebsite-facelift&amp;linkname=Website%20Facelift"><img src="http://c0348292.cdn.cloudfiles.rackspacecloud.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Bookmark"/></a><img src="http://feeds.feedburner.com/~r/DanielStutzbach/~4/pu7RMeG5fcI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.barsoom.org/website-facelift/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.barsoom.org/website-facelift</feedburner:origLink></item>
	</channel>
</rss><!--

Minified using file
Page Caching using apc
Database Caching 150/167 queries in 0.020 seconds using apc
Content Delivery Network via c0348292.cdn.cloudfiles.rackspacecloud.com

Served from: almond.barsoom.org @ 2010-02-07 23:16:00 -->
