<?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"
	>

<channel>
	<title>fiveclouds</title>
	<atom:link href="http://www.fiveclouds.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fiveclouds.com</link>
	<description>collaboration, creativity and the next big thing</description>
	<pubDate>Sun, 19 Oct 2008 23:01:46 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<item>
		<title>Mixing Maven and Warbler</title>
		<link>http://www.fiveclouds.com/2008/10/19/mixing-maven-and-warbler/</link>
		<comments>http://www.fiveclouds.com/2008/10/19/mixing-maven-and-warbler/#comments</comments>
		<pubDate>Sun, 19 Oct 2008 23:01:46 +0000</pubDate>
		<dc:creator>Philip</dc:creator>
		
		<category><![CDATA[technology]]></category>

		<category><![CDATA[maven]]></category>

		<category><![CDATA[rails]]></category>

		<category><![CDATA[ruby]]></category>

		<category><![CDATA[warbler]]></category>

		<guid isPermaLink="false">http://www.fiveclouds.com/?p=81</guid>
		<description><![CDATA[<p>I have recently been working on mixing together a Ruby on Rails application with an Enterprise app.   Initially I was looking into doing it with Goldspike, however after picking up that it was going out of fashion and being replaced with Warbler I decided to use that.   I couldn&#8217;t find any clear documentation on setting up Warbler with Maven (while Goldspike came with a plugin) - so I decided to try and pull it together so that I could incorporate the Rails app into a larger Java product.</p>
<p>First of all I wanted to put my Rails application into&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>I have recently been working on mixing together a Ruby on Rails application with an Enterprise app.   Initially I was looking into doing it with Goldspike, however after picking up that it was going out of fashion and being replaced with Warbler I decided to use that.   I couldn&#8217;t find any clear documentation on setting up Warbler with Maven (while Goldspike came with a plugin) - so I decided to try and pull it together so that I could incorporate the Rails app into a larger Java product.</p>
<p>First of all I wanted to put my Rails application into a Maven like directory structure so I created /src/main/rails and put the app in there,  then I knocked up a pretty standard POM for a WAR file.  Next up I wanted to Warble the project so I first up I installed the gem.</p>
<pre><code class="html">
pdodds:(svn)trunk[trunk:4184]/src/main/rails$ sudo gem install warbler
Bulk updating Gem source index for: http://gems.rubyforge.org
Successfully installed warbler-0.9.11
1 gem installed
Installing ri documentation for warbler-0.9.11...
Installing RDoc documentation for warbler-0.9.11...
pdodds:(svn)trunk[trunk:4184]/src/main/rails$
</code></pre>
<p>Then I pluginize the Warble so that it will be available in my project using <code>warble pluginize</code>.</p>
<p>Next up I wanted to get my Maven pom sorted out - the quickest way I could find to get Warble integrated was through the jruby-rake-plugin.  Adding the following plugin to my pom.xml ensures that the gems that I need are installed by the jruby plugin and then warble can be called in the compile phase.</p>
<pre><code class="html">
&lt;plugin&gt;
	&lt;groupId&gt;org.jruby.plugins&lt;/groupId&gt;
	&lt;artifactId&gt;jruby-rake-plugin&lt;/artifactId&gt;
	&lt;version&gt;1.1.4&lt;/version&gt;
	&lt;executions&gt;
		&lt;execution&gt;
			&lt;id&gt;install-gems&lt;/id&gt;
			&lt;phase&gt;process-resources&lt;/phase&gt;
				&lt;goals&gt;
					&lt;goal&gt;install-gems&lt;/goal&gt;
				&lt;/goals&gt;
				&lt;configuration&gt;
					&lt;gems&gt;warbler,rails&lt;/gems&gt;
				&lt;/configuration&gt;
		&lt;/execution&gt;
		&lt;execution&gt;
				&lt;id&gt;build-war&lt;/id&gt;
				&lt;phase&gt;compile&lt;/phase&gt;
				&lt;goals&gt;
					&lt;goal&gt;rake&lt;/goal&gt;
				&lt;/goals&gt;
				&lt;configuration&gt;
					&lt;launchDirectory&gt;${basedir}/src/main/rails
					&lt;/launchDirectory&gt;
			    	        &lt;args&gt;war:clean war&lt;/args&gt;
				&lt;/configuration&gt;
	           &lt;/execution&gt;
	&lt;/executions&gt;
&lt;/plugin&gt;
</code></pre>
<p>In the first instance of the execution of the jruby plugin we pull down and install the gems that we are going to use,  in the second we actually call the Warble goals in the project to create the WAR file.</p>
<p>In order to quickly integrate this process with the standard WAR building in Maven we need to configure the Maven WAR plugin,  you could also change the Warble output but in the end I found this way worked when I wanted to use the Jetty plugin.</p>
<p><code>
<pre>
&lt;plugin&gt;
	&lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
	&lt;artifactId&gt;maven-war-plugin&lt;/artifactId&gt;
	&lt;configuration&gt;
		&lt;webappDirectory&gt;${basedir}/src/main/rails/tmp&lt;/webappDirectory&gt;
        &lt;/configuration&gt;
&lt;/plugin&gt;
</code></pre>
<p>While this is pretty brief hopefully it helps others get going and I&#8217;m very open to alternate or better ways to achieve the same goal.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fiveclouds.com/2008/10/19/mixing-maven-and-warbler/feed/</wfw:commentRss>
		</item>
		<item>
		<title>BeanStalk and GitHub</title>
		<link>http://www.fiveclouds.com/2008/09/23/beanstalk-and-github/</link>
		<comments>http://www.fiveclouds.com/2008/09/23/beanstalk-and-github/#comments</comments>
		<pubDate>Tue, 23 Sep 2008 13:16:22 +0000</pubDate>
		<dc:creator>Philip</dc:creator>
		
		<category><![CDATA[technology]]></category>

		<category><![CDATA[development]]></category>

		<category><![CDATA[git]]></category>

		<category><![CDATA[subversion]]></category>

		<category><![CDATA[web2.0]]></category>

		<guid isPermaLink="false">http://www.fiveclouds.com/?p=77</guid>
		<description><![CDATA[<p>Recently I have switch my clients over to either <a href="http://www.beanstalkapp.com" onclick="javascript:urchinTracker ('/outbound/article/www.beanstalkapp.com');">BeanStalk</a> or <a href="http://www.github.com" onclick="javascript:urchinTracker ('/outbound/article/www.github.com');">GitHub</a>, and I have to admit it is actually really nice to not have to worry about source control systems any more.   It is one of those places where you really don&#8217;t add a ton of value by controlling the platform,  and both systems have some really nice integrations,  and since my BeanStalk client is big into <a href="http://campfirenow.com/" onclick="javascript:urchinTracker ('/outbound/article/campfirenow.com');">Campfire</a> and <a href="http://www.zendesk.com" onclick="javascript:urchinTracker ('/outbound/article/www.zendesk.com');">ZenDesk</a> it does really tie together their world.</p>
<p>Git is still new to me and I&#8217;m only using it on the one project right now - though I have already seen the value in&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Recently I have switch my clients over to either <a href="http://www.beanstalkapp.com" onclick="javascript:urchinTracker ('/outbound/article/www.beanstalkapp.com');">BeanStalk</a> or <a href="http://www.github.com" onclick="javascript:urchinTracker ('/outbound/article/www.github.com');">GitHub</a>, and I have to admit it is actually really nice to not have to worry about source control systems any more.   It is one of those places where you really don&#8217;t add a ton of value by controlling the platform,  and both systems have some really nice integrations,  and since my BeanStalk client is big into <a href="http://campfirenow.com/" onclick="javascript:urchinTracker ('/outbound/article/campfirenow.com');">Campfire</a> and <a href="http://www.zendesk.com" onclick="javascript:urchinTracker ('/outbound/article/www.zendesk.com');">ZenDesk</a> it does really tie together their world.</p>
<p>Git is still new to me and I&#8217;m only using it on the one project right now - though I have already seen the value in being able to quickly branch and also being able to commit locally (when on flights etc) really helps you make sure the commit messages are meaningful.  I&#8217;m hoping to see a lot more of git in the next couple of months since I&#8217;m going to try and move all the new projects that way.   Though if you are still happy on Subversion then BeanStalk is definitely worth a look.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fiveclouds.com/2008/09/23/beanstalk-and-github/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Oracle in the Cloud</title>
		<link>http://www.fiveclouds.com/2008/09/22/oracle-in-the-cloud/</link>
		<comments>http://www.fiveclouds.com/2008/09/22/oracle-in-the-cloud/#comments</comments>
		<pubDate>Mon, 22 Sep 2008 21:36:20 +0000</pubDate>
		<dc:creator>Philip</dc:creator>
		
		<category><![CDATA[technology]]></category>

		<category><![CDATA[aws]]></category>

		<category><![CDATA[cloud]]></category>

		<category><![CDATA[ec2]]></category>

		<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://www.fiveclouds.com/?p=68</guid>
		<description><![CDATA[<p>Over the past couple of months I&#8217;ve been working on a few different things,  and I&#8217;ve been a little overloaded - thus the lack of blogging.  One of those things has been working on building a dynamic integration test environment for a company based on using EC2.   Part of that environment has required the provisioning of Oracle servers for the test platform.  Initially I took a Centos 5 base and installed the Oracle 11g instance on it,  though I have to admit getting the first image ready for use took a long time and was a lot more painful&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Over the past couple of months I&#8217;ve been working on a few different things,  and I&#8217;ve been a little overloaded - thus the lack of blogging.  One of those things has been working on building a dynamic integration test environment for a company based on using EC2.   Part of that environment has required the provisioning of Oracle servers for the test platform.  Initially I took a Centos 5 base and installed the Oracle 11g instance on it,  though I have to admit getting the first image ready for use took a long time and was a lot more painful than I had hoped (not least because of the silent installers in Oracle).  </p>
<p>So when I saw on Justin Kestelyn <a href="https://twitter.com/oracletechnet" onclick="javascript:urchinTracker ('/outbound/article/twitter.com');">twitter</a> than Oracle now has a <a href="http://www.oracle.com/technology/tech/cloud/index.html" onclick="javascript:urchinTracker ('/outbound/article/www.oracle.com');">Cloud Computing Center </a>I had to give it a go.  After only playing for a very short while I have to say I really liked the experience from the AMI&#8217;s,   I thought the easiest way to tell you about it was just to give some basic instructions on getting going.  First I&#8217;m going to assume you have an AWS account and that you have also set-up the EC2 command line tools to get you going (if you are having trouble with the command line tools I find the tools at <a href="http://www.rightscale.com" onclick="javascript:urchinTracker ('/outbound/article/www.rightscale.com');">RightScale</a> just rock for managing the servers).</p>
<p>So to get started I kicked up a terminal on my trusty mac and listed down the available images.</p>
<pre><code class="html">
pdodds:/usr/local/ec2/bin$ ./ec2-describe-images -a | grep oracle-corporation
IMAGE	ami-02cb2f6b	/oracle-corporation/database-ami/64-bit/oracle_11106_SE_SE1_64Bit-image.manifest.xml	725966715235	available	public		x86_64	machine	aki-0d9f7b64	ari-369f7b5f
IMAGE	ami-7acb2f13	oracle-corporation/database-ami/32-bit/oracle_10g_XE_32Bit-image.manifest.xml	725966715235	available	public		i386	machine	aki-c5e703ac	ari-c2e703ab
IMAGE	ami-cecb2fa7	oracle-corporation/database-ami/32-bit/oracle_11106_EE_32Bit-image.manifest.xml	725966715235	available	public		i386	machine	aki-c5e703ac	ari-c2e703ab
IMAGE	ami-7ecb2f17	oracle-corporation/database-ami/64-bit/oracle_11106_EE_64Bit-image.manifest.xml	725966715235	available	public		x86_64	machine	aki-0d9f7b64	ari-369f7b5f
IMAGE	aki-c5e703ac	oracle-corporation/oracle_linux_kernels/32_bit/2.6.18-53.1.13.9.2.el5xen/vmlinuz-2.6.18-53.1.13.9.2.el5xen.manifest.xml	725966715235	available	public		i386	kernel
IMAGE	ari-c2e703ab	oracle-corporation/oracle_linux_ramdisks/32_bit/2.6.18-53.1.13.9.2.el5xen/initrd-2.6.18-53.1.13.9.2.el5xen.img.manifest.xml	725966715235	available	public	i386	ramdisk
</code></pre>
<p>Since I just wanted a little instance to play with I picked up the /oracle_11106_EE_32Bit,  and started that,  note that I had already created a default security group (with port 22 access) and a default keypair which I had on my machine.</p>
<pre><code class="html">
pdodds:/usr/local/ec2/bin$ ./ec2-run-instances -k primary-keypair -g default ami-cecb2fa7
RESERVATION	r-2ed30047	207015290718	default
INSTANCE	i-0b842462	ami-cecb2fa7			pending	primary-keypair	0	m1.small	2008-09-22T21:14:17+0000	us-east-1a	aki-c5e703ac	ari-c2e703ab
pdodds:/usr/local/ec2/bin$
</code></pre>
<p>Next up I wanted to stick the database on an EBS volume to I decided to create one of those while I&#8217;m here (and waiting for that server to start).  Note that since I was a bit lazy on setting the availability zone I wanted for the server I&#8217;ll be a little more disciplined on the volume (note that volumes need to be in the same availability zone as the server).</p>
<pre><code class="html">
pdodds:/usr/local/ec2/bin$ ./ec2-create-volume -s 5 -z us-east-1a
VOLUME	vol-1104e178	5		us-east-1a	creating	2008-09-22T21:17:14+0000
pdodds:/usr/local/ec2/bin$
</code></pre>
<p>Now if all is well I should be able to check back on my EC2 instance to see if it is available.</p>
<pre><code class="html">
pdodds:/usr/local/ec2/bin$ ./ec2-describe-instances i-0b842462
RESERVATION	r-2ed30047	207015290718	default
INSTANCE	i-0b842462	ami-cecb2fa7	ec2-75-101-230-110.compute-1.amazonaws.com	domU-12-31-39-00-E0-07.compute-1.internal	running	primary-keypair	0		m1.small	2008-09-22T21:14:17+0000	us-east-1a	aki-c5e703ac	ari-c2e703ab
pdodds:/usr/local/ec2/bin$
</code></pre>
<p>Once it is available,  as above then we can attach the EBS volume that we created.  </p>
<pre><code class="html">
pdodds:/usr/local/ec2/bin$ ./ec2-attach-volume vol-1104e178 -i i-0b842462 -d /dev/sdh
ATTACHMENT	vol-1104e178	i-0b842462	/dev/sdh	attaching	2008-09-22T21:24:02+0000
pdodds:/usr/local/ec2/bin$
</code></pre>
<p>While that is getting hooked up,  we can now log into the new server - with simple ssh -i primary-keypair root@ec2-75-101-230-110.compute-1.amazonaws.com.</p>
<p>At this point we accept the license terms and then set the new password,  though I would recommend switching off password based connections to the server (for anyone).  When we get to the &#8220;Would you like to create a database now [y|n]:&#8221; lets say no first time.  Since we still need to get that EBS drive ready for use.  This will drop you back to the root login,  though it is easy to get back to the script.  </p>
<pre><code class="html">
$ mkfs /dev/sdh
mke2fs 1.39 (29-May-2006)
/dev/sdh is entire device, not just one partition!
Proceed anyway? (y,n) y
</code></pre>
<p>I&#8217;m probably far to lazy,  but this will just get me a drive ready for use, and then its back to the Oracle script,  this time we select our new device for our database to be stored,  and also the flash recovery area.</p>
<pre><code class="html">
/home/oracle/scripts/run_dbca.sh
The Oracle Database Software (ORACLE_HOME) has been installed at
/u01/app/oracle/product/11.1.0/db_1.
Before you can use the Oracle Software, you will need to create a database.

Would you like to create a database now [y|n]:  y

You chose to create a database now.  Before we begin, please provide the following details: 

Select a disk device to store your datafiles and redo logs on:

ID  DEVICE_NAME
--- -----------
[1] /dev/sda2
[2] /dev/sdh 

Type in the ID from the list above [DEFAULT: 1]:
2
Enter the mount point you would like this device mounted as [DEFAULT:  /u02]:

You have selected to mount /dev/sdh on to /u02, is this correct [y|n] [DEFAULT:  n]:
y

Select a disk device to store your flash recovery area files on:

ID  DEVICE_NAME
--- -----------
[1] /dev/sda2
[2] /dev/sdh 

Type in the ID from the list above [DEFAULT: 1]:
2
Using mount point /u02

You have selected to mount /dev/sdh on to /u02, is this correct [y|n] [DEFAULT:  n]:
y

Checking disk devices and mount points for Datafiles and Logfiles
Checking if directory /u02 exists...

Creating directory /u02
Trying to mount /dev/sdh on /u02
DBFILES:  /u02/oradata
FRA:  /u02/flash_recovery_area

Please enter the name for your Oracle Database.
This name will be used as your
ORACLE SID (System Identifier):
</code></pre>
<p>From here on in its a simple case of providing a name for the database and all the passwords for the Oracle users,  and away it goes.  After just a few minutes you will have your database ready to roll,  the files stored on EBS and running against the Oracle AMI.   It will have started the Enterprise Manager web server etc (though to be honest I kinda wish that was optional since I don&#8217;t tend to use it a whole lot).  </p>
<p>All in all I have to say the experience was smooth and quick,  making Oracle suddenly a lot more welcoming in a cloud environment and I&#8217;m sure with Oracle World in full swing we&#8217;ll be hearing a lot more about it.</p>
<p>And as always once you are done its nice and easy to clean up&#8230;</p>
<pre><code class="html">
pdodds:/usr/local/ec2/bin$ ./ec2-terminate-instances i-0b842462
INSTANCE	i-0b842462	running	shutting-down
pdodds:/usr/local/ec2/bin$ ./ec2-detach-volume vol-1104e178
ATTACHMENT	vol-1104e178	i-0b842462	/dev/sdh	detaching	2008-09-22T21:24:02+0000
pdodds:/usr/local/ec2/bin$ ./ec2-delete-volume vol-1104e178
VOLUME	vol-1104e178
pdodds:/usr/local/ec2/bin$
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.fiveclouds.com/2008/09/22/oracle-in-the-cloud/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CharlotteJUG is starting up again</title>
		<link>http://www.fiveclouds.com/2008/09/04/charlottejug-is-starting-up-again/</link>
		<comments>http://www.fiveclouds.com/2008/09/04/charlottejug-is-starting-up-again/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 22:39:54 +0000</pubDate>
		<dc:creator>Philip</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.fiveclouds.com/?p=66</guid>
		<description><![CDATA[<p>Having got back to Charlotte and spending a little more time in the City I was able to reconnect to the Tyler and helped out doing some work on the site again (check out the new <a href="http://www.charlottejug.org" onclick="javascript:urchinTracker ('/outbound/article/www.charlottejug.org');">look</a>).</p>
<p>We just sent out the <a href="http://anyvite.com/events/home/72ycxa19np/charlottejug-sept-meeting-spring-101" onclick="javascript:urchinTracker ('/outbound/article/anyvite.com');">Anyvite</a> for the upcoming event and come on down, it should be an interesting night.</p>
]]></description>
			<content:encoded><![CDATA[<p>Having got back to Charlotte and spending a little more time in the City I was able to reconnect to the Tyler and helped out doing some work on the site again (check out the new <a href="http://www.charlottejug.org" onclick="javascript:urchinTracker ('/outbound/article/www.charlottejug.org');">look</a>).</p>
<p>We just sent out the <a href="http://anyvite.com/events/home/72ycxa19np/charlottejug-sept-meeting-spring-101" onclick="javascript:urchinTracker ('/outbound/article/anyvite.com');">Anyvite</a> for the upcoming event and come on down, it should be an interesting night.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fiveclouds.com/2008/09/04/charlottejug-is-starting-up-again/feed/</wfw:commentRss>
		</item>
		<item>
		<title>JBoss EJB3 and Maven</title>
		<link>http://www.fiveclouds.com/2008/08/12/jboss-ejb3-and-maven/</link>
		<comments>http://www.fiveclouds.com/2008/08/12/jboss-ejb3-and-maven/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 02:12:52 +0000</pubDate>
		<dc:creator>Philip</dc:creator>
		
		<category><![CDATA[technology]]></category>

		<category><![CDATA[ejb3 jboss maven]]></category>

		<guid isPermaLink="false">http://www.fiveclouds.com/?p=55</guid>
		<description><![CDATA[<p>I have just recently been working on some more technical stuff - and I have to admit it is really nice to be back in the code.  Working with a couple of start-ups on the East coast lately I have been pottering around with some JBoss 4/5 and EJB3 configurations.   Since I&#8217;m going to be running around again soon - I thought I would blog a few bits and pieces on technology while I&#8217;m about it.</p>
<p>The first thing I noticed about pulling Maven and JBoss together was that the EJB packaging didn&#8217;t seem quite as intuitive as I thought.  In the&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>I have just recently been working on some more technical stuff - and I have to admit it is really nice to be back in the code.  Working with a couple of start-ups on the East coast lately I have been pottering around with some JBoss 4/5 and EJB3 configurations.   Since I&#8217;m going to be running around again soon - I thought I would blog a few bits and pieces on technology while I&#8217;m about it.</p>
<p>The first thing I noticed about pulling Maven and JBoss together was that the EJB packaging didn&#8217;t seem quite as intuitive as I thought.  In the end I did end up using the EJB plugin and the dependency plugin to get the dependencies in place.  This meant including both the plugins in an EJB parent POM.</p>
<pre><code class="html">&lt;plugin&gt;
	&lt;artifactId&gt;maven-ejb-plugin&lt;/artifactId&gt;
	&lt;configuration&gt;
		&lt;archive&gt;
			&lt;manifest&gt;
				&lt;addClasspath&gt;true&lt;/addClasspath&gt;
			&lt;/manifest&gt;
		&lt;/archive&gt;
		&lt;ejbVersion&gt;3.0&lt;/ejbVersion&gt;
	&lt;/configuration&gt;
&lt;/plugin&gt;
&lt;plugin&gt;
	&lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
	&lt;artifactId&gt;maven-dependency-plugin
	&lt;/artifactId&gt;
	&lt;executions&gt;
		&lt;execution&gt;
			&lt;id&gt;copy&lt;/id&gt;
			&lt;phase&gt;compile&lt;/phase&gt;
			&lt;goals&gt;
				&lt;goal&gt;copy-dependencies&lt;/goal&gt;
			&lt;/goals&gt;
			&lt;configuration&gt;
				&lt;outputDirectory&gt;target/classes&lt;/outputDirectory&gt;
				&lt;excludeScope&gt;provided&lt;/excludeScope&gt;
			&lt;/configuration&gt;
		&lt;/execution&gt;
	&lt;/executions&gt;
&lt;/plugin&gt;
</code></pre>
<p>With that code in place you just need to ensure you set the packaging to EJB on your EJB&#8217;s.  I thought that copying the dependencies into the target was probably the nicest way,  also you need to watch your dependencies and ensure that those you don&#8217;t want to use have a scope of provided so they they don&#8217;t get bundled.  At first I thought that the dependency embedding should have been part of the EJB plugin,  but actually given the power of the dependency plugin it actually made more sense to use that.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fiveclouds.com/2008/08/12/jboss-ejb3-and-maven/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Getting Subversion on Ganymede (Leopard)</title>
		<link>http://www.fiveclouds.com/2008/07/16/getting-subversion-on-ganymede-leopard/</link>
		<comments>http://www.fiveclouds.com/2008/07/16/getting-subversion-on-ganymede-leopard/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 13:09:22 +0000</pubDate>
		<dc:creator>Philip</dc:creator>
		
		<category><![CDATA[technology]]></category>

		<category><![CDATA[eclipse]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://www.fiveclouds.com/?p=53</guid>
		<description><![CDATA[<p>In the past few days I started using the new <a href="http://www.eclipse.org" onclick="javascript:urchinTracker ('/outbound/article/www.eclipse.org');">Eclipse</a> 3.4 (Ganymede) release,  I had been working happily away using the command line subversion but I decided to give the Subversion integration a go.  i have to admit I was totally confused by the deployment,  Subversion support is meant to be part of the product but you have to download the <a href="http://www.polarion.org/index.php?page=download&#38;project=subversive" onclick="javascript:urchinTracker ('/outbound/article/www.polarion.org');">Subversion Connectors from Polarion</a>.  After trying several times to install the missing bits and not being able to get the projects to appear with any subversion support I ended up installing the Subversion 1.5 binaries for Mac (available <a href="http://www.collab.net/downloads/community/" onclick="javascript:urchinTracker ('/outbound/article/www.collab.net');">here</a> from&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>In the past few days I started using the new <a href="http://www.eclipse.org" onclick="javascript:urchinTracker ('/outbound/article/www.eclipse.org');">Eclipse</a> 3.4 (Ganymede) release,  I had been working happily away using the command line subversion but I decided to give the Subversion integration a go.  i have to admit I was totally confused by the deployment,  Subversion support is meant to be part of the product but you have to download the <a href="http://www.polarion.org/index.php?page=download&amp;project=subversive" onclick="javascript:urchinTracker ('/outbound/article/www.polarion.org');">Subversion Connectors from Polarion</a>.  After trying several times to install the missing bits and not being able to get the projects to appear with any subversion support I ended up installing the Subversion 1.5 binaries for Mac (available <a href="http://www.collab.net/downloads/community/" onclick="javascript:urchinTracker ('/outbound/article/www.collab.net');">here</a> from Collab.net).  Then updating my ~/.bash_profile with the following lines:</p>
<p><code class='terminal'><br />
export PATH=/usr/local/bin:$PATH<br />
export LD_LIBRARY_PATH=/opt/subversion/lib/:$LD_LIBRARY_PATH<br />
</code></p>
<p>Then I downloaded a fresh Ganymede installation and using the new Software Updates I added the Subclipse update site (http://subclipse.tigris.org/update_1.4.x) and installed that.  Finally I was able to see the subversion information in Eclipse.</p>
<p>So while just trying to get subversion support I lost a few hours and also ended up upgrading to Subversion 1.5 just to get it in place.   Given the out-of-the-box experience I have to admit I was frustrated,  I realize that Subversive is a incubator project but I would have through getting it to work on a mac would have been much easier.   Maybe someone can provide a guide so I understand what I did wrong - in the meantime its back to Subclipse (and wondering what problems I&#8217;ll find).<br />
 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.fiveclouds.com/2008/07/16/getting-subversion-on-ganymede-leopard/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Returning Home (kind of)</title>
		<link>http://www.fiveclouds.com/2008/06/18/returning-home-kind-of/</link>
		<comments>http://www.fiveclouds.com/2008/06/18/returning-home-kind-of/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 00:33:21 +0000</pubDate>
		<dc:creator>Philip</dc:creator>
		
		<category><![CDATA[home]]></category>

		<category><![CDATA[life]]></category>

		<category><![CDATA[charlotte]]></category>

		<category><![CDATA[travel]]></category>

		<guid isPermaLink="false">http://www.fiveclouds.com/?p=52</guid>
		<description><![CDATA[<p><a href="http://www.flickr.com/photos/24096441@N05/2587280626/"class="flickr-image" title="A beautiful day at Lake Wylie" rel="flickr-mgr"  onclick="javascript:urchinTracker ('/outbound/article/www.flickr.com');"><img class="flickr-medium" src="http://farm4.static.flickr.com/3067/2587280626_735300ae63_t.jpg" alt="A beautiful day at Lake Wylie" align="left" /></a>Well its been a busy month - and an emotional one.  I decided that it was time for me to find a new vocation and with great sadness I left Exist to look for opportunities in the US.   Having worked with Exist for over a year and a half it was a hard decision - and I know I’m going to miss a lot of the great people in the company - but with the constant travel and a desire to return home to my son more often,  as well as an interest in getting back to my technical roots,&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/24096441@N05/2587280626/"class="flickr-image" title="A beautiful day at Lake Wylie" rel="flickr-mgr"  onclick="javascript:urchinTracker ('/outbound/article/www.flickr.com');"><img class="flickr-medium" src="http://farm4.static.flickr.com/3067/2587280626_735300ae63_t.jpg" alt="A beautiful day at Lake Wylie" align="left" /></a>Well its been a busy month - and an emotional one.  I decided that it was time for me to find a new vocation and with great sadness I left Exist to look for opportunities in the US.   Having worked with Exist for over a year and a half it was a hard decision - and I know I’m going to miss a lot of the great people in the company - but with the constant travel and a desire to return home to my son more often,  as well as an interest in getting back to my technical roots, I felt it was time.</p>
<p>It was a bit of a shock to the system to suddenly have my nights freed up back in Charlotte and I have been using them to catch up with old friends and also spending some time with my family.  I am also taking the time to work out when I’m going to jump a plane back to the Philippines and actually take a proper vacation there!</p>
<p><a href="http://www.flickr.com/photos/24096441@N05/2580933227/"class="flickr-image" title="View from Blowing Rock,NC" rel="flickr-mgr"  onclick="javascript:urchinTracker ('/outbound/article/www.flickr.com');"><img class="flickr-medium" src="http://farm4.static.flickr.com/3019/2580933227_fb0785160b_t.jpg" alt="View from Blowing Rock,NC" align="left" /></a>In the past week I have been lucky enough to do a bit of traveling around NC (up to the mountains and around the local lakes) as well as back up to NY to get a few beers with people who are wondering if my weight loss is permanent (going to have to work on that one).   I am currently just pulling together my plans for next month - and more about that on another blog post.</p>
<p>One thing I’m really looking forward to it a return to technology, architecture, culture and collaboration - these have been the areas that I have enjoyed most in my career and my time with DevZuz and ultimately Exist allowed me to be part of a lot of diverse and exciting projects.   I look forward to bringing that energy home with me and seeing what we can do back in New York.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fiveclouds.com/2008/06/18/returning-home-kind-of/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Just back from New York</title>
		<link>http://www.fiveclouds.com/2008/06/01/just-back-from-new-york/</link>
		<comments>http://www.fiveclouds.com/2008/06/01/just-back-from-new-york/#comments</comments>
		<pubDate>Sun, 01 Jun 2008 11:41:34 +0000</pubDate>
		<dc:creator>Philip</dc:creator>
		
		<category><![CDATA[life]]></category>

		<category><![CDATA[new york]]></category>

		<category><![CDATA[travel]]></category>

		<guid isPermaLink="false">http://www.fiveclouds.com/?p=50</guid>
		<description><![CDATA[<p><a href="http://www.flickr.com/photos/24096441@N05/2535812552/"class="flickr-image" title="New York Cab" rel="flickr-mgr"  onclick="javascript:urchinTracker ('/outbound/article/www.flickr.com');"><img class="flickr-medium" src="http://farm3.static.flickr.com/2001/2535812552_760bd89f7d_t.jpg" alt="New York Cab" align="left" /></a>I just returned from a week in New York,  besides being blessed with nice weather it was great to reconnect with a number of old friends and also the opportunity to make some new ones.</p>
<p>I had forgotten how nice sitting in the <a href="http://www.bryantpark.org/amenities/dining.php" onclick="javascript:urchinTracker ('/outbound/article/www.bryantpark.org');">Bryant Park Cafe</a> on a sunny afternoon with a glass of wine was,  and besides the rather dodgy hotel arrangements I was able to get over to <a href="http://www.fao.com/" onclick="javascript:urchinTracker ('/outbound/article/www.fao.com');">FAO Schwartz</a> for some birthday present shopping.</p>
<p>Also it was a good chance to play with <a href="http://www.brightkite.com" onclick="javascript:urchinTracker ('/outbound/article/www.brightkite.com');">BrightKite</a> a little more,  given that Manila doesn&#8217;t have any streets in Google Maps it makes for a somewhat&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/24096441@N05/2535812552/"class="flickr-image" title="New York Cab" rel="flickr-mgr"  onclick="javascript:urchinTracker ('/outbound/article/www.flickr.com');"><img class="flickr-medium" src="http://farm3.static.flickr.com/2001/2535812552_760bd89f7d_t.jpg" alt="New York Cab" align="left" /></a>I just returned from a week in New York,  besides being blessed with nice weather it was great to reconnect with a number of old friends and also the opportunity to make some new ones.</p>
<p>I had forgotten how nice sitting in the <a href="http://www.bryantpark.org/amenities/dining.php" onclick="javascript:urchinTracker ('/outbound/article/www.bryantpark.org');">Bryant Park Cafe</a> on a sunny afternoon with a glass of wine was,  and besides the rather dodgy hotel arrangements I was able to get over to <a href="http://www.fao.com/" onclick="javascript:urchinTracker ('/outbound/article/www.fao.com');">FAO Schwartz</a> for some birthday present shopping.</p>
<p>Also it was a good chance to play with <a href="http://www.brightkite.com" onclick="javascript:urchinTracker ('/outbound/article/www.brightkite.com');">BrightKite</a> a little more,  given that Manila doesn&#8217;t have any streets in Google Maps it makes for a somewhat challenging experience.  I can really start to see that over the second half of this year location aware software is going to be kicking up much more - and hopefully it&#8217;ll be an interesting way find out what is going on around me.</p>
<p>All I need now is iPhone 2.0 - and counting down to that too&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fiveclouds.com/2008/06/01/just-back-from-new-york/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Where do Entrepreneurs meet?</title>
		<link>http://www.fiveclouds.com/2008/05/16/where-do-entrepreneurs-meet/</link>
		<comments>http://www.fiveclouds.com/2008/05/16/where-do-entrepreneurs-meet/#comments</comments>
		<pubDate>Fri, 16 May 2008 01:30:22 +0000</pubDate>
		<dc:creator>Philip</dc:creator>
		
		<category><![CDATA[life]]></category>

		<category><![CDATA[comedy]]></category>

		<guid isPermaLink="false">http://www.fiveclouds.com/?p=48</guid>
		<description><![CDATA[<p><img class="size-full wp-image-47" title="add-meetup" src="http://www.fiveclouds.com/wp-content/uploads/2008/05/add-meetup.png" alt="" width="330" height="188" /></p>
<p>Got this in an e-mail this morning - made me chuckle&#8230;</p>
]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-47" title="add-meetup" src="http://www.fiveclouds.com/wp-content/uploads/2008/05/add-meetup.png" alt="" width="330" height="188" /></p>
<p>Got this in an e-mail this morning - made me chuckle&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fiveclouds.com/2008/05/16/where-do-entrepreneurs-meet/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Getting off the ground with EC2</title>
		<link>http://www.fiveclouds.com/2008/05/03/getting-off-the-ground-with-ec2/</link>
		<comments>http://www.fiveclouds.com/2008/05/03/getting-off-the-ground-with-ec2/#comments</comments>
		<pubDate>Sat, 03 May 2008 12:21:59 +0000</pubDate>
		<dc:creator>Philip</dc:creator>
		
		<category><![CDATA[technology]]></category>

		<category><![CDATA[ec2]]></category>

		<category><![CDATA[paas]]></category>

		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.fiveclouds.com/?p=43</guid>
		<description><![CDATA[<a href="http://www.fiveclouds.com/wp-content/uploads/2008/05/images.jpeg"><img align="left" class="size-medium wp-image-44" title="Amazon" src="http://www.fiveclouds.com/wp-content/uploads/2008/05/images.jpeg" alt="Amazon" width="150" height="44" /></a>Over the past couple of months I have been playing around with <a href="http://aws.amazon.com">Amazon Web Services</a>,  I have to admit they are an interesting and powerful solution to many of the IT as a Service models that have hung around in the past.  While the technology is definitely still low level I thought I would spend a rainy Saturday in Manila playing around with the Ruby EC2 library and see what I could.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.fiveclouds.com/wp-content/uploads/2008/05/images.jpeg" ><img align="left" class="size-medium wp-image-44" title="Amazon" src="http://www.fiveclouds.com/wp-content/uploads/2008/05/images.jpeg" alt="Amazon" width="150" height="44" /></a>Over the past couple of months I have been playing around with <a href="http://aws.amazon.com" onclick="javascript:urchinTracker ('/outbound/article/aws.amazon.com');">Amazon Web Services</a>,  I have to admit they are an interesting and powerful solution to many of the IT as a Service models that have hung around in the past.  While the technology is definitely still low level I thought I would spend a rainy Saturday in Manila playing around with the Ruby EC2 library and see what I could.</p>
<p>In order to get things started I simply set-up the new <a href="http://github.com/grempe/amazon-ec2/wikis" onclick="javascript:urchinTracker ('/outbound/article/github.com');">Amazon EC2</a> gem.</p>
<pre><code class="terminal"># ONE TIME ONLY
# Execute this on each machine where you install gems to add github as a gem source
gem sources -a http://gems.github.com/

# ONE TIME ONLY
# Only if you had a previous version of the gem installed from RubyForge before we moved to GitHub
# Say 'Y' to remove all previous versions and all binaries when prompted.
sudo gem uninstall amazon-ec2

# Finally install the gem
sudo gem install grempe-amazon-ec2
</code></pre>
<p>Once installed we need to add a couple of environment variables  to our .bash_profile,  this is useful to have around if you want to use the EC2 CLI anyway.  Here&#8217;s what I put in my .bash_profile (on Leopard):</p>
<pre><code class="terminal">export RUBYOPT="rubygems"

# For amazon-ec2 and amazon s3 ruby gems
export AMAZON_ACCESS_KEY_ID="YOUR_ACCESS_KEY_ID"
export AMAZON_SECRET_ACCESS_KEY="YOUR_SECRET_ACCESS_KEY_ID"
</code></pre>
<p><code class="terminal"> </code></p>
<p> </p>
<p>Before going too far we will need to create a key pair that we can use,  this is easy enough - lets start up the ec2sh and create a new keypair.  We store this in a local file.</p>
<pre><code class="terminal">&gt;&gt; File.open("pdodds-keypair","w") { |file| file.write(@ec2.create_keypair(:key_name=&gt;"pdodds-keypair").keyMaterial); file.close }
&gt;&gt; File.chmod 0700,"pdodds-keypair"
</code></pre>
<p>First up I thought I would take a look around the images that are available so that I can pick up something that I could use,  since I&#8217;m bedding slowly into the Ruby world I thought I would use ec2sh and get back some information on what is available.</p>
<pre><code class="terminal">&gt;&gt; @ec2.describe_images(:owner=&gt;'amazon').imagesSet.item.each { |image| puts "#{image.imageId} #{image.imageLocation}" } == true
</code></pre>
<p>Beside the scruffy ==true on the end basically this prints out the ID&#8217;s and locations of the Amazon owned images.  For those new to EC2 these are the images of operating systems that we can use to boot our instance.  EC2 machines currently only support persistent filesystems for those lucky enough to get on the beta (anyone going to invite me?).  These means that when you boot up a machine the image is all you have, and when you power down anything you have written to disk is lost.  In a while we&#8217;ll touch upon bundles - this is a way to allow you to build AMIs (Amazon Machine Image) and store them away.</p>
<p>The output of our command should give us a nice list,  we can do a little to filter down the results (since their is a fair few to choose from).</p>
<pre><code class="terminal">&gt;&gt; @ec2.describe_images(:owner=&gt;'amazon').imagesSet.item.each { |image| puts "#{image.imageId} #{image.imageLocation}" if image.imageLocation =~ /rails/} == true
</code></pre>
<p>This gave me a few to choose from</p>
<pre><code class="terminal">ami-0cf61365 ec2-on-rails-0.9.2/ec2-on-rails.manifest.xml
ami-540aef3d ec2onrails/ec2onrails-v0_9_7-x86_64.manifest.xml
ami-5c0aef35 ec2onrails/ec2onrails-v0_9_7-i386.manifest.xml
ami-6bcd2802 rails1-51193934437/rails1-51193934437.img.manifest.xml
ami-86c025ef ec2onrails/ec2onrails-v0_9_5-i386.manifest.xml
ami-99c025f0 ec2onrails/ec2onrails-v0_9_5-x86_64.manifest.xml
ami-99f712f0 ec2-on-rails-0.9.1/ec2-on-rails.manifest.xml
ami-a38b6eca amis.winelibrary.com/rails_svn.manifest.xml
ami-a3f91cca ec2onrails/ec2onrails-v0_9_3.manifest.xml
ami-a93adfc0 webficient/ec2_images/fc8-rails2-nginx-mysql/image.manifest.xml
ami-e620c58f ec2onrails/ec2onrails-v0_9_6-i386.manifest.xml
ami-ecc12485 ec2onrails/ec2onrails-v0_9_4-i386.manifest.xml
ami-efc12486 ec2onrails/ec2onrails-v0_9_4-x86_64.manifest.xml
ami-f920c590 ec2onrails/ec2onrails-v0_9_6-x86_64.manifest.xml
</code></pre>
<p>So lets get down to business - time to provision one of those servers for our use,  I have to admit this was the bit that I always thought was cool,  we can just use a simple command from ec2sh to create an instance of a server.  Back to ec2sh.</p>
<pre><code class="terminal">&gt;&gt; @ec2.run_instances :image_id=&gt;"ami-a93adfc0", :key_name=&gt;"pdodds-keypair"
</code></pre>
<p>This will dump out a bunch of XML,  basically the response from the web service.  You could probably have done something to pretty up the response,  however for now we can look up our instances to see if it is running</p>
<pre><code class="terminal">&gt;&gt; @ec2.describe_instances.reservationSet.item.each{ |reservation| puts "Reservation: #{reservation.reservationId}"; reservation.instancesSet.item.each {|item| puts "Instance: #{item.instanceId} #{item.instanceType} #{item.launchTime} #{item.dnsName}" }} == true
</code></pre>
<p>This will output the happy information,  as long as the server has had a few minutes to provision and start.</p>
<pre><code class="terminal">i-9e5a97f7 m1.small 2008-05-03T09:19:12.000Z ec2-75-101-212-159.compute-1.amazonaws.com
</code></pre>
<p>Next we need to authorize the access to the server</p>
<pre><code class="terminal">&gt;&gt; @ec2.authorize_security_group_ingress :group_name=&gt;"default",:from_port=&gt;22,:ip_protocol=&gt;"tcp", :to_port=&gt;22, :cidr_ip=&gt;"0.0.0.0/24"
</code></pre>
<p>Finally now from terminal we can SSH into the server,  note that we do need to include the key that we created.</p>
<pre><code class="terminal">ssh -i pdodds-keypair root@ec2-75-101-212-159.compute-1.amazonaws.com
</code></pre>
<p>There we go - we have an instance of that Unix box, up and running, we can play around with the instance and when it&#8217;s time to say goodbye its a simple as going back to our ec2sh session and running:</p>
<pre><code class="terminal">&gt;&gt; @ec2.terminate_instances :instance_id=&gt;"i-9e5a97f7"
</code></pre>
<p>I&#8217;ll follow up this blog post with how you can modify and then store images, later however I hope this shows how you can use the Ruby EC2 API to play around and create servers <img src='http://www.fiveclouds.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> happy provisioning in the cloud&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fiveclouds.com/2008/05/03/getting-off-the-ground-with-ec2/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
