<?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>Nick Carroll</title>
	<atom:link href="http://ca.rroll.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://ca.rroll.net</link>
	<description>Metabolising caffeine into code</description>
	<lastBuildDate>Wed, 28 Apr 2010 05:54:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Gradle Android Plugin</title>
		<link>http://ca.rroll.net/2010/04/26/gradle-android-plugin/</link>
		<comments>http://ca.rroll.net/2010/04/26/gradle-android-plugin/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 07:30:41 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[gradle]]></category>
		<category><![CDATA[groovy]]></category>

		<guid isPermaLink="false">http://ca.rroll.net/?p=348</guid>
		<description><![CDATA[I have recently joined a newly formed team developing Android applications at a large telco, and I am pleased to announce that we are using Gradle for our builds. We are using Gradle with the Android plugin, and instantly we managed to build a simple application, run tests, and have it installed on a device. [...]]]></description>
			<content:encoded><![CDATA[<p>I have recently joined a newly formed team developing Android applications at a large telco, and I am pleased to announce that we are using <a href="http://www.gradle.org/">Gradle</a> for our builds.  We are using Gradle with the <a href="http://github.com/jvoegele/gradle-android-plugin">Android plugin</a>, and instantly we managed to build a simple application, run tests, and have it installed on a device.  Our build script simply looks like the following, which is all that is necessary to use the Android plugin.</p>
<pre  name="code" class="java">
buildscript {
  repositories {
    mavenRepo(urls: 'http://jvoegele.com/maven2/')
  }
  dependencies {
    classpath 'com.jvoegele.gradle.plugins:android-plugin:0.8'
  }
}
usePlugin com.jvoegele.gradle.plugins.android.AndroidPlugin
</pre>
<p>Of course this is a rather simplistic script, but it does everything I need it to do right out of the box.  The Android plugin provides a number of tasks that allow you to build, test, package and sign your application.  You can even install the packaged application on a device or emulator by running <strong>gradle androidInstall</strong>.  Make sure to set the property &#8220;adb.device.arg&#8221; to &#8220;-e&#8221; for a running emulator or &#8220;-d&#8221; for a connected device.</p>
<p>There is also support in <a href="http://hudson-ci.org/">Hudson</a> to trigger a Gradle script.  Hudson has a Gradle plugin that can be installed from the Admin console, and allows you to directly trigger a Gradle script in your project.  Otherwise you can create a simple shell script to call the Gradle tool from the command line.</p>
<p>It is also worth noting that both IntelliJ and Eclipse provide support for Gradle and the Groovy syntax.  That is if you don&#8217;t like using the command line to trigger your builds.</p>
<p>Gradle has allowed us to spend less time setting up our build and continuous integration environment, and more time on actual Android development.  Our team has benefited greatly from this boost in productivity.</p>
]]></content:encoded>
			<wfw:commentRss>http://ca.rroll.net/2010/04/26/gradle-android-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Illuminate</title>
		<link>http://ca.rroll.net/2010/03/25/illuminate/</link>
		<comments>http://ca.rroll.net/2010/03/25/illuminate/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 05:41:13 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[illuminate]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://ca.rroll.net/?p=344</guid>
		<description><![CDATA[My latest iPhone app called Illuminate is now available at Apple&#8217;s App store: http://bit.ly/bByrgy. Illuminate is a free application that turns your iPhone&#8217;s screen into a light source. I generally use it when trying to read a menu at a dimly lit restaurant. Hopefully you will find it useful too!]]></description>
			<content:encoded><![CDATA[<p>My latest iPhone app called Illuminate is now available at Apple&#8217;s App store: http://bit.ly/bByrgy.</p>
<p>Illuminate is a free application that turns your iPhone&#8217;s screen into a light source.  I generally use it when trying to read a menu at a dimly lit restaurant.  Hopefully you will find it useful too!</p>
<p><a href="http://bit.ly/bByrgy" title="Illuminate"><img src="http://farm3.static.flickr.com/2801/4461959450_4dd35080ca_o.png" width="320" height="480" alt="Illuminate screenshot" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://ca.rroll.net/2010/03/25/illuminate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Putting spammers to work</title>
		<link>http://ca.rroll.net/2010/03/18/putting-spammers-to-work/</link>
		<comments>http://ca.rroll.net/2010/03/18/putting-spammers-to-work/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 04:29:06 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://ca.rroll.net/?p=342</guid>
		<description><![CDATA[I am just getting way too many spam comments on my blog lately. Akismet isn&#8217;t doing a good job of identifying these comments as spam as they generally appear to be genuine comments. Except that the author and website are for a specific product or company looking to increase their Google Page Rank. I don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>I am just getting way too many spam comments on my blog lately.  Akismet isn&#8217;t doing a good job of identifying these comments as spam as they generally appear to be genuine comments.  Except that the author and website are for a specific product or company looking to increase their Google Page Rank.  I don&#8217;t really want to disable the link to a legitimate author&#8217;s website or blog, so I have decided to make the spammers do some work.  I have installed the reCAPTCHA plugin which will make all comment authors type in a couple of words located on a reCAPTCHA image.  This not only limits spam, but <a href="http://googleblog.blogspot.com/2009/09/teaching-computers-to-read-google.html">Google</a> uses reCAPTCHA to help in their effort to digitise books.</p>
]]></content:encoded>
			<wfw:commentRss>http://ca.rroll.net/2010/03/18/putting-spammers-to-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>One click deployment with Maven and Bamboo</title>
		<link>http://ca.rroll.net/2010/02/26/one-click-deployment-with-maven-and-bamboo/</link>
		<comments>http://ca.rroll.net/2010/02/26/one-click-deployment-with-maven-and-bamboo/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 03:00:52 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://ca.rroll.net/?p=336</guid>
		<description><![CDATA[A while back I wrote about achieving continuous deployment with one-click deployments. I didn&#8217;t provide an example for that post as I mostly wrote about why you need to achieve continuous deployment. Here I will follow up with a simple example of how you can achieve continuous deployment. Continuous deployment is quite easy to setup [...]]]></description>
			<content:encoded><![CDATA[<p>A while back I wrote about <a href="http://ca.rroll.net/2009/06/16/achieving-continuous-deployment-with-one-click-deployments/">achieving continuous deployment with one-click deployments</a>.  I didn&#8217;t provide an example for that post as I mostly wrote about why you need to achieve continuous deployment.  Here I will follow up with a simple example of how you can achieve continuous deployment.</p>
<p>Continuous deployment is quite easy to setup if you are using a typical Maven project structure and Bamboo as your continuous integration tool.  Also I am assuming that you want to deploy your application to a tomcat server.</p>
<p>In your pom.xml file add the following configuration so that you use the Tomcat plugin for deploying your application to http://hostname.com/app.  Change the path, url, and server configurations to suit your needs.</p>
<pre name="code" class="xml">
<project>
    <build>
<plugins>
<plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>tomcat-maven-plugin</artifactId>
                <configuration>
<path>/app</path>
                    <url>http://hostname.com/manager</url>
                    <server>deployment.server</server>
                </configuration>
            </plugin>
        </plugins>
    </reporting>
</project>
</pre>
<p>Also make sure that your .m2/settings.xml file contains the following for authenticating with the Tomcat manager.</p>
<pre name="code" class="xml">
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <servers>
    <server>
      <id>deployment.server</id>
      <username>tomcat</username>
<password>password</password>
    </server>
  </servers>
</settings>
</pre>
<p>In Bamboo create a new pan for your project.  I tend to give this plan the name &#8220;Promote to Production&#8221;.  Configure the Builder goal for Maven to run <strong>clean tomcat:redeploy</strong>.  I also only allow a specific user to trigger this plan so that not everyone has permission to deploy into production.  Finally, configure the build strategy to run manually, so an authorised person can click on the Build plan button in Bamboo to deploy the application.</p>
<p>Once set up the above instructions will allow an authorised person in Bamboo to click on a single button to deploy into production.  Leveraging your continuous integration tool for deployment allows you to archive deployment artifacts such as your WAR files in the case where you have to revert to a previous version.</p>
]]></content:encoded>
			<wfw:commentRss>http://ca.rroll.net/2010/02/26/one-click-deployment-with-maven-and-bamboo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deploying Maven modules</title>
		<link>http://ca.rroll.net/2010/02/26/deploying-maven-modules/</link>
		<comments>http://ca.rroll.net/2010/02/26/deploying-maven-modules/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 02:36:46 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://ca.rroll.net/?p=333</guid>
		<description><![CDATA[My most recent consulting gig brought me back into contact again with Maven. I have this love-hate relationship with Maven. I love using Maven for simple projects, that generally have only a development environment, and I hate using Maven for more complex projects where you have to create profiles for multiple testing environments. Maven is [...]]]></description>
			<content:encoded><![CDATA[<p>My most recent consulting gig brought me back into contact again with Maven.  I have this love-hate relationship with Maven.  I love using Maven for simple projects, that generally have only a development environment, and I hate using Maven for more complex projects where you have to create profiles for multiple testing environments.  Maven is just too restrictive for the latter case.</p>
<p>If you have your own internal Maven repository setup and you want to deploy reusable modules to it then follow these instructions.  It took me a while to figure them out as there is something wrong with Wagon&#8217;s internal ssh implementation.  Using an external scp tool will save you a lot of grief.</p>
<p>1.  Setup your local .m2/settings.xml as follows:</p>
<pre name="code" class="xml">
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <servers>
    <server>
      <id>internal.maven.repos</id>
      <username>maven</username>
<privateKey>location of your ssh private key</privateKey>
  </server>
  </servers>
</settings>
</pre>
<p>You&#8217;ll need to <a href="http://ca.rroll.net/2006/09/23/sftp-strongspace-without-password/">create an ssh key</a>.  And provide a reference to your private key using the
<privateKey> element.  This is simple to do in OS X, or linux, and can be done by running ssh-keygen.  If you use Windoze then you&#8217;ll have to use Putty.</p>
<p>2. Log into your server hosting your maven repository and add the contents of your public key (id_rsa.pub) at the bottom of the authorized_keys2 file.  You should create a generic maven user that everyone on your team can log into, this is because when you deploy your module it will be written to the filesystem with read/write permissions only for that user.  Exit your server.</p>
<p>3. Go to your project and add the following to your project&#8217;s pom.</p>
<pre name="code" class="xml">
<project>
<distributionManagement>
        <repository>
            <id>internal.maven.repos</id>
            <name>Internal Maven Repository</name>
            <url>scpexe://maven@hostname.com/home/maven/.m2/repository</url>
        </repository>
    </distributionManagement>
...
  <build>
        <extensions>
            <extension>
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-ssh-external</artifactId>
                <version>1.0-beta-2</version>
            </extension>
        </extensions>
    </build>
</project>
</pre>
<p>4. Run mvn deploy.</p>
<p>5. You should now see your project deployed to the maven repository on your server.</p>
]]></content:encoded>
			<wfw:commentRss>http://ca.rroll.net/2010/02/26/deploying-maven-modules/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cloning a Java object</title>
		<link>http://ca.rroll.net/2010/01/15/cloning-a-java-object/</link>
		<comments>http://ca.rroll.net/2010/01/15/cloning-a-java-object/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 02:09:16 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://ca.rroll.net/?p=224</guid>
		<description><![CDATA[Here is a simple and effective approach to cloning objects in Java using XStream. The process uses XStream to serialize your object to XML, and then using the XML to create a new Java object that is a deep copy of the original. Sheep dolly = new Sheep("Dolly"); XStream xstream = new XStream(); String xml [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a simple and effective approach to cloning objects in Java using XStream.  The process uses XStream to serialize your object to XML, and then using the XML to create a new Java object that is a deep copy of the original.</p>
<pre name="code" class="java">
Sheep dolly = new Sheep("Dolly");
XStream xstream = new XStream();
String xml = xstream.toXML(dolly);
Sheep newDolly = (Sheep)xstream.fromXML(xml);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://ca.rroll.net/2010/01/15/cloning-a-java-object/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Atlassian Starter License</title>
		<link>http://ca.rroll.net/2010/01/12/atlassian-starter-license/</link>
		<comments>http://ca.rroll.net/2010/01/12/atlassian-starter-license/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 05:35:10 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[continuous integration]]></category>

		<guid isPermaLink="false">http://ca.rroll.net/?p=229</guid>
		<description><![CDATA[I&#8217;m back at the University of Sydney doing some independent Agile and TDD coaching. The first thing that I wanted to set up was a CI server. My initial recommendation was Atlassian&#8217;s Bamboo product, which may come as a surprise given that I used to work for ThoughtWorks &#8211; the makers of Cruise &#8211; for [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m back at the University of Sydney doing some independent Agile and TDD coaching.  The first thing that I wanted to set up was a CI server.  My initial recommendation was Atlassian&#8217;s <a href="http://www.atlassian.com/software/bamboo/">Bamboo</a> product, which may come as a surprise given that I used to work for ThoughtWorks &#8211; the makers of <a href="http://www.thoughtworks-studios.com/cruise-release-management">Cruise</a> &#8211; for the last three years.  But I must confess, I have never actually used Cruise on a project, it was always Bamboo, <a href="http://hudson-ci.org/">Hudson</a>, or <a href="http://luntbuild.javaforge.com/">Luntbuild</a>.  So I figured stick with what you know.</p>
<p>I thought the research group would be strapped for cash and considered setting up Hudson, but Atlassian&#8217;s Starter license gives you access to their products for an amazingly low price of $10 per product.  It was easy to convince the group to use Bamboo for that price.  Best of all the proceeds of the purchase price go towards a charity called <a href="http://www.roomtoread.org">Room to Read</a>.  Thank you Atlassian for your generosity!</p>
]]></content:encoded>
			<wfw:commentRss>http://ca.rroll.net/2010/01/12/atlassian-starter-license/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Last month at ThoughtWorks</title>
		<link>http://ca.rroll.net/2010/01/05/last-month-at-thoughtworks/</link>
		<comments>http://ca.rroll.net/2010/01/05/last-month-at-thoughtworks/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 23:09:49 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[ThoughtWorks]]></category>

		<guid isPermaLink="false">http://ca.rroll.net/?p=225</guid>
		<description><![CDATA[I was sifting through my blog entries during the holidays and came across my post three years ago about my first month at ThoughtWorks. After reading it I felt it needed an update, otherwise I probably wouldn&#8217;t have left the company if the list was still accurate. My last day at ThoughtWorks was 24th December [...]]]></description>
			<content:encoded><![CDATA[<p>I was sifting through my blog entries during the holidays and came across my post three years ago about my <a href="http://ca.rroll.net/2007/03/19/first-month-at-thoughtworks/">first month at ThoughtWorks</a>.  After reading it I felt it needed an update, otherwise I probably wouldn&#8217;t have left the company if the list was still accurate.  My last day at ThoughtWorks was 24th December 2009.</p>
<blockquote><p>
1. Other ThoughtWorkers: I have had the chance to work with some of the most incredible software developers that I have ever met. These guys and gals really know how to thrash a keyboard around when pumping out quality code. It has to be said that working with really talented individuals makes work very enjoyable. Which goes to show that Roy’s social experiment is still going strong after all these years.
</p></blockquote>
<p>The people at ThoughtWorks are certainly a great bunch of people.  I would still rank working with many of the fine folks at ThoughtWorks as one of my best experiences.  However, many of them have since moved on to <a href="http://thoughtquitters.com/">greener pastures</a>.</p>
<blockquote><p>
2. Ruby is such a cool programming language and I am so glad that I am working at a company that has completely embraced it. Ruby has been around in the US and Europe for a while, but it is still relatively new in Australia. I am waiting impatiently for the Aussie tech industry to catch up so that I can finally work on a Ruby project.</p>
<p>Meanwhile I have been ramping up on my Ruby skills, and there is no better place in Australia for learning Ruby. We have some of the best Ruby developers working in Sydney at the new ThoughtWorks Studios, and they open their doors after work each week for us to work on a Ruby project with them.
</p></blockquote>
<p>Sadly, I never got to write a line of Ruby code that made it into production.  It was only ever Java code.  Also, ThoughtWorks Studios is no longer based in Sydney.</p>
<blockquote><p>
3. Agile is certainly an interesting approach to developing software. I have already been thrown head first into a large agile software development project, and I am already hooked on the agile koolaid. Over the weekend our client deployed the first release in time for a public launch of their system. It is the first large scale project that I have worked on, and it was a success right off the bat. The release was completed on-time, on-budget, and with 5 times less defects than any of their previous projects. Being part of a team that produced a result like this certainly made my first month a memorable one.
</p></blockquote>
<p>I am still a strong advocate for Agile software development.  I was never part of a project that failed to deliver, and I am extremely proud of this success.</p>
<blockquote><p>
4. Open Communication: I have been amazed with how open the lines of communication are within the company. In the first two weeks I had met Martin Fowler our lead scientist, coffee with Bruce the Australian MD, and beers with Roy Singham the founder of the company. They all made themselves available to talk about agile, corporate strategy, and whatever the next big thing might be. I thought it was cool to be able to hang out with these guys. There aren’t many companies out there that have corporate leaders that like to hang out with their employees and have a general interest in them.
</p></blockquote>
<p>Communication is not as open as it used to be.</p>
<blockquote><p>
5. Geek Night is just one of many ThoughtWorks events that helps to facilitate knowledge sharing within the company. It is an after work event where developers head back to the ThoughtWorks office for a night of geeking out in front of a computer. We learn a new programming language whilst downing copious amounts of Coke Zero and rice cracker snacks.
</p></blockquote>
<p>Geek Night rarely happens.  I tried my best to inject some life into it with the Functional Programming and Groovy user groups, but the interest just wasn&#8217;t there.</p>
<blockquote><p>
6. Free food: I have put on a couple of kilos since I started work. It has to do with all the lunches and dinners that the company has put on. They keep a fridge stocked with beers, wine, soft drinks and fruit juice. As well as bowls of fruit and cupboards filled with biscuits, chips, and chocolates. Best of all they have a tab going for free coffee at a local cafe!
</p></blockquote>
<p>There is still free food on Fridays.  The coffee tab at the local cafe got replaced with an in-house coffee machine.</p>
<blockquote><p>
7. Consulting Dojo: There is one catch to the free food, on Fridays lunch is provided to attract all the ThoughtWorkers to the office to listen to one of our colleagues present on a consulting related topic. The presentations have been very interesting, and there is always a good turn out. The dojo is another example of knowledge sharing within the company.
</p></blockquote>
<p>The dojos are still around, but in a lighter form.  A couple of presenters are given 5 minutes to present on a topic that ranges from cool stuff that happened on a project to how to use a Mac.</p>
<blockquote><p>
8. Training and book budgets: Each ThoughtWorker is provided with their own personal budget for training and purchasing books. Essentially we are responsible for our own learning and personal development. So we can choose whatever course or conference we want to attend. There is just so much support for our career development.
</p></blockquote>
<p>The training and book budgets are still around.  There was a period when the training budget was reduced, but it is back to where it was.  I only ever got to use my training budget in my first year, after that I found it hard to find time for training as I was always on a project and focused on delivery.  However I made good use of the book budget.  It is something that I will certainly miss.</p>
<blockquote><p>
9. Brand new Dell Latitude D620: It isn’t a Mac, but I have been very impressed with this piece of hardware. I really like the widescreen display, Intel Core Duo processor, and the feel of the keyboard. It also doesn’t get that hot from extended usage. It is the first Dell I’ve used, and I’m very happy with it.
</p></blockquote>
<p>Would you believe that the Macbook Pro is now the default laptop?  It was a sad day when I had to return my new 15 inch Macbook.</p>
<blockquote><p>
10. Mobile phone and home broadband: This is a nice perk, having your company pay for your mobile phone and home broadband bills. I can finally afford ADSL2!
</p></blockquote>
<p>You still get a mobile phone and broadband budget.  So you can sign up for an iPhone when you join.</p>
<p>This will be my last post on ThoughtWorks as I close this chapter of my life.</p>
]]></content:encoded>
			<wfw:commentRss>http://ca.rroll.net/2010/01/05/last-month-at-thoughtworks/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Git on Joyent Shared Accelerator</title>
		<link>http://ca.rroll.net/2009/11/21/git-on-joyent-shared-accelerator/</link>
		<comments>http://ca.rroll.net/2009/11/21/git-on-joyent-shared-accelerator/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 13:10:37 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Joyent]]></category>

		<guid isPermaLink="false">http://ca.rroll.net/?p=222</guid>
		<description><![CDATA[This is just a quick guide to setting up a remote Git repository on a Joyent shared accelerator. Log into your Joyent server and create your remote git repository. ssh host.joyent.us cd ~/git mkdir project.git cd project.git git --bare init chmod -x hooks exit Now on your local box create your project directory and push [...]]]></description>
			<content:encoded><![CDATA[<p>This is just a quick guide to setting up a remote Git repository on a Joyent shared accelerator.</p>
<p>Log into your Joyent server and create your remote git repository.</p>
<p><code><br />
ssh host.joyent.us<br />
cd ~/git<br />
mkdir project.git<br />
cd project.git<br />
git --bare init<br />
chmod -x hooks<br />
exit<br />
</code></p>
<p>Now on your local box create your project directory and push the source files to your newly created remote repository.</p>
<p><code><br />
rails project<br />
cd project<br />
git init<br />
git add .<br />
git commit -a<br />
git remote add origin ssh://host.joyent.us/home/username/git/project.git<br />
git push origin master<br />
</code></p>
<p>Now get your collaborators to clone your repository and push their changes.  Assuming you have added them as users via virtualmin.</p>
<p><code><br />
git clone ssh://host.joyent.us/home/username/git/project.git<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://ca.rroll.net/2009/11/21/git-on-joyent-shared-accelerator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Estimation Deck</title>
		<link>http://ca.rroll.net/2009/10/17/estimation-deck/</link>
		<comments>http://ca.rroll.net/2009/10/17/estimation-deck/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 01:04:50 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[estimation deck]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[ThoughtWorks]]></category>

		<guid isPermaLink="false">http://ca.rroll.net/?p=218</guid>
		<description><![CDATA[My Estimation Deck iPhone application just got published in the iTunes store! You can download it for free and use it for your next Agile estimation session. It saves me from carrying around a deck of cards, and I hope it saves you from that pain as well!]]></description>
			<content:encoded><![CDATA[<p>My <a href="http://moltenapps.com/apps/iphone/estimation-deck">Estimation Deck</a> iPhone application just got published in the <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=325338757&#038;mt=8">iTunes store</a>!  You can download it for free and use it for your next Agile estimation session.  It saves me from carrying around a deck of cards, and I hope it saves you from that pain as well!</p>
]]></content:encoded>
			<wfw:commentRss>http://ca.rroll.net/2009/10/17/estimation-deck/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
