<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Robby on Rails</title>
    <link>http://www.robbyonrails.com</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>thoughts.sort_by{|t| t[:topic]}.collect </description>
    <geo:lat>45.52889</geo:lat><geo:long>-122.684581</geo:long><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/RobbyOnRails" type="application/rss+xml" /><feedburner:browserFriendly>(Enter a personal message you would like to have appear at the top of your feed.)</feedburner:browserFriendly><item>
      <title>Lesson Learned: Git Ref Naming</title>
      <description>&lt;p&gt;Our team has been working our way into the Git world. One of our big client projects is now 100% git while the other is still on Subversion for another month or so. (I&amp;#8217;m getting by with &lt;a href="http://www.robbyonrails.com/articles/2008/04/10/git-svn-is-a-gateway-drug"&gt;git-svn&lt;/a&gt;, the gateway drug on that). We&amp;#8217;ve had pretty much nothing but success with Git for quite some time, but recently this repository started to get chaotic, which has eaten up time&amp;#8230; which isn&amp;#8217;t conducive to productivity.&lt;/p&gt;


	&lt;p&gt;So, I wanted to share a quick lesson that we learned today after scratching our head for a while. It&amp;#8217;s important that you avoid having a branch on a remote repository that shares the name of a tag in your local and/or remote repository.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;&lt;span class="caps"&gt;I REPEAT&lt;/span&gt;.&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;It&amp;#8217;s bad mojo to have a tag and branch share the same name. Things that you&amp;#8217;d expect &lt;em&gt;to just work&lt;/em&gt;... don&amp;#8217;t. This was causing us to see warnings and errors like the following, which we weren&amp;#8217;t really sure what to make of it.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&amp;#8220;warning: refname &amp;#8216;staging&amp;#8217; is ambiguous.&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&amp;#8220;error: src refspec staging matches more than one.&amp;#8221;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;This started about two weeks ago when we started a few new remote branches: &lt;em&gt;staging&lt;/em&gt; and &lt;em&gt;design&lt;/em&gt;. It seemed to be going okay but we managed to muck up things when we merged those two together and some of us were having success fetching/pulling/pushing to &lt;em&gt;staging&lt;/em&gt; and others were having to specify &lt;code&gt;:heads/staging&lt;/code&gt; and couldn&amp;#8217;t have a local branch named &lt;em&gt;staging&lt;/em&gt;. Needless to say, it was causing some problems and slowing us down.&lt;/p&gt;


	&lt;p&gt;This afternoon, we finally noticed in the GitHub interface that there was a tag named &lt;code&gt;staging&lt;/code&gt;. Hmm&amp;#8230; interesting. We verified this by using &lt;code&gt;git show-ref&lt;/code&gt;.&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
git:(master): git show-ref | grep staging
6a18119ca9.... refs/heads/staging
82caa5f121.... refs/remotes/origin/staging
6a18119ca9.... refs/tags/staging
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Notice the tag reference at the end? After asking in #git, we were able to remove the tag with the following:&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;git tag -d staging&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;Then we needed to remove the reference of &lt;code&gt;staging&lt;/code&gt; on Github with &lt;code&gt;git push origin :staging&lt;/code&gt;. (we got rid of the remote branch temporarily as well so that we could clean this up).&lt;/p&gt;


	&lt;p&gt;The next step was to push our local branch back out to the remote branch &lt;code&gt;git push origin staging:staging&lt;/code&gt;.... and now we&amp;#8217;re back in business with a simple:&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;git checkout --track -b staging origin/staging&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;Anyhow, if you end up having those warnings/errors above, you might take a look at &lt;a href="http://www.kernel.org/pub/software/scm/git/docs/git-show-ref.html"&gt;git-show-ref&lt;/a&gt; to see what is in your local repository as this could be causing you some unnecessary headaches.&lt;/p&gt;


	&lt;p&gt;Kudos to &lt;a href="http://allisbe.com"&gt;Allison&lt;/a&gt; for taking the time to really read and digest the git documentation, which helped us figure this shit out. :-)&lt;/p&gt;


	&lt;p&gt;Since we&amp;#8217;re still learning to get around through things like this, if you have any more insight into this issue, feel free to help educate us a bit by sharing your wisdom in response to this post. :-)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=pzXhL"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=pzXhL" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=Y1Pel"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=Y1Pel" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=6DpzL"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=6DpzL" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=ydTdL"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=ydTdL" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/396879812" height="1" width="1"/&gt;</description>
      <pubDate>Thu, 18 Sep 2008 23:23:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:a3d33486-399d-4bd6-99ce-934e1adce9dc</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/396879812/lesson-learned-git-ref-naming</link>
      <category>Programming</category>
      <category>git</category>
      <category>code</category>
      <category>source</category>
      <category>control</category>
      <category>lesson</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/09/18/lesson-learned-git-ref-naming</feedburner:origLink></item>
    <item>
      <title>MySQL is just a toy</title>
      <description>&lt;div class="thumbnail"&gt;&lt;a href="http://skitch.com/robbyrussell/iare/twitterrific"&gt;&lt;img src="http://img.skitch.com/20080911-ehrsx5um7ush92xy4nd4784s6d.preview.jpg" alt="Twitterrific" /&gt;&lt;/a&gt;&lt;/div&gt;

	&lt;p&gt;Are you using PostgreSQL? EnterpriseDB want&amp;#8217;s to hear your story at &lt;a href="http://www.postgresrocks.com/"&gt;Postgres Rocks&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=DU06L"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=DU06L" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=77RTl"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=77RTl" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=MvFML"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=MvFML" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=8H9fL"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=8H9fL" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/389896265" height="1" width="1"/&gt;</description>
      <pubDate>Thu, 11 Sep 2008 13:04:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:0255042f-b378-4d7a-b634-e38f3b3ad015</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/389896265/mysql-is-just-a-toy</link>
      <category>PostgreSQL</category>
      <category>mysql</category>
      <category>postgresql</category>
      <category>sarcasm</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/09/11/mysql-is-just-a-toy</feedburner:origLink></item>
    <item>
      <title>Ubiquity meets RubyURL</title>
      <description>&lt;p&gt;&lt;a href="http://www.the-love-shack.net"&gt;Alex Malinovich&lt;/a&gt; decided to take some time this afternoon to write a &lt;a href="https://wiki.mozilla.org/Labs/Ubiquity"&gt;Ubiquity&lt;/a&gt; command for RubyURL using the &lt;a href="http://rubyurl.com/api"&gt;new RubyURL &lt;span class="caps"&gt;API&lt;/span&gt;&lt;/a&gt;. You can take a look at Alex&amp;#8217;s Ubiquity &lt;a href=":http://github.com/robbyrussell/rubyurl/tree/master/public/javascripts/ubiquity.js"&gt;code&lt;/a&gt; for RubyURL. He&amp;#8217;s taking advantage of the &lt;span class="caps"&gt;JSON&lt;/span&gt; support that I added to RubyURL this weekend and &lt;a href="http://jquery.com/"&gt;JQuery&lt;/a&gt;. Be sure to read &lt;a href="http://www.the-love-shack.net/2008/09/02/ubiquity-coolness/"&gt;Alex&amp;#8217;s blog post&lt;/a&gt;, which includes a screencast! =)&lt;/p&gt;


	&lt;p&gt;Also! We added this to RubyURL so that if you have Ubiquity installed, you&amp;#8217;ll be presented with the following the next time you visit: &lt;a href="http://rubyurl.com"&gt;http://rubyurl.com&lt;/a&gt;.&lt;/p&gt;


&lt;div class="thumbnail"&gt;&lt;a href="http://skitch.com/baggend/w75c/rubyurl-keep-it-short-and-sweet"&gt;&lt;img src="http://img.skitch.com/20080903-q3mb4rufi4b6aptujsgftmwt8j.preview.jpg" alt="RubyURL » Keep it short (and sweet)" /&gt;&lt;/a&gt;&lt;/div&gt;

	&lt;h3&gt;Related Posts&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://www.robbyonrails.com/articles/2008/08/31/the-new-rubyurl-api"&gt;The new RubyURL &lt;span class="caps"&gt;API&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://www.robbyonrails.com/articles/2008/01/06/rubyurl-through-quicksilver"&gt;RubyURL through QuickSilver&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://www.robbyonrails.com/articles/2007/08/09/rubyurl-bookmarklet-screencast"&gt;RubyURL bookmarklet screencast&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=MHxARL"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=MHxARL" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=OraOKl"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=OraOKl" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=QJV6KL"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=QJV6KL" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=hjj14L"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=hjj14L" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/381895315" height="1" width="1"/&gt;</description>
      <pubDate>Tue, 02 Sep 2008 20:41:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:5d032c3c-119f-4c8e-807a-cb9813056fd1</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/381895315/ubiquity-meets-rubyurl</link>
      <category>RubyURL</category>
      <category>rubyurl</category>
      <category>jquery</category>
      <category>ubiquity</category>
      <category>alex</category>
      <category>firefox</category>
      <category>javascript</category>
      <category>api</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/09/02/ubiquity-meets-rubyurl</feedburner:origLink></item>
    <item>
      <title>Google Chrome: discuss</title>
      <description>&lt;p&gt;I&amp;#8217;m sure that most of you heard the news that Google is releasing a &lt;a href="http://googleblog.blogspot.com/2008/09/fresh-take-on-browser.html"&gt;new web browser named Chrome&lt;/a&gt;. Their &lt;a href="http://books.google.com/books?id=8UsqHohwwVYC&amp;#38;printsec=frontcover"&gt;comic for the announcement&lt;/a&gt; was very refreshing and entertaining read. Granted&amp;#8230; nobody that I know has seen it (as of today)...&lt;/p&gt;


	&lt;p&gt;For me, I&amp;#8217;m really interested in seeing what they&amp;#8217;ve done to &lt;em&gt;hopefully&lt;/em&gt; improve some of the short-comings of the user experience through their interaction design process. For example, tabs containing their own url/search fields sounds refreshing (I really dislike the hierarchy currently). Also, I&amp;#8217;m really looking forward to their dashboard-like default page.&lt;/p&gt;


&lt;div class="thumbnail"&gt;&lt;a href="http://skitch.com/robbyrussell/w49a/google-chrome-google-book-search"&gt;&lt;img src="http://img.skitch.com/20080902-8qdks9kdwcdtdq6f48sjrcsyi9.preview.jpg" alt="Google Chrome - Google Book Search" /&gt;&lt;/a&gt;&lt;/div&gt;

	&lt;p&gt;From a web development standpoint, it definitely raises questions about what we&amp;#8217;ll be able to do in the coming year(s).&lt;/p&gt;


	&lt;p&gt;What are your initial thoughts on this? &lt;strong&gt;Discuss&amp;#8230;&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Gary came across this amusing quote from a response by a representative at Microsoft.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&amp;#8220;The browser landscape is highly competitive, but people will choose Internet Explorer 8 for the way it puts the services they want right at their fingertips &amp;#8230; and, more than any other browsing technology, puts them in control of their personal data on-line,&amp;#8221; Hachamovitch said. (&lt;a href="http://www.cnn.com/2008/TECH/09/01/google.browser.ap/index.html?iref=mpstoryview"&gt;read article on &lt;span class="caps"&gt;CNN&lt;/span&gt;&lt;/a&gt;)&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;I&amp;#8217;m really not sure what that even means. Don&amp;#8217;t we already have our online services &lt;em&gt;at our fingertips&lt;/em&gt;? I suspect &lt;span class="caps"&gt;CNN&lt;/span&gt; interviewed the wrong person.. because this person said nothing.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Update #2:&lt;/strong&gt; Only a PC version available&amp;#8230; &lt;span class="caps"&gt;OSX&lt;/span&gt; / Linux are in development. Oh well&amp;#8230;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=CQEZDL"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=CQEZDL" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=B5LYll"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=B5LYll" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=NnwoKL"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=NnwoKL" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=7BJ2LL"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=7BJ2LL" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/380980129" height="1" width="1"/&gt;</description>
      <pubDate>Mon, 01 Sep 2008 21:40:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:fb75fbfe-4684-4915-8c01-047834e6cb23</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/380980129/google-chrome-discuss</link>
      <category>Programming</category>
      <category>web</category>
      <category>browsers</category>
      <category>google</category>
      <category>chrome</category>
      <category>design</category>
      <category>interaction</category>
      <category>internet</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/09/01/google-chrome-discuss</feedburner:origLink></item>
    <item>
      <title>The new RubyURL API</title>
      <description>&lt;p&gt;We&amp;#8217;ve just deployed the initial version of an &lt;a href="http://rubyurl.com/api"&gt;&lt;span class="caps"&gt;API&lt;/span&gt; for RubyURL&lt;/a&gt;. It makes it really easy to create RubyURLs and is now open to the public. Should it end up being abused, we&amp;#8217;ll consider introducing an &lt;span class="caps"&gt;API KEY&lt;/span&gt; for authenticating and tracking abuse.&lt;/p&gt;


	&lt;p&gt;In the meantime, you can now start to use the RubyURL &lt;span class="caps"&gt;API&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;For example, the following&amp;#8230;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
