<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
  <id>tag:dynamite.errfree.com,2008:/posts</id>
  <link type="text/html" rel="alternate" href="http://dynamite.errfree.com/" />
  
  <title>Dynamite: The Err Free Blog</title>
  <updated>2008-03-12T06:48:51+00:00</updated>
  <link rel="self" href="http://feeds.feedburner.com/errfree" type="application/atom+xml" /><entry>
    <id>tag:dynamite.errfree.com,2008:Post/88</id>
    <published>2008-03-12T06:47:00+00:00</published>
    <updated>2008-03-12T06:48:51+00:00</updated>
    <link type="text/html" rel="alternate" href="http://dynamite.errfree.com/posts/88-manymailers-rails-plugin" />
    <title>ManyMailers Rails Plugin</title>
    <content type="html">&lt;p&gt;If you&amp;#8217;re using AuthSMTP like &lt;a href="http://dynamite.errfree.com/posts/75-guaranteeing-email-delivery"&gt;we are&lt;/a&gt;, you may be interested in the new &lt;a href="http://github.com/nakajima/many-mailers/tree/master"&gt;ManyMailers&lt;/a&gt; Rails plugin.  With it, you can use multiple mail servers in your app.&lt;/p&gt;


	&lt;p&gt;&lt;br /&gt;&lt;/p&gt;


&lt;pre class='ruby'&gt;
&lt;span class="constant"&gt;ProjectMailer&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;with_settings&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;:internal&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt; &lt;span class="punct"&gt;|&lt;/span&gt;&lt;span class="ident"&gt;mailer&lt;/span&gt;&lt;span class="punct"&gt;|&lt;/span&gt;
  &lt;span class="ident"&gt;mailer&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;deliver_notification&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;blah&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;
