<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MadeByMonsieur</title>
	<atom:link href="http://weblog.madebymonsieur.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://weblog.madebymonsieur.com</link>
	<description>Thoughts about technology, business and how to make it done</description>
	<lastBuildDate>Sun, 19 Dec 2010 19:08:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Example &#8211; Pushing events to an web app</title>
		<link>http://weblog.madebymonsieur.com/pushing-to-web-app/</link>
		<comments>http://weblog.madebymonsieur.com/pushing-to-web-app/#comments</comments>
		<pubDate>Sun, 19 Dec 2010 19:08:56 +0000</pubDate>
		<dc:creator>tkoski</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[xmpp]]></category>

		<guid isPermaLink="false">http://weblog.madebymonsieur.com/?p=928</guid>
		<description><![CDATA[This blog post is a quick walk-through of this demo. The demo is very simple. When a web page is opened an anonymous XMPP connection is created. You can open another window and send events between the two anonymous connections. The demo might look simple, but if you look deeper you will notice that when [...]]]></description>
			<content:encoded><![CDATA[<p>This blog post is a quick walk-through of <a title="Basic XMPP in Browser demo" href="http://example1.madebymonsieur.com/">this demo</a>.</p>
<p>The demo is very simple. When a web page is opened an anonymous XMPP connection is created. You can open another window and send events between the two anonymous connections.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/jGYmuxqh4w0?fs=1&amp;hl=en_US&amp;rel=0" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="385" src="http://www.youtube.com/v/jGYmuxqh4w0?fs=1&amp;hl=en_US&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>The demo might look simple, but if you look deeper you will notice that when it comes to eventing and messaging, the possibilities to extend this example are amazing. Thanks to <a href="http://xmpp.org">XMPP</a>.</p>
<p>But let&#8217;s not praise XMPP more. Let&#8217;s get back to explain the demo instead.</p>
<p>The web page [1] is mostly done by using a very easy to use JavaScript library called <a href="http://code.stanziq.com/strophe/">Strophe</a>. It is used to create long polling <a href="http://xmpp.org/extensions/xep-0206.html">XMPP over BOSH</a> requests to the XMPP server. The requests are proxied through an HTTP server [2]. The XMPP server will take care of session handling, routing and delivery [3].</p>
<p><img title="Workflow of the demo" src="http://example1.madebymonsieur.com/example1.001.jpg" alt="The webclient communicates with the XMPP server through BOSH." width="640" height="385" /></p>
<h2>So what is needed?</h2>
<p>Following technologies are used:</p>
<ul>
<li>XMPP</li>
<li>HTTP</li>
<li><a href="http://xmpp.org/extensions/xep-0124.html">BOSH</a></li>
<li>JavaScript</li>
<li>(plus some HTML and CSS)</li>
</ul>
<p>To get the demo working, I needed to install an XMPP server and an HTTP server.</p>
<p>I installed an XMPP server called <a href="http://prosody.im/">Prosody</a> (0.7) and an HTTP/reverse proxy -server called <a href="http://nginx.org/">Nginx</a>.</p>
<p>This demo is based 100% on standards so any other <a title="List of available XMPP servers" href="http://xmpp.org/xmpp-software/servers/">XMPP server</a> that supports BOSH and any other HTTP server that supports reverse proxying can be used.</p>
<p>As mentioned earlier, an excellent JavaScript library called <a href="http://code.stanziq.com/strophe/">Strophe</a> was uesd to create the functionality on the web browser.</p>
<p>The demo is running on <a href="http://www.debian.org/releases/stable/">Debian Lenny 5.0.7</a> but the technology used is of course not limited to it.</p>
<h2>Step number one, let&#8217;s install Nginx</h2>
<p>The following command was run as root. It installs Nginx server using the Apt utility:</p>
<pre>$ apt-get install nginx</pre>
<p>That was pretty easy. The next step was to configure it.</p>
<p>Since the demo is running in example1.madebymonsieur.com, I created an configuration file <a title="The configuration file used." href="http://example1.madebymonsieur.com/example1.madebymonsieur.com">/etc/nginx/sites-enabled/example1.madebymonsieur.com</a>. As you can see by opening the file, the configuration is very simple. Important is to notice the reverse proxy configuration for /http-bind/ location in the end of the file. That rule is done to route the BOSH traffic to the XMPP server.</p>
<p>To make the configuration effective, I restarted the Nginx server.</p>
<pre>$ /etc/init.d/nginx restart</pre>
<h2>Next we&#8217;ll install the XMPP server</h2>
<p>A good introduction and clear help how to install Prosody can be found <a title="Prosodys download instructions" href="http://prosody.im/download/start">here</a> . However this is what I did (as root again) for the demo:</p>
<pre>$ cd /usr/src/
$ wget "http://prosody.im/downloads/debian/prosody_0.7.0-1_i386.deb"
$ dpkg -i prosody_0.7.0-1_i386.deb
$ # I had some dependency problems so I just ran
$ sudo apt-get install -f</pre>
<p>And XMPP server was up.</p>
<p>Now let&#8217;s configure it. (The final configuration file can be seen <a title="Example Prosody config file." href="http://example1.madebymonsieur.com/prosody.cfg.lua">here</a>.) Open /etc/prosody/prosody.cfg.lua file.</p>
<p>First we enabled &#8220;BOSH&#8221;. We archived this by uncommenting the line 56 (remove the &#8216;&#8211;&#8217;).</p>
<p>Next we configure the port we want BOSH connections to be listened on. Port 5280 is the standard one. We add &#8220;bosh_ports = { 5280 }&#8221; to the config before &#8220;VirtualHost&#8221; -parts. See example on line 103 of the <a href="http://example1.madebymonsieur.com/prosody.cfg.lua">example configuration file</a>.</p>
<p>As a last step for the Prosody configuration file, we add virtual host configuration (example starts on line 109 in <a href="http://example1.madebymonsieur.com/prosody.cfg.lua">the configuration file</a>).</p>
<pre>VirtualHost "anon.example"
    anonymous_login = true
    disallow_s2s = false</pre>
<p>We configured the host name to be &#8220;anon.example&#8221; and enabled anonymous connection for it. We don&#8217;t want to allow server-to-server connection for this domain so s2s is disallowed.</p>
<p>As I created a new hostname, I added it to the /etc/hosts file so it would be correctly resolved. To archive this I added a following line to my /etc/hosts file:</p>
<pre>127.0.0.1 anon.example</pre>
<p>Now we restart prosody and on we go:</p>
<pre>$ /etc/init.d/prosody restart</pre>
<h2>One last step to do</h2>
<p>I copied the <a href="http://example1.madebymonsieur.com/index.html">index.html</a>,<a href="http://example1.madebymonsieur.com/strophe.min.js"> strophe.min.js</a>, <a href="http://example1.madebymonsieur.com/example.js">example.js</a> files to web root. For this example the root was /var/wwww/examples/example1 . Listing of the directory looks like this:</p>
<pre>$ ls -laF /var/www/examples/example1/
-rw-r--r-- 1 www-data www-data   3967 2010-08-14 01:04 example.js
-rw-r--r-- 1 www-data www-data   2576 2010-08-14 00:22 index.html
-rw-r--r-- 1 www-data www-data  40107 2010-08-14 00:18 strophe.min.js</pre>
<h2>Ready!</h2>
<p>That&#8217;s it. If you are interested how the JavaScript code works, open the example.js -file. It should be pretty simple (just 5 functions). Most of the &#8220;code&#8221; is just comments and &#8220;jquery -stuff&#8221; for nicer display.</p>
<p>Remember that this was just a very simple example how straight forward it is to push events to an web browser. Since we use XMPP here, it would be quite trivial to send messages to the demo for example from gTalk or launch any kind of events from other systems and visa verse.</p>
<p>In case of any questions, problems or ideas, don&#8217;t hesitate to contact me. I would be delighted to help out more or just discuss about the possibilities of this kind of technology.</p>
<p style="text-align: right;">Cheers,<br />
tuomas@madebymonsieur.com</p>
]]></content:encoded>
			<wfw:commentRss>http://weblog.madebymonsieur.com/pushing-to-web-app/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>To Go Fast, Do We Need to Do It Always Well?</title>
		<link>http://weblog.madebymonsieur.com/to-go-fast/</link>
		<comments>http://weblog.madebymonsieur.com/to-go-fast/#comments</comments>
		<pubDate>Fri, 26 Nov 2010 14:11:43 +0000</pubDate>
		<dc:creator>tkoski</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[devworking]]></category>

		<guid isPermaLink="false">http://weblog.madebymonsieur.com/?p=870</guid>
		<description><![CDATA[Have you ever been significantly slowed down by “Bad Code”? I have. And probably at least once a month. I know bad code will slow projects down, I have seen it slow projects down &#8211; So why do I still sometimes write it!? Because we were on a tight deadline and we had to go [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever been significantly slowed down by “Bad Code”?</p>
<p>I have. And probably at least once a month. I know bad code will slow projects down, I have seen it slow projects down &#8211; <em>So why do I still sometimes write it!</em>?</p>
<blockquote><p>Because we were on a tight deadline and we had to go as fast as possible, the managers were pushing us and the specifications changed  at the last minute and I will fix it later …</p></blockquote>
<p>A project might be finished on time and on budget. It looks good on paper and in reports so the job was well done, right?</p>
<p>What if the project includes some ugly hacks just to finish it on time? The dirty hacks will most likely significantly slow down the next version or another project. So in the end, was the project well done or not?</p>
<p>Should we take more time to finish the project with good quality code? It would be more stable, easier to maintain and quicker to evolve. Or should we just hack it up to make it “work” as soon as possible? The customer does not always understand or care about the consequences.</p>
<p>As the  saying goes, ‘if something is worth doing, it&#8217;s worth doing well’. I think that is a professional attitude, a principle, something I would not want to compromise.</p>
<p>But at the same time I often have a feeling that perfectionism  is the enemy of progress.</p>
<p>I’m trying to find my way by following a mantra of “do no harm”.</p>
<p>If a company is not very organised and pushes any kind of proof of concept to production, the quality of code must be high.  As a result, the project will be probably slower to do. I will try to reach high code coverage, will use a simple and easily understandable framework and develop good documentation. I will try not to do harm to my colleagues, future projects and the company by giving them a “big ball of mud”.</p>
<p>However if a company follows software development best practice, uses a framework and has an understandable architecture, I don&#8217;t think it matters if some messy stuff is sometimes done just to get the job done. The messy stuff will be cleaned up later through iterations and code reviews. No real harm done.</p>
<p>To go fast, the basics must be done well. Later on, it will be so much faster to build on top of it. And even rush sometimes.</p>
<p>Good core architecture, libraries, practices and frameworks are very valuable for a company. Something to be proud of &#8211; “priceless”, even.</p>
<p style="text-align: right;">&#8211;<br />
tuomas@madebymonsieur.com</p>
]]></content:encoded>
			<wfw:commentRss>http://weblog.madebymonsieur.com/to-go-fast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Not maybe a Pirate but a Forty-niner</title>
		<link>http://weblog.madebymonsieur.com/not-maybe-a-pirate-but-a-forty-niner/</link>
		<comments>http://weblog.madebymonsieur.com/not-maybe-a-pirate-but-a-forty-niner/#comments</comments>
		<pubDate>Wed, 03 Nov 2010 10:02:07 +0000</pubDate>
		<dc:creator>tkoski</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://weblog.madebymonsieur.com/?p=767</guid>
		<description><![CDATA[&#8220;During the The California Gold Rush (1848–1855) the gold-seekers were called &#8216;Forty-niners&#8217; (as a reference to 1849)&#8221; During the Halloween, I read a good blog posts by Michael Arrington about the essence of being an entrepreneur. It&#8217;s a interesting post that brings up many thoughts. I recommend it to be read by anyone having their [...]]]></description>
			<content:encoded><![CDATA[<blockquote>
<p style="text-align: center;"><em>&#8220;During the The California Gold Rush (1848–1855) the gold-seekers were called &#8216;Forty-niners&#8217; (as a reference to 1849)&#8221;</em></p>
</blockquote>
<p>During the Halloween, I read <a title="Are You A Pirate?" href="http://techcrunch.com/2010/10/31/are-you-a-pirate/">a good blog posts</a> by Michael Arrington about the essence of being an entrepreneur. It&#8217;s a interesting post that brings up many thoughts. I recommend it to be read by anyone having their own business or thinking of having one.</p>
<p>In his post &#8220;<a title="Are You A Pirate?" href="http://techcrunch.com/2010/10/31/are-you-a-pirate/">Are you A Pirate</a>&#8220;, Mr. Arrington finds similarity between entrepreneurs and pirates since both gets utility out of the risk itself.</p>
<p>It&#8217;s an interesting comparison and made me think of my past. I came to a conclusion that I would not describe myself as a pirate. At least not any more.</p>
<p>When I was younger, I was always highly interested in the decades of the history when one was able to explore the world and to be his own master with endless possibilities. I was even a bit jealous for not being able to live in time when there were places in the world where no man had gone before. I would have wanted to be the one travelling through Asia with Marco Polo or sailed with Christopher Columbus to discover America.</p>
<p>And not to forget my favourite, <a title="As in wiki." href="http://en.wikipedia.org/wiki/California_Gold_Rush">the California Gold Rush</a>. One was able to make his own luck, almost without laws, without limitations.</p>
<p>Why had I not been born 160 years earlier?</p>
<p>But then, the Internet came. My possibility to discover a world of endless possibilities was there. I had found my &#8220;Gold Rush&#8221;.</p>
<p>I was able to start to explore something completely new. I was able to start to build things that no one had ever done before. I had amazing possibilities when it came to customers and not-been-done-before -ideas.</p>
<p>When I was younger, I think I was a bit of a pirate as Mr. Arrington describes it. I just wanted to do things selflessly for the sake of it, for the risk of it, to be able to go to new places, to travel. All the rewards as we see them in a normal working life were just a bonus. I just wanted to be in the action, on the field.</p>
<p>If I would describe myself now, I would not describe me as a pirate but maybe more as a Forty-niner with a family to feed. I have a goal. I know there is gold out there. I might not hit a jackpot but I&#8217;m still able to make a living out of it for my family. I have the same change as everybody else and god damn it&#8217;s just fun to try. Not a single day is the same and I can do it just the way I want.</p>
<p>I am the same guy as I was 6 years ago, I&#8217;m just not digging pointlessly any more. It does not mean I&#8217;m not enthusiastic. Contrary. Sometimes it&#8217;s fun to rush but more and more often I stop and think before acting. It has helped me to find more gold than ever before.</p>
<p>I consider myself lucky to be able to live these exciting times.</p>
<p style="text-align: right;">&#8211;<br />
tuomas@madebymonsieur.com</p>
<p style="text-align: left;">
<p style="text-align: left;">PS. Read http://en.wikipedia.org/wiki/California_Gold_Rush . Add 160 years to the dates and change a bit the concept towards the web industry. Not that different, is it?</p>
]]></content:encoded>
			<wfw:commentRss>http://weblog.madebymonsieur.com/not-maybe-a-pirate-but-a-forty-niner/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pledging for unit tests</title>
		<link>http://weblog.madebymonsieur.com/pledging-for-unit-tests/</link>
		<comments>http://weblog.madebymonsieur.com/pledging-for-unit-tests/#comments</comments>
		<pubDate>Fri, 29 Oct 2010 08:51:00 +0000</pubDate>
		<dc:creator>tkoski</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[devworking]]></category>

		<guid isPermaLink="false">http://weblog.madebymonsieur.com/?p=697</guid>
		<description><![CDATA[I still regularly have to defend and sometimes even &#8220;fight&#8221; for unit tests. Sadly most of the developers and managers do not get the value of the unit tests but sees them as a burden instead. Some of the common complains I hear about the unit tests are the following. There more you write tests [...]]]></description>
			<content:encoded><![CDATA[<p>I still regularly have to defend and sometimes even &#8220;fight&#8221; for unit tests. Sadly most of the developers and managers do not get the value of the unit tests but sees them as a burden instead.</p>
<p>Some of the common complains I hear about the unit tests are the following.</p>
<p>There more you write tests the more &#8230;</p>
<ul>
<li>it takes time</li>
<li>you have to maintain them</li>
<li>those test have to be re-factored when you have to re-factor the code</li>
<li>it&#8217;s impossible to test everything anyway</li>
<li>it&#8217;s a burden</li>
<li>it&#8217;s hard</li>
<li>(and because I&#8217;m lazy, unmotivated and I don&#8217;t want to do it!)</li>
</ul>
<p>Yeah, OK, they have a point. Yes, it will take some more time to do the tests. Yes, the tests are going to take some more work to maintain. Yes, producing code that is &#8220;unit testable&#8221; is sometimes &#8220;harder&#8221;.</p>
<p><strong>But C&#8217;mon!</strong> For me that sounds like &#8220;<em>It&#8217;s too hard and complicated to test and prove that our code works, so we just pretend that it works</em>&#8220;.</p>
<p>At this point in the history of software development, why do we still need to defend unit tests? Or am I wrong? Are there some other, more efficient and better solutions available?</p>
<p>Of course not all mock-ups, proof of concepts and personal projects need a high code coverage or unit tests at all. If you feel there is no need for them or <a title="TDD as defined Wiki" href="http://en.wikipedia.org/wiki/Test-driven_development">TDD</a> is just not your cup of tea, fine. It&#8217;s not a crime not to do them.</p>
<p>But if you are working with code that is going to be released to production or used by other people, please developers, let&#8217;s keep doing more and more unit tests. It will make our work so much more efficient, motivating and a bit more <strong><em>professional</em></strong>.</p>
<p>And if not for you, do it for the next dev. When you have managed to set a high code coverage with good unit tests to a codebase, it will be so much easier for anyone to take over when you move to a more interesting project. Or faster for your colleague to do a patch when you are on vacations.</p>
<p>Not to forget, that sometimes unit tests are a great and efficient way to understand quickly how a library or a class is suppose to be used.</p>
<p>Please, do unit tests. Everybody will win. You, your collegues, the project, the company and the whole developer community.</p>
<p style="text-align: right;">&#8211;<br />
tuomas@madebymonsieur.com</p>
]]></content:encoded>
			<wfw:commentRss>http://weblog.madebymonsieur.com/pledging-for-unit-tests/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Be professional, do unit tests</title>
		<link>http://weblog.madebymonsieur.com/be-professional-do-unit-test/</link>
		<comments>http://weblog.madebymonsieur.com/be-professional-do-unit-test/#comments</comments>
		<pubDate>Wed, 27 Oct 2010 11:25:30 +0000</pubDate>
		<dc:creator>tkoski</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[devworking]]></category>

		<guid isPermaLink="false">http://weblog.madebymonsieur.com/?p=655</guid>
		<description><![CDATA[Let us see the hands of developers who are practising Test Driven Development or at least does unit tests before the code is delivered? We have been asking the above question in different conferences, companies and community meetings. In average 40% 25% of developers rise their hands. That is awful. Only 25% does unit tests? [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><em>Let us see the hands of developers who are practising Test Driven Development or at least does unit tests before the code is delivered?</em></p></blockquote>
<p>We have been asking the above question in different conferences, companies and community meetings. In average <span style="text-decoration: line-through;">40%</span> 25% of developers rise their hands.</p>
<p>That is awful.</p>
<p>Only 25% does unit tests? It means that 75% of the developers don&#8217;t know if their code works or not!</p>
<p>We, developers, should be ashamed of ourself.</p>
<p>If we are not doing unit tests at this point in the history of software development then something is wrong.</p>
<p>People have been talking about the practise already far too long and the conclusions are always the same:</p>
<ul>
<li>it helps you so much</li>
<li>it makes you go so much faster</li>
<li>it helps you to deliver much better code</li>
</ul>
<p>If you are not doing unit tests you need to seriously stop and consider why.</p>
<p>Are you not doing TDD because your management does not support it? Are you not doing unit tests because &#8220;it brings too much overhead to the project&#8221;? Are you not doing unit tests because &#8220;it makes the development slower&#8221;?</p>
<p>It is unprofessional to not know that your code works. It is unprofessional to release code that you are not sure if it will work or not. Know that it works.</p>
<p>And how do you know that it works? We got tests.</p>
<p>So lets do sane unit tests at least in one point of the project.</p>
<p style="text-align: right;"><em>&#8211;<br />
tuomas@madebymonsieur.com</em></p>
<p style="text-align: left;"><em><strong>Update: </strong><br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://weblog.madebymonsieur.com/be-professional-do-unit-test/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>The Valuable Benefits of Domain EDA</title>
		<link>http://weblog.madebymonsieur.com/valuable-benefits-of-domain-eda/</link>
		<comments>http://weblog.madebymonsieur.com/valuable-benefits-of-domain-eda/#comments</comments>
		<pubDate>Mon, 25 Oct 2010 13:48:23 +0000</pubDate>
		<dc:creator>tkoski</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[deda]]></category>

		<guid isPermaLink="false">http://weblog.madebymonsieur.com/?p=639</guid>
		<description><![CDATA[Implementing Domain Event Driven Architecture (Domain EDA) will bring multiple advantages. It will allow us to create high performance, highly scalable, &#8220;real-time&#8221; systems. This is due the Domain EDA is highly decoupled and event driven. One might argue that that was a lot of meaningless buzzwords in one paragraph, but it&#8217;s not camouflage chit-chat saying [...]]]></description>
			<content:encoded><![CDATA[<p>Implementing Domain Event Driven Architecture (Domain EDA) will bring multiple advantages.</p>
<p>It will allow us to create high performance, highly scalable,  &#8220;real-time&#8221; systems. This is due the Domain EDA is highly decoupled and  event driven.</p>
<p>One might argue that that was a lot of meaningless buzzwords in one  paragraph, but it&#8217;s not camouflage chit-chat saying nothing. It&#8217;s true.  The &#8220;technological&#8221; benefits really kicks ass.</p>
<p>However, we think that the greatest value and the biggest  possibilities of the Domain Event Driven Architecture are at the end of  the chain: when everything is in place, people at work will love it.</p>
<p>Why?</p>
<h3>1. Can highly speed up implementing new features</h3>
<p>Faster time-to-market. Implementing Domain EDA will highly reduce time to implement new features and functionalities.</p>
<p>There  will be no need for point to point integration. The producers   of  events do not need  to  know who are the consumers of the events. The    core team creating the producers do not need to hassle with the teams    creating the consumers and visa verse.</p>
<p><img title="Events in SOA" src="../images/deda-3.003.jpg" alt="" width="640" height="385" /></p>
<p>The  above can be boosted by using a transport layer like XMPP which   can  also provide authenticated, secure and routable messaging.</p>
<h3>2. Enables you to do efficient Complex Event Processing</h3>
<p>For example, let&#8217;s say that we have a need to know in real time when a user spends 500 euros on our e-shop.</p>
<p>To fulfil the need, the only thing we need to do is to build a <a href="http://en.wikipedia.org/wiki/Complex_event_processing">Complex Event Processing</a> (CEP)  application which will receive events published by a billing platform [<strong>1.</strong>]. No need to change nothing in the billing platform, DataWareHouse imports or exports and so on.</p>
<p><img title="CEP example." src="../images/deda-3.004.jpg" alt="" width="640" height="385" /></p>
<p>As  our new application will receive events, it will process them.  In   this case it will sum up users&#8217; spending. When a user reaches 500    euros, our CEP application will launch a new &#8220;user_spent_500&#8243; -event    immediately [<strong>2.</strong>].</p>
<p><img title="CEP example." src="../images/deda-3.005.jpg" alt="" width="640" height="385" /></p>
<p>Now,  for example, marketing department can use this new event to   grand an  offer coupon without delay for the user while he is still on   the  webpage buying Christmas gifts [<strong>3.</strong>].</p>
<p><img title="CEP example." src="../images/deda-3.006.jpg" alt="" width="640" height="385" /></p>
<p>Another  good example is about a user who is trying to buy an   expensive  product but has problems paying it. A system launches an    &#8220;possible_help_needer&#8221; -event and a user receives help from customer    care when he is still on the web page.</p>
<p>That is a great customer service don&#8217;t you think?</p>
<h3>3. Will help you to implement Business Process Management</h3>
<p>The <a title="BPM as defined in WIKI" href="http://en.wikipedia.org/wiki/Business_process_management">Business Process Management</a> is more quick and more easy to set up since the processes can be started by domain&#8217;s events.</p>
<p><img title="Events in SOA" src="../images/deda-3.007.jpg" alt="" width="640" height="385" /></p>
<p>In  the above example, immediately when a user has spent 500 Euros, a    business process can evaluate if the user is worth of a coupon or not.</p>
<p>There  is no need to wait for reports from DataWareHouse. Thanks to   Domain  EDA, even complex business processes can be executed in matter of    seconds. (Yes I agree, the example above is not that complex but you    get the point.)</p>
<p>And the best part in this is that &#8220;Business  Teams&#8221; can manage   efficiently their business processes as they want  and when they want   without IT involvement. That&#8217;s the whole point of  BPM, right?</p>
<h3>4. Key to real time Business Activity Monitoring</h3>
<p>How are we doing today? What&#8217;s going on in our  systems? Is the latest   marketing campaign we launched this morning  showing any sign of   success?</p>
<p>Similar questions are asked in companies multiple times a day.</p>
<p>In  many companies the above questions are answered with reports from   the  datawarehouse. The reports are calculated daily, twice a day, every    three hours &#8230;</p>
<p>With Domain Event Driven Architecture we can have  these reports in   real time. There is no need for batch type of time  based processing.  Easy to implement, real time <a title="BAM as defined WIKI" href="http://en.wikipedia.org/wiki/Business_activity_monitoring">Business Activity Monitoring</a> is available for the marketing team.</p>
<p><img title="Events in SOA" src="../images/deda-3.008.jpg" alt="" width="640" height="385" /></p>
<p>Less waiting. The information is available immediately as it happens.</p>
<p>System  administrators have their tools for having a real-time view to  their  responsibilities. The marketing people should have the same kind  of  possibilities, right?</p>
<h3>So what do You think?</h3>
<p>Above we  described the main values we have gained from implementing Domain Event  Driven Architecture. We hope this blog post has brought you at least  some interesting ideas.</p>
<p>We are more  than happy to talk more about the Domain EDA so we would be delighted to  hear your feedback, thoughts or questions. Let us have them!</p>
<p style="text-align: right;">&#8211;<em><br />
tuomas@madebymonsieur.com</em></p>
]]></content:encoded>
			<wfw:commentRss>http://weblog.madebymonsieur.com/valuable-benefits-of-domain-eda/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Domain EDA is the key to real time Business Activity Monitoring</title>
		<link>http://weblog.madebymonsieur.com/domain-eda-is-the-key-to-real-time-business-activity-monitoring/</link>
		<comments>http://weblog.madebymonsieur.com/domain-eda-is-the-key-to-real-time-business-activity-monitoring/#comments</comments>
		<pubDate>Fri, 22 Oct 2010 09:07:21 +0000</pubDate>
		<dc:creator>tkoski</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[deda-benefits]]></category>

		<guid isPermaLink="false">http://weblog.madebymonsieur.com/?p=607</guid>
		<description><![CDATA[How are we doing today? What&#8217;s going on in our systems? Is the latest marketing campaign we launched this morning showing any sign of success? Similar questions are asked in companies multiple times a day. In many companies the above questions are answered with reports from the datawarehouse. The reports are calculated daily, twice a [...]]]></description>
			<content:encoded><![CDATA[<p>How are we doing today? What&#8217;s going on in our systems? Is the latest  marketing campaign we launched this morning showing any sign of  success?</p>
<p>Similar questions are asked in companies multiple times a day.</p>
<p>In many companies the above questions are answered with reports from  the datawarehouse. The reports are calculated daily, twice a day, every  three hours &#8230;</p>
<p>With Domain Event Driven Architecture we can have these reports in  real time. There is no need for batch type of time based processing. Easy to implement, real time <a title="BAM as defined WIKI" href="http://en.wikipedia.org/wiki/Business_activity_monitoring">Business Activity Monitoring</a> is available for the marketing team.</p>
<p><img title="Events in SOA" src="../images/deda-3.008.jpg" alt="" width="640" height="385" /></p>
<p>Less waiting. The information is available immediately as it happens.</p>
<p>System administrators have their tools for having a real-time view to their responsibilities. The marketing people should have the same kind of possibilities, right?</p>
]]></content:encoded>
			<wfw:commentRss>http://weblog.madebymonsieur.com/domain-eda-is-the-key-to-real-time-business-activity-monitoring/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Domain EDA will help you to implement Business Process Management like it should</title>
		<link>http://weblog.madebymonsieur.com/domain-eda-will-help-you-to-implement-business-process-management-like-it-should/</link>
		<comments>http://weblog.madebymonsieur.com/domain-eda-will-help-you-to-implement-business-process-management-like-it-should/#comments</comments>
		<pubDate>Fri, 22 Oct 2010 09:00:59 +0000</pubDate>
		<dc:creator>tkoski</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[deda-benefits]]></category>

		<guid isPermaLink="false">http://weblog.madebymonsieur.com/?p=601</guid>
		<description><![CDATA[The Business Process Management is more quick and more easy to set up since the processes can be started by domain&#8217;s events. In the above example, immediately when a user has spent 500 Euros, a business process can evaluate if the user is worth of a coupon or not. There is no need to wait [...]]]></description>
			<content:encoded><![CDATA[<p>The <a title="BPM as defined in WIKI" href="http://en.wikipedia.org/wiki/Business_process_management">Business Process Management</a> is more quick and more easy to set up since the processes can be started by domain&#8217;s events.</p>
<p><img title="Events in SOA" src="../images/deda-3.007.jpg" alt="" width="640" height="385" /></p>
<p>In the above example, immediately when a user has spent 500 Euros, a  business process can evaluate if the user is worth of a coupon or not.</p>
<p>There is no need to wait for reports from DataWareHouse. Thanks to  Domain EDA, even complex business processes can be executed in matter of  seconds. (Yes I agree, the example above is not that complex but you  get the point.)</p>
<p>And the best part in this is that &#8220;Business Teams&#8221; can manage  efficiently their business processes as they want and when they want  without IT involvement. That&#8217;s the whole point of BPM, right?</p>
]]></content:encoded>
			<wfw:commentRss>http://weblog.madebymonsieur.com/domain-eda-will-help-you-to-implement-business-process-management-like-it-should/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Domain EDA enables you to do efficient Complex Event Processing</title>
		<link>http://weblog.madebymonsieur.com/domain-eda-enables-you-to-do-efficient-complex-event-processing/</link>
		<comments>http://weblog.madebymonsieur.com/domain-eda-enables-you-to-do-efficient-complex-event-processing/#comments</comments>
		<pubDate>Fri, 22 Oct 2010 08:59:05 +0000</pubDate>
		<dc:creator>tkoski</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[deda-benefits]]></category>

		<guid isPermaLink="false">http://weblog.madebymonsieur.com/?p=597</guid>
		<description><![CDATA[For example, let&#8217;s say that we have a need to know in real time when a user spends 500 euros on our e-shop. To fulfil the need, the only thing we need to do is to build a Complex Event Processing (CEP) application which will receive events published by a billing platform [1.]. No need to change [...]]]></description>
			<content:encoded><![CDATA[<p>For example, let&#8217;s say that we have a need to know in real time when a user spends 500 euros on our e-shop.</p>
<p>To fulfil the need, the only thing we need to do is to build a <a href="http://en.wikipedia.org/wiki/Complex_event_processing">Complex Event Processing</a> (CEP)  application which will receive events published by a billing platform [<strong>1.</strong>]. No need to change nothing in the billing platform, DataWareHouse imports or exports and so on.</p>
<p><img title="CEP example." src="../images/deda-3.004.jpg" alt="" width="640" height="385" /></p>
<p>As our new application will receive events, it will process them.  In this case it will sum up users&#8217; spending. When a user reaches 500  euros, our CEP application will launch a new &#8220;user_spent_500&#8243; -event  immediately [<strong>2.</strong>].</p>
<p><img title="CEP example." src="../images/deda-3.005.jpg" alt="" width="640" height="385" /></p>
<p>Now, for example, marketing department can use this new event to  grand an offer coupon without delay for the user while he is still on  the webpage buying Christmas gifts [<strong>3.</strong>].</p>
<p><img title="CEP example." src="../images/deda-3.006.jpg" alt="" width="640" height="385" /></p>
<p>Another good example is about a user who is trying to buy an  expensive product but has problems paying it. A system launches an  &#8220;possible_help_needer&#8221; -event and a user receives help from customer  care when he is still on the web page.</p>
<p>That is a great customer service don&#8217;t you think?</p>
]]></content:encoded>
			<wfw:commentRss>http://weblog.madebymonsieur.com/domain-eda-enables-you-to-do-efficient-complex-event-processing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Domain EDA can highly speed up implementing new features</title>
		<link>http://weblog.madebymonsieur.com/domain-eda-can-highly-speed-up-implementing-feature/</link>
		<comments>http://weblog.madebymonsieur.com/domain-eda-can-highly-speed-up-implementing-feature/#comments</comments>
		<pubDate>Fri, 22 Oct 2010 08:56:05 +0000</pubDate>
		<dc:creator>tkoski</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[deda-benefits]]></category>

		<guid isPermaLink="false">http://weblog.madebymonsieur.com/?p=587</guid>
		<description><![CDATA[Faster time-to-market. Implementing Domain EDA will highly reduce time to implement new features and functionalities. There will be no need for point to point integration. The producers of events do not need to know who are the consumers of the events. The core team creating the producers do not need to hassle with the teams [...]]]></description>
			<content:encoded><![CDATA[<p>Faster time-to-market. Implementing Domain EDA will highly reduce time to implement new features and functionalities.</p>
<p>There will be no need for point to point integration. The producers  of events do not need  to  know who are the consumers of the events. The  core team creating the producers do not need to hassle with the teams  creating the consumers and visa verse.</p>
<p><img title="Events in SOA" src="../images/deda-3.003.jpg" alt="" width="640" height="385" /></p>
<p>The above can be boosted by using a transport layer like XMPP which  can also provide authenticated, secure and routable messaging.</p>
]]></content:encoded>
			<wfw:commentRss>http://weblog.madebymonsieur.com/domain-eda-can-highly-speed-up-implementing-feature/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

