<?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; Ian Zabel</title>
	<atom:link href="http://pivotallabs.com/author/izabel/feed/" rel="self" type="application/rss+xml" />
	<link>http://pivotallabs.com</link>
	<description>Agility Developed</description>
	<lastBuildDate>Sat, 18 May 2013 23:45: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>Level up your development workflow with GitHub &amp; Pivotal Tracker</title>
		<link>http://pivotallabs.com/level-up-your-development-workflow-with-github-pivotal-tracker/</link>
		<comments>http://pivotallabs.com/level-up-your-development-workflow-with-github-pivotal-tracker/#comments</comments>
		<pubDate>Sat, 03 Nov 2012 17:34:00 +0000</pubDate>
		<dc:creator>Ian Zabel</dc:creator>
				<category><![CDATA[Labs]]></category>
		<category><![CDATA[ci]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[pivotaltracker]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/level-up-your-development-workflow-with-github-pivotal-tracker/</guid>
		<description><![CDATA[<p><p>I've been working with my client, <a href="https://www.unpakt.com">Unpakt</a>, for a while now. One of their core values is making people's lives easier. They're specifically focused on making it easy for people moving to a new home or office to find a mover, compare prices and book their move online.</p>

<p>As a development team, we've taken that same core value of making things easier and applied it to our software development &#38; deployment workflow. Over time, we've progressively improved our process. We're now at the point where we're happy with it, and I wanted to share what we've been up to.</p>

<h2>The Typical Flow</h2>

<p>Let's assume I'm using GitHub and Pivotal Tracker and I've just completed a story. What's next? Push my changes up to GitHub, click Finish on my story, wait for the build to go green, deploy to staging. Then, click Deliver on all the stories that have just been deployed. Other stories were most likely ready to be delivered as well, so I'll check that they were actually included in the deployment, and then Deliver them in Tracker.</p>

<p>The typical flow goes like this:</p>

<ol>
<li>Commit the changes to my story</li>
<li>Push to GitHub</li>
<li>Click Finish on story in tracker</li>
<li>Wait for green build</li>
<li>Deploy to staging</li>
<li>Click Deliver in Tracker</li>
</ol>

<p>That's not really that bad. I'm lazy though. If something can be automated, I want it to be automated. For instance, the deployment process should be automatically handled by my Continuous Integration server.</p>

<p>If we take this to the next step and automate our build and deployments as described in Robbie Clutton's <a href="http://pivotallabs.com/users/rclutton/blog/articles/2359-building-confidence">Building Confidence</a> post, we can reduce that flow to this:</p>

<ol>
<li>Commit the changes to my story</li>
<li>Push to GitHub</li>
<li>Click Finish on story in tracker</li>
<li>Wait for green build</li>
<li>Click Deliver in Tracker</li>
</ol>

<p>Let's assume we've done that. That's a nice improvement, as deploys will happen automatically whenever there's a green build. That in itself is amazing.</p>

<p>But, what if we could reduce the steps in my everyday flow to this?</p>

<ol>
<li>Commit the changes to my story</li>
<li>Push to GitHub</li>
</ol>

<p>I want that!</p> <a href="http://pivotallabs.com/level-up-your-development-workflow-with-github-pivotal-tracker/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/level-up-your-development-workflow-with-github-pivotal-tracker/">Level up your development workflow with GitHub &amp; Pivotal Tracker</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been working with my client, <a href="https://www.unpakt.com">Unpakt</a>, for a while now. One of their core values is making people&#8217;s lives easier. They&#8217;re specifically focused on making it easy for people moving to a new home or office to find a mover, compare prices and book their move online.</p>
<p>As a development team, we&#8217;ve taken that same core value of making things easier and applied it to our software development &amp; deployment workflow. Over time, we&#8217;ve progressively improved our process. We&#8217;re now at the point where we&#8217;re happy with it, and I wanted to share what we&#8217;ve been up to.</p>
<h2>The Typical Flow</h2>
<p>Let&#8217;s assume I&#8217;m using GitHub and Pivotal Tracker and I&#8217;ve just completed a story. What&#8217;s next? Push my changes up to GitHub, click Finish on my story, wait for the build to go green, deploy to staging. Then, click Deliver on all the stories that have just been deployed. Other stories were most likely ready to be delivered as well, so I&#8217;ll check that they were actually included in the deployment, and then Deliver them in Tracker.</p>
<p>The typical flow goes like this:</p>
<ol>
<li>Commit the changes to my story</li>
<li>Push to GitHub</li>
<li>Click Finish on story in tracker</li>
<li>Wait for green build</li>
<li>Deploy to staging</li>
<li>Click Deliver in Tracker</li>
</ol>
<p>That&#8217;s not really that bad. I&#8217;m lazy though. If something can be automated, I want it to be automated. For instance, the deployment process should be automatically handled by my Continuous Integration server.</p>
<p>If we take this to the next step and automate our build and deployments as described in Robbie Clutton&#8217;s <a href="http://pivotallabs.com/users/rclutton/blog/articles/2359-building-confidence">Building Confidence</a> post, we can reduce that flow to this:</p>
<ol>
<li>Commit the changes to my story</li>
<li>Push to GitHub</li>
<li>Click Finish on story in tracker</li>
<li>Wait for green build</li>
<li>Click Deliver in Tracker</li>
</ol>
<p>Let&#8217;s assume we&#8217;ve done that. That&#8217;s a nice improvement, as deploys will happen automatically whenever there&#8217;s a green build. That in itself is amazing.</p>
<p>But, what if we could reduce the steps in my everyday flow to this?</p>
<ol>
<li>Commit the changes to my story</li>
<li>Push to GitHub</li>
</ol>
<p>I want that!</p>
<h2>A Streamlined Flow</h2>
<p>Here&#8217;s the basic idea: tie the commit message to the Tracker Story ID. This enables all kinds of functionality that will get us down to that two step process.</p>
<h3>GitHub &amp; Pivotal Tracker Integration</h3>
<p>GitHub supports integration with Pivotal Tracker. Dan Podsedly <a href="http://pivotallabs.com/users/dan/blog/articles/1304-github-service-hook-for-pivotal-tracker">blogged about this back in 2010</a>. You just tag your commits with Tracker Story IDs, and GitHub automatically comments on your story with the commit message. And, most importantly, it will click Finish on the story for you.</p>
<p>First, configure the Pivotal Tracker service hook on GitHub.</p>
<p><img src="http://assets.pivotallabs.com/1648/original/github_tracker.png" width="600"></p>
<p>Once this is enabled, you can start tagging your commits to use the hook. The syntax for your commit message is pretty simple. Add the following at the end of your commit message:</p>
<blockquote>
<p>[&#40;Finishes|Fixes|Delivers&#41; #TRACKER_STORY_ID]</p>
</blockquote>
<p>So, if you just fixed a CSS bug for story #35192613:</p>
<p><img src="http://assets.pivotallabs.com/1647/original/github_commit_message.png"></p>
<p>When you push to GitHub, the post-receive hook will then call back to Tracker and put a comment on the story with a link to the commit on GitHub:</p>
<p><img src="http://assets.pivotallabs.com/1649/original/tracker_comment.png"></p>
<p>At this point, we&#8217;ve eliminated step 3 from above. Now our workflow looks like this:</p>
<ol>
<li>Commit the changes to my story</li>
<li>Push to GitHub</li>
<li>Wait for green build</li>
<li>Click Deliver in Tracker</li>
</ol>
<p>Honestly, that&#8217;s a pretty nice workflow. If I&#8217;m diligent about tagging each commit with the Tracker Story ID, GitHub will handle Finishing the story for me. It&#8217;ll also add a comment to the story, so others can take a look at the commit related to the story. Technical PMs especially appreciate this, since their curiousity about what changed is easily satisfied by just clicking on the comment in the story.</p>
<p>But I want more. I want to automate steps 3 and 4.</p>
<h3>Deliver Stories Automatically</h3>
<p>Pivotal Tracker has an API hook to <a href="http://www.pivotaltracker.com/help/api?version=v3#deliver_all_finished">deliver all finished stories</a>. However, it&#8217;s not what we&#8217;re looking for. If our CI server calls that API hook after a green build, it&#8217;s possible for other stories to have been finished in the meantime that will not be included in the deploy. So, calling this API endpoint will just cause false positives.</p>
<p>A side-effect of tagging all your commits with Tracker Story IDs is that the git log now contains a nice little list of stories that have been finished. This makes it trivial to automate delivery of only the stories that have been deployed.</p>
<p>Unpakt was keen to share the script that makes this happen. They&#8217;ve thrown it up as a <a href="https://gist.github.com/3362526">gist</a>:</p>
<pre><code>#!/usr/bin/env ruby

# gem 'pivotal-tracker'
require 'pivotal-tracker'

TRACKER_TOKEN = "..."
TRACKER_PROJECT_ID = "..."

PivotalTracker::Client.token = TRACKER_TOKEN
PivotalTracker::Client.use_ssl = true

unpakt_project = PivotalTracker::Project.find&#40;TRACKER_PROJECT_ID&#41;
stories = unpakt_project.stories.all&#40;:state =&gt; "finished", :story_type =&gt; ['bug', 'feature']&#41;

staging_deploy_tag = `git tag | grep staging | tail -n1`

stories.each do | story |
  puts "Searching for #{story.id} in local git repo."
  search_result = `git log --grep #{story.id} #{staging_deploy_tag}`
  if search_result.length &gt; 0
    puts "Found #{story.id}, marking as delivered."
    story.notes.create&#40;:text =&gt; "Delivered by staging deploy script."&#41;
    story.update&#40;{"current_state" =&gt; "delivered"}&#41;
  else
    puts "Coult not find #{story.id} in git repo."
  end
end
</code></pre>
<p>Using the <a href="https://github.com/jsmestad/pivotal-tracker">pivotal-tracker gem</a>, the script finds all Finished stories in your Tracker project, and looks for a commit in the git log with that Story ID. If it finds one, it marks the story as Delivered.</p>
<p>It also adds a note to the story:</p>
<p><img src="http://assets.pivotallabs.com/1650/original/delivered_comment.png"></p>
<h3>Our New Development Workflow</h3>
<p>So, here&#8217;s what our development workflow now looks like:</p>
<ol>
<li>Commit the changes to my story &#40;including the Tracker Story ID in the commit message&#41;</li>
<li>Push to GitHub</li>
</ol>
<p>GitHub will mark my story as finished, and add a comment. CI will then run. If there&#8217;s a green build, it will deploy to staging. The deploy script will then run the deliver_stories script shown above, and all stories that have been deployed will be marked as delivered.</p>
<p>This is really, really nice. Having this much of the process automated for me just makes my life easier. It also gives our PM much quicker feedback about what&#8217;s happening. It&#8217;s very easy to forget to click Finish on a story, or deliver stories that weren&#8217;t deployed, or forget to click deliver on stories that were. This workflow eliminates these concerns.</p>
<h2>Caveat</h2>
<p>For this to work properly, the script that deploys to staging must checkout the same SHA as the green build from CI. If the git log shows commits from after the green build, some stories may be marked as Delivered when they haven&#8217;t actually made it through a green build and been deployed.</p>
<h2>Caution</h2>
<p>This workflow is not for every team. For example, it may be that your team functions better with developers verifying that each story is actually available and working on the staging environment before clicking Deliver in Tracker. No Product Manager wants to try to accept a story only to find that it&#8217;s not actually available on the staging environment. It may also be that on your project &#8220;Deployed&#8221; is not the same as &#8220;Delivered&#8221;.</p>
<p>You should only consider adopting a flow like this if your project is of a nature where deploys are easy, everyone on the team is playing along, and you can agree that &#8220;Deployed&#8221; and &#8220;Delivered&#8221; are one and the same.</p>
<p>The workflow described in this post has been working perfectly for months at Unpakt. We initially ran into the problem described above in the Caveat section, because our CI server running our deploy script while HEAD was checked out instead of the green build&#8217;s SHA. We haven&#8217;t had any stories accidentally marked as Delivered since we resolved that with TeamCity&#8217;s Snapshot Dependency feature.</p>
<h2>Unpakt is hiring!</h2>
<p>Unpakt is a small team with solid financial backing, led by a highly successful entrepreneur. They are creating an intense but fun and respectful culture and are looking for talented people to join their team. <a href="https://www.unpakt.com/jobs">Check out their job listings!</a></p>
<p>The post <a href="http://pivotallabs.com/level-up-your-development-workflow-with-github-pivotal-tracker/">Level up your development workflow with GitHub &amp; Pivotal Tracker</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/level-up-your-development-workflow-with-github-pivotal-tracker/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>TeamCity is pretty cool, you should totally check it out</title>
		<link>http://pivotallabs.com/teamcity-is-pretty-cool-you-should-totally-check-it-out/</link>
		<comments>http://pivotallabs.com/teamcity-is-pretty-cool-you-should-totally-check-it-out/#comments</comments>
		<pubDate>Wed, 14 Mar 2012 02:12:00 +0000</pubDate>
		<dc:creator>Ian Zabel</dc:creator>
				<category><![CDATA[Labs]]></category>
		<category><![CDATA[ci]]></category>
		<category><![CDATA[teamcity]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/teamcity-is-pretty-cool-you-should-totally-check-it-out/</guid>
		<description><![CDATA[<p><p>At Pivotal, our default choice for CI is Jenkins. I feel that Jenkins does a fine job running builds and reporting on a pass/fail. It also has nice plugins and plenty of features like build labeling and clustering.</p>

<p>JetBrains' TeamCity has all that, and more!</p>

<p>To be fair, TeamCity is missing some things that Jenkins has. However, I don't remember what they are because I've never used some of the deeper features of Jenkins. One thing TeamCity doesn't support well is running builds for multiple branches dynamically.</p>

<p>That said, I'm a huge fan of TeamCity. Here's why.</p> <a href="http://pivotallabs.com/teamcity-is-pretty-cool-you-should-totally-check-it-out/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/teamcity-is-pretty-cool-you-should-totally-check-it-out/">TeamCity is pretty cool, you should totally check it out</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>At Pivotal, our default choice for CI is Jenkins. I feel that Jenkins does a fine job running builds and reporting on a pass/fail. It also has nice plugins and plenty of features like build labeling and clustering.</p>
<p>JetBrains&#8217; TeamCity has all that, and more!</p>
<p>To be fair, TeamCity is missing some things that Jenkins has. However, I don&#8217;t remember what they are because I&#8217;ve never used some of the deeper features of Jenkins. One thing TeamCity doesn&#8217;t support well is running builds for multiple branches dynamically.</p>
<p>That said, I&#8217;m a huge fan of TeamCity. Here&#8217;s why.</p>
<p>TeamCity understands your tests. It uses custom formatters for RSpec, Cucumber, TestUnit and Shoulda. This means you get more than just a pass/fail on the build. You get a count of the tests that have run. You also get a count of the tests that failed. Seeing these numbers gives me a warm and fuzzy feeling that I don&#8217;t get with any other CI tool I&#8217;ve seen.</p>
<p><img src="http://pivotallabs.com/wordpress/wp-content/uploads/2012/03/tests.png?48a6bc" alt="test counts" /></p>
<p>Because it understands the tests it&#8217;s running, it can keep track of them. For each spec, or cucumber step, it knows how many times it&#8217;s passed, and how many times it&#8217;s failed. And, it shows you the relevant stacktrace for each failure. You can also get statistics on a particular spec or step, like so:</p>
<p><img src="http://pivotallabs.com/wordpress/wp-content/uploads/2012/03/test.png?48a6bc" alt="test detail" /></p>
<p>It also knows what commit introduced a new failure. Here&#8217;s a shot of TeamCity showing a spec failure. The spec description is shown. Below that is the stacktrace in maroon. And to the right, it is showing that the spec first failed in build #532 with andre&#8217;s commit. The spec is still failing 105 builds later in build #637. It&#8217;s easy to see the stacktrace from both the first failure and the current failure. And yes, that spec has been broken since September 2011.</p>
<p><img src="http://pivotallabs.com/wordpress/wp-content/uploads/2012/03/failure.png?48a6bc" width="625"></p>
<p>TeamCity makes it super easy to investigate what is making a build slow. Here&#8217;s a list of tests for the bundler gem, sorted by duration. You can filter, sort, and search the tests to analyze what&#8217;s going on.</p>
<p><img src="http://pivotallabs.com/wordpress/wp-content/uploads/2012/03/build_tests.png?48a6bc" width="625"></p>
<p>You also get some interesting statistics at the build level:</p>
<p><img src="http://pivotallabs.com/wordpress/wp-content/uploads/2012/03/success_rate.png?48a6bc" alt="test success chart" width="625"><br />
<img src="http://pivotallabs.com/wordpress/wp-content/uploads/2012/03/test_count.png?48a6bc" alt="test count chart" width="625"></p>
<p>The insight and analysis that TeamCity makes possible is extremely compelling. After using TeamCity for a few years, I used Jenkins for a a few months. I really missed all of the features above, and felt a lot less connected to my tests.</p>
<p>Other things I find to be very useful:</p>
<ul>
<li>Immediate feedback if a test fails during a build. The build will go red as soon as the first test does.</li>
<li>If a failing test is fixed in a newly running build, it&#8217;ll let you know.</li>
<li>Besides the awesome insight into your tests, TeamCity has support for larger teams. Users can set or take responsibility for a broken build or individual test. So, it&#8217;s easy to keep your team informed about who is working on what.</li>
<li>RubyMine integration, including pre-tested commits.</li>
<li>TeamCity is free for 20 build configurations and 3 slave agents.</li>
</ul>
<p>Full list of features: <a href="http://www.jetbrains.com/teamcity/features">www.jetbrains.com/teamcity/features</a></p>
<p>Here&#8217;s the demo environment: <a href="http://teamcity.jetbrains.com">teamcity.jetbrains.com</a></p>
<p>DISCLAIMER: I do not work for JetBrains, nor are they sponsoring this post. I do, however, love their products.</p>
<p>The post <a href="http://pivotallabs.com/teamcity-is-pretty-cool-you-should-totally-check-it-out/">TeamCity is pretty cool, you should totally check it out</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/teamcity-is-pretty-cool-you-should-totally-check-it-out/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[Standup][NYC] Standup 10/6/2011 &#8212; Github competition</title>
		<link>http://pivotallabs.com/standup-nyc-standup-10-6-2011-github-competition/</link>
		<comments>http://pivotallabs.com/standup-nyc-standup-10-6-2011-github-competition/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 18:08:00 +0000</pubDate>
		<dc:creator>Ian Zabel</dc:creator>
				<category><![CDATA[Standup]]></category>

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

<ul>
<li>BitBucket <a href="http://blog.bitbucket.org/2011/10/03/bitbucket-now-rocks-git/">now has Git support</a>. Unlimited private repos for free.</li>
<li>If you're using RVM in a shell script, it's a good idea to call it with <code>sh -c</code>. RVM does weird things to your shell, and we've seen it exit the calling process unexpectedly. Do something like <code>sh -c "rvm exec gem install chef"</code> to safely use RVM.</li>
<li>Kris mentioned that when writing complex migrations, you should consider testing them. You can write a test that asserts on the state of the DB before and after the migration runs up and down. Sounds like a pretty good idea to me.</li>
<li>Firefox 9 will have support for the CSS font-stretch property. Finally! See <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=3512">this bug report</a> from 1999.</li>
</ul>

<h2>Help!</h2>

<ul>
<li>We were seeing one to two seconds of clock drift every twenty seconds on a VM running Ubuntu. If you start seeing this on your VMs, do not use ntpdate to fix it. Install the guest additions from your VM software. It'll set up the clock to sync with the physical clock on the host machine. Much nicer!</li>
</ul> <a href="http://pivotallabs.com/standup-nyc-standup-10-6-2011-github-competition/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/standup-nyc-standup-10-6-2011-github-competition/">[Standup][NYC] Standup 10/6/2011 &#8212; Github competition</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Interesting</h2>
<ul>
<li>BitBucket <a href="http://blog.bitbucket.org/2011/10/03/bitbucket-now-rocks-git/">now has Git support</a>. Unlimited private repos for free.</li>
<li>If you&#8217;re using RVM in a shell script, it&#8217;s a good idea to call it with <code>sh -c</code>. RVM does weird things to your shell, and we&#8217;ve seen it exit the calling process unexpectedly. Do something like <code>sh -c "rvm exec gem install chef"</code> to safely use RVM.</li>
<li>Kris mentioned that when writing complex migrations, you should consider testing them. You can write a test that asserts on the state of the DB before and after the migration runs up and down. Sounds like a pretty good idea to me.</li>
<li>Firefox 9 will have support for the CSS font-stretch property. Finally! See <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=3512">this bug report</a> from 1999.</li>
</ul>
<h2>Help!</h2>
<ul>
<li>We were seeing one to two seconds of clock drift every twenty seconds on a VM running Ubuntu. If you start seeing this on your VMs, do not use ntpdate to fix it. Install the guest additions from your VM software. It&#8217;ll set up the clock to sync with the physical clock on the host machine. Much nicer!</li>
</ul>
<p>The post <a href="http://pivotallabs.com/standup-nyc-standup-10-6-2011-github-competition/">[Standup][NYC] Standup 10/6/2011 &#8212; Github competition</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/standup-nyc-standup-10-6-2011-github-competition/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[Standup][NYC] Standup 10/4/2011 &#8211; Typekit, we still love you.</title>
		<link>http://pivotallabs.com/standup-nyc-standup-10-4-2011-typekit-we-still-love-you/</link>
		<comments>http://pivotallabs.com/standup-nyc-standup-10-4-2011-typekit-we-still-love-you/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 12:17:00 +0000</pubDate>
		<dc:creator>Ian Zabel</dc:creator>
				<category><![CDATA[Standup]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/standup-nyc-standup-10-4-2011-typekit-we-still-love-you/</guid>
		<description><![CDATA[<p><h2>Interesting</h2>

<ul>
<li>Jon Berger and Adam Berlin recommended checking out <a href="http://rails-erd.rubyforge.org/">Rails ERD</a>.</li>
<li>Josh K tells us that <a href="http://www.nitehawkcinema.com/">Nitehawk Cinema</a> is the hip new place to see movies and be seen. And eat and drink while doing so. It's under the river and through the beards.</li>
<li>Adobe bought Typekit and PhoneGap! Here's a <a href="http://news.cnet.com/8301-30685_3-20114857-264/adobe-buys-phonegap-typekit-for-better-web-tools/">CNET article about it</a>! Who knew CNET was still around?</li>
</ul>

<h2>Help</h2>

<ul>
<li>Luke C asked about non-action views. It was recommend that he check out <a href="http://cells.rubyforge.org/">Rails Cells</a> or a presenter or decorator pattern.</li>
</ul>

<h2>Events</h2>

<ul>
<li>Wednesday -- 6:30pm Node JS, Evan is our liaison</li>
</ul> <a href="http://pivotallabs.com/standup-nyc-standup-10-4-2011-typekit-we-still-love-you/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/standup-nyc-standup-10-4-2011-typekit-we-still-love-you/">[Standup][NYC] Standup 10/4/2011 &#8211; Typekit, we still love you.</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Interesting</h2>
<ul>
<li>Jon Berger and Adam Berlin recommended checking out <a href="http://rails-erd.rubyforge.org/">Rails ERD</a>.</li>
<li>Josh K tells us that <a href="http://www.nitehawkcinema.com/">Nitehawk Cinema</a> is the hip new place to see movies and be seen. And eat and drink while doing so. It&#8217;s under the river and through the beards.</li>
<li>Adobe bought Typekit and PhoneGap! Here&#8217;s a <a href="http://news.cnet.com/8301-30685_3-20114857-264/adobe-buys-phonegap-typekit-for-better-web-tools/">CNET article about it</a>! Who knew CNET was still around?</li>
</ul>
<h2>Help</h2>
<ul>
<li>Luke C asked about non-action views. It was recommend that he check out <a href="http://cells.rubyforge.org/">Rails Cells</a> or a presenter or decorator pattern.</li>
</ul>
<h2>Events</h2>
<ul>
<li>Wednesday &#8212; 6:30pm Node JS, Evan is our liaison</li>
</ul>
<p>The post <a href="http://pivotallabs.com/standup-nyc-standup-10-4-2011-typekit-we-still-love-you/">[Standup][NYC] Standup 10/4/2011 &#8211; Typekit, we still love you.</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/standup-nyc-standup-10-4-2011-typekit-we-still-love-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Standup][NY] Thu 5/19/2011: Tomorrow is Friday; Saturday comes afterward</title>
		<link>http://pivotallabs.com/standup-ny-thu-5-19-2011-tomorrow-is-friday-saturday-comes-afterward/</link>
		<comments>http://pivotallabs.com/standup-ny-thu-5-19-2011-tomorrow-is-friday-saturday-comes-afterward/#comments</comments>
		<pubDate>Thu, 19 May 2011 14:39:00 +0000</pubDate>
		<dc:creator>Ian Zabel</dc:creator>
				<category><![CDATA[Labs]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/standup-ny-thu-5-19-2011-tomorrow-is-friday-saturday-comes-afterward/</guid>
		<description><![CDATA[<p><h2>Interesting Things</h2>

<ul>
<li><p>Schubert mentions that if <code>url_for</code> is blowing up on you, you've got fundamental problems. Think of this as the canary in the coal-mine. For example, if you're trying to use namespaces in your rails controllers and there's a pluralization problem, <code>url_for</code> will fail fast and hard.</p></li>
<li><p>Kris Hicks let us know about <a href="http://ftp.newartisans.com/pub/git.from.bottom.up.pdf">Git from the bottom up</a>, a free book that looks to be a great read for Git beginners and not-so-beginners alike.</p></li>
<li><p>Kris also mentioned <code>/proc/[pid]/status</code>, which is available on most Linux distros. It contains lots of useful information about any process, such as process state, memory sizes, etc. See <a href="http://www.kernel.org/doc/man-pages/online/pages/man5/proc.5.html">PROC&#40;5&#41;</a> for more.</p></li>
</ul>

<h2>Stretch!</h2>

<p>Worst turnout so far this week... three of us did some neck rolls. Let's step it up tomorrow!</p> <a href="http://pivotallabs.com/standup-ny-thu-5-19-2011-tomorrow-is-friday-saturday-comes-afterward/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/standup-ny-thu-5-19-2011-tomorrow-is-friday-saturday-comes-afterward/">[Standup][NY] Thu 5/19/2011: Tomorrow is Friday; Saturday comes afterward</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Interesting Things</h2>
<ul>
<li>
<p>Schubert mentions that if <code>url_for</code> is blowing up on you, you&#8217;ve got fundamental problems. Think of this as the canary in the coal-mine. For example, if you&#8217;re trying to use namespaces in your rails controllers and there&#8217;s a pluralization problem, <code>url_for</code> will fail fast and hard.</p>
</li>
<li>
<p>Kris Hicks let us know about <a href="http://ftp.newartisans.com/pub/git.from.bottom.up.pdf">Git from the bottom up</a>, a free book that looks to be a great read for Git beginners and not-so-beginners alike.</p>
</li>
<li>
<p>Kris also mentioned <code>/proc/[pid]/status</code>, which is available on most Linux distros. It contains lots of useful information about any process, such as process state, memory sizes, etc. See <a href="http://www.kernel.org/doc/man-pages/online/pages/man5/proc.5.html">PROC&#40;5&#41;</a> for more.</p>
</li>
</ul>
<h2>Stretch!</h2>
<p>Worst turnout so far this week&#8230; three of us did some neck rolls. Let&#8217;s step it up tomorrow!</p>
<p>The post <a href="http://pivotallabs.com/standup-ny-thu-5-19-2011-tomorrow-is-friday-saturday-comes-afterward/">[Standup][NY] Thu 5/19/2011: Tomorrow is Friday; Saturday comes afterward</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/standup-ny-thu-5-19-2011-tomorrow-is-friday-saturday-comes-afterward/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Standup][NY] Wed 5/18/2011: TeamCity + git + symlinks == fail</title>
		<link>http://pivotallabs.com/standup-ny-wed-5-18-2011-teamcity-symlinks-fail/</link>
		<comments>http://pivotallabs.com/standup-ny-wed-5-18-2011-teamcity-symlinks-fail/#comments</comments>
		<pubDate>Wed, 18 May 2011 13:21:00 +0000</pubDate>
		<dc:creator>Ian Zabel</dc:creator>
				<category><![CDATA[Labs]]></category>
		<category><![CDATA[ci]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[teamcity]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/standup-ny-wed-5-18-2011-teamcity-symlinks-fail/</guid>
		<description><![CDATA[<p><h2>Interesting Things</h2>

<p>A standup of pivots &#40;Sam Coward, Sean Moon, Peter Jaros, and Brent Wheeldon&#41; have recently run into <a href="http://youtrack.jetbrains.net/issue/TW-12648">a bug in TeamCity</a> that causes trouble with symlinks when using git.</p>

<p>If you commit symlinks into your repo, TeamCity will not properly transfer these to the build agents. They end up being copied over to the agents as plain text files.</p>

<p>The workaround for this issue is to use Agent-side Checkouts instead of Server-side Checkouts.</p> <a href="http://pivotallabs.com/standup-ny-wed-5-18-2011-teamcity-symlinks-fail/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/standup-ny-wed-5-18-2011-teamcity-symlinks-fail/">[Standup][NY] Wed 5/18/2011: TeamCity + git + symlinks == fail</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Interesting Things</h2>
<p>A standup of pivots &#40;Sam Coward, Sean Moon, Peter Jaros, and Brent Wheeldon&#41; have recently run into <a href="http://youtrack.jetbrains.net/issue/TW-12648">a bug in TeamCity</a> that causes trouble with symlinks when using git.</p>
<p>If you commit symlinks into your repo, TeamCity will not properly transfer these to the build agents. They end up being copied over to the agents as plain text files.</p>
<p>The workaround for this issue is to use Agent-side Checkouts instead of Server-side Checkouts.</p>
<p>The post <a href="http://pivotallabs.com/standup-ny-wed-5-18-2011-teamcity-symlinks-fail/">[Standup][NY] Wed 5/18/2011: TeamCity + git + symlinks == fail</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/standup-ny-wed-5-18-2011-teamcity-symlinks-fail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Standup][NY] Tue 5/17/2011: ActiveResource, you&#039;re still my friend.</title>
		<link>http://pivotallabs.com/standup-ny-tue-5-17-2011-activeresource-you-re-still-my-friend/</link>
		<comments>http://pivotallabs.com/standup-ny-tue-5-17-2011-activeresource-you-re-still-my-friend/#comments</comments>
		<pubDate>Tue, 17 May 2011 15:51:00 +0000</pubDate>
		<dc:creator>Ian Zabel</dc:creator>
				<category><![CDATA[Labs]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/standup-ny-tue-5-17-2011-activeresource-you-re-still-my-friend/</guid>
		<description><![CDATA[<p><h2>Interesting Things</h2>

<p>Mike Gehard mentioned that there is a movement to extract ActiveResource from Rails. For now, <a href="https://github.com/rails/rails/pull/572">it's been shot down</a>. But don't bet against the haters! Work is underway to <a href="https://github.com/radar/active_resource">rewrite it from scratch</a>. We'll probably hear more about this as RailsConf proceeds.</p>

<h2>Events</h2>

<ul>
<li><strong><a href="http://disrupt.techcrunch.com/hackathon/">TechCrunch Disrupt Hackathon</a></strong> is this weekend, May 21-22. Pizza, beer, and RedBull will be provided, and there will be much hacking.</li>
</ul>

<h2>Stretch!</h2>

<p>Todd taught us a new stretch that involved us standing with one leg crossed over our other knee while bending and touching the floor. I always wonder what we must look like to innocent bystanders.</p> <a href="http://pivotallabs.com/standup-ny-tue-5-17-2011-activeresource-you-re-still-my-friend/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/standup-ny-tue-5-17-2011-activeresource-you-re-still-my-friend/">[Standup][NY] Tue 5/17/2011: ActiveResource, you&#039;re still my friend.</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Interesting Things</h2>
<p>Mike Gehard mentioned that there is a movement to extract ActiveResource from Rails. For now, <a href="https://github.com/rails/rails/pull/572">it&#8217;s been shot down</a>. But don&#8217;t bet against the haters! Work is underway to <a href="https://github.com/radar/active_resource">rewrite it from scratch</a>. We&#8217;ll probably hear more about this as RailsConf proceeds.</p>
<h2>Events</h2>
<ul>
<li><strong><a href="http://disrupt.techcrunch.com/hackathon/">TechCrunch Disrupt Hackathon</a></strong> is this weekend, May 21-22. Pizza, beer, and RedBull will be provided, and there will be much hacking.</li>
</ul>
<h2>Stretch!</h2>
<p>Todd taught us a new stretch that involved us standing with one leg crossed over our other knee while bending and touching the floor. I always wonder what we must look like to innocent bystanders.</p>
<p>The post <a href="http://pivotallabs.com/standup-ny-tue-5-17-2011-activeresource-you-re-still-my-friend/">[Standup][NY] Tue 5/17/2011: ActiveResource, you&#039;re still my friend.</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/standup-ny-tue-5-17-2011-activeresource-you-re-still-my-friend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Standup][NY] Mon 5/16/2011: Best Stretch Leader EVAR</title>
		<link>http://pivotallabs.com/standup-ny-mon-5-16-2011-best-stretch-leader-evar/</link>
		<comments>http://pivotallabs.com/standup-ny-mon-5-16-2011-best-stretch-leader-evar/#comments</comments>
		<pubDate>Mon, 16 May 2011 13:46:00 +0000</pubDate>
		<dc:creator>Ian Zabel</dc:creator>
				<category><![CDATA[Labs]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/standup-ny-mon-5-16-2011-best-stretch-leader-evar/</guid>
		<description><![CDATA[<p><h2>Interesting Things</h2>

<ul>
<li><p><strong>Beware setting class variables in Rails Initializers</strong>: Schubert warned us that if you're setting vars on your Rails classes inside of config/initializers, you'll see weird things happen in development mode.</p>

<p>If you set a class var on a model in an initializer, the value will be available on your first request to the app. However, upon the second request, Rails will reload the class, but it will not reload the initializers. At this point, you'll have lost the value. </p></li>
<li><p><strong>Bash Brace Expansion</strong>: If you ever find yourself renaming a file in some faraway path, you think to yourself, "Wouldn't be nice if I didn't have to specify the entire path and filename twice?" Many shells provide you with a nice shortcut.</p>

<p>So, instead of:</p>

<pre><code>mv /a/b/c/d/foo.feature /a/b/c/d/bar.feature
</code></pre>

<p>You can use:</p>

<pre><code>mv /a/b/c/d/{foo,bar}.feature
</code></pre>

<p>It's pretty hot. Of course, there are many other applications of brace expansion. Check out the reference here:
<a href="http://www.gnu.org/software/bash/manual/bashref.html#Brace-Expansion">http://www.gnu.org/software/bash/manual/bashref.html#Brace-Expansion</a></p></li>
</ul>

<h2>Dangerous</h2>

<p>Schubert rewired a bunch of power cables in the server room. If you notice that something isn't right, you now know who to blame.</p>

<h2>Events</h2>

<ul>
<li><p>Peter mentions that <a href="http://barcampnyc.org/">BarCamp NYC</a> is this weekend, May 21, 22. It sounds like a lot of fun, and a great place to learn and meet interesting people. </p></li>
<li><p>Agile UX will be meeting here this Thursday. The topic will be <a href="http://www.meetup.com/Agile-Experience-Design/events/17281649/">Rails for UXers</a>.</p></li>
</ul>

<h2>Stretches</h2>

<p>Finally, Austin lead us in stretches this morning. It was quite exhilarating. Most of us ripped our pants and snapped our credit cards in half.</p> <a href="http://pivotallabs.com/standup-ny-mon-5-16-2011-best-stretch-leader-evar/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/standup-ny-mon-5-16-2011-best-stretch-leader-evar/">[Standup][NY] Mon 5/16/2011: Best Stretch Leader EVAR</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>Interesting Things</h2>
<ul>
<li>
<p><strong>Beware setting class variables in Rails Initializers</strong>: Schubert warned us that if you&#8217;re setting vars on your Rails classes inside of config/initializers, you&#8217;ll see weird things happen in development mode.</p>
<p>If you set a class var on a model in an initializer, the value will be available on your first request to the app. However, upon the second request, Rails will reload the class, but it will not reload the initializers. At this point, you&#8217;ll have lost the value. </p>
</li>
<li>
<p><strong>Bash Brace Expansion</strong>: If you ever find yourself renaming a file in some faraway path, you think to yourself, &#8220;Wouldn&#8217;t be nice if I didn&#8217;t have to specify the entire path and filename twice?&#8221; Many shells provide you with a nice shortcut.</p>
<p>So, instead of:</p>
<pre><code>mv /a/b/c/d/foo.feature /a/b/c/d/bar.feature
</code></pre>
<p>You can use:</p>
<pre><code>mv /a/b/c/d/{foo,bar}.feature
</code></pre>
<p>It&#8217;s pretty hot. Of course, there are many other applications of brace expansion. Check out the reference here:<br />
<a href="http://www.gnu.org/software/bash/manual/bashref.html#Brace-Expansion">http://www.gnu.org/software/bash/manual/bashref.html#Brace-Expansion</a></p>
</li>
</ul>
<h2>Dangerous</h2>
<p>Schubert rewired a bunch of power cables in the server room. If you notice that something isn&#8217;t right, you now know who to blame.</p>
<h2>Events</h2>
<ul>
<li>
<p>Peter mentions that <a href="http://barcampnyc.org/">BarCamp NYC</a> is this weekend, May 21, 22. It sounds like a lot of fun, and a great place to learn and meet interesting people. </p>
</li>
<li>
<p>Agile UX will be meeting here this Thursday. The topic will be <a href="http://www.meetup.com/Agile-Experience-Design/events/17281649/">Rails for UXers</a>.</p>
</li>
</ul>
<h2>Stretches</h2>
<p>Finally, Austin lead us in stretches this morning. It was quite exhilarating. Most of us ripped our pants and snapped our credit cards in half.</p>
<p>The post <a href="http://pivotallabs.com/standup-ny-mon-5-16-2011-best-stretch-leader-evar/">[Standup][NY] Mon 5/16/2011: Best Stretch Leader EVAR</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/standup-ny-mon-5-16-2011-best-stretch-leader-evar/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Radiating your TeamCity Builds</title>
		<link>http://pivotallabs.com/radiating-your-teamcity-builds/</link>
		<comments>http://pivotallabs.com/radiating-your-teamcity-builds/#comments</comments>
		<pubDate>Fri, 08 Apr 2011 19:30:00 +0000</pubDate>
		<dc:creator>Ian Zabel</dc:creator>
				<category><![CDATA[Labs]]></category>
		<category><![CDATA[ci]]></category>
		<category><![CDATA[cimonitor]]></category>
		<category><![CDATA[teamcity]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/radiating-your-teamcity-builds/</guid>
		<description><![CDATA[<p><p>If you're using a Continuous Integration tool, you should also be using an information radiator like Pivotal Labs' <a href="https://github.com/pivotal/cimonitor">CiMonitor</a>. CiMonitor is designed to be displayed on a screen that the entire team can see. If any of your builds go red, it shows up as a big red square and the team can quickly respond.</p>

<p>CiMonitor has long had support for CruiseControl.rb and Jenkins &#40;formerly Hudson&#41;. However, my CI tool of choice is <a href="http://www.jetbrains.com/teamcity/">TeamCity</a> from JetBrains. We've recently added native support in CiMonitor for displaying your TeamCity build status, and I want to show you how to get it going. It's as easy as configuring a new project and pointing to TeamCity's REST API. Let's walk through it step by step.</p> <a href="http://pivotallabs.com/radiating-your-teamcity-builds/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/radiating-your-teamcity-builds/">Radiating your TeamCity Builds</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>If you&#8217;re using a Continuous Integration tool, you should also be using an information radiator like Pivotal Labs&#8217; <a href="https://github.com/pivotal/cimonitor">CiMonitor</a>. CiMonitor is designed to be displayed on a screen that the entire team can see. If any of your builds go red, it shows up as a big red square and the team can quickly respond.</p>
<p>CiMonitor has long had support for CruiseControl.rb and Jenkins &#40;formerly Hudson&#41;. However, my CI tool of choice is <a href="http://www.jetbrains.com/teamcity/">TeamCity</a> from JetBrains. We&#8217;ve recently added native support in CiMonitor for displaying your TeamCity build status, and I want to show you how to get it going. It&#8217;s as easy as configuring a new project and pointing to TeamCity&#8217;s REST API. Let&#8217;s walk through it step by step.</p>
<h1>Install CiMonitor</h1>
<p>For native TeamCity support, you&#8217;ll need to be on the latest version of CiMonitor. Follow the installation instructions on the <a href="https://github.com/pivotal/cimonitor">CiMonitor GitHub</a> page. If you already have CiMonitor installed locally, you&#8217;ll have to update to the latest version.</p>
<h1>Create a New Project</h1>
<p>Login to CiMonitor, and create a new project.</p>
<p>Choose &#8220;Team City Rest Project&#8221; as the Project Type. </p>
<p>For the Feed URL, you&#8217;ll be hitting the REST API provided by TeamCity 5.0 and newer. The correct format for the URL is as follows, with the <strong>#</strong> representing the TeamCity project number:</p>
<pre><code>http://teamcity:8111/app/rest/builds?locator=running:all,buildType:&#40;id:bt#&#41;
</code></pre>
<p>You can find the correct project number by clicking onto the project in TeamCity and looking in the URL. Grab the number from the <strong>buildTypeId</strong> parameter.<br />
<img src="http://assets.pivotallabs.com/935/original/teamcity_project_id.png" alt="TeamCity Project ID" /></p>
<p>You will also need to fill in a TeamCity username and password that CiMonitor will use to access the REST API.</p>
<h2>Example Settings</h2>
<p><img src="http://assets.pivotallabs.com/930/original/new_project_cropped.png" alt="New Project" /></p>
<p>Once you&#8217;ve set up the new project, save it and you&#8217;re all set.</p>
<h1>Watch Your Builds Run!</h1>
<p>You can now easily see the status of your TeamCity builds.<br />
<img src="http://assets.pivotallabs.com/933/original/cimonitor_cropped.png" alt="TeamCity Builds" /></p>
<p>CiMonitor will also show that a build is currently in progress.<br />
<img src="http://assets.pivotallabs.com/932/original/cimonitor_running_cropped.png" alt="Running TeamCity Build" /></p>
<h1>Wrapping Up</h1>
<p>The integration is pretty solid, but there are one or two things that may seem to be odd behavior.</p>
<p>CiMonitor keeps track of build start times to control the size of the build dots for each project. The older the build, the smaller the dot. Currently, TeamCity&#8217;s REST API doesn&#8217;t publish the start time of a running build. Since this data is unavailable, CiMonitor just uses the current time when it fetches the feed. This is a minor issue, and JetBrains has already <a href="http://youtrack.jetbrains.net/issue/TW-14902?projectKey=TW&amp;query=rest">committed a fix</a> for their REST API which will be released in the next version of TeamCity. CiMonitor will use the new field if it&#8217;s present in the feed.</p>
<p>Also, TeamCity has a great feature that will tell you that a build is failing before it even finishes. This has an interesting effect on CiMonitor. If a TeamCity build is red, the next time it begins running, CiMonitor will show it as green until the first test fails. Once TeamCity picks up on a failure, CiMonitor will show the build as red. This can be a little confusing at first because it may look like a build-in-progress is green before it has finished.</p>
<p>Hopefully you find this new functionality useful!</p>
<p>The post <a href="http://pivotallabs.com/radiating-your-teamcity-builds/">Radiating your TeamCity Builds</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/radiating-your-teamcity-builds/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 1058/1143 objects using apc

 Served from: pivotallabs.com @ 2013-05-19 00:22:04 by W3 Total Cache -->