$ curl  -i \ 
        -X POST \
        -H 'Content-Type: application/xml' \
        -d '&amp;lt;link&amp;gt;&amp;lt;website_url&amp;gt;http://github.com/robbyrussell&amp;lt;/website_url&amp;gt;&amp;lt;/link&amp;gt;' \
        http://rubyurl.com/api/links  
&lt;/code&lt;/pre&gt;

	&lt;p&gt;...would return the following response.&lt;/p&gt;


&lt;script src="http://gist.github.com/8207.js"&gt;&lt;/script&gt;

	&lt;p&gt;I&amp;#8217;ll be updating the &lt;a href="http://github.com/robbyrussell/shorturl/tree/master"&gt;ShortURL gem&lt;/a&gt; in the coming days (unless someone else wants to patch it first &lt;strong&gt;wink&lt;/strong&gt;) to take advantage of new &lt;span class="caps"&gt;API&lt;/span&gt;, versus how it&amp;#8217;s currently creating RubyURLs.&lt;/p&gt;


	&lt;p&gt;You can see the code &amp;amp; changes for this new &lt;span class="caps"&gt;API&lt;/span&gt; on the &lt;a href="http://github.com/robbyrussell/rubyurl/commits/master"&gt;RubyURL github site&lt;/a&gt;.&lt;/p&gt;


	&lt;h3&gt;Update with &lt;span class="caps"&gt;JSON&lt;/span&gt;&lt;/h3&gt;


	&lt;p&gt;I took a little time today to update the &lt;span class="caps"&gt;API&lt;/span&gt; and extend it to support &lt;span class="caps"&gt;JSON&lt;/span&gt;. So&amp;#8230; you can now use the RubyURL &lt;span class="caps"&gt;API&lt;/span&gt; to generate RubyURLs via &lt;span class="caps"&gt;JSON&lt;/span&gt;. (see &lt;a href="http://github.com/robbyrussell/rubyurl/commit/36bcd0716a0a86fdaaf352d7760653b886877f2e"&gt;commits&lt;/a&gt;)&lt;/p&gt;


&lt;script src="http://gist.github.com/8363.js"&gt;&lt;/script&gt;

	&lt;p&gt;Enjoy! If you&amp;#8217;re using RubyURL via the new &lt;span class="caps"&gt;API&lt;/span&gt;, I&amp;#8217;d love to hear about it. :-)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=zc4RsK"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=zc4RsK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=RtXmek"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=RtXmek" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=uVtlZK"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=uVtlZK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=oqkGZK"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=oqkGZK" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/379844517" height="1" width="1"/&gt;</description>
      <pubDate>Sun, 31 Aug 2008 13:55:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:f47bfa0b-c16e-4e8c-ba67-1a220f158d08</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/379844517/the-new-rubyurl-api</link>
      <category>RubyURL</category>
      <category>Ruby on Rails</category>
      <category>Ruby</category>
      <category>Programming</category>
      <category>api</category>
      <category>REST</category>
      <category>xml</category>
      <category>rubyurl</category>
      <category>development</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/08/31/the-new-rubyurl-api</feedburner:origLink></item>
    <item>
      <title>Flash Message Conductor</title>
      <description>&lt;p&gt;Do you find yourself copying and pasting the same code from Rails application-to-application as new projects start? Our team has a handful of projects in development right now and we notice that some of these &lt;em&gt;reusable&lt;/em&gt; components tend to get out of sync when we bounce between projects. So, we&amp;#8217;re making an effort to spot these and are creating a handful of plugins so that we can keep them updated between projects. (I&amp;#8217;m sure that a lot of you do this as well)&lt;/p&gt;


	&lt;p&gt;In an effort to share some of our patterns, we&amp;#8217;ll try to release them into the wild for others to use and perhaps if you have better patterns to offer, we&amp;#8217;re always interested in improving our approach.&lt;/p&gt;


	&lt;h2&gt;Introducing Flash Message Conductor&lt;/h2&gt;


	&lt;p&gt;Over the years, our designers and developers have approached the management of flash messages several different ways. In Rails, the default way to add something to a flash message is to do something like this in your controller.&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="ident"&gt;flash&lt;/span&gt;&lt;span class="punct"&gt;[&lt;/span&gt;&lt;span class="symbol"&gt;:message&lt;/span&gt;&lt;span class="punct"&gt;]&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;You have successfully signed in to your account.&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;What we began doing a while back is to create a few controller helper methods:&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="ident"&gt;add_message&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;You have successfully signed in to your account.&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt; &lt;span class="punct"&gt;)&lt;/span&gt;
&lt;span class="ident"&gt;add_notice&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;You've Got Mail!&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt; &lt;span class="punct"&gt;)&lt;/span&gt;
&lt;span class="ident"&gt;add_error&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;Oops! Something got fucked up!&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt; &lt;span class="punct"&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;Really, nothing too crazy here, just a pattern that our developers have preferred to managing our application&amp;#8217;s flash messages.&lt;/p&gt;


	&lt;p&gt;Okay, so now for the part of the puzzle that we aimed to make consistent across our projects. Rendering flash messages would usually result in several lines of conditionals in our application layout to check if the flash had any values assigned to it. As we worked with our &lt;span class="caps"&gt;HTML&lt;/span&gt;/CSS designers to define a consistent pattern, we moved our code into a helper for rendering flash messages.&lt;/p&gt;


	&lt;p&gt;With Flash Message Conductor, we just need to pop in the following into our application layout.&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="punct"&gt;&amp;lt;%=&lt;/span&gt;&lt;span class="string"&gt; render_flash_messages %&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;If we had called &lt;code&gt;add_message&lt;/code&gt;, it&amp;#8217;d render the following:&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_xml "&gt;&lt;span class="punct"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag"&gt;div&lt;/span&gt; &lt;span class="attribute"&gt;id&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;flash_messages&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&amp;gt;&lt;/span&gt;
  &lt;span class="punct"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag"&gt;p&lt;/span&gt; &lt;span class="attribute"&gt;class&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;message&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&amp;gt;&lt;/span&gt;You have successfully done XYZ...&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="tag"&gt;p&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="tag"&gt;div&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;Or, should you have called &lt;code&gt;add_error&lt;/code&gt;, it&amp;#8217;d render the following:&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_xml "&gt;&lt;span class="punct"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag"&gt;div&lt;/span&gt; &lt;span class="attribute"&gt;id&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;flash_messages&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&amp;gt;&lt;/span&gt;
  &lt;span class="punct"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag"&gt;p&lt;/span&gt; &lt;span class="attribute"&gt;class&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;error&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&amp;gt;&lt;/span&gt;Oops! Something went bonkers!&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="tag"&gt;p&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="tag"&gt;div&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;What we&amp;#8217;ve done here is defined a consistent pattern for our designers and developers to follow. We&amp;#8217;ll always have a &lt;code&gt;div&lt;/code&gt; container that will use a &lt;code&gt;p&lt;/code&gt; tag to display the flash messages with a &lt;span class="caps"&gt;CSS&lt;/span&gt; class value that maps to the type of flash message that we&amp;#8217;re displaying. This makes it easier for us to reuse the same flash message styling (and tweak if necessary), but we know that it&amp;#8217;ll produce the same &lt;span class="caps"&gt;HTML&lt;/span&gt; across our applications.&lt;/p&gt;


	&lt;h3&gt;Installing Flash Message Conductor&lt;/h3&gt;


	&lt;p&gt;Like most &lt;em&gt;modern&lt;/em&gt; Rails applications, you can install with:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
script/plugin install git://github.com/planetargon/flash-message-conductor.git
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Then all of our helper methods will be available to your application. We&amp;#8217;ve also included an example &lt;span class="caps"&gt;CSS&lt;/span&gt; file, which you&amp;#8217;ll find in the plugin directory.&lt;/p&gt;


	&lt;p&gt;Sample output:&lt;/p&gt;


&lt;div class="thumbnail"&gt;&lt;a href="http://skitch.com/robbyrussell/wuef/flash-message-area"&gt;&lt;img src="http://img.skitch.com/20080830-n8k8ikkk3i8himuxhk7pbf8tg3.preview.jpg" alt="flash message area" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family: Lucida Grande, Trebuchet, sans-serif, Helvetica, Arial; font-size: 10px; color: #808080"&gt;Uploaded with &lt;a href="http://plasq.com/"&gt;plasq&lt;/a&gt;&amp;#8217;s &lt;a href="http://skitch.com"&gt;Skitch&lt;/a&gt;!&lt;/span&gt;&lt;/div&gt;

	&lt;p&gt;Anyhow, we&amp;#8217;ve posted the plugin up on GitHub for you all to use, if you&amp;#8217;d like to adopt a similar approach. If you have any alternative patterns that has helped your team, do share and I&amp;#8217;m looking forward to sharing some more of ours in the near future.&lt;/p&gt;


	&lt;p&gt;For more information, visit the &lt;a href="http://github.com/planetargon/flash-message-conductor"&gt;Flash Message Conductor plugin&lt;/a&gt; on GitHub.&lt;/p&gt;


	&lt;p&gt;If anything, hopefully this will inspire those of you who find yourself copying/pasting artifacts from application-to-application to extract that code into it&amp;#8217;s own reusable plugin. :-)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=eWoJ2K"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=eWoJ2K" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=6GMtvk"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=6GMtvk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=rdyjFK"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=rdyjFK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=jC0WRK"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=jC0WRK" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/378427287" height="1" width="1"/&gt;</description>
      <pubDate>Fri, 29 Aug 2008 16:35:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:95e800a7-f1a5-429b-94be-aed635f73036</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/378427287/flash-message-conductor</link>
      <category>Ruby on Rails</category>
      <category>Ruby</category>
      <category>Programming</category>
      <category>PLANET ARGON</category>
      <category>patterns</category>
      <category>pattern</category>
      <category>rubyonrails</category>
      <category>rails</category>
      <category>development</category>
      <category>html</category>
      <category>css</category>
      <category>team</category>
      <category>planetargon</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/08/29/flash-message-conductor</feedburner:origLink></item>
    <item>
      <title>Git: Push it! (real good)</title>
      <description>&lt;p&gt;After wrestling with some git-remote-branching-merge-problems&amp;#8230; I remembered this song&amp;#8230;&lt;/p&gt;


&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/BCV5yGKWjv4&amp;#38;hl=en&amp;#38;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/BCV5yGKWjv4&amp;#38;hl=en&amp;#38;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;

	&lt;p&gt;If you&amp;#8217;re using git, you might add this to your &lt;code&gt;[alias]&lt;/code&gt; section in &lt;code&gt;.gitconfig&lt;/code&gt;.&lt;/p&gt;


	&lt;p&gt;(notice the &lt;code&gt;up-on-this&lt;/code&gt; alias)&lt;/p&gt;