&lt;span class="keyword"&gt;end&lt;/span&gt;
&lt;/pre&gt;

	&lt;p&gt;Looks cool!&lt;/p&gt;</content>
    <author>
      <name>Chris Wanstrath</name>
    </author>
  </entry>
  <entry>
    <id>tag:dynamite.errfree.com,2008:Post/87</id>
    <published>2008-02-23T20:35:00+00:00</published>
    <updated>2008-02-23T20:50:46+00:00</updated>
    <link type="text/html" rel="alternate" href="http://dynamite.errfree.com/posts/87-err-free-on-the-rails-podcast" />
    <title>Err Free on the Rails Podcast</title>
    <content type="html">&lt;p&gt;In case you hadn&amp;#8217;t heard, we were interviewed by Geoffrey Grosenbach for &amp;#8220;the&amp;#8221; Ruby on Rails Podcast a couple of weeks ago:&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://podcast.rubyonrails.org/programs/1/episodes/err-free"&gt;Err Free &amp;mdash; the Ruby on Rails Podcast&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Let us know what you think! Chris and I have thought about putting together a regular show that would involve more arguing about javascript libraries and things of that sort.&lt;/p&gt;</content>
    <author>
      <name>PJ Hyett</name>
    </author>
  </entry>
  <entry>
    <id>tag:dynamite.errfree.com,2008:Post/85</id>
    <published>2008-02-11T20:08:00+00:00</published>
    <updated>2008-02-11T20:28:37+00:00</updated>
    <link type="text/html" rel="alternate" href="http://dynamite.errfree.com/posts/85-err-free-world-tour" />
    <title>Err Free World Tour</title>
    <content type="html">&lt;p&gt;We just finished booking a few flights and thought now was a good time to share our speaking schedule so far.&lt;/p&gt;


	&lt;h3&gt;&lt;a href="http://www.phillyemergingtech.com/"&gt;Philly Emerging Tech&lt;/a&gt; &amp;#8211; March 26-27, Philadelphia&lt;/h3&gt;


	&lt;p&gt;I&amp;#8217;ll be speaking about &amp;#8216;The Launch: Bringing a Rails Site to Life.&amp;#8217;  This should be a great talk, and a great conference, for anyone interested in real life Rails or moving from Java to Rails.&lt;/p&gt;


	&lt;h3&gt;&lt;a href="http://2008.goruco.com/"&gt;Goruco&lt;/a&gt; &amp;#8211; April 26, New York City&lt;/h3&gt;


	&lt;p&gt;Goruco was a huge success last year, one of the regional Ruby conferences that had everyone talking.  This year I&amp;#8217;m honored to be one of the speakers.  I&amp;#8217;ll be talking about Ambition and Ruby&amp;#8217;s parse tree &amp;#8211; a talk that will touch on Rubinius, JRuby, Io, Sake, map/reduce, and more.  Get a ticket if you can.&lt;/p&gt;


	&lt;h3&gt;&lt;a href="http://railsconf.com"&gt;RailsConf&lt;/a&gt; &amp;#8211; May 29-June 1, Portland&lt;/h3&gt;


	&lt;p&gt;PJ and I will both be speaking at RailsConf this year.  We&amp;#8217;ll be part of a panel titled &lt;a href="http://en.oreilly.com/rails2008/public/schedule/detail/1779"&gt;The Profitable Programmer&lt;/a&gt;, and I&amp;#8217;ll also be doing a version of my &lt;a href="http://en.oreilly.com/rails2008/public/schedule/detail/1963"&gt;The Launch&lt;/a&gt; talk.&lt;/p&gt;


	&lt;h3&gt;&lt;a href="http://rubyfringe.com/"&gt;RubyFringe&lt;/a&gt; &amp;#8211; July 18-20, Toronto&lt;/h3&gt;


	&lt;p&gt;An indie conference billed as &amp;#8220;deep nerd tech with punk rock spirit,&amp;#8221; the speaker list seems poised to deliver on that promise.  I&amp;#8217;ve been asked to talk about Ambition but hate doing what I&amp;#8217;m told: expect parse trees, githubs, ruby2rubys, and hacks with a &amp;#8216;Do Not Try This At Home&amp;#8217; disclaimer.&lt;/p&gt;


	&lt;p&gt;Come say hi if you attend one of these conferences.  Make sure you get &lt;a href="http://dynamite.errfree.com/posts/77-the-business-of-business-cards"&gt;both business cards&lt;/a&gt;.  See you there.&lt;/p&gt;</content>
    <author>
      <name>Chris Wanstrath</name>
    </author>
  </entry>
  <entry>
    <id>tag:dynamite.errfree.com,2008:Post/84</id>
    <published>2008-02-07T16:03:00+00:00</published>
    <updated>2008-02-07T16:57:22+00:00</updated>
    <link type="text/html" rel="alternate" href="http://dynamite.errfree.com/posts/84-billing-on-the-brain-credit-card-storage" />
    <title>Billing on the Brain: Credit Card Storage</title>
    <content type="html">&lt;p&gt;FamSpam is a subscription-based service, so we had to come up with a solution for billing customers every month. One solution would be to mail them monthly invoices like a credit card statement. The other, not completely insane solution, is to just store their credit card information and use it when it comes time to bill them each month.&lt;/p&gt;


	&lt;h3&gt;How does one store credit card info?&lt;/h3&gt;


	&lt;p&gt;You have two options: store it yourself or pay someone to store it for you. For us, storing credit card information on our servers was out of the question. The technical and legal hurdles are enormous, and just like our stance on using &lt;a href="http://dynamite.errfree.com/posts/75-guaranteeing-email-delivery"&gt;someone to send our email&lt;/a&gt;, this is absolutely another service that&amp;#8217;s worth paying for.&lt;/p&gt;


	&lt;h3&gt;Where does one store credit card info?&lt;/h3&gt;


	&lt;p&gt;The simplest solution is to find a merchant that also has some sort of secure &amp;#8216;vault&amp;#8217; service. The concept is straightforward: you give them the customer&amp;#8217;s credit card info, they give you back a vault id that you store, and then you use that vault id anytime you need to bill them.&lt;/p&gt;


	&lt;h3&gt;Code on Dynamite?&lt;/h3&gt;


	&lt;p&gt;&lt;a href="http://www.activemerchant.org/"&gt;ActiveMerchant&lt;/a&gt; has support built-in for dealing with vaults, so using them works something like the following:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;


