<?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/" version="2.0">

<channel>
	<title>The Real Adam</title>
	
	<link>http://therealadam.com</link>
	<description>Polymath practicing programming, probably procrastinating</description>
	<lastBuildDate>Thu, 09 Jul 2009 01:54:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</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" href="http://feeds.feedburner.com/TheRealAdam" type="application/rss+xml" /><item>
		<title>Disastersploitation</title>
		<link>http://therealadam.com/archive/2009/07/08/disastersploitation/</link>
		<comments>http://therealadam.com/archive/2009/07/08/disastersploitation/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 01:54:55 +0000</pubDate>
		<dc:creator>Adam Keys</dc:creator>
				<category><![CDATA[Curated]]></category>
		<category><![CDATA[Wakka wakka]]></category>
		<category><![CDATA[humor]]></category>

		<guid isPermaLink="false">http://therealadam.com/?p=716</guid>
		<description><![CDATA[Wherein movies are made fun of.]]></description>
			<content:encoded><![CDATA[<p><span class="caps"><span class="caps">DISASTER</span></span>!</p>

<div class="contentcolumn aligncenter"><object width="480" height="295"><param name="movie" value="http://www.youtube-nocookie.com/v/ZW2qxFkcLM0&amp;hl=en&amp;fs=1&amp;rel=0&amp;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube-nocookie.com/v/ZW2qxFkcLM0&amp;hl=en&amp;fs=1&amp;rel=0&amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"></embed></object></div>

<p>Crank that&nbsp;funk.</p><img src="http://feeds.feedburner.com/~r/TheRealAdam/~4/Q8QV75daFR0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://therealadam.com/archive/2009/07/08/disastersploitation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Differently hackish keyword arguments for Ruby</title>
		<link>http://therealadam.com/archive/2009/07/07/differently-hackish-keyword-arguments-for-ruby/</link>
		<comments>http://therealadam.com/archive/2009/07/07/differently-hackish-keyword-arguments-for-ruby/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 16:08:04 +0000</pubDate>
		<dc:creator>Adam Keys</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Curated]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://therealadam.com/?p=710</guid>
		<description><![CDATA[Wherein the future is now]]></description>
			<content:encoded><![CDATA[<p><a href="http://github.com/maca/arguments/tree/master">maca&#8217;s arguments</a> - keyword arguments support for Ruby, now. Wickedly clever hack that does reflection on Ruby 1.9 and uses ParseTree for Ruby 1.8. Simpler than I thought it&#8217;d be, I wish I&#8217;d thought of&nbsp;that. </p>

<p>Caveat: I haven&#8217;t tried it yet. It might punch kittens. In fact, if you think parts of Ruby are &#8220;too magical&#8221;, this definitely punches&nbsp;kittens.</p><img src="http://feeds.feedburner.com/~r/TheRealAdam/~4/xN_9SiclX6A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://therealadam.com/archive/2009/07/07/differently-hackish-keyword-arguments-for-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interviewing to seek values</title>
		<link>http://therealadam.com/archive/2009/07/07/interviewing-to-seek-values/</link>
		<comments>http://therealadam.com/archive/2009/07/07/interviewing-to-seek-values/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 15:45:04 +0000</pubDate>
		<dc:creator>Adam Keys</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Curated]]></category>
		<category><![CDATA[pragprog]]></category>

		<guid isPermaLink="false">http://therealadam.com/?p=708</guid>
		<description><![CDATA[Wherein we interview to identify common and complimentary viewpoints]]></description>
			<content:encoded><![CDATA[<p>Adam Wiggins, per usual, is on to something.&nbsp;<a href="http://adam.blog.heroku.com/past/2009/6/23/values/">Values</a>:</p>

<blockquote>
Sharing values is the most important part of effective collaboration. If you don&rsquo;t have significant overlap on values between you and your teammates, you&rsquo;re going to have a tough time getting anything accomplished.<br />
</blockquote>

<p>I&#8217;m starting to think that figuring what the other person puts a premium on is the most important part of a technical interview. Is the other person passionate in the same way you are? Are the things they obsess over complimentary to what you would rather gloss over? If the answer to these questions is yes, you&#8217;ll probably make awesome things&nbsp;together.</p><img src="http://feeds.feedburner.com/~r/TheRealAdam/~4/odnLqtqOfBU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://therealadam.com/archive/2009/07/07/interviewing-to-seek-values/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Infinite Jest and fanatics</title>
		<link>http://therealadam.com/archive/2009/07/06/infinite-jest-and-fanatics/</link>
		<comments>http://therealadam.com/archive/2009/07/06/infinite-jest-and-fanatics/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 03:34:01 +0000</pubDate>
		<dc:creator>Adam Keys</dc:creator>
				<category><![CDATA[Curated]]></category>
		<category><![CDATA[Reading List]]></category>
		<category><![CDATA[discourse]]></category>
		<category><![CDATA[infinite_jest]]></category>

		<guid isPermaLink="false">http://therealadam.com/?p=700</guid>
		<description><![CDATA[Wherein David Foster Wallace writes good dialog]]></description>
			<content:encoded><![CDATA[<p><a href="http://enjoymentland.com/2009/07/04/infinite-jest-on-fanatics-love-attachments-and-temples/">Infinite Jest on patriotism, fanatics, love, attachments, and&nbsp;temples</a>:</p>

<blockquote>
&lsquo;Your <span class="caps"><span class="caps">U.S.A.</span> </span>word for fanatic, &ldquo;fanatic,&rdquo; do they teach you it comes from the Latin for &ldquo;temple&rdquo;? It is meaning, literally, &ldquo;worshipper at the temple.&rdquo;&lsquo;<br />
</blockquote>

<p>I found this passage striking as well. On the one hand, Wallace writes great dialog. Even when most of the dialog is a monologue with ignored interjections by the other character. On the other hand, some great etymology and word-play&nbsp;here.</p>

<p>And then there&#8217;s the point: choose your core philosophies carefully. Is it really worthwhile to identify yourself as a Rails person, a libertarian, or a connoisseur of fart&nbsp;jokes?</p>

<p>Side note: I&#8217;m doing this whole <a href="http://infinitesummer.org/">Infinite Summer</a> thing because, at my core, I enjoy the challenge of reading books that are just too long. This is very borderline hipster, so I promise never to refer to David Foster Wallace by his initials, because that&#8217;s just confusing when you live in&nbsp;Dallas.</p><img src="http://feeds.feedburner.com/~r/TheRealAdam/~4/GPf_vdKugBQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://therealadam.com/archive/2009/07/06/infinite-jest-and-fanatics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software development requires empathy</title>
		<link>http://therealadam.com/archive/2009/07/06/software-development-requires-empathy/</link>
		<comments>http://therealadam.com/archive/2009/07/06/software-development-requires-empathy/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 03:24:37 +0000</pubDate>
		<dc:creator>Adam Keys</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Curated]]></category>
		<category><![CDATA[pragprog]]></category>

		<guid isPermaLink="false">http://therealadam.com/?p=698</guid>
		<description><![CDATA[Wherein I try to feel your pain]]></description>
			<content:encoded><![CDATA[<p><a href="http://nick.typepad.com/blog/2009/06/if-you-want-to-write-useful-software-you-have-to-do-tech-support.html">If You Want to Write Useful Software, You Have to Do Tech&nbsp;Support</a>:</p>

<blockquote>
It seems so obvious: if you want to develop software that&rsquo;s useful to people, you&rsquo;ve got to talk with them. But too many developers take the anti-social approach and consider customer support to be beneath their status. Besides, talking with customers would distract them from important code-slinging.<br />
</blockquote>

<p>I have to remind myself, almost every day, that one of the the most important qualities I can possess as a developer is empathy. Primarily for the user, their cognitive load, and what they&#8217;re trying to accomplish. But further, for the developer who comes to my code when I&#8217;m done, the guy who operates it, and everyone else down the&nbsp;line.</p><img src="http://feeds.feedburner.com/~r/TheRealAdam/~4/RP1kbCi0oQw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://therealadam.com/archive/2009/07/06/software-development-requires-empathy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Instapaper is wonderful</title>
		<link>http://therealadam.com/archive/2009/07/06/instapaper-is-wonderful/</link>
		<comments>http://therealadam.com/archive/2009/07/06/instapaper-is-wonderful/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 12:23:51 +0000</pubDate>
		<dc:creator>Adam Keys</dc:creator>
				<category><![CDATA[Expanded ideas]]></category>
		<category><![CDATA[awesome]]></category>

		<guid isPermaLink="false">http://therealadam.com/?p=689</guid>
		<description><![CDATA[Wherein I profess my love]]></description>
			<content:encoded><![CDATA[<p>I have loved <a href="http://www.instapaper.com/">Instapaper</a> ever since I became aware of it. It fits perfectly into my workflow. There&rsquo;s tons of stuff I want to read, but not just yet. Instapaper gives you a little bookmarklet to save these jewels for later when you&rsquo;ve got more time to slow down and read a longer&nbsp;piece.</p>

<p>When the accompanying <a href="http://www.instapaper.com/iphone">iPhone</a> app came out, I fell in love again. Instapaper is perfect for filling your interstitial time, which is something I often find myself when I fish my iPhone out of my pocket. Also, you have to check out the tilt-scrolling feature; every reading app should implement&nbsp;it.</p>

<p>The love affair grew stronger recently. The newest version of the iPhone app came out boasting great improvements to the interaction design and new functionality that makes it an even better tool for occupying the time where you would otherwise find yourself day-dreaming<sup class="footnote"><a href="#fn1">1</a></sup>.</p>

<div class="contentcolumn alignleft"><a href="http://blog.instapaper.com/">
<img src="http://media.tumblr.com/M1Uu3MXnGd4ymx185Ne4deV5_r1_500.png" alt="Instapaper logo"/>
</a><br />
</div>

<p>Firstly: a sort of light-weight feed reading mechanism. It&rsquo;s not for every site out there; there&rsquo;s a curated list of sites you can consume in this way. I went with The Economist, but noticed things like Wikipedia Featured, Wired, The New Yorker, and popular stories posted to Instapaper. Great&nbsp;idea.</p>

<p>Next: <a href="http://blog.instapaper.com/post/127749064">folders</a>. I&rsquo;ve used it to organize my reading list into topics so that I can quickly go to whatever matches my mood or energy level. This functionality is present in the web app too, and Marco&rsquo;s done a great job of making it really easy to set things up just the way you&nbsp;want.</p>

<p>Finally: <a href="http://blog.instapaper.com/post/127780342">shared favorites</a>. Peek into what other people have marked as great reading. Maybe it&rsquo;s a cliche &ldquo;social feature&rdquo;, but I&rsquo;m excited to see curated reading lists from my wonderful&nbsp;friends.</p>

<p>In conclusion: <a href="http://articles.marco.org/about">Marco Ament</a> is awesome, start using Instapaper and leave your username in the comments so I can read your&nbsp;stuff.</p>

<p class="footnote" id="fn1"><sup>1</sup> For example, wondering why butterscotch is so&nbsp;awesome.</p><img src="http://feeds.feedburner.com/~r/TheRealAdam/~4/xPYpJfVYBpE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://therealadam.com/archive/2009/07/06/instapaper-is-wonderful/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Haskell modulo excess theory</title>
		<link>http://therealadam.com/archive/2009/07/01/haskell-modulo-excess-theory/</link>
		<comments>http://therealadam.com/archive/2009/07/01/haskell-modulo-excess-theory/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 02:04:42 +0000</pubDate>
		<dc:creator>Adam Keys</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Curated]]></category>
		<category><![CDATA[haskell]]></category>

		<guid isPermaLink="false">http://therealadam.com/?p=682</guid>
		<description><![CDATA[Wherein things are made practical]]></description>
			<content:encoded><![CDATA[<p>My journey through Haskell is on something of a lull, but <a href="http://www.newartisans.com/about-me.html">John Wiegley&#8217;s</a> got you covered. He&#8217;s documented his own journey learning Haskell, and it&#8217;s very&nbsp;accessible. </p>

<p>John starts with <a href="http://www.newartisans.com/2009/03/journey-into-haskell-part-1.html">simple stuff like Fibonacci sequences and splitting strings</a>, then jumps straight into <a href="http://www.newartisans.com/2009/03/journey-into-haskell-part-2.html">modeling Schroedinger&#8217;s cat using a monad</a>. Next he gets pretty practical, for Haskell at least: <a href="http://www.newartisans.com/2009/03/journey-into-haskell-part-3.html">doing text manipulation ala scripting languages to drop command-line arguments</a> and then to <a href="http://www.newartisans.com/2009/03/journey-into-haskell-part-5.html">MacPorts packages</a>. Finally, he reflects on <a href="http://www.newartisans.com/2009/03/functional-yet-lazy.html">thinking lazily</a> and <a href="http://www.newartisans.com/2009/03/journey-into-haskell-part-6.html">using infinite&nbsp;streams</a>. </p>

<p>If you&#8217;ve been wondering what this lazy, pure, strongly typed functional thing is all about but keep falling asleep through the intense theoretical bits (there&#8217;s a lot of it!), these are a great starting&nbsp;point.</p><img src="http://feeds.feedburner.com/~r/TheRealAdam/~4/lfv-NxrDlbw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://therealadam.com/archive/2009/07/01/haskell-modulo-excess-theory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>When to do test-driven development</title>
		<link>http://therealadam.com/archive/2009/06/29/when-to-do-test-driven-development/</link>
		<comments>http://therealadam.com/archive/2009/06/29/when-to-do-test-driven-development/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 14:15:09 +0000</pubDate>
		<dc:creator>Adam Keys</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[pragprog]]></category>
		<category><![CDATA[tdd]]></category>

		<guid isPermaLink="false">http://therealadam.com/?p=678</guid>
		<description><![CDATA[Wherein I discover things]]></description>
			<content:encoded><![CDATA[<p>I believe that writing code using testing<sup class="footnote"><a href="#fn1">1</a></sup> as a design activity yields long-term benefits that make my life&nbsp;easier. </p>

<p>Though I&rsquo;m a strong believer, I&rsquo;ve struggled with <span class="caps"><span class="caps">TDD</span> </span>in the past. I&rsquo;ve found I get bogged down in keeping the red-green-refactor cycle going. Sometimes I have to work with code that is lacking sufficient tests, but I know I can&rsquo;t boil the ocean before I proceed to whatever I&rsquo;m <em>really</em> trying to do with the code. Other times, I&rsquo;m not sure if I&rsquo;m testing the right things; I could be missing tests in one place and writing too many tests in&nbsp;another.</p>

<h3>Three easy&nbsp;pieces</h3>

<p>Last week, I read three insightful pieces and made one discovery of my own that deepened my understanding of the practice of <span class="caps"><span class="caps">TDD</span>.</span> Allow me to&nbsp;share.</p>

<p>First off, <a href="http://www.threeriversinstitute.org/blog/?p=252">Kent Beck has been exploring the phases in the life of a startup</a>. The earliest stage is proving the idea. He later asserted that when you&rsquo;re doing stuff like this, <a href="http://www.threeriversinstitute.org/blog/?p=187">you can drop <span class="caps"><span class="caps">TDD</span></span></a>, temporarily. I thought about this and it clicked. If you&rsquo;re working on a prototype, where you&rsquo;re trying to explore an idea and see if it works, you don&rsquo;t want to iterate on the code, as <span class="caps"><span class="caps">TDD</span> </span>would have you do. You want to iterate on the <em>idea</em>. <span class="caps"><span class="caps">TDD</span> </span>will just slow you&nbsp;down.</p>

<div class="content-column alignright">
<img src="http://farm1.static.flickr.com/23/29748491_1d438b550b_m_d.jpg" alt="Kirby building"/>
</div>

<p>On the other end of the spectrum, you&rsquo;ve got maintenance programming. Once a startup, company or project has proven their idea and shipped a system, you are maintaining software. Keeping it working, living, breathing. For this sort of development, where you&rsquo;re making small, focused changes without adding significant functionality, <a href="http://www.tbray.org/ongoing/When/200x/2009/06/23/TDD-Heresy">Tim Bray pointed out that <span class="caps"><span class="caps">TDD</span> </span>is critical</a>. Using it to drive the process of fixing bugs, cleaning up the system and adding minor functionality is really handy for figuring out if you&rsquo;ve broken something in some dark corner. It also helps the next guy to do the same. It&rsquo;s a win, and I suspect it&rsquo;s the sweet-spot of&nbsp;<span class="caps"><span class="caps">TDD</span>.</span></p>

<p>If you imagine prototyping and maintenance as opposite ends of the software life-cycle spectrum, adding significant new features to existing software probably lies somewhere in the middle. You may need to &ldquo;poke around&rdquo; to decide if what you&rsquo;re doing is right, like when you&rsquo;re prototyping. But once you&rsquo;re done, you want some way for others who have to maintain the software (such as yourself) to figure out what it&rsquo;s supposed to do and whether assumptions have been&nbsp;broken.</p>

<p>Then I read <a href="http://blog.objectmentor.com/articles/2009/06/26/the-rush">an anecdote by Uncle Bob about how he worked out an ambitious new feature in Fitnesse</a>. He and his pair got a new feature working, celebrated, and called it a night. When he woke up, he realized they weren&rsquo;t actually done; they still had to clean it up, by writing&nbsp;tests.</p>

<h3>Oh.&nbsp;Duh.</h3>

<p>This was the missing link, for me. Sometimes, you need to iterate on the idea first. If skipping the tests helps you, so it goes. Once you&rsquo;ve got the idea working (and committed!), then start writing tests<sup class="footnote"><a href="#fn2">2</a></sup>. Once you&rsquo;re happy with the structure and coverage of your code, you commit again and <em>then</em> push it to your peers<sup class="footnote"><a href="#fn3">3</a></sup>.</p>

<p>The crux of my revelation is this: you get the benefits of <span class="caps"><span class="caps">TDD</span></span>-as-a-design-activity by doing it. <em>When</em> you do it is immaterial. You just <strong>have</strong> to do&nbsp;it.</p>

<p>My own revelation is blindingly obvious in retrospect. If the going gets tough, proceed in this order: get it to work, write some tests for it, <em>then</em> clean up the code. Sometimes you can break this cycle if what you&rsquo;re working on doesn&rsquo;t take too much cognitive capacity. But if you overflow your mental buffer, you have to break it down into steps and work through the cycle. Failing to realize this was one of the causes of me bogging down in&nbsp;<span class="caps"><span class="caps">TDD</span>.</span></p>

<h3>Context is everything.&nbsp;Always.</h3>

<p>Adding context to answer the question of when you start writing tests is something I haven&rsquo;t found much writing on until recently. I&rsquo;m increasingly finding that considering the situation is a great ninja-move in my quest towards writing beautiful, useful&nbsp;code.</p>

<p class="footnote" id="fn1"><sup>1</sup> Call it a test, example, behavior, or story.&nbsp;Whatever.</p>

<p class="footnote" id="fn2"><sup>2</sup> Jim Weirich did a great presentation on <a href="http://rubyconf2008.confreaks.com/the-ruby-code-review-a-play-in-three-acts.html">how to backfill tests on existing&nbsp;code</a>.</p>

<p class="footnote" id="fn3"><sup>3</sup> Pardon the Git-centric terminology<sup class="footnote"><a href="#fn4">4</a></sup>.</p>

<p class="footnote" id="fn4"><sup>4</sup> If you are not already, please start using Git&nbsp;immediately.</p><img src="http://feeds.feedburner.com/~r/TheRealAdam/~4/FbX_53ATPxY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://therealadam.com/archive/2009/06/29/when-to-do-test-driven-development/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A slide in the workplace</title>
		<link>http://therealadam.com/archive/2009/06/29/a-slide-in-the-workplace/</link>
		<comments>http://therealadam.com/archive/2009/06/29/a-slide-in-the-workplace/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 13:30:15 +0000</pubDate>
		<dc:creator>Adam Keys</dc:creator>
				<category><![CDATA[Curated]]></category>
		<category><![CDATA[Eye Candy]]></category>
		<category><![CDATA[awesome]]></category>

		<guid isPermaLink="false">http://therealadam.com/?p=676</guid>
		<description><![CDATA[Wherein it looks like fun is had]]></description>
			<content:encoded><![CDATA[<p>The Red Bull headquarters in London has a slide going between&nbsp;floors.</p>

<div class="content-column aligncenter">
<a href="http://www.flickr.com/photos/79428304@N00/261734665/"><img src="http://farm1.static.flickr.com/91/261734665_3aa9fda29f_d.jpg" alt="Awesome slide"/></a>
</div>

<p>I want to go to there. Photo credit: <a href="http://www.flickr.com/photos/79428304@N00/">Alexander&nbsp;K</a>.</p><img src="http://feeds.feedburner.com/~r/TheRealAdam/~4/waf8bWb7Dmc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://therealadam.com/archive/2009/06/29/a-slide-in-the-workplace/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Super Mario motors</title>
		<link>http://therealadam.com/archive/2009/06/23/super-mario-motors/</link>
		<comments>http://therealadam.com/archive/2009/06/23/super-mario-motors/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 14:01:22 +0000</pubDate>
		<dc:creator>Adam Keys</dc:creator>
				<category><![CDATA[Curated]]></category>
		<category><![CDATA[Nerdery]]></category>
		<category><![CDATA[arduino]]></category>

		<guid isPermaLink="false">http://therealadam.com/?p=673</guid>
		<description><![CDATA[Wherein nostalgic music is made]]></description>
			<content:encoded><![CDATA[<p>Too cool - <a href="http://www.adafruit.com/blog/2009/06/22/super-mario-stepper-motor-music-with-the-help-of-an-arduino/">Super Mario stepper motor&nbsp;music</a>:</p>

<div class="aligncenter">
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/8L8hY8siUMQ&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/8L8hY8siUMQ&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"></embed></object><br />
</div>

<p>Of course, an <a href="http://arduino.cc/">Arduino</a> is&nbsp;involved.</p><img src="http://feeds.feedburner.com/~r/TheRealAdam/~4/ggfFKlN7tdA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://therealadam.com/archive/2009/06/23/super-mario-motors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss><!-- Dynamic page generated in 1.339 seconds. --><!-- Cached page generated by WP-Super-Cache on 2009-07-12 11:59:11 -->