&lt;script src="http://gist.github.com/8076.js"&gt;&lt;/script&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=8S9mKK"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=8S9mKK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=R9gLQk"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=R9gLQk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=i0EEqK"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=i0EEqK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=xU610K"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=xU610K" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/378396822" height="1" width="1"/&gt;</description>
      <pubDate>Fri, 29 Aug 2008 13:23:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:42e811b4-d61b-4c43-8500-a792c9780c8e</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/378396822/git-push-it-real-good</link>
      <category>git</category>
      <category>video</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/08/29/git-push-it-real-good</feedburner:origLink></item>
    <item>
      <title>RSpec: It Should Behave Like</title>
      <description>&lt;p&gt;I was going through an older project of ours and cleaning up some specs and noticed how often we were doing the same thing in several places. When we started the project, we didn&amp;#8217;t get the benefits of shared groups. Now that we have some time to go through and update some of our older specs, I&amp;#8217;ve been trying to take advantage of the features currently available in &lt;a href="http://rspec.info/"&gt;RSpec&lt;/a&gt;. One feature that I haven&amp;#8217;t seen a lot of mention of by people is shared groups, so I thought I&amp;#8217;d take a few minutes to write up a quick intro to using it.&lt;/p&gt;


	&lt;p&gt;To pick some low-hanging fruit, let&amp;#8217;s take an all-too-familiar method, which you might be familiar with&amp;#8230; &lt;code&gt;login_required&lt;/code&gt;. Sound familiar? Have you found yourself &lt;em&gt;stubbing&lt;/em&gt; &lt;code&gt;login_required&lt;/code&gt; over and over throughout your specs?&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="ident"&gt;describe&lt;/span&gt; &lt;span class="constant"&gt;Admin&lt;/span&gt;&lt;span class="punct"&gt;::&lt;/span&gt;&lt;span class="constant"&gt;DohickiesController&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;index&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt;

  &lt;span class="ident"&gt;before&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt; &lt;span class="symbol"&gt;:each&lt;/span&gt; &lt;span class="punct"&gt;)&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt;
    &lt;span class="ident"&gt;controller&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;stub!&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt; &lt;span class="symbol"&gt;:login_required&lt;/span&gt; &lt;span class="punct"&gt;)&lt;/span&gt;
    &lt;span class="constant"&gt;Dohicky&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;should_receive&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt; &lt;span class="symbol"&gt;:paginate&lt;/span&gt; &lt;span class="punct"&gt;).&lt;/span&gt;&lt;span class="ident"&gt;and_return&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt; &lt;span class="constant"&gt;Array&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="ident"&gt;get&lt;/span&gt; &lt;span class="symbol"&gt;:index&lt;/span&gt;
  &lt;span class="keyword"&gt;end&lt;/span&gt;

 &lt;span class="punct"&gt;...&lt;/span&gt;
&lt;span class="keyword"&gt;end&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;If you&amp;#8217;re requiring that a user should be logged in when interacting with most of the application (as in the case of an administration section/namespace), you might want to consolidate some of your work into one shared specification group. The basic premise behind this is that you can write a typical &lt;code&gt;describe&lt;/code&gt; block and load it into any other spec groups that you need. For example, in our case, we&amp;#8217;ll need to stub &lt;code&gt;login_required&lt;/code&gt; in several places. We can set this up in one shared group and reference it wherever necessary.&lt;/p&gt;


	&lt;p&gt;For example, here is what we&amp;#8217;ll start off with.&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="ident"&gt;describe&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;an admin user is signed in&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt;
  &lt;span class="ident"&gt;before&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt; &lt;span class="symbol"&gt;:each&lt;/span&gt; &lt;span class="punct"&gt;)&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt;
    &lt;span class="ident"&gt;controller&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;stub!&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt; &lt;span class="symbol"&gt;:login_required&lt;/span&gt; &lt;span class="punct"&gt;)&lt;/span&gt;
  &lt;span class="keyword"&gt;end&lt;/span&gt;
&lt;span class="keyword"&gt;end&lt;/span&gt;

&lt;span class="ident"&gt;describe&lt;/span&gt; &lt;span class="constant"&gt;Admin&lt;/span&gt;&lt;span class="punct"&gt;::&lt;/span&gt;&lt;span class="constant"&gt;DohickiesController&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;index&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;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;However, the new describe block isn&amp;#8217;t accessible from the block at the bottom of the example&amp;#8230; yet. To do this, we just need to pass the option: &lt;code&gt;:shared =&amp;gt; true&lt;/code&gt; as you&amp;#8217;ll see in the following example.&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="ident"&gt;describe&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;an admin user is signed in&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;,&lt;/span&gt; &lt;span class="symbol"&gt;:shared&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="keyword"&gt;do&lt;/span&gt;
  &lt;span class="ident"&gt;before&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt; &lt;span class="symbol"&gt;:each&lt;/span&gt; &lt;span class="punct"&gt;)&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt;
    &lt;span class="ident"&gt;controller&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;stub!&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt; &lt;span class="symbol"&gt;:login_required&lt;/span&gt; &lt;span class="punct"&gt;)&lt;/span&gt;
  &lt;span class="keyword"&gt;end&lt;/span&gt;
&lt;span class="keyword"&gt;end&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;Great, now we can reference it by referring to it with: &lt;code&gt;it_should_behave_like SharedGroupName&lt;/code&gt;. In our example above, this would look like:&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="ident"&gt;describe&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;an admin user is signed in&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt;
  &lt;span class="ident"&gt;before&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt; &lt;span class="symbol"&gt;:each&lt;/span&gt; &lt;span class="punct"&gt;)&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt;
    &lt;span class="ident"&gt;controller&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;stub!&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt; &lt;span class="symbol"&gt;:login_required&lt;/span&gt; &lt;span class="punct"&gt;)&lt;/span&gt;
  &lt;span class="keyword"&gt;end&lt;/span&gt;
&lt;span class="keyword"&gt;end&lt;/span&gt;

&lt;span class="ident"&gt;describe&lt;/span&gt; &lt;span class="constant"&gt;Admin&lt;/span&gt;&lt;span class="punct"&gt;::&lt;/span&gt;&lt;span class="constant"&gt;DohickiesController&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;index&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt;
  &lt;span class="ident"&gt;it_should_behave_like&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;an admin user is signed in&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;

  &lt;span class="ident"&gt;before&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt; &lt;span class="symbol"&gt;:each&lt;/span&gt; &lt;span class="punct"&gt;)&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt;
    &lt;span class="constant"&gt;Dohicky&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;should_receive&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt; &lt;span class="symbol"&gt;:paginate&lt;/span&gt; &lt;span class="punct"&gt;).&lt;/span&gt;&lt;span class="ident"&gt;and_return&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt; &lt;span class="constant"&gt;Array&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="ident"&gt;get&lt;/span&gt; &lt;span class="symbol"&gt;:index&lt;/span&gt;
  &lt;span class="keyword"&gt;end&lt;/span&gt;

 &lt;span class="punct"&gt;...&lt;/span&gt;
&lt;span class="keyword"&gt;end&lt;/span&gt;

&lt;span class="ident"&gt;describe&lt;/span&gt; &lt;span class="constant"&gt;Admin&lt;/span&gt;&lt;span class="punct"&gt;::&lt;/span&gt;&lt;span class="constant"&gt;DohickiesController&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;new&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt;
  &lt;span class="ident"&gt;it_should_behave_like&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;an admin user is signed in&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;

  &lt;span class="ident"&gt;before&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt; &lt;span class="symbol"&gt;:each&lt;/span&gt; &lt;span class="punct"&gt;)&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt;
    &lt;span class="attribute"&gt;@dohicky&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="ident"&gt;mock_model&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt; &lt;span class="constant"&gt;Dohicky&lt;/span&gt; &lt;span class="punct"&gt;)&lt;/span&gt;
    &lt;span class="constant"&gt;Dohicky&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;should_receive&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt; &lt;span class="symbol"&gt;:new&lt;/span&gt; &lt;span class="punct"&gt;).&lt;/span&gt;&lt;span class="ident"&gt;and_return&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt; &lt;span class="attribute"&gt;@dohicky&lt;/span&gt; &lt;span class="punct"&gt;)&lt;/span&gt;
    &lt;span class="ident"&gt;get&lt;/span&gt; &lt;span class="symbol"&gt;:new&lt;/span&gt;
  &lt;span class="keyword"&gt;end&lt;/span&gt;

  &lt;span class="punct"&gt;...&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;That&amp;#8217;s it! Pretty simple, eh? We can now reference this shared group in any describe blocks that we want to. A benefit to this approach is that we can make change the authentication system (say, we decide to switch it entirely and/or even just change method names, set any other prerequisites necessary when an admin is signed in), we&amp;#8217;ll have a single place to change in our specs. (&lt;strong&gt;tip:&lt;/strong&gt; you can put these in your &lt;code&gt;spec_helper&lt;/code&gt; file)&lt;/p&gt;


	&lt;p&gt;You can learn more about &lt;code&gt;it_should_behave_like&lt;/code&gt; and other helpful features on the &lt;a href="http://rspec.info/documentation/"&gt;RSpec documentation site&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;If you have any suggestions on better ways of handling things like this, please follow up and share your solutions. I&amp;#8217;m always looking to sharpen my tools. :-)&lt;/p&gt;


	&lt;h3&gt;Update&lt;/h3&gt;


	&lt;p&gt;In response, &lt;a href="http://brynary.com/"&gt;Bryan Helmkamp&lt;/a&gt; suggests that a better solution is to define a method in our specs like, for example: &lt;code&gt;build_mock_user_and_login&lt;/code&gt;. then calling it in our &lt;code&gt;before(:each)&lt;/code&gt;. So, maybe the approach above isn&amp;#8217;t the most ideal method but I did wantt o draw some attention to &lt;code&gt;it_should_behave_like&lt;/code&gt;. I suppose that I need a better example.. another post, perhaps? :-)&lt;/p&gt;


	&lt;p&gt;Also, Ed Spencer has posted an article titled, &lt;a href="http://edspencer.net/2008/08/drying-up-your-crud-controller-rspecs.html"&gt;DRYing up your &lt;span class="caps"&gt;CRUD&lt;/span&gt; controller RSpecs&lt;/a&gt;, which will introduce you mor to &lt;code&gt;it_should_behave_like&lt;/code&gt;.&lt;/p&gt;


	&lt;p&gt;Thanks for feedback people!&lt;/p&gt;


	&lt;h3&gt;Related Posts&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://www.robbyonrails.com/articles/2007/02/13/be-careful-that-you-dont-stub-your-big-toe"&gt;Be Careful that you don&amp;#8217;t Stub your Big Toe&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://www.robbyonrails.com/articles/2007/08/02/spec-your-views"&gt;Spec Your Views&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=EzyLeK"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=EzyLeK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=GD8Yek"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=GD8Yek" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=yNEkwK"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=yNEkwK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=IF8KeK"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=IF8KeK" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/369590704" height="1" width="1"/&gt;</description>
      <pubDate>Tue, 19 Aug 2008 21:47:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:769c7a25-afa3-40aa-aeb4-98c2ac61115a</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/369590704/rspec-it-should-behave-like</link>
      <category>Ruby on Rails</category>
      <category>Ruby</category>
      <category>Programming</category>
      <category>development</category>
      <category>rspec</category>
      <category>controllers</category>
      <category>rubyonrails</category>
      <category>rails</category>
      <category>agile</category>
      <category>tutorial</category>
      <category>specs</category>
      <category>code</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/08/19/rspec-it-should-behave-like</feedburner:origLink></item>
    <item>
      <title>Things.app syncs with the iPhone!</title>
      <description>&lt;p&gt;Awesome. Things 1.1 for the iPhone was just pushed to the Apple iTunes Store, which means&amp;#8230; I can finally sync my Things.app with my iPhone!&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3295/2777286114_ef48812b92.jpg?v=0" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;ve been using Things for quite a while to manage my life (work and personal) and bringing this to my phone definitely makes my day.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://img.skitch.com/20080819-1cn9cjpu769hnctma7ewcr2429.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;For more information about Things, visit the following sites:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://culturedcode.com/things/"&gt;http://culturedcode.com/things/&lt;/a&gt; (Things for &lt;span class="caps"&gt;OSX&lt;/span&gt;)&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=284971781&amp;#38;mt=8"&gt;Things&lt;/a&gt; (iPhone)&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;I&amp;#8217;ll post a review in the coming days as I get a chance to play with it. Just wanted to share the news. :-)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=oPZNqK"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=oPZNqK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=96ZiDk"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=96ZiDk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=0IgOmK"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=0IgOmK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=xebSXK"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=xebSXK" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/368704610" height="1" width="1"/&gt;</description>
      <pubDate>Mon, 18 Aug 2008 23:18:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:3fb63dc6-4a04-4075-8084-b78cb076cbc4</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/368704610/things-app-syncs-with-the-iphone</link>
      <category>gtd</category>
      <category>things</category>
      <category>iphone</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/08/18/things-app-syncs-with-the-iphone</feedburner:origLink></item>
    <item>
      <title>Alan Cooper @ Agile2008 slides</title>
      <description>&lt;p&gt;Alan Cooper, author of &lt;a href="http://www.amazon.com/About-Face-Essentials-Interface-Design/dp/1568843224"&gt;About Face&lt;/a&gt;, has slides from his presentation at Agile 2008 online.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://www.cooper.com/journal/agile2008/"&gt;The Wisdom of Experience&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;If anybody knows if there is video of this talk, please let me know. :-)&lt;/p&gt;


	&lt;p&gt;Here are a few skitches from the slideshow.&lt;/p&gt;


