<?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>Udi Dahan - The Software Simplist &#187; Uncategorized</title>
	<atom:link href="http://www.udidahan.com/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.udidahan.com</link>
	<description>Enterprise Development Expert &#38; SOA Specialist</description>
	<lastBuildDate>Sun, 08 Jan 2012 12:45:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Rackspace TechTalk Online</title>
		<link>http://www.udidahan.com/2011/11/21/rackspace-techtalk-online/</link>
		<comments>http://www.udidahan.com/2011/11/21/rackspace-techtalk-online/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 08:04:22 +0000</pubDate>
		<dc:creator>udidahan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[SOA]]></category>

		<guid isPermaLink="false">http://www.udidahan.com/2011/11/21/rackspace-techtalk-online/</guid>
		<description><![CDATA[Last week I was at Rackspace and gave a TechTalk &#8211; an open Q&#038;A that dealt primarily with SOA. The recording is now online here.
]]></description>
			<content:encoded><![CDATA[<p>Last week I was at Rackspace and gave a TechTalk &#8211; an open Q&#038;A that dealt primarily with SOA. The recording is now online <a href="http://blog.brianhartsock.com/2011/11/20/tech-talk-video-udi-dahan/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2011/11/21/rackspace-techtalk-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Udi Down-Under 2011</title>
		<link>http://www.udidahan.com/2011/06/21/udi-down-under-2011/</link>
		<comments>http://www.udidahan.com/2011/06/21/udi-down-under-2011/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 07:18:38 +0000</pubDate>
		<dc:creator>udidahan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.udidahan.com/?p=1476</guid>
		<description><![CDATA[I&#8217;ll be down in Sydney, Australia this July giving my 5-day Advanced Distributed Systems Design with SOA course. There are still some seats available &#8211; registration here.
I&#8217;ll also be giving a presentation at YOW Nights on July 5th. Information here.
I&#8217;ve also decided to give a condensed version of my 3-day Enterprise Development with NServiceBus course [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.udidahan.com/wp-content/uploads/down-under.gif" alt="down-under" title="down-under" width="260" height="239" style="float:right; margin-left:10px; margin-bottom:10px;" />I&#8217;ll be down in Sydney, Australia this July giving my 5-day Advanced Distributed Systems Design with SOA course. There are still some seats available &#8211; <a href="http://www.eventbee.com/v/sydney-adsd">registration here</a>.</p>
<p>I&#8217;ll also be giving a presentation at YOW Nights on July 5th. <a href="http://yownightsyddahan.eventbrite.com">Information here</a>.</p>
<p>I&#8217;ve also decided to give a condensed version of my 3-day Enterprise Development with NServiceBus course while I&#8217;m there. This &#8220;NServiceBus Kickstart&#8221; event will be on Saturday July 9th and will give you everything you need to know to get started with NServiceBus. </p>
<p>Joining me in leading this event will be <a href="http://www.simonsegal.net/">Simon Segal</a> and <a href="http://www.markharris.net.au/blog/">Mark Harris</a> &#8211; two of the earliest adopters of NServiceBus in the world. They&#8217;ve built a very impressive product with NServiceBus that has been in production with the Australian Federal Government for over 12 months now and will be sharing from their experiences.</p>
<p><a href="http://www.eventbee.com/v/nservicebus-kickstart-sydney">Register here</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2011/06/21/udi-down-under-2011/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Recording of my DDD talk</title>
		<link>http://www.udidahan.com/2011/06/10/recording-of-my-ddd-talk/</link>
		<comments>http://www.udidahan.com/2011/06/10/recording-of-my-ddd-talk/#comments</comments>
		<pubDate>Fri, 10 Jun 2011 13:43:49 +0000</pubDate>
		<dc:creator>udidahan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.udidahan.com/2011/06/10/recording-of-my-ddd-talk/</guid>
		<description><![CDATA[Just a quick post from the DDD eXchange here in London. My talk from earlier this morning was recorded and is now online:
Domain Models &#038; Composite Applications
Enjoy!
]]></description>
			<content:encoded><![CDATA[<p>Just a quick post from the DDD eXchange here in London. My talk from earlier this morning was recorded and is now online:</p>
<p><a href="http://skillsmatter.com/podcast/home/talk-from-udi-dahan/cs-2041">Domain Models &#038; Composite Applications</a></p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2011/06/10/recording-of-my-ddd-talk/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Eventual Consistency Is Just Caching</title>
		<link>http://www.udidahan.com/2010/02/21/eventual-consistency-is-just-caching/</link>
		<comments>http://www.udidahan.com/2010/02/21/eventual-consistency-is-just-caching/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 06:27:03 +0000</pubDate>
		<dc:creator>udidahan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.udidahan.com/?p=1182</guid>
		<description><![CDATA[People seem to make a big deal about eventual consistency. Those same people don&#8217;t seem to think twice about using a cache to improve the performance of their system when the database can&#8217;t handle it. That cache holds a copy of data that isn&#8217;t 100% synchronized with the database. That&#8217;s eventual consistency. Get over it.
]]></description>
			<content:encoded><![CDATA[<p>People seem to make a big deal about eventual consistency. Those same people don&#8217;t seem to think twice about using a cache to improve the performance of their system when the database can&#8217;t handle it. That cache holds a copy of data that isn&#8217;t 100% synchronized with the database. That&#8217;s eventual consistency. Get over it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2010/02/21/eventual-consistency-is-just-caching/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Courses and Training</title>
		<link>http://www.udidahan.com/2010/02/10/courses-and-training/</link>
		<comments>http://www.udidahan.com/2010/02/10/courses-and-training/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 09:00:56 +0000</pubDate>
		<dc:creator>udidahan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.udidahan.com/?p=1178</guid>
		<description><![CDATA[I&#8217;ve been hesitant to blog about the dates and locations that I offer courses. While any independent consultant can&#8217;t be above some shameless self-promotion, I&#8217;ve tried to keep this blog focused on content that is applicable to the broadest cross-section of my readership. Course information was something that I had been putting out only via [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been hesitant to blog about the dates and locations that I offer courses. While any independent consultant can&#8217;t be above some shameless self-promotion, I&#8217;ve tried to keep this blog focused on content that is applicable to the broadest cross-section of my readership. Course information was something that I had been putting out only via <a href="http://twitter.com/UdiDahan">my Twitter account</a>. I&#8217;ve now had a change of heart and I&#8217;d like to tell you why.</p>
<h2>Missed and Pissed</h2>
<p>A couple of weeks ago I received an email from a company in Austin Texas asking me if I was planning on providing any training there. They were a bit dismayed (to say the least) to learn that I had only recently given a public training course and that they&#8217;d missed it.</p>
<p>Last week I received a similar email from a company in Melbourne, with similar dismay to having missed the course there.</p>
<p>It turns out that in my efforts to keep the blog &#8220;clean&#8221; of this kind of marketing, I was actually doing a great disservice to my readers. So, first off, please accept my apologies if this has affected you. From now on I&#8217;ll be putting out posts about upcoming courses and conferences that I&#8217;ll be speaking at and I&#8217;d be happy to see you there.</p>
<h2>Feedback about courses</h2>
<p>Many people have been raving about my 5-day course. Here are what some of the attendees from Australia had to say:</p>
<p><a href="http://rhysc.blogspot.com/2010/01/udi-dahan-advanced-distributed-systems.html">Rhys Campbell</a>: &#8220;Seriously though, the course was incredible, I think the overwhelming majority learnt more in those 5 days about designing large scale scalable enterprise architectures than they had over the 5 years of their career&#8230; well go on the course, its freaking awesome&#8230;&#8221;</p>
<p><a href="http://mrnye.blogspot.com/2010/01/new-beginning.html">Michael Nye</a>: &#8220;Aside from having a sore brain, I now have an entirely new point of view for building systems. For those that are lucky enough to have the chance, I cannot recommend enough to try to get along to one of the courses. You will literally be blown away by it.&#8221;</p>
<p>For more opinions see: <a href="http://www.paulbatum.com/2010/01/advanced-distributed-systems-design.html">Paul Batum</a>, <a href="http://www.markharris.net.au/blog/2010/02/04/doing-advanced-distributed-systems-design-a-gift-from-santa/">Mark Harris</a>, and <a href="http://www.simonsegal.net/blog/2010/02/04/adsd-nservicebus-and-nuclear-armament-the-full-story/">Simon Segal</a> who&#8217;s actually done the course 3 times!</p>
<h2>Upcoming Course Locations</h2>
<p>Next week! Hurry so that you don&#8217;t miss this one: Feb 15-19 London UK. <a href="http://skillsmatter.com/course/open-source-dot-net/advanced-distributed-systems-design-with-soa/ps-510">Register here</a></p>
<p>April 12-16 Philadelpha USA (5 seats left) <a href="http://bit.ly/6ObLg9">Register here</a> </p>
<p>And for companies that are looking at sending many people, there is the option for on-site training as well.</p>
<p>I&#8217;ll put up a separate post with upcoming conferences soon.</p>
<p>Hope to see you at one of these events.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2010/02/10/courses-and-training/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Judgement and Experience</title>
		<link>http://www.udidahan.com/2008/03/30/judgement-and-experience/</link>
		<comments>http://www.udidahan.com/2008/03/30/judgement-and-experience/#comments</comments>
		<pubDate>Sun, 30 Mar 2008 09:16:43 +0000</pubDate>
		<dc:creator>udidahan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://udidahan.weblogs.us/2008/03/30/judgement-and-experience/</guid>
		<description><![CDATA[[Filed under quotable quotes]
Good judgement comes from experience, 
and experience comes from bad judgement &#8211; if you survive it.

[Source]
]]></description>
			<content:encoded><![CDATA[<p>[Filed under quotable quotes]</p>
<blockquote><p>Good judgement comes from experience, </p>
<p>and experience comes from bad judgement &#8211; if you survive it.</p>
</blockquote>
<p>[<a href="http://bendiken.net/2008/03/28/cutting-code-three-doors-down">Source</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2008/03/30/judgement-and-experience/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beware the Data Services Platform (DSP)</title>
		<link>http://www.udidahan.com/2008/02/21/beware-the-data-services-platform-dsp/</link>
		<comments>http://www.udidahan.com/2008/02/21/beware-the-data-services-platform-dsp/#comments</comments>
		<pubDate>Thu, 21 Feb 2008 23:03:03 +0000</pubDate>
		<dc:creator>udidahan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://udidahan.weblogs.us/2008/02/21/beware-the-data-services-platform-dsp/</guid>
		<description><![CDATA[
Done it again, the analysts have. 
Dreamt up a (not) new acronym around SOA, they have. 
Written up a useless 53 page report on it, they have.
The grizzled veterans over at the SOA yahoo group have already weighed in.
Back in the beginning of 2006 I called it out as a Common SOA Pitfall. Later on [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://udidahan.weblogs.us/wp-content/uploads/image1.png"><img style="border-right: 0px; border-top: 0px; margin: 0px 20px; border-left: 0px; border-bottom: 0px" height="244" alt="image" src="http://udidahan.weblogs.us/wp-content/uploads/image-thumb1.png" width="229" align="right" border="0"></a></p>
<p>Done it again, the analysts have. </p>
<p>Dreamt up a (not) new acronym around SOA, they have. </p>
<p><a href="http://searchsoa.techtarget.com/news/article/0,289142,sid26_gci1301490,00.html?track=NL-110&amp;ad=624655&amp;asrc=EM_NLN_3104579&amp;uid=5532089">Written up a useless 53 page report on it, they have</a>.</p>
<p>The grizzled veterans over at the SOA yahoo group have already <a href="http://tech.groups.yahoo.com/group/service-orientated-architecture/message/9713">weighed in</a>.</p>
<p>Back in the beginning of 2006 I called it out as a <a href="http://udidahan.weblogs.us/2006/02/26/common-soa-pitfalls/">Common SOA Pitfall</a>. Later on in mid 2007, InfoQ <a href="http://www.infoq.com/news/2007/05/astoria">quoted me on this same theme for Astoria</a> &#8211; now ADO.NET Data Services.</p>
<p>&#8220;Stopped they must be; on this all depends.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2008/02/21/beware-the-data-services-platform-dsp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thrice an MVP</title>
		<link>http://www.udidahan.com/2007/07/01/thrice-an-mvp/</link>
		<comments>http://www.udidahan.com/2007/07/01/thrice-an-mvp/#comments</comments>
		<pubDate>Sun, 01 Jul 2007 18:41:52 +0000</pubDate>
		<dc:creator>thesoftwaresimplist</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/07/01/thrice-an-mvp/</guid>
		<description><![CDATA[MVP Solutions Architect, once again.
Thank you.
]]></description>
			<content:encoded><![CDATA[<p>MVP Solutions Architect, once again.</p>
<p>Thank you.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2007/07/01/thrice-an-mvp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What to test, and when &#8211; presentation</title>
		<link>http://www.udidahan.com/2007/05/30/what-to-test-and-when-presentation/</link>
		<comments>http://www.udidahan.com/2007/05/30/what-to-test-and-when-presentation/#comments</comments>
		<pubDate>Wed, 30 May 2007 14:28:51 +0000</pubDate>
		<dc:creator>thesoftwaresimplist</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/05/30/what-to-test-and-when-presentation/</guid>
		<description><![CDATA[You can now download the PDF of the presentation I gave at DevTeach on What to Test, and When. My apologies for putting this up so late.
In brief, you can&#8217;t provide business value if you can&#8217;t ship. Shipping software means more than having some features passing some automated tests, although most of the discussions I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>You can now download the PDF of the presentation I gave at DevTeach on <a href="http://udidahan.weblogs.us/wp-content/uploads/what-to-test-and-when.pdf">What to Test, and When</a>. My apologies for putting this up so late.</p>
<p>In brief, you can&#8217;t provide business value if you can&#8217;t ship. Shipping software means more than having some features passing some automated tests, although most of the discussions I&#8217;ve been hearing in the Agile circles seems to say that that is enough. Are you really going to be putting credit card numbers into that system before you&#8217;ve done any security testing? I hope not. Same thing goes for usability, scalability, etc.</p>
<p>So do you really have to be able to release software every two weeks, or month?</p>
<p>Bottom line, understand the terms and conditions of every release, and plan accordingly &#8211; both in development effort as well as in testing scope and amount. Also, sponsor-driven constraints like trade-shows will affect what you need to test and when.</p>
<p>So, viewing testing outside the context of hands-on project management is ineffective.</p>
<p>Why do we have that independent QA department again?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2007/05/30/what-to-test-and-when-presentation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[Off Topic] My Gradfather died</title>
		<link>http://www.udidahan.com/2007/04/28/off-topic-my-gradfather-died/</link>
		<comments>http://www.udidahan.com/2007/04/28/off-topic-my-gradfather-died/#comments</comments>
		<pubDate>Sat, 28 Apr 2007 08:14:04 +0000</pubDate>
		<dc:creator>thesoftwaresimplist</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/04/28/off-topic-my-gradfather-died/</guid>
		<description><![CDATA[It feels better writing this down.
I don&#8217;t know why.
At the age of 84, Saba Eli, father to two, grandfather of 4, great-grandfather of 4, passed away at 8:43 pm, Thursday April 26th, 2007.
I am sad.
]]></description>
			<content:encoded><![CDATA[<p>It feels better writing this down.<br />
I don&#8217;t know why.</p>
<p>At the age of 84, Saba Eli, father to two, grandfather of 4, great-grandfather of 4, passed away at 8:43 pm, Thursday April 26th, 2007.</p>
<p>I am sad.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2007/04/28/off-topic-my-gradfather-died/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google AdSense Custom-Channels and Blog Categories</title>
		<link>http://www.udidahan.com/2007/04/19/google-adsense-custom-channels-and-blog-categories/</link>
		<comments>http://www.udidahan.com/2007/04/19/google-adsense-custom-channels-and-blog-categories/#comments</comments>
		<pubDate>Thu, 19 Apr 2007 22:26:22 +0000</pubDate>
		<dc:creator>thesoftwaresimplist</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://udidahan.weblogs.us/2007/04/19/google-adsense-custom-channels-and-blog-categories/</guid>
		<description><![CDATA[After one of the firms that advertises on this site with Google asked me if it would be possible for them to hone in on only the categories that interested them, I had to say yes. 6 hours later, I can say that I don&#8217;t like PHP programming much, but that it works.
I&#8217;ve defined a [...]]]></description>
			<content:encoded><![CDATA[<p>After one of the firms that advertises on this site with Google asked me if it would be possible for them to hone in on only the categories that interested them, I had to say yes. 6 hours later, I can say that I don&#8217;t like PHP programming much, but that it works.</p>
<p>I&#8217;ve defined a custom channel on Google AdSense for every category on the site (except &#8220;uncategorized&#8221;) so that advertisers can focus in on exactly the content they want. This is a step forward for directed advertising on blogs, but I don&#8217;t see many other site owners doing the drudge-work that I just went through. We really need some higher-level way of setting something like this up.</p>
<p>Anyway, this post is more for the advertisers than our regular readers, but I do hope that the products suggested in the ads you see will help you in some way.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2007/04/19/google-adsense-custom-channels-and-blog-categories/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8230; and we&#8217;re back</title>
		<link>http://www.udidahan.com/2007/03/23/and-were-back/</link>
		<comments>http://www.udidahan.com/2007/03/23/and-were-back/#comments</comments>
		<pubDate>Fri, 23 Mar 2007 22:20:26 +0000</pubDate>
		<dc:creator>thesoftwaresimplist</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://udidahan.weblogs.us/archives/392</guid>
		<description><![CDATA[After some recently unpleasant downtime, I&#8217;m back.
]]></description>
			<content:encoded><![CDATA[<p>After some recently unpleasant downtime, I&#8217;m back.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2007/03/23/and-were-back/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Bruce Springsteen of SOA</title>
		<link>http://www.udidahan.com/2007/02/02/the-bruce-springsteen-of-soa/</link>
		<comments>http://www.udidahan.com/2007/02/02/the-bruce-springsteen-of-soa/#comments</comments>
		<pubDate>Fri, 02 Feb 2007 23:50:41 +0000</pubDate>
		<dc:creator>thesoftwaresimplist</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://udidahan.weblogs.us/archives/370</guid>
		<description><![CDATA[Andreas has just dubbed me &#8220;The Bruce Springsteen of SOA&#8221; and I&#8217;m pretty sure that&#8217;s a compliment, much more so than &#8220;The SOA Loudmouth&#8221;. I&#8217;m still sticking with &#8220;The Software Simplist&#8221; though  
]]></description>
			<content:encoded><![CDATA[<p><a href="http://andreasohlund.blogspot.com/">Andreas</a> has just dubbed me &#8220;The Bruce Springsteen of SOA&#8221; and I&#8217;m pretty sure that&#8217;s a compliment, much more so than &#8220;The SOA Loudmouth&#8221;. I&#8217;m still sticking with &#8220;The Software Simplist&#8221; though <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2007/02/02/the-bruce-springsteen-of-soa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>5 things you don&#8217;t know about me</title>
		<link>http://www.udidahan.com/2007/01/04/5-things-you-dont-know-about-me/</link>
		<comments>http://www.udidahan.com/2007/01/04/5-things-you-dont-know-about-me/#comments</comments>
		<pubDate>Fri, 05 Jan 2007 00:29:39 +0000</pubDate>
		<dc:creator>thesoftwaresimplist</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://udidahan.weblogs.us/archives/360</guid>
		<description><![CDATA[After slogging through a blog engine update, the flu, new year, and a project release we welcome you back to our regularly scheduled blogging.
I want to thank Clemens for helping me break out of my &#8220;I&#8217;m tired, I&#8217;ll just blog tomorrow&#8221; rut by tagging me.
So, here are 5 things you don&#8217;t know about me:
1. I [...]]]></description>
			<content:encoded><![CDATA[<p>After slogging through a blog engine update, the flu, new year, and a project release we welcome you back to our regularly scheduled blogging.</p>
<p>I want to thank Clemens for helping me break out of my &#8220;I&#8217;m tired, I&#8217;ll just blog tomorrow&#8221; rut by <a href="http://friends.newtelligence.net/clemensv/PermaLink,guid,96ef7e0f-cef0-4a14-991d-0f81e3f9160f.aspx">tagging me</a>.</p>
<p>So, here are 5 things you don&#8217;t know about me:</p>
<p>1. I was born in Israel, but grew up in Canada. After finishing high school I came back to Israel. This accounts for my native accent when speaking English and is often quite a surprise to people when I&#8217;m speaking at conferences, mostly in Europe. People in the states don&#8217;t give it much thought usually.</p>
<p>2. I&#8217;m a blue belt in Judo and have 3 city championships and 2 regional gold medals to my name. I never was really willing to commit to doing it seriously, since that required spending an entire summer at a training camp in Japan.</p>
<p>3. I&#8217;m a classically trained pianist going through the whole Conservatorium thing. Chopin is my favorite with Beethoven a close second.</p>
<p>4. I started programming at the age of 8 when my dad first brought home a computer from the university where he worked. I asked him if we could get any games for the computer and he answered that the only games that would get on the computer would be those that I wrote. After going to the library and taking out some books on GWBasic I was GOTO-ing with the best of them in no time. Looping and control flow came soon after but I bored with it quickly until I got to Pascal, my first programming love. I&#8217;ve never stopped enjoying the act of programming, even the debugging.</p>
<p>5. My path to speaking at conferences started during my military service. After attending numerous user group meetings and hearing various speakers talking about all sorts of technological topics, I said to myself, &#8220;I can do that, and I probably won&#8217;t be worse than him&#8221;. I approached the user group leader (<a href="http://spaces.msn.com/application-secuirty/">Nimrod Luria</a>) and asked him to give me a chance, which he did. My internal sense of perfection wouldn&#8217;t leave me alone until I had integrated blogs and books on public speaking and <a href="http://presentationzen.blogs.com">Presentation Zen</a> into my routine. That, and lots of practice have helped me get to where I am today and keep improving. Actually, the one thing that came as a precursor to all this was the blogging which <a href="http://www.iserializable.com">Roy</a> unwittingly pushed me into. Without the blogging, I don&#8217;t think I ever would have gotten into the speaking.</p>
<p>So, those are my 5 things. And the tags go to <a href="http://www.iserializable.com">Roy</a>, <a href="http://www.rgoarchitects.com/blog">Arnon</a>, <a href="http://feeds.feedburner.com/Devhawk">Harry</a>, <a href="https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/u/251720528">Natan</a>, <a href="http://www.jrothman.com/weblog/blogger.html">Johanna</a>. You&#8217;re IT.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2007/01/04/5-things-you-dont-know-about-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Re: XML vs. Web Service, Who Wins?</title>
		<link>http://www.udidahan.com/2006/09/30/re-xml-vs-web-service-who-wins/</link>
		<comments>http://www.udidahan.com/2006/09/30/re-xml-vs-web-service-who-wins/#comments</comments>
		<pubDate>Sat, 30 Sep 2006 19:03:35 +0000</pubDate>
		<dc:creator>thesoftwaresimplist</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/324</guid>
		<description><![CDATA[I flagged this for followup some time ago, but it just got lost in the shuffle. Brent (?) put up a great post called <a href="http://blogs.msdn.com/addeditdelete/archive/2006/06/13/629769.aspx">"XML vs. Web Service, Who Wins?"</a> where he dispells the WebServices Everything Everywhere anti-pattern. In the example he uses, a read-only XML file ended up being a much simpler, and almost definitely more performant solution than using Web Services.
<br/><br/>
If there was one thing that I'd add to his solution is to use some kind of notification mechanism (publish) that would let all subscribers know that the data in the XML file had changed. This would be preferable to having each subscriber polling for changes. You could use Web Services to implement such a mechanism, but shucks, the WS-Eventing spec is only now getting nailed down and it might take some time for the implementations to get out, not to mention the kinks worked out of them. I'll bet you could use some other, simple notification mechanism instead.
<br/><br/>
So, the question isn't really XML vs. Web Services, but rather today's stable, already in use techniques vs. tomorrow's hyped up, not yet stable technologies. If you had to build a mission critical system, what would you bet your job on?]]></description>
			<content:encoded><![CDATA[<p>I flagged this for followup some time ago, but it just got lost in the shuffle. Brent (?) put up a great post called <a href="http://blogs.msdn.com/addeditdelete/archive/2006/06/13/629769.aspx">&#8220;XML vs. Web Service, Who Wins?&#8221;</a> where he dispells the WebServices Everything Everywhere anti-pattern. In the example he uses, a read-only XML file ended up being a much simpler, and almost definitely more performant solution than using Web Services.</p>
<p>If there was one thing that I&#8217;d add to his solution is to use some kind of notification mechanism (publish) that would let all subscribers know that the data in the XML file had changed. This would be preferable to having each subscriber polling for changes. You could use Web Services to implement such a mechanism, but shucks, the WS-Eventing spec is only now getting nailed down and it might take some time for the implementations to get out, not to mention the kinks worked out of them. I&#8217;ll bet you could use some other, simple notification mechanism instead.</p>
<p>So, the question isn&#8217;t really XML vs. Web Services, but rather today&#8217;s stable, already in use techniques vs. tomorrow&#8217;s hyped up, not yet stable technologies. If you had to build a mission critical system, what would you bet your job on?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2006/09/30/re-xml-vs-web-service-who-wins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asynchronous Callback R Us &#8211; part 2</title>
		<link>http://www.udidahan.com/2006/07/10/asynchronous-callback-r-us-part-2/</link>
		<comments>http://www.udidahan.com/2006/07/10/asynchronous-callback-r-us-part-2/#comments</comments>
		<pubDate>Tue, 11 Jul 2006 05:19:25 +0000</pubDate>
		<dc:creator>thesoftwaresimplist</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/297</guid>
		<description><![CDATA[In <a href="/archives/036738.html">part 1</a> of this topic, a different kind of API was presented for asynchronous callbacks. Pretty quick, in the comments, Ralf pointed out the problems with this approach. These problems are very typical in multi-threaded scenarios and manifest as hard to find (and reproduce) bugs.
<br/><br/>
However, in cases where we are performing "highly asynchronous work", like sending a request to another machine, where that request will be processed, and a result eventually sent back over the network, this kind of API could make it clear that we are NOT performing in-process multi-threading, and that the expectation of execution time should not hold.
<br/><br/>
And the code that enables this API (note: this is from memory):
<br/><br/>
<pre>
public delegate void CompletionCallback(int errorCode);

public interface ICallbackRegistrar
{
event CompletionCallback Completed;
}

public class CallbackRegistrar : ICallbackRegistrar
{
private RegisterCallbackDelegate toCall;

public CallbackRegistrar(Delegate toCall)
{
this.toCall = toCall;
}

public event CompletionCallback Completed
{
add
{
this.toCall.DynamicInvoke(value);
}
remove { }
}
}

public ICompletionRegistrar SendMessageToServer(Message m)
{
// do work
return new CompletionRegistrar(
new delegate(CompletionCallback toCall)
{
this.messageIdToCallbackLookup[m.Id] = toCall;
}
);
}

public void HandleMessageReceivedFromServer(Message m)
{
if (m.CorrelationId != null)
{
CompletionCallback toCall;
this.messageIdToCallbackLookup.TryGetValue(m.CorrelationId, toCall);
if (toCall != null)
{
toCall(m.ErrorCode);
this.messageIdToCallbackLookup.Remove(m.CorrelationId);
}
}
}
</pre>
<br/><br/>
Enjoy.]]></description>
			<content:encoded><![CDATA[<p>In <a href="/archives/036738.html">part 1</a> of this topic, a different kind of API was presented for asynchronous callbacks. Pretty quick, in the comments, Ralf pointed out the problems with this approach. These problems are very typical in multi-threaded scenarios and manifest as hard to find (and reproduce) bugs.</p>
<p>However, in cases where we are performing &#8220;highly asynchronous work&#8221;, like sending a request to another machine, where that request will be processed, and a result eventually sent back over the network, this kind of API could make it clear that we are NOT performing in-process multi-threading, and that the expectation of execution time should not hold.</p>
<p>And the code that enables this API (note: this is from memory):</p>
<pre>
public delegate void CompletionCallback(int errorCode);

public interface ICallbackRegistrar
{
event CompletionCallback Completed;
}

public class CallbackRegistrar : ICallbackRegistrar
{
private RegisterCallbackDelegate toCall;

public CallbackRegistrar(Delegate toCall)
{
this.toCall = toCall;
}

public event CompletionCallback Completed
{
add
{
this.toCall.DynamicInvoke(value);
}
remove { }
}
}

public ICompletionRegistrar SendMessageToServer(Message m)
{
// do work
return new CompletionRegistrar(
new delegate(CompletionCallback toCall)
{
this.messageIdToCallbackLookup[m.Id] = toCall;
}
);
}

public void HandleMessageReceivedFromServer(Message m)
{
if (m.CorrelationId != null)
{
CompletionCallback toCall;
this.messageIdToCallbackLookup.TryGetValue(m.CorrelationId, toCall);
if (toCall != null)
{
toCall(m.ErrorCode);
this.messageIdToCallbackLookup.Remove(m.CorrelationId);
}
}
}
</pre>
<p>Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2006/07/10/asynchronous-callback-r-us-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google: MVP Solutions Architect</title>
		<link>http://www.udidahan.com/2005/08/21/google-mvp-solutions-architect/</link>
		<comments>http://www.udidahan.com/2005/08/21/google-mvp-solutions-architect/#comments</comments>
		<pubDate>Sun, 21 Aug 2005 23:23:39 +0000</pubDate>
		<dc:creator>thesoftwaresimplist</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/218</guid>
		<description><![CDATA[Wow. <a href="http://www.google.com/search?ie=UTF-8&#038;oe=UTF-8&#038;sourceid=deskbar&#038;q=MVP%20Solutions%20Architect">Google: MVP Solutions Architect</a> and I'm number two - after the official MVP site.]]></description>
			<content:encoded><![CDATA[<p>Wow. <a href="http://www.google.com/search?ie=UTF-8&amp;oe=UTF-8&amp;sourceid=deskbar&amp;q=MVP%20Solutions%20Architect">Google: MVP Solutions Architect</a> and I&#8217;m number two &#8211; after the official MVP site.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2005/08/21/google-mvp-solutions-architect/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Predictably SOA</title>
		<link>http://www.udidahan.com/2005/07/08/predictably-soa/</link>
		<comments>http://www.udidahan.com/2005/07/08/predictably-soa/#comments</comments>
		<pubDate>Sat, 09 Jul 2005 04:11:14 +0000</pubDate>
		<dc:creator>thesoftwaresimplist</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/205</guid>
		<description><![CDATA[Paul asks about predictable response times for services &#8211; my question: if it&#8217;s fast, does it matter? Between 1 and 2 milliseconds there is huge variability, meaning low predictability. My second question: if it&#8217;s slow, does it matter? Between 21 hours and 22 hours there is much lower variation, thus higher predictability. When working asynchronously, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://weblogs.asp.net/pgielens/archive/2005/07/07/418425.aspx">Paul asks about predictable response times for services</a> &#8211; my question: if it&#8217;s fast, does it matter? Between 1 and 2 milliseconds there is huge variability, meaning low predictability. My second question: if it&#8217;s slow, does it matter? Between 21 hours and 22 hours there is much lower variation, thus higher predictability. When working asynchronously, we design around predictability because the real world just isn&#8217;t predictable.</p>
<p>This does NOT mean that response times don&#8217;t matter. This is where SLAs come in. I can offer a service under various SLAs. If you&#8217;re willing to pay me $X per message, then I&#8217;ll be willing to offer you an SLA entailing the fact that your message will be processed and you will receive a result in under 2 seconds with 95% certainty. If you&#8217;re not willing to pay anything, then I may offer a default SLA with much lower levels of certainty. It&#8217;s all about the business demands and expected returns that influence these SLAs.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2005/07/08/predictably-soa/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Clemens says SOA doesn&#8217;t exist</title>
		<link>http://www.udidahan.com/2005/05/02/clemens-says-soa-doesnt-exist/</link>
		<comments>http://www.udidahan.com/2005/05/02/clemens-says-soa-doesnt-exist/#comments</comments>
		<pubDate>Tue, 03 May 2005 03:38:23 +0000</pubDate>
		<dc:creator>thesoftwaresimplist</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/190</guid>
		<description><![CDATA[First read <a href="http://staff.newtelligence.net/clemensv/PermaLink,guid,535d4a96-2cc3-4306-8b56-9a96c7c6fa39.aspx">Clemens' post</a>. Now, my comments.

I'm not a historian so I don't think I can comment about SOA's newness. However, I do find that if we treat the autonomy tenet as one that includes the meaning that one service will not be "actively waiting" for a response from a different service, that is, that the initiating service can be handling other requests until a response comes back, then the design of the service will be quite different from many of the designs common today.

Why do I think that this meaning of autonomy is valuable? Because, if a number of services on which our initiating service depends are "experiencing technical difficulty", their response times go through the roof, then the "active waiting" which entails holding resources open per request will bring about a self-inflicted denial of service. This would be the exact opposite of autonomy, in my opinion.

A service's availability should not be affected by the services on which it depends.

This would directly affect the way a service handles state. In fact, it makes the message-processing workflow into explicit state that needs to be managed.

Therefore, by viewing state as one of the pillars of architecture, we can say that service orientation does impact our choice of architecture. Would I say that this is "special" about SOA? Well, yes, in so far as it separates SOA from other architectural approaches and the steps taken to get to them.]]></description>
			<content:encoded><![CDATA[<p>First read <a href="http://staff.newtelligence.net/clemensv/PermaLink,guid,535d4a96-2cc3-4306-8b56-9a96c7c6fa39.aspx">Clemens&#8217; post</a>. Now, my comments.</p>
<p>I&#8217;m not a historian so I don&#8217;t think I can comment about SOA&#8217;s newness. However, I do find that if we treat the autonomy tenet as one that includes the meaning that one service will not be &#8220;actively waiting&#8221; for a response from a different service, that is, that the initiating service can be handling other requests until a response comes back, then the design of the service will be quite different from many of the designs common today.</p>
<p>Why do I think that this meaning of autonomy is valuable? Because, if a number of services on which our initiating service depends are &#8220;experiencing technical difficulty&#8221;, their response times go through the roof, then the &#8220;active waiting&#8221; which entails holding resources open per request will bring about a self-inflicted denial of service. This would be the exact opposite of autonomy, in my opinion.</p>
<p>A service&#8217;s availability should not be affected by the services on which it depends.</p>
<p>This would directly affect the way a service handles state. In fact, it makes the message-processing workflow into explicit state that needs to be managed.</p>
<p>Therefore, by viewing state as one of the pillars of architecture, we can say that service orientation does impact our choice of architecture. Would I say that this is &#8220;special&#8221; about SOA? Well, yes, in so far as it separates SOA from other architectural approaches and the steps taken to get to them.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2005/05/02/clemens-says-soa-doesnt-exist/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Official invite to my presentation to the IVBUG</title>
		<link>http://www.udidahan.com/2005/03/01/official-invite-to-my-presentation-to-the-ivbug/</link>
		<comments>http://www.udidahan.com/2005/03/01/official-invite-to-my-presentation-to-the-ivbug/#comments</comments>
		<pubDate>Wed, 02 Mar 2005 02:25:55 +0000</pubDate>
		<dc:creator>thesoftwaresimplist</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/175</guid>
		<description><![CDATA[This month we take a slight rest from the whirlwind tour of new features in .NET 2.0 and VB 2005, to take a step back and look at how we can better utilize and take advantage of some of the new features and techniques – even today.
This month&#8217;s presentation, by our own Udi Dahan,  [...]]]></description>
			<content:encoded><![CDATA[<p>This month we take a slight rest from the whirlwind tour of new features in .NET 2.0 and VB 2005, to take a step back and look at how we can better utilize and take advantage of some of the new features and techniques – even today.</p>
<p>This month&#8217;s presentation, by our own Udi Dahan,  will be about user interfaces, and the changes that have been occurring there, with the increased amounts of data that need to be handled, the problematic connectivity to data sources, as well as the ability to display events happening in real time. The specific focus will be on how to use multi-threading techniques to achieve higher quality user interfaces, as well as what kinds of problems arise, and how to solve them.</p>
<p>Udi Dahan is a Microsoft Israel recognized .Net development expert and head of .Net development at KorenTec. Udi leads the Israel Agile Practitioners Community and speaks regularly at user groups throughout the country on advanced .NET topics. His experience spans technologies related to Command &amp; Control systems, Real Time applications, and high-availability Internet services using C#/.Net and MS SQL Server databases.</p>
<p>As always, we&#8217;ll have our special &#8220;Hatzilu&#8221; session at our meeting. So please come prepared to discuss your most frustrating problems (or at least some of them!) and to share some of your own techniques and solutions that you have found useful in your applications.</p>
<p>Please remember that it is important for me to know as accurately as possible how many people will be attending each meeting, so that I can arrange for the right amount of food and the proper setup of the chairs.  Please confirm your attendance.</p>
<p>See you there !!</p>
<p>The March meeting of the Israel Visual Basic User Group<br />
http://www.renaissance.co.il/ivbug: </p>
<p>March 2, 2005</p>
<p>Location: </p>
<p>Microsoft Israel</p>
<p>2 Hapnina St,<br />
Ra&#8217;anana</p>
<p>(09) 7625-100</p>
<p>Floor 0 , Dekel Room </p>
<p>It is the new building across from Amdocs.</p>
<p>After the first traffic circle, there is an area for parking on the right.</p>
<p>17:30 &#8211; 18:00   Assembly<br />
18:00 &#8211; 18:10   Introduction<br />
18:10 &#8211; 19:30    “Multi-Threaded User Interfaces – Part 1&#8243; </p>
<p>Udi Dahan, KorenTec</p>
<p>19:30 &#8211; 19:45    Break<br />
19:45 – 20:00   &#8220;Hatzilu !&#8221;<br />
                        Open session, with questions and answers/ideas from everyone<br />
20:00 – 21:00   “Multi-Threaded User Interfaces – Part 2&#8243;<br />
                        Udi Dahan, KorenTec</p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2005/03/01/official-invite-to-my-presentation-to-the-ivbug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OOA, OOP, and BOOCH &#8211; ooooohhh&#8230;.</title>
		<link>http://www.udidahan.com/2004/09/21/ooa-oop-and-booch-ooooohhh/</link>
		<comments>http://www.udidahan.com/2004/09/21/ooa-oop-and-booch-ooooohhh/#comments</comments>
		<pubDate>Wed, 22 Sep 2004 02:40:15 +0000</pubDate>
		<dc:creator>thesoftwaresimplist</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/118</guid>
		<description><![CDATA[There&#8217;s a discussion going on at the Domain Driven Design group about the value of OO &#8211; the thread can be picked up here. One of the more interesting observations that can be taken from the thread is a quote by Grady Booch on the subject:
=========================================
Object-Oriented Design
: (pages 15 and 16)
Actually, this is a trick [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a discussion going on at the Domain Driven Design group about the value of OO &#8211; the thread can be picked up <a href="http://groups.yahoo.com/group/domaindrivendesign/message/1398">here</a>. One of the more interesting observations that can be taken from the thread is a quote by Grady Booch on the subject:</p>
<p>=========================================<br />
Object-Oriented Design<br />
: (pages 15 and 16)</p>
<p>Actually, this is a trick question, because the right answer<br />
is that both views are important: the algorithmic view highlights the<br />
ordering of events, and the object-oriented view emphasizes the<br />
agents that either cause action or are the subjects upon which these<br />
operations act.` However, the fact remains that we cannot construct a<br />
complex system in both ways simultaneously, for they are completely<br />
orthogonal views. We must start decomposing a system either by<br />
algorithms or by objects, and then use the resulting structure as the<br />
framework for expressing the other perspective.</p>
<p>Our experience leads us to apply the object-oriented view first<br />
because this approach is better at helping us organize the inherent<br />
complexity of software systems, just as it helped us to describe the<br />
organized complexity of complex systems<br />
Object-oriented decomposition yields smaller systems through the<br />
reuse of common mechanisms, thus providing an important economy of<br />
expression. Object-oriented systems are also more resilient to change<br />
and thus better able to evolve over time, because their design is<br />
based upon stable intermediate forms. Indeed, object-oriented<br />
decomposition greatly reduces the risk of building complex software<br />
systems, because they are designed to evolve incrementally from<br />
smaller systems in which we already have confidence. Furthermore,<br />
object-oriented decomposition directly addresses the inherent<br />
complexity of software by helping us make intelligent decisions<br />
regarding the separation of concerns in a large state space.<br />
=========================================</p>
<p>Now I&#8217;ve published many of my thoughts about OO before, but there is one thing that hasn&#8217;t got much attention, and that&#8217;s the OO analysis process <b>when done with the client/domain expert</b>. OOA is not a new thing and many developers do actually do it, however, for the most part, its an activity that is performed by the development team with little input from the client. XP avoids this by having a client on-site.</p>
<p>So, what&#8217;s the added value of having a client/domain expert when doing OOA?</p>
<p>The real deal is about getting to the &#8220;unwritten&#8221; requirements.</p>
<p>You see, when doing a task/process analysis you get to a comfortable 80% understanding pretty quickly. The problem is that you can&#8217;t really leverage that towards getting to the requirements that are locked up in the clients head. These are the things that the client doesn&#8217;t even pay attention to, but have become just a part of doing business.</p>
<p>When mapping out the objects in the system and discussing their relationships <i>with the client</i>, you begin to infer certain relationships as your understanding of the problem domain grows. As you infer, you ask questions to verify, which makes the client remember (all of a sudden) that in &#8220;special&#8221; cases there are orders whose order items need to be shipped to different addresses (for whatever reason). Only by doing OOA together, can you hope to get close to nailing down the last 20% of the system.</p>
<p>Please note that this discussion pertains to the analysis of the requirements of the system and not so much as to the design of how the system will be developed. When it comes time to develop, you really want to be as sure as possible that you understand the requirements of the system &#8211; especially those edge cases which end up making life so difficult late in the game.</p>
<p>So, while I don&#8217;t disagree with Grady Booch&#8217;s statements, I feel that the OO zealots out there may be too quickly dismissing other complementary approaches when it comes time to develop. Just because there&#8217;s value in OOA, does not mean to forsake process/task based analysis. Comparatively, OOP is a good tool, but not the only tool.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2004/09/21/ooa-oop-and-booch-ooooohhh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Separating the UI &#8230; from itself!</title>
		<link>http://www.udidahan.com/2004/09/20/separating-the-ui-from-itself/</link>
		<comments>http://www.udidahan.com/2004/09/20/separating-the-ui-from-itself/#comments</comments>
		<pubDate>Tue, 21 Sep 2004 02:28:16 +0000</pubDate>
		<dc:creator>thesoftwaresimplist</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/117</guid>
		<description><![CDATA[Jimmy talks about the &#8220;new&#8221; advantages of separating UI from Logic in &#8220;Separate UI from logic&#8221;. While this is all fine and good, and everybody knows it, I find that &#8211; in practice &#8211; it just doesn&#8217;t happen all that often.
What I mean by &#8220;in practice&#8221; is that although most developers have separate &#8220;layers&#8221; for [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.jnsk.se/weblog">Jimmy</a> talks about the &#8220;new&#8221; advantages of separating UI from Logic in <a href="http://www.jnsk.se/weblog/posts/uiandlogic.htm">&#8220;Separate UI from logic&#8221;</a>. While this is all fine and good, and everybody knows it, I find that &#8211; in practice &#8211; it just doesn&#8217;t happen all that often.</p>
<p>What I mean by &#8220;in practice&#8221; is that although most developers have separate &#8220;layers&#8221; for the Logic and the UI, there are so many cases that I run into where the logic is still coupled to the UI. The most obvious case is where an object in the logic layer has a reference to an object in the UI layer. I can&#8217;t stress this enough &#8211; make the logic independent of the UI! If you can&#8217;t compile your logic layer &#8220;project&#8221; without the UI project, that&#8217;s a sign that you&#8217;re in trouble.</p>
<p>Anyway, once you get past this point, that when things can get really interesting. I won&#8217;t expound on it here because Martin Fowler does such an awsome job on his site. <a href="http://martinfowler.com/eaaDev/OrganizingPresentations.html">&#8220;Organizing Presentation Logic&#8221;</a> is a must read! You won&#8217;t ever look at your UI the same again.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2004/09/20/separating-the-ui-from-itself/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Those that teach, can!</title>
		<link>http://www.udidahan.com/2004/05/23/those-that-teach-can/</link>
		<comments>http://www.udidahan.com/2004/05/23/those-that-teach-can/#comments</comments>
		<pubDate>Mon, 24 May 2004 05:11:56 +0000</pubDate>
		<dc:creator>thesoftwaresimplist</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/78</guid>
		<description><![CDATA[After listing to the latest DotNetRocks show, one thing really struck a chord with me. I don&#8217;t remember who exactly&#160;it was that said it, Don Kiely&#160;I think, but the statement made was that there are those who are too busy actually working with the stuff, and doing the cutting-edge development with the current technology, to [...]]]></description>
			<content:encoded><![CDATA[<p><P>After listing to the <A href="http://weblogs.asp.net/cfranklin/archive/2004/05/17/133693.aspx">latest DotNetRocks </A>show, one thing really struck a chord with me. I don&#8217;t remember who exactly&nbsp;it was that said it, <A href="http://sqljunkies.com/WebLog/donkiely/">Don Kiely</A>&nbsp;I think, but the statement made was that there are those who are too busy actually working with the stuff, and doing the cutting-edge development with the <U>current</U> technology, to go speak about it, and that that&#8217;s a shame. (Well, he (or somebody else) said something somewhat like that, before I paraphrased it to death)</P><br />
<P>Now, not to sound like I&#8217;m tooting my own horn here, but this is exactly why I couldn&#8217;t make it to TechEd. I try to keep speaking now and then at the local .Net user groups, but nowadays, I barely have the time to read blogs! In fact, I entirely forgot about a user group meeting I wanted to go to today <A href="http://www.microsoft.com/israel/events/default.aspx?pageType=1&amp;idType=1&amp;id=28">(.Net Software Architects</A>), and by the time I got home from work, well, the meeting was already over.</P><br />
<P>Before you all start weeping at my sad story, I just want to say that I&#8217;m actually quite happy with what I&#8217;m doing &#8211; just that I wish that there were a few more hours left in the day after my job and my family.</P></p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2004/05/23/those-that-teach-can/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Me &amp; Martin on Reporting</title>
		<link>http://www.udidahan.com/2004/05/23/me-martin-on-reporting/</link>
		<comments>http://www.udidahan.com/2004/05/23/me-martin-on-reporting/#comments</comments>
		<pubDate>Mon, 24 May 2004 03:09:34 +0000</pubDate>
		<dc:creator>thesoftwaresimplist</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/77</guid>
		<description><![CDATA[Apparently my post on reporting &#8211; &#8220;Data, Report.&#8221; &#8211; Picard&#160;wasn&#8217;t the first to point out that using a separate reporting database was a good idea. It turns out that Martin Fowler&#160;posted on the exact same topic about a week earlier &#8220;Reporting Database&#8221;.
Although it kind of sucks not being first, I still think that coming in [...]]]></description>
			<content:encoded><![CDATA[<p><P>Apparently my post on reporting &#8211; <A href="http://udidahan.weblogs.us/archives/018941.html">&#8220;Data, Report.&#8221; &#8211; Picard</A>&nbsp;wasn&#8217;t the first to point out that using a separate reporting database was a good idea. It turns out that <A href="http://www.MartinFowler.com">Martin Fowler</A>&nbsp;posted on the exact same topic about a week earlier <A href="http://www.martinfowler.com/bliki/ReportingDatabase.html">&#8220;Reporting Database&#8221;</A>.</P><br />
<P>Although it kind of sucks not being first, I still think that coming in second to The Man is alright.</P></p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2004/05/23/me-martin-on-reporting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Space for Names in TDD</title>
		<link>http://www.udidahan.com/2004/04/30/the-space-for-names-in-tdd/</link>
		<comments>http://www.udidahan.com/2004/04/30/the-space-for-names-in-tdd/#comments</comments>
		<pubDate>Fri, 30 Apr 2004 15:49:21 +0000</pubDate>
		<dc:creator>thesoftwaresimplist</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/64</guid>
		<description><![CDATA[<p>
This just sort of popped up onto my radar after reading Roy's post on creating group projects under a single solution. Roy states the advantages of this from a TDD perspective as follows: "For example, usually I'll have a pair of projects for each Application tier, one for unit tests and another for the tier implementation (“Dal“,“Dal.Tests“). Using such a folder scheme as mentioned above I'd have a folder under my solution called “Dal” under which these two projects will reside."
</p><p>
While I agree that the group project idea is great, the one thing that bothers me is the example. More specifically, the namespaces there. Anyone see it ? It's right there, "Dal", and "Dal.Tests". No takers ?
</p><p>
The problem with this arrangement is that all classes in Dal.Tests will be a part of the namespace Dal as well. What this means is that any internal classes to Dal, which you obviously didn't want anyone to know about outside the Dal project, are suddenly accessible in Dal.Tests !
</p><p>
Now, if you are the only developer working on both Dal and Dal.Tests, you'd probably remember not to make any use of InternalDalClass or any other internal classes. But, in many cases you're not the only developer. And in almost all cases, you're not going to be the only one maintaining the code over time. So, some other developer when writing a test class in Dal.Tests would see just another class he could use to test the functionality of Dal.
</p><p>
This is OK if you intend on doing white box testing. However, I think that it is generally agreed that black box testing be done outside the project (Dal) while white box testing be done within. ( If it's not generally agreed, well, sorry, but I've seen it done a lot, and the logic behind it makes more sense than all the alternative approaches I've seen. )
</p><p>
So, for black box testing, instead of "Dal.Tests", just call it "DalTests" and voila, a separate namespace where the internal classes of Dal are not accessible.
</p><p>
_______________________________________________
</p><p>
Update: The above is WRONG ! Well, except the part about white/black box testing. See the comments for the reasons why.
</p>]]></description>
			<content:encoded><![CDATA[<p><P>This just sort of popped up onto my radar after reading Roy&#8217;s post on <A href="http://weblogs.asp.net/rosherove/archive/2004/04/30/123389.aspx">creating group projects under a single solution</A>. Roy states the advantages of this from a TDD perspective as follows: &#8220;For example, usually I&#8217;ll have a pair of projects for each Application tier, one for unit tests and another for the tier implementation (“Dal“,“Dal.Tests“). Using such a folder scheme as mentioned above I&#8217;d have a folder under my solution called “Dal” under which these two projects will reside.&#8221;</P><br />
<P>While I agree that the group project idea is great, the one thing that bothers me is the example. More specifically, the namespaces there. Anyone see it ? It&#8217;s right there, &#8220;Dal&#8221;, and &#8220;Dal.Tests&#8221;. No takers ?</P><br />
<P>The problem with this arrangement is that all classes in Dal.Tests will be a part of the namespace Dal as well. What this means is that any <EM>internal</EM> classes to Dal, which you obviously didn&#8217;t want anyone to know about outside the Dal project, are suddenly accessible in Dal.Tests !</P><br />
<P>Now, if you are the only developer working on <EM>both</EM> Dal and Dal.Tests, you&#8217;d probably remember not to make any use of InternalDalClass or any other internal classes. But, in many cases you&#8217;re not the only developer. And in almost all cases, you&#8217;re not going to be the only one maintaining the code over time. So, some other developer when writing a test class in Dal.Tests would see just another class he could use to test the functionality of Dal.</P><br />
<P>This is OK if you intend on doing white box testing. However, I think that it is generally agreed that black box testing be done outside the project (Dal) while white box testing be done within. ( If it&#8217;s not generally agreed, well, sorry, but I&#8217;ve seen it done a lot, and the logic behind it makes more sense than all the alternative approaches I&#8217;ve seen. )</P><br />
<P>So, for black box testing, instead of &#8220;Dal.Tests&#8221;, just call it &#8220;DalTests&#8221; and voila, a separate namespace where the internal classes of Dal are not accessible.</P><br />
<P>_______________________________________________</P><br />
<P>Update: The above is WRONG !&nbsp;Well, except the part&nbsp;about white/black box testing.&nbsp;See the comments for the reasons why.</P></p>
]]></content:encoded>
			<wfw:commentRss>http://www.udidahan.com/2004/04/30/the-space-for-names-in-tdd/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

