<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Pivotal Labs &#187; Nate Clark</title>
	<atom:link href="http://pivotallabs.com/author/nate/feed/" rel="self" type="application/rss+xml" />
	<link>http://pivotallabs.com</link>
	<description>Agility Developed</description>
	<lastBuildDate>Tue, 18 Jun 2013 20:52:10 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>09/25/12: It&#8217;s about something</title>
		<link>http://pivotallabs.com/09-25-12-it-s-about-something/</link>
		<comments>http://pivotallabs.com/09-25-12-it-s-about-something/#comments</comments>
		<pubDate>Tue, 25 Sep 2012 14:23:00 +0000</pubDate>
		<dc:creator>Nate Clark</dc:creator>
				<category><![CDATA[Standup]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/09-25-12-it-s-about-something/</guid>
		<description><![CDATA[<p><h2>Helps</h2>

<ul>
<li>Where are my backtraces in specs for gems? &#40;backtrace_silencer is off&#41;</li>
</ul>

<p>RubyMine uses a custom formatter.
Try <code>rspec my_spec.rb -b</code> on the command line.</p>

<h2>Interestings</h2>

<ul>
<li>If you new up a Rails Logger in your Unicorn after_fork, that is the logger you get</li>
</ul>

<p>If you do something like this:
after_fork do &#124;server, worker&#124;
  current_directory = File.expand_path&#40;File.dirname&#40;<strong>FILE</strong>&#41;&#41;
  log_path = "#{current_directory}/log/#{Rails.env}.#{worker.nr}.log"
  Rails.logger = ActiveSupport::BufferedLogger.new&#40;log_path&#41;
  Rails.logger.level = Logger::INFO
end</p>

<p>... in order to have a different logfile for each unicorn worker, setting the log level in your environment file will not take affect. </p>

<ul>
<li>any_instance doesn't work with should_not_receive</li>
</ul>

<p>It always passes.</p>

<p>The rspec folks haven't decided what it should do. "Official" suggestion is to only use any_instance with stubbing instead of with expectations.</p>

<ul>
<li>Capistrano doesn't clean up that well</li>
</ul>

<p>When you use the deploy:cleanup task it only looks at the FIRST server declared in deploy.rb to determine which releases to rm. You'd think that it would look at the primary server. But then you'd think that the task would be included by default, too. Which it doesn't.</p>

<ul>
<li>Enumerators, ActiveRecord Connections, and JRuby</li>
</ul>

<p>We ran into what we thought was a quirk of Enumerators where inside the enumerator you are in a different thread from outside.  This affects ActiveRecord because your connection is determined by Thread.current.object_id.  So you'd end up with a new connection inside the Enumerator.</p>

<p>This turned out to only be true in JRuby.  Under MRI, you have the same Thread object, however, you have a new Thread locals context.  This makes it particularly hard to find someplace cross Ruby for Rails to store its connection id.</p>

<p>https://jira.codehaus.org/browse/JRUBY-6887</p> <a href="http://pivotallabs.com/09-25-12-it-s-about-something/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/09-25-12-it-s-about-something/">09/25/12: It&#8217;s about something</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Helps</h2>
<ul>
<li>Where are my backtraces in specs for gems? &#40;backtrace_silencer is off&#41;</li>
</ul>
<p>RubyMine uses a custom formatter.<br />
Try <code>rspec my_spec.rb -b</code> on the command line.</p>
<h2>Interestings</h2>
<ul>
<li>If you new up a Rails Logger in your Unicorn after_fork, that is the logger you get</li>
</ul>
<p>If you do something like this:<br />
after_fork do |server, worker|<br />
  current_directory = File.expand_path&#40;File.dirname&#40;<strong>FILE</strong>&#41;&#41;<br />
  log_path = &#8220;#{current_directory}/log/#{Rails.env}.#{worker.nr}.log&#8221;<br />
  Rails.logger = ActiveSupport::BufferedLogger.new&#40;log_path&#41;<br />
  Rails.logger.level = Logger::INFO<br />
end</p>
<p>&#8230; in order to have a different logfile for each unicorn worker, setting the log level in your environment file will not take affect. </p>
<ul>
<li>any_instance doesn&#8217;t work with should_not_receive</li>
</ul>
<p>It always passes.</p>
<p>The rspec folks haven&#8217;t decided what it should do. &#8220;Official&#8221; suggestion is to only use any_instance with stubbing instead of with expectations.</p>
<ul>
<li>Capistrano doesn&#8217;t clean up that well</li>
</ul>
<p>When you use the deploy:cleanup task it only looks at the FIRST server declared in deploy.rb to determine which releases to rm. You&#8217;d think that it would look at the primary server. But then you&#8217;d think that the task would be included by default, too. Which it doesn&#8217;t.</p>
<ul>
<li>Enumerators, ActiveRecord Connections, and JRuby</li>
</ul>
<p>We ran into what we thought was a quirk of Enumerators where inside the enumerator you are in a different thread from outside.  This affects ActiveRecord because your connection is determined by Thread.current.object_id.  So you&#8217;d end up with a new connection inside the Enumerator.</p>
<p>This turned out to only be true in JRuby.  Under MRI, you have the same Thread object, however, you have a new Thread locals context.  This makes it particularly hard to find someplace cross Ruby for Rails to store its connection id.</p>
<p>https://jira.codehaus.org/browse/JRUBY-6887</p>
<p>The post <a href="http://pivotallabs.com/09-25-12-it-s-about-something/">09/25/12: It&#8217;s about something</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/09-25-12-it-s-about-something/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>revealing the ActionController callback filter chain</title>
		<link>http://pivotallabs.com/revealing-the-actioncontroller-callback-filter-chain/</link>
		<comments>http://pivotallabs.com/revealing-the-actioncontroller-callback-filter-chain/#comments</comments>
		<pubDate>Tue, 01 Feb 2011 13:34:00 +0000</pubDate>
		<dc:creator>Nate Clark</dc:creator>
				<category><![CDATA[Labs]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[rails3]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/revealing-the-actioncontroller-callback-filter-chain/</guid>
		<description><![CDATA[<p><p>Sometimes your controllers get so full of before_filters, after_filters, and around_filters that it's hard to figure out what order these callbacks are actually executing in. A couple of times recently, I've run into some tricky bugs that ended up being related to callbacks running too soon or too late.</p>

<p>Due to some fancy-pants metaprogramming in <code>AbstractController::Callbacks</code>, it's hard to see what's going on.</p>

<p>In Rails 3, send this to <code>Rails.logger.debug</code> or <code>puts</code> from inside your controller to see the ordered filter callback chain:</p>

<pre><code>_process_action_callbacks.map&#40;&#38;:filter&#41;
</code></pre> <a href="http://pivotallabs.com/revealing-the-actioncontroller-callback-filter-chain/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/revealing-the-actioncontroller-callback-filter-chain/">revealing the ActionController callback filter chain</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Sometimes your controllers get so full of before_filters, after_filters, and around_filters that it&#8217;s hard to figure out what order these callbacks are actually executing in. A couple of times recently, I&#8217;ve run into some tricky bugs that ended up being related to callbacks running too soon or too late.</p>
<p>Due to some fancy-pants metaprogramming in <code>AbstractController::Callbacks</code>, it&#8217;s hard to see what&#8217;s going on.</p>
<p>In Rails 3, send this to <code>Rails.logger.debug</code> or <code>puts</code> from inside your controller to see the ordered filter callback chain:</p>
<pre><code>_process_action_callbacks.map&#40;&amp;:filter&#41;
</code></pre>
<p>The post <a href="http://pivotallabs.com/revealing-the-actioncontroller-callback-filter-chain/">revealing the ActionController callback filter chain</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/revealing-the-actioncontroller-callback-filter-chain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Standup 9/17/2009: silly Ruby tricks, unstub!, iPivotal =&gt; PTCruiser</title>
		<link>http://pivotallabs.com/standup-9-17-2009-silly-ruby-tricks-unstub-ipivotal-ptcruiser/</link>
		<comments>http://pivotallabs.com/standup-9-17-2009-silly-ruby-tricks-unstub-ipivotal-ptcruiser/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 16:40:00 +0000</pubDate>
		<dc:creator>Nate Clark</dc:creator>
				<category><![CDATA[Labs]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/standup-9-17-2009-silly-ruby-tricks-unstub-ipivotal-ptcruiser/</guid>
		<description><![CDATA[<p><h2>Interesting Things</h2>

<ul>
<li>silly Ruby trick of the day -- does anyone know what this does?</li>
</ul>

<pre>while gets
  print if /foo/
end</pre>

<p>This is an example from the <a href="http://www.pragprog.com/titles/ruby/programming-ruby">Ruby "Pickaxe" book</a>. No respected Rubyist actually writes such difficult-to-understand and obfuscated code. Though, it was mentioned, that terse syntax like this is useful for command-line hacking.</p>

<ul>
<li><p><code>unstub!</code> is a useful Rspec method that removes a stub from a previously stubbed object. This can be useful if you have stubbed, then mocked the same method, and you want to remove the stub.</p></li>
<li><p>The <strong>unofficial</strong> community-developed iPhone app for Pivotal Tracker, is changing its name from <em>iPivotal</em> to <em>PTCruiser</em>. See the <a href="http://twitter.com/ipivotal">author's Twitter</a> for more.</p></li>
</ul> <a href="http://pivotallabs.com/standup-9-17-2009-silly-ruby-tricks-unstub-ipivotal-ptcruiser/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/standup-9-17-2009-silly-ruby-tricks-unstub-ipivotal-ptcruiser/">Standup 9/17/2009: silly Ruby tricks, unstub!, iPivotal =&gt; PTCruiser</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Interesting Things</h2>
<ul>
<li>silly Ruby trick of the day &#8212; does anyone know what this does?</li>
</ul>
<pre>while gets
  print if /foo/
end</pre>
<p>This is an example from the <a href="http://www.pragprog.com/titles/ruby/programming-ruby">Ruby &#8220;Pickaxe&#8221; book</a>. No respected Rubyist actually writes such difficult-to-understand and obfuscated code. Though, it was mentioned, that terse syntax like this is useful for command-line hacking.</p>
<ul>
<li>
<p><code>unstub!</code> is a useful Rspec method that removes a stub from a previously stubbed object. This can be useful if you have stubbed, then mocked the same method, and you want to remove the stub.</p>
</li>
<li>
<p>The <strong>unofficial</strong> community-developed iPhone app for Pivotal Tracker, is changing its name from <em>iPivotal</em> to <em>PTCruiser</em>. See the <a href="http://twitter.com/ipivotal">author&#8217;s Twitter</a> for more.</p>
</li>
</ul>
<p>The post <a href="http://pivotallabs.com/standup-9-17-2009-silly-ruby-tricks-unstub-ipivotal-ptcruiser/">Standup 9/17/2009: silly Ruby tricks, unstub!, iPivotal =&gt; PTCruiser</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/standup-9-17-2009-silly-ruby-tricks-unstub-ipivotal-ptcruiser/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Standup 9/16/2009: eycap :forward_agent, Rails 2.3 sends 2 content-types</title>
		<link>http://pivotallabs.com/standup-9-16-2009-eycap-forward-agent-rails-2-3-sends-2-content-types/</link>
		<comments>http://pivotallabs.com/standup-9-16-2009-eycap-forward-agent-rails-2-3-sends-2-content-types/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 16:33:00 +0000</pubDate>
		<dc:creator>Nate Clark</dc:creator>
				<category><![CDATA[Labs]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/standup-9-16-2009-eycap-forward-agent-rails-2-3-sends-2-content-types/</guid>
		<description><![CDATA[<p><h2>Interesting Things</h2>

<ul>
<li><p>One team had trouble deploying via capistrano to Engineyard's Solo environment because SSH keys weren't being sent correctly. Setting <code>ssh_options[:forward_agent] = false</code> in their Capistrano config fixed the problem.</p></li>
<li><p>After upgrading to Rails 2.3, Rails started sending two content-types down with each page's headers, <code>text/html, application/json</code>. This was causing Selenium tests to choke.</p></li>
<li><p>If you <code>scp</code> a file to <code>/etc/cron.d</code>, cron will not notice the new file until you <code>touch</code> it.</p></li>
</ul> <a href="http://pivotallabs.com/standup-9-16-2009-eycap-forward-agent-rails-2-3-sends-2-content-types/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/standup-9-16-2009-eycap-forward-agent-rails-2-3-sends-2-content-types/">Standup 9/16/2009: eycap :forward_agent, Rails 2.3 sends 2 content-types</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Interesting Things</h2>
<ul>
<li>
<p>One team had trouble deploying via capistrano to Engineyard&#8217;s Solo environment because SSH keys weren&#8217;t being sent correctly. Setting <code>ssh_options[:forward_agent] = false</code> in their Capistrano config fixed the problem.</p>
</li>
<li>
<p>After upgrading to Rails 2.3, Rails started sending two content-types down with each page&#8217;s headers, <code>text/html, application/json</code>. This was causing Selenium tests to choke.</p>
</li>
<li>
<p>If you <code>scp</code> a file to <code>/etc/cron.d</code>, cron will not notice the new file until you <code>touch</code> it.</p>
</li>
</ul>
<p>The post <a href="http://pivotallabs.com/standup-9-16-2009-eycap-forward-agent-rails-2-3-sends-2-content-types/">Standup 9/16/2009: eycap :forward_agent, Rails 2.3 sends 2 content-types</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/standup-9-16-2009-eycap-forward-agent-rails-2-3-sends-2-content-types/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Standup 9/15/2009: Hashing a String, Nginx Security Patch</title>
		<link>http://pivotallabs.com/standup-9-15-2009-hashing-a-string-nginx-security-patch/</link>
		<comments>http://pivotallabs.com/standup-9-15-2009-hashing-a-string-nginx-security-patch/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 14:13:00 +0000</pubDate>
		<dc:creator>Nate Clark</dc:creator>
				<category><![CDATA[Standup]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/standup-9-15-2009-hashing-a-string-nginx-security-patch/</guid>
		<description><![CDATA[<p><h2>Interesting Things</h2>

<ul>
<li><p><code>String#hash</code> does not always produce the same hash on different machines and/or different architectures. Don't use the hash of a string across machines to identify it.</p></li>
<li><p>Nginx has released a <a href="http://www.engineyard.com/blog/2009/security-vulnerability-in-nginx-patch-upgrades-available/">security patch</a> to fix a remote execution security vulnerability.</p></li>
</ul> <a href="http://pivotallabs.com/standup-9-15-2009-hashing-a-string-nginx-security-patch/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/standup-9-15-2009-hashing-a-string-nginx-security-patch/">Standup 9/15/2009: Hashing a String, Nginx Security Patch</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Interesting Things</h2>
<ul>
<li>
<p><code>String#hash</code> does not always produce the same hash on different machines and/or different architectures. Don&#8217;t use the hash of a string across machines to identify it.</p>
</li>
<li>
<p>Nginx has released a <a href="http://www.engineyard.com/blog/2009/security-vulnerability-in-nginx-patch-upgrades-available/">security patch</a> to fix a remote execution security vulnerability.</p>
</li>
</ul>
<p>The post <a href="http://pivotallabs.com/standup-9-15-2009-hashing-a-string-nginx-security-patch/">Standup 9/15/2009: Hashing a String, Nginx Security Patch</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/standup-9-15-2009-hashing-a-string-nginx-security-patch/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Standup 9/14/2009: State Machines, comments in ERB, test-unit 2.0.3 breaks RSpec</title>
		<link>http://pivotallabs.com/standup-9-14-2009-state-machines-comments-in-erb-test-unit-2-0-3-breaks-rspec/</link>
		<comments>http://pivotallabs.com/standup-9-14-2009-state-machines-comments-in-erb-test-unit-2-0-3-breaks-rspec/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 14:35:00 +0000</pubDate>
		<dc:creator>Nate Clark</dc:creator>
				<category><![CDATA[Standup]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/standup-9-14-2009-state-machines-comments-in-erb-test-unit-2-0-3-breaks-rspec/</guid>
		<description><![CDATA[<p><h2>Ask For Help</h2>

<blockquote>
    <p><em>"Anybody use an off-the-shelf State Machine plugin for Rails? Which one?"</em></p>
</blockquote>

<p>Our team recommends using the <a href="http://github.com/rubyist/aasm">rubyist-aasm</a> gem from Github. It works well for our current applications, and it appears to be the most actively developed and frequently updated. This gem is the successor to the acts_as_state_machine plugin.</p>

<h2>Interesting Things</h2>

<p><strong>Don't use comments in ERB.</strong> Writing comments &#40;or any '#' character, for that matter&#41; inside an ERB evaluation block was never right, but some versions of Ruby 1.8.6 allowed it anyway. This is trouble if you upgrade to Ruby 1.8.7 &#40;for example, when upgrading to Snow Leopard&#41; which does not allow comments within ERB.</p>

<p>This is <strong>wrong</strong>:</p>

<pre><code>&#60;%= link_to "/", home_path #link to the homepage %&#62;
</code></pre>

<p>If you really need comments in ERB, do it this way:</p>

<pre><code>&#60;%# link to the homepage %&#62;
&#60;%= link_to "/", home_path %&#62;
</code></pre>

<p><strong>test-unit 2.0.3 breaks RSpec</strong>. If you upgrade to test-unit 2.0.3, you may notice that your RSpec specs no longer run. Roll back to test-unit &#60; 2.0 &#40;or remove the test-unit gem completely&#41; and you should be back in business.</p>

<p><strong>RubyMine 1.5</strong> early release is <a href="http://www.jetbrains.net/confluence/display/RUBYDEV/RubyMine+EAP">available for trying out</a>. Preliminary reports from one Pivot are positive. If you are using Snow Leopard, which ships with Java 1.6, you'll need to do <a href="http://www.jetbrains.net/devnet/thread/282333">this hack</a> to get it to run </p> <a href="http://pivotallabs.com/standup-9-14-2009-state-machines-comments-in-erb-test-unit-2-0-3-breaks-rspec/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/standup-9-14-2009-state-machines-comments-in-erb-test-unit-2-0-3-breaks-rspec/">Standup 9/14/2009: State Machines, comments in ERB, test-unit 2.0.3 breaks RSpec</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Ask For Help</h2>
<blockquote>
<p><em>&#8220;Anybody use an off-the-shelf State Machine plugin for Rails? Which one?&#8221;</em></p>
</blockquote>
<p>Our team recommends using the <a href="http://github.com/rubyist/aasm">rubyist-aasm</a> gem from Github. It works well for our current applications, and it appears to be the most actively developed and frequently updated. This gem is the successor to the acts_as_state_machine plugin.</p>
<h2>Interesting Things</h2>
<p><strong>Don&#8217;t use comments in ERB.</strong> Writing comments &#40;or any &#8216;#&#8217; character, for that matter&#41; inside an ERB evaluation block was never right, but some versions of Ruby 1.8.6 allowed it anyway. This is trouble if you upgrade to Ruby 1.8.7 &#40;for example, when upgrading to Snow Leopard&#41; which does not allow comments within ERB.</p>
<p>This is <strong>wrong</strong>:</p>
<pre><code>&lt;%= link_to "/", home_path #link to the homepage %&gt;
</code></pre>
<p>If you really need comments in ERB, do it this way:</p>
<pre><code>&lt;%# link to the homepage %&gt;
&lt;%= link_to "/", home_path %&gt;
</code></pre>
<p><strong>test-unit 2.0.3 breaks RSpec</strong>. If you upgrade to test-unit 2.0.3, you may notice that your RSpec specs no longer run. Roll back to test-unit &lt; 2.0 &#40;or remove the test-unit gem completely&#41; and you should be back in business.</p>
<p><strong>RubyMine 1.5</strong> early release is <a href="http://www.jetbrains.net/confluence/display/RUBYDEV/RubyMine+EAP">available for trying out</a>. Preliminary reports from one Pivot are positive. If you are using Snow Leopard, which ships with Java 1.6, you&#8217;ll need to do <a href="http://www.jetbrains.net/devnet/thread/282333">this hack</a> to get it to run </p>
<p>The post <a href="http://pivotallabs.com/standup-9-14-2009-state-machines-comments-in-erb-test-unit-2-0-3-breaks-rspec/">Standup 9/14/2009: State Machines, comments in ERB, test-unit 2.0.3 breaks RSpec</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/standup-9-14-2009-state-machines-comments-in-erb-test-unit-2-0-3-breaks-rspec/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Standup 4/24/2009: libxml-ruby on Windows, pivotal-apdex gem</title>
		<link>http://pivotallabs.com/standup-4-24-2009-libxml-ruby-on-windows-pivotal-apdex-gem/</link>
		<comments>http://pivotallabs.com/standup-4-24-2009-libxml-ruby-on-windows-pivotal-apdex-gem/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 21:18:00 +0000</pubDate>
		<dc:creator>Nate Clark</dc:creator>
				<category><![CDATA[Standup]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/standup-4-24-2009-libxml-ruby-on-windows-pivotal-apdex-gem/</guid>
		<description><![CDATA[<p><h2>Interesting Things</h2>

<ul>
<li><p>libxml-ruby doesn't work on Windows &#40;surprise, surprise!&#41;. One of our teams discovered that the version of Ruby on Windows has a XML::Parser class, but it is NOT libxml-ruby even if you try to install the gem. A workaround is to rename or delete the libxml.so file, and then you can use the real XML::Parser.</p></li>
<li><p>A few Pivots just whipped up a <a href="http://github.com/pivotal/apdex/tree/master">pivotal-apdex</a> gem that allows you to calculate your application's Apdex performance index via a simple command line tool by parsing Nginx or Apache server logs. <a href="http://www.apdex.org/">Apdex</a> is an emerging standard in measuring application performance. We were inspired by Lew Cirne, CEO of <a href="http://newrelic.com">New Relic</a>, who gave a talk about Apdex a few weeks ago at Pivotal's office.</p></li>
</ul> <a href="http://pivotallabs.com/standup-4-24-2009-libxml-ruby-on-windows-pivotal-apdex-gem/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/standup-4-24-2009-libxml-ruby-on-windows-pivotal-apdex-gem/">Standup 4/24/2009: libxml-ruby on Windows, pivotal-apdex gem</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Interesting Things</h2>
<ul>
<li>
<p>libxml-ruby doesn&#8217;t work on Windows &#40;surprise, surprise!&#41;. One of our teams discovered that the version of Ruby on Windows has a XML::Parser class, but it is NOT libxml-ruby even if you try to install the gem. A workaround is to rename or delete the libxml.so file, and then you can use the real XML::Parser.</p>
</li>
<li>
<p>A few Pivots just whipped up a <a href="http://github.com/pivotal/apdex/tree/master">pivotal-apdex</a> gem that allows you to calculate your application&#8217;s Apdex performance index via a simple command line tool by parsing Nginx or Apache server logs. <a href="http://www.apdex.org/">Apdex</a> is an emerging standard in measuring application performance. We were inspired by Lew Cirne, CEO of <a href="http://newrelic.com">New Relic</a>, who gave a talk about Apdex a few weeks ago at Pivotal&#8217;s office.</p>
</li>
</ul>
<p>The post <a href="http://pivotallabs.com/standup-4-24-2009-libxml-ruby-on-windows-pivotal-apdex-gem/">Standup 4/24/2009: libxml-ruby on Windows, pivotal-apdex gem</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/standup-4-24-2009-libxml-ruby-on-windows-pivotal-apdex-gem/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Standup 4/23/2009: helper methods in view tests, mecached client</title>
		<link>http://pivotallabs.com/standup-4-23-2009-helper-methods-in-view-tests-mecached-client/</link>
		<comments>http://pivotallabs.com/standup-4-23-2009-helper-methods-in-view-tests-mecached-client/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 21:19:00 +0000</pubDate>
		<dc:creator>Nate Clark</dc:creator>
				<category><![CDATA[Standup]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/standup-4-23-2009-helper-methods-in-view-tests-mecached-client/</guid>
		<description><![CDATA[<p><h2>Interesting Things</h2>

<ul>
<li><a href="http://github.com/mperham/memcache-client/tree/master">memcache-client</a> is broken in the sense that if it fails to connect to your memcached server, it will <em>automatically</em> try a new server. It does this 20 times. Not what one would expect. You can turn off this weird behavior by setting <code>:failover =&#62; false</code></li>
</ul>

<h2>Ask For Help</h2>

<ul>
<li>When writing view specs, is there a better way to include your helpers if all helpers are not automatically included in ApplicationController? Some suggestions from the crowd: mock the helpers &#40;test helpers separately&#41;, or reopen the template and define helpers there directly.</li>
</ul> <a href="http://pivotallabs.com/standup-4-23-2009-helper-methods-in-view-tests-mecached-client/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/standup-4-23-2009-helper-methods-in-view-tests-mecached-client/">Standup 4/23/2009: helper methods in view tests, mecached client</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Interesting Things</h2>
<ul>
<li><a href="http://github.com/mperham/memcache-client/tree/master">memcache-client</a> is broken in the sense that if it fails to connect to your memcached server, it will <em>automatically</em> try a new server. It does this 20 times. Not what one would expect. You can turn off this weird behavior by setting <code>:failover =&gt; false</code></li>
</ul>
<h2>Ask For Help</h2>
<ul>
<li>When writing view specs, is there a better way to include your helpers if all helpers are not automatically included in ApplicationController? Some suggestions from the crowd: mock the helpers &#40;test helpers separately&#41;, or reopen the template and define helpers there directly.</li>
</ul>
<p>The post <a href="http://pivotallabs.com/standup-4-23-2009-helper-methods-in-view-tests-mecached-client/">Standup 4/23/2009: helper methods in view tests, mecached client</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/standup-4-23-2009-helper-methods-in-view-tests-mecached-client/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Standup 4/22/2009 Earth Day Edition: Rubymine 856, Object-Mother gotchas</title>
		<link>http://pivotallabs.com/standup-4-22-2009-earth-day-edition-rubymine-856-object-mother-gotchas/</link>
		<comments>http://pivotallabs.com/standup-4-22-2009-earth-day-edition-rubymine-856-object-mother-gotchas/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 21:22:00 +0000</pubDate>
		<dc:creator>Nate Clark</dc:creator>
				<category><![CDATA[Standup]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/standup-4-22-2009-earth-day-edition-rubymine-856-object-mother-gotchas/</guid>
		<description><![CDATA[<p><h2>Interesting Things</h2>

<ul>
<li><p><a href="http://www.jetbrains.com/ruby/">Rubymine</a>, just released a new beta revision 856. So far it "seems to work".</p></li>
<li><p>When using Object-Mother patterns for creating objects in tests &#40;i.e. Fixjour, FactoryGirl&#41; one gotcha that caused one of our teams some pain was when inadvertently setting an object and object_id for the same association. For example, setting <code>person = @nate</code> and <code>person_id = @david.id</code> in the same object creation will cause really weird problems. Our team debugged and solved this by validating object creation ... essentially writing tests for your test objects.</p></li>
<li><p>Try mapping SHIFT + Space to the underscore character, and save your underscore finger from unnecessary travel.</p></li>
</ul> <a href="http://pivotallabs.com/standup-4-22-2009-earth-day-edition-rubymine-856-object-mother-gotchas/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/standup-4-22-2009-earth-day-edition-rubymine-856-object-mother-gotchas/">Standup 4/22/2009 Earth Day Edition: Rubymine 856, Object-Mother gotchas</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Interesting Things</h2>
<ul>
<li>
<p><a href="http://www.jetbrains.com/ruby/">Rubymine</a>, just released a new beta revision 856. So far it &#8220;seems to work&#8221;.</p>
</li>
<li>
<p>When using Object-Mother patterns for creating objects in tests &#40;i.e. Fixjour, FactoryGirl&#41; one gotcha that caused one of our teams some pain was when inadvertently setting an object and object_id for the same association. For example, setting <code>person = @nate</code> and <code>person_id = @david.id</code> in the same object creation will cause really weird problems. Our team debugged and solved this by validating object creation &#8230; essentially writing tests for your test objects.</p>
</li>
<li>
<p>Try mapping SHIFT + Space to the underscore character, and save your underscore finger from unnecessary travel.</p>
</li>
</ul>
<p>The post <a href="http://pivotallabs.com/standup-4-22-2009-earth-day-edition-rubymine-856-object-mother-gotchas/">Standup 4/22/2009 Earth Day Edition: Rubymine 856, Object-Mother gotchas</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/standup-4-22-2009-earth-day-edition-rubymine-856-object-mother-gotchas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Standup 4/21/2009: Webrat save_and_open_page, CSS regression, Rubymine UTF8</title>
		<link>http://pivotallabs.com/standup-4-21-2009-webrat-save-and-open-page-css-regression-rubymine-utf8/</link>
		<comments>http://pivotallabs.com/standup-4-21-2009-webrat-save-and-open-page-css-regression-rubymine-utf8/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 21:22:00 +0000</pubDate>
		<dc:creator>Nate Clark</dc:creator>
				<category><![CDATA[Standup]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/standup-4-21-2009-webrat-save-and-open-page-css-regression-rubymine-utf8/</guid>
		<description><![CDATA[<p><h2>Interesting Things</h2>

<ul>
<li><p><a href="http://github.com/brynary/webrat/tree/master">Webrat</a>, the acceptance testing framework that is all the rage right now, has a neat lesser-known <em>save_and_open_page</em> command that is helpful for debugging when your tests go wrong. Essentially, this command dumps the current HTML to the browser and lets you inspect the state of the page visually at any point within your test.</p></li>
<li><p><a href="http://www.jetbrains.com/ruby/">Rubymine</a>, Pivotal's favorite Ruby IDE, doesn't really support UTF8. You can type UTF8 characters seemingly fine ... but somewhere along the way it doesn't save properly. Apparently this has been an issue with Rubymine for quite some time. Frustrating.</p></li>
</ul>

<h2>Ask for Help</h2>

<ul>
<li>Anyone know a reliable way of CSS regression testing? When we are refactoring CSS or markup, it would be great if there was an automated way to detect visual breakages. Some ideas floating around involve taking screenshots through Webkit's API and comparing them pixel by pixel. This kind of thing has been attempted twice by Pivots without much success. Anybody have a good solution?</li>
</ul> <a href="http://pivotallabs.com/standup-4-21-2009-webrat-save-and-open-page-css-regression-rubymine-utf8/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/standup-4-21-2009-webrat-save-and-open-page-css-regression-rubymine-utf8/">Standup 4/21/2009: Webrat save_and_open_page, CSS regression, Rubymine UTF8</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Interesting Things</h2>
<ul>
<li>
<p><a href="http://github.com/brynary/webrat/tree/master">Webrat</a>, the acceptance testing framework that is all the rage right now, has a neat lesser-known <em>save_and_open_page</em> command that is helpful for debugging when your tests go wrong. Essentially, this command dumps the current HTML to the browser and lets you inspect the state of the page visually at any point within your test.</p>
</li>
<li>
<p><a href="http://www.jetbrains.com/ruby/">Rubymine</a>, Pivotal&#8217;s favorite Ruby IDE, doesn&#8217;t really support UTF8. You can type UTF8 characters seemingly fine &#8230; but somewhere along the way it doesn&#8217;t save properly. Apparently this has been an issue with Rubymine for quite some time. Frustrating.</p>
</li>
</ul>
<h2>Ask for Help</h2>
<ul>
<li>Anyone know a reliable way of CSS regression testing? When we are refactoring CSS or markup, it would be great if there was an automated way to detect visual breakages. Some ideas floating around involve taking screenshots through Webkit&#8217;s API and comparing them pixel by pixel. This kind of thing has been attempted twice by Pivots without much success. Anybody have a good solution?</li>
</ul>
<p>The post <a href="http://pivotallabs.com/standup-4-21-2009-webrat-save-and-open-page-css-regression-rubymine-utf8/">Standup 4/21/2009: Webrat save_and_open_page, CSS regression, Rubymine UTF8</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/standup-4-21-2009-webrat-save-and-open-page-css-regression-rubymine-utf8/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic (Feed is rejected)
Page Caching using apc
Database Caching using apc
Object Caching 1122/1212 objects using apc

 Served from: pivotallabs.com @ 2013-06-18 17:04:35 by W3 Total Cache -->