&lt;div class="thumbnail"&gt;&lt;a href="http://skitch.com/robbyrussell/ug8u/the-wisdom-of-experience"&gt;&lt;img src="http://img.skitch.com/20080812-r9hyg3xrncidmpm691s3aemrxw.preview.jpg" alt="The Wisdom of Experience" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;div class="thumbnail"&gt;&lt;a href="http://skitch.com/robbyrussell/ugej/the-wisdom-of-experience"&gt;&lt;img src="http://img.skitch.com/20080812-f18sjsi46bpx1uibn2k7jpw1ty.preview.jpg" alt="The Wisdom of Experience" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;div class="thumbnail"&gt;&lt;a href="http://skitch.com/robbyrussell/ugep/the-wisdom-of-experience"&gt;&lt;img src="http://img.skitch.com/20080812-8bn4q9jgx64nyry16wgtmt91qg.preview.jpg" alt="The Wisdom of Experience" /&gt;&lt;/div&gt;

&lt;div class="thumbnail"&gt;&lt;a href="http://skitch.com/robbyrussell/uges/the-wisdom-of-experience"&gt;&lt;img src="http://img.skitch.com/20080812-be1c52sxr11drrqy6xdtaf3f49.preview.jpg" alt="The Wisdom of Experience" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;div class="thumbnail"&gt;&lt;a href="http://skitch.com/robbyrussell/ugei/the-wisdom-of-experience"&gt;&lt;img src="http://img.skitch.com/20080812-jcummuw488b67xim7i23b3n1at.preview.jpg" alt="The Wisdom of Experience" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=ThRHzK"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=ThRHzK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=h01IXk"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=h01IXk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=0cCNFK"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=0cCNFK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=fzObUK"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=fzObUK" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/363365915" height="1" width="1"/&gt;</description>
      <pubDate>Tue, 12 Aug 2008 18:19:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:969a9ba9-28c4-46e3-b060-6e86e6e54528</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/363365915/alan-cooper-agile2008-slides</link>
      <category>Programming</category>
      <category>d3</category>
      <category>agile</category>
      <category>development</category>
      <category>ui</category>
      <category>IxD</category>
      <category>interactiondesign</category>
      <category>alancooper</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/08/12/alan-cooper-agile2008-slides</feedburner:origLink></item>
    <item>
      <title>Expanding Rails Boxcar packages</title>
      <description>&lt;p&gt;If you&amp;#8217;re in the market for a new hosting provider for your Ruby on Rails application, you might take a look at the new options for &lt;a href="http://railsboxcar.com/"&gt;Rails Boxcar.&lt;/a&gt; We recently expanded our service offerings into three pricing tiers as well as custom packages for those who need a bit more.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://www.railsboxcar.com/img/boxcar_logo_wide.png" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;A few things that we&amp;#8217;ve recently added support for:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Provide us your &lt;span class="caps"&gt;SSH&lt;/span&gt; key during sign up!
	&lt;ul&gt;
	&lt;li&gt;Allows us to keep your server even more secure by avoiding sending passwords over the net&lt;/li&gt;
		&lt;li&gt;Other fun features related to this coming soon&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
		&lt;li&gt;Auto-configured Nginx w/Mongrel cluster&lt;/li&gt;
		&lt;li&gt;Phusion Passenger (&lt;strong&gt;mod_rails&lt;/strong&gt;) support! (for those with mixed-environments)&lt;/li&gt;
		&lt;li&gt;Continued development of &lt;a href="http://github.com/planetargon/boxcar-conductor/tree/master"&gt;Boxcar Conductor&lt;/a&gt;)&lt;/li&gt;
		&lt;li&gt;...more in the works!&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;The best part is that we can get you up and running with a new Boxcar now for as low as $59/month &lt;span class="caps"&gt;USD&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;For more information, visit: &lt;a href="http://railsboxcar.com"&gt;http://railsboxcar.com&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;If you have any questions, don&amp;#8217;t hesitate to &lt;a href="mailto:contact@planetargon.com?subject=Boxcar"&gt;contact us&lt;/a&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=p7mx8K"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=p7mx8K" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=7graak"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=7graak" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=Ye71QK"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=Ye71QK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=hpM4JK"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=hpM4JK" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/355419953" height="1" width="1"/&gt;</description>
      <pubDate>Mon, 04 Aug 2008 09:30:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:f8d2d740-aad7-4c44-9465-53b9767e4df7</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/355419953/expanding-rails-boxcar-packages</link>
      <category>Business</category>
      <category>Ruby on Rails</category>
      <category>Programming</category>
      <category>PLANET ARGON</category>
      <category>boxcar</category>
      <category>hosting</category>
      <category>rails</category>
      <category>plugin</category>
      <category>vps</category>
      <category>capistrano</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/08/04/expanding-rails-boxcar-packages</feedburner:origLink></item>
    <item>
      <title>Pair Programming and Micro Projects</title>
      <description>&lt;p&gt;It&amp;#8217;s been quiet because I&amp;#8217;ve been busy over the past few months. Projects, vacations, and pair programming with our new developer, Nigel. ;-)&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/robbyrussell/2674833047/" title="Pair programming by Robby Russell, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3170/2674833047_f2a5629d55.jpg" width="500" height="333" alt="Pair programming" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;In other news, &lt;a href="http://chriszgriffin.com/"&gt;Chris&lt;/a&gt; and I launched &lt;a href="http://ohmyscience.org"&gt;http://ohmyscience.org&lt;/a&gt; (on &lt;a href="http://twitter.com/ohmyscience"&gt;twitter&lt;/a&gt;) in an effort to get a small one-night micro-project out the door.&lt;/p&gt;


&lt;div class="thumbnail"&gt;&lt;a href="http://ohmyscience.org"&gt;&lt;img src="http://img.skitch.com/20080801-jpingqyemnki6wx2bj184m741c.preview.jpg" alt="Oh My Science 2014 replacing god with reason... one tweet at a time" /&gt;&lt;/a&gt;&lt;/div&gt;

	&lt;p&gt;I have a growing list of a few micro-projects that I hope to be helping get developed and launched before the summer is over. Stay tuned!&lt;/p&gt;


&lt;div class="thumbnail"&gt;&lt;a href="http://skitch.com/robbyrussell/1ejk/oh-my-science-replacing-god-with-reason-one-tweet-at-a-time"&gt;&lt;img src="http://img.skitch.com/20080801-tp16crbhpr6axdtfpf3en9ca7y.preview.jpg" alt="Oh My Science 2014 replacing god with reason... one tweet at a time" /&gt;&lt;/a&gt;&lt;/div&gt;

	&lt;p&gt;I hope that you&amp;#8217;re all enjoying your summer!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=QA6CrJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=QA6CrJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=bGdfXj"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=bGdfXj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=rqhcFJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=rqhcFJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=yIVupJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=yIVupJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/352196095" height="1" width="1"/&gt;</description>
      <pubDate>Thu, 31 Jul 2008 21:55:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:dd05c1e6-1409-4744-aa2e-c3d5096436b7</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/352196095/pair-programming-and-micro-projects</link>
      <category>projects</category>
      <category>agile</category>
      <category>dog</category>
      <category>nigel</category>
      <category>ohmyscience</category>
      <category>chrisgriffin</category>
      <category>science</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/07/31/pair-programming-and-micro-projects</feedburner:origLink></item>
    <item>
      <title>ShortURL on Github</title>
      <description>&lt;p&gt;After noticing a few patch requests on Rubyforge.. I decided that I&amp;#8217;d put the ShortURL gem up on GitHub as I spend quite a bit of my time there these days. :-)&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://github.com/robbyrussell/shorturl/tree"&gt;http://github.com/robbyrussell/shorturl/tree&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;I&amp;#8217;ve also thrown up a &lt;a href="http://gist.github.com/2186"&gt;few lines of code&lt;/a&gt; so that you can get the &lt;em&gt;gist&lt;/em&gt; of the gem. ;-)&lt;/p&gt;


&lt;script src="http://gist.github.com/2186.js"&gt;&lt;/script&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=erHkQJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=erHkQJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=CI8qvj"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=CI8qvj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=jUSRbJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=jUSRbJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=uZabfJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=uZabfJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/352196096" height="1" width="1"/&gt;</description>
      <pubDate>Thu, 24 Jul 2008 10:56:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:ae5b1e3e-e539-4451-8224-dec14d560e09</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/352196096/shorturl-on-github</link>
      <category>rubyurl</category>
      <category>shorturl</category>
      <category>gem</category>
      <category>git</category>
      <category>github</category>
      <category>gist</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/07/24/shorturl-on-github</feedburner:origLink></item>
    <item>
      <title>Ruby 1.8.7 on MacPorts causing some problems</title>
      <description>&lt;p&gt;It appears that MacPorts has upgraded to Ruby 1.8.7, which is good news if you&amp;#8217;re running Rails 2.1&amp;#8230; but if you have an older Rails application&amp;#8230; it&amp;#8217;s not going to work too well.&lt;/p&gt;


	&lt;p&gt;In order to get Ruby 1.8.6 installed with the latest MacPorts, you&amp;#8217;ll need to do the following.&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
  $ mkdir /Users/Shared/dports
