<?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; Dirk Kelly</title>
	<atom:link href="http://pivotallabs.com/author/dkelly/feed/" rel="self" type="application/rss+xml" />
	<link>http://pivotallabs.com</link>
	<description>Agility Developed</description>
	<lastBuildDate>Wed, 22 May 2013 22:49:44 +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>Rails and SQL Views &#8211; Part 2 &#8211; Migrations</title>
		<link>http://pivotallabs.com/rails-and-sql-views-part-2-migrations/</link>
		<comments>http://pivotallabs.com/rails-and-sql-views-part-2-migrations/#comments</comments>
		<pubDate>Sat, 02 Mar 2013 15:51:50 +0000</pubDate>
		<dc:creator>Dirk Kelly</dc:creator>
				<category><![CDATA[Labs]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/?p=15518</guid>
		<description><![CDATA[<p>Last week I introduced that my pair and I have started using SQL Views more often in our project. This week I was going to discuss finer points on implementation, thankfully I found Josh Davis&#8217; has_one view post at HashRocket. The rocket example I discussed covered an activity log of all the rocket&#8217;s states RocketActivity, with a custom view being used to return the most recent of these RocketCurrentActivity. One of a few solutions to this in SQL is a sub select on the same activities table. CREATE VIEW rocket_current_activities AS SELECT rocket_activities.status AS status A few weeks down the way we&#8217;re going to have some change in requirements, this is where we would drop the existing view a recreate it with the new SQL. Getting started with migrations is helped immensely by lomba/schema_plus a gem which alongside index and foreign key improvements, also gives you a method for creating&#8230;</p><p>The post <a href="http://pivotallabs.com/rails-and-sql-views-part-2-migrations/">Rails and SQL Views &#8211; Part 2 &#8211; Migrations</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Last week I introduced that my pair and I have started <a href="http://pivotallabs.com/?p=15205" title="Rails and SQL Views - Part 1" target="_blank">using SQL Views</a> more often in our project. This week I was going to discuss finer points on implementation, thankfully I found Josh Davis&#8217; <a href="http://blog.hashrocket.com/posts/sql-views-and-activerecord" title="has_one view" target="_blank">has_one view</a> post at HashRocket.</p>
<p>The rocket example I discussed covered an activity log of all the rocket&#8217;s states <strong>RocketActivity</strong>, with a custom view being used to return the most recent of these <strong>RocketCurrentActivity</strong>. One of a few solutions to this in SQL is a sub select on the same activities table. </p>
<pre><code>CREATE VIEW rocket_current_activities AS
  SELECT
    rocket_activities.status     AS status
</code></pre>
<p>A few weeks down the way we&#8217;re going to have some change in requirements, this is where we would drop the existing view a recreate it with the new SQL.</p>
<p>Getting started with migrations is helped immensely by <a href="https://github.com/lomba/schema_plus">lomba/schema_plus</a> a gem which alongside index and foreign key improvements, also gives you a method for creating SQL views, which it then stores in you schema.rb.</p>
<pre><code>class RocketActivityViewFixes < ActiveRecord::Migration
  def change
    create_view :rocket_activities, "SELECT * FROM...", force: true
  end
</code></pre>
<p>Unfortunately views can get long and in-depth, can change multiple times before hitting any one environment and contain important information about available columns and data types. We needed more than a one line truncation of what a view is at any point in time.</p>
<p>To solve this we started to store copies of our sql and store them under <strong>db/views/name_of_view/timestamp_name_of_view.sql</strong>, and call them out something like this.</p>
<pre><code>class RocketActivityViewFixes < ActiveRecord::Migration
  def change
    create_view :rocket_activities, view_sql('20130215155853', 'rocket_activities')
  end</code></pre>
<p>The view_sql method is rather simple, and just an example of how you could structure your query files.</p>
<pre><code>ActiveRecord::Migration.class_eval do
  def view_sql(timestamp,view)
    File.read(Rails.root.join("db/views/#{view}/#{timestamp}_#{view}.sql"))
  end</code></pre>
<p>As simple as this is, if you can start to drop your data joining into the dbms without impacting on support for teams and multiple environments, you're going to feel a lot less pain making the move to SQL views.</p>
<p>If this doesn't convince you that views are the bees knees, maybe the next time I get around to posting about how we use views to power our search indexes will be exciting to you. Once again, stay tuned.</p>
<p>The post <a href="http://pivotallabs.com/rails-and-sql-views-part-2-migrations/">Rails and SQL Views &#8211; Part 2 &#8211; Migrations</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/rails-and-sql-views-part-2-migrations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rails and SQL Views &#8211; Part 1</title>
		<link>http://pivotallabs.com/rails-sql-views-1/</link>
		<comments>http://pivotallabs.com/rails-sql-views-1/#comments</comments>
		<pubDate>Mon, 11 Feb 2013 18:29:41 +0000</pubDate>
		<dc:creator>Dirk Kelly</dc:creator>
				<category><![CDATA[Labs]]></category>
		<category><![CDATA[postgres]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/?p=15205</guid>
		<description><![CDATA[<p>The project we&#8217;re currently working on has a fairly system wide requirement to have objects in different &#8220;states&#8221; as a result of user actions. The client wanted to be able to see both the current status, and a history of all the statuses each object has been in. These two requirements felt very closely tied, to the point where really the status is just the most recent action. This could be fairly easily modelled in a Rails application as such. class Rocket &#60; ActiveRecord::Base has_many :activities, class_name: "RocketActivity" def current_activity activities.order("created_at DESC").first end end rocket.activities.map(&#38;:status) # [landed, landing, cruising, launch, landed] rocket.current_activity.status # landed This seems like a fairly typical solution, and would provide you with a fairly easy to use accessor. rocket.current_activity.status But what if you wanted to view all the current activities of all the rockets you have in your fleet. @rockets.each do &#124;rocket&#124; rocket.current_activity.status end Works great,&#8230;</p><p>The post <a href="http://pivotallabs.com/rails-sql-views-1/">Rails and SQL Views &#8211; Part 1</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>The project we&#8217;re currently working on has a fairly system wide requirement to have objects in different &#8220;states&#8221; as a result of user actions. </p>
<p>The client wanted to be able to see both the current status, and a history of all the statuses each object has been in.</p>
<p>These two requirements felt very closely tied, to the point where really the status is just the most recent action.</p>
<p>This could be fairly easily modelled in a Rails application as such.</p>
<pre><code>class Rocket &lt; ActiveRecord::Base
  has_many :activities, class_name: "RocketActivity"

  def current_activity
    activities.order("created_at DESC").first
  end
end</code></pre>
<pre><code>rocket.activities.map(&amp;:status) # [landed, landing, cruising, launch, landed]
rocket.current_activity.status # landed</code></pre>
<p>This seems like a fairly typical solution, and would provide you with a fairly easy to use accessor.</p>
<pre><code>rocket.current_activity.status</code></pre>
<p>But what if you wanted to view all the current activities of all the rockets you have in your fleet.</p>
<pre><code>@rockets.each do |rocket|
  rocket.current_activity.status
end</code></pre>
<p>Works great, but creates an n+1 problem, where every line is executing a query to find all the activities and return the latest. </p>
<p>A solution to this is to use includes, you could define rockets as</p>
<pre><code>@rockets = Rocket.scope.includes(:activities)</code></pre>
<p>Still, your custom logic inside the <code>#current_activity</code> method is then going to have to perform more sql on that collection.</p>
<p>Also it shouldn&#8217;t be the Rocket&#8217;s responsibility to know how to find it&#8217;s most recent activity, that&#8217;s more of a class concern.</p>
<p>Given that, in Rails land as long as you had a class to take care of it, you could define that relationship as.</p>
<pre><code>class Rocket &lt; ActiveRecord::Base
  has_many :activities, class_name: "RocketActivity"
  has_one :current_activity, class_name: "RocketCurrentActivity"
end</code></pre>
<p>Leaving us to include the current_activity and output more efficiently.</p>
<pre><code>@rockets = Rocket.scope.includes(:current_activity)</code></pre>
<p>And keep our view the same.</p>
<pre><code>@rockets.each do |rocket|
  rocket.current_activity.status
end</code></pre>
<p>We solved this with <a href="http://en.wikipedia.org/wiki/View_(database)" title="SQL views" target="_blank">SQL views (Wikipedia)</a>, and next week I&#8217;m going to show you how.</p>
<p>The post <a href="http://pivotallabs.com/rails-sql-views-1/">Rails and SQL Views &#8211; Part 1</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/rails-sql-views-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What&#8217;s Your Snow Trip Bus Count?</title>
		<link>http://pivotallabs.com/snow-trip-bus-count/</link>
		<comments>http://pivotallabs.com/snow-trip-bus-count/#comments</comments>
		<pubDate>Mon, 28 Jan 2013 03:19:43 +0000</pubDate>
		<dc:creator>Dirk Kelly</dc:creator>
				<category><![CDATA[Labs]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/?p=11810</guid>
		<description><![CDATA[<p>Our project&#8217;s bus count was two, until I broke my wrist on a snowboarding trip. I was left needing someone to help me with life&#8217;s basic necessities: putting my coat on, opening a bottle of red, and typing on a computer. I can’t think of any programmers who wouldn’t be frustrated at not being able to physically code, I was certainly no different. My tried and true methods of throwing together some pseudo code, writing a failing spec, or just jumping on Github, weren’t options anymore. I had to turn to talking and expressing my opinions in spoken words, like I was in a play or something. We got through it and ended up finding a nice rhythm. I learned to communicate more effectively and would spend more time thinking about the long term impact of stories instead of keeping my head in unspoken or unwritten implementation details. I&#8217;ve since regained use of my hand&#8230;</p><p>The post <a href="http://pivotallabs.com/snow-trip-bus-count/">What&#8217;s Your Snow Trip Bus Count?</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Our project&#8217;s bus count was two, until I broke my wrist on a snowboarding trip. I was left needing someone to help me with life&#8217;s basic necessities: putting my coat on, opening a bottle of red, and typing on a computer.</p>
<p>I can’t think of any programmers who wouldn’t be frustrated at not being able to physically code, I was certainly no different. My tried and true methods of throwing together some pseudo code, writing a failing spec, or just jumping on Github, weren’t options anymore. I had to turn to talking and expressing my opinions in spoken words, like I was in a play or something.</p>
<p>We got through it and ended up finding a nice rhythm. I learned to communicate more effectively and would spend more time thinking about the long term impact of stories instead of keeping my head in unspoken or unwritten implementation details.</p>
<p>I&#8217;ve since regained use of my hand and I&#8217;m writing this blog myself (the plan was to have my long suffering pair <a title="Ladies and Gentlemen, Mr Pauly Meskers" href="http://pivotallabs.com/author/pmeskers/" target="_blank">Meskers</a> do it for me). Even though I&#8217;ve started catching myself going for the keyboard when I &#8220;know the solution&#8221;, I try to stop myself and remember that it can be more effective to talk things through.</p>
<p>I encourage you to give up the keyboard when you next find yourself pairing, see what you learn from it.</p>
<p>The post <a href="http://pivotallabs.com/snow-trip-bus-count/">What&#8217;s Your Snow Trip Bus Count?</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/snow-trip-bus-count/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Standup 06/08/2012: Awkwardly Unprofessional</title>
		<link>http://pivotallabs.com/standup-06-08-2012-awkwardly-unprofessional/</link>
		<comments>http://pivotallabs.com/standup-06-08-2012-awkwardly-unprofessional/#comments</comments>
		<pubDate>Fri, 08 Jun 2012 11:09:00 +0000</pubDate>
		<dc:creator>Dirk Kelly</dc:creator>
				<category><![CDATA[Standup]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/standup-06-08-2012-awkwardly-unprofessional/</guid>
		<description><![CDATA[<p><h2>Interesting Things</h2>

<ul>
<li><a href="http://www.ruby-doc.org/core-1.9.3/ObjectSpace.html">ObjectSpace</a> is a class in Ruby which stores information about all instantiated objects. Great stuff for debugging, but don't go using it in your code.</li>
</ul> <a href="http://pivotallabs.com/standup-06-08-2012-awkwardly-unprofessional/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/standup-06-08-2012-awkwardly-unprofessional/">Standup 06/08/2012: Awkwardly Unprofessional</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://www.ruby-doc.org/core-1.9.3/ObjectSpace.html">ObjectSpace</a> is a class in Ruby which stores information about all instantiated objects. Great stuff for debugging, but don&#8217;t go using it in your code.</li>
</ul>
<p>The post <a href="http://pivotallabs.com/standup-06-08-2012-awkwardly-unprofessional/">Standup 06/08/2012: Awkwardly Unprofessional</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/standup-06-08-2012-awkwardly-unprofessional/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Standup 06/06/2012: Two Strings</title>
		<link>http://pivotallabs.com/standup-06-06-2012-two-strings/</link>
		<comments>http://pivotallabs.com/standup-06-06-2012-two-strings/#comments</comments>
		<pubDate>Wed, 06 Jun 2012 11:18:00 +0000</pubDate>
		<dc:creator>Dirk Kelly</dc:creator>
				<category><![CDATA[Standup]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/standup-06-06-2012-two-strings/</guid>
		<description><![CDATA[<p><h2>Ask for Help</h2>

<blockquote>
    <p><em>"Capistrano is not using our ssh-config correctly, it seems the net-ssh library behaves differently to standard ssh"</em></p>
</blockquote>

<p>Some pivots are going to dive into figuring out whether this is the case and how to get it fixed. Stay tuned!</p>

<h2>Interesting Things</h2>

<ul>
<li>Ruby <code>sort</code> is not stable, this means that two elements which would have the same sort priority won't always be returned in the same order. Short of implementing your own merge sort you can get around this with <code>sort_by{ &#124;x&#124; n+=1; [x,n] }</code>.</li>
<li>Selenium does not clear all sessions after a suite run, it only clears out the current domain. If you're driving actions on multiple sites you will need to configure an after run action to visit those domains and clear session information. For what it's worth one of our pivots has a pull request on capybara-webkit which fixes this behavior by clearing all domain information by default.</li>
<li>A couple of pivots are using <a href="http://github.com">github</a>'s <a href="https://github.com/kneath/kss">KSS</a> library on their project to keep a maintainable styleguide and set of stylesheets. There is a <a href="https://github.com/dewski/kss-rails">kss-rails</a> gem if that's your preferred flavor. </li>
</ul>

<h2>ctrl+z</h2>

<p>Earlier this week we mentioned <code>to_string</code> and its differences to <code>to_s</code> and <code>to_str</code>. Turns out there is no <code>to_string</code> in Ruby, so it really is only something for you Java developers out there. Grant has explained the differences in a <a href="http://briancarper.net/blog/98/">comment on another blog</a>. </p> <a href="http://pivotallabs.com/standup-06-06-2012-two-strings/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/standup-06-06-2012-two-strings/">Standup 06/06/2012: Two Strings</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;Capistrano is not using our ssh-config correctly, it seems the net-ssh library behaves differently to standard ssh&#8221;</em></p>
</blockquote>
<p>Some pivots are going to dive into figuring out whether this is the case and how to get it fixed. Stay tuned!</p>
<h2>Interesting Things</h2>
<ul>
<li>Ruby <code>sort</code> is not stable, this means that two elements which would have the same sort priority won&#8217;t always be returned in the same order. Short of implementing your own merge sort you can get around this with <code>sort_by{ |x| n+=1; [x,n] }</code>.</li>
<li>Selenium does not clear all sessions after a suite run, it only clears out the current domain. If you&#8217;re driving actions on multiple sites you will need to configure an after run action to visit those domains and clear session information. For what it&#8217;s worth one of our pivots has a pull request on capybara-webkit which fixes this behavior by clearing all domain information by default.</li>
<li>A couple of pivots are using <a href="http://github.com">github</a>&#8216;s <a href="https://github.com/kneath/kss">KSS</a> library on their project to keep a maintainable styleguide and set of stylesheets. There is a <a href="https://github.com/dewski/kss-rails">kss-rails</a> gem if that&#8217;s your preferred flavor. </li>
</ul>
<h2>ctrl+z</h2>
<p>Earlier this week we mentioned <code>to_string</code> and its differences to <code>to_s</code> and <code>to_str</code>. Turns out there is no <code>to_string</code> in Ruby, so it really is only something for you Java developers out there. Grant has explained the differences in a <a href="http://briancarper.net/blog/98/">comment on another blog</a>. </p>
<p>The post <a href="http://pivotallabs.com/standup-06-06-2012-two-strings/">Standup 06/06/2012: Two Strings</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/standup-06-06-2012-two-strings/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Standup 06/04/2012: Six Point on Tap</title>
		<link>http://pivotallabs.com/standup-nyc-06-04-2012/</link>
		<comments>http://pivotallabs.com/standup-nyc-06-04-2012/#comments</comments>
		<pubDate>Mon, 04 Jun 2012 11:12:00 +0000</pubDate>
		<dc:creator>Dirk Kelly</dc:creator>
				<category><![CDATA[Standup]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/standup-nyc-06-04-2012/</guid>
		<description><![CDATA[<p><h2>Events</h2>

<ul>
<li>Brown Bag <strong>tomorrow</strong> at <strong>12:30</strong> with Shane Welch, founder of Six Point Brewery in Brooklyn. He will be joining us to share his stories of bootstrapping his business, creating his brand and engineering his beer. Interested? <a href="http://www.meetup.com/PivotalNY-Tech-Talks/events/67114852">Sign up to the Meetup!</a></li>
</ul> <a href="http://pivotallabs.com/standup-nyc-06-04-2012/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/standup-nyc-06-04-2012/">Standup 06/04/2012: Six Point on Tap</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Events</h2>
<ul>
<li>Brown Bag <strong>tomorrow</strong> at <strong>12:30</strong> with Shane Welch, founder of Six Point Brewery in Brooklyn. He will be joining us to share his stories of bootstrapping his business, creating his brand and engineering his beer. Interested? <a href="http://www.meetup.com/PivotalNY-Tech-Talks/events/67114852">Sign up to the Meetup!</a></li>
</ul>
<p>The post <a href="http://pivotallabs.com/standup-nyc-06-04-2012/">Standup 06/04/2012: Six Point on Tap</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/standup-nyc-06-04-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Standup 03/29/2012: Virtual Foreign Keys?</title>
		<link>http://pivotallabs.com/standup-nyc-03-29-2012/</link>
		<comments>http://pivotallabs.com/standup-nyc-03-29-2012/#comments</comments>
		<pubDate>Thu, 29 Mar 2012 11:13:00 +0000</pubDate>
		<dc:creator>Dirk Kelly</dc:creator>
				<category><![CDATA[Standup]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/standup-nyc-03-29-2012/</guid>
		<description><![CDATA[<p><h2>Interesting</h2>

<ul>
<li>Active Record <a href="http://apidock.com/rails/ActiveRecord/Associations/ClassMethods/belongs_to">belongs_to</a> will not raise an exception if you haven't run a migration to create the foreign record column. Instead it will assign a virtual attribute that persists through object reloads, but obviously not a fetch. Watch out!</li>
<li>RSpec was not raising an exception when some of our pivots were calling update_attributes with an attribute that didn't exist. Debugging inline and using the command line will raise exceptions. So again, watch out!</li>
<li>The first parameter on an <a href="https://www.relishapp.com/rspec/rspec-mocks/docs">RSpec double</a> is arbitrary in nature, but helps other developers understand what you're thinking. Keep everyone happy by naming it something useful.</li>
<li>Our Pivots <strong>dominated</strong> at dodgeball last night, with Cathy taking out the other team in a sudden death gladiator round. We'll be keeping the dream alive Monday next week.</li>
</ul>

<h2>Help</h2>

<ul>
<li>Some pivots need after deploy tasks to run on their heroku instances. Suggestions were to check out <a href="https://github.com/fastestforward/heroku_san">heroku_san</a> which has support for additional tasks and great hooks &#40;it's also well tested!&#41;</li>
<li>One of the projects is having trouble setting up firesass with the Rails 3.2 asset pipeline and <a href="https://github.com/thomas-mcdonald/bootstrap-sass">bootstrap-sass</a> gem</li>
</ul> <a href="http://pivotallabs.com/standup-nyc-03-29-2012/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/standup-nyc-03-29-2012/">Standup 03/29/2012: Virtual Foreign Keys?</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Interesting</h2>
<ul>
<li>Active Record <a href="http://apidock.com/rails/ActiveRecord/Associations/ClassMethods/belongs_to">belongs_to</a> will not raise an exception if you haven&#8217;t run a migration to create the foreign record column. Instead it will assign a virtual attribute that persists through object reloads, but obviously not a fetch. Watch out!</li>
<li>RSpec was not raising an exception when some of our pivots were calling update_attributes with an attribute that didn&#8217;t exist. Debugging inline and using the command line will raise exceptions. So again, watch out!</li>
<li>The first parameter on an <a href="https://www.relishapp.com/rspec/rspec-mocks/docs">RSpec double</a> is arbitrary in nature, but helps other developers understand what you&#8217;re thinking. Keep everyone happy by naming it something useful.</li>
<li>Our Pivots <strong>dominated</strong> at dodgeball last night, with Cathy taking out the other team in a sudden death gladiator round. We&#8217;ll be keeping the dream alive Monday next week.</li>
</ul>
<h2>Help</h2>
<ul>
<li>Some pivots need after deploy tasks to run on their heroku instances. Suggestions were to check out <a href="https://github.com/fastestforward/heroku_san">heroku_san</a> which has support for additional tasks and great hooks (it&#8217;s also well tested!)</li>
<li>One of the projects is having trouble setting up firesass with the Rails 3.2 asset pipeline and <a href="https://github.com/thomas-mcdonald/bootstrap-sass">bootstrap-sass</a> gem</li>
</ul>
<p>The post <a href="http://pivotallabs.com/standup-nyc-03-29-2012/">Standup 03/29/2012: Virtual Foreign Keys?</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/standup-nyc-03-29-2012/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Standup 03/28/2012: Browser Quest</title>
		<link>http://pivotallabs.com/standup-nyc-03-28-2012/</link>
		<comments>http://pivotallabs.com/standup-nyc-03-28-2012/#comments</comments>
		<pubDate>Wed, 28 Mar 2012 11:15:00 +0000</pubDate>
		<dc:creator>Dirk Kelly</dc:creator>
				<category><![CDATA[Standup]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/standup-nyc-03-28-2012/</guid>
		<description><![CDATA[<p><h2>Interesting</h2>

<ul>
<li>There's a new MMO out from Mozilla called Browser Quest, you can <a href="https://github.com/mozilla/BrowserQuest">grab the source</a> over on <a href="https://github.com">github</a></li>
</ul>

<h2>Help</h2>

<ul>
<li>How does git figure out which gitconfig file to use? If we change the environments HOME variable git doesn't look for the gitconfig in that new location.</li>
</ul> <a href="http://pivotallabs.com/standup-nyc-03-28-2012/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/standup-nyc-03-28-2012/">Standup 03/28/2012: Browser Quest</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Interesting</h2>
<ul>
<li>There&#8217;s a new MMO out from Mozilla called Browser Quest, you can <a href="https://github.com/mozilla/BrowserQuest">grab the source</a> over on <a href="https://github.com">github</a></li>
</ul>
<h2>Help</h2>
<ul>
<li>How does git figure out which gitconfig file to use? If we change the environments HOME variable git doesn&#8217;t look for the gitconfig in that new location.</li>
</ul>
<p>The post <a href="http://pivotallabs.com/standup-nyc-03-28-2012/">Standup 03/28/2012: Browser Quest</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/standup-nyc-03-28-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Standup 03/27/2012: Talk like a boss</title>
		<link>http://pivotallabs.com/standup-nyc-03-27-2012/</link>
		<comments>http://pivotallabs.com/standup-nyc-03-27-2012/#comments</comments>
		<pubDate>Tue, 27 Mar 2012 11:11:00 +0000</pubDate>
		<dc:creator>Dirk Kelly</dc:creator>
				<category><![CDATA[Standup]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/standup-nyc-03-27-2012/</guid>
		<description><![CDATA[<p><h2>Help</h2>

<ul>
<li>Zabes has noticed that <code>stub_model</code> is not working correctly in rails 3.2, even after applying the rspec fix. The problem is that stubbed objects aren't returning valid.</li>
</ul>

<h2>Events</h2>

<ul>
<li>Brownbag today in the common area, Kris Hicks will be teaching us how to <em>git rebase like a boss</em>, this is an open event so feel free to invite your friends.</li>
</ul> <a href="http://pivotallabs.com/standup-nyc-03-27-2012/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/standup-nyc-03-27-2012/">Standup 03/27/2012: Talk like a boss</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Help</h2>
<ul>
<li>Zabes has noticed that <code>stub_model</code> is not working correctly in rails 3.2, even after applying the rspec fix. The problem is that stubbed objects aren&#8217;t returning valid.</li>
</ul>
<h2>Events</h2>
<ul>
<li>Brownbag today in the common area, Kris Hicks will be teaching us how to <em>git rebase like a boss</em>, this is an open event so feel free to invite your friends.</li>
</ul>
<ul>
<li>Dodgeball will be this Wednesday at 9pm on the UES, we&#8217;d love to have some fans and anyone signed up is welcome to come join in.</li>
</ul>
<p>The post <a href="http://pivotallabs.com/standup-nyc-03-27-2012/">Standup 03/27/2012: Talk like a boss</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/standup-nyc-03-27-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Standup 01/30/2012: Assigning IDs</title>
		<link>http://pivotallabs.com/standup-nyc-01-30-2012/</link>
		<comments>http://pivotallabs.com/standup-nyc-01-30-2012/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 15:14:00 +0000</pubDate>
		<dc:creator>Dirk Kelly</dc:creator>
				<category><![CDATA[Standup]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/standup-nyc-01-30-2012/</guid>
		<description><![CDATA[<p><h2>Interesting</h2>

<ul>
<li>Assigning a collection with an <code>=</code> operator will not set the id on the parent object, to do this use <code>&#60;&#60;</code>.</li>
</ul>

<h2>Events</h2>

<ul>
<li>This weeks brown bag will be on SQL, three of our Australian pivots will be presenting it. You can join our <a href="http://www.meetup.com/PivotalNY-Tech-Talks/">meetup group</a> to find out more information.</li>
</ul> <a href="http://pivotallabs.com/standup-nyc-01-30-2012/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/standup-nyc-01-30-2012/">Standup 01/30/2012: Assigning IDs</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Interesting</h2>
<ul>
<li>Assigning a collection with an <code>=</code> operator will not set the id on the parent object, to do this use <code>&lt;&lt;</code>.</li>
</ul>
<h2>Events</h2>
<ul>
<li>This weeks brown bag will be on SQL, three of our Australian pivots will be presenting it. You can join our <a href="http://www.meetup.com/PivotalNY-Tech-Talks/">meetup group</a> to find out more information.</li>
</ul>
<p>The post <a href="http://pivotallabs.com/standup-nyc-01-30-2012/">Standup 01/30/2012: Assigning IDs</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/standup-nyc-01-30-2012/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 1103/1194 objects using apc

 Served from: pivotallabs.com @ 2013-05-23 03:28:47 by W3 Total Cache -->