<?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>Code Hangover &#187; Software Tools</title>
	<atom:link href="http://blog.codehangover.com/category/software-tools/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.codehangover.com</link>
	<description>Go ahead, have another</description>
	<lastBuildDate>Tue, 22 Mar 2011 15:49:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Track every Build Number with Maven</title>
		<link>http://blog.codehangover.com/track-every-build-number-with-maven/</link>
		<comments>http://blog.codehangover.com/track-every-build-number-with-maven/#comments</comments>
		<pubDate>Sat, 09 Oct 2010 16:42:54 +0000</pubDate>
		<dc:creator>MikeNereson</dc:creator>
				<category><![CDATA[Software Tools]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[build number]]></category>

		<guid isPermaLink="false">http://blog.codehangover.com/?p=584</guid>
		<description><![CDATA[Need to differentiate between build numbers? Let Maven do the work for you.]]></description>
			<content:encoded><![CDATA[<script type="text/javascript">dzone_url = "http://blog.codehangover.com/track-every-build-number-with-maven/";</script><h4>Problem</h4>
<p>You need to differentiate between build numbers. For example, you&#8217;ve just redeployed your application and need to ensure that the new version is what you are viewing. Or, you need to keep track of how many times you build. There could be many reasons why you want to know the build number that you are on. I use it for reporting bugs against specific builds.</p>
<h4>Solution</h4>
<p><code>maven-buildnumber-plugin</code>. This Maven2 plugin will generate a unique build number each time your build your project. You can even configure which maven phase triggers the increment of the number. This plugin can also fetch data from SVN to ensure that a team of developers all get unique build numbers.</p>
<p>As a bonus, it generates a buildNumber.properties file so that you can read in this build number from anywhere in your project. Here is how I use the plugin.</p>
<p>First, update your <code>pom.xml</code>. You need to setup the build trigger.</p>
<pre class="brush: xml;">

&lt;build&gt;
  &lt;plugins&gt;
    &lt;plugin&gt;
      &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
      &lt;artifactId&gt;buildnumber-maven-plugin&lt;/artifactId&gt;
      &lt;version&gt;1.0-beta-3&lt;/version&gt;
      &lt;executions&gt;
        &lt;execution&gt;
          &lt;phase&gt;validate&lt;/phase&gt;
          &lt;goals&gt;
            &lt;goal&gt;create&lt;/goal&gt;
          &lt;/goals&gt;
        &lt;/execution&gt;
      &lt;/executions&gt;
      &lt;configuration&gt;
        &lt;doCheck&gt;true&lt;/doCheck&gt;
        &lt;doUpdate&gt;false&lt;/doUpdate&gt;
        &lt;format&gt;${version}.{0,number}&lt;/format&gt;
        &lt;items&gt;
          &lt;item&gt;buildNumber0&lt;/item&gt;
        &lt;/items&gt;
      &lt;/configuration&gt;
    &lt;/plugin&gt;
  &lt;/plugins&gt;
&lt;/build&gt;
</pre>
<p>Now, you&#8217;ll need the build number and append it to your artifact&#8217;s final name. Add this to your <code>pom.xml</code></p>
<pre class="brush: xml;">
&lt;build&gt;
  &lt;finalName&gt;
    ${project.artifactId}-${project.version}.{buildNumber}
  &lt;/finalName&gt;
&lt;/build&gt;
</pre>
<p>Now you&#8217;re package goal will output a file named</p>
<p><code>projectname-1.0.1.war</code></p>
<p>This is a great start and now you can differentiate each and every build. However, I need to take this a step further.</p>
<p>I need to see the version on my application&#8217;s index page. To do this, I use an ant filter to write the version and timestamp to a version.html file, and then copy it to my project&#8217; web app directory.  Add this to your <code>pom.xm</code>.</p>
<pre class="brush: xml;">
&lt;build&gt;
  &lt;plugins&gt;
    &lt;plugin&gt;
      &lt;artifactId&gt;maven-antrun-plugin&lt;/artifactId&gt;
      &lt;executions&gt;
        &lt;execution&gt;
          &lt;phase&gt;compile&lt;/phase&gt;
          &lt;configuration&gt;
            &lt;tasks&gt;
              &lt;!-- versioning --&gt;
              &lt;echo message=&quot;[build version]&quot;/&gt;
              &lt;delete file=&quot;target/projectname/version.html&quot;/&gt;
              &lt;tstamp&gt;
                &lt;format property=&quot;rightNow&quot; pattern=&quot;d MMM yyyy&quot; locale=&quot;en&quot;/&gt;
              &lt;/tstamp&gt;
              &lt;copy todir=&quot;target/projectname&quot;&gt;
                &lt;fileset dir=&quot;src/main/webapp&quot;&gt;
                  &lt;include name=&quot;version.html&quot;/&gt;
                &lt;/fileset&gt;
                &lt;filterset&gt;
                  &lt;filter token=&quot;VERSION&quot; value=&quot;${buildNumber}&quot;/&gt;
                  &lt;filter token=&quot;BUILTON&quot; value=&quot;${rightNow}&quot;/&gt;
                &lt;/filterset&gt;
              &lt;/copy&gt;
              &lt;echo message=&quot; version is ${buildNumber}&quot;/&gt;
            &lt;/tasks&gt;
          &lt;/configuration&gt;
          &lt;goals&gt;
            &lt;goal&gt;run&lt;/goal&gt;
          &lt;/goals&gt;
        &lt;/execution&gt;
      &lt;/executions&gt;
    &lt;/plugin&gt;
  &lt;/plugins&gt;
&lt;/build&gt;
</pre>
<p><code>Version.html</code> is simple.</p>
<pre class="brush: xml;">
&lt;p class=&quot;version&quot;&gt;Version: @VERSION@&lt;/p&gt;
&lt;p class=&quot;built&quot;&gt;Built on: @BUILTON@&lt;/p&gt;
</pre>
<p>Finally, in my index page&#8230;</p>
<pre class="brush: xml;">
&lt;jsp:include page=&quot;/version.html&quot;/&gt;
</pre>
<p>Almost everything you want to know about this plugin can be found on the plugin&#8217;s site: <a href="http://mojo.codehaus.org/buildnumber-maven-plugin/">http://mojo.codehaus.org/buildnumber-maven-plugin/</a></p>
<h4>Alternatives</h4>
<p>As an alternative to writing and importing <code>version.html</code>, you can read <code>buildNumber.properties</code> in an MVC controller and put the version in your page model. This is what I for my login pages. I use a java class to read the build number, format it, and cache it. I start the first build number at <code>00100</code>, then format that to <code>0.1.0</code>. So the next build is <code>00101</code> which gets displayed as <code>0.1.1</code>.</p>
<h4>Update:Tips</h4>
<p>Here is a usage tip. You can move the create goal into a build profile so that the build number only increments in specific situations. I use a profile for my Continuous Integration builds so that our version increments only when Hudson builds our apps. This also makes it possible to synchronize our Hudson build numbers to our module versions.</p>
<h4>Feedback</h4>
<p>What do you use to track build numbers? How do your format it?<br />
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://blog.codehangover.com/new-and-unknown-java-libraries/" title="New and Unknown Java Libraries">New and Unknown Java Libraries</a></li>
<li><a href="http://blog.codehangover.com/propertyplaceholderconfigurer-with-default-values/" title="PropertyPlaceholderConfigurer with Default Values">PropertyPlaceholderConfigurer with Default Values</a></li>
</ul>
<script>var dzone_style="2";</script><script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.codehangover.com%2Ftrack-every-build-number-with-maven%2F&amp;linkname=Track%20every%20Build%20Number%20with%20Maven"><img src="http://blog.codehangover.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blog.codehangover.com/track-every-build-number-with-maven/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Software Review: ForeUI Prototyping Tool</title>
		<link>http://blog.codehangover.com/foreui-review/</link>
		<comments>http://blog.codehangover.com/foreui-review/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 18:55:53 +0000</pubDate>
		<dc:creator>AdamHorky</dc:creator>
				<category><![CDATA[Software Tools]]></category>
		<category><![CDATA[balsamiq]]></category>
		<category><![CDATA[foreui]]></category>
		<category><![CDATA[mockup]]></category>
		<category><![CDATA[prototype]]></category>

		<guid isPermaLink="false">http://blog.codehangover.com/?p=502</guid>
		<description><![CDATA[I was looking for a good prototyping tool the other day and I came across ForeUI. This little gem packs quite a punch. Whether you want to create mockups of a desktop application or a web application, ForeUI has everything you need. A six minute demo of the application can be found here. ForeUI is available for Windows, Mac, Linux, or Solaris.]]></description>
			<content:encoded><![CDATA[<script type="text/javascript">dzone_url = "http://blog.codehangover.com/foreui-review/";</script><p>I was looking for a good prototyping tool the other day and I came across <a id="hh:e" title="ForeUI" href="http://www.foreui.com/">ForeUI</a>. This little gem packs quite a punch. Whether you want to create mockups of a desktop application or a web application, ForeUI has everything you need. A <a title="demo" href="http://www.foreui.com/demos/demo11/" target="_blank">six minute demo</a> of the application is available<a id="qpdh" title="here" href="http://www.foreui.com/demos/demo11/"></a>. ForeUI is available for Windows, Mac, Linux, or Solaris.</p>
<p>The canvas where all the work is done is called a plot. Each plot can have 1 or more pages of mockups, similar to Microsoft Excel workbooks. To assist with prototyping of cross-platform applications, the mockups can be drawn in four different modes &#8211; Hand Drawing, Wire Frame, Windows XP, and Mac OS X. The canvas width and height can be adjusted and can even be made to look like wrinkled paper for that real hand-drawn prototype look.</p>
<p>Just about anything your imagination can come up with, can be mocked up. The palette comes with over 40 widgets and whatnots that can be used to mockup anything from a simple windows application to a complicated web site. Frequently used mockups such as dialogs and navigation panes can be saved as custom widgets in the palette. Go check out some <a title="tour" href="http://www.foreui.com/tour.htm" target="_blank">screenshots and samples</a> of the software in action<a id="zg:7" title="here" href="http://www.foreui.com/screenshot/screenshot4.png"></a>. Anything placed on the canvas can have an action associated with it. This allows for the creation of an interactive mockup that can be used to simulate what the application will do in a real environment.</p>
<p>Plots can be exported as an image, PDF, or DHTML. A plot can be ran as a slideshow. In slideshow mode, the mockup can be marked up with a red pen. This mode is good for demonstrations and team discussions. Plots can also be run in a simulation mode. In simulation mode, a new window is opened in the default web browser. If any actions were setup for the mockup, such as clicking buttons and activating menus, those things can be interacted with in the browser window.</p>
<p>At $79 for a single user license, ForeUI is a great deal. There are also pricing plans for multiple users. A <a title="trial" href="http://www.foreui.com/download.htm" target="_blank">7 day trial</a> can be downloaded for evaluation.<br />
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://blog.codehangover.com/php-framework-comparison/" title="PHP Framework Comparison">PHP Framework Comparison</a></li>
<li><a href="http://blog.codehangover.com/read-html-with-java-then-7-fun-things-to-do-to-it/" title="Read HTML with Java &#8211; Then 7 Fun Things to do to It">Read HTML with Java &#8211; Then 7 Fun Things to do to It</a></li>
<li><a href="http://blog.codehangover.com/list-of-version-control-web-sites/" title="List of Version Control Web Sites">List of Version Control Web Sites</a></li>
</ul>
<script>var dzone_style="2";</script><script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.codehangover.com%2Fforeui-review%2F&amp;linkname=Software%20Review%3A%20ForeUI%20Prototyping%20Tool"><img src="http://blog.codehangover.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blog.codehangover.com/foreui-review/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>New and Unknown Java Libraries</title>
		<link>http://blog.codehangover.com/new-and-unknown-java-libraries/</link>
		<comments>http://blog.codehangover.com/new-and-unknown-java-libraries/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 14:38:31 +0000</pubDate>
		<dc:creator>MikeNereson</dc:creator>
				<category><![CDATA[Software Tools]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://blog.codehangover.com/?p=193</guid>
		<description><![CDATA[I like finding new useful java libraries. I usually find them from posts like this one. Other times I find them because I have a problem needing a solution. Here are some of my favorite unknown java libraries that I have found over the past year.]]></description>
			<content:encoded><![CDATA[<script type="text/javascript">dzone_url = "http://blog.codehangover.com/new-and-unknown-java-libraries/";</script><p>I like finding new useful java libraries. I usually find them from posts like this one. Other times I find them because I have a problem needing a solution. Here are some of my favorite unknown java libraries that I have found over the past year. Today I use every one of these in my projects. Interestingly, 4 of 6 are hosted on <a href="http://code.google.com" target="_blank">http://code.google.com</a>.</p>
<h4><a href="http://code.google.com/p/google-api-translate-java/" target="_blank">Google-API-Translate-Java</a></h4>
<p>Provides a simple, unofficial, Java client API for using Google Translate.  I use this to translate caption files for videos into several other languages. It has lots of options and has never failed me.</p>
<h4><a href="http://code.google.com/p/xmltool/" target="_blank">XmlTool</a></h4>
<p>XMLTool is a very simple Java library to be able to do all sorts of common operations with an XML document with a very easy to use class using the Fluent Interface pattern to facilitate XML manipulations.</p>
<h4><a href="http://xstream.codehaus.org/" target="_blank">XStream</a></h4>
<p>XStream is a simple library to serialize objects to XML and back again. Also useful for creating JSON responses.</p>
<h4><a href="http://wiki.architecturerules.org/index.php?title=Main_Page" target="_blank">Architecture Rules</a></h4>
<p>Architecture Rules leverages an xml configuration file and optional programmatic configuration to assert your code&#8217;s architecture via unit tests or ant tasks. This test is able to assert that specific packages do not depend on others and is able to check for and report on cyclic dependencies among your project&#8217;s packages and classes. Get cyclic dependency detection with the Maven 2 plugin and zero configuration.</p>
<h4><a href="http://nekohtml.sourceforge.net/" target="_blank">CyberNeko HTML Parser</a></h4>
<p>NekoHTML is a simple HTML scanner and tag balancer that enables application programmers to parse HTML documents and access the information using standard XML interfaces. This can be used to extract the textual content from an HTML fragment.</p>
<h4><a href="http://code.google.com/p/charts4j/" target="_blank">Charts4j</a></h4>
<p><em>charts4j is a free, lightweight charts &amp; graphs Java API</em>. It enables developers to programmatically create the charts available in the Google Chart API through a straightforward and intuitive Java API.</p>
<h4>What do you use?</h4>
<p>Do you have any new and unknown java tools that you use that you would recommend we checkout?<br />
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://blog.codehangover.com/track-every-build-number-with-maven/" title="Track every Build Number with Maven">Track every Build Number with Maven</a></li>
<li><a href="http://blog.codehangover.com/propertyplaceholderconfigurer-with-default-values/" title="PropertyPlaceholderConfigurer with Default Values">PropertyPlaceholderConfigurer with Default Values</a></li>
<li><a href="http://blog.codehangover.com/greatest-barriers-to-open-source-adoption/" title="Greatest Barriers to Open-Source Adoption">Greatest Barriers to Open-Source Adoption</a></li>
</ul>
<script>var dzone_style="2";</script><script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.codehangover.com%2Fnew-and-unknown-java-libraries%2F&amp;linkname=New%20and%20Unknown%20Java%20Libraries"><img src="http://blog.codehangover.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blog.codehangover.com/new-and-unknown-java-libraries/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>List of Version Control Web Sites</title>
		<link>http://blog.codehangover.com/list-of-version-control-web-sites/</link>
		<comments>http://blog.codehangover.com/list-of-version-control-web-sites/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 14:07:30 +0000</pubDate>
		<dc:creator>Welzie</dc:creator>
				<category><![CDATA[Software Tools]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[mercurial]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[vcs]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://blog.codehangover.com/?p=75</guid>
		<description><![CDATA[I recently needed to find a web site that offered version control services.&#160; I was having server issues and needed to find a reliable place to keep my code.&#160; Below is a list of sites that I found and some info about each one.]]></description>
			<content:encoded><![CDATA[<script type="text/javascript">dzone_url = "http://blog.codehangover.com/list-of-version-control-web-sites/";</script><p>I recently needed to find a web site that offered version control services.  I was having server issues and needed to find a reliable place to keep my code.  Below is a list of sites that I found and some info about each one.  Please add comments if you like or dislike any of these.<br/><br />
Note: The &#8220;cost&#8221; list below only shows the basic packages.  Visit the sites for other plan details.</p>
<p>FREE &#8211; Version Control Hosts/Hosting</p>
<table border="0">
<thead>
<tr>
<th></th>
<th> Cost<br />
Per<br />
Month</th>
<th> Disk<br />
Space</th>
<th> Number<br />
of<br />
Repos</th>
<th> Number<br />
of<br />
users</th>
<th> Version<br />
Control<br />
Options</th>
<th>
SSL
</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="http://beanstalkapp.com/pricing">beanstalkapp.com</a></td>
<td>free</td>
<td>100mb</td>
<td>1</td>
<td>3</td>
<td>SVN</td>
<td>no</td>
</tr>
<tr>
<td><a href="http://unfuddle.com/about/tour/plans">unfuddle.com</a></td>
<td>free</td>
<td>200mb</td>
<td>unlimited</td>
<td>2</td>
<td>git, SVN</td>
<td></td>
</tr>
<tr>
<td><a href="https://www.projectlocker.com/scenario/startup">projectlocker.com</a></td>
<td>free</td>
<td>500mb</td>
<td>unlimited</td>
<td>5</td>
<td>git, SVN</td>
<td>no</td>
</tr>
<tr>
<td><a href="http://bitbucket.org/plans/">bitbucket.org</a></td>
<td>free</td>
<td>500mb</td>
<td>1</td>
<td>?</td>
<td>mercurial</td>
<td>yes</td>
</tr>
<tr>
<td><a href="http://www.xp-dev.com/">xp-dev.com</a></td>
<td>free</td>
<td>500mb</td>
<td>unlimited</td>
<td>unlimited</td>
<td>SVN</td>
<td>no</td>
</tr>
</tbody>
</table>
<p>Cost &#8211; Version Control Hosts/Hosting (Basic Packages)</p>
<table border="0">
<thead>
<tr>
<th></th>
<th> Cost<br />
Per<br />
Month</th>
<th> Disk<br />
Space</th>
<th> Number<br />
of<br />
Repos</th>
<th> Number<br />
of<br />
users</th>
<th> Version<br />
Control<br />
Options</th>
<th>
Other<br />
Tools<br />
Available
</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="http://www.assembla.com/">assembla.com</a></td>
<td>$3 per project<br />
+ $3 per gig</td>
<td>pay per gb</td>
<td>1</td>
<td>pay per user</td>
<td>SVN, git, mercurial</td>
<td>?</td>
</tr>
<tr>
<td><a href="http://www.svnrepository.com/">svnrepository.com</a></td>
<td>$3.95</td>
<td>500mb</td>
<td>1</td>
<td>unlimited</td>
<td>SVN, git, mercurial</td>
<td>trac, redmine</td>
</tr>
<tr>
<td><a href="http://www.hosted-projects.com/">hosted-projects.com</a></td>
<td>$7</td>
<td>100mb</td>
<td>unlimited</td>
<td>unlimited</td>
<td>SVN</td>
<td>trac, WebDAV</td>
</tr>
<tr>
<td><a href="http://wush.net/corpsite/subversion">wush.net</a></td>
<td>$6.5</td>
<td>1gb</td>
<td>1</td>
<td>unlimited</td>
<td>SVN</td>
<td>Trac, Bugzilla, FogBugz, WebDAV, WebSVN</td>
</tr>
<tr>
<td><a href="http://cvsdude.com/products/product-edition-comparison.html?type=svn">cvsdude.com</a></td>
<td>$6</td>
<td>250mb</td>
<td>2</td>
<td>5</td>
<td>SVN</td>
<td>?</td>
</tr>
<tr>
<td><a href="http://beanstalkapp.com/pricing">beanstalkapp.com</a></td>
<td>$15</td>
<td>3gb</td>
<td>10</td>
<td>5</td>
<td>SVN</td>
<td>basecmap, campfire, fogbuz</td>
</tr>
<tr>
<td><a href="http://www.svnsite.com/plans">svnsite.com</a></td>
<td>$5</td>
<td>400mb</td>
<td>1</td>
<td>4</td>
<td>SVN</td>
<td></td>
</tr>
<tr>
<td><a href="http://unfuddle.com/about/tour/plans">unfuddle.com</a></td>
<td>$9</td>
<td>512mb</td>
<td>unlimited</td>
<td>10</td>
<td>git, SVN</td>
<td></td>
</tr>
<tr>
<td><a href="http://www.codespaces.com/shop">codespaces.com</a></td>
<td>$3</td>
<td>500mb</td>
<td>unlimited</td>
<td>2</td>
<td>SVN</td>
<td>?</td>
</tr>
<tr>
<td><a href="https://www.projectlocker.com/scenario/startup">projectlocker.com</a></td>
<td>$2.08</td>
<td>2.5gb</td>
<td>unlimited</td>
<td>2</td>
<td>git, SVN</td>
<td>Trac</td>
</tr>
<tr>
<td><a href="http://github.com/plans">GitHub.com</a></td>
<td>$7</td>
<td>600mb</td>
<td>5</td>
<td>1</td>
<td>git</td>
<td>?</td>
</tr>
<tr>
<td><a href="http://bitbucket.org/plans/">bitbucket.org</a></td>
<td>$5</td>
<td>500mb</td>
<td>5</td>
<td>1</td>
<td>mercurial</td>
<td>?</td>
</tr>
<tr>
<td><a href="http://www.xp-dev.com/">xp-dev.com</a></td>
<td>$3.3 ($40 a year)</td>
<td>2000mb</td>
<td>unlimited</td>
<td>unlimited</td>
<td>SVN</td>
<td>?</td>
</tr>
</tbody>
</table>
<div style="width: 200px; float: left; height: 275px; vertical-align: top; font-size: 8pt;">
<a href="http://www.amazon.com/gp/product/0596520123?ie=UTF8&#038;tag=1410softwarec-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0596520123"><br />
<img style="width: 70px; height: 90px; border: none; padding: 0px;" src="http://img16.imageshack.us/img16/9031/gitq.jpg"/><br/>Version Control with Git (Amazon)<br />
</a><br />
<a href="http://www.amazon.com/gp/product/0596520123?ie=UTF8&#038;tag=1410softwarec-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0596520123"><img style="width: 70px; height: 90px; border: none; padding: 0px;" src="http://img32.imageshack.us/img32/6771/progit.jpg"/><br/>Pro Git (Amazon)</a><br/>
</div>
<div style="width: 200px; float: right;  height: 275px; vertical-align: top; font-size: 8pt; padding-top: 10px;">
<a href="http://www.amazon.com/gp/product/1590597532?ie=UTF8&#038;tag=1410softwarec-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1590597532"><img style="width: 70px; height: 90px; border: none; padding: 0px;" src="http://img199.imageshack.us/img199/8935/practicalsvn.jpg"/><br/>Practical Subversion, 2nd Edition (Amazon)</a><br />
<br/><br />
<a href="http://www.amazon.com/gp/product/0596800673?ie=UTF8&#038;tag=1410softwarec-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0596800673"><img style="width: 70px; height: 90px; border: none; padding: 0px;" src="http://img199.imageshack.us/img199/845/mercurial.jpg"/><br/>Mercurial: The Definitive Guide (Animal Guide)</a>
</div>
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://blog.codehangover.com/php-framework-comparison/" title="PHP Framework Comparison">PHP Framework Comparison</a></li>
<li><a href="http://blog.codehangover.com/read-html-with-java-then-7-fun-things-to-do-to-it/" title="Read HTML with Java &#8211; Then 7 Fun Things to do to It">Read HTML with Java &#8211; Then 7 Fun Things to do to It</a></li>
<li><a href="http://blog.codehangover.com/list-of-version-control-web-sites/" title="List of Version Control Web Sites">List of Version Control Web Sites</a></li>
</ul>
<script>var dzone_style="2";</script><script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.codehangover.com%2Flist-of-version-control-web-sites%2F&amp;linkname=List%20of%20Version%20Control%20Web%20Sites"><img src="http://blog.codehangover.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blog.codehangover.com/list-of-version-control-web-sites/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

