<?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>Nerd Fortress</title>
	<atom:link href="http://nerdfortress.com/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://nerdfortress.com</link>
	<description>Where a Nerd can be a Nerd</description>
	<pubDate>Fri, 27 Jun 2008 23:44:16 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>ATI&#8217;s New Cards Offer a Better Value than nVidia</title>
		<link>http://nerdfortress.com/index.php/2008/06/27/atis-new-cards-offer-a-better-value-than-nvidia/</link>
		<comments>http://nerdfortress.com/index.php/2008/06/27/atis-new-cards-offer-a-better-value-than-nvidia/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 14:50:20 +0000</pubDate>
		<dc:creator>Random</dc:creator>
		
		<category><![CDATA[Random Stuff]]></category>

		<guid isPermaLink="false">http://nerdfortress.com/?p=45</guid>
		<description><![CDATA[The latest cards from ATI stomp all over nVidia&#8230;for half the price! Also, in my personal experience, ATI&#8217;s Vista drivers seem to be more stable than nVidia&#8217;s. Ars also has a first look at the upcoming AMD+ATI Shrike chip that includes an on-die GPU.
Time to get a new video card&#8230;
Random
]]></description>
			<content:encoded><![CDATA[<p>The <a title="ATI video cards" href="http://arstechnica.com/reviews/hardware/ati-4800-series-review.ars" onclick="javascript:pageTracker._trackPageview('/outbound/article/arstechnica.com');" target="_blank">latest cards from ATI </a>stomp all over nVidia&#8230;for half the price! Also, in my personal experience, ATI&#8217;s Vista drivers seem to be more stable than nVidia&#8217;s. Ars also has a first look at the upcoming AMD+ATI Shrike chip that <a title="Shrike AMD ATI chip" href="http://arstechnica.com/news.ars/post/20080627-amds-shrike-takes-flight-in-the-second-half-of-2009.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/arstechnica.com');" target="_blank">includes an on-die GPU</a>.</p>
<p>Time to get a new video card&#8230;</p>
<p><em>Random</em></p>
]]></content:encoded>
			<wfw:commentRss>http://nerdfortress.com/index.php/2008/06/27/atis-new-cards-offer-a-better-value-than-nvidia/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Really Useful Software</title>
		<link>http://nerdfortress.com/index.php/2008/06/23/really-useful-software/</link>
		<comments>http://nerdfortress.com/index.php/2008/06/23/really-useful-software/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 04:50:34 +0000</pubDate>
		<dc:creator>Random</dc:creator>
		
		<category><![CDATA[Random Stuff]]></category>

		<guid isPermaLink="false">http://nerdfortress.com/?p=44</guid>
		<description><![CDATA[If you haven&#8217;t checked out our Really Useful Software page yet, you can download some useful software for free (stay tuned for more to come). Make software, not war.

Random
]]></description>
			<content:encoded><![CDATA[<p>If you haven&#8217;t checked out our <a title="Really Useful Software" href="http://nerdfortress.com/index.php/really-useful-software/"  target="_self">Really Useful Software</a> page yet, you can download some useful software for free (stay tuned for more to come). Make software, not war.</p>
<p><a href="http://nerdfortress.com/wp-content/uploads/2008/06/smiles.jpg" ><img class="alignnone size-full wp-image-43" title="Smiles" src="http://nerdfortress.com/wp-content/uploads/2008/06/smiles.jpg" alt="Smiles" width="200" height="150" /></a></p>
<p><em>Random</em></p>
]]></content:encoded>
			<wfw:commentRss>http://nerdfortress.com/index.php/2008/06/23/really-useful-software/feed/</wfw:commentRss>
		</item>
		<item>
		<title>80-20: A Space Odyssey</title>
		<link>http://nerdfortress.com/index.php/2008/06/23/improving/</link>
		<comments>http://nerdfortress.com/index.php/2008/06/23/improving/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 16:00:24 +0000</pubDate>
		<dc:creator>Random</dc:creator>
		
		<category><![CDATA[Essays]]></category>

		<guid isPermaLink="false">http://nerdfortress.com/?p=40</guid>
		<description><![CDATA[A lot of well-known bloggers and pundits like to talk about the 80-20 rule. In relation to technology, the idea is this: the best way to create a Fast Company and get featured on Tech Crunch (preferably becoming rich and famous in the process) is to nail the 20% of features your customers want and [...]]]></description>
			<content:encoded><![CDATA[<p>A lot of well-known bloggers and pundits like to talk about the <a title="80-20 Rule or Pareto Principle" href="http://en.wikipedia.org/wiki/80_20_rule" onclick="javascript:pageTracker._trackPageview('/outbound/article/en.wikipedia.org');" target="_blank">80-20 rule</a>. In relation to technology, the idea is this: the best way to create a <a title="Fast Company Magazine" href="http://www.fastcompany.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.fastcompany.com');" target="_blank">Fast Company</a> and get featured on <a title="Tech Crunch Startup Blog" href="http://www.techcrunch.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.techcrunch.com');" target="_blank">Tech Crunch</a> (preferably becoming rich and famous in the process) is to nail the 20% of features your customers want and then forget about the rest. The thing they <em>don&#8217;t </em>tell you is which 20% to focus on.<span id="more-40"></span></p>
<p>While a valid general principle, it turns out that it is incredibly difficult to nail down exactly <em>which</em> of all the features on the table fall into that magical 20%. To be sure, conducting <a title="Nielsen Norman Group Usability Training and Research" href="http://www.nngroup.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.nngroup.com');" target="_blank">usability studies</a> can help. However, there is no escaping the fact that people are unique individuals. The larger the market you are going after, the more likely you are to end up with overlapping or disjoint 20&#8217;s. In other words, <a href="http://www.joelonsoftware.com/items/2006/12/09.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.joelonsoftware.com');" target="_blank"><em>my</em> 20% is not <em>your</em></a> 20%. <strong>And this group&#8217;s 20% is not the same as it was yesterday</strong>. No market is completely homogeneous, no matter how small (even a single individual&#8217;s needs change over time).</p>
<p>To put it bluntly, the 80-20 rule is no magic bullet. If successful engineers and business leaders were honest with themselves, they would realize that focusing on the right features is only a piece of the puzzle. Not only does a product have to be useful (solve the right problems), but it also needs to be smart (solve the problems in the right way), and pleasant (appeal to the emotional, social, and ethical needs of the user).</p>
<p>And, of course, you will never get a well-designed widget in the first place if you don&#8217;t have <a title="What can go wrong if you don't have the right people and process" href="http://nerdfortress.com/index.php/2008/06/04/b-work-is-bad-for-the-soul-what-goes-wrong-behind-blockbuster-movies/"  target="_blank">the right people and the right process</a>. The point is, you aren&#8217;t in control of your success. <a title="The Chef's Dilemma: Principle-Based Engineering" href="http://nerdfortress.com/index.php/2008/03/20/the-chef%E2%80%99s-dilemma/"  target="_blank">Principles are</a>. Your job is to put them in place and start the wheels turning.</p>
<p>The needs of your market change over time, and that change accelerates every year as our cultures become more and more globalized. You need to stay on your toes, constantly readjusting your features and process.  Even if things are going well, and you have most of the features in your product that most people want (implemented the way most people like), you simply aren&#8217;t done. Jakob Nielsen <a title="Extreme Usability: How to Make an Already-Great Design Even Better" href="http://www.useit.com/alertbox/extreme-usability.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.useit.com');" target="_blank">writes</a>:</p>
<blockquote><p>Taking a metaphor from the airline industry, it&#8217;s now time for you to study &#8220;safe flights.&#8221; Historically, the airline industry improved safety by studying airline accidents. Modern airplanes now crash so rarely that the industry studies safe flights to achieve further improvements, investigating why flights are safe and whether they had any close calls.</p></blockquote>
<p>You can always do better.</p>
<p><em>Random</em></p>
]]></content:encoded>
			<wfw:commentRss>http://nerdfortress.com/index.php/2008/06/23/improving/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Fun with Wordle</title>
		<link>http://nerdfortress.com/index.php/2008/06/19/fun-with-wordle/</link>
		<comments>http://nerdfortress.com/index.php/2008/06/19/fun-with-wordle/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 16:19:56 +0000</pubDate>
		<dc:creator>Mr. ANSI Pants</dc:creator>
		
		<category><![CDATA[Random Stuff]]></category>

		<category><![CDATA[captain constructor]]></category>

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

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

		<guid isPermaLink="false">http://nerdfortress.com/?p=36</guid>
		<description><![CDATA[Being a subscriber to TEDBlog, I found a really nifty applet this morning called Wordle.  I took the story of Captain Constructor and fed it into the machine.  Here are a few examples of what came up.

How about another?

And my favorite&#8230;

Go try it out for yourself.  But beware the fun you&#8217;ll have!
-ANSI Pants
]]></description>
			<content:encoded><![CDATA[<p>Being a subscriber to <a title="TEDBlog - Ideas Worth Spreading" href="http://blog.ted.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/blog.ted.com');" target="_blank">TEDBlog</a>, I found a really nifty applet this morning called <a title="Wordle" href="http://wordle.net/" onclick="javascript:pageTracker._trackPageview('/outbound/article/wordle.net');" target="_blank">Wordle</a>.  I took <a title="Captain Constructor" href="http://nerdfortress.com/index.php/2008/04/07/100-balls-10-buckets-1-single-use-scale/"  target="_self">the story of Captain Constructor</a> and fed it into the machine.  Here are a few examples of what came up.</p>
<p><a title="Captain Constructor 1" href="http://wordle.net/gallery/Constructor_Buckets" onclick="javascript:pageTracker._trackPageview('/outbound/article/wordle.net');" target="_blank"><img class="alignnone size-full wp-image-37" title="captain-constructor-1" src="http://nerdfortress.com/wp-content/uploads/2008/06/captain-constructor-1.png" alt="Captain Constructor 1" width="500" height="361" /></a></p>
<p>How about another?<span id="more-36"></span></p>
<p><a title="Captain Constructor 2" href="http://wordle.net/gallery/Captain_Buckets_2" onclick="javascript:pageTracker._trackPageview('/outbound/article/wordle.net');" target="_blank"><img class="alignnone size-full wp-image-38" title="captain-constructor-2" src="http://nerdfortress.com/wp-content/uploads/2008/06/captain-constructor-2.png" alt="Captain Constructor 2" width="500" height="362" /></a></p>
<p>And my favorite&#8230;</p>
<p><a title="Captain Constructor 3" href="http://wordle.net/gallery/Captain_Buckets_3" onclick="javascript:pageTracker._trackPageview('/outbound/article/wordle.net');" target="_blank"><img class="alignnone size-full wp-image-39" title="captain-constructor-3" src="http://nerdfortress.com/wp-content/uploads/2008/06/captain-constructor-3.png" alt="Captain Constructor 3" width="500" height="361" /></a></p>
<p><a title="Create a Wordle" href="http://wordle.net/create" onclick="javascript:pageTracker._trackPageview('/outbound/article/wordle.net');" target="_blank">Go try it out</a> for yourself.  But beware the fun you&#8217;ll have!</p>
<p>-ANSI Pants</p>
]]></content:encoded>
			<wfw:commentRss>http://nerdfortress.com/index.php/2008/06/19/fun-with-wordle/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Monthly Software Pick: Exposé for Windows Vista and Server 2008</title>
		<link>http://nerdfortress.com/index.php/2008/06/13/monthly-software-pick-expose-for-windows-vista/</link>
		<comments>http://nerdfortress.com/index.php/2008/06/13/monthly-software-pick-expose-for-windows-vista/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 20:52:11 +0000</pubDate>
		<dc:creator>Random</dc:creator>
		
		<category><![CDATA[Software Pick of the Month]]></category>

		<guid isPermaLink="false">http://nerdfortress.com/?p=35</guid>
		<description><![CDATA[I have long had Exposé (Mac OS X) envy. Now you can get the love on Windows Vista with Switcher:
http://insentient.net/
I would recommend editing shortcuts to add the mouse-in-the-screen-corner shortcut to better emulate the Mac Exposé behavior:
Settings &#62; Shortcuts &#62; Edit Shortcuts &#62; Add Shortcut &#62; Mouse Over Screen
If you have more than one monitor, you [...]]]></description>
			<content:encoded><![CDATA[<p>I have long had <a title="Expose" href="http://docs.info.apple.com/article.html?artnum=304786" onclick="javascript:pageTracker._trackPageview('/outbound/article/docs.info.apple.com');" target="_blank">Exposé (Mac OS X)</a> envy. Now you can get the love on Windows Vista with Switcher:</p>
<p><a title="Expose for Windows Vista" href="http://insentient.net/" onclick="javascript:pageTracker._trackPageview('/outbound/article/insentient.net');" target="_blank">http://insentient.net/</a></p>
<p>I would recommend editing shortcuts to add the mouse-in-the-screen-corner shortcut to better emulate the Mac Exposé behavior:</p>
<p>Settings &gt; Shortcuts &gt; Edit Shortcuts &gt; Add Shortcut &gt; Mouse Over Screen</p>
<p>If you have more than one monitor, you can create two mouse shortcuts, one for the top-left of screen 1, and the other for the top-right of screen 2.</p>
<p>Excellent tool. It also works great on a <a title="Windows Server 2008 Workstation" href="http://nerdfortress.com/index.php/2008/03/12/using-windows-server-2008-workstation-audio-stutters/"  target="_blank">Windows Server 2008 workstation</a>.</p>
<p><em>Random</em></p>
]]></content:encoded>
			<wfw:commentRss>http://nerdfortress.com/index.php/2008/06/13/monthly-software-pick-expose-for-windows-vista/feed/</wfw:commentRss>
		</item>
		<item>
		<title>C# 3.0 Encourages Rubyisms</title>
		<link>http://nerdfortress.com/index.php/2008/06/12/c-30-encourages-rubyisms/</link>
		<comments>http://nerdfortress.com/index.php/2008/06/12/c-30-encourages-rubyisms/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 20:41:57 +0000</pubDate>
		<dc:creator>Random</dc:creator>
		
		<category><![CDATA[Essays]]></category>

		<category><![CDATA[Random Stuff]]></category>

		<category><![CDATA[Software Pick of the Month]]></category>

		<guid isPermaLink="false">http://nerdfortress.com/?p=34</guid>
		<description><![CDATA[C# 3.0 (.NET Framework 3.5) adds some great features, such as extension methods and lambdas, that let&#8217;s you write magical code that looks suspiciously Rubyish. Extension methods let you dynamically extend your types so you can do things like this:



&#160;


OperationResult ParseCustomHeader&#40;WebResponse response&#41;


&#123;


&#160; string header = response.Headers&#91;Globals.CUSTOM_ERROR_HEADER_NAME&#93;; &#160;


&#160; return header.Base64ToBinary&#40;&#41;.UTF8ToString&#40;&#41;.FromXml&#60;OperationResult&#62;&#40;&#41;;


&#125;


&#160;



Also, have a look at Sergio&#8217;s XmlBuilder [...]]]></description>
			<content:encoded><![CDATA[<p>C# 3.0 (.NET Framework 3.5) adds some great features, such as extension methods and lambdas, that let&#8217;s you write magical code that looks suspiciously Rubyish. Extension methods let you dynamically extend your types so you can do things like this:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">OperationResult ParseCustomHeader<span class="br0">&#40;</span>WebResponse response<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw4">string</span> header = response.<span class="me1">Headers</span><span class="br0">&#91;</span>Globals.<span class="me1">CUSTOM_ERROR_HEADER_NAME</span><span class="br0">&#93;</span>; &nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="kw1">return</span> header.<span class="me1">Base64ToBinary</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">UTF8ToString</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">FromXml</span>&lt;OperationResult&gt;<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p>Also, have a look at <a title="C# XmlBuilder" href="http://www.sergiopereira.com/articles/xmlbuilder.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.sergiopereira.com');" target="_blank">Sergio&#8217;s XmlBuilder</a> to see lambdas and reflection put to good use. I like it when the language does work for me so I can keep my code beautiful.</p>
<p><em>Random</em></p>
]]></content:encoded>
			<wfw:commentRss>http://nerdfortress.com/index.php/2008/06/12/c-30-encourages-rubyisms/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Effective Writing Online</title>
		<link>http://nerdfortress.com/index.php/2008/06/09/effective-writing-online/</link>
		<comments>http://nerdfortress.com/index.php/2008/06/09/effective-writing-online/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 18:00:18 +0000</pubDate>
		<dc:creator>Random</dc:creator>
		
		<category><![CDATA[Random Stuff]]></category>

		<category><![CDATA[writing online print guidelines]]></category>

		<guid isPermaLink="false">http://nerdfortress.com/?p=33</guid>
		<description><![CDATA[In school we are taught to write for print, not for the web. Jakob Nielsen has a great article on how to make the transition. This should be required reading for anyone serious about their online presence. We will see what we can do to follow his guidelines in future Nerd Fortress posts.
Random
]]></description>
			<content:encoded><![CDATA[<p>In school we are taught to write for print, not for the web. Jakob Nielsen has a <a title="Print vs. Online Content Writing" href="http://www.useit.com/alertbox/print-vs-online-content.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.useit.com');" target="_blank">great article</a> on how to make the transition. This should be required reading for anyone serious about their online presence. We will see what we can do to follow his guidelines in future Nerd Fortress posts.</p>
<p><em>Random</em></p>
]]></content:encoded>
			<wfw:commentRss>http://nerdfortress.com/index.php/2008/06/09/effective-writing-online/feed/</wfw:commentRss>
		</item>
		<item>
		<title>B Work is Bad for the Soul: What Goes Wrong Behind Blockbuster Movies</title>
		<link>http://nerdfortress.com/index.php/2008/06/04/b-work-is-bad-for-the-soul-what-goes-wrong-behind-blockbuster-movies/</link>
		<comments>http://nerdfortress.com/index.php/2008/06/04/b-work-is-bad-for-the-soul-what-goes-wrong-behind-blockbuster-movies/#comments</comments>
		<pubDate>Thu, 05 Jun 2008 03:44:41 +0000</pubDate>
		<dc:creator>Random</dc:creator>
		
		<category><![CDATA[Essays]]></category>

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

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

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

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

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

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

		<guid isPermaLink="false">http://nerdfortress.com/?p=32</guid>
		<description><![CDATA[Recently my friend and I left the office for a couple hours to attend a lecture by Dr. Ed Catmull at a local university. Here is a man who knows what he&#8217;s doing. Over time, Dr. Catmull has leveraged sound business principles to help grow Pixar into one of the best animation studios in the [...]]]></description>
			<content:encoded><![CDATA[<p>Recently my friend and I left the office for a couple hours to attend a lecture by Dr. Ed Catmull at a local university. Here is a man who knows what he&#8217;s doing. Over time, Dr. Catmull has leveraged sound business principles to help grow Pixar into one of the best animation studios in the world.</p>
<p>Given Dr. Catmull’s history (he has a PhD in Computer Science), I was expecting a fairly technical talk. To my suprise, he said virtually nothing about technology. What he <em>did</em> talk about was people. It seems that you don&#8217;t have to have an MBA to know how to manage people.</p>
<p>Here, in a nutshell, is Dr. Catmull&#8217;s business philosphy, broken down into several principles.<span id="more-32"></span></p>
<h3>Success is Blind</h3>
<p>It wasn’t too long ago that SGI was the #1 computer graphics company in the world. Everything was totally groovy. Flush with cash and bravado, SGI decided to go shopping and bought Cray. About the same time they acquired Cray, they also decided to pull out of the PC graphics board market. As it turned out, these were two very unwise decisions.</p>
<p>When life is great, it is easy to overlook problems and make bad decisions. The company feels invincible.</p>
<p>History shows that great companies fail all the time. They lose tons of money and some may even go bankrupt.  In most instances, the problems start long before anyone notices anything is wrong.  As a company becomes more successful, it also tends to become more blind.</p>
<p>The lesson here is that you can never, ever afford to get comfortable. When things are going really well, you will always have subtle problems trying to sneak in under the radar. Left unchecked, such problems will fester and eventually destroy your business. The solution is to constantly monitor your business, putting aside your personal pride and bias to see what you and others are failing to notice.</p>
<h3>No Second-Class Citizens</h3>
<p>One of the most subtle and damaging problems that can end up destroying a company has to do with class distinction. After their success with Toy Story, Pixar was excited to move forward with their second animated feature, A Bug’s Life. Early on they realized that they would need to bring on a lot of new production people from L.A. to make the film a success.</p>
<p>Up to that time there had been two primary groups within Pixar: the artists and the technicians. Pixar had worked very hard to make sure that both the technical people and the artists felt like they were on equal footing. Neither was favored over the other. Both were on the same pay scale, and company events routinely brought both groups together. Heck, they were even allowed to intermarry!</p>
<p>Everything was cool. As work began on Bug’s Life, however, Ed began to notice something. The production folks weren’t quite getting along with the artists and techies. Since Toy Story had been such a runaway success, it would have been easy to ignore the problem, or not to have noticed it in the first place. However, Ed and others at Pixar decided to investigate.</p>
<p>As it turned out, the production team had been feeling very much second-class to the other groups at Pixar. Recognizing a danger to their success formula, Pixar started searching for a way to get everyone back on equal footing. It did not take long before they discovered the real problem, of which second-class citizenry was only a symptom.</p>
<p>This is a great example of why it is so important to pay attention to the little problems in an organization. Small issues do not themselves destroy your company. The real danger lies in the rest of the iceberg floating below the surface.</p>
<p>In this story, the iceberg had to do with communication.</p>
<h3>Management Hierarchies vs. Communication</h3>
<p>When Pixar started looking for a way to better integrate the production group, they discovered a basic flaw in their business model. They had confused management hierarchies with communication channels. For example, if an artist had a question or concern, they could only discuss it with their peers or direct manager. That manager would then pass messages up the chain of command as needed. Unfortunately, the production folks did not have as direct a reporting chain to upper management as did the artists and technicians. They felt like their needs came second to everyone else’s.</p>
<p>The solution was simple: a 100% open-door policy. Anyone could talk to anyone at any time, regardless of position. If a programmer was worried about not having the right tools for his job, he could go straight to Ed Catmull and explain the situation. If someone in production was getting frustrated waiting on something from a programmer, he could go directly to that programmer’s manager. Within a few months of implementing the new policy, the production team no longer felt second-class, and the company was actually more efficient than it had ever been before.</p>
<h3>B Work is Bad for the Soul</h3>
<p>Pixar discovered another important principle just 9 months before Toy Story 2 was to be released. The idea of Toy Story 2 had been pitched by Disney as a direct-to-video money-maker, and generally followed the “B” movie strategy that Disney had been following. The formula was simple. Release a hit feature film. Quickly churn out a lower quality sequel direct to video, then proceed to haul in boatloads of cash. This they proposed to do with the Toy Story franchise.</p>
<p>Pixar reluctantly agreed to make a lower quality Toy Story 2 film. Accordingly they put together a team and instructed them to only do “B” quality work. Unfortunately, nobody likes doing “B” work. “B work is bad for the soul” explained Dr. Catmull. With 9 months left before the release date, Toy Story 2 was a mess. The story wasn’t working. The team was depressed and didn’t like their jobs. Ed Catmull called John Lasseter, who was in Europe at the time, and told him they had a problem. John quickly returned to Pixar and asked to see the reel. “You’re right,” he said. “This isn’t working.”</p>
<p>The only solution, they decided, was to scrap the whole thing and start over. Toy Story had to be a quality feature film. Pixar simply <em>could not make</em> a “B” movie. After explaining the situation to Disney, Pixar was informed that what they were asking was impossible. Pixar simply could not start over. After all, they only had 9 months left. And there would be no changing the release date. Catmull and Lasseter thanked them kindly for their opinion and then informed them that they were going to do it anyway. The next 9 months were a mad rush, but amazingly enough, they made it.</p>
<h3>Take Care of Your People</h3>
<p>After the intense 9 month effort to release Toy Story 2, most team members were sore, tired, and burned out. Pixar immediately brought in an army of massage therapists, doctors, and other health professionals. All employees were entitled to free therapy, ergonomics and general health training, not to mention some well-earned time off.</p>
<p>Months later, Pixar discovered that their health insurance provider had been impressed by their efforts and had given them a major discount on their premiums. From this experience, Ed Catmull learned an important lesson: “It doesn’t cost anything to take care of people, and it’s the right thing to do, anyway.”</p>
<p>People know when the company cares, and when it doesn’t. Your employees won’t last long if you aren’t careful to create a great environment, no matter how awesome the project. You have to be on the lookout for signs of trouble. Your employees often won’t tell you until it is too late. <a title="Brad Bird Bio" href="http://http://en.wikipedia.org/wiki/Brad_Bird" onclick="javascript:pageTracker._trackPageview('/outbound/article/en.wikipedia.org');" target="_blank">Brad Bird</a> agrees:</p>
<blockquote><p>In my experience, the thing that has the most significant impact on a movie’s budget—but never shows up in a budget—is morale. If you have low morale, for every $1 you spend, you get about 25 cents of value. If you have high morale, for every $1 you spend, you get about $3 of value. Companies should pay much more attention to morale.</p></blockquote>
<h3>Your Name is a Bank Account</h3>
<p>If Pixar had released Toy Story 2 as a low-quality film, direct to video, it would have been a terrible embarrassment and made a significant dent in their reputation. Disney spent years chasing this road. While in the short-term they did make a lot of profit, they eventually destroyed their animated film business. I think most people will agree it’s been a long time since they have seen a really great animated film come out of Disney’s animation studio. “B” work has a way of becoming a habit.</p>
<p>Ed quoted Steve Jobs in saying, “Your name is a bank account.” Each time you produce something good, it’s like adding to that account. Each time you produce something poor, you are taking a withdrawal. And if you continue long enough making withdrawals, eventually you will bankrupt your name. This is exactly what happened to Disney. <a title="Brad Bird Bio" href="http://http://en.wikipedia.org/wiki/Brad_Bird" onclick="javascript:pageTracker._trackPageview('/outbound/article/en.wikipedia.org');" target="_blank">Brad Bird</a> elaborates:</p>
<blockquote><p>Walt Disney’s mantra was, “I don’t make movies to make money—I make money to make movies.” It seems counterintuitive, but for imagination-based companies to succeed in the long run, making money can’t be the focus.</p></blockquote>
<p>Making their name synonymous with quality is one of Pixar’s fundamental goals. They routinely spend enormous amounts of time and money to ensure not only the quality of their films, but of the entire franchise surrounding each animated feature. They work closely with the toy and book companies that manufacture Pixar merchandise to ensure that when it says Pixar on the label, customers can expect an exceptional product.</p>
<h3>The Project Postmortem</h3>
<p>People don’t like doing postmortems, but they like the information they get out of them. After every project, Pixar does a formal postmortem to assess both what went right, and what went wrong. As you look at each problem, it is important to read between the lines. Circumstances, assumptions, timing, and relationships, and other factors must be considered during the analysis.</p>
<p>Once you understand the driving forces behind your failures and successes, you must get to work improving the bad and reinforcing the good in your organization. Learn from the past and make the future even better.</p>
<h3>Conclusion: A Film is Not an Idea</h3>
<p>A lot of people think a business or a product is an idea. In fact, Pixar gets sued for each and every film they make. Someone inevitably comes along, claiming that Pixar stole their idea.  For example, an individual once had a story idea for monsters hiding under the bed. They claimed that Pixar had stolen their idea to create Monsters Inc.</p>
<p>These people simply don’t get it. A great film or product is not just one idea. It is a collection of thousands and thousands of ideas from many different people. Putting these ideas together is like working on a jigsaw puzzle. If you want to make the picture look right, you have to find all the right pieces and put them in the right places. Any ideas that don’t fit have to be discarded.</p>
<p>Don’t try too hard to come up with one great idea. The first thing to focus on is getting a team of smart, motivated, creative people working together. Then you give them some freedom and a little guidance. At the end of the day you will get a great collection of ideas that fit together well, ultimately resulting in a successful project. This principle is so important to Pixar, that they have a division whose sole purpose is to organize great teams.</p>
<p>When you are successful, remember that it wasn’t just your great idea that made the difference. It was the combination of many great ideas from many talented people. Oh, and please don’t forget to say thank you.</p>
<p><em>Derived from a CS colloquium given by Dr. Ed Catmull at Brigham Young University on March 27, 2008.</em></p>
<p>See also: <a title="How Pixar Fosters Innovation" href="http://http://foundread.com/2008/04/17/pixars-brad-bird-on-fostering-innovation/" onclick="javascript:pageTracker._trackPageview('/outbound/article/foundread.com');" target="_blank">How Pixar Fosters Innovation</a></p>
]]></content:encoded>
			<wfw:commentRss>http://nerdfortress.com/index.php/2008/06/04/b-work-is-bad-for-the-soul-what-goes-wrong-behind-blockbuster-movies/feed/</wfw:commentRss>
		</item>
		<item>
		<title>VIM Cheat Sheet</title>
		<link>http://nerdfortress.com/index.php/2008/05/22/vim-cheat-sheet/</link>
		<comments>http://nerdfortress.com/index.php/2008/05/22/vim-cheat-sheet/#comments</comments>
		<pubDate>Thu, 22 May 2008 15:26:11 +0000</pubDate>
		<dc:creator>Random</dc:creator>
		
		<category><![CDATA[How To]]></category>

		<category><![CDATA[vim text editor cheat sheet programming]]></category>

		<guid isPermaLink="false">http://nerdfortress.com/?p=31</guid>
		<description><![CDATA[Becoming a VIM ninja is no easy task. Watching someone who has mastered the VIM text editor is like watching Lance Burton levitate members of the audience and cause giant airplanes to disappear right in front of you. I am convinced that one of the major reasons people like to use text editors like VIM [...]]]></description>
			<content:encoded><![CDATA[<p>Becoming a VIM ninja is no easy task. Watching someone who has mastered the VIM text editor is like watching <a title="Lance Burton Magician" href="http://en.wikipedia.org/wiki/Lance_Burton" onclick="javascript:pageTracker._trackPageview('/outbound/article/en.wikipedia.org');" target="_blank">Lance Burton</a> levitate members of the audience and cause giant airplanes to disappear right in front of you. I am convinced that one of the major reasons people like to use text editors like VIM and Emacs is because of the <a title="Text Editors for Real Programmers " href="http://xkcd.com/378/" onclick="javascript:pageTracker._trackPageview('/outbound/article/xkcd.com');" target="_blank">fear and awe they inspire</a> in their onlookers.</p>
<p>However, when you are working on your VPS or some other server box without a window manager, VIM can save your bacon. Using VIM involves memorizing many keyboard shortcuts; some intuitive, and some not. Recently I came across a great VIM cheat sheet by Nana Långstedt that I wanted to share. I like this one in particular because it includes a few commands, like &#8220;open line above&#8221; that are sadly missing from many other cheat sheets.</p>
<p>So whether you are on the road to becoming a VIM ninja, or just need to do some remote text surgery, <a title="VIM Cheat Sheet" href="http://www.tuxfiles.org/linuxhelp/vimcheat.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.tuxfiles.org');" target="_blank">Nana&#8217;s VIM cheat sheet</a> is where it&#8217;s at.</p>
]]></content:encoded>
			<wfw:commentRss>http://nerdfortress.com/index.php/2008/05/22/vim-cheat-sheet/feed/</wfw:commentRss>
		</item>
		<item>
		<title>100 Balls, etc.: The Exciting Conclusion!</title>
		<link>http://nerdfortress.com/index.php/2008/05/16/100-balls-etc-the-exciting-conclusion/</link>
		<comments>http://nerdfortress.com/index.php/2008/05/16/100-balls-etc-the-exciting-conclusion/#comments</comments>
		<pubDate>Fri, 16 May 2008 15:59:35 +0000</pubDate>
		<dc:creator>Mr. ANSI Pants</dc:creator>
		
		<category><![CDATA[Challenge of the Month]]></category>

		<category><![CDATA[thought puzzles]]></category>

		<guid isPermaLink="false">http://nerdfortress.com/?p=24</guid>
		<description><![CDATA[[When we last visited our intrepid hero, he was engaged in a battle of wits atop the tallest turret of Fallacy Fortress. The fate of the world is again in his hands. We join him now...]
Dr. Destructor: Wait till I get going! Where was I?
Capt. Constructor: Australia. Oh wait. I mean, you were just telling [...]]]></description>
			<content:encoded><![CDATA[<p><em>[When we last visited our intrepid hero, <a title="100 Balls, 10 Buckets, 1 Single-Use Scale" href="http://nerdfortress.com/index.php/2008/04/07/100-balls-10-buckets-1-single-use-scale/"  target="_self">he was engaged in a battle of wits</a> atop the tallest turret of Fallacy Fortress. The fate of the world is again in his hands. We join him now...]</em></p>
<p><strong>Dr. Destructor:</strong> Wait till I get going! Where was I?</p>
<p><strong>Capt. Constructor:</strong> Australia. Oh wait. I mean, you were just telling me about spheroids, buckets, and a scale.</p>
<p><strong>Dr. Destructor:</strong> Right! I, like many <a title="Virtual Destructor" href="http://www.google.com/search?q=virtual+destructor" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.google.com');" target="_blank">non-virtual Destructors</a> out there, suffer from occasional memory leaks. Don&#8217;t tell me you Constructors are immune. Australia? Ha!</p>
<p><span id="more-24"></span><strong>Capt. Constructor:</strong> <a title="In Search of Memory" href="http://www.nytimes.com/2006/04/09/books/review/09nuland.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.nytimes.com');" target="_blank">Memory</a> and Australia are both quite entertaining topics. But if you&#8217;ll excuse me, the world is on the verge of collapse and I hear some spheroids calling my name.</p>
<p><strong>Spheroids:</strong> O Captain! my Captain!</p>
<p><em>[Our hero dashes to the Table of Doom whereon are arranged the spheroid-filled buckets and the badly damaged scale. He buries himself in thought for a full 100 milliseconds, which is an eternity to a modern microprocessor.]</em></p>
<p><strong>Capt. Constructor:</strong> Aha! The solution is simple. One can conceptually number the buckets 0 through 9. Once that is accomplished, the following algorithm should suffice:</p>
<pre style="font-size:90%">

<span style="color: #0000ff;"><strong>void</strong></span> transferSpheroids(<span style="color: #0000ff;"><strong>int</strong></span> howMany, Bucket&amp; from, Bucket&amp; to)
{
	<span style="color: #008000;">// The contents of this function are left as an exercise
	// for the reader.</span>
}

<strong><span style="color: #0000ff;">const</span></strong> <span style="color: #0000ff;"><strong>int</strong></span> numBuckets = <span style="color: #00ffff;">10</span>;
<span style="color: #0000ff;"><strong>const</strong></span> <span style="color: #0000ff;"><strong>float</strong></span> normalWeight = <strong><span style="color: #00ffff;">1.0f</span></strong>;
<strong><span style="color: #0000ff;">const</span></strong> <strong><span style="color: #0000ff;">float</span></strong> abnormalWeight = <span style="color: #00ffff;">1.01f</span>;
<span style="color: #0000ff;"><strong>const</strong></span> <span style="color: #0000ff;"><strong>float</strong></span> singleWeightDiff = abnormalWeight - normalWeight;

<span style="color: #008000;">// See <a href="http://en.wikipedia.org/wiki/Arithmetic_progression" onclick="javascript:pageTracker._trackPageview('/outbound/article/en.wikipedia.org');" target="_blank">http://en.wikipedia.org/wiki/Arithmetic_progression</a> on why
// this works.</span>
<span style="color: #0000ff;"><strong>const float</strong></span> expectedWeight = numBuckets * (numBuckets - <span style="color: #00ffff;">1</span>) * normalWeight / <span style="color: #00ffff;">2.0f</span>;

<span style="color: #0000ff;"><strong>int</strong></span> findHeavyBucket(<strong><span style="color: #0000ff;">int</span></strong> buckets[])
{
	<span style="color: #0000ff;"><strong>for</strong></span> (<span style="color: #0000ff;"><strong>int</strong></span> whichBucket = <span style="color: #00ffff;">0</span>; whichBucket &lt; numBuckets; whichBucket++)
	{
		transferSpheroids(whichBucket, buckets[whichBucket], <span style="color: #0000ff;">this</span>.EmptyBucket);
	}

	<span style="color: #0000ff;"><strong>float</strong></span> actualWeight = scale.Weigh(<span style="color: #0000ff;"><strong>this</strong></span>.EmptyBucket);
	<span style="color: #0000ff;"><strong>float</strong></span> totalWeightDiff = actualWeight - expectedWeight;

	return (<span style="color: #0000ff;"><strong>int</strong></span>)(totalWeightDiff / singleWeightDiff);
}

<span style="color: #0000ff;"><strong>int</strong></span> main()
{
	<span style="color: #008000;">// Set up the buckets, etc.
	// &#8230;</span>

	<span style="color: #0000ff;"><strong>int</strong></span> bucketContainingHeavies = findHeavyBucket(buckets);
}</pre>
<p><strong>Capt. Constructor:</strong> Of course there may be a syntax error or two in there. You&#8217;ll forgive me for not bringing my pocket compiler.</p>
<p><strong>Dr. Destructor:</strong> Arg! Foiled again! How were you able to solve it so quickly?</p>
<p><strong>Capt. Constructor:</strong> You made the mistake of labeling each of the buckets 0 through 9. That was just the clue I needed. It otherwise might have taken me 300 milliseconds or more.</p>
<p><strong>Dr. Destructor:</strong> Curses!</p>
<p><strong>Capt. Constructor:</strong> Remember, Destructor, nefariosity does not pay.</p>
<p><strong>Dr. Destructor:</strong> I believe you mean <a title="Nefariosity? Nefarity? Nefariousness!" href="http://answers.yahoo.com/question/index?qid=20080229195707AAGJtQn" onclick="javascript:pageTracker._trackPageview('/outbound/article/answers.yahoo.com');" target="_blank">nefariousness</a>.</p>
<p><strong>Capt. Constructor</strong>: Whatever.</p>
]]></content:encoded>
			<wfw:commentRss>http://nerdfortress.com/index.php/2008/05/16/100-balls-etc-the-exciting-conclusion/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.428 seconds -->
