<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Andrej Koelewijn</title>
	
	<link>http://www.andrejkoelewijn.com/wp</link>
	<description>On Software Development, Agile, SOA, Java and OpenSource</description>
	<lastBuildDate>Wed, 11 Apr 2012 07:40:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/AndrejKoelewijn" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="andrejkoelewijn" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Formatting XML documents with Gedit and Tidy</title>
		<link>http://www.andrejkoelewijn.com/wp/2012/04/11/formatting-xml-documents-with-gedit-and-tidy/</link>
		<comments>http://www.andrejkoelewijn.com/wp/2012/04/11/formatting-xml-documents-with-gedit-and-tidy/#comments</comments>
		<pubDate>Wed, 11 Apr 2012 07:40:43 +0000</pubDate>
		<dc:creator>akoelewijn</dc:creator>
				<category><![CDATA[open standards]]></category>
		<category><![CDATA[oss]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.andrejkoelewijn.com/wp/?p=2281</guid>
		<description><![CDATA[In &#8220;Manage External Tools&#8221; add the following script to format xml documents using tidy:]]></description>
			<content:encoded><![CDATA[<p>In &#8220;Manage External Tools&#8221; add the following script to format xml documents using tidy:</p>
<pre class="brush: xml; title: ; notranslate">
#!/bin/sh
cat &gt; /tmp/tidyxml.conf &lt;&lt;EOS
add-xml-decl:yes
add-xml-pi:yes
alt-text:Image
break-before-br:no
doctype:AUTO
drop-empty-paras:no
drop-font-tags:yes
fix-bad-comments:yes
hide-endtags:no
char-encoding:raw
indent:yes
indent-spaces:2
input-xml:yes
output-xml:yes
quiet:yes
tidy-mark:no
uppercase-attributes:no
uppercase-tags:no
word-2000:no
wrap:100
wrap-asp:yes
wrap-attributes:yes
wrap-jste:yes
wrap-php:yes
write-back:yes
EOS
tidy -config /tmp/tidyxml.conf
</pre>
<p><a href="http://www.andrejkoelewijn.com/wp/wp-content/uploads/2012/04/Screenshot-at-2012-04-11-093837.png" rel="lightbox[2281]"><img src="http://www.andrejkoelewijn.com/wp/wp-content/uploads/2012/04/Screenshot-at-2012-04-11-093837.png" alt="Gedit manage external tools screenshot" title="Gedit manage external tools" width="1024" height="597" class="aligncenter size-full wp-image-2282" /></a></p>
<img src="http://feeds.feedburner.com/~r/AndrejKoelewijn/~4/N0FOpwZr78M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrejkoelewijn.com/wp/2012/04/11/formatting-xml-documents-with-gedit-and-tidy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle XE on Ubuntu using Vagrant and Puppet</title>
		<link>http://www.andrejkoelewijn.com/wp/2012/02/28/oracle-xe-on-ubuntu-using-vagrant-and-puppet/</link>
		<comments>http://www.andrejkoelewijn.com/wp/2012/02/28/oracle-xe-on-ubuntu-using-vagrant-and-puppet/#comments</comments>
		<pubDate>Tue, 28 Feb 2012 11:07:34 +0000</pubDate>
		<dc:creator>akoelewijn</dc:creator>
				<category><![CDATA[cloud]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[oss]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[oraclexe]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[vagrant]]></category>

		<guid isPermaLink="false">http://www.andrejkoelewijn.com/wp/?p=2270</guid>
		<description><![CDATA[Using this excellent Oracle Xe on Ubuntu Howto post on the OTN discussion forum i&#8217;ve created some configuration files to install Oracle XE on a clean ubuntu 11.10 box using Vagrant and Puppet. On my laptop this creates a new &#8230; <a href="http://www.andrejkoelewijn.com/wp/2012/02/28/oracle-xe-on-ubuntu-using-vagrant-and-puppet/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Using this excellent <a href="https://forums.oracle.com/forums/thread.jspa?threadID=2301639">Oracle Xe on Ubuntu Howto</a> post on the OTN discussion forum i&#8217;ve created some configuration files to install Oracle XE on a clean ubuntu 11.10 box using Vagrant and Puppet. On my laptop this creates a new Ubuntu virtual machine running an Oracle XE database in 7 minutes.</p>
<p>I&#8217;ve created the following vagrant folder structure:</p>
<p><a href="http://www.andrejkoelewijn.com/wp/wp-content/uploads/2012/02/Screenshot-at-2012-02-28-101657.png" rel="lightbox[2270]"><img src="http://www.andrejkoelewijn.com/wp/wp-content/uploads/2012/02/Screenshot-at-2012-02-28-101657.png" alt="Vagrant oracle-xe folder structure" title="Vagrant oracle-xe folder structure" width="340" height="427" class="aligncenter size-full wp-image-2271" /></a></p>
<p>The rpm for Oracle XE can be manually downloaded from OTN: <a href="http://www.oracle.com/technetwork/database/express-edition/downloads/index.html">Oracle Database Express Edition 11g Release 2</a></p>
<p>The vagrant configuration file, Vagrantfile, looks like this:</p>
<pre class="brush: ruby; title: ; notranslate">
Vagrant::Config.run do |config|

  config.vm.define :oraxe do | db1_config|
    db1_config.vm.box = &quot;vagrant-oneiric-v3&quot;
    db1_config.vm.host_name = &quot;oraxe&quot;
    db1_config.vm.forward_port 22, 41022, :adapter =&gt; 1
    db1_config.vm.network :hostonly, &quot;33.33.33.10&quot;, :adapter =&gt; 2
    db1_config.vm.provision :puppet, :module_path =&gt; &quot;modules&quot;, :options =&gt; &quot;--verbose&quot;  do |puppet|
      puppet.manifests_path = &quot;manifests&quot;
      puppet.manifest_file  = &quot;site.pp&quot;
    end
    db1_config.vm.customize [ &quot;modifyvm&quot;, :id, &quot;--name&quot;, &quot;dev_env_oraxe&quot; ,&quot;--memory&quot;, &quot;2048&quot;]
	db1_config.vm.boot_mode = :gui
  end

end
</pre>
<p>The vagrant box that is used is a clean <a href="http://www.yodi.me/blog/2011/10/26/build-base-box-vagrant-ubuntu-oneiric-11.10-server/">ubuntu 11.10 64bit server box</a>.</p>
<p>The puppet site.pp configuration file:</p>
<pre class="brush: plain; title: ; notranslate">
node oraxe {
	include oracle::server
	include oracle::xe
}
</pre>
<p>The puppet module oracle has the following init.pp file:</p>
<pre class="brush: plain; title: ; notranslate">
class oracle::server {
  exec {  &quot;/usr/bin/apt-get -y update&quot;:
    alias =&gt; &quot;aptUpdate&quot;,
    timeout =&gt; 3600
  }
  package {
	&quot;ntp&quot;:
	    ensure =&gt; installed;
	&quot;htop&quot;:
	    ensure =&gt; installed;
	&quot;unzip&quot;:
	    ensure =&gt; installed;
	&quot;monit&quot;:
		ensure =&gt; installed;
	&quot;rsyslog&quot;:
		ensure =&gt; installed;
	&quot;curl&quot;:
		ensure =&gt; installed;
	&quot;alien&quot;:
		ensure =&gt; installed;
	&quot;libaio1&quot;:
		ensure =&gt; installed;
	&quot;unixodbc&quot;:
		ensure =&gt; installed;
  }
  service {
	&quot;ntp&quot;:
	    ensure =&gt; stopped;
	&quot;monit&quot;:
		ensure =&gt; running;
/*		subscribe =&gt; File[&quot;/etc/monit/conf.d/monitrc&quot;];*/
	&quot;rsyslog&quot;:
		ensure =&gt; running;
	&quot;procps&quot;:
		ensure =&gt; running;
  }
  exec {
		&quot;/usr/sbin/ntpdate ntp.ubuntu.com&quot;:
			alias =&gt; &quot;ntpdate&quot;,
			require =&gt; Service[&quot;ntp&quot;];
  }
	file {
		&quot;/etc/sysctl.d/60-oracle.conf&quot; :
			source =&gt; &quot;puppet:///modules/oracle/xe-sysctl.conf&quot;;
	}
	user { &quot;syslog&quot;:
		ensure =&gt; present,
		groups =&gt; [&quot;syslog&quot;,&quot;adm&quot;];
	}
}

class oracle::xe{
	file {
		&quot;/tmp/oracle-xe-11.2.0-1.0.x86_64.rpm.zip&quot;:,
			source =&gt; &quot;puppet:///modules/oracle/oracle-xe-11.2.0-1.0.x86_64.rpm.zip&quot;;
		&quot;/tmp/xe.rsp&quot;:
			source =&gt; &quot;puppet:///modules/oracle/xe.rsp&quot;;
		&quot;/etc/init.d/oracle-shm&quot;:
			mode =&gt; 0755,
			source =&gt; &quot;puppet:///modules/oracle/oracle-shm&quot;;
	}
	exec {
		&quot;unzip xe&quot;:
			alias =&gt; &quot;unzip xe&quot;,
			command =&gt; &quot;/usr/bin/unzip -o /tmp/oracle-xe-11.2.0-1.0.x86_64.rpm.zip&quot;,
			require =&gt; File[&quot;/tmp/oracle-xe-11.2.0-1.0.x86_64.rpm.zip&quot;],
			cwd =&gt; &quot;/tmp&quot;,
			user =&gt; root,
			creates =&gt; &quot;/tmp/oracle-xe-11.2.0-1.0.x86_64.rpm&quot;;
		&quot;alien xe&quot;:
			command =&gt; &quot;/usr/bin/alien --to-deb --scripts /tmp/Disk1/oracle-xe-11.2.0-1.0.x86_64.rpm&quot;,
			cwd =&gt; &quot;/tmp/Disk1&quot;,
			require =&gt; Exec[&quot;unzip xe&quot;],
			creates =&gt; &quot;/tmp/Disk1/oracle-xe_11.2.0-2_amd64.deb&quot;,
			user =&gt; root;
		&quot;configure xe&quot;:
			command =&gt; &quot;/etc/init.d/oracle-xe configure responseFile=/tmp/xe.rsp &gt;&gt; /tmp/xe-install.log&quot;,
			require =&gt; [Package[&quot;oracle-xe&quot;],Exec[&quot;update-rc oracle-shm&quot;]],
			user =&gt; root;
		&quot;update-rc oracle-shm&quot;:
			command =&gt; &quot;/usr/sbin/update-rc.d oracle-shm defaults 01 99&quot;,
			cwd =&gt; &quot;/etc/init.d&quot;,
			require =&gt; File[&quot;/etc/init.d/oracle-shm&quot;],
			user =&gt; root;
		&quot;oracle-shm&quot;:
			command =&gt; &quot;/etc/init.d/oracle-shm start&quot;,
			user =&gt; root,
			require =&gt; File[&quot;/etc/init.d/oracle-shm&quot;];
	}
	package {
		&quot;oracle-xe&quot;:
			provider =&gt; &quot;dpkg&quot;,
			ensure =&gt; latest,
			require =&gt; Exec[&quot;alien xe&quot;],
			source =&gt; &quot;/tmp/Disk1/oracle-xe_11.2.0-2_amd64.deb&quot;;
	}
}
</pre>
<p>The Oracle-shm file is copied from the <a href="https://forums.oracle.com/forums/thread.jspa?threadID=2301639">OTN message</a>:</p>
<pre class="brush: bash; title: ; notranslate">
#! /bin/sh
# /etc/init.d/oracle-shm
#
#
case &quot;$1&quot; in
  start)
    echo &quot;Starting script /etc/init.d/oracle-shm&quot;
    # Run only once at system startup
    if [ -e /dev/shm/.oracle-shm ]; then
      echo &quot;/dev/shm is already mounted, nothing to do&quot;
    else
      rm -f /dev/shm
      mkdir /dev/shm
      mount -B /run/shm /dev/shm
      touch /dev/shm/.oracle-shm
    fi
    ;;
  stop)
    echo &quot;Stopping script /etc/init.d/oracle-shm&quot;
    echo &quot;Nothing to do&quot;
    ;;
  *)
    echo &quot;Usage: /etc/init.d/oracle-shm {start|stop}&quot;
    exit 1
    ;;
esac
#
### BEGIN INIT INFO
# Provides:          oracle-shm
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Bind /run/shm to /dev/shm at system startup.
# Description:       Fix to allow Oracle 11g use AMM.
### END INIT INFO
</pre>
<p>Kernel setting need to be set using a xe-sysctl.config file:</p>
<pre class="brush: bash; title: ; notranslate">
# Oracle 11g XE kernel parameters
fs.file-max=6815744
net.ipv4.ip_local_port_range=9000 65500
kernel.sem=250 32000 100 128
# kernel.shmmax=429496729
kernel.shmmax=107374183
</pre>
<p>And finally the configuration parameters for creating a new database xe.rsp:</p>
<pre class="brush: bash; title: ; notranslate">
ORACLE_LISTENER_PORT=1521
ORACLE_HTTP_PORT=8080
ORACLE_PASSWORD=manager
ORACLE_CONFIRM_PASSWORD=manager
ORACLE_DBENABLE=y
</pre>
<p>To create a clean ubuntu virtual machine with a new oracle xe installation all you need to do is:</p>
<pre class="brush: plain; title: ; notranslate">
vagrant up
</pre>
<p>Ready for use:</p>
<pre class="brush: plain; title: ; notranslate">
$ sqlplus system/manager@//33.33.33.10:1521/xe
SQL*Plus: Release 11.2.0.3.0 Production on Tue Feb 28 12:06:32 2012
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
SQL&gt;
</pre>
<img src="http://feeds.feedburner.com/~r/AndrejKoelewijn/~4/W__9os-YOL8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrejkoelewijn.com/wp/2012/02/28/oracle-xe-on-ubuntu-using-vagrant-and-puppet/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Self-service architecture to avoid water-scrum-fall</title>
		<link>http://www.andrejkoelewijn.com/wp/2012/02/08/noops-selfservic/</link>
		<comments>http://www.andrejkoelewijn.com/wp/2012/02/08/noops-selfservic/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 14:20:28 +0000</pubDate>
		<dc:creator>akoelewijn</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.andrejkoelewijn.com/wp/?p=2255</guid>
		<description><![CDATA[The cloud is enabling smaller teams to do more. IAAS enabled DevOps. Self-service infrastructure enables developers to take on operations. Developers can create and manage complete virtual-datacenters as required for their applications, without interacting with operations. This significantly increases productivity &#8230; <a href="http://www.andrejkoelewijn.com/wp/2012/02/08/noops-selfservic/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The cloud is enabling smaller teams to do more. IAAS enabled DevOps. Self-service infrastructure enables developers to take on operations. Developers can create and manage complete virtual-datacenters as required for their applications, without interacting with operations. This significantly increases productivity and speeds up time-to-market.</p>
<p>PAAS is now a big boost for <a href="http://gigaom.com/cloud/why-2013-is-the-year-of-noops-for-programmers-infographic/">NoOps</a>. Operations is handled automatically by the platform. Developers no longer have to manage infrastructure. They can just deploy their applications. You just build, deploy and run. The result is even more productivity, and faster time-to-market.</p>
<p>These are all great developments. The biggest risk to project success, delivering requested functionality on time and within budget, is coordination and collaboration of large team effort. The bigger your project, the higher the risk of going over budget and over time, without actually delivering what users need.</p>
<p>Collaboration with operations used to be like this. Me: &#8220;i need a continuous-build server.&#8221; Them: “Why do you need to introduce something new? How big does it need to be? What software does it need to run? Does this software comply with our standards? We don’t have anybody available to manage this software right now. We first need to send somebody on a training to be able to manage this. We can have the hardware in three weeks, and it&#8217;ll take two weeks to install all your required software.” That’s a long time for something I could have installed in half a day.</p>
<p>Removing project dependencies, collaboration and coordination should be main priority for architects. Don’t try to design the whole system. Try to specify modules that can be created independently. The goal should be to get rid of large projects, by replacing everything with small projects, that don’t need to coordinate their efforts.</p>
<p>On most large agile projects you see a lot of upfront design and coordination, followed by small agile teams doing implementation. At the end of the project all the separate components are integrated, and tested.</p>
<p>The following image shows what I mostly encounter in larger projects working with multiple agile teams. In this example, four agile teams are working in small iterations, within a waterfall project.</p>
<p style="text-align: center;"><a href="http://www.andrejkoelewijn.com/wp/wp-content/uploads/2012/02/waterval_en_scrum-7.png" rel="lightbox"><img class="aligncenter  wp-image-2256" title="Water-Scrum-Fall - scrum within waterfall" src="http://www.andrejkoelewijn.com/wp/wp-content/uploads/2012/02/waterval_en_scrum-7.png" alt="" width="569" height="281" /></a></p>
<p>Before IAAS and PAAS one (or more) of those blue teams would have been operations working on ordering and installing the infrastructure needed for your project. If one of the four agile teams has problems and delays this impacts the whole project, as testing and deployment is delayed.</p>
<p>When you remove dependencies and the need for coordination between teams, you may get the following. Four teams delivering value for the users independently. No need to create an overall spec, overall design or do overall testing afterwards.</p>
<p style="text-align: center;"><a href="http://www.andrejkoelewijn.com/wp/wp-content/uploads/2012/02/composite-architecture-12.png" rel="lightbox"><img class="aligncenter  wp-image-2259" title="Small independent teams" src="http://www.andrejkoelewijn.com/wp/wp-content/uploads/2012/02/composite-architecture-12.png" alt="" width="586" height="215" /></a></p>
<p>This was one of the points i tried to make in my presentation for LAC2011: <a href="http://www.andrejkoelewijn.com/wp/2011/11/27/lac2011-presentation-scrum-under-architecture/">Scrum under Architecture</a>. To do large scale Agile and Scrum you need to define teams and projects that can operate largely independently from each other. Every team should be able to have its own product owner, managing an independent product backlog and release calendar.</p>
<p>Turns out, <a href="http://www.janbosch.com/Jan_Bosch/Jan_Bosch.html">Jan Bosch</a> did a keynote at LAC 2011 on this type of architecture: Speed and Innovation through Architecture. He calls it <a href="http://www.janbosch.com/Jan_Bosch/Composition.html">composition oriented software engineering</a> or Architectural Compositionality.</p>
<p>Speed and innovation is triggered by having an ecosystem of independent components. Every component team is self-directed. The product owner of each team has to determine the backlog of the project based on what he thinks the users of that component need. User can be internal or external. Big projects should not try to coordinate efforts from multiple teams. Instead they should just focus on adding a little extra on top of existing results from other teams.</p>
<p style="text-align: center;"><a href="http://www.andrejkoelewijn.com/wp/wp-content/uploads/2012/02/composite-architecture-11.png"  rel="lightbox"><img class=" wp-image-2258 aligncenter" title="Composition oriented architecture" src="http://www.andrejkoelewijn.com/wp/wp-content/uploads/2012/02/composite-architecture-11.png" alt="" width="586" height="275" /></a></p>
<p>In the illustration above, the blue team does three iterations to build something using the results of the other, gray, teams. The blue team could be a team implementing a mobile store application. It uses already delivered results of the product catalog team, the order entry team, the shopping-card team and the customer registration team.</p>
<p>By not trying to coordinate effort of all five teams in one project, but just using what has already been delivered, the project can be delivered much faster, and with less risk. At the same time each team can focus on improving their own component.</p>
<p>IAAS and PAAS are proving that small teams can be very productive and fast. The key element here is less coordination through self-service. Even if you’re not considering moving to the cloud with your IT, self-service and composition oriented architecture should be a priority.</p>
<img src="http://feeds.feedburner.com/~r/AndrejKoelewijn/~4/2BtiHlyP6Io" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrejkoelewijn.com/wp/2012/02/08/noops-selfservic/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Updating a vagrant box</title>
		<link>http://www.andrejkoelewijn.com/wp/2012/02/02/updating-a-vagrant-box/</link>
		<comments>http://www.andrejkoelewijn.com/wp/2012/02/02/updating-a-vagrant-box/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 08:58:02 +0000</pubDate>
		<dc:creator>akoelewijn</dc:creator>
				<category><![CDATA[software development]]></category>
		<category><![CDATA[vagrant]]></category>
		<category><![CDATA[virtualbox]]></category>

		<guid isPermaLink="false">http://www.andrejkoelewijn.com/wp/?p=2249</guid>
		<description><![CDATA[Here&#8217;s how i create an update of a vagrant box. It&#8217;s basically like creating a new box. I start a virtual machine based on an existing vagrant box, update it and shut it down. Next create a package and add &#8230; <a href="http://www.andrejkoelewijn.com/wp/2012/02/02/updating-a-vagrant-box/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s how i create an update of a vagrant box. It&#8217;s basically like creating a new box. I start a virtual machine based on an existing vagrant box, update it and shut it down. Next create a package and add the package:  </p>
<pre class="brush: plain; title: ; notranslate">
vagrant package --base &lt;name-in-virtualbox&gt; --output &lt;package-filename&gt;
vagrant box add &lt;box-name&gt; &lt;package-filename&gt;
</pre>
<img src="http://feeds.feedburner.com/~r/AndrejKoelewijn/~4/inMnbxDTUvs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrejkoelewijn.com/wp/2012/02/02/updating-a-vagrant-box/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using littleproxy in Mule unit tests</title>
		<link>http://www.andrejkoelewijn.com/wp/2012/02/01/using-littleproxy-in-mule-unit-tests/</link>
		<comments>http://www.andrejkoelewijn.com/wp/2012/02/01/using-littleproxy-in-mule-unit-tests/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 11:05:15 +0000</pubDate>
		<dc:creator>akoelewijn</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[soa]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[littleproxy]]></category>
		<category><![CDATA[mule]]></category>

		<guid isPermaLink="false">http://www.andrejkoelewijn.com/wp/?p=2245</guid>
		<description><![CDATA[My mule configurations files often contain proxy settings for connectors that are used to communicate to the outside world. However during development and testing I can&#8217;t use the normal proxy, since i&#8217;m mocking the outside world. Littleproxy is a java &#8230; <a href="http://www.andrejkoelewijn.com/wp/2012/02/01/using-littleproxy-in-mule-unit-tests/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>My mule configurations files often contain proxy settings for connectors that are used to communicate to the outside world. However during development and testing I can&#8217;t use the normal proxy, since i&#8217;m mocking the outside world.</p>
<p><a href="http://www.littleshoot.org/littleproxy/">Littleproxy</a> is a java proxy that you can use to replace the real proxy with a testing proxy. This avoids you having to install a proxy on your development machine and on the continuous integration server.</p>
<p>The following is part of a mule config. It defines an http connector that is configured to talk through a proxy.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;http:connector name=&quot;http.connector&quot;/&gt;
&lt;http:connector name=&quot;http.connector.proxy&quot;
                proxyHostname=&quot;localhost&quot; proxyPort=&quot;50103&quot;/&gt;
&lt;flow name=&quot;http.gateway.and.proxy&quot;&gt;
    &lt;http:inbound-endpoint host=&quot;localhost&quot; port=&quot;50102&quot;
                           path=&quot;gateway.in&quot;
                           exchange-pattern=&quot;request-response&quot;
                           connector-ref=&quot;http.connector&quot;&gt;
    &lt;/http:inbound-endpoint&gt;
    &lt;logger message=&quot;http.gateway - #1&quot;/&gt;
    &lt;http:outbound-endpoint host=&quot;localhost&quot; port=&quot;50100&quot;
                            path=&quot;dummy.service&quot;
                            connector-ref=&quot;http.connector.proxy&quot;&gt;
    &lt;/http:outbound-endpoint&gt;
&lt;/flow&gt;
</pre>
<p>Include little proxy in your maven pom.xml:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;dependency&gt;
    &lt;groupId&gt;org.littleshoot&lt;/groupId&gt;
    &lt;artifactId&gt;littleproxy&lt;/artifactId&gt;
    &lt;version&gt;0.4&lt;/version&gt;
&lt;/dependency&gt;
</pre>
<p>Here&#8217;s the unit test. First i start the proxy (you could also use @Before or @BeforeClass), and then i run a regular mule unit test:</p>
<pre class="brush: java; title: ; notranslate">
public void testShouldReturnHelloWorldThroughGatewayAndProxy()
    throws Exception {
    String msg = &quot;Hi!&quot;;
    HttpProxyServer proxyServer = new DefaultHttpProxyServer(50103);
    proxyServer.start();
    /*
    * send message
    */
    MuleClient client = new MuleClient(muleContext);
    MuleMessage result = client.send(
            &quot;http://localhost:50102/gateway.in?connector=http.connector&quot;
            , msg, null);
    String payload = result.getPayloadAsString();
    proxyServer.stop();
    Assert.assertTrue(&quot;Did not receive HelloWorld!: &quot; + payload, &quot;HelloWorld!&quot;.equals(payload));
}
</pre>
<img src="http://feeds.feedburner.com/~r/AndrejKoelewijn/~4/rlJ0Z5g4bUI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrejkoelewijn.com/wp/2012/02/01/using-littleproxy-in-mule-unit-tests/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Useful site to determine what html5, css3 &amp; svg you can use</title>
		<link>http://www.andrejkoelewijn.com/wp/2012/01/26/useful-site-to-determine-what-html5-css3-svg-you-can-use/</link>
		<comments>http://www.andrejkoelewijn.com/wp/2012/01/26/useful-site-to-determine-what-html5-css3-svg-you-can-use/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 08:59:51 +0000</pubDate>
		<dc:creator>akoelewijn</dc:creator>
				<category><![CDATA[open standards]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[svg]]></category>

		<guid isPermaLink="false">http://www.andrejkoelewijn.com/wp/?p=2240</guid>
		<description><![CDATA[I&#8217;ve been using When can I use&#8230; quite a bit recently. It enables you to quickly determine if a html5, css3 or svg feature is enabled in all the different browsers. Very useful.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using <a href="http://caniuse.com">When can I use&#8230;</a> quite a bit recently. It enables you to quickly determine if a html5, css3 or svg feature is enabled in all the different browsers. Very useful.</p>
<img src="http://feeds.feedburner.com/~r/AndrejKoelewijn/~4/cN9fYZFMufI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrejkoelewijn.com/wp/2012/01/26/useful-site-to-determine-what-html5-css3-svg-you-can-use/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Product Owner is a Project Manager</title>
		<link>http://www.andrejkoelewijn.com/wp/2012/01/18/a-product-owner-is-a-project-manager/</link>
		<comments>http://www.andrejkoelewijn.com/wp/2012/01/18/a-product-owner-is-a-project-manager/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 07:36:17 +0000</pubDate>
		<dc:creator>akoelewijn</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://www.andrejkoelewijn.com/wp/?p=2237</guid>
		<description><![CDATA[A project manager is responsible for the succesful execution of a project. Success is usually defined as delivering the project on time, within budget, to the predefined requirements. A product owner is also responsible for the succesful execution of a &#8230; <a href="http://www.andrejkoelewijn.com/wp/2012/01/18/a-product-owner-is-a-project-manager/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A project manager is responsible for the succesful execution of a project. Success is usually defined as delivering the project on time, within budget, to the predefined requirements.</p>
<p>A product owner is also responsible for the succesful execution of a project. He manages a team, determines the requirements, the order in which the team delivers these requirements, and he determines when and how often these requirements are released.</p>
<p>The difference between a product owner and a project manager are the instruments used to manage a project. </p>
<p>Scrum is based on the fact that projects have large number of unknown aspects. Requirements may be unknown, productivity is unknown upfront, technical challenges will be unknown. Because of all these unpredicatable aspects, it&#8217;s impossible to draw up a plan upfront which predicts time, budget and delivered features.</p>
<p>A product owner manages the project by focussing on the requirements. What do the customers need? He makes sure that the most important aspects as done first. If you don&#8217;t know exactly what you need to ship to your users, and you don&#8217;t know exactly how long it will take to create it, you need prioritize.</p>
<p><em>&#8220;Do we still need a project manager if we&#8217;re doing scrum?&#8221;</em></p>
<p>Yes, scrum needs a project manager. It&#8217;s the product owner. </p>
<img src="http://feeds.feedburner.com/~r/AndrejKoelewijn/~4/8HsWAL0iCso" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrejkoelewijn.com/wp/2012/01/18/a-product-owner-is-a-project-manager/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Using css webfonts in inkscape</title>
		<link>http://www.andrejkoelewijn.com/wp/2012/01/17/using-css-webfonts-in-inkscape/</link>
		<comments>http://www.andrejkoelewijn.com/wp/2012/01/17/using-css-webfonts-in-inkscape/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 15:39:50 +0000</pubDate>
		<dc:creator>akoelewijn</dc:creator>
				<category><![CDATA[open standards]]></category>
		<category><![CDATA[oss]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[inkscape]]></category>
		<category><![CDATA[svg]]></category>
		<category><![CDATA[webfonts]]></category>

		<guid isPermaLink="false">http://www.andrejkoelewijn.com/wp/?p=2224</guid>
		<description><![CDATA[I&#8217;m working on a small javascript library to use svg drawings for presentations. This would allow you to display a single svg drawing similar to normal presentations on slideshare or speakerdeck. You can see the current state here: SVG Presenter &#8230; <a href="http://www.andrejkoelewijn.com/wp/2012/01/17/using-css-webfonts-in-inkscape/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working on a small <a href="http://www.andrejkoelewijn.com/wp/2012/01/03/create-presentations-using-inkscape/">javascript library to use svg drawings for presentations</a>. This would allow you to display a single svg drawing similar to normal presentations on <a href="http://www.slideshare.net/">slideshare</a> or <a href="http://speakerdeck.com/">speakerdeck</a>. You can see the current state here: <a href="http://andrejk.home.xs4all.nl/svg-presenter/svg-presenter-test.html">SVG Presenter test</a>.</p>
<p>I wanted to see if you can use <a href="http://andrejk.home.xs4all.nl/svg-presenter/font-test.svg">webfonts in an svg drawing</a> in Inkscape. Found out it is doable. You can download fonts using the css rule <a href="http://www.w3.org/TR/2008/REC-CSS2-20080411/fonts.html#font-selection">@font-face</a>. <a href="http://www.w3.org/TR/SVG/fonts.html">SVG supports css @font-face</a>.</p>
<p>Here&#8217;s an example with four different fonts, all webfonts downloaded from <a href="http://www.google.com/webfonts#HomePlace:home">google web fonts</a>.</p>
<p><object data="http://andrejk.home.xs4all.nl/svg-presenter/font-test.svg" style="width: 480px; height: 360px;" type="image/svg+xml" id="presentation-2"></object></p>
<p>Inkscape doesn&#8217;t have official support for webfonts, but you can add the required css to the xml source. Here is an example, usually the defs element already exists and you need to add the style element:</p>
<pre class="brush: xml; title: ; notranslate">
  &lt;defs id=&quot;defs2987&quot;&gt;
    &lt;style
       type=&quot;text/css&quot;
       id=&quot;style7&quot;&gt;@font-face {
  font-family: 'Shadows Into Light';
  font-style: normal;
  font-weight: normal;
  src: local('Shadows Into Light'), local('ShadowsIntoLight'), url('http://themes.googleusercontent.com/static/fonts/shadowsintolight/v3/clhLqOv7MXn459PTh0gXYHW1xglZCgocDnD_teV2lMU.woff') format('woff');
}
&lt;/style&gt;
  &lt;/defs&gt;
</pre>
<p>You can import fonts that you don&#8217; have installed locally, but Inkscape will not allow you to select the font. You can however edit the svg source code to modify the style of some text to use the webfont. In the drawing above the first three fonts i used i have installed on my laptop, the fourth isn&#8217;t on my computer. Inkscape will show an error icon, but you can ignore it.</p>
<img src="http://feeds.feedburner.com/~r/AndrejKoelewijn/~4/bMSUnuOVTSc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrejkoelewijn.com/wp/2012/01/17/using-css-webfonts-in-inkscape/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Create presentations using inkscape</title>
		<link>http://www.andrejkoelewijn.com/wp/2012/01/03/create-presentations-using-inkscape/</link>
		<comments>http://www.andrejkoelewijn.com/wp/2012/01/03/create-presentations-using-inkscape/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 22:09:43 +0000</pubDate>
		<dc:creator>akoelewijn</dc:creator>
				<category><![CDATA[open standards]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[inkscape]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[svg]]></category>

		<guid isPermaLink="false">http://www.andrejkoelewijn.com/wp/?p=2219</guid>
		<description><![CDATA[I create most of my presentations using Inkscape (here&#8217;s an example: Presentation: Introduction to Scrum). This is quite a bit of work, as i need to export all the separate images, and import them into LibreOffice Impress. I&#8217;ve created a &#8230; <a href="http://www.andrejkoelewijn.com/wp/2012/01/03/create-presentations-using-inkscape/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I create most of my presentations using Inkscape (here&#8217;s an example: <a href="http://www.andrejkoelewijn.com/wp/2011/10/26/presentation-introduction-to-scrum/">Presentation: Introduction to Scrum</a>). This is quite a bit of work, as i need to export all the separate images, and import them into LibreOffice Impress.</p>
<p>I&#8217;ve created a small javascript script that can be used to directly use the svg image as a presentation. It allows you to navigate through all the layers of a drawing. Here&#8217;s a demo: <a href="http://andrejk.home.xs4all.nl/drawing-1.svg">Inkscape-presenter demo</a>. Use the arrow keys, your mouse, or a logitech remote presenter to move forward and backward (tested with firefox and chromium).</p>
<p>The code is on github: <a href="https://github.com/ako/inkscape-presenter/blob/master/slide-animation.js">inkscape-presenter / slide-animation.js</a>.</p>
<img src="http://feeds.feedburner.com/~r/AndrejKoelewijn/~4/WNK-tEzY7tw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrejkoelewijn.com/wp/2012/01/03/create-presentations-using-inkscape/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Jms request-reponse not responding in Mule</title>
		<link>http://www.andrejkoelewijn.com/wp/2011/12/20/jms-request-reponse-not-responding-in-mule/</link>
		<comments>http://www.andrejkoelewijn.com/wp/2011/12/20/jms-request-reponse-not-responding-in-mule/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 20:26:44 +0000</pubDate>
		<dc:creator>akoelewijn</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[oss]]></category>
		<category><![CDATA[soa]]></category>
		<category><![CDATA[esb]]></category>
		<category><![CDATA[jms]]></category>
		<category><![CDATA[mule]]></category>

		<guid isPermaLink="false">http://www.andrejkoelewijn.com/wp/?p=2216</guid>
		<description><![CDATA[When I tried to use the following example by David Dossot mule-agent-based-sync-http-request-handling my jms endpoint times out. In the log i can see that the response message is created, but the outbound endpoint never receives it. After some googling i &#8230; <a href="http://www.andrejkoelewijn.com/wp/2011/12/20/jms-request-reponse-not-responding-in-mule/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When I tried to use the following example by David Dossot <a href="https://gist.github.com/1314673">mule-agent-based-sync-http-request-handling</a> my jms endpoint times out. In the log i can see that the response message is created, but the outbound endpoint never receives it.</p>
<p>After some googling i found the following blog post by Claude Mamo: <a href="http://ricston.com/blog/?p=1553">ReplyTo in a Mule flow</a>. Adding the org.mule.routing.requestreply.ReplyToPropertyRequestReplyReplier processor does indeed solve the problem.</p>
<p>The weird thing is, i can&#8217;t find much documentation on the need for this. I searched the Mule User Guide, but it isn&#8217;t mentioned there. Also googling it, just returns a lot of links to source code.</p>
<p>Is this the correct way to implement a request response jms endpoint, or is this a workaround for a bug?</p>
<img src="http://feeds.feedburner.com/~r/AndrejKoelewijn/~4/DQB_5RpRKvc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.andrejkoelewijn.com/wp/2011/12/20/jms-request-reponse-not-responding-in-mule/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss><!-- Dynamic page generated in 0.989 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-04-30 19:36:23 --><!-- Compression = gzip -->