&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;code&gt;
$ svn checkout -r 36429 \ 
    http://svn.macports.org/repository/macports/trunk/dports/lang/ruby/ \ 
    /Users/Shared/dports/lang/ruby/
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Then you&amp;#8217;ll need to modify your macports to use this new local source. You&amp;#8217;ll need to edit &lt;code&gt;/opt/local/etc/macports/sources.conf&lt;/code&gt;  and add the following line above the existing rsync record.&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;file:///Users/Shared/dports and create that directory&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;Next, you&amp;#8217;ll want to index this new local source with the following command:&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;portindex /Users/Shared/dports&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;After that, you can do the following.&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;sudo port uninstall rb-rubygems ruby&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;sudo port clean rb-rubygems ruby&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;sudo rm -r /opt/local/lib/ruby/gems/1.8/doc/rubygems-1.1.1/&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;sudo port deactivate autoconf&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;sudo port install ruby rb-rubygems&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;..and hopefully you&amp;#8217;ll have Ruby 1.8.6 installed and be able to retain the rubygems you installed already.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=oyV1DJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=oyV1DJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=MNJOJj"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=MNJOJj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=DiO7QJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=DiO7QJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=eOQ9XJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=eOQ9XJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/352196097" height="1" width="1"/&gt;</description>
      <pubDate>Fri, 20 Jun 2008 16:11:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:d949213f-ee18-44ed-a39f-a644f33289ca</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/352196097/ruby-1-8-7-on-macports-causing-some-problems</link>
      <category>Ruby on Rails</category>
      <category>Ruby</category>
      <category>macports</category>
      <category>ruby</category>
      <category>rubygems</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/06/20/ruby-1-8-7-on-macports-causing-some-problems</feedburner:origLink></item>
    <item>
      <title>Basecamp...</title>
      <description>&lt;p&gt;Kudos to the 37signals team for launching what looks like a nice way to get the word out about their products.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;ve been using Basecamp for three years and it&amp;#8217;s been a great tool for collaborating with our clients.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.basecampHQ.com?referrer=ROBBYRUSSELL"&gt;&lt;img alt="Basecamp" border="0" height="250" src="https://affiliate.37signals.com/images/products/basecamp/banner-300x250.png" width="300" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Disclaimer: This is my get-rich-quick scheme for the day.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=LMTYiJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=LMTYiJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=kLPOUj"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=kLPOUj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=2vvu3J"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=2vvu3J" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=o6Bk1J"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=o6Bk1J" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/352196098" height="1" width="1"/&gt;</description>
      <pubDate>Wed, 04 Jun 2008 12:13:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:56c1393e-7174-428c-9fc1-04cb3bac8f5c</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/352196098/basecamp</link>
      <category>37signals</category>
      <category>basecamp</category>
      <category>projects</category>
      <category>agile</category>
      <category>team</category>
      <category>collaborate</category>
      <category>dialogue</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/06/04/basecamp</feedburner:origLink></item>
    <item>
      <title>New Boxcar plans announced!</title>
      <description>&lt;p&gt;Yesterday we announced our new suite of plans for Rails Boxcar. You can now get started with a pre-configured &lt;span class="caps"&gt;VPS&lt;/span&gt; designed by Rails developers like you for as low as $59/month.&lt;/p&gt;


	&lt;p&gt;You can check out our new rates here:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://railsboxcar.com"&gt;http://railsboxcar.com&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;If you&amp;#8217;re at RailsConf, be sure to introduce yourself and ask for details. :-)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=DsLdtJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=DsLdtJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=oAwAuj"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=oAwAuj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=7TZ3qJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=7TZ3qJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=MUmUnJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=MUmUnJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/352196099" height="1" width="1"/&gt;</description>
      <pubDate>Fri, 30 May 2008 14:30:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:09b31bcf-a1b8-4699-b262-13cbc23ae63f</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/352196099/new-boxcar-plans-announced</link>
      <category>Ruby on Rails</category>
      <category>PLANET ARGON</category>
      <category>hosting</category>
      <category>rails</category>
      <category>vps</category>
      <category>boxcar</category>
      <category>planetargon</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/05/30/new-boxcar-plans-announced</feedburner:origLink></item>
    <item>
      <title>Meet us at RailsConf</title>
      <description>&lt;p&gt;If you&amp;#8217;re coming to Portland for RailsConf or CabooseConf, be sure to introduce yourself (and we&amp;#8217;ll try to do the same). A few of us from &lt;a href="http://planetargon.com"&gt;Planet Argon&lt;/a&gt; will be attending the conference. I thought that I&amp;#8217;d make it easy to spot us by putting some faces to our names.&lt;/p&gt;


	&lt;p&gt;In corner #1 we have &lt;strong&gt;Alex Malinovich&lt;/strong&gt; who is our Director of Deployment Services. If you have any questions about hosting options, deployment tips, and scaling your Ruby on Rails application.. be sure to tug on his shoulder. I also overheard that he&amp;#8217;ll be giving people discounts on our Boxcar products to those he meets in person.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/robbyrussell/2419611753/" title="Alex by Robby Russell, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2236/2419611753_d829f271d1.jpg" width="500" height="333" alt="Alex" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;&lt;strong&gt;Alex Malinovich&lt;/strong&gt;, Director of Deployment Services&lt;/small&gt;&lt;/p&gt;


	&lt;p&gt;In corner #2, we have &lt;strong&gt;Andy Delcambre&lt;/strong&gt; who is on our development team. You might remember Andy from his series of &lt;a href="http://andy.delcambre.com/tags/git"&gt;blog posts/tutorials on using Git&lt;/a&gt; and getting &lt;a href="http://andy.delcambre.com/2007/8/17/authenticated-rss-proxy"&gt;Basecamp &lt;span class="caps"&gt;RSS&lt;/span&gt; feeds working in Google Reader&lt;/a&gt; via a Mongrel-based proxy (our team is still using this approach using this after ten months!).&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/robbyrussell/2432834995/" title="Andy by Robby Russell, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2096/2432834995_eb937af274.jpg" width="333" height="500" alt="Andy" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;&lt;strong&gt;Andy Delcambre&lt;/strong&gt;, Software Developer&lt;/small&gt;&lt;/p&gt;


	&lt;p&gt;In corner #3, we have &lt;strong&gt;Gary Blessington&lt;/strong&gt; who has been leading our design and development team. If you&amp;#8217;re looking for a job working with Ruby on Rails, be sure to introduce yourself to Gary as he&amp;#8217;s hoping to meet up with several applicants who will be in Portland this week.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/robbyrussell/1430587811/" title="IMG_9286 copy.jpg by Robby Russell, on Flickr"&gt;&lt;img src="http://farm2.static.flickr.com/1167/1430587811_36d525cbf8.jpg" width="500" height="333" alt="IMG_9286 copy.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;&lt;strong&gt;Gary Blessington&lt;/strong&gt;, Director of Design and Development&lt;/small&gt;&lt;/p&gt;


	&lt;p&gt;In corner #4&amp;#8230; is me. I&amp;#8217;m not doing any talks this year so I plan to do wander around stress-free as I&amp;#8217;m not finishing my slides at the last minute or preparing for panel talks. I&amp;#8217;m happy to field questions and exchange stories with you. :-)&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/robbyrussell/518770652/" title="me... by Robby Russell, on Flickr"&gt;&lt;img src="http://farm1.static.flickr.com/250/518770652_61c87e940f.jpg" width="500" height="333" alt="me..." /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;&lt;strong&gt;Robby Russell&lt;/strong&gt;&lt;/small&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://jobs.rubynow.com/jobs/show/2238"&gt;We are hiring&lt;/a&gt;... so feel free to introduce yourself to any of the faces above.&lt;/p&gt;


	&lt;p&gt;...and most importantly, I hope you have a great time in Portland!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=H7zy4J"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=H7zy4J" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=FRJrIj"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=FRJrIj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=y8O3pJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=y8O3pJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=LaCZ1J"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=LaCZ1J" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/352196100" height="1" width="1"/&gt;</description>
      <pubDate>Wed, 28 May 2008 08:46:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:b8ddcb74-ffad-4495-974a-d0eeaeffd9d6</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/352196100/meet-us-at-railsconf</link>
      <category>Business</category>
      <category>Ruby on Rails</category>
      <category>PLANET ARGON</category>
      <category>jobs</category>
      <category>rubyonrails</category>
      <category>planetargon</category>
      <category>portland</category>
      <category>railsconf</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/05/28/meet-us-at-railsconf</feedburner:origLink></item>
    <item>
      <title>Coming to Portland for RailsConf or CabooseConf</title>
      <description>&lt;p&gt;If you&amp;#8217;re coming to Portland, Oregon for RailsConf 2008 or CabooseConf&amp;#8230; I&amp;#8217;d like to invite you all to check out our collection of articles that we wrote to highlight some stuff to do in town. We&amp;#8217;ll be posting a few more before the conference, but wanted to help you all plan out your visit in our wonderful little city.
&lt;a href="http://www.flickr.com/photos/robbyrussell/1010616106/" title="Portland by Robby Russell, on Flickr"&gt;&lt;img src="http://farm2.static.flickr.com/1437/1010616106_1a36e1605c.jpg" width="500" height="333" alt="Portland" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;h2&gt;Portland Revealed series&lt;/h2&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://blog.planetargon.com/2007/5/10/portland-revealed-episode-2-beertown"&gt;Episode 2: Beertown&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://blog.planetargon.com/2007/5/11/portland-revealed-episode-3-get-outdoors"&gt;Episode 3: Get outdoors&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://blog.planetargon.com/2007/5/16/portland-revealed-episode-4-stay-awake-during-railsconf"&gt;Episode 4: Stay Awake During RailsConf&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://blog.planetargon.com/2007/5/16/portland-revealed-episode-5-places-to-work"&gt;Episode 5: Places to Work&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://blog.planetargon.com/portland-revealed"&gt;Read them all&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