Step 1: Bill using credit card (and storing card in vault)
&lt;pre class='ruby'&gt;
&lt;span class="ident"&gt;creditcard&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;ActiveMerchant&lt;/span&gt;&lt;span class="punct"&gt;::&lt;/span&gt;&lt;span class="constant"&gt;Billing&lt;/span&gt;&lt;span class="punct"&gt;::&lt;/span&gt;&lt;span class="constant"&gt;CreditCard&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;new&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;
  &lt;span class="symbol"&gt;:type&lt;/span&gt;       &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;visa&lt;/span&gt;&lt;span class="punct"&gt;',&lt;/span&gt;
  &lt;span class="symbol"&gt;:number&lt;/span&gt;     &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;4242424242424242&lt;/span&gt;&lt;span class="punct"&gt;',&lt;/span&gt;
  &lt;span class="symbol"&gt;:month&lt;/span&gt;      &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="number"&gt;8&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt;
  &lt;span class="symbol"&gt;:year&lt;/span&gt;       &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="number"&gt;2009&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt;
&lt;span class="punct"&gt;)&lt;/span&gt;

&lt;span class="ident"&gt;gateway&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;purchase&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="number"&gt;1000&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="ident"&gt;creditcard&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="symbol"&gt;:store&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="constant"&gt;true&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;
&lt;/pre&gt;

Step 2: Bill using vault id
&lt;pre class='ruby'&gt;
&lt;span class="ident"&gt;gateway&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;purchase&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="number"&gt;1000&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="ident"&gt;vaultid&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;
&lt;/pre&gt;

	&lt;p&gt;Not only does ActiveMerchant have a great &lt;span class="caps"&gt;API&lt;/span&gt;, it also includes wrappers for over two dozen gateways. Give it a good look before you roll your own code.&lt;/p&gt;


	&lt;h3&gt;But, wait, there&amp;#8217;s more!&lt;/h3&gt;


	&lt;p&gt;Next up is how to handle subscriptions now that we know how to store credit cards, the suspense is killing me!&lt;/p&gt;</content>
    <author>
      <name>PJ Hyett</name>
    </author>
  </entry>
  <entry>
    <id>tag:dynamite.errfree.com,2008:Post/83</id>
    <published>2008-02-06T01:02:00+00:00</published>
    <updated>2008-02-06T01:56:16+00:00</updated>
    <link type="text/html" rel="alternate" href="http://dynamite.errfree.com/posts/83-billing-on-the-brain-integration" />
    <title>Billing on the Brain: Integration</title>
    <content type="html">&lt;p&gt;Billing is one of those things no one wants to work on because it has nothing to do with your core business, but the inevitability that your app actually has to make money forces you to worry about it at some point.&lt;/p&gt;


	&lt;p&gt;There are a number of problems when building a billing system that you&amp;#8217;ll have to think about before proceeding:&lt;/p&gt;


