<?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>UnderworldLabs.org</title>
	<atom:link href="http://underworldlabs.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://underworldlabs.org</link>
	<description>My Dropbox</description>
	<lastBuildDate>Tue, 20 Mar 2012 23:54:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>UnixBench</title>
		<link>http://underworldlabs.org/blog/unixbench/</link>
		<comments>http://underworldlabs.org/blog/unixbench/#comments</comments>
		<pubDate>Tue, 20 Mar 2012 12:01:48 +0000</pubDate>
		<dc:creator>Takis Diakoumis</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://underworldlabs.org/?p=208</guid>
		<description><![CDATA[A friend of mine wanted to see if his machine could beat the pants off my machine. I figured a pee-ing competition is always fun...]]></description>
			<content:encoded><![CDATA[<p>A friend of mine wanted to see if his machine could beat the pants off my machine. I figured a pee-ing competition is always fun so at his request I downloaded <a href="http://code.google.com/p/byte-unixbench/">UnixBench</a>.</p>
<p>UnixBench is a super cool utility that performs a series of benchmark tests and provides some fairly comprehensive results against a baseline system. It takes a while to run &#8211; especially if you have multiple CPUs. Mine took about 30 minutes. </p>
<p>I wanted the best (or lets say most representative) score I could get so I killed everything and effectively booted into runlevel 3 &#8211; which is almost everything except X. So here are my results&#8230; </p>
<p><iframe style="height:600px;width:635px" src="http://underworldlabs.org/wp-content/files/2012/03/fitter-2012-03-20-01.html"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://underworldlabs.org/blog/unixbench/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SOAP Response Codes</title>
		<link>http://underworldlabs.org/blog/soap-response-codes/</link>
		<comments>http://underworldlabs.org/blog/soap-response-codes/#comments</comments>
		<pubDate>Thu, 20 Oct 2011 11:47:04 +0000</pubDate>
		<dc:creator>Takis Diakoumis</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://underworldlabs.org/?p=192</guid>
		<description><![CDATA[I recently had an issue where as a part of a SOAP fault response I wanted to return a HTML response code that better represented...]]></description>
			<content:encoded><![CDATA[<p>I recently had an issue where as a part of a SOAP fault response I wanted to return a HTML response code that better represented what the error was &#8211; in this case that a particular record requested via the service did not exist for the supplied identifier.</p>
<p>This sort of request might return a response code of 200 in a more typical web request with perhaps a relevant error message or similar. It felt that within a service &#8211; no human action, intervention or response &#8211; something a little more informative or appropriate was required such as <em>422 Unprocessable Entity</em>.</p>
<p>To achieve this I defined an out fault interceptor as follows.</p>
<pre>
        &lt;jaxws:outFaultInterceptors&gt;
            &lt;bean class="mypackage.MyServiceOutInterceptor"/&gt;
        &lt;/jaxws:outFaultInterceptors&gt;
</pre>
<p>The implementation was rather simple in the end:</p>
<pre>
public class MyServiceOutInterceptor extends AbstractSoapInterceptor {

    public MyServiceOutInterceptor() {
        super(Phase.SEND);
    }

    public void handleMessage(SoapMessage soapMessage) throws Fault {

        Set&lt;Class&lt;?&gt;&gt; formats = soapMessage.getContentFormats();
        for (Class&lt;?&gt; format : formats) {

            Object content = soapMessage.getContent(format);
            if (isServiceError(content)) {
                ServiceFaultException exception = asServiceError(content);
                soapMessage.put(org.apache.cxf.message.Message.RESPONSE_CODE, exception.getResponseCode());
                break;
            }

        }

    }

    private ServiceFaultException asServiceError(Object content) {
        return (ServiceFaultException) ((Fault) content).getCause();
    }

    private boolean isServiceError(Object content) {
        return (content.getClass().isAssignableFrom(SoapFault.class))
                &#038;&#038; (((Fault) content).getCause() instanceof ServiceFaultException);
    }

}
</pre>
<p>We check that we have a valid error, and then deliberately set the response code for the SOAP message.</p>
<p>The ServiceFaultException class shown above is defined as a web fault using @WebFault and the relevant error message and code is set as required.</p>
<p>So, the merits of returning 422 for an entity that can not be found aside, the above demonstrates how to change the response code returned as a part of a SOAP fault to anything you like.</p>
]]></content:encoded>
			<wfw:commentRss>http://underworldlabs.org/blog/soap-response-codes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RIP Steve Jobs</title>
		<link>http://underworldlabs.org/blog/rip-steve-jobs/</link>
		<comments>http://underworldlabs.org/blog/rip-steve-jobs/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 06:39:03 +0000</pubDate>
		<dc:creator>Takis Diakoumis</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[apple]]></category>

		<guid isPermaLink="false">http://underworldlabs.org/?p=166</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://underworldlabs.org/wp-content/files/2011/06/apple-steve-jobs-rip-630.png"><img src="http://underworldlabs.org/wp-content/files/2011/06/apple-steve-jobs-rip-630.png" alt="" title="apple-steve-jobs-rip-630" width="630" height="513" class="aligncenter size-full wp-image-187" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://underworldlabs.org/blog/rip-steve-jobs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UUID and PostgreSQL</title>
		<link>http://underworldlabs.org/blog/uuid-and-postgresql/</link>
		<comments>http://underworldlabs.org/blog/uuid-and-postgresql/#comments</comments>
		<pubDate>Thu, 02 Jun 2011 05:57:10 +0000</pubDate>
		<dc:creator>Takis Diakoumis</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://underworldlabs.org/?p=162</guid>
		<description><![CDATA[I often use UUID values as secondary identifiers for my domain objects. This is usually generated for my domain entity very simply as follows: java.util.UUID.randomUUID().toString();...]]></description>
			<content:encoded><![CDATA[<p>I often use UUID values as secondary identifiers for my domain objects. This is usually generated for my domain entity very simply as follows:</p>
<pre>java.util.UUID.randomUUID().toString();</pre>
<p>and set directly either as a field variable on instantiation or sometimes in an interceptor on save.</p>
<p>On a recent project we had to migrate some data across some new entities and needed something outside the application to generate the UUID values for each record. I knew that PostgreSQL supported UUID generation &#8211; though I had never used this before &#8211; and even has a <code>UUID</code> data type. Getting to the function itself proved a little more challenging as it isn&#8217;t actually included on a typical installation and is found within the <code>postgres-contrib</code> package. So, to install&#8230;</p>
<pre>
apt-get install postgresql-contrib
sudo su -c "psql pdrivers < /usr/share/postgresql/8.4/contrib/uuid-ossp.sql" postgres
</pre>
<p>The above installs the relevant <code>contrib</code> package, and creates the UUID functions from the script within the unpacked <code>contrib</code> directory (substitute version as required). We are also installing the function as a superuser (<code>postgres</code> in this case) as we need a user with the ability to install functions using <code>C</code> code.</p>
<p>To generate UUID values execute as follows:</p>
<pre>SELECT uuid_generate_v1();

c1b84d24-90c9-11e0-aa50-33cd7e76d901
e9e3b374-90c9-11e0-8f0f-df46bcf47f20
eea6fba0-90c9-11e0-9ce0-a33175edde97
</pre>
<p>Some good references on the available functions can be found <a href="http://www.postgresql.org/docs/9.0/static/uuid-ossp.html">here</a> with some further info on the package <a href="http://www.ossp.org/">OSSP</a> UUID pages <a href="http://www.ossp.org/pkg/lib/uuid/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://underworldlabs.org/blog/uuid-and-postgresql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VirtualBox update woes</title>
		<link>http://underworldlabs.org/blog/virtualbox-update-woes/</link>
		<comments>http://underworldlabs.org/blog/virtualbox-update-woes/#comments</comments>
		<pubDate>Thu, 19 May 2011 14:07:57 +0000</pubDate>
		<dc:creator>Takis Diakoumis</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[virtualbox]]></category>
		<category><![CDATA[virtualization]]></category>

		<guid isPermaLink="false">http://underworldlabs.org/?p=129</guid>
		<description><![CDATA[Not sure what happened here but upgrading from VirtualBox 3.x to 4.06 (with Oracle branding too &#8211; eek), killed a few of my VMs. First...]]></description>
			<content:encoded><![CDATA[<p>Not sure what happened here but upgrading from VirtualBox 3.x to 4.06 (with Oracle branding too &#8211; eek), killed a few of my VMs. First USB 2.0 support is now a part of some separate package, and then 4 out of 9 VMs would not start with messages like:</p>
<pre>unknown configuration node //DB2</pre>
<p>At this point i was thinking how the hell did VirtualBox know about my DB2 installation &#8211; assuming that my DB2 database installed on that VM was an issue. A little confusing here too given that i would get the VM window and then it would just close so it wasn&#8217;t getting anywhere near starting the OS &#8211; WindowsXP.</p>
<p>Anyway a bit of digging about and then this:</p>
<pre>takisd@fitter:~> VBoxManage getextradata WindowsXP-1 enumerate
Key: GUI/LastCloseAction, Value: powerOff
Key: GUI/LastGuestSizeHint, Value: 640,480
Key: GUI/LastNormalWindowPosition, Value: 1437,47,640,527
Key: GUI/LastWindowPostion, Value: 1422,111,1224,867
Key: GUI/MiniToolBarAlignment, Value: bottom
Key: GUI/MiniToolBarAutoHide, Value: on
Key: GUI/SaveMountedAtRuntime, Value: yes
Key: GUI/ShowMiniToolBar, Value: yes
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/DB2/GuestPort, Value: 50000
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/DB2/HostPort, Value: 50000
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/DB2/Protocol, Value: TCP
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/Firebird/GuestPort, Value: 3050
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/Firebird/HostPort, Value: 3050
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/Firebird/Protocol, Value: TCP
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/Oracle/GuestPort, Value: 1521
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/Oracle/HostPort, Value: 1521
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/Oracle/Protocol, Value: TCP
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/SQLServer/GuestPort, Value: 1433
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/SQLServer/HostPort, Value: 1433
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/SQLServer/Protocol, Value: TCP
</pre>
<p>&#8230;where <code>WindowsXP-1</code> is the name of the virtual machine.</p>
<p>So all my intalled DBs on that particular VM had a setting on them for respective ports. I use most VMs for testing against various databases for various apps and mainly for <a href="http://executequery.org">Execute Query</a>. </p>
<p>I vaguely recalled setting these some time ago &#8211; probably as a network response for forwarding &#8211; either way i didn&#8217;t really remember and resetting these with empty values fixed the problem like this:</p>
<pre>VBoxManage setextradata WindowsXP-1 "VBoxInternal/Devices/pcnet/0/LUN#0/Config/DB2/GuestPort"</pre>
<p>&#8230;and so on for the other nodes. Restarting the OS worked just fine and I now have my VMs back. Not sure if this documented anywhere by Oracle &#8211; quite the gotcha for seemingly simple upgrade.</p>
<p>&#8230;and here i was thinking WTF did Oracle do now&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://underworldlabs.org/blog/virtualbox-update-woes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache 2.2.3-x with mod_jk</title>
		<link>http://underworldlabs.org/blog/apache-2-2-3-x-with-mod_jk/</link>
		<comments>http://underworldlabs.org/blog/apache-2-2-3-x-with-mod_jk/#comments</comments>
		<pubDate>Tue, 10 May 2011 00:03:37 +0000</pubDate>
		<dc:creator>Takis Diakoumis</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://underworldlabs.org/?p=145</guid>
		<description><![CDATA[Running CentOS 5 on one of my personal (playpen) servers, i recently performed a simple yum update which brought in the package httpd-2.2.3-45.el5.centos.1.i386 and its...]]></description>
			<content:encoded><![CDATA[<p>Running CentOS 5 on one of my personal (playpen) servers, i recently performed a simple yum update which brought in the package <code>httpd-2.2.3-45.el5.centos.1.i386</code> and its dependents in addition to some others including some python and selinux updates. So no biggie so far &#8211; but restarting apache brought me a world of pain as I spent the next 24 hours trying to diagnose why any http request to <em>any</em> domain on that server would never complete and [seemingly] never timeout.</p>
<p>Frankly, I don&#8217;t know for sure which particular package was the culprit. There was nothing logged that pointed to any issues &#8211; indeed any and all logs I went through indicated all was well. I also could not find a single thing online that resembled what I was experiencing. I have managed my own servers for about 10 years now. I&#8217;m far from a competent Linux admin but I usually know enough to get by or just enough to get out of trouble, so I became severely frustrated when a seemingly simple upgrade could result in all my sites being made unavailable.</p>
<p>I started by stripping back my Apache install to next to nothing &#8211; which brought back a single <em>static</em> site i set up as a test. Then line-by-line I reintroduced various modules, includes and various directive lines. At the very bottom I had my mod_jk include &#8211; which by the way serves over half of my sites. </p>
<p>As soon as I reintroduced mod_jk it dumped. After much fiddling, rebuilding mod_jk, installing from rpm, downgrading packages, tinkering with various mod_jk parameters, using <code>strace</code> on startup (great article on debugging with <code>strace</code> <a href="http://linuxgazette.net/132/vishnu.html">here</a>) I finally put it down to the inclusion of the following:</p>
<pre>
&lt;Location /*/META-INF/*&gt;
    Deny From All
&lt;/Location&gt;
&lt;Location /*/WEB-INF/*&gt;
    Deny From All
&lt;/Location&gt;
</pre>
<p>The above tells Apache as a global directive to disallow any access to the protected Java web application directories <code>WEB-INF</code> and <code>META-INF</code>. </p>
<p>The lines above have been a part of my apache/mod_jk config for as long as I remember. I haven&#8217;t yet had a good look as to why the above is no longer acceptable &#8211; I&#8217;m just relieved to have everything back up. I would have expected Apache to complain about configuration errors, issue the relevant message and fail to start just like it does for most other issues. Not so in this case and furthermore it silently takes down the whole server instance.</p>
<p>I didn&#8217;t find any references to this anywhere &#8211; perhaps this will help someone equally confused as I was <img src='http://underworldlabs.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://underworldlabs.org/blog/apache-2-2-3-x-with-mod_jk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sign-Up and Login pages</title>
		<link>http://underworldlabs.org/blog/sign-up-and-login-pages/</link>
		<comments>http://underworldlabs.org/blog/sign-up-and-login-pages/#comments</comments>
		<pubDate>Thu, 05 May 2011 14:46:12 +0000</pubDate>
		<dc:creator>Takis Diakoumis</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://underworldlabs.org/?p=137</guid>
		<description><![CDATA[Just read a great piece on login and sign-up page development. I have spent a ridiculous amount of time in the past on both of...]]></description>
			<content:encoded><![CDATA[<p>Just read a great piece on login and sign-up page development. I have spent a ridiculous amount of time in the past on both of these and <a href="http://www.smashingmagazine.com/2011/05/05/innovative-techniques-to-simplify-signups-and-logins/">this</a> piece on <a href="http://http://www.smashingmagazine.com/">SmashingMagazine</a> offers some interesting new ideas especially around the use of setting your password on a sign-up form and login user name practices. </p>
<p>Admittedly when registering on a new site I almost always just cut and paste my password into the repeat password field. Indeed with various systems now insisting on specific character patterns, i would imagine the purpose-defeating practice of cut/paste into the repeat password field is only more prevalent. The Smashing piece includes a <a href="http://jquery.org/">JQuery</a> <a href="http://www.prothemer.com/blog/research-and-development/new-jquery-plugin-targeting-usability-for-password-masking-on-forms/">plugin</a> that allows for a single password field that may be toggled to show the entered password &#8211; definitely worth a look.</p>
<p>The login user name suggestion is much simpler &#8211; allow users the ability to login with either a user name or email address &#8211; both should be unique in any case and your email address is certainly harder to forget. </p>
<p>Check the article out here &#8212; <a href="http://www.smashingmagazine.com/2011/05/05/innovative-techniques-to-simplify-signups-and-logins/">Innovative Techniques To Simplify Sign-Ups and Log-Ins</a>.</p>
<p>Some other useful login/sign-up resources i&#8217;ve found useful in the past are listed below.</p>
<ul>
<li><a href="http://www.smashingmagazine.com/2008/07/04/web-form-design-patterns-sign-up-forms/">http://www.smashingmagazine.com/2008/07/04/web-form-design-patterns-sign-up-forms/</a></li>
<li><a href="http://www.hongkiat.com/blog/login-registration-form/">http://www.hongkiat.com/blog/login-registration-form/</a></li>
<li><a href="http://www.smashingmagazine.com/2009/06/23/10-ui-design-patterns-you-should-be-paying-attention-to/">http://www.smashingmagazine.com/2009/06/23/10-ui-design-patterns-you-should-be-paying-attention-to/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://underworldlabs.org/blog/sign-up-and-login-pages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Favicon Builder</title>
		<link>http://underworldlabs.org/blog/favicon-builder/</link>
		<comments>http://underworldlabs.org/blog/favicon-builder/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 00:20:28 +0000</pubDate>
		<dc:creator>Takis Diakoumis</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://underworldlabs.org/?p=119</guid>
		<description><![CDATA[Recently fiddling with some favicon creation. I usually use The GIMP to do my image work including favicons but for whatever reason recently, one I...]]></description>
			<content:encoded><![CDATA[<p>Recently fiddling with some favicon creation. I usually use <a href="http://www.gimp.org/" target="_blank">The GIMP</a> to do my image work including favicons but for whatever reason recently, one I was working on just would not render in Firefox (&#8230;IE was fine &#8211; go figure).</p>
<p>In my subsequent travels i found <a href="﻿http://www.faviconbuilder.com" target="_blank">Favicon Builder</a>.  Simply upload a gif, jpg or png image and it generates a favicon that rendered perfectly. The generated download is a zip archive with a readme file, animated icon as a gif, favicon ico and a couple of scaled png files. Very nice <img src='http://underworldlabs.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://underworldlabs.org/blog/favicon-builder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compiling a debian kernel for 2.6.29+</title>
		<link>http://underworldlabs.org/blog/compiling-a-debian-kernel-for-2629/</link>
		<comments>http://underworldlabs.org/blog/compiling-a-debian-kernel-for-2629/#comments</comments>
		<pubDate>Mon, 25 May 2009 14:53:51 +0000</pubDate>
		<dc:creator>Takis Diakoumis</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[kernel]]></category>

		<guid isPermaLink="false">http://underworldlabs.org/?p=110</guid>
		<description><![CDATA[A recent [documented] change in the debian kernel-package effectively rendered the &#8211;initrd flag to a kernel build all but useless (a little harsh, i know)....]]></description>
			<content:encoded><![CDATA[<p>A recent [documented] change in the <a href="http://debian.org" target="_blank">debian</a> kernel-package effectively rendered the &#8211;initrd flag to a kernel build all but useless (a little harsh, i know). In actual fact, it now only notifies the hook scripts that an initrd is required &#8211; however one is no longer created.</p>
<p>This created a little bit of fuss on the various lists and a few bug reports at <a href="http://bugs.debian.org" target="_blank">bugs.debian.org</a>. Some of the more informative ones can be found <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=524499" target="_blank">here</a> and <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=528373" target="_blank">here</a>.</p>
<p>In short, the change was documented in the package NEWS and README files with hints to check out the post script sample scripts and apply these to the relevant directories in /etc/kernel.</p>
<p>I copied over the following:</p>
<pre>/usr/share/kernel-package/examples/etc/kernel/postinst.d/initramfs</pre>
<p>to</p>
<pre>/etc/kernel/postinst.d</pre>
<p>and</p>
<pre>/usr/share/kernel-package/examples/etc/kernel/postrm.d/initramfs</pre>
<p>to</p>
<pre>/etc/kernel/postrm.d</pre>
<p>From there just a normal build and install and all was well.</p>
]]></content:encoded>
			<wfw:commentRss>http://underworldlabs.org/blog/compiling-a-debian-kernel-for-2629/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building with Hudson</title>
		<link>http://underworldlabs.org/blog/building-with-hudson/</link>
		<comments>http://underworldlabs.org/blog/building-with-hudson/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 00:50:26 +0000</pubDate>
		<dc:creator>Takis Diakoumis</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://underworldlabs.org/?p=101</guid>
		<description><![CDATA[I&#8217;ve used a few build servers now including Continuum, CruiseControl and Bamboo. I recently started using Hudson and immediately found it easier to set up...]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve used a few build servers now including <a href="http://continuum.apache.org/" target="_blank">Continuum</a>, <a href="http://cruisecontrol.sourceforge.net/" target="_blank">CruiseControl</a> and <a href="http://www.atlassian.com/software/bamboo/" target="_blank">Bamboo</a>. I recently started using <a href="https://hudson.dev.java.net/" target="_blank">Hudson</a> and immediately found it easier to set up and use than any of the others. It supports <a href="http://ant.apache.org/" target="_blank">Ant</a> and <a href="http://http://maven.apache.org/" target="_blank">Maven</a> builds very nicely as well allowing any sort of script or batch execution. Build notifications can be configured using email and RSS.</p>
<p><img class="aligncenter size-full wp-image-107" title="hudson-screenshot1" src="http://underworldlabs.org/wp-content/files/2009/02/hudson-screenshot1.png" alt="hudson-screenshot1" width="402" height="274" /></p>
<p><a href="http://blog.objectmentor.com/articles/category/uncle-bobs-blatherings" target="_blank">Uncle Bob</a> of <a href="http://objectmentor.com/" target="_blank">ObjectMentor</a> has posted a quick demo <a href="http://blog.objectmentor.com/articles/2008/12/11/hudson-a-very-quick-demo" target="_blank">here</a>.</p>
<p>You can download either a WAR file or pre-packaged for your distro including RPMs and Debian packages. Well worth a look.</p>
]]></content:encoded>
			<wfw:commentRss>http://underworldlabs.org/blog/building-with-hudson/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