&lt;div class="thumbnail"&gt;&lt;a href="http://skitch.com/robbyrussell/cb9j/beertown"&gt;&lt;img src="http://img.skitch.com/20080523-d2fgmx2ia54xg7xx2rttm7rfmq.preview.jpg" alt="beertown" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family: Lucida Grande, Trebuchet, sans-serif, Helvetica, Arial; font-size: 10px; color: #808080"&gt;Uploaded with &lt;a href="http://plasq.com/"&gt;plasq&lt;/a&gt;&amp;#8217;s &lt;a href="http://skitch.com"&gt;Skitch&lt;/a&gt;!&lt;/span&gt;&lt;/div&gt;

	&lt;p&gt;Stay tuned as we&amp;#8217;ll be posting more over the next week.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=NjoGdJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=NjoGdJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=pL7Ulj"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=pL7Ulj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=n6MOhJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=n6MOhJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=k1CiLJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=k1CiLJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/352196101" height="1" width="1"/&gt;</description>
      <pubDate>Fri, 23 May 2008 07:45:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:4fa63a75-ac66-4ebf-b5b5-63e9961562f5</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/352196101/coming-to-portland-for-railsconf-or-cabooseconf</link>
      <category>PLANET ARGON</category>
      <category>portland</category>
      <category>blog</category>
      <category>railsconf</category>
      <category>cabooseconf</category>
      <category>conference</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/05/23/coming-to-portland-for-railsconf-or-cabooseconf</feedburner:origLink></item>
    <item>
      <title>Boxcar Conductor plugin moved</title>
      <description>&lt;p&gt;Update. We&amp;#8217;ve moved the &lt;a href="http://www.robbyonrails.com/articles/2008/04/15/boxcar-conductor-rails-deployment-made-easy"&gt;Boxcar Conductor plugin&lt;/a&gt; for deploying Ruby on Rails applications to a new location on &lt;a href="http://github.com"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://github.com/planetargon/boxcar-conductor"&gt;http://github.com/planetargon/boxcar-conductor&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;You can still submit bugs/feature requests on Lighthouse here:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://planetargon.lighthouseapp.com/projects/9962-boxcar-conductor/overview"&gt;Boxcar on Lighthouse&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Enjoy!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=msms5J"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=msms5J" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=Vg3r3j"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=Vg3r3j" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=En0b9J"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=En0b9J" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=XeRE5J"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=XeRE5J" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/352196102" height="1" width="1"/&gt;</description>
      <pubDate>Fri, 23 May 2008 04:23:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:59197be4-0139-4950-9281-4d3fee8b4af3</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/352196102/boxcar-conductor-plugin-moved</link>
      <category>Ruby on Rails</category>
      <category>PLANET ARGON</category>
      <category>boxcar</category>
      <category>hosting</category>
      <category>rails</category>
      <category>plugin</category>
      <category>vps</category>
      <category>capistrano</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/05/23/boxcar-conductor-plugin-moved</feedburner:origLink></item>
    <item>
      <title>Boxcar on Twitter</title>
      <description>&lt;p&gt;We&amp;#8217;re about to roll out some announcements for &lt;a href="http://railsboxcar.com"&gt;Boxcar&lt;/a&gt;, our professional &lt;span class="caps"&gt;VPS&lt;/span&gt; hosting solution for Ruby on Rails applications. As we roll out these new updates, we&amp;#8217;re going to offer some extra special deals to those who are following us on twitter. :-)&lt;/p&gt;


	&lt;p&gt;If you want in on the action&amp;#8230;&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://twitter.com/boxcar"&gt;Follow @boxcar&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://twitter.com/planetargon"&gt;Follow @planetargon&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;As usual, we&amp;#8217;ll be posting some announcements on &lt;a href="http://blog.planetargon.com"&gt;our blog&lt;/a&gt; as well&amp;#8230; so be sure to &lt;a href="http://feeds.feedburner.com/planetargon"&gt;subscribe to our feed&lt;/a&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=NNXk4J"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=NNXk4J" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=BbdPej"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=BbdPej" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=wZR4zJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=wZR4zJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=xv4AlJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=xv4AlJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/352196103" height="1" width="1"/&gt;</description>
      <pubDate>Thu, 22 May 2008 22:00:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:267bd0cf-1120-4a35-996c-7a4590b6c2b7</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/352196103/boxcar-on-twitter</link>
      <category>Business</category>
      <category>Ruby on Rails</category>
      <category>PLANET ARGON</category>
      <category>hosting</category>
      <category>vps</category>
      <category>rails</category>
      <category>boxcar</category>
      <category>rubyonrails</category>
      <category>railsboxcar</category>
      <category>twitter</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/05/22/boxcar-on-twitter</feedburner:origLink></item>
    <item>
      <title>The Art of Delivery, part 2</title>
      <description>&lt;p&gt;Two years ago, I wrote an article titled, &lt;a href="http://www.robbyonrails.com/articles/2006/05/31/the-art-of-delivery-part-1"&gt;The Art of Delivery&lt;/a&gt;. I wanted to post a few updates based on how our process has evolved since then (and continues to).&lt;/p&gt;


	&lt;p&gt;Over the past few years, we&amp;#8217;ve been fortunate enough to work on quite a diverse collection of projects. This has enabled us to work with many different clients and solicit feedback on our process. This has given us an opportunity to evolve a set of best practices that fulfills the long-term project goals/budgets of our client while making sure that we&amp;#8217;re able to maintain a design and development process that is agile.&lt;/p&gt;


	&lt;p&gt;As I&amp;#8217;ve mentioned in previous posts, our team typically bills work per-iteration on projects rather than per-hour or a flat-bid per-project. Since iterations are bite-sized pieces of the entire project and limited to 1-2 weeks, our teams estimates are much more accurate and we&amp;#8217;re able to keep things rolling and on track.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/robbyrussell/2275337814/" title="stay on track by Robby Russell, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2129/2275337814_6774d562ee.jpg" width="500" height="333" alt="stay on track" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;The basic structure of our project looks like this.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;A &lt;strong&gt;Project&lt;/strong&gt; has many releases&lt;/li&gt;
		&lt;li&gt;A &lt;strong&gt;Release&lt;/strong&gt; has many iterations&lt;/li&gt;
		&lt;li&gt;An &lt;strong&gt;Iteration&lt;/strong&gt; has many deliverables&lt;/li&gt;
		&lt;li&gt;A &lt;strong&gt;Deliverable&lt;/strong&gt; has many tasks&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Before we begin working on an iteration, we outline a set of goals that we want to create solutions for. This process comes out of discussions between our client and us until we agree on what is the highest value/most critical to the success of the project, based on our shared understanding of where we are today. These goals translate into Deliverables, which in a typical iteration might require Interaction Design, Interface Design, or Development. We tend to break our process up into stages so that Interaction Design on Module &lt;span class="caps"&gt;XYZ&lt;/span&gt; would be implemented in a following iteration. This is because it&amp;#8217;s unrealistic to expect someone to provide an accurate estimate on how long it&amp;#8217;ll take to implement something before you know how people will interact with it.&lt;/p&gt;


	&lt;p&gt;Within any given iteration, our team is spread across several sets of deliverables. As a team, we breakdown these deliverables into smaller sets of tasks. It&amp;#8217;s our aim to keep tasks smaller than a full days worth of work as it&amp;#8217;s much easier to measure progress across the iteration when we can track tasks at a granular level.&lt;/p&gt;


	&lt;p&gt;Essentially, tasks are the individual steps needed to achieve these goals. We don&amp;#8217;t go out of our way to list each one of those during an estimate process as some tasks take less time than it takes to generate an estimate for them. Each person providing estimates should avoid getting too granular and aim to find a good balance that compliments their workflow.&lt;/p&gt;


	&lt;p&gt;Like most things&amp;#8230; mileage may vary.&lt;/p&gt;


	&lt;p&gt;Through this process, we can get calculate the estimated costs for each deliverable, which then provides us an cost for the entire iteration. In addition to deliverables, we also budget a set of hours/days so that we can be compensated for handling small requests, bug fixes, and project management. It&amp;#8217;s important to factor these things into your process.&lt;/p&gt;


	&lt;p&gt;In future posts, I&amp;#8217;ll discuss how we&amp;#8217;re handling this process while working on multiple projects&amp;#8230; as that&amp;#8217;s where it can chaos can start if you&amp;#8217;re not careful. ;-)&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/robbyrussell/2274544107/" title="oops by Robby Russell, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2123/2274544107_0d427f84a7.jpg" width="500" height="333" alt="oops" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;How does your team work? As we&amp;#8217;re always evolving our process in an effort so that we can be more efficient and speed up our delivery cycle, I&amp;#8217;d love to learn from those in the community.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=SyW3uJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=SyW3uJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=1msB6j"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=1msB6j" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=NofW3J"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=NofW3J" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=Q7L8aJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=Q7L8aJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/352196104" height="1" width="1"/&gt;</description>
      <pubDate>Thu, 22 May 2008 13:42:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:268b4aaa-a86f-443e-8365-039ef5c747aa</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/352196104/the-art-of-delivery-part-2</link>
      <category>Business</category>
      <category>Programming</category>
      <category>PLANET ARGON</category>
      <category>agile</category>
      <category>development</category>
      <category>iterations</category>
      <category>projects</category>
      <category>deliverables</category>
      <category>team</category>
      <category>estimates</category>
      <category>budgets</category>
      <category>process</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/05/22/the-art-of-delivery-part-2</feedburner:origLink></item>
    <item>
      <title>Was away on vacation</title>
      <description>&lt;p&gt;It&amp;#8217;s been quiet here the past several weeks and that&amp;#8217;s because for the first time since I started &lt;a href="http://planetargon.com"&gt;Planet Argon&lt;/a&gt;, I was able to take an extended vacation.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/robbyrussell/2476085538/" title="IMG_8957 by Robby Russell, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2399/2476085538_4c8e01ed1a.jpg" width="500" height="333" alt="IMG_8957" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;My partner and I headed to France (Paris, Nice, Lascaux II, and Bordeaux) for a few weeks. It was a first time for both of us. I&amp;#8217;ve posted some photos on &lt;a href="http://www.flickr.com/photos/robbyrussell/"&gt;my flickr&lt;/a&gt; (&lt;a href="http://www.flickr.com/photos/robbyrussell/sets/72157604714698814/"&gt;vacation set&lt;/a&gt;).&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/robbyrussell/2475271101/" title="Lascaux II by Robby Russell, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2191/2475271101_9dc8d5aef7.jpg" width="500" height="333" alt="Lascaux II" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;d like to thank my amazing team for helping make it easy for me to take off for that much time. :-)&lt;/p&gt;


	&lt;p&gt;In any event, I wanted to post a few non-technical links&amp;#8230;&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://veggie.tumblr.com/"&gt;Veggie Tastespotting&lt;/a&gt; (&lt;a href="http://tastespotting.com"&gt;tastespotting&lt;/a&gt; without the meat)&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://robbyrussell.muxtape.com/"&gt;Robby&amp;#8217;s Muxtape&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://grabb.it/users/robbyrussell"&gt;Robby&amp;#8217;s Grabb.it&lt;/a&gt; &lt;/li&gt;
		&lt;li&gt;&lt;a href="http://twitter.com/robbyrussell"&gt;Robby on twitter&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://feedflix.com/robbyrussell"&gt;Robby&amp;#8217;s feedflix&lt;/a&gt; (netflix queue/stats)&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Link yours up!&lt;/p&gt;


	&lt;p&gt;In the coming weeks&amp;#8230; I&amp;#8217;ll be posting some more thoughts on Project Management, time management, and anything else that seems to come up. If there is anything you&amp;#8217;d like me to write about, feel free to &lt;a href="mailto:robbyrussell+blog@gmail.com"&gt;drop me a line&lt;/a&gt; with a request.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=jqOoVJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=jqOoVJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=4kIq1j"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=4kIq1j" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=tNVpsJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=tNVpsJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=oVCzeJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=oVCzeJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/352196105" height="1" width="1"/&gt;</description>
      <pubDate>Sun, 11 May 2008 17:33:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:2a062746-541a-499f-ab41-6fb4f89b940d</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/352196105/was-away-on-vacation</link>
      <category>Off-Topic</category>
      <category>PLANET ARGON</category>
      <category>vacation</category>
      <category>personal</category>
      <category>france</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/05/11/was-away-on-vacation</feedburner:origLink></item>
    <item>
      <title>RubyURL meets Zombies!</title>
      <description>&lt;p&gt;Last Friday, Greg Borenstein sent me a link to &lt;a href="http://zombieurl.com"&gt;ZombieURL&lt;/a&gt; after it got launched. The folks at &lt;a href="http://bottlecaplabs.net/"&gt;Bottlecap Labs&lt;/a&gt; took &lt;a href="http://rubyurl.com"&gt;RubyURL&lt;/a&gt; and threw in Zombies&amp;#8230; the rest you&amp;#8217;ll have to see for yourself.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://zombieurl.com/Ssfl"&gt;don&amp;#8217;t click this link&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;There&amp;#8230; I warned you.&lt;/p&gt;


	&lt;p&gt;You can check out the source code for ZombieURL on GitHub&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://github.com/bottlecaplabs/zombieurl/tree"&gt;http://github.com/bottlecaplabs/zombieurl/tree&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;You can also grab the underlying source code for RubyURL on GitHub.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://github.com/robbyrussell/rubyurl/tree/master"&gt;http://github.com/robbyrussell/rubyurl/tree/master&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;I&amp;#8217;d love to see what other fun things people come up with to do with RubyURL.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=na9fFJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=na9fFJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=HIu7xj"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=HIu7xj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=YNqPxJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=YNqPxJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=xGrTgJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=xGrTgJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/352196106" height="1" width="1"/&gt;</description>
      <pubDate>Tue, 22 Apr 2008 11:43:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:70c2e909-d2f1-4ecc-8c28-7edcfef5784e</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/352196106/rubyurl-meets-zombies</link>
      <category>RubyURL</category>
      <category>ruby</category>
      <category>development</category>
      <category>zombies</category>
      <category>rubyurl</category>
      <category>github</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/04/22/rubyurl-meets-zombies</feedburner:origLink></item>
    <item>
      <title>Review: Braintree </title>
      <description>&lt;p&gt;&lt;a href="http://depixelate.com/"&gt;Zack Chandler&lt;/a&gt; (author of the TrustCommerce gem) writes..&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&amp;#8220;How do you like Braintree? I’ve haven’t used them yet but may in the future…&amp;#8221;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;Good question. I was actually planning to write up a quick review of their exceptional service because not many people know about them yet. Now is as good of a time as any.&lt;/p&gt;


	&lt;p&gt;We&amp;#8217;ve been using &lt;a href="http://authorize.net/"&gt;Authorize.NET&lt;/a&gt; for over four years as it&amp;#8217;s what our primary &lt;a href="http://wellsfargo.com"&gt;banking institution&lt;/a&gt; hooked us up with when we began researching merchant services. However, they didn&amp;#8217;t provide us with some of the subscription-based management features that we found with some other payment gateways and we began referring our customers to &lt;a href="http://trustcommerce"&gt;TrustCommerce&lt;/a&gt;. We planned to switch over to TrustCommerce with the development of Cobalt (our new billing and hosting support platform).&lt;/p&gt;


	&lt;p&gt;After we began to set milestones for going live with &lt;a href="http://cobalt.planetargon.com"&gt;Cobalt&lt;/a&gt;, I tried to get in touch with TrustCommerce. I was provided a demo account and really wanted to get in touch with their sales department to get an application.&lt;/p&gt;


	&lt;p&gt;...a week goes by. No response. So, I tried to contact them again. No response. tried again&amp;#8230; and (yet) again&amp;#8230; no response. To date, I have yet to hear back from them.&lt;/p&gt;


	&lt;p&gt;This was echoed by one of our consulting clients that said, &amp;#8220;their support staff seems real responsive, but I can&amp;#8217;t get ahold of anyone to actually get an account.&amp;#8221; So, I planned to start looking at other options or stick with Authorize.NET.&lt;/p&gt;


	&lt;p&gt;..and then (as if they were listening to my thoughts)... I receive an email from Bryan Johnson, founder of &lt;a href="http://getbraintree.com"&gt;Braintree&lt;/a&gt;, a &lt;em&gt;payment processing company&lt;/em&gt;.&lt;/p&gt;


	&lt;p&gt;(snip)&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&amp;#8220;I am the founder of Braintree, a payment processing company. We provide credit card and electronic check processing, simplified &lt;span class="caps"&gt;PCI DSS&lt;/span&gt; Compliance through remote storage of credit card data, payment gateway/virtual terminal, etc. We&amp;#8217;re a one stop shop.&amp;#8221;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;He goes on to introduce himself and explain that they&amp;#8217;re really focused on subscription-based services, which is exactly what our new centralized billing app is handling.&lt;/p&gt;


	&lt;p&gt;So, since I hadn&amp;#8217;t heard from TrustCommerce, I requested a demo with Braintree. We were able to take advantage of the hard work that has put into the &lt;a href="http://www.activemerchant.org"&gt;ActiveMerchant&lt;/a&gt; project, which already works with Braintree. So, our application that we&amp;#8217;d been focusing on integrating with TrustCommerce was just a few lines of code away from working with Braintree.&lt;/p&gt;


	&lt;p&gt;While I&amp;#8217;m sure that many people have had great experiences with TrustCommerce (as I did when I worked with their support team while working client projects)... not being able to order an account isn&amp;#8217;t doing them any favors.&lt;/p&gt;


	&lt;p&gt;So, we just launched and now running Cobalt with Braintree as our backend for managing recurring credit card processing. Their customer support has been great so far. In one case, I messed up some security settings and locked myself out and after they saw that I had failed to login a few times, I received a call from one of their support people. I didn&amp;#8217;t prompt it&amp;#8230; they took the initiative to call me. She said she&amp;#8217;d look into it and called me back when she figured out what I had done wrong. :-)&lt;/p&gt;


	&lt;p&gt;On Monday afternoon, after I announced that we launched Cobalt on my blog, I got a congratulations from another of their developers who congratulated us and wished us the best of success.&lt;/p&gt;


	&lt;p&gt;So&amp;#8230; Zack. To answer your question, &amp;#8220;How do you like Braintree?&amp;#8221;&lt;/p&gt;


	&lt;p&gt;My answer is&amp;#8230; I think they&amp;#8217;re fantastic so far. Their web interface for managing your account could use a few IxD eyes, but we like that it&amp;#8217;s minimal and most importantly&amp;#8230; the core functions of their product appear to be working great. Our team has now talked to roughly 5-6 different team members at Braintree and have nothing but great things to say about those interactions. Great customer service that definitely seems to echo that they want their customers to be successful and are here to do what they can to provide us with the tools we need to fulfill our goals.&lt;/p&gt;


	&lt;p&gt;I only wish that we had the same service from all of our vendors.&lt;/p&gt;


	&lt;p&gt;Bryan, thanks for introducing yourself. You have a great team.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;For more information, visit &lt;a href="http://getbraintree.com/"&gt;http://getbraintree.com/&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h2&gt;Related Posts&lt;/h2&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://www.robbyonrails.com/articles/2007/02/13/be-careful-that-you-dont-stub-your-big-toe"&gt;Be Careful that you don&amp;#8217;t Stub your Big Toe&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=B3xZCJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=B3xZCJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=qeURUj"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=qeURUj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=mslfOJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=mslfOJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=3T7sfJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=3T7sfJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/352196107" height="1" width="1"/&gt;</description>
      <pubDate>Wed, 16 Apr 2008 15:58:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:17210511-2725-4773-b4d4-c5b914e7de00</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/352196107/review-braintree</link>
      <category>Business</category>
      <category>PLANET ARGON</category>
      <category>business</category>
      <category>trustcommerce</category>
      <category>braintree</category>
      <category>subscriptions</category>
      <category>payment</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/04/16/review-braintree</feedburner:origLink></item>
    <item>
      <title>Boxcar Conductor: Rails deployment made easy</title>
      <description>&lt;p&gt;In a &lt;a href="http://www.robbyonrails.com/articles/2008/02/28/deploying-rails-with-an-interactive-capistrano-recipe-to-your-boxcar"&gt;previous post&lt;/a&gt;, I showed how we&amp;#8217;ve been working on an interactive deployment process for Rails applications to reduce the time it takes to deploy to a &lt;a href="http://railsboxcar.com"&gt;Boxcar&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;We began to move our Boxcar deployment recipes into it&amp;#8217;s own Rails plugin and just made it available on &lt;a href="http://github.coms"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;


	&lt;h2&gt;Introducing Boxcar Conductor&lt;/h2&gt;


	&lt;p&gt;The &lt;strong&gt;Boxcar Conductor plugin&lt;/strong&gt; aims to automate the entire process for deploying to your Boxcar. We&amp;#8217;re down to just a few simple commands to run to get your application up and running. While mileage may vary with other hosting providers, we did want to open up this work to the community and centralize our work with the community of Boxcar customers who have helped us build and test these tools.&lt;/p&gt;


	&lt;h3&gt;Install Boxcar Conductor&lt;/h3&gt;


	&lt;p&gt;If you&amp;#8217;re running on Edge Rails&amp;#8230; you can take advantage of the new support for installing plugins in git repositories.&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
  $ ./script/plugin install git://github.com/planetargon/boxcar-conductor.git
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&lt;small&gt;note: If you&amp;#8217;re not using edge rails, you can download a tarball and install the plugin manually.&lt;/small&gt;&lt;/p&gt;


	&lt;p&gt;Installing the plugin will add a custom &lt;code&gt;Capfile&lt;/code&gt; and &lt;code&gt;config/deploy.rb&lt;/code&gt;, which has a few things for you to define based on your &lt;a href="http://railsboxcar.com"&gt;Boxcar subscription&lt;/a&gt;.&lt;/p&gt;


	&lt;h3&gt;Configure Your Boxcar&lt;/h3&gt;


	&lt;p&gt;Once the plugin is installed, you can run the following task:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
  $ cap boxcar:config
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;This will ask you a few questions about your deployment needs.&lt;/p&gt;


