<?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>fiveclouds &#187; technology</title>
	<atom:link href="http://www.fiveclouds.com/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fiveclouds.com</link>
	<description>collaboration, creativity and the next big thing</description>
	<lastBuildDate>Tue, 25 May 2010 11:06:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Charlotte 2.0.2 Podcast</title>
		<link>http://www.fiveclouds.com/2010/02/01/cltblogarea15-charlotte-2-0-2/</link>
		<comments>http://www.fiveclouds.com/2010/02/01/cltblogarea15-charlotte-2-0-2/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 16:04:53 +0000</pubDate>
		<dc:creator>Philip</dc:creator>
				<category><![CDATA[life]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[charlotte]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.fiveclouds.com/?p=232</guid>
		<description><![CDATA[<p>The podcasts continued last month,  thanks for everyone for being involved and looking forward to the next one.  </p>
<p>You can get all the details from <a href="http://cltblog.com/5428">CLTBlog</a>.</p>
<p>If you want to come down to meet the people also we&#8217;ll be getting an invite out.  Hopefully see you there.</p>
<p></p>
]]></description>
			<content:encoded><![CDATA[<p>The podcasts continued last month,  thanks for everyone for being involved and looking forward to the next one.  </p>
<p>You can get all the details from <a href="http://cltblog.com/5428">CLTBlog</a>.</p>
<p>If you want to come down to meet the people also we&#8217;ll be getting an invite out.  Hopefully see you there.</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/mKBuSsqP7NA&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en_US&#038;feature=player_embedded&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/mKBuSsqP7NA&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en_US&#038;feature=player_embedded&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fiveclouds.com/2010/02/01/cltblogarea15-charlotte-2-0-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Charlotte 2.0.1 Podcast</title>
		<link>http://www.fiveclouds.com/2009/12/18/starting-charlotte-podcasts/</link>
		<comments>http://www.fiveclouds.com/2009/12/18/starting-charlotte-podcasts/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 03:13:02 +0000</pubDate>
		<dc:creator>Philip</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[charlotte]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[startup]]></category>

		<guid isPermaLink="false">http://www.fiveclouds.com/?p=223</guid>
		<description><![CDATA[<p>The past few months have been incredibly busy,  a large part of that was finishing off work for 2009 and starting to prepare things for 2010.  After spending a year floating around doing a few side projects here and there I really wanted to start 2010 in the right way.</p>
<p>Since coming to Charlotte several years ago I have tried several paths to connecting with the tech scene in the city,  restarting the <a href="http://www.charlottejug.org">Charlotte Java User Group</a> and then helping organize <a href="http://www.barcampcharlotte.org">two Barcamps</a>. I&#8217;m met up with some great people in the city &#8211; but I still have felt like&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>The past few months have been incredibly busy,  a large part of that was finishing off work for 2009 and starting to prepare things for 2010.  After spending a year floating around doing a few side projects here and there I really wanted to start 2010 in the right way.</p>
<p>Since coming to Charlotte several years ago I have tried several paths to connecting with the tech scene in the city,  restarting the <a href="http://www.charlottejug.org">Charlotte Java User Group</a> and then helping organize <a href="http://www.barcampcharlotte.org">two Barcamps</a>. I&#8217;m met up with some great people in the city &#8211; but I still have felt like I haven&#8217;t really met the start-up elements,  those individuals who are driven to creating new technology companies and working in environments which foster innovation.</p>
<p>After the last Barcamp I was chatting with some of the guys from CLTBlog and Area15 and we started talking about doing a set of podcasts to explore that side of Charlotte and hopefully bring more of these activities to the surface.  After that there was the usual lull of getting back to daily work and filtering out enough time &#8211; then I decided to get together with Justin from CLTBlog and the <a href="http://www.netphase.com">Netphase</a> guys and very quickly (within a few days) we had our first podcast at <a href="http://www.areafifteen.com">Area15</a>.   One of the big hits was meeting up with Josh from <a href="http://www.charlotte20.com">Charlotte 2.0</a> &#8211; he is a man on a mission to help bring more start-ups to Charlotte and I&#8217;m sure I&#8217;m going to be listening and helping him with it all I can.</p>
<p><object width="400" height="255"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=8127298&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=8127298&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="255"></embed></object>
<p><a href="http://vimeo.com/8127298">Charlotte 2.0.1</a> from <a href="http://vimeo.com/jruckman">Justin Ruckman</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>We are working to produce another podcast in mid January.  Hopefully it will establish the conversation &#8211; something that needs to start if we are going to build some new tech start-ups here in Charlotte.  It all makes me feel much more excited about 2010 &#8211; and I&#8217;m looking forward to sharing more about what I&#8217;m going to be doing too!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fiveclouds.com/2009/12/18/starting-charlotte-podcasts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grails and Google AppEngine</title>
		<link>http://www.fiveclouds.com/2009/07/13/grails-and-google-appengine/</link>
		<comments>http://www.fiveclouds.com/2009/07/13/grails-and-google-appengine/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 15:20:13 +0000</pubDate>
		<dc:creator>Philip</dc:creator>
				<category><![CDATA[technology]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[grails]]></category>
		<category><![CDATA[jpa]]></category>

		<guid isPermaLink="false">http://www.fiveclouds.com/?p=158</guid>
		<description><![CDATA[<p>I have recently started a new project and I decided based on some of the application requirements and its rapid development that I would host it at <a href="http://appengine.google.com">Google AppEngine</a>.  For a web framework I went with Grails due to the rapid prototyping that it makes possible.</p>
<p>I can&#8217;t really go to much into the functionality of the app,  however I thought I would share some of the experiences I&#8217;ve had building the application in the Google environment with Grails.  First off,  if you are going to be doing any serious work with Grails then you&#8217;ll need to get a&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>I have recently started a new project and I decided based on some of the application requirements and its rapid development that I would host it at <a href="http://appengine.google.com">Google AppEngine</a>.  For a web framework I went with Grails due to the rapid prototyping that it makes possible.</p>
<p>I can&#8217;t really go to much into the functionality of the app,  however I thought I would share some of the experiences I&#8217;ve had building the application in the Google environment with Grails.  First off,  if you are going to be doing any serious work with Grails then you&#8217;ll need to get a copy of Intellij,  the experience developing with it is much better than others I tried (and improving even more in the 9.0M1 release).  The initial cut of the application was written using GORM and against a local database,  however after trying<a href="http://grails.org/plugin/gorm-jpa"> GORM-JPA</a> (it is very early still though moving quickly), I decided that trying to take a RDBMS mapping over to AppEngine datastore was not going to be a productive route.  The first real lesson of AppEngine is understanding the data store,  it is strange but several of the applications I have worked on over the past 4-5 years have started to move away from traditional RDBMS.  I&#8217;m not about to get into the <a href="http://blog.oskarsson.nu/2009/06/nosql-debrief.html">NoSQL</a> argument, other than to say ultimately you need to sit down and understand the tools that are available.  AppEngine DataStore is a powerful storage engine (I&#8217;m purposefully not calling it a database),  though it does take a little getting used to.  If you are planning to take a look I would start with the recent <a href="http://www.youtube.com/watch?v=2jW2iSKDipY">Google IO presentation by Max Ross</a>.</p>
<p>Since I have been working with HBase lately some of the concepts weren&#8217;t so alien, however it I did find that using JPA annotations actually lead me into incorrect thinking at times,  while adding the annotations I was immediately thinking in the RDBMS mapping terms.  Since I wanted to use the JPA annotations, but didn&#8217;t feel that GORM-JPA was quite ready I switched over and used the <a href="http://www.grails.org/JPA+Plugin">Grails JPA plugin</a>,  in some ways this meant creating a DAO to allow me to interact with the store.  In the end I did this through the creation of a service which I used in the controllers,  it was pretty generic thanks to the nature of groovy &#8211; in the end I can see myself probably moving back to GORM later on,  though in the meantime having a closer relationship with the JPA interface allowed me to better understand how relationships were being managed by AppEngine.  GORM has a tendency to abstract you a little to much at times and coming to terms with a new type of storage engine means that abstraction leads to another level of indirection.  I can see that as time passes and the ins and outs of AppEngine Datastore become more like second nature then that indirection is something that is easy to handle,  though at the beginning I think it is easier to get used to the datastore without it there.</p>
<p>Plugins is one of the powerful aspects of Grails,  however one of the problems you encounter in the AppEngine world is the file limit (currently 3,000).  While adding a lot of UI plugins speeds up development you can quickly find that you have blown the file limit.  Also make sure you watch the $USER_HOME/grails/1.1.1/projects/{yourproject}/stage directory,  if you start removing things from your application (ie. unneeded JS) then you might well find that they are remaining in the stage directory.</p>
<p>If you are using YUI you can switch to their servers, so that you don&#8217;t have to hold all the YUI files,  first add the following to your BootStrap:</p>
<pre class="brush: plain;">
def init = {servletContext -&gt;
JavascriptTagLib.LIBRARY_MAPPINGS.yui = []
}
</pre>
<p>Then in your main.gsp make sure you reference the CSS and JavaScript you need.</p>
<p>If you are using the grails-ui plugin 1.0.4 it is currently using the javax.rmi.UID class to generate UUIDs, this class is blacklisted by GAE/J and therefore you would need to change the GrailsUITagLibService.groovy and remove the import.  I found that I was able to use the UUID class to get a similar effect (see <a href="http://jira.codehaus.org/browse/GRAILSPLUGINS-1290">JIRA</a>)</p>
<pre class="brush: plain;">
def getUniqueId = { 'gui_' + DigestUtils.md5Hex(UUID.randomUUID().toString()) }
</pre>
<p>Once you have the basics in place,  then you will need security.  Obviously Google provides API&#8217;s to allow this to exist,  however often you need more complex security than is currently provided by the Google API.  In Grails I naturally jumped for the Aecgi plugin,  however after a few battles with its close connection with Hibernate (I get the feeling that plugin does a little too much and would be well served by being broken up into a several plugins rather than a lot of configuration in one plugin).  Next up was Stark Security plugin &#8211; I have to admit it was a little new to me,  however I was able to quickly implement this in grails and also get it functioning in GAE/J.  Basically I needed to create the basic DAO stuff using the plugin then change it to use JPA methods (as seen below):</p>
<p><strong>User.groovy</strong></p>
<pre class="brush: plain;">

import org.datanucleus.jpa.annotations.Extension
import org.springframework.security.GrantedAuthority
import org.springframework.security.userdetails.UserDetails
import javax.persistence.*

/**
* This class is the default UserDetails implementation for the Stark Security plugin.
* Since instances of this class will be used by the underlying Spring Security framework across
* Hibernate sessions, we can't have any lazy loading in here (see special handling of roles below).
*/
@Entity
class User implements UserDetails {

@Id
@GeneratedValue (strategy = GenerationType.IDENTITY)
@Extension (vendorName = &quot;datanucleus&quot;, key = &quot;gae.encoded-pk&quot;, value = &quot;true&quot;)
String id

@Column
String username

@Column
String password

List&lt;String&gt; roles = new ArrayList&lt;String&gt;();

GrantedAuthority[] getAuthorities() {
return roles.collect { new Role(authority:it) } as GrantedAuthority[]
}

boolean isAccountNonLocked() {
return true
}

def setAccountNonLocked(boolean nonLocked) {}

boolean isCredentialsNonExpired() {
return true
}

def setCredentialsNonExpired(boolean nonExpired) {}

boolean isAccountNonExpired() {
return true
}

def setAccountNonExpired(boolean acctNonExpired) {}

boolean isEnabled() {
return true
}

def setEnabled(boolean enabled) {}
}
</pre>
<p><strong>Role.groovy</strong></p>
<pre class="brush: plain;">

class Role implements GrantedAuthority {

String authority

static final ANONYMOUS = 'IS_AUTHENTICATED_ANONYMOUSLY'
// Add your roles here so you can reference them, for instance:
static final ADMIN = 'ROLE_ADMIN_USER'

// This list holds all roles, convenient when you're declaring controller methods
// that should be available to everybody (see AccessController for instance).  When
// you add roles to your system, make sure you add them to this list as well.
static final ALL_ROLES = [ANONYMOUS,ADMIN]

int compareTo(Object o) {
if (o instanceof Role) {
return this.authority.compareTo(o.authority)
}
return 0
}

String toString() {
return authority
}
}
</pre>
<p>Also once in AppEngine it is a little more sensitve to reflection,  with the standard plugin I got:</p>
<pre class="brush: plain;">
java.lang.IllegalAccessException: Reflection is not allowed on private int java.util.ArrayList.size
</pre>
<p>This was down to line 217 of the StarkSecurityGrailsPlugin.groovy having:</p>
<pre class="brush: plain;">
if (authFilters.size &lt; 1) {
</pre>
<p>When it should have been</p>
<pre class="brush: plain;">
if (authFilters.size() &lt; 1) {
</pre>
<p>I opened a <a href="http://jira.codehaus.org/browse/GRAILSPLUGINS-1298">JIRA for this one</a>.  Also you might find that plugins embed javascript (such as the Grails UI plugin),  in which case you will want to change the StarkSecurityConfig.groovy to allow access to these files:</p>
<pre class="brush: plain;">

authorizations = [
'/': Role.ALL_ROLES,
'/js/**': Role.ALL_ROLES,
'/css/**': Role.ALL_ROLES,
'/images/**': Role.ALL_ROLES,
'/plugins/**': Role.ALL_ROLES,
'/j_acegi_logout': Role.ALL_ROLES
]
</pre>
<p>Another problem was changing the log4j not to write to the file system (you&#8217;ll get a restricted class exception).  This is done with:</p>
<pre class="brush: plain;">
'null' name:'stacktrace'
</pre>
<p>While building the system up,  I also discovered the problems of not setting the <em>seralizationUIDs</em> on classes that might end up in session (ie. Role),  make sure you set it on the class or you will need to flush you local cookies after deployment.</p>
<p>Also I found a nasty little problem in the formRemote tag,  basically it would operate in the development server but not on AppEngine itself,  in the end I dug around I found that the JavascriptTagLib.groovy made some assumptions about a variable being a map which it wasn&#8217;t (in fact it was a String in this case).  Due to Groovy&#8217;s ability to reflect private values (which just feels dangerous),  you would end up with:</p>
<pre class="brush: plain;">

&lt;span&gt;[deve11/5.334872088869876828]&lt;/span&gt;.&lt;stderr&gt;: java.lang.SecurityException: java.lang.IllegalAccessException: Reflection is not allowed on private final char[] java.lang.String.value
</pre>
<p>I ended up having to pull the JavascriptTagLib.groovy into the project and make the fix there, and opened another <a href="http://jira.codehaus.org/browse/GRAILS-4826">JIRA in grails</a> for it.</p>
<p>So there it is &#8211; a brief little walkthrough getting Grails operating in Google AppEngine. GAE/J feels a little clunky at times and it probably does suffer from being a little rushed out of the door.  However,  after you start to get your head around the restrictions it does start to become a good platform.  Over time I&#8217;m sure we are going to see further improvements in the Google Platform,  and while I am still working with the Amazon style Infrastructure as s Service world starting to look more closely at Platform as a Service has opened my eyes to some of its benefits.  The days of managing your database and server could soon be gone &#8211; though I think it will be a specific type of application that benefits most.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fiveclouds.com/2009/07/13/grails-and-google-appengine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Charlotte JUG &#8211; Social Night</title>
		<link>http://www.fiveclouds.com/2009/07/11/charlotte-jug-social-night/</link>
		<comments>http://www.fiveclouds.com/2009/07/11/charlotte-jug-social-night/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 16:40:48 +0000</pubDate>
		<dc:creator>Philip</dc:creator>
				<category><![CDATA[life]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[beer]]></category>
		<category><![CDATA[charlotte]]></category>
		<category><![CDATA[jug]]></category>
		<category><![CDATA[social]]></category>

		<guid isPermaLink="false">http://www.fiveclouds.com/?p=200</guid>
		<description><![CDATA[<p><img align="left" style="border:0" class="size-full wp-image-201" title="CharlotteJUG" src="http://www.fiveclouds.com/wp-content/uploads/2009/07/Picture-1.png" alt="CharlotteJUG" width="163" height="125" /></a>This month we are running late on getting the notice out! However, this months meeting will be a social event, basically a chance to meet up and talk among the group at our favorite watering hole (Dilworth Neighborhood Grill).</p>
<p>Check out the <a href="http://www.charlottejug.org/2009/07/11/july-15th-social-night-with-charlotte-jug/">Charlotte JUG </a>site for information and the link to the invitation.<a href="http://www.charlottejug.org"></p>
]]></description>
			<content:encoded><![CDATA[<p><img align="left" style="border:0" class="size-full wp-image-201" title="CharlotteJUG" src="http://www.fiveclouds.com/wp-content/uploads/2009/07/Picture-1.png" alt="CharlotteJUG" width="163" height="125" /></a>This month we are running late on getting the notice out! However, this months meeting will be a social event, basically a chance to meet up and talk among the group at our favorite watering hole (Dilworth Neighborhood Grill).</p>
<p>Check out the <a href="http://www.charlottejug.org/2009/07/11/july-15th-social-night-with-charlotte-jug/">Charlotte JUG </a>site for information and the link to the invitation.<a href="http://www.charlottejug.org"></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fiveclouds.com/2009/07/11/charlotte-jug-social-night/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Cloud Market is Live!</title>
		<link>http://www.fiveclouds.com/2009/05/21/the-cloud-market-is-live/</link>
		<comments>http://www.fiveclouds.com/2009/05/21/the-cloud-market-is-live/#comments</comments>
		<pubDate>Thu, 21 May 2009 14:07:45 +0000</pubDate>
		<dc:creator>Philip</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[life]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[cloudmarket]]></category>
		<category><![CDATA[ec2]]></category>

		<guid isPermaLink="false">http://www.fiveclouds.com/?p=154</guid>
		<description><![CDATA[<p>We have opened the doors on <a href="http://www.thecloudmarket.com">The Cloud Market</a>!  We have a lot more features yet to release, so do keep checking up on progress and you can also follow us on <a href="http://twitter.com/thecloudmarket">twitter</a>.</p>
<p><img class="aligncenter size-full wp-image-134" title="picture-1" src="http://www.fiveclouds.com/wp-content/uploads/2009/03/picture-1.png" alt="picture-1" width="375" height="154" /></p>
<p>We are hoping over time to build up more and more functionality to help people find the AWS images they need quickly and effectively and also allowing them to track the evolution of images (both paid and free).  Also we have already just added support for EU images!</p>
<p>I&#8217;m sure I&#8217;ll have more to blog on it in the future &#8211; right now its&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>We have opened the doors on <a href="http://www.thecloudmarket.com">The Cloud Market</a>!  We have a lot more features yet to release, so do keep checking up on progress and you can also follow us on <a href="http://twitter.com/thecloudmarket">twitter</a>.</p>
<p><img class="aligncenter size-full wp-image-134" title="picture-1" src="http://www.fiveclouds.com/wp-content/uploads/2009/03/picture-1.png" alt="picture-1" width="375" height="154" /></p>
<p>We are hoping over time to build up more and more functionality to help people find the AWS images they need quickly and effectively and also allowing them to track the evolution of images (both paid and free).  Also we have already just added support for EU images!</p>
<p>I&#8217;m sure I&#8217;ll have more to blog on it in the future &#8211; right now its back to cooking up business ideas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fiveclouds.com/2009/05/21/the-cloud-market-is-live/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deploying HBase to your local Maven repo</title>
		<link>http://www.fiveclouds.com/2009/04/13/deploying-hbase-to-your-local-maven-repo/</link>
		<comments>http://www.fiveclouds.com/2009/04/13/deploying-hbase-to-your-local-maven-repo/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 01:33:33 +0000</pubDate>
		<dc:creator>Philip</dc:creator>
				<category><![CDATA[technology]]></category>
		<category><![CDATA[hadoop]]></category>
		<category><![CDATA[hbase]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://www.fiveclouds.com/?p=148</guid>
		<description><![CDATA[<p>I have been working on <a href="http://hadoop.apache.org">Hadoop</a> and <a href="http://hadoop.apache.org/hbase">HBase</a> lately, and one of the first things I hit was the fact that they aren&#8217;t in a Maven repo.  I found this <a href="http://methodsignature.blogspot.com/2008/08/hadoop-hbase-with-maven2.html">blog post</a> which got me started, but I thought I would push out an update for the new HBase 0.19.1 release.</p>
<p>Grab the HBase POM <a href="http://fiveclouds.s3.amazonaws.com/hbase.pom">here</a> (not official) and then set HBASE_HOME and run the <a href="http://fiveclouds.s3.amazonaws.com/deploy-deps.sh">deploy_deps.sh </a>script.</p>
<p>Hope it helps :)</p>
]]></description>
			<content:encoded><![CDATA[<p>I have been working on <a href="http://hadoop.apache.org">Hadoop</a> and <a href="http://hadoop.apache.org/hbase">HBase</a> lately, and one of the first things I hit was the fact that they aren&#8217;t in a Maven repo.  I found this <a href="http://methodsignature.blogspot.com/2008/08/hadoop-hbase-with-maven2.html">blog post</a> which got me started, but I thought I would push out an update for the new HBase 0.19.1 release.</p>
<p>Grab the HBase POM <a href="http://fiveclouds.s3.amazonaws.com/hbase.pom">here</a> (not official) and then set HBASE_HOME and run the <a href="http://fiveclouds.s3.amazonaws.com/deploy-deps.sh">deploy_deps.sh </a>script.</p>
<p>Hope it helps :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fiveclouds.com/2009/04/13/deploying-hbase-to-your-local-maven-repo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What&#8217;s next in Enterprise Data Management</title>
		<link>http://www.fiveclouds.com/2009/04/03/whats-next-in-enterprise-data-management/</link>
		<comments>http://www.fiveclouds.com/2009/04/03/whats-next-in-enterprise-data-management/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 21:01:47 +0000</pubDate>
		<dc:creator>Philip</dc:creator>
				<category><![CDATA[technology]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[edm]]></category>
		<category><![CDATA[enterprise]]></category>

		<guid isPermaLink="false">http://www.fiveclouds.com/?p=139</guid>
		<description><![CDATA[<p>I have been working in the past 10 months in the Enterprise Data Management space to target both existing technologies and also looking at where the space is headed.  While EDM covers a huge range of business domains I&#8217;ve been specifically focused on the management of reference data in financial services companies.  The recent events in the world have left a lot of questions open to how to manage much of the information that underpins the way in which the market manages risk, matching and more.</p>
<p>Over the past 10 years I have certainly been in and out of the&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>I have been working in the past 10 months in the Enterprise Data Management space to target both existing technologies and also looking at where the space is headed.  While EDM covers a huge range of business domains I&#8217;ve been specifically focused on the management of reference data in financial services companies.  The recent events in the world have left a lot of questions open to how to manage much of the information that underpins the way in which the market manages risk, matching and more.</p>
<p>Over the past 10 years I have certainly been in and out of the field working with a number of large banks and also with vendors such as Goldensource.  Back in 2003 I started a small SOA-based data management platform with some business partners and while I went off to live in the world of open source for a couple of years then continued forward.  Now with my time split between data management and cloud technologies I have started to look to how they can be brought together to build something different and new.</p>
<p>In the past the concept was that an organization would choose a single source of information and map it to a fixed model that would represent the information they are holding.  However,  with the range of data that is available now many organizations are consuming multiple sources of information and trying to build what represents a golden copy.  This tended to be a painful process,  usually managed mainly by technology and has traditionally resulted in large scale implementation of complex products that attempt to provide mapping and rule technology to allow the creation of a single representation.  Often times this has taken too long to meet the requirements and ended up too inflexible to meet the needs of internal data consumers, who&#8217;s view of the information and needs can vary wildly.</p>
<p>Changing views tend now to look about building more than one golden representation depending on the needs of the internal consumer,  and also now look at how &#8216;source tagging&#8217; information can allow for a more defined path between the internal consumer and the external information.  The principal change here has been that information entering the enterprise is usually nothing more than a collection of facts that need to be brought together to give meeting,  what this is starting to mean is that rather than placing the effort at the beginning of the process with mapping to a golden representation (or model) we see simply storing the facts and then materializing a view of the information is more critical.  Also we see that consumers need more flexibility in the being able to decide what source they want &#8211; with more complex patterns of determination by comparison and fuzzy matching.  Through all of these we need to never lose sight of the tight connection between the source of the information as it entered the enterprise and ultimately the link to the end consumer within the organization.</p>
<p>So what does this mean for the future of Enterprise Data Management,  well I believe why the concept of a golden structure and understanding of it is still critical the actual underpinning technology will probably move away from a fixed relational model.  The need to store and track the bitesize facts of knowlegde from multiple sources will lead to looking at different approaches.  Also I believe that we will be looking at a move away from the weight of BPEL style rules processing to match and identify relationships to a convergence between the representation of the data and how elements of it &#8211; or relationships &#8211; are defined.  This approach would allow a consumer to not only map source information that they need into the structure (which would be extensible by the consumer) but also define how they might see relationships or source choices based on different criteria.  This is an important point since many EDM projects first need to become the single source of information and at the same time reconstruct existing representations and relationships to service existing consumers.</p>
<p>The technologies for scaling and building such solutions has come a long way in the last 6 years and now we see more credence given to key/value databases and more dynamic storage engines,  there is no doubt in my mind that as we move into the next stage of data management (driven in no small part by the needs to control the vast amount of information within the financial services sector) we will see more products looking to leverage these types of storage.  Finally,  in the past 18 months I have been working with a mix of cloud technologies on various projects and the ability to start understanding how we can look to not only host but also process these complex processes in a highly scalable and elastic environment will be the cornerstone of making much of this new generation of solution feasible and available.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fiveclouds.com/2009/04/03/whats-next-in-enterprise-data-management/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Head in the Clouds</title>
		<link>http://www.fiveclouds.com/2009/03/31/head-in-the-clouds/</link>
		<comments>http://www.fiveclouds.com/2009/03/31/head-in-the-clouds/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 01:48:03 +0000</pubDate>
		<dc:creator>Philip</dc:creator>
				<category><![CDATA[technology]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[jboss5]]></category>
		<category><![CDATA[thecloudmarket]]></category>

		<guid isPermaLink="false">http://www.fiveclouds.com/?p=132</guid>
		<description><![CDATA[<p>Its been a while since I put anything up on the blog so I thought it was about time,  the past couple of months have been very busy.  Between working on a new version of an Enterprise Data Management platform &#8211; based on JBoss 5 &#8211; and also working on a new project based on Amazon Cloud technology.  My experiences with JBoss 5 have been good so far &#8211; though I&#8217;m looking forward to getting the system into production soon to prove out much of the stack (more on that another time)<br />
<img class="size-full wp-image-134 alignright" title="picture-1" src="http://www.fiveclouds.com/wp-content/uploads/2009/03/picture-1.png" alt="picture-1"&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Its been a while since I put anything up on the blog so I thought it was about time,  the past couple of months have been very busy.  Between working on a new version of an Enterprise Data Management platform &#8211; based on JBoss 5 &#8211; and also working on a new project based on Amazon Cloud technology.  My experiences with JBoss 5 have been good so far &#8211; though I&#8217;m looking forward to getting the system into production soon to prove out much of the stack (more on that another time)<br />
<img class="size-full wp-image-134 alignright" title="picture-1" src="http://www.fiveclouds.com/wp-content/uploads/2009/03/picture-1.png" alt="picture-1" width="375" height="154" /></p>
<p>While the other project &#8211; The Cloud Market &#8211; has marked a return to Ruby on Rails for me.  Took a little bit of time to balance switching daily between the two &#8211; i have to admit I enjoyed the challenge.  Its also good to be working with some great people on the project and certainly a different world to the Enterprise Data Management space.</p>
<p>Right now we are still in a closed beta (and looking for interested parties) &#8211; however the aim&#8217;s of the site are quite simple.</p>
<ul>
<li>To provide a simple way to find Amazon images that suit your needs</li>
<li>A way for public image owners to produce a shop front for their offerings</li>
<li>A scanner technology that allows people to request a &#8216;scan&#8217; of a machine image,  which details information such as the installs RPM&#8217;s,  available space and more</li>
</ul>
<p>If you are interested in getting involved drop me a line (philip.dodds at me dot com), sign up at the <a href="http://www.thecloudmarket.com">site</a> or follow <a href="http://www.twitter.com/thecloudmarket">@thecloudmarket</a> on twitter.  We are hoping to be live in the coming weeks and continuing to add some new and interesting features as we go.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fiveclouds.com/2009/03/31/head-in-the-clouds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Charlotte JUG Drinks in December</title>
		<link>http://www.fiveclouds.com/2008/12/07/charlotte-jug-drinks-in-december/</link>
		<comments>http://www.fiveclouds.com/2008/12/07/charlotte-jug-drinks-in-december/#comments</comments>
		<pubDate>Sun, 07 Dec 2008 00:15:55 +0000</pubDate>
		<dc:creator>Philip</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[barcamp]]></category>
		<category><![CDATA[charlotte]]></category>
		<category><![CDATA[jug]]></category>

		<guid isPermaLink="false">http://www.fiveclouds.com/?p=107</guid>
		<description><![CDATA[<p>I have been wrapped up in lots of stuff lately,  including moving down to Ballantyne and starting work on a few new things.</p>
<p>Anyone in Charlotte should get down and meet up the<a href="http://www.charlottejug.org"> Charlotte JUG</a> for the <a href="http://anyvite.com/events/home/o97saannxx/charlotte-jug-dec-meeting">December Drinks</a>.   Also I have been messed around far too much with themes &#8211; though hopefully that will settle down soon.  And also we will have a big update on the <a href="http://www.barcampcharlotte.com">BarCamp Charlotte</a>.</p>
]]></description>
			<content:encoded><![CDATA[<p>I have been wrapped up in lots of stuff lately,  including moving down to Ballantyne and starting work on a few new things.</p>
<p>Anyone in Charlotte should get down and meet up the<a href="http://www.charlottejug.org"> Charlotte JUG</a> for the <a href="http://anyvite.com/events/home/o97saannxx/charlotte-jug-dec-meeting">December Drinks</a>.   Also I have been messed around far too much with themes &#8211; though hopefully that will settle down soon.  And also we will have a big update on the <a href="http://www.barcampcharlotte.com">BarCamp Charlotte</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fiveclouds.com/2008/12/07/charlotte-jug-drinks-in-december/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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) &#8211; 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&#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) &#8211; 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 class="brush: xml;">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$
</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 &#8211; 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 class="brush: xml;">&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;
</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>
<pre class="brush: xml;">&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;</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>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