&lt;ul style="margin:10px 0 0 20px; list-style-type:disc;"&gt;
&lt;li&gt;site integration or third party&lt;/li&gt;
&lt;li&gt;dealing with credit card storage&lt;/li&gt;
&lt;li&gt;handling subscriptions&lt;/li&gt;
&lt;li&gt;selecting a gateway and merchant&lt;/li&gt;
&lt;/ul&gt;

	&lt;p&gt;Each of these bullets will determine how you setup your billing system, and I&amp;#8217;ll be addressing them one at a time how we did it on &lt;a href="http://famspam.com"&gt;FamSpam&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;I originally wrote this as one massive article, but I&amp;#8217;m guilty of losing focus quickly, so I thought it would be more effective if I divided it up and spent some time explaining each section in depth.&lt;/p&gt;


	&lt;p&gt;One final disclaimer is that a lot of this is opinion-based and you&amp;#8217;re welcome to tell me I&amp;#8217;m wrong, but let&amp;#8217;s keep it civil.&lt;/p&gt;


	&lt;h3&gt;Site integration&lt;/h3&gt;


	&lt;p&gt;Chris and I decided from the get-go that we weren&amp;#8217;t interested in redirecting our customers to a third party site to enter in their credit card info.&lt;/p&gt;


	&lt;p&gt;The first problem is services like Paypal and Amazon &lt;span class="caps"&gt;FPS&lt;/span&gt; require accounts. We already asked them to signup to use FamSpam, why would we ask them to signup for another service just so they could paid to use ours? Adding a Paypal payment option in the future to provide our customers more flexibility is a real possibility, but it was important for us to support credit cards first.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/pjhyett/2245582296/"&gt;&lt;img src="http://farm3.static.flickr.com/2101/2245582296_4e996635a1_m.jpg" alt="Billing" align="right" style="padding-left:5px" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Reason number two is that being able to integrate your billing form looks extremely professional and allows you to organize the page however you wish (as long as the merchant&amp;#8217;s guidelines are met). I&amp;#8217;m certainly biased, but I think FamSpam&amp;#8217;s billing page is the bee&amp;#8217;s knees.&lt;/p&gt;


	&lt;p&gt;The last reason is that I&amp;#8217;ve heard recently of &lt;a href="http://www.gadgetell.com/tech/comment/paypal-error-causes-delay-with-xo-laptop-shipments/"&gt;intermittent&lt;/a&gt; &lt;a href="http://explore.twitter.com/technoweenie/statuses/648636862"&gt;problems&lt;/a&gt; with Paypal&amp;#8217;s service. Issues can arise with any service, but you&amp;#8217;d think Paypal is a site you could count on.&lt;/p&gt;


	&lt;p&gt;Any breakdowns in communication between your service, the merchant, and the customer is scary stuff. Building a solid rapport with our merchant (how easy would it be for you to email Paypal&amp;#8217;s &lt;span class="caps"&gt;CEO&lt;/span&gt;?) has made me feel immensely more secure that if a billing situation were to arise that it would be diagnosed and corrected quickly.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Stop by tomorrow for Dynamite&amp;#8217;s next installment of &amp;#8216;Billing on Brain.&amp;#8217;&lt;/strong&gt;&lt;/p&gt;</content>
    <author>
      <name>PJ Hyett</name>
    </author>
  </entry>
  <entry>
    <id>tag:dynamite.errfree.com,2008:Post/81</id>
    <published>2008-01-28T23:15:00+00:00</published>
    <updated>2008-01-28T23:18:37+00:00</updated>
    <link type="text/html" rel="alternate" href="http://dynamite.errfree.com/posts/81-sexy-stats" />
    <title>Sexy Stats</title>
    <content type="html">&lt;p&gt;While &lt;a href="http://analytics.google.com"&gt;Google Analytics&lt;/a&gt; is a great for so many things, I&amp;#8217;ve always found it lacking around the referral department.  It&amp;#8217;s wonderful at its namesake, analyzing traffic, but doesn&amp;#8217;t really help when you want to know what people are saying about your idea, product, or blog post.&lt;/p&gt;


	&lt;p&gt;Enter &lt;a href="http://getclicky.com/"&gt;GetClicky&lt;/a&gt;.  For over a year now this has been one of my favorite web apps.  Its simple interface and up-to-the-minute information never fail to satisfy my buzz-hunger.&lt;/p&gt;


&lt;div align="center" style="padding-top:15px;"&gt;
&lt;a href="http://www.flickr.com/photos/ozmm/2226510725/" title="Err the Blog on GetClicky by ozmm, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2144/2226510725_8fc0bcae77_m.jpg" height="166" alt="Err the Blog on GetClicky" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;

	&lt;p&gt;At a glance, you see everything you want: biggest referrers, most popular content, and a user summary.  What it excels at is letting you know what content is popular and why.  It even has &lt;span class="caps"&gt;RSS&lt;/span&gt; feeds to this end, as well as a &amp;#8216;digg spy&amp;#8217; style feed of visitors.  See who is coming to your site, and from where, as it happens.&lt;/p&gt;


	&lt;p&gt;Take their &lt;a href="http://getclicky.com/user/register"&gt;free trial&lt;/a&gt; for a spin and see what you think.&lt;/p&gt;</content>
    <author>
      <name>Chris Wanstrath</name>
    </author>
  </entry>
  <entry>
    <id>tag:dynamite.errfree.com,2008:Post/77</id>
    <published>2008-01-15T21:56:00+00:00</published>
    <updated>2008-01-15T22:48:49+00:00</updated>
    <link type="text/html" rel="alternate" href="http://dynamite.errfree.com/posts/77-the-business-of-business-cards" />
    <title>The Business of Business Cards</title>
    <content type="html">&lt;p&gt;A few people have asked where we got our business cards, which is a fair question.  There are a lot of options out there.&lt;/p&gt;


	&lt;p&gt;We went with &lt;a href="http://www.overnightprints.com/"&gt;Overnight Prints&lt;/a&gt; and were very happy with our purchase.  Can&amp;#8217;t beat bright colors, dual side printing, and fast delivery.&lt;/p&gt;


&lt;p align="center"&gt;
&lt;a href="http://www.flickr.com/photos/ozmm/2196179620/" title="IMG 0441 by ozmm, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2126/2196179620_c40d8d7642_m.jpg" height="180" alt="IMG 0441" width="240" /&gt;&lt;/a&gt;
&lt;/p&gt;

	&lt;p&gt;We tried to put only the vital, permanent information on our cards.  Anyone can Google our names or the company name to find out all the information they need.&lt;/p&gt;


	&lt;p&gt;Plus, that information won&amp;#8217;t go out of date.  I&amp;#8217;d hate to have 500 business cards with my old cell phone number on them.&lt;/p&gt;


&lt;p align="center"&gt;
&lt;a href="http://www.flickr.com/photos/ozmm/2196179022/" title="IMG 0440 by ozmm, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2308/2196179022_50002efa4c_m.jpg" height="180" alt="IMG 0440" width="240" /&gt;&lt;/a&gt;
&lt;/p&gt;

	&lt;p&gt;(And yes, we have complimentary business cards.  You gotta collect &amp;#8216;em all.)&lt;/p&gt;</content>
    <author>
      <name>Chris Wanstrath</name>
    </author>
  </entry>
  <entry>
    <id>tag:dynamite.errfree.com,2008:Post/76</id>
    <published>2008-01-14T22:30:00+00:00</published>
    <updated>2008-01-14T22:37:10+00:00</updated>
    <link type="text/html" rel="alternate" href="http://dynamite.errfree.com/posts/76-on-innovating" />
    <title>On Innovating</title>
    <content type="html">&lt;p&gt;A friend of mine shared this great talk by Guy Kawasaki on innovation over the weekend.&lt;/p&gt;


&lt;p&gt;&lt;embed src="http://video.google.com/googleplayer.swf?docId=-3459408090550854446&amp;#38;hl=en" type="application/x-shockwave-flash" id="VideoPlayback" flashvars="" style="width:400px; height:326px;"&gt; &lt;/embed&gt;&lt;/p&gt;

	&lt;p&gt;I really love his speaking style.  As he explains, this talk is broken down into 10 points &amp;#8211; you always have a sense of time and context because you know which number he&amp;#8217;s discussing.  The numbering system also gives a clear and convenient manner of discussing his talk.&lt;/p&gt;


	&lt;p&gt;Speaking of which, I really like his fifth point: &amp;#8220;Don&amp;#8217;t worry, be crappy.&amp;#8221;  Ship it, then test.  Get something out the door quickly, respond to feedback.  You&amp;#8217;re never going to get everything right (especially after spending so much time so close to your own creation).  See how other people are using it, what they want, and decide where to take it from there.  But don&amp;#8217;t sit on it.  Get something out there.&lt;/p&gt;</content>
    <author>
      <name>Chris Wanstrath</name>
    </author>
  </entry>
  <entry>
    <id>tag:dynamite.errfree.com,2008:Post/75</id>
    <published>2008-01-10T02:00:00+00:00</published>
    <updated>2008-01-10T02:32:24+00:00</updated>
    <link type="text/html" rel="alternate" href="http://dynamite.errfree.com/posts/75-guaranteeing-email-delivery" />
    <title>Guaranteeing Email Delivery</title>
    <content type="html">&lt;p&gt;Making sure thousands of emails get to their destination is a full-time job. A job that would have been a huge distraction from the real problem FamSpam is solving.&lt;/p&gt;


	&lt;h3&gt;What&amp;#8217;s a site to do?&lt;/h3&gt;


	&lt;p&gt;Pay someone to worry for you.&lt;/p&gt;


	&lt;p&gt;We utilize &lt;a href="http://authsmtp.com"&gt;AuthSMTP&lt;/a&gt; for all of FamSpam&amp;#8217;s outgoing email. Their prices are reasonable and we hear of only the occasional email ending up in a junk-mail folder. That&amp;#8217;s always going to be an uphill battle, but the war is won as long as the person receives the email in some fashion or another.&lt;/p&gt;


	&lt;p&gt;Figuring out how to stay on an &lt;span class="caps"&gt;ISP&lt;/span&gt;&amp;#8217;s good side so our domain isn&amp;#8217;t blacklisted is something neither Chris nor I are interested in learning how to master, so we&amp;#8217;re happy to offload this problem to someone else.&lt;/p&gt;


	&lt;p&gt;Building the best product we can is our ultimate goal, if we need to spend a little more along the way make sure that happens, so be it.&lt;/p&gt;</content>
    <author>
      <name>PJ Hyett</name>
    </author>
  </entry>
  <entry>
    <id>tag:dynamite.errfree.com,2008:Post/74</id>
    <published>2008-01-09T11:47:00+00:00</published>
    <updated>2008-01-09T12:00:20+00:00</updated>
    <link type="text/html" rel="alternate" href="http://dynamite.errfree.com/posts/74-write-what-you-know" />
    <title>Write What You Know</title>
    <content type="html">&lt;p&gt;As a wee schoolchild, I was told over and over to &amp;#8220;write what you know.&amp;#8221;  It&amp;#8217;s easier to write well, and convincingly, if you are familiar with the subject matter.  That&amp;#8217;s the idea, at least.&lt;/p&gt;


	&lt;p&gt;We don&amp;#8217;t think websites are any different.&lt;/p&gt;


	&lt;p&gt;Many of the sites we use on a daily basis were obviously created by people who &lt;em&gt;needed&lt;/em&gt; them.  A perfect example is &lt;a href="http://lighthouseapp.com/"&gt;Lighthouse&lt;/a&gt;, a beautiful and simple issue tracker.  While I can&amp;#8217;t claim to know the motivations behind its creation, I&amp;#8217;d wager the guys asked &amp;#8220;what do we need?&amp;#8221; rather than &amp;#8220;what would be a big hit?&amp;#8221;  After all, they use Lighthouse to keep track of itself.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://famspam.com/"&gt;FamSpam&lt;/a&gt; started because our families were having trouble keeping in touch on a regular basis.  It was getting done, but it was a tad sloppy.  We needed a clean, simple, and efficient way to keep in touch with our families.&lt;/p&gt;


	&lt;p&gt;While it&amp;#8217;s great to scratch your own itch, the advantages of creating something you need go much deeper.  Because we wanted FamSpam for our families we were able to use them as the pre-beta test group.  Anything they didn&amp;#8217;t understand, we tweaked.  Any good ideas they had, we implemented.  Any wording they disliked, we removed.&lt;/p&gt;


	&lt;p&gt;When you&amp;#8217;re the target audience, useful new features become obvious.  Just the other day we added &lt;a href="http://famspam.com/blog/7-photo-slideshows"&gt;photo slideshows&lt;/a&gt; to FamSpam.  Why?  Because my mom uploaded 17 photos from Christmas and I wanted to see them in a slideshow, without having to click through each one.&lt;/p&gt;


	&lt;p&gt;So while it may seem lucrative to create a new social network for Alaskan King Crabs, you might be better off focusing on a site you&amp;#8217;d actually use every day.  That is, unless you&amp;#8217;re a delicious Alaskan King Crab.  In that case, crab on.&lt;/p&gt;</content>
    <author>
      <name>Chris Wanstrath</name>
    </author>
  </entry>
</feed>
