<?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>Ole Morten Amundsen &#187; agile</title>
	<atom:link href="http://olemortenamundsen.wordpress.com/category/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://olemortenamundsen.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Mon, 16 Nov 2009 08:20:54 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='olemortenamundsen.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/157b772f730ecbc76758843562247dbc?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Ole Morten Amundsen &#187; agile</title>
		<link>http://olemortenamundsen.wordpress.com</link>
	</image>
			<item>
		<title>My go at deploying to the cloud, EC2. It&#8217;s not *that* easy</title>
		<link>http://olemortenamundsen.wordpress.com/2009/11/16/my-go-at-deploying-to-the-cloud-ec2-its-not-that-easy/</link>
		<comments>http://olemortenamundsen.wordpress.com/2009/11/16/my-go-at-deploying-to-the-cloud-ec2-its-not-that-easy/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 08:14:00 +0000</pubDate>
		<dc:creator>Ole Morten</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[amazon ec2]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[s3]]></category>
		<category><![CDATA[alestic]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[ami]]></category>
		<category><![CDATA[new ami]]></category>
		<category><![CDATA[elasticfox]]></category>
		<category><![CDATA[ami tools]]></category>

		<guid isPermaLink="false">http://olemortenamundsen.wordpress.com/?p=229</guid>
		<description><![CDATA[I don&#8217;t have much server background, and probably its a lot easier to set up your servers with amazon EC2 than setting them up yourself or at other hosting solutions. I don&#8217;t care, it really annoys me that everybody claims how easy it is, showing you how to launch an instance in a minute. Yes, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olemortenamundsen.wordpress.com&blog=1310802&post=229&subd=olemortenamundsen&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I don&#8217;t have much server background, and probably its a lot easier to set up your servers with amazon EC2 than setting them up yourself or at other hosting solutions. I don&#8217;t care, it really annoys me that everybody claims how easy it is, showing you how to launch an instance in a minute. Yes, thats really easy, but you quit too abruptly. Nobody wants to set up an instance, then terminate it and lose everything you did on that instance. I say, <strong>never press terminate</strong>, you will lose every change from the last ami save. You are warned, be prepared or waste a lot of time.</p>
<p>Read on for links an tips for the whole cycle of launching, changing, saving and registering AMI. Everybody deploying to EC2 really have to do all this as a part of setting everything up, being prepared to launch more instances of the same kind.</p>
<p><span id="more-229"></span>If you <strong>launch an instance</strong> <strong>without knowing how to save and register AMIs</strong>, save yourself a lot of time (and a few pennies), by not doing a lot of work you might lose. If you do a lot of work, <strong>don&#8217;t press terminate, it&#8217;s not the same as a shutdown of your computer. </strong>You have to look at it as an ISO image of files, if you read it, work with the content, you&#8217;ll have to create a new ISO image to burn on your CD to keep the changes. At <strong>page 26</strong> in the ElasticFox it says <strong>&#8220;Bundling a Linux/UNIX instance requires the use of the AMI tools&#8221;</strong>. OK, as you probably understand, I&#8217;m burn.</p>
<p>I am now <em>successfully</em> using <strong>both ec2-api-command-line-tools</strong>, elasticfox and amazons web console.</p>
<p>Ok, so what is the minimum need to get a small server running ubuntu and a mysql database?</p>
<ul>
<li>EC2 for your server and database</li>
<li>S3 for storing your AMIs and register them</li>
<li>EBS is optional, but you should set one up as a safety-net, replicating your data.</li>
<li>both the ec2 and ami command line tools.</li>
</ul>
<p>My links, tips and references.</p>
<h4>The ec2 api command line tool:</h4>
<ul>
<li><a href="http://paulstamatiou.com/how-to-getting-started-with-amazon-ec2">http://paulstamatiou.com/how-to-getting-started-with-amazon-ec2</a> EU? Important addition, put this in you bashrc or bash_profile too</li>
<pre>export EC2_URL='https://eu-west-1.ec2.amazonaws.com/'</pre>
<li><a href="http://docs.amazonwebservices.com/AWSEC2/latest/CommandLineReference/index.html?ApiReference-cmd-DescribeInstances.html">AWSEC2 Command Line Reference</a></li>
</ul>
<p><strong>ElasticFox</strong></p>
<ul>
<li><a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=609">Amazon ElasticFox pdf tutorial</a></li>
<li>If you&#8217;re using the alestic ubuntu images below, remember to change &#8220;SSH user&#8221; to &#8216;ubuntu&#8217;, from the Tools menu in ElasticFox (icon top-right)</li>
</ul>
<h4>EBS to replicate your data</h4>
<ul>
<li><a href="http://developer.amazonwebservices.com/connect/entry.jspa?categoryID=100&amp;externalID=1663">MySQL database server, including snapshot backup and restore.</a></li>
</ul>
<h4>Finding ubuntu EC2 AMIs:</h4>
<ul>
<li><a href="http://alestic.com/">http://alestic.com/</a></li>
</ul>
<p><strong>SAVING AMIs</strong></p>
<p>First, make sure you have a <strong>bucket</strong> in <strong>S3</strong> for storing the your new ami. I use <a href="http://www.s3fox.net/">S3 Firefox Organizer</a></p>
<ul>
<li>I suppose you have launched an instance</li>
<li>then partly follow this <a href="http://robrohan.com/2009/01/30/saving-a-customised-linux-amazon-instance-ec2-and-s3/">http://robrohan.com/2009/01/30/saving-a-customised-linux-amazon-instance-ec2-and-s3/</a></li>
<li>with the exception if your using alestic ubuntu AMIs (they don&#8217;t use root, but user=ubuntu). Run this on your EC2 instance:</li>
</ul>
<pre style="padding-left:30px;">mirror=<a rel="nofollow" href="http://us.ec2.archive.ubuntu.com/ubuntu/" target="_blank">http://us.ec2.archive.ubuntu.com/ubuntu/</a>
printf "%s\n%s\n" "deb ${mirror} karmic multiverse" \
"deb-src ${mirror} karmic main" |
sudo tee /etc/apt/sources.list.d/multiverse.list
sudo apt-get update &amp;&amp; sudo apt-get install ec2-ami-tools</pre>
<p>I struggled a lot with sudo, but found the solution mentioned above, at <a href="http://groups.google.com/group/ec2ubuntu/browse_thread/thread/dd7317f157eed834">here at google groups</a></p>
<p>Now you should be all set to launch a new instance based on that new AMI of yours! Break a leg!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olemortenamundsen.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olemortenamundsen.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olemortenamundsen.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olemortenamundsen.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olemortenamundsen.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olemortenamundsen.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olemortenamundsen.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olemortenamundsen.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olemortenamundsen.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olemortenamundsen.wordpress.com/229/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olemortenamundsen.wordpress.com&blog=1310802&post=229&subd=olemortenamundsen&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://olemortenamundsen.wordpress.com/2009/11/16/my-go-at-deploying-to-the-cloud-ec2-its-not-that-easy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d3fe046c4a216826ec87eeab92e7d55b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ole Morten</media:title>
		</media:content>
	</item>
		<item>
		<title>Part 1. Deploying to experimental, :at =&gt; local</title>
		<link>http://olemortenamundsen.wordpress.com/2009/11/11/part-1-deploying-to-experimental-at-local/</link>
		<comments>http://olemortenamundsen.wordpress.com/2009/11/11/part-1-deploying-to-experimental-at-local/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 21:53:35 +0000</pubDate>
		<dc:creator>Ole Morten</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[local server]]></category>
		<category><![CDATA[localhost]]></category>
		<category><![CDATA[mongrel]]></category>
		<category><![CDATA[mongrel restart]]></category>
		<category><![CDATA[RESTful]]></category>
		<category><![CDATA[ruby on rails]]></category>

		<guid isPermaLink="false">http://olemortenamundsen.wordpress.com/?p=213</guid>
		<description><![CDATA[I&#8217;d like to share my workflow, as it has proven efficient for me. I&#8217;m running two &#8217;servers&#8217; locally (!). Hang on, I said it was efficient, even though it surely doesn&#8217;t sound like it. The workflow should gain teams of any sizes, in my opinion.
I am developing an app it in rails and it also [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olemortenamundsen.wordpress.com&blog=1310802&post=213&subd=olemortenamundsen&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;d like to share my workflow, as it has proven efficient for me. I&#8217;m running two &#8217;servers&#8217; locally (!). Hang on, I said it was efficient, even though it surely doesn&#8217;t sound like it. The workflow should gain teams of any sizes, in my opinion.</p>
<p>I am developing an app it in rails and it also exposes some RESTful web services,  with_feed :through =&gt; :third_party. The third parties aren&#8217;t necessarily third parties, as we develop these too, but they are external apps collecting and sending data to my app. Part 2 will cover the creation of dummy clients that send randomish data to the core app.</p>
<p>OK, I will share the script and procedure I did to have a running server locally alongside developing my app. I wanted to have the server running locally, being able to receive request to the web server, testing the app manually, fast. To distinguish this local server (say localhost:3001) from your development server (sat localhost:3000), I decided to name it <em>experimental</em>, for simplicity. This is my workflow cycle</p>
<ol>
<li>developing, creating migrations and so on, running mongrel at localhost:3000</li>
<li>git commit -am &#8220;I commit small changes, often!&#8221;</li>
<li>back_to step 2 if more_should_be_done</li>
<li>relaunch experimental server at localhost:3001, continuously receiving WS requests.</li>
</ol>
<p><em>git pull</em> and <em>git push</em> is performed frequently as well, but not <em>as </em>frequent as the above.</p>
<p><span id="more-213"></span></p>
<p>So, why would you I want that last step?</p>
<ul>
<li>It&#8217;s a great way of proving your migration scripts work. That server is supposed to be running all the time, containing more data, and old data.</li>
<li>proving that your code works (which you of course also have extensive unit and integration tests for)</li>
<li>prove that the clients still submit data through the web services as expected. (more of this in Part 2)</li>
<li>better break experimental than staging?</li>
</ul>
<h4>What? isn&#8217;t this just the same as Cap and a staging server?</h4>
<p>Well, not exactly, but yes, very similar. <em>Experimental</em> is something in between of <em>staging</em>(pretty stable) and the <em>development</em> server(unstable). If stableish was a word, then that&#8217;s what it is;) Differences better explained:</p>
<ul>
<li>The staging server is shared, <em>experimental</em> is not.</li>
<li>The round trip is shorter. &#8216;git commit&#8217; is sufficient. For staging I bet you have agreements to perform &#8216;git push&#8217;  to share code before deploying to the server (or &#8216;cap uses git pull&#8217;)</li>
<li>Local development server is too unstable to have other apps sending data to it every hour. So you wouldn&#8217;t normally do that, you&#8217;d set it up for staging.</li>
<li>Breaking staging messes up for more people than yourself. Also, you checked the code in with git push, probably.</li>
<li>With the local experimental server you may mess around as you see fit, without becoming an impediment in your team.</li>
</ul>
<h4>Script deploy_to_local</h4>
<p>To do this locally, you can&#8217;t use Capistrano (if you can, please educate me), so I created my own super-simple script to automate it. Say I have this file structure :</p>
<pre>dev/myrailsapp/ (with .git, app/, etc.)
dev/temp/myrailsapptest/ (.git, app/, etc.)
</pre>
<p>where <em>myrailsapptest</em> is a duplicate of <em>myrailsapp</em>, except of the standard configuration files, like database.yml and such. These <strong>must be ignored by git</strong>, in .gitignore, or they will be overwritten.</p>
<pre>#script deploy_to_local
rm -rf ~/dev/temp/myrailsapptest/.git
cp -rf .git ~/dev/temp/myrailsapptest/
pushd ~/dev/temp/myrailsapptest/
echo "git checkout ."
git checkout .
echo "rake db:migrate"
rake db:migrate
echo "Note: remember that the server must have been started with 'mongrel_rails start -d --port 3001' (daemon mode)"
mongrel_rails restart
echo "Restarting backgroundrb workers"
script/backgroundrb restart -e development
popd</pre>
<p>Pretty simple, right? You can&#8217;t do this with svn, though, as it infects every directory you&#8217;ve got. Git stores everything in .git/ and a &#8216;git checkout .&#8217; will automatically replace, add or delete everything as long as they&#8217;re not listed in .gitignore.</p>
<p>I&#8217;m using <a title="backgroundrb" href="http://backgroundrb.rubyforge.org/">backgroundrb</a> for scheduled tasks, if you&#8217;re not, remove <em>backgroundrb restart</em> from the script.</p>
<p>Notice that &#8216;git commit&#8217; must be done first. This is why I consider the experimental server more stable than the development server. You may argue that it could be done without performing git commit first, but I guess nobody will. To me, committing is a small, important task that should be done often.</p>
<h4>First step</h4>
<p>Backtracking a little, the first thing you have to do, a one-time effort, is</p>
<ul>
<li>copy your whole rails app project directory to ../temp/railsapptest so that you also get the ignored files.</li>
<li>Or, copy the .git and fix the ignored files manually. Whatever suits you.</li>
</ul>
<p>Note (as in the script): to be able to perform a mongrel restart, you have to start it in daemon mode.</p>
<pre>mongrel_rails start -d --port 3001</pre>
<p>I&#8217;m saying this, because it&#8217;s poorly explained and I struggled for hours with it stating &#8220;PID file log/mongrel.pid does not exist.&#8221; when trying restart after a standard server start (script/server).</p>
<h3>Last note. Exposing the local experimental app over the internet.</h3>
<p>You don&#8217;t need any other server than your own mac/linux/win to show off your app to other people through the internet. Why deploy to staging before showing off your changes?</p>
<p>I did this at home, logged into my router, set up port forwarding of port 3001 to my computer (I&#8217;ve set up my router to recognize my mac and always  give it the same local ip address)</p>
<p>Then, given the IP address of the router is <em>abc.def.ghi.jkl</em> I would call or email whomever and say, check out the app at <em>abc.def.ghi.jkl:3000</em> and tell me what you think! This guy would see exactly the same as I would on localhost:3001, which is cool. I&#8217;m sorry if you&#8217;re a corporate guy with routines, rules or other a bureaucrazy environments, hehe. Well, of course you can&#8217;t go port forwarding to thousands of people, this one is just a snack for those of us wanting to show of stuff we make at home in our spare time;)</p>
<p>Hope somebody find this useful! In the next post I will talk about the dummy client apps I wrote to feed my app, using RESTful web services. Maybe something about the backgroundrb jobs I&#8217;m using, if I feel like it. Should I?</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olemortenamundsen.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olemortenamundsen.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olemortenamundsen.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olemortenamundsen.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olemortenamundsen.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olemortenamundsen.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olemortenamundsen.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olemortenamundsen.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olemortenamundsen.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olemortenamundsen.wordpress.com/213/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olemortenamundsen.wordpress.com&blog=1310802&post=213&subd=olemortenamundsen&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://olemortenamundsen.wordpress.com/2009/11/11/part-1-deploying-to-experimental-at-local/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d3fe046c4a216826ec87eeab92e7d55b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ole Morten</media:title>
		</media:content>
	</item>
		<item>
		<title>Rails 2.3+ template for creating new projects</title>
		<link>http://olemortenamundsen.wordpress.com/2009/09/24/rails-2-3-template-for-creating-new-projects/</link>
		<comments>http://olemortenamundsen.wordpress.com/2009/09/24/rails-2-3-template-for-creating-new-projects/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 09:57:11 +0000</pubDate>
		<dc:creator>Ole Morten</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[aliado]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[oma]]></category>
		<category><![CDATA[rails 2.3]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[templates]]></category>

		<guid isPermaLink="false">http://olemortenamundsen.wordpress.com/?p=208</guid>
		<description><![CDATA[I&#8217;ve been working with ruby on rails for the last few months and it&#8217;s been lots of ups and downs to me. It&#8217;s a learning curve and you just have to stand tall through the first frustrating weeks cursing the magic behind that you don&#8217;t understand. At least for a hard core java, spring, hibernate [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olemortenamundsen.wordpress.com&blog=1310802&post=208&subd=olemortenamundsen&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;ve been working with ruby on rails for the last few months and it&#8217;s been lots of ups and downs to me. It&#8217;s a learning curve and you just have to stand tall through the first frustrating weeks cursing the magic behind that you don&#8217;t understand. At least for a hard core java, spring, hibernate developer like myself, spoiled with great IDE support, which ruby lacks (It&#8217;s improving, with RubyMine, which I&#8217;m using,  a &#8220;clone&#8221; of IntelliJ IDEA). But then it becomes better, a lot better!</p>
<h3>Templates</h3>
<p>Kind of what AppFuse was supposed to provide the java maven community (what&#8217;s happening with this? I like the initiative!), the template runner of rails (version 2.3+) is supposed to help you set up your project with useful libraries, as authentication, test frameworks etc. No need to talk to much about it, I&#8217;ve created one that you can see for yourself, <a href="http://github.com/oma/rails-templates">http://github.com/oma/rails-templates</a> !</p>
<p><span id="more-208"></span></p>
<p>It&#8217;s tailored to my own need, and I don&#8217;t even know what I want, so you&#8217;d probably want to clone or download it yourself, to customize. It has a list of gems, as Shoulda, Mocha, factory-girl, authentication, openid, mail and more. Play with it! Run</p>
<p><em>rails mynewapp -m</em> <em>http://github.com/oma/rails-templates/raw/master/oma_rails_template.rb</em></p>
<p>check that <em>rake test </em>works, then navigate to <em>mynewapp</em> and run <em>script/server.</em> in http://localhost:3000 you&#8217;ll see a nice welcome page with login and logout functionality.</p>
<h3>Resources</h3>
<p>God, I love this Ryan guy creating the screencasts at <a href="http://railscasts.com/">http://railscasts.com/</a>. He targets the intermediate rails developer, but this is excellent stuff for noobs as well. He taught me rails template runner in episode <a title="#148" href="http://railscasts.com/episodes/148-app-templates-in-rails-2-3">#148</a></p>
<p>More templates at <a href="http://github.com/jeremymcanally/rails-templates">http://github.com/jeremymcanally/rails-templates</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olemortenamundsen.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olemortenamundsen.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olemortenamundsen.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olemortenamundsen.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olemortenamundsen.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olemortenamundsen.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olemortenamundsen.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olemortenamundsen.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olemortenamundsen.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olemortenamundsen.wordpress.com/208/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olemortenamundsen.wordpress.com&blog=1310802&post=208&subd=olemortenamundsen&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://olemortenamundsen.wordpress.com/2009/09/24/rails-2-3-template-for-creating-new-projects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d3fe046c4a216826ec87eeab92e7d55b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ole Morten</media:title>
		</media:content>
	</item>
		<item>
		<title>Downloads of my burndown excel sheet have exceed 400</title>
		<link>http://olemortenamundsen.wordpress.com/2009/08/17/downloads-of-my-burndown-excel-sheet-have-exceed-400/</link>
		<comments>http://olemortenamundsen.wordpress.com/2009/08/17/downloads-of-my-burndown-excel-sheet-have-exceed-400/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 15:10:55 +0000</pubDate>
		<dc:creator>Ole Morten</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[smidig]]></category>
		<category><![CDATA[burndown]]></category>
		<category><![CDATA[burnup]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">http://olemortenamundsen.wordpress.com/?p=156</guid>
		<description><![CDATA[I&#8217;m proud to say that there have been over 400 downloads of the burndown and burnup graph excel sheet I published about a year ago. I didn&#8217;t clean up nor explain much, just threw it out there. Download the (unmodified) excel sheet here: http://blog.omaconsulting.no/BurnDown/burndown.xls
Here is the post I publish about a year ago 18th June [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olemortenamundsen.wordpress.com&blog=1310802&post=156&subd=olemortenamundsen&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;m proud to say that there have been over 400 downloads of the burndown and burnup graph excel sheet I published about a year ago. I didn&#8217;t clean up nor explain much, just threw it out there. Download the (unmodified) excel sheet here: <a title="http://blog.omaconsulting.no/BurnDown/burndown.xls" href="http://blog.omaconsulting.no/BurnDown/burndown.xls">http://blog.omaconsulting.no/BurnDown/burndown.xls</a></p>
<p>Here is the post I publish about a year ago 18th June 2008 <a title="http://olemortenamundsen.wordpress.com/2008/06/18/sharing-my-burndown-and-burnup-excel-sheet/" href="http://olemortenamundsen.wordpress.com/2008/06/18/sharing-my-burndown-and-burnup-excel-sheet/" target="_self">http://olemortenamundsen.wordpress.com/2008/06/18/sharing-my-burndown-and-burnup-excel-sheet/</a></p>
<p>What disappoints me, is that I have received no feedback. NO FEEDBACK!? Why not?</p>
<p><span id="more-156"></span>It contained a lot of experimental numbers and formulas, I would guess somebody thought they were strange. I&#8217;m sure many of you improved it and tried out. Maybe it&#8217;s been mostly managers downloading it, I have feeling this group tend to like being shared stuff, than sharing themselves. Too presumptuous? OK, I&#8217;ll watch my step :) I&#8217;d like feedback, though. I wish to learn from your experiences, good and bad.</p>
<p>The short story: Struggling to find any nice and simple burndown graphs to help me in a project, I created one myself (late 2007). I started out simple, with a burndown graph on A3 paper, then a simple excel sheet. Then it grew in a on-demand manner, truly agile. A friend liked burnup graphs and I discovered that these were really good at presenting the daily delivery speed, while the burndown was better at illustrating remaining work, scope creep up and chance of success (hitting zero at sprint end).  Of course, I started using both! Further combining a story point burnup in the (task-) burndown graph proved to be most valuable the times we scoped out user stories during the sprint. The scope down was greatly illustrating that fact that we thus delivered less business value (story points).</p>
<p>Along the way, I experimented a lot with numbers and formulas, mostly related to the burndown factor. The objective was to be able to deliver consistently, always committing to the most we could and always delivering what we committed ourselves to. Predictability is valuable to analyse the progress and the likelihood of reaching your deadline half a year, or a year, away. Do you have to modify your triangle? Scope, Resources, Time?</p>
<p>Good luck and thank you for sharing!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olemortenamundsen.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olemortenamundsen.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olemortenamundsen.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olemortenamundsen.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olemortenamundsen.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olemortenamundsen.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olemortenamundsen.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olemortenamundsen.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olemortenamundsen.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olemortenamundsen.wordpress.com/156/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olemortenamundsen.wordpress.com&blog=1310802&post=156&subd=olemortenamundsen&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://olemortenamundsen.wordpress.com/2009/08/17/downloads-of-my-burndown-excel-sheet-have-exceed-400/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d3fe046c4a216826ec87eeab92e7d55b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ole Morten</media:title>
		</media:content>
	</item>
		<item>
		<title>Strategies for separating unit and integration tests, using Maven, Eclipse / IDEA, cobertura</title>
		<link>http://olemortenamundsen.wordpress.com/2009/07/22/strategies-for-separating-unit-and-integration-tests-using-maven-eclipse-idea-cobertura/</link>
		<comments>http://olemortenamundsen.wordpress.com/2009/07/22/strategies-for-separating-unit-and-integration-tests-using-maven-eclipse-idea-cobertura/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 14:39:36 +0000</pubDate>
		<dc:creator>Ole Morten</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[integration]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[cobertura]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[IntelliJ IDEA]]></category>
		<category><![CDATA[junit]]></category>
		<category><![CDATA[maven2]]></category>
		<category><![CDATA[test coverage]]></category>
		<category><![CDATA[testng]]></category>

		<guid isPermaLink="false">http://olemortenamundsen.wordpress.com/?p=129</guid>
		<description><![CDATA[What I have

Maven2
Eclipse/IntelliJ IDEA
Fast tests (unit tests)
Slow tests (integration tests)
Test coverage maven plugin (Cobertura)

I wish to

run my fast tests (unit tests) from my IDE
run my slow test (integration tests) from my IDE and maven
run them all before committing code.
create test coverage reports combining unit and integration tests
create test coverage reports from unit tests only


If you&#8217;re [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olemortenamundsen.wordpress.com&blog=1310802&post=129&subd=olemortenamundsen&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>What I have</p>
<ul>
<li>Maven2</li>
<li>Eclipse/IntelliJ IDEA</li>
<li>Fast tests (unit tests)</li>
<li>Slow tests (integration tests)</li>
<li>Test coverage maven plugin (Cobertura)</li>
</ul>
<p>I wish to</p>
<ul>
<li>run my fast tests (unit tests) from my IDE</li>
<li>run my slow test (integration tests) from my IDE and maven</li>
<li>run them all before committing code.</li>
<li>create test coverage reports combining unit and integration tests</li>
<li>create test coverage reports from unit tests only</li>
</ul>
<p><span id="more-129"></span><br />
If you&#8217;re like me, you wish to run all your fast unit tests often! And the process shouldn&#8217;t take more than 15 sec in total. In Eclipse or IDEA, you simply right click the project or the <em>src/test/java</em> and run tests. But how do you exclude your integration tests? Move them?<br />
In maven2, you may create include and exclude statements, like <em>**IntegrationTest.java</em>. This is all fine, but in my frustrated this doesn&#8217;t help you in Eclipse or IntelliJ.</p>
<p>I&#8217;ve googled a lot, stating that t<em>here&#8217;s gotta exist a simple solution to this!?</em> I found some unsatisfactory suggestions here<br />
<a href="http://docs.codehaus.org/display/MAVENUSER/Maven+and+Integration+Testing">http://docs.codehaus.org/display/MAVENUSER/Maven+and+Integration+Testing</a><br />
They might be good, but they don&#8217;t meet my needs of combining IDE test run and combined code coverage! Below is a list of the various suggestion, with the one I ended up with at the end.</p>
<ol>
<li> <strong>Separate Integration Tests Module.</strong> Works for both maven and Eclipse. But what about code coverage? You will not get the combined code coverage of fast and slow test. You may say this is a cobertura (clover as well I guess) issue, that it doesn&#8217;t instrument packaged jars.</li>
<li><strong> Test Suites. </strong>Create a test suite for integration tests and one for unit tests. With hundreds of tests it can get quite tedious. I guess you may code it more intelligently to find the tests, but I have not seen a good solution yet.</li>
<li><strong>src/test/java and src/it/java.</strong> Would solve everything elegantly, but we&#8217;ll have to wait until maven supports it. <strong>(Update 29. sep 09: </strong>Bertrand commented that the <a href="http://mojo.codehaus.org/build-helper-maven-plugin/index.html">mojo build-helper-maven-plugin</a> might help. Report back to me if it does!)</li>
<li><strong>my.package.tests.a.b.c and my.package.it.a.b.c</strong>. Looks lik 3 but is very different! The tests should be in the same package as the class it&#8217;s testing. Else you would suddenly find yourself having to open up the domain object, as it were a simple bean! Protect your domain objects, make package protected constructors or method if needed for the tests.</li>
<li><strong> Run the tests in maven only. </strong>Yes, many chooses this&#8230; But it&#8217;s plain ineffective if it takes 10 sec to run them in Eclipse and 1 minute (often 2) with &#8220;maven test&#8221;. Besides you often need to include &#8220;clean&#8221;, maven clean test.</li>
<li><strong>TestNG.</strong> I got this to work for all, maven, IntelliJ IDEA and cobertura. But there are things about TestNG I don&#8217;t like. Solution and elaboration follows below.</li>
</ol>
<p>TestNG supports<br />
<strong>@Test (groups ={&#8220;unit-tests&#8221;})</strong> and<br />
<strong>@Test (groups = {&#8220;integration-tests&#8221;})</strong><br />
which are easy to use in IDEA. The Maven Surefire Plugin also understands it and the Cobertura instrumentation works fine when you select to run them all together. Yeah!</p>
<p>But what I hate about TestNG is that it doesn&#8217;t provide the <em>execution time per test </em> nor the test results for each test class, only a summary at the end &#8220;Tests run: 272 failed:1 &#8230; duration:5 minutes&#8221; or something like that. Goggling this all I find is arrogant answers to the this question, stating that &#8220;That&#8217;s the way testNG is supposed to work&#8221; or &#8220;Why are you using it if you don&#8217;t utilize it&#8217;s parallel test execution potential&#8221;. Bullocks ;)</p>
<p>Wishlist:</p>
<ul>
<li>maven supporting the directory <strong>src/it</strong></li>
<li>Junit supporting grouping as testNG does</li>
</ul>
<p>Oh, you know a better way? Great news! Tell me:)</p>
<p>EDIT 23.jul-09 : I added some stuff from my pom file. Will not work out of the box, but should be helpful anyhow.</p>
<pre>&lt;profiles&gt;
 &lt;!-- Profile for running both TestNG integration tests and Junit/TestNG unit
      tests. Example of usage: mvn clean install -Pintegration-tests --&gt;
 &lt;profile&gt;
  &lt;id&gt;integration-tests&lt;/id&gt;
   &lt;build&gt;
    &lt;plugins&gt;
     &lt;plugin&gt;
      &lt;artifactId&gt;maven-surefire-plugin&lt;/artifactId&gt;
      &lt;configuration&gt;
       &lt;forkMode&gt;once&lt;/forkMode&gt;
       &lt;argLine&gt;-XX:MaxPermSize=256m -Xmx512m&lt;/argLine&gt;
       &lt;includes&gt;
        &lt;include&gt;**/*Tests.java&lt;/include&gt;
        &lt;include&gt;**/*Test.java&lt;/include&gt;
       &lt;/includes&gt;
      &lt;excludes&gt;
       &lt;exclude&gt;**/Abstract*.java&lt;/exclude&gt;
      &lt;/excludes&gt;
      <strong>&lt;groups&gt;unit-tests,integration-tests&lt;/groups&gt;</strong>
     &lt;/configuration&gt;
    &lt;/plugin&gt;
   &lt;/plugins&gt;
  &lt;/build&gt;
 &lt;/profile&gt;</pre>
<p>If you&#8217;re using Hudson, include this to display it in the build results and look at test coverage history.</p>
<pre>&lt;!-- If we are running in hudson use cobertura.   --&gt;
 &lt;profile&gt;
  &lt;id&gt;hudson&lt;/id&gt;
  &lt;activation&gt;
   &lt;property&gt;
    &lt;name&gt;BUILD_NUMBER&lt;/name&gt;
   &lt;/property&gt;
  &lt;/activation&gt;
  &lt;build&gt;
   &lt;plugins&gt;
    &lt;plugin&gt;
     &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
     &lt;artifactId&gt;cobertura-maven-plugin&lt;/artifactId&gt;
    &lt;/plugin&gt;
   &lt;/plugins&gt;
  &lt;/build&gt;
 &lt;/profile&gt;</pre>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olemortenamundsen.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olemortenamundsen.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olemortenamundsen.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olemortenamundsen.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olemortenamundsen.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olemortenamundsen.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olemortenamundsen.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olemortenamundsen.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olemortenamundsen.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olemortenamundsen.wordpress.com/129/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olemortenamundsen.wordpress.com&blog=1310802&post=129&subd=olemortenamundsen&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://olemortenamundsen.wordpress.com/2009/07/22/strategies-for-separating-unit-and-integration-tests-using-maven-eclipse-idea-cobertura/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d3fe046c4a216826ec87eeab92e7d55b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ole Morten</media:title>
		</media:content>
	</item>
		<item>
		<title>Is agile easy or hard, simple or complicated?</title>
		<link>http://olemortenamundsen.wordpress.com/2009/02/09/is-agile-easy-or-hard-simple-or-complicated/</link>
		<comments>http://olemortenamundsen.wordpress.com/2009/02/09/is-agile-easy-or-hard-simple-or-complicated/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 17:29:19 +0000</pubDate>
		<dc:creator>Ole Morten</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[smidig]]></category>

		<guid isPermaLink="false">http://olemortenamundsen.wordpress.com/?p=109</guid>
		<description><![CDATA[I&#8217;m giving a lightning talk Wednesday, 11.feb, on SW2009, Oslo. It&#8217;s on a day-track called &#8220;Future development processes in a post-agile world (Effective software development)&#8221;. What&#8217;s your thoughts about that title? Clever? Needed? Provoking? Sad? Happy?
My thought? &#8211; Are we even agile yet? I think we&#8217;re far away from post-agile, but it&#8217;s probably good for [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olemortenamundsen.wordpress.com&blog=1310802&post=109&subd=olemortenamundsen&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;m giving a lightning talk Wednesday, 11.feb, on <a href="http://dataforeningen.no/-mgtjO0-.ips">SW2009</a>, Oslo. It&#8217;s on a day-track called &#8220;Future development processes in a post-agile world (Effective software development)&#8221;. What&#8217;s your thoughts about that title? Clever? Needed? Provoking? Sad? Happy?</p>
<p>My thought? &#8211; Are we even agile yet? I think we&#8217;re far away from post-agile, but it&#8217;s probably good for us to discuss the subject.</p>
<p>Anyways, my lightning talk title is &#8220;You have yet to have success with an agile project&#8221; (Du har til gode å ha suksess med gjennomføringen av et smidig prosjekt). Switch <em>You</em> with <em>I</em> and it&#8217;s partly true as well, because how do we measure success? Well, that&#8217;s a whole other discussion, all I know is that I felt we had a potential to do much better, given the resources and information available at the time.</p>
<p>The objective of my lightning talk is to affect the attitude I feel many people have towards agile. So, <em>is agile easy or hard, simple or complicated? </em></p>
<p>Most agilists would claim &#8220;Agile is simple!&#8221;. Maybe they&#8217;re right, but herein lies the problem, I think. When we sell <em>simple</em> to the customer (and the developers for that sake!), we risk that he&#8217;ll take too lightly on the process. Perhaps key elements are forgotten or simply ignored? The customer plays a big part in both waterfall and agile, but in agile his role is very different. We need the customer (product owner) on-site, continuously providing feedback and steer the project in the desired direction according to the newer information obtained. Sounds feasible, and easy, but this person needs both domain knowledge and the executive rights to guide the projects. Who can spare such a vital person to a development project? It would certainly be an easier decision if the customer new the project would fail dramatically if not. </p>
<p>So, from now on, sell <strong>&#8220;Agile is hard, but you get the better product&#8221;</strong>. Then, maybe, agile will become easy ;)</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olemortenamundsen.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olemortenamundsen.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olemortenamundsen.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olemortenamundsen.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olemortenamundsen.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olemortenamundsen.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olemortenamundsen.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olemortenamundsen.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olemortenamundsen.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olemortenamundsen.wordpress.com/109/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olemortenamundsen.wordpress.com&blog=1310802&post=109&subd=olemortenamundsen&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://olemortenamundsen.wordpress.com/2009/02/09/is-agile-easy-or-hard-simple-or-complicated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d3fe046c4a216826ec87eeab92e7d55b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ole Morten</media:title>
		</media:content>
	</item>
		<item>
		<title>The only good branch is a dead branch</title>
		<link>http://olemortenamundsen.wordpress.com/2008/11/11/the-only-good-branch-is-a-dead-branch/</link>
		<comments>http://olemortenamundsen.wordpress.com/2008/11/11/the-only-good-branch-is-a-dead-branch/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 19:19:19 +0000</pubDate>
		<dc:creator>Ole Morten</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://olemortenamundsen.wordpress.com/?p=105</guid>
		<description><![CDATA[edit: so kill them fast :)
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olemortenamundsen.wordpress.com&blog=1310802&post=105&subd=olemortenamundsen&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>edit: so kill them fast :)</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olemortenamundsen.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olemortenamundsen.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olemortenamundsen.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olemortenamundsen.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olemortenamundsen.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olemortenamundsen.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olemortenamundsen.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olemortenamundsen.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olemortenamundsen.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olemortenamundsen.wordpress.com/105/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olemortenamundsen.wordpress.com&blog=1310802&post=105&subd=olemortenamundsen&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://olemortenamundsen.wordpress.com/2008/11/11/the-only-good-branch-is-a-dead-branch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d3fe046c4a216826ec87eeab92e7d55b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ole Morten</media:title>
		</media:content>
	</item>
		<item>
		<title>Smidig2008 &#8211; smidig gjennomført</title>
		<link>http://olemortenamundsen.wordpress.com/2008/10/15/smidig2008-smidig-gjennomf%c3%b8rt/</link>
		<comments>http://olemortenamundsen.wordpress.com/2008/10/15/smidig2008-smidig-gjennomf%c3%b8rt/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 20:55:38 +0000</pubDate>
		<dc:creator>Ole Morten</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[konferanse]]></category>
		<category><![CDATA[smidig]]></category>
		<category><![CDATA[Smidig2008]]></category>

		<guid isPermaLink="false">http://olemortenamundsen.wordpress.com/?p=69</guid>
		<description><![CDATA[Smidig2008 was a conference about agile methodolog, as was Smidig2007. I participated in organizing them both and we repeated our success from last year, expanding from 300 to 450 participants. I&#8217;ll continue this in norwegian as this is the language spoken at the conference.
Smidig2008 gikk av stabelen 9. og 10. oktober i Oslo Kongresshus. Vi [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olemortenamundsen.wordpress.com&blog=1310802&post=69&subd=olemortenamundsen&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://www.smidig2008.no">Smidig2008</a> was a conference about agile methodolog, as was Smidig2007. I participated in organizing them both and we repeated our success from last year, expanding from 300 to 450 participants. I&#8217;ll continue this in norwegian as this is the language spoken at the conference.</p>
<p>Smidig2008 gikk av stabelen 9. og 10. oktober i Oslo Kongresshus. Vi hadde lært masse fra fjoråret, og bytte av lokale samt bedre registreringsprosedyrer bidro til en smertefri gjennomføring. <a href="http://smidig.no/smidig2008/program/">Foilene</a> ligger nå ute! Senere kommer også videoene. Jeg skriver her litt om konferansen generelt og mine opplevelser.</p>
<p><span id="more-69"></span></p>
<p>Alle lynforedragene ble filmet av amerikanske Confreaks og i år, som i fjor, kom ikke utstyret over atlanteren tidsnok. Flaks at det er en smidigkonferanse! Vi omfavner endringer&#8230; Når det er sagt, så skal man lære av sine feil, så det ble gjort grep. I fjor rotet flyselskapet bort bagasje med utstyr, så i år byttet de til FedEx. Men så rotet det seg til allikevel! Uten norske Howard Brodwall hadde vi slitt kraftig, man kan vel si at han reddet oss i år, også. De sto på hele natta, ringte rundt etter utstyr, kuttet kabler etc. Dermed blir det video av alle foredragene på nett! Når det er klart, vil det sendes ut mail til deltakerne.</p>
<h4>Årets provokatør</h4>
<p>Gud som jeg gleder meg til å se Tom Gilb sitt lynforedrag på video. Han er den ubestridte provokatør i Smidig2008-konferansen! Kanskje ikke grunnet innhold, heller ikke det han sa, men kanskje det han <em>ikke</em> sa ;)</p>
<h4>Mye ansvar</h4>
<p>Selv fikk jeg mye mer ansvar disse to dagene konferansen pågikk, enn det jeg hadde forventet. I utgangspunktet skulle jeg holde introkurset om retrospective, men holdt også velkomsttale og deltakernes retrospektiv. Velkomsttalen fikk jeg vite at jeg skulle holde først klokken 23 kvelden før, under rigging av konferansen. Det, samt generelt mye tid til forberedelser til konferansegjennomføring, ønsker jeg å bruke som unnskyldning for at jeg ikke var godt nok forberedt til min Intro:Retrospective. Men det får jeg ta i min egen retrospektiv og konkludere med at det kunne jeg gjort mye bedre. Mitt tips: Gå alltid gjennom hele foredraget muntlig, snakk til en venn eller kjæreste. Det er alltid så mye du ikke har tenkt på, eller som du legger merke til at kommer dårlig ut muntlig.</p>
<h4>Smidig konferanse &#8211; programmet ble til underveis</h4>
<p>Enda et bevis på at konferansen gjennomføres smidig, med eierskap og ansvar er deltakernes retrospektiv. Under konferansemiddagen, torsdag kveld, kom vi til å tenke på at vi ikke hadde et opplegg for årets retrospektiv. Under standup klokken 2030, lettere bedugget, tok vi den vanlige runden. Vi avtalte fremmøte og fremdrift for neste dag og skålte for en særdeles vellyket første dag. Under lunsjen dagen derpå satte Jerome Lacoste og meg ned ved et bord og brainstormet. De andre ved bordet tenkte nok sine tanker om oss&#8230; Vi kom til at følgende kriterier var viktige</p>
<ul>
<li>Involvering av hver enkelt deltaker (positivt fra ifjor)</li>
<li>Drive, fremdrift (ikke så bra ifjor)</li>
<li>Enkelt og tydelig</li>
<li>Forbedringsmål for Smidig2009</li>
<li>God stemning</li>
</ul>
<h4>Deltakernes retrospektiv</h4>
<p>Jerome hadde også et forslag om å kjøre 3 retrospektiver i 3 forskjellige rom, for å kunne prøve ut 3 forskjellige metoder. Kjappere læring. Det er en genial idé, som jeg ønsker å få prøvd en gang.</p>
<p>Men vi valgte en safere løsning, da vi er klar over at deltakerne på det tidspunktet er altfor klare til å avslutte, med nesen vendt halvt hjemover. Så vi gikk for å samle alle i storsalen. Vi laget en tidslinje for et opplegg som skulle vare 20-25 min og involvere 200 mennesker (stort frafall mot slutten av konferansen). Deretter fant vi noen sjeler som ikke så for opptatt ut i en open space og ba dem delta på en generalprøve. Takk skal dere ha, der lærte vi mye! Det kom frem at det var viktig å informere deltakerne om å skrive tydelig på post-it-notene, gjerne blokkbokstaver, samt annotere dem med en tydelig + eller &#8211; øverst. Dessverre rakk vi ikke fullføre før vi ble jaget ut på scenen. Selvfølgelig fikk vi da problemer med den biten vi ikke hadde gjennomført generalprøve på!</p>
<p>Deltakernes retrospektiv gjennomførte vi slik:</p>
<ol>
<li>Samle alle i Sal A mens vi deltakerne rydde alle stoler vekk, for en stående retrospektiv.</li>
<li>Be deltakerne samle seg i grupper på 8 med 1  stor (A3) post-it blokk, 1 stor tusj, post-it notes og penn til hver deltaker</li>
<li>Demonstrere på scenen, samtidig som deltakerne utfører oppgaven. Det sikret lik hastighet og ga tydelig eksempel. Vi delte post-it blokken i 4 kategorier slik: <a href="http://olemortenamundsen.files.wordpress.com/2008/10/deltakernesretrospektiv1.jpg"><img class="alignnone size-full wp-image-76" title="deltakernesretrospektiv1" src="http://olemortenamundsen.files.wordpress.com/2008/10/deltakernesretrospektiv1.jpg?w=300&#038;h=400" alt="" width="300" height="400" /></a></li>
<li>Hver deltaker måtte skrive minst én positiv og én negativ lapp, i hver av de fire kategoriene.
<ul>
<li>først 5 min uten å si noen ting</li>
</ul>
<ul>
<li>så 3-5 minutter med lov til å prate</li>
</ul>
</li>
<li>Deretter fikk hver gruppe utdelt en lapp som fortalte hvilken kategori de skulle fokusere på. De skulle stemme frem et forbedringsmål (negativ) og en ting vi må fortsette med (positiv). Dette rakk vi ikke i generalprøven og når jeg hørte Aslak i arrangørgruppen rundt sin post-it flipover si &#8220;Jeg skjønner ikke hva vi skal nå&#8221; tenkte jeg det skulle gå åt skogen. Men det gikk&#8230;</li>
<li>Deretter ble alle disse viktigste lest opp på scenen. Kort fortalt gikk mye på støy i open space og i liten mulighet til å bevege seg mellom lyntaler.</li>
</ol>
<h4>Registrering</h4>
<p>Registrering var et herk i fjor. Det var også logistikken rundt mat, som var tusen ganger bedre i år. Men DogA liker ikke oss, og vi liker ikke &#8230; Registreringsløsningen til Daniel Holmen, med strekkoder var helt fantastisk. Ole Christian Rynning bidro også her med fiffige rubyløsninger for å få det til å fungere. Det var rett og slett helt fantastisk.</p>
<h4>Før konferansen</h4>
<p>Folk bidro i veldig varierende grad til årets konferanse. Det ble gjort en del gjennom smidig.no forumet på nyåret, hovedsakelig anført av Johannes og Aslak. Senere skjedde det lite og spesielt på utviklingen av Smidig2008.no lå vi etter. Teknologivalg med Git, Radiant (CMS), cucumber, ruby, rails, mysql og en egen extension av radiant kalt ba som gjorde git litt vanskeligere å bruke. Det var summen av teknologiene som gjorde det hele vanskelig å bidra. De fleste av teknologiene er kule (det vil si bra) hver for seg, unntatt radiant, som det er rimelig konsensus om. Man må også huske at vi bruker fritiden på dette og da har man en ganske mye lavere smerteterskel for å &#8220;ikke skjønne noe&#8221;. Mangelen på kildekodekontroll er hovedankepunktet mot radiant, samt at det var masse egne tags (kun et problem fordi jeg hater radiant generelt) og slikt å lære seg. Jeg bidro svært lite for å fikse applikasjonen og følte jeg var mer til bry enn til hjelp. Allikevel har jeg brukt et høyt tosifret antall timer på det (kall meg treig). Hadde ikke Aslak satt inn både ett og to gir ekstra, hadde vi nok ikke kommet i havn med applikasjonen. Snakker om trikkefaktor ;) Sarah Brodwall fungerte som vår grafiker og grensesnittsprogrammerer, en uverdelig person i et team med hovedsakelig utviklernerder. Veldig serviceinnstilt og konstruktiv, det kan du sette på CVen Sarah.</p>
<p><strong>Etter konferansen</strong></p>
<p>Etter konferansen, i femtiden fredag, hadde vi en skikkelig retrospektiv, med ærlige og åpen atmosfære, og øl! Vi følte vi hadde mistet noe av futten etter Smidig2007, at vi la oss på plankekjøringsmoduset. Mange av oss må ta selvkritikk for at vi ikke tok nok ansvar eller involverte oss oftere og tidligere. Selv meldte jeg meg ut en veldig lang periode og bidro ikke i den grad det var forventet av meg.</p>
<p>Men kommentaren fra garderobedamen på kongresshuset gjør oss alle motivert og får oss alle til å smile fra øre til øre: &#8220;Det er så mye energi i dere. Folk diskuterer og er ivrige. Det er jo helt annerledes enn det pleier å være&#8221;. Det er en utrolig bra tilbakemelding til våre deltakere og til opplegget de bidrar til å gjøre så effektivt.</p>
<h4>Smidig2009</h4>
<p>Det er en fare for at det blir en smidigkonferanse neste år. Vi skal ta erfaringene fra Smidig2007 og Smidig2008, trekke ut det som er bra og forbedre det vi kan. Fra Smidig2007 glemte vi &#8220;brannfaklene&#8221; og er en av hovedtingene vi må få med neste år. Vi er også usikre på antallet, noen vil ned til 300 virkelig interesserte, andre nå ut til et større publikum. Jeg føler uansett at folk var ganske mye feigere i år enn i fjor. Vi gjør forskjellige ting, feiler på helt nye måter. Vi må provosere smidigmisjonærende enda mer!</p>
<p>Jeg beklager overfor dem i smidiggruppa som ikke er nevnt eksplisitt her, jeg føler jeg allerede har skrevet nok tekst. OK, jeg må så absolutt nevne og rose dere også! Simen, Trond P, Trond W, Thommy, Lars Arne, Christian og Øystein, gratulerer med nok en vellykket gjennomføring av en smidig konferanse. Ser allerede frem til neste.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olemortenamundsen.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olemortenamundsen.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olemortenamundsen.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olemortenamundsen.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olemortenamundsen.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olemortenamundsen.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olemortenamundsen.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olemortenamundsen.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olemortenamundsen.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olemortenamundsen.wordpress.com/69/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olemortenamundsen.wordpress.com&blog=1310802&post=69&subd=olemortenamundsen&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://olemortenamundsen.wordpress.com/2008/10/15/smidig2008-smidig-gjennomf%c3%b8rt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d3fe046c4a216826ec87eeab92e7d55b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ole Morten</media:title>
		</media:content>

		<media:content url="http://olemortenamundsen.files.wordpress.com/2008/10/deltakernesretrospektiv1.jpg" medium="image">
			<media:title type="html">deltakernesretrospektiv1</media:title>
		</media:content>
	</item>
		<item>
		<title>Bamboo, sound, X10 and lamp control script</title>
		<link>http://olemortenamundsen.wordpress.com/2008/09/26/bamboo-sound-x10-and-lamp-control-script/</link>
		<comments>http://olemortenamundsen.wordpress.com/2008/09/26/bamboo-sound-x10-and-lamp-control-script/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 17:24:26 +0000</pubDate>
		<dc:creator>Ole Morten</dc:creator>
				<category><![CDATA[Testing]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[Bamboo]]></category>
		<category><![CDATA[CI]]></category>
		<category><![CDATA[lamp control]]></category>
		<category><![CDATA[lava lamp]]></category>
		<category><![CDATA[x10]]></category>

		<guid isPermaLink="false">http://olemortenamundsen.wordpress.com/?p=20</guid>
		<description><![CDATA[Code is included in this post! I&#8217;ve written a small ruby script for polling a bamboo server for (multiple) build results, playing sounds for success and failure. It even controls lava lamps connected to a AM12 power outlet through a CM11 controller using the X10 protocol. You may get these at framtidshuset. To send the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olemortenamundsen.wordpress.com&blog=1310802&post=20&subd=olemortenamundsen&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><em>Code is included in this post! </em>I&#8217;ve written a small ruby script for polling a bamboo server for (multiple) build results, playing sounds for success and failure. It even controls lava lamps connected to a AM12 power outlet through a CM11 controller using the X10 protocol. You may get these at <a href="http://www.framtidshuset.no/catalog/">framtidshuset</a>. To send the signals through your serial port(yeah, I know! serial port) to your CM11 controller, you need a program that takes arguments like this &#8216;command A1 on&#8217;, where A1 is the lamp/AM12 code and &#8216;on&#8217; is the opposite of &#8216;off&#8217; :) I use windows and ActiveHome&#8217;s (HomeControl) x10com32.exe (ships with the CM11 if bought from Framtidshuset), and on Linux you would use the free &#8216;heyu&#8217; program. I&#8217;ve used heyu before and promise you it works.</p>
<p>Bamboo must have the Rest API <em>enable</em>d, a property setting you find somewhere in the bamboo settings.</p>
<p><span id="more-20"></span>If you make one for say, Hudson, or Continuum or whatever, please let me now and I&#8217;ll post a link. Certainly you&#8217;d probably want to extend or rewrite the  continuous_builder_lamp_controller.rb to better fit your needs, it&#8217;s not, you know, perfected ;) It&#8217;s agile and on-demand driven development! If you modify it, extend it, improve it, let me in on the details!</p>
<p>You might download the script as a zip bundle <a href="http://blog.omaconsulting.no/CI/ContinuousIntegrationLampControl.zip">here</a>, with sounds and everything. The ruby script itself might also be downloaded <a href="http://blog.omaconsulting.no/CI/ContinuousIntegrationLampControl/continuous_builder_lamp_controller.rb">here</a>, with a config file example <a href="http://blog.omaconsulting.no/CI/ContinuousIntegrationLampControl/config.yml">here</a> and <a href="http://blog.omaconsulting.no/CI/ContinuousIntegrationLampControl/config_multiple.yml">here</a>. The x10 program <a href="ftp://ftp.x10.com/pub/applications/activehome/x10com32.exe">x10com32.exe</a> may be downloaded from here (not responsible for external sites). Below is a picture of a red lava lamp after a broken build. The other one is blue, but should of course be green :) As soon as the build is fixed, the red lamp will switch off, the blue on and cheering will chime to the PC speakers (if you enable sounds).</p>
<div id="attachment_50" class="wp-caption aligncenter" style="width: 310px"><a href="http://olemortenamundsen.files.wordpress.com/2008/09/broken_build.jpg"><img class="size-medium wp-image-50" title="broken_build" src="http://olemortenamundsen.files.wordpress.com/2008/09/broken_build.jpg?w=300&#038;h=225" alt="Broken build. A glowing red lava lamp" width="300" height="225" /></a><p class="wp-caption-text">Broken build. A glowing red lava lamp</p></div>
<p>Note: The script seem to hang every <em>first</em> time it is executed after a reboot. Kill it, and run again. If you solve it, let me know:)</p>
<p>For many, the source code above is sufficient to get going. For the rest of us, I&#8217;ll repeat myself</p>
<h4>What do I need to get started?</h4>
<ul>
<li>Power control system using the x10 protocol. ( <em>Referred above</em>)
<ul>
<li>ActiveHome PC interface CM11G (I&#8217;m using the serial cable version, but the usb should work as well)</li>
<li>Utstyrsmodul AM12G, one for each lamp (two for each lamp set)</li>
</ul>
</li>
<li>Lamps or whatever you&#8217;d like, using a power cord. As the lava lamps in the picture. Annoying red for critical builds is cool.</li>
<li>A, preferable dedicated, PC for playing sounds and sending signals to the CM11G module.</li>
<li>Ruby and it&#8217;s required libraries (use the amazing &#8216;gem install xx&#8217;)</li>
<li>Bamboo build server with REST-requests enabled. (Settings in bamboo)</li>
<li>The source code (<em>referred to above</em>)</li>
</ul>
<h4>How do I get it running with one lamp set?</h4>
<p>First, follow the instructions to connect the CM11G, using the serial or usb cable. Set the AM12G codes, e.g. A1 and A2, and connect the lamps to them. Ensure the lamps are glowing. (Hitting the power switch of the lamps will &#8220;override&#8221; the switch in the AM12G so that the lamp may always be switched on. This is a &#8220;smart&#8221; feature of the module). Go to the installation directory of the Lamp control system, having the x10com32.exe and ensure that these commands switches the lamps on/off.</p>
<ul>
<li>x10com32.exe A1 off</li>
<li>x10com32.exe A1 on</li>
<li>x10com32.exe A2 off</li>
<li>x10com32.exe A2 on</li>
</ul>
<p>Now, you&#8217;re either having the biggest grin upon your face, or you&#8217;re pissed off. Relax, I&#8217;ve felt both. If you have problems, check this</p>
<ul>
<li>You&#8217;re using the correct serial port.</li>
<li>The CM11G and AM12Gs are on the same power subnet (or something). Recommend using a unit with multiple power outlets on it, while testing. This ensures the signals aren&#8217;t disturbed, as the CM11G and AM11g communicates through the power grid(!).</li>
<li>The AM12Gs have codes A1 or A2 (or whatever you chose)</li>
<li>The computers power cord is plugged into the CM11G (haven&#8217;t tested the necessity of this, though)</li>
</ul>
<h4>Config files</h4>
<p>The config files are the only ones you need to edit! They&#8217;re fairly self explanatory. The lamp_control success/failure codes are the same as the ones on your AM12G devices (here O1 and O2 instead of A1 and A2)</p>
<ul>
<li>For multiple lamp systems, create more config YAML files. We&#8217;ll provide the config files as input to the continuous integration lamp control system script.</li>
<li>Multiple build_names defines that you want the unity of those affect one lamp set.</li>
</ul>
<p>Check the two example files given (<em>referred to above)</em>!</p>
<p>Edit the config files and execute the script with</p>
<p><strong>ruby continuous_builder_lamp_controller.rb  config.yml config2.yml &#8230;</strong></p>
<p>Have fun! <em>May the lamps be green at all times!</em></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olemortenamundsen.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olemortenamundsen.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olemortenamundsen.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olemortenamundsen.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olemortenamundsen.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olemortenamundsen.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olemortenamundsen.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olemortenamundsen.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olemortenamundsen.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olemortenamundsen.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olemortenamundsen.wordpress.com&blog=1310802&post=20&subd=olemortenamundsen&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://olemortenamundsen.wordpress.com/2008/09/26/bamboo-sound-x10-and-lamp-control-script/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d3fe046c4a216826ec87eeab92e7d55b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ole Morten</media:title>
		</media:content>

		<media:content url="http://olemortenamundsen.files.wordpress.com/2008/09/broken_build.jpg?w=300" medium="image">
			<media:title type="html">broken_build</media:title>
		</media:content>
	</item>
		<item>
		<title>Tests deployed, viewable and runnable for end-users?</title>
		<link>http://olemortenamundsen.wordpress.com/2008/08/06/tests-deployed-viewable-and-runnable-for-end-users/</link>
		<comments>http://olemortenamundsen.wordpress.com/2008/08/06/tests-deployed-viewable-and-runnable-for-end-users/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 15:06:26 +0000</pubDate>
		<dc:creator>Ole Morten</dc:creator>
				<category><![CDATA[Testing]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://olemortenamundsen.wordpress.com/?p=39</guid>
		<description><![CDATA[My god, eclipse have they&#8217;re tests publicly available for you and me to view, and run!
I stumbled across this blog in a hopeless hunt for good articles about FitNesse, test data exhaustion -duplication, -hard-coding and other dreadful things.
Yes, eclipse foundation has executable tests in production. You may view the testflow (and workflow) in the swim [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olemortenamundsen.wordpress.com&blog=1310802&post=39&subd=olemortenamundsen&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>My god, eclipse have they&#8217;re tests publicly available for you and me to view, and run!</p>
<p>I stumbled across <a href="http://blog.jonudell.net/2008/03/04/ward-cunninghams-visible-workings/">this blog</a> in a hopeless hunt for good articles about FitNesse, test data exhaustion -duplication, -hard-coding and other dreadful things.</p>
<p>Yes, eclipse foundation has executable tests in production. You may view the <a href="https://dev.eclipse.org/portal/myfoundation/tests/swim.php?file=committer_election%2Fcommitter_election.txt">testflow</a> (and workflow) in the swim framework. Swim impresses me (see <a href="http://wiki.eclipse.org/images/2/20/Swim_System_PNSQC_2007_Paper.pdf">eclipse swim pdf</a>). Seems a bit crazy at first, but they&#8217;ve got to be doing something right in their testing (and test process) when they can have such automatic tests running in production . See the <a href="https://dev.eclipse.org/portal/myfoundation/tests/swim.php?file=committer_election%2Fcommitter_election.txt">test result </a>for eclipses election of committers and be stunned!</p>
<p>I&#8217;m not the only one curios about this. Repeated, here&#8217;s the blog post that I stumbled upon, <a href="http://blog.jonudell.net/2008/03/04/ward-cunninghams-visible-workings/">here</a></p>
<p>Hope I get to try it, things always tend to look better than they are&#8230;</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/olemortenamundsen.wordpress.com/39/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/olemortenamundsen.wordpress.com/39/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olemortenamundsen.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olemortenamundsen.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olemortenamundsen.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olemortenamundsen.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olemortenamundsen.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olemortenamundsen.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olemortenamundsen.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olemortenamundsen.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olemortenamundsen.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olemortenamundsen.wordpress.com/39/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olemortenamundsen.wordpress.com&blog=1310802&post=39&subd=olemortenamundsen&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://olemortenamundsen.wordpress.com/2008/08/06/tests-deployed-viewable-and-runnable-for-end-users/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d3fe046c4a216826ec87eeab92e7d55b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ole Morten</media:title>
		</media:content>
	</item>
	</channel>
</rss>