<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.1" -->
<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/"
	>

<channel>
	<title>Morpheed &#187; Design</title>
	<link>http://morpheed.com</link>
	<description>News you can use.</description>
	<pubDate>Sat, 28 Jun 2008 18:21:21 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>
	<language>en</language>
			<item>
		<title>Orchid mantis</title>
		<link>http://www.37signals.com/svn/posts/1115-orchid-mantis</link>
		<comments>http://www.37signals.com/svn/posts/1115-orchid-mantis#comments</comments>
		<pubDate>Sat, 28 Jun 2008 01:15:00 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://www.37signals.com/svn/posts/1115-orchid-mantis</guid>
		<description><![CDATA[<p><img src="http://www.37signals.com/svn/images/orchid-mantis.jpg" width="530" height="398" /></p>


	<p><a href="http://flickr.com/photos/amberlschmidt/2087277881/"><img src="http://www.37signals.com/svn/images/orchid-mantis2.jpg" width="530" height="352" /></a></p>


	<p><a href="http://flickr.com/photos/sublimedart/861338436/"><img src="http://www.37signals.com/svn/images/orchid-mantis3.jpg" width="530" height="398" /></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/37signals/beMH?a=gnpK7I"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=gnpK7I" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=xyqeDi"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=xyqeDi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=ErwghI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=ErwghI" border="0"></img></a>
</div>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.37signals.com/svn/images/orchid-mantis.jpg" width="530" height="398" /></p>


	<p><a href="http://flickr.com/photos/amberlschmidt/2087277881/"><img src="http://www.37signals.com/svn/images/orchid-mantis2.jpg" width="530" height="352" /></a></p>


	<p><a href="http://flickr.com/photos/sublimedart/861338436/"><img src="http://www.37signals.com/svn/images/orchid-mantis3.jpg" width="530" height="398" /></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/37signals/beMH?a=gnpK7I"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=gnpK7I" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=xyqeDi"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=xyqeDi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=ErwghI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=ErwghI" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.37signals.com/svn/posts/1115-orchid-mantis/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A pleasant failure</title>
		<link>http://www.37signals.com/svn/posts/1114-a-pleasant-failure</link>
		<comments>http://www.37signals.com/svn/posts/1114-a-pleasant-failure#comments</comments>
		<pubDate>Fri, 27 Jun 2008 19:19:00 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://www.37signals.com/svn/posts/1114-a-pleasant-failure</guid>
		<description><![CDATA[<p>I just tried to <a href="http://smileonmymac.com/TextExpander/index.html">buy something</a> using my company AmEx card and accidentally entered the wrong security code. (AmEx has their code on the front of the card, not on the back like my personal check card.)</p>


	<p>Instead of a generic error message that told me the card was declined or couldn&#8217;t be accepted, I got this very specific error message that includes a detailed graphic. <em>A graphic!</em> What a pleasant failure message.</p>


	<p><img src="http://www.37signals.com/svn/images/58-nice.jpg" width=460></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/37signals/beMH?a=khwCQI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=khwCQI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=8Sn4Ti"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=8Sn4Ti" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=CBtW4I"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=CBtW4I" border="0"></img></a>
</div>]]></description>
			<content:encoded><![CDATA[<p>I just tried to <a href="http://smileonmymac.com/TextExpander/index.html">buy something</a> using my company AmEx card and accidentally entered the wrong security code. (AmEx has their code on the front of the card, not on the back like my personal check card.)</p>


	<p>Instead of a generic error message that told me the card was declined or couldn&#8217;t be accepted, I got this very specific error message that includes a detailed graphic. <em>A graphic!</em> What a pleasant failure message.</p>


	<p><img src="http://www.37signals.com/svn/images/58-nice.jpg" width=460></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/37signals/beMH?a=khwCQI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=khwCQI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=8Sn4Ti"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=8Sn4Ti" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=CBtW4I"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=CBtW4I" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.37signals.com/svn/posts/1114-a-pleasant-failure/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Product Blog update: Fluid &#038; 37signals, Jott &#038; Backpack, YouTube &#038; Campfire, etc.</title>
		<link>http://www.37signals.com/svn/posts/1113-product-blog-update-fluid-37signals-jott-backpack-youtube-campfire-etc</link>
		<comments>http://www.37signals.com/svn/posts/1113-product-blog-update-fluid-37signals-jott-backpack-youtube-campfire-etc#comments</comments>
		<pubDate>Fri, 27 Jun 2008 18:12:00 +0000</pubDate>
		<dc:creator>37signals</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://www.37signals.com/svn/posts/1113-product-blog-update-fluid-37signals-jott-backpack-youtube-campfire-etc</guid>
		<description><![CDATA[<p>Some recent posts at the <a href="http://productblog.37signals.com/">37signals Product Blog</a>:</p>


	<p><strong>Backpack</strong> <br />
<a href="http://37signals.blogs.com/products/2008/06/css-tip-for-cus.html"><span class="caps">CSS</span> tip for customizing the appearance of Backpack pages</a><br />
&#8220;You may sometimes wish you could modify the text on a page to fit a little more information on it. I have a page where I collect code snippets and terminal commands and the default font seems a bit large with so much content. Turns out there&#8217;s an easy solution to this: simply add a small amount of <span class="caps">CSS</span> to the page in the form of a note and you can change the formatting to meet your needs.&#8221;</p>


	<p><a href="http://37signals.blogs.com/products/2008/06/use-jott-to-tra.html">Use Jott to transcribe a voice message and post it to your Backpack homepage</a><br />
Jott converts your voice into emails, text messages, reminders, lists and appointments. You can even use it to transcribe a voice message and post it to your Backpack homepage.</p>


	<p><strong>Highrise</strong> <br />
<a href="http://37signals.blogs.com/products/2008/06/new-highrise-fe.html">New Highrise Feature: Better contact filtering</a><br />
We recently launched an improved contact filter in Highrise:</p>


<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="524" height="428" id="viddler_57aa3132"><param name="movie" value="http://www.viddler.com/player/57aa3132/" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><embed src="http://www.viddler.com/player/57aa3132/" width="524" height="428" type="application/x-shockwave-flash" allowScriptAccess="always" allowFullScreen="true" name="viddler_57aa3132" ></embed></object><br clear="all" /><br clear="all" /><strong>Campfire</strong> <br />
<a href="http://37signals.blogs.com/products/2008/06/youtube-clips-i.html">YouTube clips in Campfire</a><br />
Fun newish feature in Campfire: Post the <span class="caps">URL</span> to a YouTube clip into your chat and Campfire will automatically convert it so a still frame from the video shows up:

	<p><img src="http://www.37signals.com/svn/images/youtube_in_CF.png" width="461" height="404" alt="youtube in CF" /></p>


	<p><strong>Multiple products</strong> <br />
<a href="http://37signals.blogs.com/products/2008/06/case-study-trig.html">[Case Study] Trigger brings Los Angeles and Shanghai offices together with 37signals products</a><br />
&#8220;The best feature of Highrise, though, is the little line that appears after I&#8217;ve added a note, reminding me to add a follow-up task. I can&#8217;t think of how many times that&#8217;s prompted me to set a reminder for myself or schedule a follow-up with a client. When we&#8217;re busy, it&#8217;s so easy to forget to set a &#8216;next action&#8217; that having it built-in is a lifesaver.&#8221;</p>


	<p><a href="ccccc">How to use Fluid to &#8220;create a kick ass intranet app using 37signals&#8221;</a><br />
&#8220;Create a Kick Ass Intranet App using 37signals&#8221; explains how to use Open Bar and Fluid to create &#8220;a stylish intranet app that lives in your dock, complete with all of your 37signals services.&#8221;</p>


	<p><a href="feed://feeds.feedburner.com/typepad/37signals/products">Subscribe to the Product Blog <span class="caps"><span class="caps">RSS</span></span> feed.</a></p>
<p><map name="google_ad_map_yTfSaH61YGe2.JiHS4wlxp9oss4_"><area shape="rect" href="http://imageads.googleadservices.com/pagead/imgclick/yTfSaH61YGe2.JiHS4wlxp9oss4_?pos=0" coords="1,2,367,28"/><area shape="rect" href="http://services.google.com/feedback/abg" coords="384,10,453,23"/></map><img usemap="#google_ad_map_yTfSaH61YGe2.JiHS4wlxp9oss4_" border="0" src="http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&#038;client=ca-pub-5352009007442360&#038;output=png&#038;cuid=yTfSaH61YGe2.JiHS4wlxp9oss4_&#038;url=http%3A%2F%2Fwww.37signals.com%2Fsvn%2Fposts%2F1113-product-blog-update-fluid-37signals-jott-backpack-youtube-campfire-etc"/></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/37signals/beMH?a=VMXBMI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=VMXBMI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=7881zi"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=7881zi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=KV0LFI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=KV0LFI" border="0"></img></a>
</div>]]></description>
			<content:encoded><![CDATA[<p>Some recent posts at the <a href="http://productblog.37signals.com/">37signals Product Blog</a>:</p>


	<p><strong>Backpack</strong> <br />
<a href="http://37signals.blogs.com/products/2008/06/css-tip-for-cus.html"><span class="caps">CSS</span> tip for customizing the appearance of Backpack pages</a><br />
&#8220;You may sometimes wish you could modify the text on a page to fit a little more information on it. I have a page where I collect code snippets and terminal commands and the default font seems a bit large with so much content. Turns out there&#8217;s an easy solution to this: simply add a small amount of <span class="caps">CSS</span> to the page in the form of a note and you can change the formatting to meet your needs.&#8221;</p>


	<p><a href="http://37signals.blogs.com/products/2008/06/use-jott-to-tra.html">Use Jott to transcribe a voice message and post it to your Backpack homepage</a><br />
Jott converts your voice into emails, text messages, reminders, lists and appointments. You can even use it to transcribe a voice message and post it to your Backpack homepage.</p>


	<p><strong>Highrise</strong> <br />
<a href="http://37signals.blogs.com/products/2008/06/new-highrise-fe.html">New Highrise Feature: Better contact filtering</a><br />
We recently launched an improved contact filter in Highrise:</p>


<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="524" height="428" id="viddler_57aa3132"><param name="movie" value="http://www.viddler.com/player/57aa3132/" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><embed src="http://www.viddler.com/player/57aa3132/" width="524" height="428" type="application/x-shockwave-flash" allowScriptAccess="always" allowFullScreen="true" name="viddler_57aa3132" ></embed></object><br clear="all" /><br clear="all" /><strong>Campfire</strong> <br />
<a href="http://37signals.blogs.com/products/2008/06/youtube-clips-i.html">YouTube clips in Campfire</a><br />
Fun newish feature in Campfire: Post the <span class="caps">URL</span> to a YouTube clip into your chat and Campfire will automatically convert it so a still frame from the video shows up:

	<p><img src="http://www.37signals.com/svn/images/youtube_in_CF.png" width="461" height="404" alt="youtube in CF" /></p>


	<p><strong>Multiple products</strong> <br />
<a href="http://37signals.blogs.com/products/2008/06/case-study-trig.html">[Case Study] Trigger brings Los Angeles and Shanghai offices together with 37signals products</a><br />
&#8220;The best feature of Highrise, though, is the little line that appears after I&#8217;ve added a note, reminding me to add a follow-up task. I can&#8217;t think of how many times that&#8217;s prompted me to set a reminder for myself or schedule a follow-up with a client. When we&#8217;re busy, it&#8217;s so easy to forget to set a &#8216;next action&#8217; that having it built-in is a lifesaver.&#8221;</p>


	<p><a href="http://www.37signals.com/svn/posts/ccccc">How to use Fluid to &#8220;create a kick ass intranet app using 37signals&#8221;</a><br />
&#8220;Create a Kick Ass Intranet App using 37signals&#8221; explains how to use Open Bar and Fluid to create &#8220;a stylish intranet app that lives in your dock, complete with all of your 37signals services.&#8221;</p>


	<p><a href="feed://feeds.feedburner.com/typepad/37signals/products">Subscribe to the Product Blog <span class="caps"><span class="caps">RSS</span></span> feed.</a></p>
<p><map name="google_ad_map_yTfSaH61YGe2.JiHS4wlxp9oss4_"><area shape="rect" href="http://imageads.googleadservices.com/pagead/imgclick/yTfSaH61YGe2.JiHS4wlxp9oss4_?pos=0" coords="1,2,367,28"/><area shape="rect" href="http://services.google.com/feedback/abg" coords="384,10,453,23"/></map><img usemap="http://www.37signals.com/svn/posts/1113-product-blog-update-fluid-37signals-jott-backpack-youtube-campfire-etc#google_ad_map_yTfSaH61YGe2.JiHS4wlxp9oss4_" border="0" src="http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&client=ca-pub-5352009007442360&output=png&cuid=yTfSaH61YGe2.JiHS4wlxp9oss4_&url=http%3A%2F%2Fwww.37signals.com%2Fsvn%2Fposts%2F1113-product-blog-update-fluid-37signals-jott-backpack-youtube-campfire-etc"/></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/37signals/beMH?a=VMXBMI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=VMXBMI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=7881zi"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=7881zi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=KV0LFI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=KV0LFI" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.37signals.com/svn/posts/1113-product-blog-update-fluid-37signals-jott-backpack-youtube-campfire-etc/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The MBA myth</title>
		<link>http://www.37signals.com/svn/posts/1112-the-mba-myth</link>
		<comments>http://www.37signals.com/svn/posts/1112-the-mba-myth#comments</comments>
		<pubDate>Thu, 26 Jun 2008 17:01:00 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://www.37signals.com/svn/posts/1112-the-mba-myth</guid>
		<description><![CDATA[<p>There&#8217;s a popular book on entrepreneurship called <a href="http://www.amazon.com/E-Myth-Revisited-Small-Businesses-About/dp/0887307280/">The E-Myth</a> which claims that bakers shouldn&#8217;t run bakeries, plumbers shouldn&#8217;t run plumbing companies, and everyone else should think about how they could turn their small business into a franchise. On the face of it, there&#8217;s a lot of good advice about how you can&#8217;t just be a good baker if you don&#8217;t have a business bone in your body and expect commercial success.</p>


	<p>Problem is that the reverse is also often true. If you just put MBAs in place &#8212; or other professional managers without deep subject matter expertise &#8212; you&#8217;re equally unlikely to end up with an uninspiring business that fails to be passionate about the right things. To stay on the ball you need to know what&#8217;s a good pass and the best way to do that is to be able to make one yourself.</p>


	<p>Many of my favorite companies are driven by people at the top who intimately know how things should be because they could make them so. The obvious example is the detail-oriented nature of Steve Jobs at Apple. But a few other examples I like are <a href="http://www.classicdriver.com/uk/magazine/3200.asp?id=12117">Ulrich Bez at Aston Martin</a> who&#8217;s not only the <span class="caps">CEO</span> but also part of the company racing team at places like Le Mans. Or <a href="http://www.tp178.com/SJX/thierrynataf06/interviewV5.htm">Thierry Nataf at Zenith</a> who&#8217;s <span class="caps">CEO</span> and head designer of their luxury watches as well.</p>


	<p>But what made me think about all this was Joel Spolsky&#8217;s <a href="http://www.inc.com/magazine/20080701/how-hard-could-it-be-glory-days_Printer_Friendly.html">tale of a technical review with Bill Gates</a> back in the 90&#8217;s:</p>


<blockquote>Bill Gates was amazingly technical, and he knew more about the details of his company&#8217;s software than most of the people who worked on those details day in and day out. He understood Variants and <span class="caps">COM</span> objects and IDispatch and why Automation is different than vtables&#8212;and why this might lead to dual interfaces. He worried about date and time functions. He didn&#8217;t meddle in software if he trusted the people who were working on it, but you couldn&#8217;t bullshit him for a minute because he was a programmer. A real, actual programmer.</blockquote>

	<p>For people who love what they do, whether that&#8217;s programming, design, designing watches, or building cars, that&#8217;s a great motivation to not grow your company too quickly. Enjoy the time when you can actually be a full participant in the actual activities themselves, rather than just managing them.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/37signals/beMH?a=yKuniI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=yKuniI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=EJIkyi"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=EJIkyi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=zVch0I"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=zVch0I" border="0"></img></a>
</div>]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a popular book on entrepreneurship called <a href="http://www.amazon.com/E-Myth-Revisited-Small-Businesses-About/dp/0887307280/">The E-Myth</a> which claims that bakers shouldn&#8217;t run bakeries, plumbers shouldn&#8217;t run plumbing companies, and everyone else should think about how they could turn their small business into a franchise. On the face of it, there&#8217;s a lot of good advice about how you can&#8217;t just be a good baker if you don&#8217;t have a business bone in your body and expect commercial success.</p>


	<p>Problem is that the reverse is also often true. If you just put MBAs in place &mdash; or other professional managers without deep subject matter expertise &mdash; you&#8217;re equally unlikely to end up with an uninspiring business that fails to be passionate about the right things. To stay on the ball you need to know what&#8217;s a good pass and the best way to do that is to be able to make one yourself.</p>


	<p>Many of my favorite companies are driven by people at the top who intimately know how things should be because they could make them so. The obvious example is the detail-oriented nature of Steve Jobs at Apple. But a few other examples I like are <a href="http://www.classicdriver.com/uk/magazine/3200.asp?id=12117">Ulrich Bez at Aston Martin</a> who&#8217;s not only the <span class="caps">CEO</span> but also part of the company racing team at places like Le Mans. Or <a href="http://www.tp178.com/SJX/thierrynataf06/interviewV5.htm">Thierry Nataf at Zenith</a> who&#8217;s <span class="caps">CEO</span> and head designer of their luxury watches as well.</p>


	<p>But what made me think about all this was Joel Spolsky&#8217;s <a href="http://www.inc.com/magazine/20080701/how-hard-could-it-be-glory-days_Printer_Friendly.html">tale of a technical review with Bill Gates</a> back in the 90&#8217;s:</p>


<blockquote>Bill Gates was amazingly technical, and he knew more about the details of his company&#8217;s software than most of the people who worked on those details day in and day out. He understood Variants and <span class="caps">COM</span> objects and IDispatch and why Automation is different than vtables&#8212;and why this might lead to dual interfaces. He worried about date and time functions. He didn&#8217;t meddle in software if he trusted the people who were working on it, but you couldn&#8217;t bullshit him for a minute because he was a programmer. A real, actual programmer.</blockquote>

	<p>For people who love what they do, whether that&#8217;s programming, design, designing watches, or building cars, that&#8217;s a great motivation to not grow your company too quickly. Enjoy the time when you can actually be a full participant in the actual activities themselves, rather than just managing them.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/37signals/beMH?a=yKuniI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=yKuniI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=EJIkyi"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=EJIkyi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=zVch0I"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=zVch0I" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.37signals.com/svn/posts/1112-the-mba-myth/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[Design Decisions] Basecamp support request form</title>
		<link>http://www.37signals.com/svn/posts/1111-design-decisions-basecamp-support-request-form</link>
		<comments>http://www.37signals.com/svn/posts/1111-design-decisions-basecamp-support-request-form#comments</comments>
		<pubDate>Thu, 26 Jun 2008 13:20:00 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://www.37signals.com/svn/posts/1111-design-decisions-basecamp-support-request-form</guid>
		<description><![CDATA[<p>We recently added a <a href="http://www.basecamphq.com/help/support">support request form</a> to <a href="http://www.basecamphq.com">Basecamp</a> (there used to be just a direct email link). The goal of this form: To prioritize support inquiries, reduce uncertainty, and get people the answers they need faster. It also reduces the number of back and forth information-gathering emails, which ultimately makes everyone more satisfied with the support experience.</p>


	<p>It&#8217;s worked really well so far too. But the last question in the original form was missing the mark:</p>


	<p><img src="http://www.37signals.com/svn/images/help_pulldown.png" width="374" height="195" alt="orig pulldown" /></p>


	<p>We wanted to know how important the problem was and gauge the emotional state of the person writing to us. But this pulldown just didn&#8217;t cut it.</p>


	<p>First off, it required too much reading for a pulldown menu. Who wants to process this much info when there&#8217;s a problem? Also bad: It&#8217;s a pulldown but the options aren&#8217;t mutually exclusive. Someone could very well be confused <span class="caps">AND</span> worried <span class="caps">AND</span> upset. This pulldown just muddies the waters.</p>


	<p>So we decided to change it to an actual scale. 1 = not a big deal, 4 = I need help <span class="caps">ASAP</span>.</p>


	<p><img src="http://www.37signals.com/svn/images/help_pulldown_new.png" width="" height="" alt="newer pulldown" /></p>


	<p>Much easier to process but it still wasn&#8217;t helping us learn whether or not this query was a top priority or not. Why? Because everyone&#8217;s problem is urgent.</p>


	<p>For example, let&#8217;s say someone&#8217;s having trouble uploading a file. If they can&#8217;t figure out how to upload a file, they&#8217;ll say it&#8217;s urgent. If file uploading is broken, they&#8217;ll still say it&#8217;s urgent.</p>


	<p>That&#8217;s no help to us. Of course, we&#8217;ll get back to them either way. But if file uploading is broken, we need to know that immediately so we can fix it. If it&#8217;s just confusing someone, that&#8217;s a different ballgame. We&#8217;ll still quickly resolve the issue, but it&#8217;s not a fire that has to be put out instantly.</p>


	<p>We thought about adding in a radio button question that asked &#8220;Is something broken?&#8221; But we didn&#8217;t want to make the form any longer. (No one likes feeling interrogated while seeking help.)</p>


	<p>So we went back to the drawing board and came up with this solution:</p>


	<p><img src="http://www.37signals.com/svn/images/type_issue.png" width="432" height="205" alt="type" /></p>


	<p>This gets at what we really want to know here: What kind of problem is this? We lost the subjective nature of the original &#8220;give us your emotional state&#8221; question and replaced it with a clear question with a clear answer. It&#8217;s better to ask for facts than emotions.</p>


	<p>Now, if something&#8217;s broken, we can spot it and fix it right away. A system failure is much more important to us (and our customers) than a feature request or general feedback. This method lets us prioritize these queries accordingly, instead of treating them like they&#8217;re all the same.</p>


	<p><strong>Related</strong>: <a href="http://gettingreal.37signals.com/ch09_Copywriting_is_Interface_Design.php">Copywriting is Interface Design</a> [Getting Real]</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/37signals/beMH?a=Gd9dmI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=Gd9dmI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=durCTi"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=durCTi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=CXeBlI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=CXeBlI" border="0"></img></a>
</div>]]></description>
			<content:encoded><![CDATA[<p>We recently added a <a href="http://www.basecamphq.com/help/support">support request form</a> to <a href="http://www.basecamphq.com">Basecamp</a> (there used to be just a direct email link). The goal of this form: To prioritize support inquiries, reduce uncertainty, and get people the answers they need faster. It also reduces the number of back and forth information-gathering emails, which ultimately makes everyone more satisfied with the support experience.</p>


	<p>It&#8217;s worked really well so far too. But the last question in the original form was missing the mark:</p>


	<p><img src="http://www.37signals.com/svn/images/help_pulldown.png" width="374" height="195" alt="orig pulldown" /></p>


	<p>We wanted to know how important the problem was and gauge the emotional state of the person writing to us. But this pulldown just didn&#8217;t cut it.</p>


	<p>First off, it required too much reading for a pulldown menu. Who wants to process this much info when there&#8217;s a problem? Also bad: It&#8217;s a pulldown but the options aren&#8217;t mutually exclusive. Someone could very well be confused <span class="caps">AND</span> worried <span class="caps">AND</span> upset. This pulldown just muddies the waters.</p>


	<p>So we decided to change it to an actual scale. 1 = not a big deal, 4 = I need help <span class="caps">ASAP</span>.</p>


	<p><img src="http://www.37signals.com/svn/images/help_pulldown_new.png" width="" height="" alt="newer pulldown" /></p>


	<p>Much easier to process but it still wasn&#8217;t helping us learn whether or not this query was a top priority or not. Why? Because everyone&#8217;s problem is urgent.</p>


	<p>For example, let&#8217;s say someone&#8217;s having trouble uploading a file. If they can&#8217;t figure out how to upload a file, they&#8217;ll say it&#8217;s urgent. If file uploading is broken, they&#8217;ll still say it&#8217;s urgent.</p>


	<p>That&#8217;s no help to us. Of course, we&#8217;ll get back to them either way. But if file uploading is broken, we need to know that immediately so we can fix it. If it&#8217;s just confusing someone, that&#8217;s a different ballgame. We&#8217;ll still quickly resolve the issue, but it&#8217;s not a fire that has to be put out instantly.</p>


	<p>We thought about adding in a radio button question that asked &#8220;Is something broken?&#8221; But we didn&#8217;t want to make the form any longer. (No one likes feeling interrogated while seeking help.)</p>


	<p>So we went back to the drawing board and came up with this solution:</p>


	<p><img src="http://www.37signals.com/svn/images/type_issue.png" width="432" height="205" alt="type" /></p>


	<p>This gets at what we really want to know here: What kind of problem is this? We lost the subjective nature of the original &#8220;give us your emotional state&#8221; question and replaced it with a clear question with a clear answer. It&#8217;s better to ask for facts than emotions.</p>


	<p>Now, if something&#8217;s broken, we can spot it and fix it right away. A system failure is much more important to us (and our customers) than a feature request or general feedback. This method lets us prioritize these queries accordingly, instead of treating them like they&#8217;re all the same.</p>


	<p><strong>Related</strong>: <a href="http://gettingreal.37signals.com/ch09_Copywriting_is_Interface_Design.php">Copywriting is Interface Design</a> [Getting Real]</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/37signals/beMH?a=Gd9dmI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=Gd9dmI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=durCTi"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=durCTi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=CXeBlI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=CXeBlI" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.37signals.com/svn/posts/1111-design-decisions-basecamp-support-request-form/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mike Rohde&#8217;s amazing sketchnotes from SEED 3</title>
		<link>http://www.37signals.com/svn/posts/1107-mike-rohdes-amazing-sketchnotes-from-seed-3</link>
		<comments>http://www.37signals.com/svn/posts/1107-mike-rohdes-amazing-sketchnotes-from-seed-3#comments</comments>
		<pubDate>Wed, 25 Jun 2008 16:23:00 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://www.37signals.com/svn/posts/1107-mike-rohdes-amazing-sketchnotes-from-seed-3</guid>
		<description><![CDATA[<p><a href="http://www.rohdesign.com/weblog/">Mike Rohde</a> did another great job <a href="http://www.flickr.com/photos/rohdesign/sets/72157605489759516/">drawing sketchnotes at the <span class="caps">SEED 3</span> Conference on June 6th, 2008</a>:</p>


	<p><img src="http://www.37signals.com/svn/images/2559574197_b9a01bf721.jpg" width="500" height="395" alt="SEED 3" /></p>


	<p><img src="http://www.37signals.com/svn/images/2559575595_197a1402d8.jpg" width="500" height="395" alt="SEED 3" /></p>


	<p><img src="http://www.37signals.com/svn/images/2559576399_17fe535782.jpg" width="500" height="395" alt="SEED 3" /><img src="http://www.37signals.com/svn/images/2560396196_4b4c975a31.jpg" width="500" height="395" alt="SEED 3" /></p>


	<p><img src="http://www.37signals.com/svn/images/2560396590_9c7d431ede.jpg" width="500" height="395" alt="SEED 3" /></p>


	<p><img src="http://www.37signals.com/svn/images/2560396900_d13162a182.jpg" width="500" height="395" alt="SEED 3" /></p>


	<p><img src="http://www.37signals.com/svn/images/2560397416_ca96160934.jpg" width="500" height="395" alt="SEED 3" /></p>


	<p><img src="http://www.37signals.com/svn/images/2560397722_354e15dea0.jpg" width="500" height="395" alt="SEED 3" /></p>


	<p><img src="http://www.37signals.com/svn/images/2560398294_30aea8e0cc.jpg" width="500" height="395" alt="SEED 3" /></p>


	<p><img src="http://www.37signals.com/svn/images/2560398592_fe47ac6d60.jpg" width="500" height="395" alt="SEED 3" /></p>


	<p><img src="http://www.37signals.com/svn/images/2560398882_a7745a0987.jpg" width="500" height="395" alt="SEED 3" /></p>


	<p><img src="http://www.37signals.com/svn/images/2560399182_f416085d05.jpg" width="500" height="395" alt="SEED 3" /></p>


	<p><img src="http://www.37signals.com/svn/images/2560399516_6dda23d871.jpg" width="500" height="395" alt="SEED 3" /></p>


	<p>The Chicago Reader was also at <span class="caps">SEED 3</span> and published this profile: <a href="http://www.chicagoreader.com/features/stories/thebusiness/080619/">&#8220;How to Make Money on the Internet: Do what you love, and other tips from the Web cowboys at the Seed Conference.&#8221;</a> Includes this great quote from <a href="http://garyvaynerchuk.com/">Gary V</a>:</p>


<blockquote>Don’t quit your job to become the queen of cheese. But if you’re doing something that blows and you hate it, go work at 7-Eleven to pay your bills and spend every other hour building your personal plan. If you work 9 AM to 6 PM and get home at 7, whatever you put in between 7 and 3 AM is what you’re gonna get in return. You want to watch Lost? Knock yourself out. I don’t watch shit. I don’t read shit. I’m all about my community and putting out content. I don’t consume. I put out.</blockquote>

	<p><strong>Related</strong>: <a href="http://www.37signals.com/svn/posts/680-mike-rohdes-seed-conference-2007-sketchbook-notes">Mike Rohde&#8217;s <span class="caps">SEED</span> Conference 2007 sketchbook notes</a> [SvN]</p>
<p><map name="google_ad_map_5xvoPthMIgNkzrXb4tB7jBYnfjc_"><area shape="rect" href="http://imageads.googleadservices.com/pagead/imgclick/5xvoPthMIgNkzrXb4tB7jBYnfjc_?pos=0" coords="1,2,367,28"/><area shape="rect" href="http://services.google.com/feedback/abg" coords="384,10,453,23"/></map><img usemap="#google_ad_map_5xvoPthMIgNkzrXb4tB7jBYnfjc_" border="0" src="http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&#038;client=ca-pub-5352009007442360&#038;output=png&#038;cuid=5xvoPthMIgNkzrXb4tB7jBYnfjc_&#038;url=http%3A%2F%2Fwww.37signals.com%2Fsvn%2Fposts%2F1107-mike-rohdes-amazing-sketchnotes-from-seed-3"/></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/37signals/beMH?a=IpbJVI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=IpbJVI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=AzxdXi"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=AzxdXi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=weH0CI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=weH0CI" border="0"></img></a>
</div>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.rohdesign.com/weblog/">Mike Rohde</a> did another great job <a href="http://www.flickr.com/photos/rohdesign/sets/72157605489759516/">drawing sketchnotes at the <span class="caps">SEED 3</span> Conference on June 6th, 2008</a>:</p>


	<p><img src="http://www.37signals.com/svn/images/2559574197_b9a01bf721.jpg" width="500" height="395" alt="SEED 3" /></p>


	<p><img src="http://www.37signals.com/svn/images/2559575595_197a1402d8.jpg" width="500" height="395" alt="SEED 3" /></p>


	<p><img src="http://www.37signals.com/svn/images/2559576399_17fe535782.jpg" width="500" height="395" alt="SEED 3" /><img src="http://www.37signals.com/svn/images/2560396196_4b4c975a31.jpg" width="500" height="395" alt="SEED 3" /></p>


	<p><img src="http://www.37signals.com/svn/images/2560396590_9c7d431ede.jpg" width="500" height="395" alt="SEED 3" /></p>


	<p><img src="http://www.37signals.com/svn/images/2560396900_d13162a182.jpg" width="500" height="395" alt="SEED 3" /></p>


	<p><img src="http://www.37signals.com/svn/images/2560397416_ca96160934.jpg" width="500" height="395" alt="SEED 3" /></p>


	<p><img src="http://www.37signals.com/svn/images/2560397722_354e15dea0.jpg" width="500" height="395" alt="SEED 3" /></p>


	<p><img src="http://www.37signals.com/svn/images/2560398294_30aea8e0cc.jpg" width="500" height="395" alt="SEED 3" /></p>


	<p><img src="http://www.37signals.com/svn/images/2560398592_fe47ac6d60.jpg" width="500" height="395" alt="SEED 3" /></p>


	<p><img src="http://www.37signals.com/svn/images/2560398882_a7745a0987.jpg" width="500" height="395" alt="SEED 3" /></p>


	<p><img src="http://www.37signals.com/svn/images/2560399182_f416085d05.jpg" width="500" height="395" alt="SEED 3" /></p>


	<p><img src="http://www.37signals.com/svn/images/2560399516_6dda23d871.jpg" width="500" height="395" alt="SEED 3" /></p>


	<p>The Chicago Reader was also at <span class="caps">SEED 3</span> and published this profile: <a href="http://www.chicagoreader.com/features/stories/thebusiness/080619/">&#8220;How to Make Money on the Internet: Do what you love, and other tips from the Web cowboys at the Seed Conference.&#8221;</a> Includes this great quote from <a href="http://garyvaynerchuk.com/">Gary V</a>:</p>


<blockquote>Don’t quit your job to become the queen of cheese. But if you’re doing something that blows and you hate it, go work at 7-Eleven to pay your bills and spend every other hour building your personal plan. If you work 9 AM to 6 PM and get home at 7, whatever you put in between 7 and 3 AM is what you’re gonna get in return. You want to watch Lost? Knock yourself out. I don’t watch shit. I don’t read shit. I’m all about my community and putting out content. I don’t consume. I put out.</blockquote>

	<p><strong>Related</strong>: <a href="http://www.37signals.com/svn/posts/680-mike-rohdes-seed-conference-2007-sketchbook-notes">Mike Rohde&#8217;s <span class="caps">SEED</span> Conference 2007 sketchbook notes</a> [SvN]</p>
<p><map name="google_ad_map_5xvoPthMIgNkzrXb4tB7jBYnfjc_"><area shape="rect" href="http://imageads.googleadservices.com/pagead/imgclick/5xvoPthMIgNkzrXb4tB7jBYnfjc_?pos=0" coords="1,2,367,28"/><area shape="rect" href="http://services.google.com/feedback/abg" coords="384,10,453,23"/></map><img usemap="http://www.37signals.com/svn/posts/1107-mike-rohdes-amazing-sketchnotes-from-seed-3#google_ad_map_5xvoPthMIgNkzrXb4tB7jBYnfjc_" border="0" src="http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&client=ca-pub-5352009007442360&output=png&cuid=5xvoPthMIgNkzrXb4tB7jBYnfjc_&url=http%3A%2F%2Fwww.37signals.com%2Fsvn%2Fposts%2F1107-mike-rohdes-amazing-sketchnotes-from-seed-3"/></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/37signals/beMH?a=IpbJVI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=IpbJVI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=AzxdXi"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=AzxdXi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=weH0CI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=weH0CI" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.37signals.com/svn/posts/1107-mike-rohdes-amazing-sketchnotes-from-seed-3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What belongs in a helper method?</title>
		<link>http://www.37signals.com/svn/posts/1108-what-belongs-in-a-helper-method</link>
		<comments>http://www.37signals.com/svn/posts/1108-what-belongs-in-a-helper-method#comments</comments>
		<pubDate>Tue, 24 Jun 2008 19:17:00 +0000</pubDate>
		<dc:creator>ryan</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://www.37signals.com/svn/posts/1108-what-belongs-in-a-helper-method</guid>
		<description><![CDATA[<p>I&#8217;m working on some improvements to Basecamp, specifically the screens where you manage which people have access to a project. There&#8217;s an area on our new template with checkboxes beside peoples&#8217; names so you can check which people should be added to your project. I want to apply a class name to the label tag around the checkbox for each person. So I pulled up the template and searched for &#8220;label&#8221; to find where I might add the class name. There were no matches. So I dug deeper, and saw that the <span class="caps">HTML</span> for the label, checkbox, and person name is being generated by a Rails helper method.</p>


	<p>This is the template code that calls the helper method.</p>


<pre>
&#60;% people_without_access_from(company).each do &#124;person&#124; %&#62;
  &#60;%= add_person_to_project_check_box(person, company) %&#62;
&#60;% end %&#62;
</pre>

	<p>Next I pulled up the helper method to see if it really is responsible for producing a chunk of <span class="caps">HTML</span> with the label and checkbox.</p>


<pre>
def add_person_to_project_check_box(person, company)
  content_tag(:label, 
    check_box_tag("people_ids[]", person.id, false, { :class =&#62; "company_#{company.id}_person" }) +
    " " + person.name
  ) + tag(:br)
end
</pre>

	<p>Yup, it&#8217;s generating the <span class="caps">HTML</span>. Right away this smells bad to me. The helper is first generating a label tag. Inside that label, there is a checkbox followed by a space character and the person&#8217;s name. Finally a break is appended after the label. This smells bad for two reasons. First, it&#8217;s just not so nice for helpers to cook out <span class="caps">HTML</span> when they don&#8217;t have a good reason to. Second, it&#8217;s harder to locate and change <span class="caps">HTML</span> when it&#8217;s hidden inside a helper.</p>


	<p>Returning to my original goal, I wanted to add a class name to the label around this checkbox. If I add the class name to the existing helper, it&#8217;s going to get even more messy and complicated because I have to give content_tag an attribute with the class name I want. It would look like this:</p>


<pre>
def add_person_to_project_check_box(person, company)
  content_tag(:label, 
    (check_box_tag("people_ids[]", person.id, false, { :class =&#62; "company_#{company.id}_person" }) +
    " " + person.name
    ), :class =&#62; 'checkbox') + tag(:br)
end
</pre>

	<p>To find a better solution, we should rethink what the helper should be responsible for. Helpers are useful when they hide complexity that isn&#8217;t relevant to the template. Looking at this helper method, I see that it&#8217;s useful to hide away check_box_tag with all those params. But the label, the break, and even the person&#8217;s name could all be in the <span class="caps">HTML</span> and the template would be clearer. Let&#8217;s do that.</p>


	<p>Here&#8217;s the new helper. Now it only produces the checkbox.</p>


<pre>
def add_person_to_project_check_box(person, company)
  check_box_tag("people_ids[]", person.id, false, { :class =&#62; "company_#{company.id}_person" })
end
</pre>

	<p>And here&#8217;s the updated template code, with the label, person name, and break moved over.</p>


<pre>
&#60;% people_without_access_from(company).each do &#124;person&#124; %&#62;
  &#60;label class="checkbox"&#62;
    &#60;%= add_person_to_project_check_box(person, company) %&#62; &#60;%= person.name %&#62;
  &#60;/label&#62;&#60;br /&#62;
&#60;% end %&#62;
</pre>

	<p>Now that&#8217;s a lot easier to read. Generally speaking, it&#8217;s a good idea to keep your <span class="caps">HTML</span> in your templates and out of your helpers. Helpers are useful when they hide implementation details that are irrelevant to your template, or when they allow you to abstract common template code to avoid repetition. If you find yourself generating a lot of <span class="caps">HTML</span> in a helper, think twice and try to keep as much <span class="caps">HTML</span> in your template as possible.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/37signals/beMH?a=5zJ8yI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=5zJ8yI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=sY52ri"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=sY52ri" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=0Z0I9I"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=0Z0I9I" border="0"></img></a>
</div>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working on some improvements to Basecamp, specifically the screens where you manage which people have access to a project. There&#8217;s an area on our new template with checkboxes beside peoples&#8217; names so you can check which people should be added to your project. I want to apply a class name to the label tag around the checkbox for each person. So I pulled up the template and searched for &#8220;label&#8221; to find where I might add the class name. There were no matches. So I dug deeper, and saw that the <span class="caps">HTML</span> for the label, checkbox, and person name is being generated by a Rails helper method.</p>


	<p>This is the template code that calls the helper method.</p>


<pre>
&lt;% people_without_access_from(company).each do |person| %&gt;
  &lt;%= add_person_to_project_check_box(person, company) %&gt;
&lt;% end %&gt;
</pre>

	<p>Next I pulled up the helper method to see if it really is responsible for producing a chunk of <span class="caps">HTML</span> with the label and checkbox.</p>


<pre>
def add_person_to_project_check_box(person, company)
  content_tag(:label, 
    check_box_tag("people_ids[]", person.id, false, { :class =&gt; "company_#{company.id}_person" }) +
    " " + person.name
  ) + tag(:br)
end
</pre>

	<p>Yup, it&#8217;s generating the <span class="caps">HTML</span>. Right away this smells bad to me. The helper is first generating a label tag. Inside that label, there is a checkbox followed by a space character and the person&#8217;s name. Finally a break is appended after the label. This smells bad for two reasons. First, it&#8217;s just not so nice for helpers to cook out <span class="caps">HTML</span> when they don&#8217;t have a good reason to. Second, it&#8217;s harder to locate and change <span class="caps">HTML</span> when it&#8217;s hidden inside a helper.</p>


	<p>Returning to my original goal, I wanted to add a class name to the label around this checkbox. If I add the class name to the existing helper, it&#8217;s going to get even more messy and complicated because I have to give content_tag an attribute with the class name I want. It would look like this:</p>


<pre>
def add_person_to_project_check_box(person, company)
  content_tag(:label, 
    (check_box_tag("people_ids[]", person.id, false, { :class =&gt; "company_#{company.id}_person" }) +
    " " + person.name
    ), :class =&gt; 'checkbox') + tag(:br)
end
</pre>

	<p>To find a better solution, we should rethink what the helper should be responsible for. Helpers are useful when they hide complexity that isn&#8217;t relevant to the template. Looking at this helper method, I see that it&#8217;s useful to hide away check_box_tag with all those params. But the label, the break, and even the person&#8217;s name could all be in the <span class="caps">HTML</span> and the template would be clearer. Let&#8217;s do that.</p>


	<p>Here&#8217;s the new helper. Now it only produces the checkbox.</p>


<pre>
def add_person_to_project_check_box(person, company)
  check_box_tag("people_ids[]", person.id, false, { :class =&gt; "company_#{company.id}_person" })
end
</pre>

	<p>And here&#8217;s the updated template code, with the label, person name, and break moved over.</p>


<pre>
&lt;% people_without_access_from(company).each do |person| %&gt;
  &lt;label class="checkbox"&gt;
    &lt;%= add_person_to_project_check_box(person, company) %&gt; &lt;%= person.name %&gt;
  &lt;/label&gt;&lt;br /&gt;
&lt;% end %&gt;
</pre>

	<p>Now that&#8217;s a lot easier to read. Generally speaking, it&#8217;s a good idea to keep your <span class="caps">HTML</span> in your templates and out of your helpers. Helpers are useful when they hide implementation details that are irrelevant to your template, or when they allow you to abstract common template code to avoid repetition. If you find yourself generating a lot of <span class="caps">HTML</span> in a helper, think twice and try to keep as much <span class="caps">HTML</span> in your template as possible.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/37signals/beMH?a=5zJ8yI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=5zJ8yI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=sY52ri"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=sY52ri" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=0Z0I9I"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=0Z0I9I" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.37signals.com/svn/posts/1108-what-belongs-in-a-helper-method/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Choosing the right things to say no to</title>
		<link>http://www.37signals.com/svn/posts/1105-choosing-the-right-things-to-say-no-to</link>
		<comments>http://www.37signals.com/svn/posts/1105-choosing-the-right-things-to-say-no-to#comments</comments>
		<pubDate>Tue, 24 Jun 2008 14:55:00 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://www.37signals.com/svn/posts/1105-choosing-the-right-things-to-say-no-to</guid>
		<description><![CDATA[<p>“I’ve made much more money by choosing the right things to say no to than by choosing things to say yes to. I measure it by the money I haven’t lost and the quality I haven’t sacrificed.” <br />
-Danny Meyer of the Union Square Hospitality Group</p>


	<p>Great quote. From the book <a href="http://www.smallgiantsbook.com/about.html">Small Giants: Companies That Choose to Be Great Instead of Big</a>. More about the book:</p>


<blockquote>

	<p>It’s a widely accepted axiom of business that great companies grow their revenues and profits year after year. Yet quietly, under the radar, some entrepreneurs have rejected the pressure of endless growth to focus on more satisfying business goals. Goals like being great at what they do . . . creating a great place to work . . . provid-ing great customer service . . . making great contributions to their communities . . . and finding great ways to lead their lives.</p>


	<p>In Small Giants, veteran journalist Bo Burlingham takes us deep inside fourteen remarkable privately held companies, in widely varying industries across the country, that have chosen to march to their own drummer. He searches for the magic ingredients that give these companies their unique “mojo” and the lessons we can learn from them.</p>


</blockquote>

	<p><strong>Related:</strong> <a href="http://www.37signals.com/svn/posts/262-danny-meyer-hospitality-is-king">Danny Meyer: Hospitality is king</a> [SvN]</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/37signals/beMH?a=sCgCPI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=sCgCPI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=dHlvhi"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=dHlvhi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=s6ZAqI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=s6ZAqI" border="0"></img></a>
</div>]]></description>
			<content:encoded><![CDATA[<p>“I’ve made much more money by choosing the right things to say no to than by choosing things to say yes to. I measure it by the money I haven’t lost and the quality I haven’t sacrificed.” <br />
-Danny Meyer of the Union Square Hospitality Group</p>


	<p>Great quote. From the book <a href="http://www.smallgiantsbook.com/about.html">Small Giants: Companies That Choose to Be Great Instead of Big</a>. More about the book:</p>


<blockquote>

	<p>It’s a widely accepted axiom of business that great companies grow their revenues and profits year after year. Yet quietly, under the radar, some entrepreneurs have rejected the pressure of endless growth to focus on more satisfying business goals. Goals like being great at what they do . . . creating a great place to work . . . provid-ing great customer service . . . making great contributions to their communities . . . and finding great ways to lead their lives.</p>


	<p>In Small Giants, veteran journalist Bo Burlingham takes us deep inside fourteen remarkable privately held companies, in widely varying industries across the country, that have chosen to march to their own drummer. He searches for the magic ingredients that give these companies their unique “mojo” and the lessons we can learn from them.</p>


</blockquote>

	<p><strong>Related:</strong> <a href="http://www.37signals.com/svn/posts/262-danny-meyer-hospitality-is-king">Danny Meyer: Hospitality is king</a> [SvN]</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/37signals/beMH?a=sCgCPI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=sCgCPI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=dHlvhi"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=dHlvhi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=s6ZAqI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=s6ZAqI" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.37signals.com/svn/posts/1105-choosing-the-right-things-to-say-no-to/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The new Cartype</title>
		<link>http://www.37signals.com/svn/posts/1104-the-new-cartype</link>
		<comments>http://www.37signals.com/svn/posts/1104-the-new-cartype#comments</comments>
		<pubDate>Tue, 24 Jun 2008 13:15:00 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://www.37signals.com/svn/posts/1104-the-new-cartype</guid>
		<description><![CDATA[<p>Our friend, and former 37signals-founder, Carlos Segura has redesigned <a href="http://www.cartype.com">Cartype</a>: &#8220;A museum of automobile typography&#8221;. Very nice redesign (here&#8217;s the <a href="http://old.cartype.com/">old site</a> for comparison).</p>


	<p>But it&#8217;s really so much more than that. Take his museum of <a href="http://www.cartype.com/pages/738/gauge_clusters">gauge clusters</a>:</p>


	<p><a href="http://www.cartype.com/pages/738/gauge_clusters"><img src="http://www.cartype.com/pics/3632/small/audi_r8_in_det2.jpg"></a></p>


	<p>Or his obsessive collection of <a href="http://www.cartype.com/list/83/emblems_by_brand">brand emblems</a>:</p>


	<p><a href="http://www.cartype.com/list/83/emblems_by_brand"><img src="http://www.cartype.com/pics/1600/small/bugatti_emblem_9.jpg"></a></p>


	<p>If you dig cars, you really outta check out the new <a href="http://www.cartype.com">Cartype</a>.</p>
<p><map name="google_ad_map_qrVVKjrEtik9dPGGZpBNfcAiJPg_"><area shape="rect" href="http://imageads.googleadservices.com/pagead/imgclick/qrVVKjrEtik9dPGGZpBNfcAiJPg_?pos=0" coords="1,2,367,28"/><area shape="rect" href="http://services.google.com/feedback/abg" coords="384,10,453,23"/></map><img usemap="#google_ad_map_qrVVKjrEtik9dPGGZpBNfcAiJPg_" border="0" src="http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&#038;client=ca-pub-5352009007442360&#038;output=png&#038;cuid=qrVVKjrEtik9dPGGZpBNfcAiJPg_&#038;url=http%3A%2F%2Fwww.37signals.com%2Fsvn%2Fposts%2F1104-the-new-cartype"/></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/37signals/beMH?a=cz2giI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=cz2giI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=1tzpDi"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=1tzpDi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=yEBMAI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=yEBMAI" border="0"></img></a>
</div>]]></description>
			<content:encoded><![CDATA[<p>Our friend, and former 37signals-founder, Carlos Segura has redesigned <a href="http://www.cartype.com">Cartype</a>: &#8220;A museum of automobile typography&#8221;. Very nice redesign (here&#8217;s the <a href="http://old.cartype.com/">old site</a> for comparison).</p>


	<p>But it&#8217;s really so much more than that. Take his museum of <a href="http://www.cartype.com/pages/738/gauge_clusters">gauge clusters</a>:</p>


	<p><a href="http://www.cartype.com/pages/738/gauge_clusters"><img src="http://www.cartype.com/pics/3632/small/audi_r8_in_det2.jpg"></a></p>


	<p>Or his obsessive collection of <a href="http://www.cartype.com/list/83/emblems_by_brand">brand emblems</a>:</p>


	<p><a href="http://www.cartype.com/list/83/emblems_by_brand"><img src="http://www.cartype.com/pics/1600/small/bugatti_emblem_9.jpg"></a></p>


	<p>If you dig cars, you really outta check out the new <a href="http://www.cartype.com">Cartype</a>.</p>
<p><map name="google_ad_map_qrVVKjrEtik9dPGGZpBNfcAiJPg_"><area shape="rect" href="http://imageads.googleadservices.com/pagead/imgclick/qrVVKjrEtik9dPGGZpBNfcAiJPg_?pos=0" coords="1,2,367,28"/><area shape="rect" href="http://services.google.com/feedback/abg" coords="384,10,453,23"/></map><img usemap="http://www.37signals.com/svn/posts/1104-the-new-cartype#google_ad_map_qrVVKjrEtik9dPGGZpBNfcAiJPg_" border="0" src="http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&client=ca-pub-5352009007442360&output=png&cuid=qrVVKjrEtik9dPGGZpBNfcAiJPg_&url=http%3A%2F%2Fwww.37signals.com%2Fsvn%2Fposts%2F1104-the-new-cartype"/></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/37signals/beMH?a=cz2giI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=cz2giI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=1tzpDi"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=1tzpDi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=yEBMAI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=yEBMAI" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.37signals.com/svn/posts/1104-the-new-cartype/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Generous link targets in the library</title>
		<link>http://www.37signals.com/svn/posts/1103-generous-link-targets-in-the-library</link>
		<comments>http://www.37signals.com/svn/posts/1103-generous-link-targets-in-the-library#comments</comments>
		<pubDate>Mon, 23 Jun 2008 17:34:00 +0000</pubDate>
		<dc:creator>ryan</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://www.37signals.com/svn/posts/1103-generous-link-targets-in-the-library</guid>
		<description><![CDATA[<p>I love me some <a href="http://www.37signals.com/svn/posts/1048-padded-link-targets-for-better-mousing">padded link targets</a> and today&#8217;s provider is <a href="http://aworkinglibrary.com/index.php/library/">a Working Library</a>.</p>


	<p>The site is about books and their connections. Each post references one or more books and the referenced books are aggregated in the right-hand sidebar. When you hover over a book title, the crisp tiny type is immediately enveloped in a big cozy hover block.</p>


	<p><img src="http://www.37signals.com/svn/images/55-working library.png" /></p>


	<p>I particularly like how the hover reinforces the column dimensions. It&#8217;s a sudden punch of structure to the otherwise airy layout.</p>


	<p>(Found via <a href="http://jasonsantamaria.com/oddities/2008/06/#sshhh-this-is-a-working-library"><span class="caps">JSM</span>&#8217;s oddities</a>)</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/37signals/beMH?a=PZDSLI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=PZDSLI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=y3dxpi"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=y3dxpi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=Fx6xbI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=Fx6xbI" border="0"></img></a>
</div>]]></description>
			<content:encoded><![CDATA[<p>I love me some <a href="http://www.37signals.com/svn/posts/1048-padded-link-targets-for-better-mousing">padded link targets</a> and today&#8217;s provider is <a href="http://aworkinglibrary.com/index.php/library/">a Working Library</a>.</p>


	<p>The site is about books and their connections. Each post references one or more books and the referenced books are aggregated in the right-hand sidebar. When you hover over a book title, the crisp tiny type is immediately enveloped in a big cozy hover block.</p>


	<p><img src="http://www.37signals.com/svn/images/55-working%20library.png" /></p>


	<p>I particularly like how the hover reinforces the column dimensions. It&#8217;s a sudden punch of structure to the otherwise airy layout.</p>


	<p>(Found via <a href="http://jasonsantamaria.com/oddities/2008/06/#sshhh-this-is-a-working-library"><span class="caps">JSM</span>&#8217;s oddities</a>)</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/37signals/beMH?a=PZDSLI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=PZDSLI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=y3dxpi"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=y3dxpi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/37signals/beMH?a=Fx6xbI"><img src="http://feeds.feedburner.com/~f/37signals/beMH?i=Fx6xbI" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.37signals.com/svn/posts/1103-generous-link-targets-in-the-library/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