&lt;div class="thumbnail"&gt;&lt;a href="http://skitch.com/robbyrussell/bsx8/default"&gt;&lt;img src="http://img.skitch.com/20080415-x5rksmf1b7dkx1x57spsr9rwr9.preview.jpg" alt="Default" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family: Lucida Grande, Trebuchet, sans-serif, Helvetica, Arial; font-size: 10px; color: #808080"&gt;Uploaded with &lt;a href="http://plasq.com/"&gt;plasq&lt;/a&gt;&amp;#8217;s &lt;a href="http://skitch.com"&gt;Skitch&lt;/a&gt;!&lt;/span&gt;&lt;/div&gt;

	&lt;ul&gt;
	&lt;li&gt;Which database server will you be using? (along with db user/pass info)&lt;/li&gt;
		&lt;li&gt;How many mongrels should run in your cluster?&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;After a few quick multiple choice answers, you&amp;#8217;re application is ready to be deployed and you can run an Boxcar-specific deployment task.&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
  $ cap deploy
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;We&amp;#8217;ve also created a new public project on Lighthouse so that you can submit tickets and ideas to us. With Boxcar, we&amp;#8217;re really aiming to remove as many steps from the deployment process that aren&amp;#8217;t necessary.&lt;/p&gt;


	&lt;p&gt;To follow along, visit the project on &lt;a href="http://planetargon.lighthouseapp.com/projects/9962-boxcar-conductor"&gt;lighthouse&lt;/a&gt; or &lt;a href="http://github.com/planetargon/boxcar-conductor/"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;If you&amp;#8217;re interested in learning more about &lt;a href="http://railsboxcar.com"&gt;Rails Boxcar&lt;/a&gt;, feel free to &lt;a href="http://planetargon.com/contact.html"&gt;drop us a line&lt;/a&gt;.&lt;/p&gt;


	&lt;h2&gt;Related Posts&lt;/h2&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://www.robbyonrails.com/articles/2008/02/28/deploying-rails-with-an-interactive-capistrano-recipe-to-your-boxcar"&gt;Deploying Rails with an interactive Capistrano recipe to your Boxcar&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://www.robbyonrails.com/articles/2008/04/14/announcing-cobalt-and-monthly-subscriptions-for-boxcar"&gt;Announcing Cobalt and monthly subscriptions for Boxcar&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=8QbTeJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=8QbTeJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=xjg0Dj"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=xjg0Dj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=6wb9fJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=6wb9fJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=7pBODJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=7pBODJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/352196109" height="1" width="1"/&gt;</description>
      <pubDate>Tue, 15 Apr 2008 12:16:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:6f009771-e806-48fd-9d6f-a236f85accbc</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/352196109/boxcar-conductor-rails-deployment-made-easy</link>
      <category>Business</category>
      <category>Ruby on Rails</category>
      <category>PLANET ARGON</category>
      <category>deployment</category>
      <category>rails</category>
      <category>rubyonrails</category>
      <category>boxcar</category>
      <category>planetargon</category>
      <category>capistrano</category>
      <category>git</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/04/15/boxcar-conductor-rails-deployment-made-easy</feedburner:origLink></item>
    <item>
      <title>Announcing Cobalt and monthly subscriptions for Boxcar</title>
      <description>&lt;p&gt;We&amp;#8217;ve been designing and developing a new centralized billing platform over the past few months and late last week, we launched it! Along with this new billing platform, we launched another new application, &lt;a href="http://cobalt.planetargon.com"&gt;Cobalt&lt;/a&gt;, which is a new account management and support tool for our hosting customers.&lt;/p&gt;


