<?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>Software Configuration Management and Agile Software Development &#187; Web 2.0</title>
	<atom:link href="http://accurev.com/blog/tag/web-2-0/feed/" rel="self" type="application/rss+xml" />
	<link>http://accurev.com/blog</link>
	<description>SCM and Agile Software Development Blog</description>
	<lastBuildDate>Thu, 17 May 2012 15:00:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>When SCM meets Web 2.0 &#8211; Cool Widget at Orbitz</title>
		<link>http://accurev.com/blog/2008/04/17/when-scm-meets-web-20-cool-widget-at-orbitz/</link>
		<comments>http://accurev.com/blog/2008/04/17/when-scm-meets-web-20-cool-widget-at-orbitz/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 15:00:34 +0000</pubDate>
		<dc:creator>jtalbott</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[AccuRev 2-minute demo]]></category>
		<category><![CDATA[Orbitz]]></category>
		<category><![CDATA[RSS feeds]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM Resources]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[source code control]]></category>
		<category><![CDATA[version control]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://accurev.wordpress.com/?p=161</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/04/17/when-scm-meets-web-20-cool-widget-at-orbitz/' addthis:title='When SCM meets Web 2.0 &#8211; Cool Widget at Orbitz ' ><a href="//addthis.com/bookmark.php?v=250&#38;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">&#124;</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div>In my role as an AccuRev Systems Engineer, I have the welcome opportunity to visit many companies looking to find a better software configuration management (SCM) tool, as well as many companies who have already achieved that goal by choosing AccuRev. I run into various degrees of sophistication, from those that were previously versioning their [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/04/17/when-scm-meets-web-20-cool-widget-at-orbitz/' addthis:title='When SCM meets Web 2.0 &#8211; Cool Widget at Orbitz '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/04/17/when-scm-meets-web-20-cool-widget-at-orbitz/' addthis:title='When SCM meets Web 2.0 &#8211; Cool Widget at Orbitz ' ><a href="//addthis.com/bookmark.php?v=250&amp;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">|</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div><p>In my role as an AccuRev Systems Engineer, I have the welcome opportunity to visit many companies looking to find a better <a href="http://www.accurev.com/scm_comparisons.html" target="_blank">software configuration management</a> (SCM) tool, as well as many companies who have already achieved that goal by <a href="http://www.accurev.com/customers.html" target="_blank">choosing AccuRev</a>. I run into various degrees of sophistication, from those that were previously versioning their source by creating .bak directories to those that have embraced modern capabilities and are truly stretching their SCM environment beyond anything previously achievable.</p>
<p>One of the coolest examples I&#8217;ve ever seen of the latter is at <a href="http://www.orbitz.com/" target="_blank">Orbitz</a>. I&#8217;m sure you&#8217;re familiar with the travel giant, and they use AccuRev to manage the source code behind their heavily visited website. Their team is full of highly skilled and intelligent people and they are definitely one of the most advanced AccuRev shops I&#8217;ve had the pleasure of working with.</p>
<p>While visiting them recently, I was very impressed with a component of an intranet wiki they showed me. They were actually running <a href="http://en.wikipedia.org/wiki/RSS_(file_format)" target="_blank">RSS feeds</a> from <a href="http://www.accurev.com/demonstration.html" target="_blank">AccuRev streams</a>! There are a number of practical applications for this kind of functionality, but first and foremost it allows you to keep teams up to date on changes being made in the codebase. So you can subscribe to various collaboration streams in your project, as well as perhaps &#8220;watching&#8221; other streams that you might have interest in. This can also provide support for a continuous code review process. Leads on a project can easily review the code that is created during the project by watching the stream that the team is working in. By doing this review over the lifetime of the project, they can more easily give feedback earlier in the process. And since the feeds are simply aggregated as they arrive, they can decide when the best time to check out the changes are.</p>
<p>How is this done? Well, with AccuRev&#8217;s command-line it&#8217;s actually a lot easier than you might think. Their RSS feeds are generated from a Rails app they have written for internal use. Getting the initial feed is quite easy. The user’s feed reader hits a URL that includes the stream they are watching. This URL is parsed by Rails and sent to a Rails controller that queries for the last 20 transactions in that stream:</p>
<p><span style="color:#ff0000"><br />
[snip]<br />
Parameters: {&#8220;format&#8221;=&gt;&#8221;atom&#8221;, &#8220;action&#8221;=&gt;&#8221;hist&#8221;, &#8220;id&#8221;=&gt;&#8221;orbitz-api-foo-ci&#8221;, &#8220;controller&#8221;=&gt;&#8221;accurev&#8221;}<br />
Accurev command (1.226238): accurev &#8216;show&#8217; &#8216;streams&#8217; &#8216;-fix&#8217; &#8216;-s&#8217; &#8216;orbitz-api-foo-ci&#8217; &#8216;-fx&#8217;<br />
Accurev command (0.592468): accurev &#8216;hist&#8217; &#8216;-s&#8217; &#8216;orbitz-api-foo-ci&#8217; &#8216;-t&#8217; &#8216;now.20&#8242; &#8216;-fx&#8217;<br />
Accurev command (1.195955): accurev &#8216;show&#8217; &#8216;streams&#8217; &#8216;-fix&#8217; &#8216;-s&#8217; &#8216;orbitz-api-foo-ci&#8217; &#8216;-fx&#8217;<br />
[snip]<br />
</span><br />
Once that information is loaded, they render an Atom feed to summarize the transaction information. Items like transaction type, user, comments, and number of files are displayed. Additionally, building a page that summarizes the transaction lets them show file status like modified, added, or removed. A tiny bit more complicated, but again can be easily accomplished with AccuRev CLI. Here&#8217;s a snippet of that processing:</p>
<p><span style="color:#ff0000"><br />
[snip]<br />
Parameters: {&#8220;stream&#8221;=&gt;&#8221;orbitz-api-foo-ci&#8221;, &#8220;action&#8221;=&gt;&#8221;transaction&#8221;, &#8220;id&#8221;=&gt;&#8221;4587&#8243;, &#8220;controller&#8221;=&gt;&#8221;accurev&#8221;}<br />
Accurev command (0.937849): accurev &#8216;show&#8217; &#8216;streams&#8217; &#8216;-fix&#8217; &#8216;-s&#8217; &#8216;orbitz-api-foo-ci&#8217; &#8216;-fx&#8217;<br />
Accurev command (0.356075): accurev &#8216;hist&#8217; &#8216;-s&#8217; &#8216;orbitz-api-foo-ci&#8217; &#8216;-t&#8217; &#8217;4587.1&#8242; &#8216;-fx&#8217;<br />
Accurev command (0.603777): accurev &#8216;hist&#8217; &#8216;-fx&#8217; &#8216;-p&#8217; &#8216;orbitz-api-foo&#8217; &#8216;-k&#8217; &#8216;defunct&#8217; &#8216;/./build.xml&#8217; &#8216;/./foo.txt&#8217; &#8216;-fx&#8217;<br />
Accurev command (0.333936): accurev &#8216;anc&#8217; &#8216;-p&#8217; &#8216;orbitz-api-foo&#8217; &#8216;-v&#8217; &#8216;orbitz-api-foo-ci/3&#8242; &#8216;-1&#8242; &#8216;/./foo.txt&#8217; &#8216;-fx&#8217;<br />
Accurev command (0.357128): accurev &#8216;anc&#8217; &#8216;-p&#8217; &#8216;orbitz-api-foo&#8217; &#8216;-v&#8217; &#8216;orbitz-api-foo-ci/44&#8242; &#8216;-1&#8242; &#8216;/./build.xml&#8217; &#8216;-fx&#8217;<br />
[snip]<br />
</span></p>
<p>Finally, that summary page provides the ability to view the file contents and run diffs. Here&#8217;s a sampling of how the unified diff gets generated:</p>
<p><span style="color:#ff0000"><br />
[snip]<br />
Parameters: {&#8220;eid&#8221;=&gt;&#8221;56&#8243;, &#8220;action&#8221;=&gt;&#8221;view_diff&#8221;, &#8220;previous_version&#8221;=&gt;&#8221;721/45&#8243;, &#8220;controller&#8221;=&gt;&#8221;accurev&#8221;, &#8220;virtual_version&#8221;=&gt;&#8221;106/44&#8243;, &#8220;path&#8221;=&gt;&#8221;/./build.xml&#8221;, &#8220;depot&#8221;=&gt;&#8221;orbitz-api-foo&#8221;}<br />
Accurev command (0.309664): accurev &#8216;cat&#8217; &#8216;-p&#8217; &#8216;orbitz-api-foo&#8217; &#8216;-e&#8217; &#8217;56&#8242; &#8216;-v&#8217; &#8217;106/44&#8242;<br />
Accurev command (0.637650): accurev &#8216;cat&#8217; &#8216;-p&#8217; &#8216;orbitz-api-foo&#8217; &#8216;-e&#8217; &#8217;56&#8242; &#8216;-v&#8217; &#8217;721/45&#8242;<br />
[snip]<br />
</span></p>
<p>Orbitz has built in a number of other optimizations and naturally this post only reveals a glance into what they&#8217;ve accomplished. But to give you an idea of the kind of volume this can support, there are anywhere from 9,000 &#8211; 10,000 requests a day for the RSS URL during the work week! Their users have given very positive feedback regarding the usefulness of this page and more enhancements are in the works, like links in from issue tracking systems.</p>
<p>So the next morning you come in to work, get your coffee, and fire up your Google Reader to see what&#8217;s new in the world you care about, and think about how cool it would be to automatically be able to check on all the latest code changes from your outsourced team overseas&#8230;</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/04/17/when-scm-meets-web-20-cool-widget-at-orbitz/' addthis:title='When SCM meets Web 2.0 &#8211; Cool Widget at Orbitz '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://accurev.com/blog/2008/04/17/when-scm-meets-web-20-cool-widget-at-orbitz/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

