<?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; Steve Ellis</title>
	<atom:link href="http://pivotallabs.com/author/sellis/feed/" rel="self" type="application/rss+xml" />
	<link>http://pivotallabs.com</link>
	<description>Agility Developed</description>
	<lastBuildDate>Mon, 20 May 2013 16: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>BetterReceive: A More Assertive Mock</title>
		<link>http://pivotallabs.com/introducing-better_receive/</link>
		<comments>http://pivotallabs.com/introducing-better_receive/#comments</comments>
		<pubDate>Fri, 08 Feb 2013 14:28:59 +0000</pubDate>
		<dc:creator>Steve Ellis</dc:creator>
				<category><![CDATA[Labs]]></category>
		<category><![CDATA[mocks]]></category>
		<category><![CDATA[rspec]]></category>
		<category><![CDATA[stubs]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/?p=14991</guid>
		<description><![CDATA[<p>One thing I&#8217;ve always liked about TDD is the ease with which it guides you through development. Given an outside-in approach, one failing test will lead you into another, and as you develop you dive deeper. Each time you make a new set of tests pass you step back to the earlier context and continue until you&#8217;ve driven out your story one test at a time. This all works seamlessly, with the exception of adding new methods to a class. For example: class Developer; end class Office attr_accessor :developers end Now, we want to tell the office how to run. Testing it with RSpec would look something like this: describe Office do describe "#run" do it "gives the developers a break to play ping pong" do dev = Developer.new office = Office.new(developers: [dev]) dev.should_receive :break_for_ping_pong office.run end end end This test fails because dev does not receive break_for_ping_pong. From here&#8230;</p><p>The post <a href="http://pivotallabs.com/introducing-better_receive/">BetterReceive: A More Assertive Mock</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>One thing I&#8217;ve always liked about TDD is the ease with which it guides you through development. Given an outside-in approach, one failing test will lead you into another, and as you develop you dive deeper. Each time you make a new set of tests pass you step back to the earlier context and continue until you&#8217;ve driven out your story one test at a time. This all works seamlessly, with the exception of adding new methods to a class. For example:
<pre><code class='ruby'>class Developer; end

class Office
  attr_accessor :developers
end
</code></pre>
<p>Now, we want to tell the office how to run. Testing it with RSpec would look something like this:</p>
<pre><code class='ruby'>describe Office do
  describe "#run" do
    it "gives the developers a break to play ping pong" do
      dev = Developer.new
      office = Office.new(developers: [dev])

      dev.should_receive :break_for_ping_pong
  
      office.run
    end
  end
end</code></pre>
<p>This test fails because <em>dev</em> does not receive <em>break_for_ping_pong</em>. From here making our tests pass is easier than actually making our code work:</p>
<pre><code class='ruby'>class Office
  attr_accessor :developers

  def run
    developers.each(&#038;:break_for_ping_pong)
  end
end</code></pre>
<p>We run the tests, and we&#8217;re done! Everything passes. Time for a ping pong break. Oh, wait&#8230; <em>dev</em> still doesn&#8217;t respond to <em>break_for_ping_pong</em>, but the tests pass because <em>dev</em> does receive <em>break_for_ping_pong</em>.</p>
<p>Due to the dynamic nature of Ruby and all its meta-programming goodness/complexity, RSpec does not try to predict whether or not objects respond to the methods that are mocked out. Sometimes this is for the best, but in cases like the one above it would be nice to recognize the missing behavior. </p>
<p>Enter <a href="https://github.com/se3000/better_receive" title="BetterReceive" target="_blank">BetterReceive</a>. BetterReceive works like any other RSpec mock, with the exception that before mocking/stubbing a method there is an extra assertion that the object under test responds to the specified method.</p>
<p>So, after including &#8216;better_receive&#8217; in the Gemfile, we can update our test to be more assertive:</p>
<pre><code class='ruby'>      dev.better_receive :break_for_ping_pong</code></pre>
<p>Now we have a properly failing test, so we put off the ping pong break and make the code pass:</p>
<pre><code class='ruby'>class Developer
  def break_for_ping_pong
    # ...
  end
end</code></pre>
<p>More important than driving out new functionality, now that we have working code BetterReceive will catch bugs later on. Imagine <em>break_for_ping_pong</em> was called in other places in the code.
<pre><code class='ruby'>class Pair
  attr_accessor :developers

  def disagree
    developers.each(&#038;:break_for_ping_pong)
  end
end</code></pre>
<p>Changing the implementation of <em>Pair</em> may lead to a refactoring in the <em>Developer</em> model, for example moving <em>break_for_ping_pong</em> onto <em>Pair</em>. The other places in the code base that use <em>break_for_ping_pong</em> may go unnoticed due to oversight, lack of discoverability, or however your bugs slip in. Had we left <em>should_receive</em> in our test for <em>Office</em> the suite would continue improperly passing, harboring a new bug. Since <em>dev</em> still receives <em>break_for_ping_pong</em>, the <em>should_receive</em> assertion passes even though <em>dev</em> doesn&#8217;t respond to <em>break_for_ping_pong</em>. BetterReceive catches these regressions and alerts you before letting new changes get too far.</p>
<p>&nbsp;<br />
<strong>#responds_to? Considered Helpful</strong></p>
<p>Ruby&#8217;s method_missing feature is the main thing that stood in the way of tools like RSpec from being able to consistently predict whether an object responds to a method. For this reason, Ruby 1.9.2 introduced <em>responds_to_missing?</em>. The folks over at Thoughtbot have a great post about why you should <a href="http://robots.thoughtbot.com/post/28335346416/always-define-respond-to-missing-when-overriding" title="always define responds_to_missing? when overwriting method_missing" target="_blank">always define <em>respond_to_missing?</em> when overriding <em>method_missing</em></a>.</p>
<p>Without updating what an object responds to you are pitting two of Ruby&#8217;s biggest strengths against each other: Meta-Programming vs. Duck Typing. (Spoiler: Duck typing loses.) This tradeoff doesn&#8217;t have to be made. Many libraries do a good job of updating <em>responds_to?</em> when changing <em>method_missing</em>, but they don&#8217;t all. BetterReceive can help you determine which parts of your own code and which libraries you use that have not yet updated <em>responds_to_missing?</em>. Those libraries better receive some pull requests.</p>
<p>Ideally, I would like to see the <em>responds_to?</em> assertion become the default when mocking/stubbing. While there are other obstacles to overcome in making this possible, consistently updating <em>responds_to?</em> is the most important.</p>
<p>The post <a href="http://pivotallabs.com/introducing-better_receive/">BetterReceive: A More Assertive Mock</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/introducing-better_receive/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Tuesday Brown Bag: @ykatz</title>
		<link>http://pivotallabs.com/tuesday-brown-bag-ykatz/</link>
		<comments>http://pivotallabs.com/tuesday-brown-bag-ykatz/#comments</comments>
		<pubDate>Mon, 18 Jun 2012 13:40:00 +0000</pubDate>
		<dc:creator>Steve Ellis</dc:creator>
				<category><![CDATA[Standup]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/tuesday-brown-bag-ykatz/</guid>
		<description><![CDATA[<p><h2>Events</h2>

<ul>
<li>Tuesday Brown Bag: Yehuda</li>
</ul>

<p>Yehuda Katz will be giving a brown bag on Tuesday at 12:30.</p> <a href="http://pivotallabs.com/tuesday-brown-bag-ykatz/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/tuesday-brown-bag-ykatz/">Tuesday Brown Bag: @ykatz</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Events</h2>
<ul>
<li>Tuesday Brown Bag: Yehuda</li>
</ul>
<p>Yehuda Katz will be giving a brown bag on Tuesday at 12:30.</p>
<p>The post <a href="http://pivotallabs.com/tuesday-brown-bag-ykatz/">Tuesday Brown Bag: @ykatz</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/tuesday-brown-bag-ykatz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NYC Standup: 2/5-10 Batched</title>
		<link>http://pivotallabs.com/nyc-standup-2-5-10-batched/</link>
		<comments>http://pivotallabs.com/nyc-standup-2-5-10-batched/#comments</comments>
		<pubDate>Sat, 11 Feb 2012 05:38:00 +0000</pubDate>
		<dc:creator>Steve Ellis</dc:creator>
				<category><![CDATA[Standup]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/nyc-standup-2-5-10-batched/</guid>
		<description><![CDATA[<p><h2>Interesting</h2>

<ul>
<li><strong>assert_template Matching</strong>: RSpec's template matcher uses a reg ex, which is loose enough to cause some false positives.</li>
</ul>

<pre>
  render &#34;_foo_bar.haml&#34;
</pre>

<p>will pass cause both of these to pass:</p>

<pre>
  should render_template &#34;_foo_bar.haml&#34;
  should render_template &#34;_bar.haml&#34;
</pre>

<p>The best solution presented was to explicitly say what you expect not to be rendered&#40;should_not render_template "_bar.haml"&#41;. There has been some activity on Github recently around ActionController's assert_template method, but none addressing this exact problem&#40;1 example: https://github.com/rails/rails/pull/3879/files&#41;. The regex is complicated by the fact that it has to match ambiguous partials rendered with specific paths&#40;should render_template "_bar.haml" needs to match render "foo/_bar.haml"&#41;.</p>

<ul>
<li><p><strong>Let It Be</strong>: If you declare a "let!" variable at the top of a file, and redeclare that variable with a "let" statement in a nested context, the variable will not be lazily loaded. RSpec evaluates it as a "let!".</p></li>
<li><p><strong>Binary Tempfiles</strong>: There is no way to open a new Tempfile in binary mode; you must open it first and then call foo.binmode.</p></li>
<li><p>Airbrake was acquired by Exceptional
<a href="http://techcrunch.com/2012/02/07/exceptional-acquires-error-tracking-application-airbrake/">http://techcrunch.com/2012/02/07/exceptional-acquires-error-tracking-application-airbrake/</a></p></li>
<li><p><strong>Auto compiling SASS, pre-3.0</strong>: Adam used 'compass watch' and Foreman to automate the regeneration of stylesheets in development. This prevents him from having to wait for the sass to recompile on the first request he makes after modifying stylesheets. <a href="https://github.com/ddollar/foreman">https://github.com/ddollar/foreman</a></p></li>
<li><p><strong>Should receive, in any order</strong>: Ian &#38; Suman were attempting to write an RSpec 1.3 spec that asserted a method was called with an array that included the correct elements; however, the order of the elements within the array was not important. Seems there is no array_including equivalent to hash_including. The solution they came to was to use the block style expectation as defined here: https://www.relishapp.com/rspec/rspec-mocks/docs/argument-matchers</p></li>
</ul>

<pre>
  foo.should_receive&#40;:bar&#41; do &#124;arg1&#124;
    arg1.should =~ [3,1,2]
  end
</pre>

<p>Anyone know of a built-in matcher for arrays similar to hash_including?</p> <a href="http://pivotallabs.com/nyc-standup-2-5-10-batched/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/nyc-standup-2-5-10-batched/">NYC Standup: 2/5-10 Batched</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Interesting</h2>
<ul>
<li><strong>assert_template Matching</strong>: RSpec&#8217;s template matcher uses a reg ex, which is loose enough to cause some false positives.</li>
</ul>
<pre>
  render &quot;_foo_bar.haml&quot;
</pre>
<p>will pass cause both of these to pass:</p>
<pre>
  should render_template &quot;_foo_bar.haml&quot;
  should render_template &quot;_bar.haml&quot;
</pre>
<p>The best solution presented was to explicitly say what you expect not to be rendered&#40;should_not render_template &#8220;_bar.haml&#8221;&#41;. There has been some activity on Github recently around ActionController&#8217;s assert_template method, but none addressing this exact problem&#40;1 example: https://github.com/rails/rails/pull/3879/files&#41;. The regex is complicated by the fact that it has to match ambiguous partials rendered with specific paths&#40;should render_template &#8220;_bar.haml&#8221; needs to match render &#8220;foo/_bar.haml&#8221;&#41;.</p>
<ul>
<li>
<p><strong>Let It Be</strong>: If you declare a &#8220;let!&#8221; variable at the top of a file, and redeclare that variable with a &#8220;let&#8221; statement in a nested context, the variable will not be lazily loaded. RSpec evaluates it as a &#8220;let!&#8221;.</p>
</li>
<li>
<p><strong>Binary Tempfiles</strong>: There is no way to open a new Tempfile in binary mode; you must open it first and then call foo.binmode.</p>
</li>
<li>
<p>Airbrake was acquired by Exceptional<br />
<a href="http://techcrunch.com/2012/02/07/exceptional-acquires-error-tracking-application-airbrake/">http://techcrunch.com/2012/02/07/exceptional-acquires-error-tracking-application-airbrake/</a></p>
</li>
<li>
<p><strong>Auto compiling SASS, pre-3.0</strong>: Adam used &#8216;compass watch&#8217; and Foreman to automate the regeneration of stylesheets in development. This prevents him from having to wait for the sass to recompile on the first request he makes after modifying stylesheets. <a href="https://github.com/ddollar/foreman">https://github.com/ddollar/foreman</a></p>
</li>
<li>
<p><strong>Should receive, in any order</strong>: Ian &amp; Suman were attempting to write an RSpec 1.3 spec that asserted a method was called with an array that included the correct elements; however, the order of the elements within the array was not important. Seems there is no array_including equivalent to hash_including. The solution they came to was to use the block style expectation as defined here: https://www.relishapp.com/rspec/rspec-mocks/docs/argument-matchers</p>
</li>
</ul>
<pre>
  foo.should_receive&#40;:bar&#41; do |arg1|
    arg1.should =~ [3,1,2]
  end
</pre>
<p>Anyone know of a built-in matcher for arrays similar to hash_including?</p>
<p>The post <a href="http://pivotallabs.com/nyc-standup-2-5-10-batched/">NYC Standup: 2/5-10 Batched</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/nyc-standup-2-5-10-batched/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>NYC Standup 08/12/11: Stretches!</title>
		<link>http://pivotallabs.com/nyc-standup-08-12-11-stretches/</link>
		<comments>http://pivotallabs.com/nyc-standup-08-12-11-stretches/#comments</comments>
		<pubDate>Fri, 12 Aug 2011 12:25:00 +0000</pubDate>
		<dc:creator>Steve Ellis</dc:creator>
				<category><![CDATA[Standup]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/nyc-standup-08-12-11-stretches/</guid>
		<description><![CDATA[<p><h2>Interesting</h2>

<ul>
<li><p><strong>Artifice test pollution</strong>: The Lees ran into an issue where every fifth selenium test was failing. They tracked it down to using Artifice to stub responses in their tests. Since Webdriver communicates with the browser through http requests the stubbed Artifice responses were being received by Webdriver, causing unexpected behavior. Be careful stubbing with Artifice or you may accidentally stub all localhost requests.</p></li>
<li><p><strong>Devise stretches</strong>: Todd found that you can speed up your test suite by turning down Devise's level of password encryption in your testing environment. He got a 10% bump by including the following code in spec_helper:</p></li>
</ul>

<pre>
Devise.setup do &#124;config&#124;
   config.stretches = 1
 end
</pre>

<p>For more tips on cutting down your test suite's run time:
<a href="http://www.rubyinside.com/careful-cutting-to-get-faster-rspec-runs-with-rails-5207.html">http://www.rubyinside.com/careful-cutting-to-get-faster-rspec-runs-with-rails-5207.html</a></p> <a href="http://pivotallabs.com/nyc-standup-08-12-11-stretches/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/nyc-standup-08-12-11-stretches/">NYC Standup 08/12/11: Stretches!</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Interesting</h2>
<ul>
<li>
<p><strong>Artifice test pollution</strong>: The Lees ran into an issue where every fifth selenium test was failing. They tracked it down to using Artifice to stub responses in their tests. Since Webdriver communicates with the browser through http requests the stubbed Artifice responses were being received by Webdriver, causing unexpected behavior. Be careful stubbing with Artifice or you may accidentally stub all localhost requests.</p>
</li>
<li>
<p><strong>Devise stretches</strong>: Todd found that you can speed up your test suite by turning down Devise&#8217;s level of password encryption in your testing environment. He got a 10% bump by including the following code in spec_helper:</p>
</li>
</ul>
<pre>
Devise.setup do |config|
   config.stretches = 1
 end
</pre>
<p>For more tips on cutting down your test suite&#8217;s run time:<br />
<a href="http://www.rubyinside.com/careful-cutting-to-get-faster-rspec-runs-with-rails-5207.html">http://www.rubyinside.com/careful-cutting-to-get-faster-rspec-runs-with-rails-5207.html</a></p>
<p>The post <a href="http://pivotallabs.com/nyc-standup-08-12-11-stretches/">NYC Standup 08/12/11: Stretches!</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/nyc-standup-08-12-11-stretches/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NYC Standup 08/11/2011: Ruby Malloc Errors</title>
		<link>http://pivotallabs.com/nyc-standup-08-11-2011-ruby-malloc-errors/</link>
		<comments>http://pivotallabs.com/nyc-standup-08-11-2011-ruby-malloc-errors/#comments</comments>
		<pubDate>Thu, 11 Aug 2011 13:52:00 +0000</pubDate>
		<dc:creator>Steve Ellis</dc:creator>
				<category><![CDATA[Labs]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/nyc-standup-08-11-2011-ruby-malloc-errors/</guid>
		<description><![CDATA[<p><h2>Interesting</h2>

<ul>
<li><strong>Malloc/Seg Faults in 1.9.2</strong>: A few developers have been running into Malloc/Seg Fault errors recently. The cause is yet to be determined.</li>
</ul> <a href="http://pivotallabs.com/nyc-standup-08-11-2011-ruby-malloc-errors/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/nyc-standup-08-11-2011-ruby-malloc-errors/">NYC Standup 08/11/2011: Ruby Malloc Errors</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Interesting</h2>
<ul>
<li><strong>Malloc/Seg Faults in 1.9.2</strong>: A few developers have been running into Malloc/Seg Fault errors recently. The cause is yet to be determined.</li>
</ul>
<p>The post <a href="http://pivotallabs.com/nyc-standup-08-11-2011-ruby-malloc-errors/">NYC Standup 08/11/2011: Ruby Malloc Errors</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/nyc-standup-08-11-2011-ruby-malloc-errors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NYC Standup 08/10/2011: Cycles</title>
		<link>http://pivotallabs.com/nyc-standup-08-10-2011-cycles/</link>
		<comments>http://pivotallabs.com/nyc-standup-08-10-2011-cycles/#comments</comments>
		<pubDate>Wed, 10 Aug 2011 17:05:00 +0000</pubDate>
		<dc:creator>Steve Ellis</dc:creator>
				<category><![CDATA[Standup]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/nyc-standup-08-10-2011-cycles/</guid>
		<description><![CDATA[<p><h2>Interesting</h2>

<ul>
<li><p><strong>cycle&#40;even, odd&#41;</strong>: Jonathan pointed out a method in rails that allows you to apply classes to the even and odd numbered indexes of collections, allowing you to easily apply zebra striping patterns to a collection. Peter mentioned the alternative CSS pseudo-selector "nth-child," which does the same thing with CSS and properly recalculates in the case where you remove an element with AJAX. Unfortunately, nth-child does not work with IE so if you have to support IE, use cycles, otherwise use nth-child.</p></li>
<li><p><strong>will_paginate 3.0</strong>: Ian mentioned that version 3 of the <a href="https://github.com/mislav/will_paginate">will_paginate</a> gem was recently released. It now uses scopes, bringing it up to speed with Kaminari, another popular pagination gem.</p></li>
<li><p><strong>home_run hates ActiveSupport</strong>: JT and Micah pointed out that if you're adding a duration to a DateTime using home_run, like "DateTime.now + 1.day," it doesn't play well with ActiveSupport. It assumes that the number on the right is supposed to be days, which it converts to seconds 86,400 and then changes to days again&#40;86,400 days&#41;. The '+' operator has been fixed in edge rails, but not yet back ported. They pointed out that although it doesn't read well, using #since on any instance of DateTime will act how you would hope the '+' operator would.</p></li>
</ul> <a href="http://pivotallabs.com/nyc-standup-08-10-2011-cycles/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/nyc-standup-08-10-2011-cycles/">NYC Standup 08/10/2011: Cycles</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Interesting</h2>
<ul>
<li>
<p><strong>cycle&#40;even, odd&#41;</strong>: Jonathan pointed out a method in rails that allows you to apply classes to the even and odd numbered indexes of collections, allowing you to easily apply zebra striping patterns to a collection. Peter mentioned the alternative CSS pseudo-selector &#8220;nth-child,&#8221; which does the same thing with CSS and properly recalculates in the case where you remove an element with AJAX. Unfortunately, nth-child does not work with IE so if you have to support IE, use cycles, otherwise use nth-child.</p>
</li>
<li>
<p><strong>will_paginate 3.0</strong>: Ian mentioned that version 3 of the <a href="https://github.com/mislav/will_paginate">will_paginate</a> gem was recently released. It now uses scopes, bringing it up to speed with Kaminari, another popular pagination gem.</p>
</li>
<li>
<p><strong>home_run hates ActiveSupport</strong>: JT and Micah pointed out that if you&#8217;re adding a duration to a DateTime using home_run, like &#8220;DateTime.now + 1.day,&#8221; it doesn&#8217;t play well with ActiveSupport. It assumes that the number on the right is supposed to be days, which it converts to seconds 86,400 and then changes to days again&#40;86,400 days&#41;. The &#8216;+&#8217; operator has been fixed in edge rails, but not yet back ported. They pointed out that although it doesn&#8217;t read well, using #since on any instance of DateTime will act how you would hope the &#8216;+&#8217; operator would.</p>
</li>
</ul>
<p>The post <a href="http://pivotallabs.com/nyc-standup-08-10-2011-cycles/">NYC Standup 08/10/2011: Cycles</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/nyc-standup-08-10-2011-cycles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NYC Standup 08/09/2011: EC2 Again?</title>
		<link>http://pivotallabs.com/nyc-standup-08-09-2011-ec2-again/</link>
		<comments>http://pivotallabs.com/nyc-standup-08-09-2011-ec2-again/#comments</comments>
		<pubDate>Tue, 09 Aug 2011 12:31:00 +0000</pubDate>
		<dc:creator>Steve Ellis</dc:creator>
				<category><![CDATA[Standup]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/nyc-standup-08-09-2011-ec2-again/</guid>
		<description><![CDATA[<p><h2>Interesting</h2>

<ul>
<li><p><strong>Sauce Labs requires Heroku</strong>: JT reported a <a href="https://github.com/saucelabs/sauce_ruby/issues/17">problem</a> he noticed where Sauce Labs tries to hit a Heroku instance. If you don't have an instance set up on Heroku, the sauce gem hangs.</p></li>
<li><p><strong>EC2 Downtime</strong>: Amazon EC2 experienced some downtime last night.</p></li>
</ul>

<h2>Events</h2>

<p>NYC.rb presentation Tuesday at 7. The talk is titled, "<a href="http://www.meetup.com/NYC-rb/events/17437521/">Why doing things wrong is the right thing to do.</a>" and will be given by Jon Distad as a preview of the talk he'll give at the Ruby Hoedown. </p> <a href="http://pivotallabs.com/nyc-standup-08-09-2011-ec2-again/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/nyc-standup-08-09-2011-ec2-again/">NYC Standup 08/09/2011: EC2 Again?</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Interesting</h2>
<ul>
<li>
<p><strong>Sauce Labs requires Heroku</strong>: JT reported a <a href="https://github.com/saucelabs/sauce_ruby/issues/17">problem</a> he noticed where Sauce Labs tries to hit a Heroku instance. If you don&#8217;t have an instance set up on Heroku, the sauce gem hangs.</p>
</li>
<li>
<p><strong>EC2 Downtime</strong>: Amazon EC2 experienced some downtime last night.</p>
</li>
</ul>
<h2>Events</h2>
<p>NYC.rb presentation Tuesday at 7. The talk is titled, &#8220;<a href="http://www.meetup.com/NYC-rb/events/17437521/">Why doing things wrong is the right thing to do.</a>&#8221; and will be given by Jon Distad as a preview of the talk he&#8217;ll give at the Ruby Hoedown. </p>
<p>The post <a href="http://pivotallabs.com/nyc-standup-08-09-2011-ec2-again/">NYC Standup 08/09/2011: EC2 Again?</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/nyc-standup-08-09-2011-ec2-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Standup 08/08/2011: Not from Canada</title>
		<link>http://pivotallabs.com/standup-11-31-2000/</link>
		<comments>http://pivotallabs.com/standup-11-31-2000/#comments</comments>
		<pubDate>Mon, 08 Aug 2011 13:32:00 +0000</pubDate>
		<dc:creator>Steve Ellis</dc:creator>
				<category><![CDATA[Standup]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/standup-11-31-2000/</guid>
		<description><![CDATA[<p><h2>New Faces</h2>

<p>We welcome Micah, a new Pivotal developer, to New York this week. Micah hails from Nevada City, CA.</p>

<h2>Events</h2>

<p>NYC.rb presentation Tuesday at 7. The talk is titled, "<a href="http://www.meetup.com/NYC-rb/events/17437521/">Why doing things wrong is the right thing to do.</a>" and will be hosted by Jon Distad.</p> <a href="http://pivotallabs.com/standup-11-31-2000/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/standup-11-31-2000/">Standup 08/08/2011: Not from Canada</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>New Faces</h2>
<p>We welcome Micah, a new Pivotal developer, to New York this week. Micah hails from Nevada City, CA.</p>
<h2>Events</h2>
<p>NYC.rb presentation Tuesday at 7. The talk is titled, &#8220;<a href="http://www.meetup.com/NYC-rb/events/17437521/">Why doing things wrong is the right thing to do.</a>&#8221; and will be hosted by Jon Distad.</p>
<p>The post <a href="http://pivotallabs.com/standup-11-31-2000/">Standup 08/08/2011: Not from Canada</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/standup-11-31-2000/feed/</wfw:commentRss>
		<slash:comments>0</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 973/1047 objects using apc

 Served from: pivotallabs.com @ 2013-05-20 12:44:37 by W3 Total Cache -->