&lt;div class="thumbnail"&gt;&lt;a href="http://skitch.com/robbyrussell/jxi8/cobalt-account-management"&gt;&lt;img src="http://img.skitch.com/20080414-fifqwjjm6cw5h8da13enma17tb.preview.jpg" alt="Cobalt - account management" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family: Lucida Grande, Trebuchet, sans-serif, Helvetica, Arial; font-size: 10px; color: #808080"&gt;Uploaded with &lt;a href="http://plasq.com/"&gt;plasq&lt;/a&gt;&amp;#8217;s &lt;a href="http://skitch.com"&gt;Skitch&lt;/a&gt;!&lt;/span&gt;&lt;/div&gt;

	&lt;p&gt;We&amp;#8217;ll be migrating all of our past customers over to this new system in time, but are initially using it for new &lt;a href="http://railsboxcar.com"&gt;Boxcar&lt;/a&gt; customers.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://www.railsboxcar.com/img/boxcar_logo_wide.png" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;We&amp;#8217;ve been building the new system to use &lt;a href="http://www.braintreepaymentsolutions.com/"&gt;Braintree&lt;/a&gt; as our new credit card payment gateway. With this switch, we&amp;#8217;re also &lt;a href="http://blog.planetargon.com/2008/4/10/monthly-pricing-plan-for-rails-boxcar"&gt;introducing monthly subscription rates for Boxcar&lt;/a&gt;, which means that you can try it out month-to-month now.&lt;/p&gt;


	&lt;p&gt;Over the next few weeks/months, we&amp;#8217;ll be announcing several features to Cobalt that will ease your Rails deployment experience.&lt;/p&gt;


	&lt;p&gt;I want to thank all those on my team that helped get these new applications up and running.&lt;/p&gt;


	&lt;p&gt;If you&amp;#8217;re looking for professional &lt;span class="caps"&gt;VPS&lt;/span&gt;-based Rails hosting, hop on our train by &lt;a href="http://cobalt.planetargon.com/signup"&gt;ordering a Boxcar today&lt;/a&gt; for &lt;strong&gt;$99/month&lt;/strong&gt;!&lt;/p&gt;


	&lt;p&gt;For more information, visit &lt;a href="http://railsboxcar.com"&gt;railsboxcar.com&lt;/a&gt; or &lt;a href="http://planetargon.com"&gt;Planet Argon&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Also, be sure to &lt;a href="http://twitter.com/boxcar"&gt;follow Boxcar&lt;/a&gt; on twitter.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=sNTYqJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=sNTYqJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=FpPeHj"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=FpPeHj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=fYQqzJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=fYQqzJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=PlXwIJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=PlXwIJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/352196110" height="1" width="1"/&gt;</description>
      <pubDate>Mon, 14 Apr 2008 10:24:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:583d093a-df18-4580-b288-97d7a7d9e203</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/352196110/announcing-cobalt-and-monthly-subscriptions-for-boxcar</link>
      <category>Business</category>
      <category>Ruby on Rails</category>
      <category>PLANET ARGON</category>
      <category>boxcar</category>
      <category>rubyonrails</category>
      <category>rails</category>
      <category>hosting</category>
      <category>cobalt</category>
      <category>vps</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/04/14/announcing-cobalt-and-monthly-subscriptions-for-boxcar</feedburner:origLink></item>
    <item>
      <title>Interviewed by Hanselminutes</title>
      <description>&lt;p&gt;Earlier this week, Scott Hanselman from &lt;a href="http://www.hanselminutes.com/"&gt;Hanselminutes&lt;/a&gt; came down to the &lt;a href="http://planetargon.com/"&gt;Planet Argon&lt;/a&gt; studio to interview Andy, Gary, and myself about adoption of &lt;a href="http://www.hanselminutes.com/"&gt;Git&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.hanselminutes.com/default.aspx?showID=126"&gt;&lt;img src="http://img.skitch.com/20080411-ty71fcsin2d59x32csn5hk1w.preview.jpg" alt="Hanselminutes" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;The &lt;a href="http://www.hanselminutes.com/default.aspx?showID=126"&gt;podcast interview is available online now&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Thanks for stopping by Scott!&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;update&lt;/strong&gt;: I&amp;#8217;d recommend that you also check out &lt;a href="http://www.hanselminutes.com/default.aspx?showID=82"&gt;another episode&lt;/a&gt; of Hanselminutes when he sat down to speak with David Heinemeier Hansson and Martin Fowler.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=FVDOSJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=FVDOSJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=Ung6jj"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=Ung6jj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=rVrETJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=rVrETJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=zfRmTJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=zfRmTJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/352196111" height="1" width="1"/&gt;</description>
      <pubDate>Fri, 11 Apr 2008 08:31:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:4ce4ff81-3b48-4c19-83ef-2278f8ec5c56</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/352196111/interviewed-by-hanselminutes</link>
      <category>PLANET ARGON</category>
      <category>git</category>
      <category>subversion</category>
      <category>interview</category>
      <category>gary</category>
      <category>andy</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/04/11/interviewed-by-hanselminutes</feedburner:origLink></item>
    <item>
      <title>Portland is calling... (you)</title>
      <description>&lt;p&gt;We&amp;#8217;re &lt;em&gt;not&lt;/em&gt; looking for &lt;strong&gt;rock stars&lt;/strong&gt; or &lt;strong&gt;ninjas&lt;/strong&gt; at &lt;a href="http://planetargon.com"&gt;Planet Argon&lt;/a&gt;. ;-)&lt;/p&gt;


	&lt;p&gt;We&amp;#8217;re looking for individuals that share our core values.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;&lt;span class="caps"&gt;COLLABORATION&lt;/span&gt;&lt;/strong&gt; &amp;#8211; We believe that an open dialogue between all members of a group helps to produce more reasoned and intelligent decisions.&lt;/li&gt;
		&lt;li&gt;&lt;strong&gt;&lt;span class="caps"&gt;ENTHUSIASM&lt;/span&gt;&lt;/strong&gt; &amp;#8211; We recognize the unique power of people who are passionate about their craft. We believe that fun is an essential ingredient in a collaborative and vibrant company culture. We think happy people make better software.&lt;/li&gt;
		&lt;li&gt;&lt;strong&gt;&lt;span class="caps"&gt;COMMUNITY&lt;/span&gt;&lt;/strong&gt; &amp;#8211; We are part of many communities. Our neighborhoods, our cities, our workplace, and our professional communities. We give back to our communities by implementing socially responsible business practices and sharing our knowledge and tools with our peers.&lt;/li&gt;
		&lt;li&gt;&lt;strong&gt;&lt;span class="caps"&gt;VERSATILITY&lt;/span&gt;&lt;/strong&gt; &amp;#8211; We believe that it is important for our team to be open and flexible, as well as the work that we do. This allows us to adapt to change and encourage innovation.&lt;/li&gt;
		&lt;li&gt;&lt;strong&gt;&lt;span class="caps"&gt;EXECUTION&lt;/span&gt;&lt;/strong&gt; &amp;#8211; We value action and when people make things happen. It is important that we follow through on our commitments, plans, and ideas.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;..maybe you&amp;#8217;re a .NET/Java/PHP/Python developer (who secretly plays with Ruby on Rails at night/weekends). We&amp;#8217;re looking for an intermediate-level Rails developer to join our team. Ideal candidates would be in the Portland, Oregon area or willing to relocate.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/robbyrussell/1010617384/" title="PLANET ARGON by Robby Russell, on Flickr"&gt;&lt;img src="http://farm2.static.flickr.com/1081/1010617384_662ad8ed7d.jpg" width="500" height="333" alt="PLANET ARGON" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;If you&amp;#8217;re interested, take a moment and &lt;a href="mailto:jobs@planetargon.com"&gt;introduce yourself&lt;/a&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=PeDl0J"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=PeDl0J" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=vJ22Hj"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=vJ22Hj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=t5pKkJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=t5pKkJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=GdTVtJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=GdTVtJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/352196112" height="1" width="1"/&gt;</description>
      <pubDate>Fri, 11 Apr 2008 01:30:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:e45eab8f-d9f9-41a6-8c7d-4b0d0a7bb244</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/352196112/portland-is-calling-you</link>
      <category>Business</category>
      <category>Ruby on Rails</category>
      <category>PLANET ARGON</category>
      <category>jobs</category>
      <category>portland</category>
      <category>planetargon</category>
      <category>oregon</category>
      <category>team</category>
      <category>values</category>
      <category>community</category>
      <category>collaboration</category>
      <category>enthusiasm</category>
      <category>versatility</category>
      <category>execution</category>
    <feedburner:origLink>http://www.robbyonrails.com/articles/2008/04/11/portland-is-calling-you</feedburner:origLink></item>
    <item>
      <title>git-svn is a gateway drug</title>
      <description>&lt;p&gt;As we&amp;#8217;re migrating away from Subversion to Git, I&amp;#8217;m having to learn a lot about &lt;code&gt;git-svn&lt;/code&gt;. Andy has &lt;a href="http://andy.delcambre.com/2008/3/4/git-svn-workflow"&gt;posted a few articles&lt;/a&gt; on this topic, but I wanted to share a quick tip that I find myself forgetting.&lt;/p&gt;


	&lt;h2&gt;Working with Subversion branches&lt;/h2&gt;


	&lt;p&gt;While you&amp;#8217;re hopefully already familiar with how great &lt;strong&gt;local branches&lt;/strong&gt; are with Git, you might not know that you can connect local branches to &lt;strong&gt;remote&lt;/strong&gt; branches in your Subversion repository. This allows those of us who are using Git locally to work against Subversion branches.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;m going to assume the following:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Your team is using Subversion&lt;/li&gt;
		&lt;li&gt;Your team already has a branch that you&amp;#8217;re working in&lt;/li&gt;
		&lt;li&gt;Your team is following Subversion directory conventions (&lt;code&gt;branches/&lt;/code&gt;, &lt;code&gt;tags/&lt;/code&gt;, and &lt;code&gt;trunk/&lt;/code&gt;)&lt;/li&gt;
		&lt;li&gt;You have Git installed (&lt;em&gt;with &lt;span class="caps"&gt;SVN&lt;/span&gt; extensions&lt;/em&gt;)&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Checkout the Subversion project with Git&lt;/h3&gt;


	&lt;p&gt;Please visit Andy&amp;#8217;s tutorial, &lt;a href="http://andy.delcambre.com/2008/3/4/git-svn-workflow"&gt;Git &lt;span class="caps"&gt;SVN&lt;/span&gt; Workflow&lt;/a&gt;, for a more detailed explanation of the following commands.&lt;/p&gt;


	&lt;p&gt;First, we&amp;#8217;ll initialize your new local Git repository with &lt;code&gt;git-svn&lt;/code&gt;.&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
  git svn init -s http://svn.yourdomain.com/repos/project_name
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Now, you&amp;#8217;ll change directories to your new Git repository.&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
  cd project_name
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Let&amp;#8217;s fetch all previous revisions into your local repository&lt;sup&gt;&lt;a href="#fn1"&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
  git svn fetch
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Great, once this is done&amp;#8230; you&amp;#8217;re &lt;strong&gt;master&lt;/strong&gt; (local) branch is linked to &lt;code&gt;trunk/&lt;/code&gt;.&lt;/p&gt;


	&lt;h3&gt;Mapping a local repository to a remote branch&lt;/h3&gt;


	&lt;p&gt;Assuming that your team is working in a Subversion branch on the current iteration of work. Our team has a naming convention for branches for each iteration. For example, if we&amp;#8217;re in Iteration 18, we&amp;#8217;ll write this as &lt;span class="caps"&gt;ITER&lt;/span&gt;-018 everywhere (Basecamp, Lighthouse, Subversion, etc&amp;#8230;). At the start of each iteration, we create a new branch with this naming convention.&lt;/p&gt;


	&lt;p&gt;For &lt;code&gt;ITER-018&lt;/code&gt;, the Subversion branch would be located at:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;http://svn.yourdomain.com/repos/project_name/branches/ITER-018&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;If you were to do a &lt;code&gt;git branch -r&lt;/code&gt;, you should see &lt;code&gt;ITER-018&lt;/code&gt; show up in the list. Now, the one thing that wasn&amp;#8217;t clear when I first read the &lt;code&gt;git-svn&lt;/code&gt; documentation was that you can&amp;#8217;t just checkout that branch with one command. In fact, this has tripped me up a few times.&lt;/p&gt;


	&lt;p&gt;First, you&amp;#8217;ll need to checkout a new &lt;em&gt;local&lt;/em&gt; branch. I&amp;#8217;ve opted to come up with my own convention for &lt;em&gt;local branches&lt;/em&gt; and in this case, I&amp;#8217;ll name it &lt;code&gt;iter_018&lt;/code&gt;.&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
  git co -b iter_018
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;So, now I&amp;#8217;m in the iter_018 branch, which is local. I&amp;#8217;m currently still mapped to &lt;code&gt;trunk/&lt;/code&gt;, which isn&amp;#8217;t what we want. However, all we need to do is reset where Git is currently pointed to. We can run &lt;a href="http://andy.delcambre.com/2008/3/12/git-reset-in-depth"&gt;git reset&lt;/a&gt; to point this to the &lt;span class="caps"&gt;ITER&lt;/span&gt;-018 branch.&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
  git reset --hard ITER-018
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;That&amp;#8217;s it! Now, the local &lt;code&gt;iter_018&lt;/code&gt; branch will point to &lt;code&gt;branches/ITER-018&lt;/code&gt; in your Subversion repository. This will allow you to work with your existing repository branch and still reap the benefits of local Git repositories.&lt;/p&gt;


	&lt;h3&gt;What about master?&lt;/h3&gt;


	&lt;p&gt;Good question. The &lt;code&gt;git reset&lt;/code&gt; command that you ran will &lt;span class="caps"&gt;ONLY&lt;/span&gt; apply that that individual local branch. So, master is &lt;em&gt;still&lt;/em&gt; pointing to &lt;code&gt;trunk/&lt;/code&gt;. This will allow you to have several local branches that map to remote branches.&lt;/p&gt;


	&lt;h2&gt;Next Steps&amp;#8230;&lt;/h2&gt;


	&lt;p&gt;If you&amp;#8217;re working with Git already.. great!&lt;/p&gt;


	&lt;p&gt;If you&amp;#8217;re working in an environment that using Subversion, &lt;code&gt;git svn&lt;/code&gt; provides you the ability to start exploring Git without making your entire team switchover. Perhaps your a consultant and working for a client that uses Subversion&amp;#8230; no problem!&lt;/p&gt;


	&lt;p&gt;We&amp;#8217;re still using Subversion for past client projects and are considering &lt;a href="http://github.com"&gt;GitHub&lt;/a&gt;, which &lt;a href="http://github.com/blog/40-we-launched"&gt;just launched (to the public) today&lt;/a&gt; for future projects. A few of us are already using GitHub for open source projects.&lt;/p&gt;


	&lt;p&gt;Fun.. I just saw the following tweet pass by as I began to wrap up this post.&lt;/p&gt;


&lt;div class="thumbnail"&gt;&lt;a href="http://skitch.com/robbyrussell/jeh1/rails-on-github"&gt;&lt;img src="http://img.skitch.com/20080411-rgageidq82ak6ij952ppant4u9.preview.jpg" alt="rails on github" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family: Lucida Grande, Trebuchet, sans-serif, Helvetica, Arial; font-size: 10px; color: #808080"&gt;Uploaded with &lt;a href="http://plasq.com/"&gt;plasq&lt;/a&gt;&amp;#8217;s &lt;a href="http://skitch.com"&gt;Skitch&lt;/a&gt;!&lt;/span&gt;&lt;/div&gt;

	&lt;p&gt;&lt;a href="http://github.com/rails/"&gt;Check out Rails on GitHub!&lt;/a&gt;&lt;/p&gt;


	&lt;h3&gt;The Gateway Drug&amp;#8230; Git reminds me of Cake&lt;/h3&gt;


&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/g0GxUxKZdHk&amp;#38;hl=en"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/g0GxUxKZdHk&amp;#38;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;

	&lt;h3&gt;Questions?&lt;/h3&gt;


	&lt;p&gt;I know that I glossed over a few things, so feel free to post questions and/or tips for others who are looking to dabble with Git.&lt;/p&gt;


	&lt;p id="fn1"&gt;&lt;sup&gt;1&lt;/sup&gt; You&amp;#8217;ll likely have problems if you don&amp;#8217;t have a Git authors file specified in your git config.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=vh4xzJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=vh4xzJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=bgqOQj"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=bgqOQj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=exUr2J"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=exUr2J" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RobbyOnRails?a=ZwmRGJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/RobbyOnRails?i=ZwmRGJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RobbyOnRails/~4/352196113" height="1" width="1"/&gt;</description>
      <pubDate>Thu, 10 Apr 2008 22:28:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:cea369ee-eed9-4ec3-a0e9-91421f590dd7</guid>
      <author>Robby Russell</author>
      <link>http://feeds.feedburner.com/~r/RobbyOnRails/~3/352196113/git-svn-is-a-gateway-drug</link>
      <cat