<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>makeitfaster</title>
	<atom:link href="http://makeitfaster.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://makeitfaster.wordpress.com</link>
	<description>performance, scalability and optimizing processes</description>
	<lastBuildDate>Mon, 19 Dec 2011 14:47:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='makeitfaster.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>makeitfaster</title>
		<link>http://makeitfaster.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://makeitfaster.wordpress.com/osd.xml" title="makeitfaster" />
	<atom:link rel='hub' href='http://makeitfaster.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Development workstation in the Cloud</title>
		<link>http://makeitfaster.wordpress.com/2011/10/18/development-workstation-in-the-cloud/</link>
		<comments>http://makeitfaster.wordpress.com/2011/10/18/development-workstation-in-the-cloud/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 14:24:07 +0000</pubDate>
		<dc:creator>Sebastian Vilstrup</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://makeitfaster.wordpress.com/?p=196</guid>
		<description><![CDATA[I have a dream that one day I will not need to have a dedicated machine to do software development. That I will be free from the shackles of physical hardware and do all my development in the cloud. I work as a consultant, so I change places quite often. It should not matter whether [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeitfaster.wordpress.com&amp;blog=14016707&amp;post=196&amp;subd=makeitfaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have a dream that one day I will not need to have a dedicated machine to do software development. That I will be free from the shackles of physical hardware and do all my development in the cloud.</p>
<p>I work as a consultant, so I change places quite often. It should not matter whether I&#8217;m at work, at home or at a client site. When virtualization first came along, I was pleased. My prayers were heard. In practice, the virtual machines required serious physical hardware to run at any decent speed and that still chained me to a big machine.</p>
<p>Then came the cloud. Hmm, not so much different from running my own machine&#8230; on the surface. In practice, it gives me a lot of freedom. I just rent my powerful machine instead of buying it.</p>
<p>I work with java, grails and .NET and for my purposes I use Windows 7 64bit most of the time. Sure, Linux is great too, but not for .NET work. Many of the cloud hosts do not support running windows so those are out of the question. I need a very responsive system, so I can&#8217;t feel the difference between running a remote desktop on my LAN or on the cloud.</p>
<p>That sets a very high requirement for the 4 big factors of cloud performance:</p>
<p><strong>                  Network latency, Disk IOPS, RAM and CPU</strong></p>
<p>Network latency is the most important. I need the host to register my mouse movement and my typing quickly. Cable quality, router speed and distance all matter. For my purposes I need to run it really close to home. I live in Copenhagen, Denmark and the network latency to Rackspace and Amazon is too great. Even their european servers are too far away in ping-time. I&#8217;ve tried host with 50ms ping time or less, and it&#8217;s still too much. I tried a great cloudhost called Cloudsigma in Zürich, but even though their performance was great, their latency was not good enough for me.</p>
<p>Up until now there was nothing to do. Host a server at home maybe&#8230;? Nah, I don&#8217;t want to run a powerful server at home. Not because I can&#8217;t, but because it&#8217;ll be a dinosaur in two years anyway. And what if i need 10 machines for a projekt? Or another 32 GB of ram? Nope, not for me. Cloud it is.</p>
<p>Cloud.dk is a new danish provider of cloud computers. Their datacenter is around 3 ms away from me, and their disk/ram/cpu are pretty good too. I&#8217;ll show some benchmarks later.<br />
Here&#8217;s a little how-to of how to get a Windows 7 running on their infrastructure. I&#8217;ll assume that you have an account and know how to fire up a virtual machine from one of their existing images.</p>
<p><strong>Step 1</strong><br />
Download the ISO image of your operating system. I used my MSDN account to download Windows 7 Enterprise with SP1 in the 64 bit version</p>
<p><strong>Step 2</strong><br />
Make the ISO available via HTTP. In my case i uploaded it to an S3 bucket and made it public.</p>
<p><strong>Step 3</strong><br />
Go into the cloud.dk control panel and go to &#8220;images&#8221; and then &#8220;fetch image&#8221; <a href="http://i.imgur.com/NkhRk.jpg">http://i.imgur.com/NkhRk.jpg</a></p>
<p><strong>Step 4</strong><br />
Instruct cloud.dk to fecth the image from your httpserver. Take a look at the following image <a href="http://i.imgur.com/Y8LGG.jpg">http://i.imgur.com/Y8LGG.jpg</a>. Be sure to change the URL and be sure to add a default user.<br />
That will start a job that fetches the image. Be sure to have a fast HTTP server, as the job will time out if it runs too long. You can go to the jobs tab to see the status. <a href="http://i.imgur.com/YHytl.jpg">http://i.imgur.com/YHytl.jpg</a></p>
<p><strong>Step 5</strong><br />
When the download is complete, you&#8217;ll have a new image in the list: <a href="http://i.imgur.com/Z8BsX.jpg">http://i.imgur.com/Z8BsX.jpg</a>. If you don&#8217;t see this, your download has failed for some reason.</p>
<p><strong>Step 6</strong><br />
Make a new machine. Use the new image as the primary disk and add another 50GB or 100 GB disk if you need the extra space. I recommend at least 4 GB/ 2 vCPU if you plan on running Visual Studio 2010. <a href="http://i.imgur.com/jRpR0.jpg">http://i.imgur.com/jRpR0.jpg</a><br />
Switch the primary and secondary disks: <a href="http://i.imgur.com/ht0gQ.jpg">http://i.imgur.com/ht0gQ.jpg</a>. Think of this as putting the harddisk as the primary and the uploaded iso image as the DVD-ROM. IF YOU FORGET THIS STEP, THE INSTALL WILL FAIL as it will be unable to partition correctly.<br />
Start the server: <a href="http://i.imgur.com/6A921.jpg">http://i.imgur.com/6A921.jpg</a>. Let the machine run for a couple of minutes and then start the console: <a href="http://i.imgur.com/oziFm.jpg">http://i.imgur.com/oziFm.jpg</a><br />
If you have java installed, it&#8217;ll start a program (webstart) that acts as a vnc console. You should see the windows install screen like this: <a href="http://i.imgur.com/p9Lrp.jpg">http://i.imgur.com/p9Lrp.jpg</a></p>
<p><strong>Step 7</strong><br />
Install windows as you normally would.</p>
<p><strong>Step 8</strong><br />
Enable Remote Desktop in windows 7<br />
Close the console<br />
Login with remote desktop <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Your Win 7 should be ready for you to setup as you like.<br />
My install (from boot to remote desktop login) took around 12 minutes! That&#8217;s fast! And that time even included waiting for the human (me) to react</p>
<p><strong>Step 9</strong><br />
Shutdown the machine. If you logged on with remote desktop you can shutdown with this command:<br />
shutdown -s -f -t 3<br />
After that, you wait for the VM to be completely off. When it&#8217;s off, remove the ISO image from the server: <a href="http://i.imgur.com/8W6KM.jpg">http://i.imgur.com/8W6KM.jpg</a><br />
After that, delete the disk image. <a href="http://i.imgur.com/cn77v.jpg">http://i.imgur.com/cn77v.jpg</a>. It&#8217;s a copy of the uploaded image anyway, so no need to waste cloud storage on it. You can still make new machines with the uploaded image.</p>
<p><strong>Step 10</strong><br />
That&#8217;s it. No more required steps. I do have a few suggestions for activities though:<br />
- Get all windows updates<br />
- Set up the cloud.dk firewall. RDP uses port 3389<br />
- Enable power management and set to hibernate after 1 hour without use. Execute the command &#8220;powercfg -H ON&#8221; in an elevated prompt to enable hibernation feature of of Win7 if it&#8217;s not enabled already.<br />
- Figure out how to start and stop your machine from the commandline API<br />
- Disable the pesky UAC feature.</p>
<p>Oh, I almost forgot I promised some benchmarks. Remember this is the 4 GB / 2 vCPU machine configuration.</p>
<ul>
<li>Geekbench: 4580 &#8211; A decent score, as expected.</li>
<li>Crystal Disk Mark 4K QD32: 43.77 MB/s read and 11.84 MB/s write. An impressive score for a cloud machine. They&#8217;re using a TSM system, where their SAN has a mix og ssd&#8217;s, harddrives, large ram caches and migrates automatically. Seems to work out nicely for them</li>
<li>Speedtest.net: Ping 5ms, download 186.64 Mbps, uploda 180.86 Mbps</li>
<li>Pingtest.net: Packet loss 0%, PIng 4 ms, jitter 1 ms.</li>
<li>Details here: <a href="http://i.imgur.com/qb9Jr.jpg">http://i.imgur.com/qb9Jr.jpg</a></li>
</ul>
<p>So: in summary, a decent RAM/CPU score, a good network score and a disk score that&#8217;s similar to a low end SSD. That&#8217;s just numbers, and good ones too, but&#8230;<br />
What&#8217;s my &#8220;feel&#8221; for it? Well, it feels very snappy and fast. Complete windows install in 12 minutes. Windows updates download and install quickly. Any sort of manipulation of the user interface feels almost as if it was a local machine. Everything loads quickly and programs start up fast. It feels almost like it&#8217;s a SSD <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Enjoy your new workstation in the cloud!</strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/makeitfaster.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/makeitfaster.wordpress.com/196/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/makeitfaster.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/makeitfaster.wordpress.com/196/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/makeitfaster.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/makeitfaster.wordpress.com/196/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/makeitfaster.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/makeitfaster.wordpress.com/196/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/makeitfaster.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/makeitfaster.wordpress.com/196/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/makeitfaster.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/makeitfaster.wordpress.com/196/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/makeitfaster.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/makeitfaster.wordpress.com/196/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeitfaster.wordpress.com&amp;blog=14016707&amp;post=196&amp;subd=makeitfaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://makeitfaster.wordpress.com/2011/10/18/development-workstation-in-the-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/847aa858bdde329dba936656262c7539?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">svilstrup</media:title>
		</media:content>
	</item>
		<item>
		<title>Java JDK silent install on windows</title>
		<link>http://makeitfaster.wordpress.com/2011/03/25/java-jdk-silent-install-on-windows/</link>
		<comments>http://makeitfaster.wordpress.com/2011/03/25/java-jdk-silent-install-on-windows/#comments</comments>
		<pubDate>Fri, 25 Mar 2011 13:36:07 +0000</pubDate>
		<dc:creator>Sebastian Vilstrup</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://makeitfaster.wordpress.com/?p=176</guid>
		<description><![CDATA[I hate next-next-next installers. Up until now, I had to endure the horrors of that, while installing the Java JDK on windows. Thank to my colleague Erik, I don&#8217;t have to do that anymore. With his help, I discovered how to do a silent command line install of the entire JDK: UPDATE: this article turned [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeitfaster.wordpress.com&amp;blog=14016707&amp;post=176&amp;subd=makeitfaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I hate next-next-next installers. Up until now, I had to endure the horrors of that, while installing the Java JDK on windows.<br />
Thank to my colleague Erik, I don&#8217;t have to do that anymore. With his help, I discovered how to do a silent command line install of the entire JDK:</p>
<p>UPDATE: this article turned obsolete. Instead I&#8217;ll provide the link to the &#8220;Installation notes&#8221; for the windows JDK 7:</p>
<p><a href="http://www.oracle.com/technetwork/java/javase/documentation/install-windows-152927.html">http://www.oracle.com/technetwork/java/javase/documentation/install-windows-152927.html</a></p>
<p>I had succes with this command line:</p>
<p>&nbsp;</p>
<pre>jdk-7u2-windows-i586.exe /s ADDLOCAL="ToolsFeature,SourceFeature" INSTALLDIR="%CD%\jdk7u2"</pre>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/makeitfaster.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/makeitfaster.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/makeitfaster.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/makeitfaster.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/makeitfaster.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/makeitfaster.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/makeitfaster.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/makeitfaster.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/makeitfaster.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/makeitfaster.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/makeitfaster.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/makeitfaster.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/makeitfaster.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/makeitfaster.wordpress.com/176/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeitfaster.wordpress.com&amp;blog=14016707&amp;post=176&amp;subd=makeitfaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://makeitfaster.wordpress.com/2011/03/25/java-jdk-silent-install-on-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/847aa858bdde329dba936656262c7539?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">svilstrup</media:title>
		</media:content>
	</item>
		<item>
		<title>Compiling and installing Apache webserver from source on redhat linux</title>
		<link>http://makeitfaster.wordpress.com/2011/03/25/compiling-and-installing-apache-webserver-from-source-on-linux/</link>
		<comments>http://makeitfaster.wordpress.com/2011/03/25/compiling-and-installing-apache-webserver-from-source-on-linux/#comments</comments>
		<pubDate>Fri, 25 Mar 2011 09:38:20 +0000</pubDate>
		<dc:creator>Sebastian Vilstrup</dc:creator>
				<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Apache source redhat httpd linux compile]]></category>

		<guid isPermaLink="false">http://makeitfaster.wordpress.com/?p=160</guid>
		<description><![CDATA[Just a quick post about something i had to to do today. It&#8217;s all in the Apache docs, but bits of it was hard to find. I was working on a redhat 4 64-bit Grab the source from http://httpd.apache.org/download.cgi I picked the Unix Source: httpd-2.2.17.tar.gz Unpack with tar xzf httpd-2.2.17.tar.gz Cd httpd-2.2.17 ./configure --prefix /path/to/apache [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeitfaster.wordpress.com&amp;blog=14016707&amp;post=160&amp;subd=makeitfaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Just a quick post about something i had to to do today. It&#8217;s all in the Apache docs, but bits of it was hard to find. I was working on a redhat 4 64-bit<br />
<small></small></p>
<ul>
<li>
<pre>Grab the source from <a title="Apache Source" href="http://httpd.apache.org/download.cgi#apache22" target="_blank">http://httpd.apache.org/download.cgi</a></pre>
<ul>
<li>
<pre>I picked the Unix Source: httpd-2.2.17.tar.gz</pre>
</li>
</ul>
</li>
<li>
<pre>Unpack with tar xzf httpd-2.2.17.tar.gz</pre>
</li>
<li>
<pre>Cd httpd-2.2.17</pre>
</li>
<li>
<pre>./configure --prefix /path/to/apache --enable-mods-shared=all --enable-proxy --enable-ssl</pre>
<ul>
<li>
<pre>If you leave out "--prefix ..." then the installation directory is set to /usr/local/apache2</pre>
</li>
</ul>
</li>
<li>
<pre>make</pre>
<ul>
<li>
<pre>Does all the compiling</pre>
</li>
</ul>
</li>
<li>
<pre>make install</pre>
<ul>
<li>
<pre>Installs into the directory that you wrote in --prefix</pre>
</li>
</ul>
</li>
<li>
<pre>Edit the /conf/httpd.conf if you want to set a another port or change some other setting</pre>
</li>
</ul>
<p><small></small><br />
Controlling the Apache server:</p>
<ul>
<li>/bin/apachectl -k start</li>
<li>/bin/apachectl -k stop</li>
<li>/bin/apachectl -k restart</li>
<li>/bin/apachectl -k graceful-stop</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/makeitfaster.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/makeitfaster.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/makeitfaster.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/makeitfaster.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/makeitfaster.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/makeitfaster.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/makeitfaster.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/makeitfaster.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/makeitfaster.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/makeitfaster.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/makeitfaster.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/makeitfaster.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/makeitfaster.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/makeitfaster.wordpress.com/160/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeitfaster.wordpress.com&amp;blog=14016707&amp;post=160&amp;subd=makeitfaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://makeitfaster.wordpress.com/2011/03/25/compiling-and-installing-apache-webserver-from-source-on-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/847aa858bdde329dba936656262c7539?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">svilstrup</media:title>
		</media:content>
	</item>
		<item>
		<title>Congratulations are in order :)</title>
		<link>http://makeitfaster.wordpress.com/2011/01/31/congratulations-are-in-order/</link>
		<comments>http://makeitfaster.wordpress.com/2011/01/31/congratulations-are-in-order/#comments</comments>
		<pubDate>Mon, 31 Jan 2011 15:30:32 +0000</pubDate>
		<dc:creator>Sebastian Vilstrup</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://makeitfaster.wordpress.com/?p=152</guid>
		<description><![CDATA[I am now a ScrumMaster with certificates and everything. We did a two day ScrumMaster certification training course with our entire company (around 40 or 50 people). It was a very good course and our teachers were both knowledgeable, experienced and very inspiring. I can recommend them if you&#8217;in the market for some training. Our [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeitfaster.wordpress.com&amp;blog=14016707&amp;post=152&amp;subd=makeitfaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I am now a ScrumMaster with certificates and everything.</p>
<p>We did a two day ScrumMaster certification training course with our entire company (around 40 or 50 people). It was a very good course and our teachers were both knowledgeable, experienced and very inspiring. I can recommend them if you&#8217;in the market for some training.</p>
<p>Our trainers were b<span style="color:#000000;">y </span><span style="text-decoration:underline;"><a href="https://sites.google.com/a/gertrudandcope.com/www/gertrudbj%C3%B8rnvig"><span style="color:#000000;">Gertrud Bjørnvig</span></a></span><span style="color:#000000;"> and </span><a href="https://sites.google.com/a/gertrudandcope.com/www/jimcoplien"><span style="color:#000000;">Jim Coplien</span></a> and their website is at: <a href="https://sites.google.com/a/gertrudandcope.com/www/">https://sites.google.com/a/gertrudandcope.com/www/</a></p>
<p>And here&#8217;s my proof and pretty certificate <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<a href='http://makeitfaster.wordpress.com/2011/01/31/congratulations-are-in-order/screenshot-9/' title='screenshot.9'><img data-attachment-id='153' data-orig-size='935,662' data-liked='0'width="150" height="106" src="http://makeitfaster.files.wordpress.com/2011/01/screenshot-9.jpeg?w=150&#038;h=106" class="attachment-thumbnail" alt="screenshot.9" title="screenshot.9" /></a>
<a href='http://makeitfaster.wordpress.com/2011/01/31/congratulations-are-in-order/screenshot-11/' title='screenshot.11'><img data-attachment-id='154' data-orig-size='1118,698' data-liked='0'width="150" height="93" src="http://makeitfaster.files.wordpress.com/2011/01/screenshot-11.jpeg?w=150&#038;h=93" class="attachment-thumbnail" alt="screenshot.11" title="screenshot.11" /></a>

<p>All in all a very good experience, and I feel much more enthusiastic about Scrum than I did before.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/makeitfaster.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/makeitfaster.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/makeitfaster.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/makeitfaster.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/makeitfaster.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/makeitfaster.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/makeitfaster.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/makeitfaster.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/makeitfaster.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/makeitfaster.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/makeitfaster.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/makeitfaster.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/makeitfaster.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/makeitfaster.wordpress.com/152/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeitfaster.wordpress.com&amp;blog=14016707&amp;post=152&amp;subd=makeitfaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://makeitfaster.wordpress.com/2011/01/31/congratulations-are-in-order/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/847aa858bdde329dba936656262c7539?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">svilstrup</media:title>
		</media:content>

		<media:content url="http://makeitfaster.files.wordpress.com/2011/01/screenshot-9.jpeg?w=150" medium="image">
			<media:title type="html">screenshot.9</media:title>
		</media:content>

		<media:content url="http://makeitfaster.files.wordpress.com/2011/01/screenshot-11.jpeg?w=150" medium="image">
			<media:title type="html">screenshot.11</media:title>
		</media:content>
	</item>
		<item>
		<title>Deploying from grails to tomcat</title>
		<link>http://makeitfaster.wordpress.com/2010/12/20/deploying-from-grails-to-tomcat/</link>
		<comments>http://makeitfaster.wordpress.com/2010/12/20/deploying-from-grails-to-tomcat/#comments</comments>
		<pubDate>Mon, 20 Dec 2010 13:18:07 +0000</pubDate>
		<dc:creator>Sebastian Vilstrup</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://makeitfaster.wordpress.com/?p=129</guid>
		<description><![CDATA[I&#8217;ve set up my grails build on Hudson, and now I want to deploy to my Tomcat server. Every time my tests complete, I want a new deploy. And I want to be completely automatic too. First step is to navigate to your grails app and try: grails install-plugin tomcat It&#8217;s probably already installed, as [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeitfaster.wordpress.com&amp;blog=14016707&amp;post=129&amp;subd=makeitfaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve set up my <a title="Using hudson to build grails projects" href="http://makeitfaster.wordpress.com/2010/12/14/building-a-grails-project-in-hudson/" target="_blank">grails build on Hudson</a>, and now I want to deploy to my Tomcat server. Every time my tests complete, I want a new deploy. And I want to be completely automatic too.</p>
<p>First step is to navigate to your grails app and try:</p>
<p style="padding-left:30px;"><strong> grails install-plugin tomcat</strong><strong> </strong></p>
<p>It&#8217;s probably already installed, as it&#8217;s the default for grails these days.</p>
<p>Then we need to install Tomcat if you don&#8217;t have it already.</p>
<p>First, make sure it&#8217;s the Sun JDK, argh, I mean Oracle, but the Ubuntu packages still say Sun. The OpenJDK doesn&#8217;t really work well with grails and tomcat.</p>
<p style="padding-left:30px;"><strong> sudo aptitude install sun-java6-jdk</strong><strong> </strong></p>
<p>Then install tomcat:</p>
<p style="padding-left:30px;"><strong> sudo aptitude install tomcat6</strong><strong> </strong></p>
<p>Then edit the tomcat user file to enable some users:</p>
<p style="padding-left:30px;"><strong> sudo nano /etc/tomcat6/tomcat-users.xml</strong><strong></strong></p>
<p>I suggest you have the following lines active, but please <span style="text-decoration:underline;">change the passwords</span>:</p>
<p style="padding-left:30px;"><strong> &lt;role rolename=&#8221;manager&#8221;/&gt;</strong></p>
<p style="padding-left:30px;"><strong> &lt;user username=&#8221;manager&#8221; password=&#8221;manager&#8221; roles=&#8221;standard,manager&#8221;/&gt;</strong></p>
<p style="padding-left:30px;"><strong> &lt;user username=&#8221;grails&#8221; password=&#8221;grails&#8221; roles=&#8221;standard,manager&#8221;/&gt;</strong></p>
<p>Restart tomcat to activate the changes.</p>
<p style="padding-left:30px;"><strong> sudo /etc/init.d/tomcat6 restart</strong><strong></strong></p>
<p>Test by going to:</p>
<p style="padding-left:30px;"><strong> http://&lt;hostname&gt;:8080/manager</strong><strong></strong></p>
<p>You should now specify the username/password and url for the to) in your grails project. Open the  grails-app/conf/Config.groovy file and add this at the bottom of the file:</p>
<p style="padding-left:30px;"><strong> tomcat.deploy.username=&#8221;grails&#8221;</strong><strong></strong></p>
<p style="padding-left:30px;"><strong> tomcat.deploy.password=&#8221;grails&#8221;</strong><strong></strong></p>
<p style="padding-left:30px;"><strong> tomcat.deploy.url=&#8221;http://&lt;hostname&gt;:8080/manager&#8221;</strong><strong></strong></p>
<p>That should set up easy deployment directly from grails. We’ll simply be using grails’ own plugin for deployment, so we’ll have no real need to understand how ant or tomcat handles it. It’s all nicely camouflaged by grails.</p>
<p>The deployment sequence is like this: First you need to undeploy the app from tomcat (not needed the first time)</p>
<p style="padding-left:30px;"><strong> grails tomcat undeploy</strong><strong></strong></p>
<p>And then deploy the app</p>
<p style="padding-left:30px;"><strong> grails tomcat deploy</strong><strong></strong></p>
<p>You should now be able to use your app on your testserver.</p>
<p>To add them to your Hudson project just add those two lines as a post-build shell script (or batch command if you’re on windows) and you’re good to go.</p>
<p>If undeployment fails, there may be some file locks. I experienced that on windows, but not on the Ubuntu 10.10 server. If (and only if) you have this problem, you can edit the</p>
<p style="padding-left:30px;"><strong>sudo nano /etc/tomcat6/context.xml</strong></p>
<p>And change the &lt;context&gt; line to:</p>
<p style="padding-left:30px;"><strong>&lt;Context antiJARLocking=&#8221;true&#8221; antiResourceLocking=&#8221;true&#8221; &gt;</strong><strong></strong></p>
<p><strong> </strong></p>
<p>That fixed the issue for me.</p>
<p>PS: To control tomcat use these commands:</p>
<p style="padding-left:30px;"><strong>sudo /etc/init.d/tomcat6 stop</strong></p>
<p style="padding-left:30px;"><strong>sudo /etc/init.d/tomcat6 start</strong></p>
<p style="padding-left:30px;"><strong>sudo /etc/init.d/tomcat6 restart</strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/makeitfaster.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/makeitfaster.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/makeitfaster.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/makeitfaster.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/makeitfaster.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/makeitfaster.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/makeitfaster.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/makeitfaster.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/makeitfaster.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/makeitfaster.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/makeitfaster.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/makeitfaster.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/makeitfaster.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/makeitfaster.wordpress.com/129/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeitfaster.wordpress.com&amp;blog=14016707&amp;post=129&amp;subd=makeitfaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://makeitfaster.wordpress.com/2010/12/20/deploying-from-grails-to-tomcat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/847aa858bdde329dba936656262c7539?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">svilstrup</media:title>
		</media:content>
	</item>
		<item>
		<title>Building a grails project in hudson</title>
		<link>http://makeitfaster.wordpress.com/2010/12/14/building-a-grails-project-in-hudson/</link>
		<comments>http://makeitfaster.wordpress.com/2010/12/14/building-a-grails-project-in-hudson/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 15:40:41 +0000</pubDate>
		<dc:creator>Sebastian Vilstrup</dc:creator>
				<category><![CDATA[Groovy & Grails]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://makeitfaster.wordpress.com/?p=124</guid>
		<description><![CDATA[I&#8217;ve learned how to set up setup grails and how to install hudson on Ubuntu 10.10 Server. Now I want to use hudson to build my grails project. Before we set up the project, we need to install some plugins. Access your hudson admin interface, probably at http://&#60;hostname&#62;:9090 Go to Hudson -&#62; Manage Hudson -&#62; Manage plugins [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeitfaster.wordpress.com&amp;blog=14016707&amp;post=124&amp;subd=makeitfaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p id="internal-source-marker_0.8871326383668929">I&#8217;ve learned how to set up <a title="Setup grails on Ubuntu 10.10 Server" href="http://makeitfaster.wordpress.com/2010/12/14/ubuntu-10-10-server-from-clean-install-to-grails-for-all-users/" target="_blank">setup grails</a> and how to<a title="How to install hudson on Ubuntu 10.10 Server" href="http://makeitfaster.wordpress.com/2010/12/14/install-the-hudson-build-server-on-ubuntu-10-10-server/" target="_blank"> install hudson</a> on Ubuntu 10.10 Server. Now I want to use hudson to build my grails project.</p>
<p>Before we set up the project, we need to install some plugins. Access your hudson admin interface, probably at http://&lt;hostname&gt;:9090</p>
<p>Go to <strong>Hudson -&gt; Manage Hudson -&gt; Manage plugins -&gt; Available</strong> (it’s a tab) and get these required plugins:</p>
<p><a href="http://wiki.hudson-ci.org/display/HUDSON/Grails+Plugin"></a></p>
<p style="padding-left:30px;"><a href="http://wiki.hudson-ci.org/display/HUDSON/Grails+Plugin">Hudson Grails plugin</a></p>
<p style="padding-left:30px;"><a href="http://wiki.hudson-ci.org/display/HUDSON/Mercurial+Plugin">Hudson Mercurial plugin</a> or get the one for git/svn/cvs depending on what you use. I&#8217;m a mercurial fan.</p>
<p>If you like, you can also install some of these, but they&#8217;re not required:</p>
<p id="internal-source-marker_0.8871326383668929" style="padding-left:30px;"><a href="http://wiki.hudson-ci.org//display/HUDSON/Radiator+View+Plugin">Radiator View Plugin</a></p>
<p style="padding-left:30px;"><a href="http://wiki.hudson-ci.org//display/HUDSON/Green+Balls">Green Balls</a></p>
<p style="padding-left:30px;"><a href="http://wiki.hudson-ci.org//display/HUDSON/ChuckNorris+Plugin">ChuckNorris Plugin</a></p>
<p style="padding-left:30px;"><a href="http://wiki.hudson-ci.org//display/HUDSON/Monitoring">Monitoring</a></p>
<p style="padding-left:30px;"><a href="http://wiki.hudson-ci.org//display/HUDSON/Build-timeout+Plugin">Build-timeout Plugin</a></p>
<p style="padding-left:30px;"><a href="http://wiki.hudson-ci.org//display/HUDSON/Hudson+Tray+Application">Hudson Tray Application</a></p>
<p style="padding-left:30px;">&nbsp;</p>
<p>After that you need start a new project by going to the link called <strong>Hudson -&gt; New project</strong></p>
<p>Choose a job name, and the <strong>Build a free-style software project. </strong>After you click OK, you get a lot of options. Only some of them are needed:</p>
<p style="padding-left:30px;"><strong>Discard Old Builds -&gt; </strong><strong>Days to keep: 3, M</strong><strong>ax # of builds to keep: 10</strong></p>
<p>In the <strong>Source Code Management</strong> part you select Mercurial and then enter the Repository URL. For a private bitbucket it&#8217;s like this:</p>
<p style="padding-left:30px;"><strong>https://&lt;username&gt;:&lt;password&gt;@bitbucket.org/&lt;username&gt;/&lt;project&gt;</strong></p>
<p>Make sure to include the username:password if it&#8217;s a private project. For a public one, it&#8217;s not needed.</p>
<p>In the Build Triggers section, choose Poll SCM and enter this into the schedule field (it&#8217;s std cron notation):</p>
<p style="padding-left:30px;"><strong># every minute</strong></p>
<p style="padding-left:30px;"><strong>* * * * *</strong></p>
<p><strong> </strong>In the <strong>Build</strong> section, choose <strong>Add Build Step</strong> and<strong> Build With Grails</strong>. You’ll se a lot of grails related fields but you only need to enter the following into the<strong> Targets</strong> field:</p>
<p style="padding-left:30px;"><strong>test-app</strong></p>
<p>Eventually, you&#8217;ll probably want to run some other targets, but this one is a good starter.</p>
<p>In the <strong>Post-build Actions</strong> section, select the <strong>Publish JUnit test result report</strong>. Enter the following into the <strong>Test report XMLs</strong> field:</p>
<p style="padding-left:30px;"><strong>target/test-reports/*.xml</strong></p>
<p>You’re almost done, just click Save in the bottom.</p>
<p>Now run the project and check the outcome. After two runs, you should start to see a unittest graph.</p>
<p>Make a change to your code, push to the repo and see if hudson picks it up. It should poll once every minute and pick up the code change and start a build automatically</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/makeitfaster.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/makeitfaster.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/makeitfaster.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/makeitfaster.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/makeitfaster.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/makeitfaster.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/makeitfaster.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/makeitfaster.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/makeitfaster.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/makeitfaster.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/makeitfaster.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/makeitfaster.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/makeitfaster.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/makeitfaster.wordpress.com/124/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeitfaster.wordpress.com&amp;blog=14016707&amp;post=124&amp;subd=makeitfaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://makeitfaster.wordpress.com/2010/12/14/building-a-grails-project-in-hudson/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/847aa858bdde329dba936656262c7539?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">svilstrup</media:title>
		</media:content>
	</item>
		<item>
		<title>Install the Hudson build server on Ubuntu 10.10 Server</title>
		<link>http://makeitfaster.wordpress.com/2010/12/14/install-the-hudson-build-server-on-ubuntu-10-10-server/</link>
		<comments>http://makeitfaster.wordpress.com/2010/12/14/install-the-hudson-build-server-on-ubuntu-10-10-server/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 13:16:00 +0000</pubDate>
		<dc:creator>Sebastian Vilstrup</dc:creator>
				<category><![CDATA[Groovy & Grails]]></category>
		<category><![CDATA[Infrastructure]]></category>

		<guid isPermaLink="false">http://makeitfaster.wordpress.com/?p=104</guid>
		<description><![CDATA[First off, after trying out most of the free build servers on the market, I&#8217;ve found that Hudson ( http://www.hudson-ci.org/ ) is the best for me. It&#8217;s by far the easiest to configure and it runs pretty smoothly. The plugin ecosystem is vibrant and there are constantly new and interesting plugins. I&#8217;ve used it for [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeitfaster.wordpress.com&amp;blog=14016707&amp;post=104&amp;subd=makeitfaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div>
<p><span style="font-size:small;font-family:arial, helvetica, sans-serif;">First off, after trying out most of the free build servers on the market, I&#8217;ve found that Hudson ( http://www.hudson-ci.org/ ) is the best for me. It&#8217;s by far the easiest to configure and it runs pretty smoothly. The plugin ecosystem is vibrant and there are constantly new and interesting plugins. I&#8217;ve used it for java, grails and even msbuild projects with success.</span></p>
<p><span style="font-size:small;font-family:arial, helvetica, sans-serif;">I&#8217;m learning about headless linux servers and hosting on them, so I&#8217;m using this an opportunity to document the sometimes tricky install procedures. I&#8217;m using Ubuntu 10.10 Server in a 32-bit edition. I must admit that I&#8217;m impressed by the performance of the headless linux server. It&#8217;s running in VMWare Player 3 with 512mb ram, on a USB drive, on my underpowered Lenovo T500 laptop&#8230; and it feels snappy! </span></p>
<p><span style="font-size:small;font-family:arial, helvetica, sans-serif;">I&#8217;ll assume that you’ve already done the steps for installing grails. If not, you at least need to do a succesful:</span></p>
<pre style="padding-left:30px;"><strong><span style="font-size:small;font-family:arial, helvetica, sans-serif;"> sudo aptitude install sun-java6-jdk</span></strong></pre>
<pre style="padding-left:30px;"><strong><span style="font-size:small;font-family:arial, helvetica, sans-serif;">
</span></strong></pre>
<p><span style="font-family:arial, helvetica, sans-serif;font-size:small;">I got some of this installation info from http://hudson-ci.org/debian/. First we need to install a prerequisite:</span></p>
<pre style="padding-left:30px;"><strong><span style="font-size:small;font-family:arial, helvetica, sans-serif;"> sudo aptitude install daemon</span></strong></pre>
<pre style="padding-left:30px;"><strong><span style="font-size:small;font-family:arial, helvetica, sans-serif;">
</span></strong></pre>
<p><span style="font-size:small;font-family:arial, helvetica, sans-serif;">Then we need to fetch a key (and install it) and a deb package (and install it). After that we update the apt repo list and do a &#8220;normal&#8221; install</span></p>
<pre style="padding-left:30px;"><strong><span style="font-size:small;font-family:arial, helvetica, sans-serif;"> wget -O /tmp/key http://hudson-ci.org/debian/hudson-ci.org.key</span></strong></pre>
<pre style="padding-left:30px;"><strong><span style="font-size:small;font-family:arial, helvetica, sans-serif;"> sudo apt-key add /tmp/key</span></strong></pre>
<pre style="padding-left:30px;"><strong><span style="font-size:small;font-family:arial, helvetica, sans-serif;"> wget -O /tmp/hudson.deb http://hudson-ci.org/latest/debian/hudson.deb</span></strong></pre>
<pre style="padding-left:30px;"><strong><span style="font-size:small;font-family:arial, helvetica, sans-serif;"> sudo dpkg --install /tmp/hudson.deb</span></strong></pre>
<pre style="padding-left:30px;"><strong><span style="font-size:small;font-family:arial, helvetica, sans-serif;"> sudo apt-get update</span></strong></pre>
<pre style="padding-left:30px;"><strong><span style="font-size:small;font-family:arial, helvetica, sans-serif;"> sudo apt-get install hudson</span></strong></pre>
<pre style="padding-left:30px;"><strong><span style="font-size:small;font-family:arial, helvetica, sans-serif;">
</span></strong></pre>
<p><span style="font-size:small;font-family:arial, helvetica, sans-serif;">Once the package is installed, normal updating should work. Check that the install is okay by visiting: </span></p>
<pre style="padding-left:30px;"><strong><span style="font-size:small;font-family:arial, helvetica, sans-serif;"> http://&lt;hostname&gt;:8080</span></strong></pre>
<pre style="padding-left:30px;"><strong><span style="font-size:small;font-family:arial, helvetica, sans-serif;">
</span></strong></pre>
<p><span style="font-size:small;font-family:arial, helvetica, sans-serif;">Running hudson on port 8080 is not cool, since so many other servers want to run there (Tomcat for instance). So let&#8217;s change the port number:</span></p>
<p><span style="font-size:small;font-family:arial, helvetica, sans-serif;">First, stop the hudson server:</span></p>
<pre style="padding-left:30px;"><strong><span style="font-size:small;font-family:arial, helvetica, sans-serif;"> sudo /etc/init.d/hudson stop</span></strong></pre>
<pre style="padding-left:30px;"><strong><span style="font-size:small;font-family:arial, helvetica, sans-serif;">
</span></strong></pre>
<p><span style="font-size:small;font-family:arial, helvetica, sans-serif;">To change change port number for hudson to 9090, run this line:</span></p>
<pre style="padding-left:30px;"><strong>sudo perl -pi -e 's/HTTP_PORT=(.*)\n/HTTP_PORT=9090\n/g' <span style="font-family:Consolas, Monaco, 'Courier New', Courier, monospace;line-height:18px;font-size:12px;white-space:pre;">/etc/default/hudson</span></strong></pre>
<div style="padding-left:30px;"><span style="font-family:Consolas, Monaco, 'Courier New', Courier, monospace;"><span style="font-size:12px;line-height:18px;white-space:pre;"><strong><br />
</strong></span></span></div>
<p>It does a search and replace in the <span style="font-family:Consolas, Monaco, 'Courier New', Courier, monospace;line-height:18px;font-size:12px;white-space:pre;"><span style="font-size:small;font-family:arial, helvetica, sans-serif;">/etc/default/hudson and replaces the port number. Call this to verify the new port number:</span></span></p>
<pre style="padding-left:30px;"><strong>cat /etc/default/hudson |grep HTTP_PORT=</strong></pre>
<p><span style="font-family:Consolas, Monaco, 'Courier New', Courier, monospace;line-height:18px;font-size:12px;white-space:pre;"><span style="font-size:small;font-family:arial, helvetica, sans-serif;"> </span></span></p>
<p><span style="font-size:small;font-family:arial, helvetica, sans-serif;">Then you can start Hudson again:</span></p>
<pre style="padding-left:30px;"><strong><span style="font-size:small;font-family:arial, helvetica, sans-serif;"> sudo /etc/init.d/hudson start</span></strong></pre>
<pre style="padding-left:30px;"><strong><span style="font-size:small;font-family:arial, helvetica, sans-serif;">
</span></strong></pre>
<p><span style="font-size:small;font-family:arial, helvetica, sans-serif;">In case you need to debug something or if you&#8217;re a log geek you can find the hudson log is in /var/log/hudson/hudson.log.  You may want to run</span></p>
<pre style="padding-left:30px;"><strong><span style="font-size:small;font-family:arial, helvetica, sans-serif;"> tail -f /var/log/hudson/hudson.log</span></strong></pre>
<pre style="padding-left:30px;"><strong><span style="font-size:small;font-family:arial, helvetica, sans-serif;">
</span></strong></pre>
<p><span style="font-size:small;font-family:arial, helvetica, sans-serif;">to keep viewing it</span></p>
<p><span style="font-family:arial, helvetica, sans-serif;font-size:small;">PS: Thanks to Theis Borg for helping me with the linux scripting!</span></p>
<p><span style="font-family:arial, helvetica, sans-serif;font-size:small;"><span style="font-weight:normal;"> </span></span></p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/makeitfaster.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/makeitfaster.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/makeitfaster.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/makeitfaster.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/makeitfaster.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/makeitfaster.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/makeitfaster.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/makeitfaster.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/makeitfaster.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/makeitfaster.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/makeitfaster.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/makeitfaster.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/makeitfaster.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/makeitfaster.wordpress.com/104/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeitfaster.wordpress.com&amp;blog=14016707&amp;post=104&amp;subd=makeitfaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://makeitfaster.wordpress.com/2010/12/14/install-the-hudson-build-server-on-ubuntu-10-10-server/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/847aa858bdde329dba936656262c7539?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">svilstrup</media:title>
		</media:content>
	</item>
		<item>
		<title>Continuous testing revisited: http://rapid-testing.com/</title>
		<link>http://makeitfaster.wordpress.com/2010/12/14/continuous-testing-revisited-httprapid-testing-com/</link>
		<comments>http://makeitfaster.wordpress.com/2010/12/14/continuous-testing-revisited-httprapid-testing-com/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 10:54:28 +0000</pubDate>
		<dc:creator>Sebastian Vilstrup</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://makeitfaster.wordpress.com/?p=99</guid>
		<description><![CDATA[I have a little update about continuous testing for .Net. I&#8217;ve used the ones I mentioned earlier, but they all have the problem that they run all tests on each compile. That&#8217;s simply to slow for me. I&#8217;d rather run the test suite manually, when it suits my coding rhythm. Infinitest for the java platform [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeitfaster.wordpress.com&amp;blog=14016707&amp;post=99&amp;subd=makeitfaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have a little update about continuous testing for .Net. I&#8217;ve used the ones I mentioned earlier, but they all have the problem that they run all tests on each compile. That&#8217;s simply to slow for me. I&#8217;d rather run the test suite manually, when it suits my coding rhythm.</p>
<p>Infinitest for the java platform (eclipse and intellij IDE&#8217;s) is great and does close-to-instant testing, even on fairly large projects. However that type of instant testing has not been available for Visual Studio yet&#8230; until now:</p>
<p><a title="http://rapid-testing.com/" href="http://rapid-testing.com/">http://rapid-testing.com/</a></p>
<p>They are in the alpha stages, but keep an eye on them. They show great promise, and I hope they can deliver the instant action I desire. Check their blog here for updates:</p>
<p><a href="http://blog.rapid-testing.com/">http://blog.rapid-testing.com/</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/makeitfaster.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/makeitfaster.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/makeitfaster.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/makeitfaster.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/makeitfaster.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/makeitfaster.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/makeitfaster.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/makeitfaster.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/makeitfaster.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/makeitfaster.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/makeitfaster.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/makeitfaster.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/makeitfaster.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/makeitfaster.wordpress.com/99/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeitfaster.wordpress.com&amp;blog=14016707&amp;post=99&amp;subd=makeitfaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://makeitfaster.wordpress.com/2010/12/14/continuous-testing-revisited-httprapid-testing-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/847aa858bdde329dba936656262c7539?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">svilstrup</media:title>
		</media:content>
	</item>
		<item>
		<title>Ubuntu 10.10 Server: From Clean install to Grails for all users</title>
		<link>http://makeitfaster.wordpress.com/2010/12/14/ubuntu-10-10-server-from-clean-install-to-grails-for-all-users/</link>
		<comments>http://makeitfaster.wordpress.com/2010/12/14/ubuntu-10-10-server-from-clean-install-to-grails-for-all-users/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 10:40:49 +0000</pubDate>
		<dc:creator>Sebastian Vilstrup</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Groovy & Grails]]></category>

		<guid isPermaLink="false">http://makeitfaster.wordpress.com/?p=90</guid>
		<description><![CDATA[I&#8217;m playing around with Grails at the moment. Grails is a make-websites-really-fast framework, that is based on the Groovy language. It&#8217;s inspired in spirit by Ruby-on-Rails, but it&#8217;s based on solid java technology instead. In my opinion, this the best framework for java developers to switch to. Learning curve for a java developer is a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeitfaster.wordpress.com&amp;blog=14016707&amp;post=90&amp;subd=makeitfaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m playing around with <a title="Grails" href="http://grails.org/" target="_blank">Grails</a> at the moment. Grails is a make-websites-really-fast framework, that is based on the <a title="Groovy" href="http://groovy.codehaus.org/" target="_blank">Groovy</a> language. It&#8217;s inspired in spirit by <a title="Ruby-on-Rails" href="http://rubyonrails.org/" target="_blank">Ruby-on-Rails</a>, but it&#8217;s based on solid java technology instead.</p>
<p>In my opinion, this the best framework for java developers to switch to. Learning curve for a java developer is a lot easier than ruby/python/scala/clojure etc. and the groovy language is very powerful and easy. Ont eh other hand&#8230; it doesn&#8217;t teach you how to think differently, and you may be tempted to keep your bad java habits. Anyway, I&#8217;m getting derailed. What I really wanted to show you today was how to get grails working on a linux server.</p>
<p>I’ll assume that this is a totally clean install of <a title="Ubuntu 10.10 Server" href="http://www.ubuntu.com/server" target="_blank">Ubuntu 10.10 server</a>, I used the 32-bit version, but I think the 64-bit installation will be identical. The first thing we do is to install ssh, so we can log in with putty ( http://www.putty.org/ ) afterwards. Then we upgrade the system, then we reboot.</p>
<pre style="padding-left:30px;">sudo aptitude install ssh</pre>
<pre style="padding-left:30px;">sudo aptitude update</pre>
<pre style="padding-left:30px;">sudo aptitude upgrade</pre>
<pre style="padding-left:30px;">sudo reboot</pre>
<pre style="padding-left:30px;"></pre>
<p>Login with putty when the reboot is done. Then install the C++ compiler and the linux headers. It may not be needed, but I tend to do it anyway, as they cover a lot of weird dependencies when installing various development tools. We also install sun’s java (as the openjdk fails to run grails) and groovy (yay, it’s a std package).</p>
<pre></pre>
<pre style="padding-left:30px;"><strong>sudo aptitude install build-essential linux-headers-$(uname -r)</strong></pre>
<pre style="padding-left:30px;"></pre>
<p>In order to install sun’s jdk we need to enable some more repositories. Start by running</p>
<pre style="padding-left:30px;"><strong>sudo nano /etc/apt/sources.list</strong></pre>
<pre style="padding-left:30px;"></pre>
<p>Then uncomment the lines for the partner repos and save the file. Partner repos look like this:</p>
<pre style="padding-left:30px;"><strong>## Uncomment the following two lines to add software from Canonical's</strong></pre>
<pre style="padding-left:30px;"><strong>## 'partner' repository.</strong></pre>
<pre style="padding-left:30px;"><strong>## This software is not part of Ubuntu, but is offered by Canonical and the</strong></pre>
<pre style="padding-left:30px;"><strong>## respective vendors as a service to Ubuntu users.</strong></pre>
<pre style="padding-left:30px;"><strong>deb http://archive.canonical.com/ubuntu maverick partner</strong></pre>
<pre style="padding-left:30px;"><strong>deb-src http://archive.canonical.com/ubuntu maverick partner</strong></pre>
<p>Update apt with:</p>
<pre style="padding-left:30px;"><strong>sudo aptitude update</strong></pre>
<p>Once that is done we can install the sun jdk and groovy</p>
<pre style="padding-left:30px;"><strong>sudo aptitude install sun-java6-jdk</strong></pre>
<pre style="padding-left:30px;"><strong>sudo aptitude install groovy unzip</strong></pre>
<p>After that we fetch the grails binary, unpack and move it.</p>
<pre style="padding-left:30px;"><strong>wget http://dist.codehaus.org/grails/grails-1.3.5.zip</strong></pre>
<pre style="padding-left:30px;"><strong>unzip grails-*.zip</strong></pre>
<pre style="padding-left:30px;"><strong>mv grails-1.3.5 grails</strong></pre>
<pre style="padding-left:30px;"><strong>sudo rm -r /usr/lib/grails</strong></pre>
<pre style="padding-left:30px;"><strong>sudo mv grails /usr/lib/grails</strong></pre>
<p>Then we need to edit the environment file, so we can access the JAVA_HOME and GRAILS_HOME. We also add the Grails bin directory to the path. Run these commands:</p>
<pre style="padding-left:30px;"><strong>sudo cp /etc/environment /etc/environment_backup</strong></pre>
<pre style="padding-left:30px;"><strong>sudo sed -i 's/\(^PATH=".*\)"/\1:\/usr\/lib\/grails\/bin"\nJAVA_HOME=\/usr\/lib\/jvm\/java-6-sun\nGRAILS_HOME=\/usr\/lib\/grails\n/g' /etc/environment</strong></pre>
<p>After the commands, you can verify ( <strong>cat /etc/environment )</strong> that the  environment file should look a lot like this:</p>
<pre style="padding-left:30px;"><strong>PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/grails/bin"</strong></pre>
<pre style="padding-left:30px;"><strong>JAVA_HOME=/usr/lib/jvm/java-6-sun</strong></pre>
<pre style="padding-left:30px;"><strong>GRAILS_HOME=/usr/lib/grails</strong></pre>
<p>Once that’s done we need to reboot the system, in order to read the new environment:</p>
<pre style="padding-left:30px;"><strong>sudo reboot</strong></pre>
<p>Log in again and test by calling:</p>
<pre style="padding-left:30px;"><strong>grails help</strong></pre>
<p>It should show you the version of grails and the help info. To test it for another user, create a user ( sudo adduser &lt;username&gt;) , log in as that user and run “grails help”. If it does that correctly, then this guide worked</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/makeitfaster.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/makeitfaster.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/makeitfaster.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/makeitfaster.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/makeitfaster.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/makeitfaster.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/makeitfaster.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/makeitfaster.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/makeitfaster.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/makeitfaster.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/makeitfaster.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/makeitfaster.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/makeitfaster.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/makeitfaster.wordpress.com/90/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeitfaster.wordpress.com&amp;blog=14016707&amp;post=90&amp;subd=makeitfaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://makeitfaster.wordpress.com/2010/12/14/ubuntu-10-10-server-from-clean-install-to-grails-for-all-users/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/847aa858bdde329dba936656262c7539?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">svilstrup</media:title>
		</media:content>
	</item>
		<item>
		<title>Continuous Testing with IDE integration</title>
		<link>http://makeitfaster.wordpress.com/2010/06/29/continuous-testing-with-ide-integration/</link>
		<comments>http://makeitfaster.wordpress.com/2010/06/29/continuous-testing-with-ide-integration/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 17:07:00 +0000</pubDate>
		<dc:creator>Sebastian Vilstrup</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://makeitfaster.wordpress.com/2010/06/29/continuous-testing-with-ide-integration/</guid>
		<description><![CDATA[What is Continuous Testing? Continuous Testing (CT) is a way to get almost instant feedback while doing TDD (Test Driven Development). However, it&#8217;s not like a CI (Continuous Integration) server that runs your build and unit tests on commit of new code. Ben Rady, the creator of Inifinitest, tries to explain it here as well: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeitfaster.wordpress.com&amp;blog=14016707&amp;post=65&amp;subd=makeitfaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>What is Continuous Testing?</h2>
<p>Continuous Testing (CT) is a way to get almost instant feedback while doing TDD (Test Driven Development). However, it&#8217;s not like a CI (Continuous Integration) server that runs your build and unit tests on commit of new code. Ben Rady, the creator of Inifinitest, tries to explain it here as well: <a href="http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained" target="_blank">http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained</a></p>
<p>Continuous Testing runs your tests as soon as the code has been built, on your own developer machine. The tests should be run automatically, so you don&#8217;t need to remember to run your tests. The CT tool simply monitors your compiler artifacts and fires up the necessary tests. If there are test failures, then the developer gets alerted. The really good CT tools only run the tests for the classes that have changed, thus making the tests extremely fast.</p>
<p>Personally, I love to use TDD. I&#8217;ve almost forgotten how to do it the old fashioned way. But if I didn&#8217;t have a CT tool, then I wouldn&#8217;t run the tests very often. The clicks/keys/time necessary for to start the test-runner, wait for the results, view the results and react to them are simply too long. I like to work in very very short cycles and get instant feedback, without taking any special action to fire up my tests. By working this way I can &#8220;work in the zone&#8221; / &#8220;achieve flow&#8221;, the state of mind that makes me the most focused and productive. Without a CT tool, I probably wouldn&#8217;t run TDD at all. I&#8217;d still use unit tests, but probably in a more traditional way.</p>
<p>In some CT tools, test failures appear as if they are compiler errors. Others show a red/green light, while some just show a command line with coloured text. All are fine, as long as they give feedback without any action from me. I have two favourite CT tools, one for the Java platform and one for the .NET platform:</p>
<h2><a href="http://improvingworks.com/products/infinitest/" target="_blank">Infinitest</a></h2>
<p>In a word: Awesome!<br />
 I cannot express how cool I find this tool. If I had to bring a single plugin with me to an isolated island, this would be it.</p>
<p>Eclipse automatically compiles on save of a file, since the java/eclipse<br />
 compiler works fine on single file.&nbsp; Intellij does not compile by<br />
 default, but there is an &#8220;Eclipse mode&#8221; plugin that will do &#8220;build on<br />
 save&#8221; for intellij as well &#8211; a must if using infinitest in my opinion.</p>
<p>It works great in Eclipse and Intellij, and simply shows test failures as compiler warnings. Infinitest reacts to newly compiled test classes and normal<br />
 classes in your classpath. Tests are lightning fast, since Infinitest is very clever and only runs the changed tests, not the whole test suite everytime. Usually response time from &#8220;save file&#8221; to &#8220;test complete&#8221; is less than 100 ms. It feels like it is instant. It&#8217;s what makes TDD worth doing.</p>
<div><img style="max-width:800px;" src="http://improvingworks.com/wp-content/uploads/2009/08/eclipse-screenshot.png" alt="" /></div>
<p>It works great on tests and classes written in Groovy and Scala too!<br />
 It even has a filter file, so you can exclude certain file types or names. For example, you can exclude files containing &#8220;integration&#8221; in their name, and thus use JUnit to run your long running integration tests.</p>
<p>License: Free license available for personal use, $29 for prof, $149 for a transferable corporate license -&gt; <a href="http://improvingworks.com/products/infinitest/pricing/" target="_blank">http://improvingworks.com/products/infinitest/pricing/</a><br />
 Source: Closed</p>
<h2><a href="http://ox.no/software/continuoustesting" target="_blank">Continuous Testing for Visual Studio 2008 and 2010</a></h2>
<p>Yay! Finally a CT tool for .NET. I&#8217;ve been asking around for a tool like that, and recently found it <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
 H&aring;vard Stranden has recently released it, and I&#8217;ve been in a dialog with the author to iron out a few bugs. I now have it working great in both VS2008 and VS2010. After using Infinitest on Java, I&#8217;ve been sorely missing a CT plugin for .NET. I&#8217;m so used to instant feedback TDD now, that I find it frustrating to work with a normal unit test runner.</p>
<p>It works very much like Infinitest by showing test failures as compiler errors. It runs on compile, not on save. Fortunately ctrl-shift-b saves all open files and builds, so it&#8217;s just as good as the &#8220;build on save&#8221; of eclipse. It runs the test a little slower than infinitest, since it runs all the tests every time. There&#8217;s also a small overhead of starting up the commandline runner. However, that happens in the background and you can keep coding while your tests are running &#8211; so it doesn&#8217;t feel slow. It feels like feedback is coming fast, since I can keep working and thus stay in &#8220;flow&#8221;<br />
 It doesn&#8217;t have a filter like Infinitest does yet, but I know the author already has that on his &#8220;wanted features&#8221; list.</p>
<p>It&#8217;s a great tool and I&#8217;m never going to uninstall it <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I&#8217;m so happy that we have this kind of tool for .NET now. I&#8217;ve used it on a small test project, and look forward to trying it on something bigger.</p>
<div><img style="max-width:800px;" src="http://ox.no/files/mstest-vs2010-1.0-window.png" alt="" /></div>
<p>License: Free<br />
 Source: Closed</p>
<p>&nbsp;</p>
<h2>How does that makeitfaster?</h2>
<p>A CT tool reduces the constant overhead of starting up a test runner, and I believe that tools like this will become default part of future IDEs. It&#8217;s a powerful way to do TDD, and in my eyes, it&#8217;s the only way to do TDD. After having tried these tools, I&#8217;m never going back to regular test runners.<br />
 It&#8217;s simply decreasing my edit-compile-test cycle time, by cutting out the test step. It also increases the likelyhood that I can reach &#8220;flow&#8221;, which in turns increases my productivity.</p>
<p>If there are other great CT tools for these platforms or maybe for other platforms, I&#8217;d love to hear about them in the comments.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/makeitfaster.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/makeitfaster.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/makeitfaster.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/makeitfaster.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/makeitfaster.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/makeitfaster.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/makeitfaster.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/makeitfaster.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/makeitfaster.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/makeitfaster.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/makeitfaster.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/makeitfaster.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/makeitfaster.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/makeitfaster.wordpress.com/65/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=makeitfaster.wordpress.com&amp;blog=14016707&amp;post=65&amp;subd=makeitfaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://makeitfaster.wordpress.com/2010/06/29/continuous-testing-with-ide-integration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/847aa858bdde329dba936656262c7539?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">svilstrup</media:title>
		</media:content>

		<media:content url="http://improvingworks.com/wp-content/uploads/2009/08/eclipse-screenshot.png" medium="image" />

		<media:content url="http://ox.no/files/mstest-vs2010-1.0-window.png" medium="image" />
	</item>
	</channel>
</rss>
