<?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>Emad Alashi&#039;s Blog &#187; Development</title>
	<atom:link href="http://www.emadashi.com/index.php/tag/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.emadashi.com</link>
	<description></description>
	<lastBuildDate>Sun, 15 Jan 2012 10:05:42 +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>Introduction to NHibernate Session at Jordev Was Good</title>
		<link>http://www.emadashi.com/index.php/2008/12/introduction-to-nhibernate-session-at-jordev-was-good/</link>
		<comments>http://www.emadashi.com/index.php/2008/12/introduction-to-nhibernate-session-at-jordev-was-good/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 13:29:47 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[NHibernate]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[JorDev]]></category>
		<category><![CDATA[Presentation]]></category>

		<guid isPermaLink="false">http://eashi.wordpress.com/?p=160</guid>
		<description><![CDATA[The feedback was very good, and I was glad that everybody liked it. Jordev is really moving ahead, and I am very excited being part of it  
Below is the slide show (it&#8217;s an enhanced version from my previous one):
[slideshare id=821222&#38;doc=introductiontonhibernate-1228487480885456-9&#38;w=425]
Code is the same of the previous one which you can download from here
]]></description>
			<content:encoded><![CDATA[<p>The feedback was very good, and I was glad that everybody liked it. Jordev is really moving ahead, and I am very excited being part of it <img src='http://www.emadashi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Below is the slide show (it&#8217;s an enhanced version from my <a href="http://eashi.wordpress.com/2008/07/02/my-introduction-to-nhibernate-presentation-and-slides/">previous one</a>):</p>
<p>[slideshare id=821222&amp;doc=introductiontonhibernate-1228487480885456-9&amp;w=425]</p>
<p>Code is the same of the previous one which you can download from <a href="http://www.freedrive.com/file/395364,emadnhibernatepresentation.zip">here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/index.php/2008/12/introduction-to-nhibernate-session-at-jordev-was-good/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mapping Enumeration of type int in NHibernate</title>
		<link>http://www.emadashi.com/index.php/2008/08/mapping-enumeration-of-type-int-in-nhibernate/</link>
		<comments>http://www.emadashi.com/index.php/2008/08/mapping-enumeration-of-type-int-in-nhibernate/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 07:45:38 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[NHibernate]]></category>
		<category><![CDATA[Enumeration]]></category>
		<category><![CDATA[int]]></category>
		<category><![CDATA[Mapping]]></category>

		<guid isPermaLink="false">http://eashi.wordpress.com/?p=74</guid>
		<description><![CDATA[I wanted to map an integer enumeration type in NHibernate, I googled &#8220;mapping enumeration in NHibernate&#8221; and the best explanation was of Jeremy Miller in his post here.
But as it appears (and according to my understanding) that the enumeration type should be mapped to a database column of characters type (varchar, char,&#8230;etc).
What if the database [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to map an integer enumeration type in NHibernate, I googled &#8220;mapping enumeration in NHibernate&#8221; and the best explanation was of Jeremy Miller in his post <a href="http://codebetter.com/blogs/jeremy.miller/archive/2006/02/20/138732.aspx">here</a>.</p>
<p>But as it appears (and according to my understanding) that the enumeration type should be mapped to a database column of characters type (varchar, char,&#8230;etc).<br />
What if the database column was int? well&#8230;do exactly like what jeremy did except simply use &#8220;<strong>NHibernate.Type.PersistentEnumType</strong>&#8221; instead of &#8220;<strong>NHibernate.Type.EnumStringType</strong>&#8220;.</p>
<p>The sole purpose of this post is that I didn&#8217;t find this solution fast enough on google, so I hope it helps others faster.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/index.php/2008/08/mapping-enumeration-of-type-int-in-nhibernate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How we decide what to have for lunch</title>
		<link>http://www.emadashi.com/index.php/2008/08/how-we-decide-what-to-have-for-lunch/</link>
		<comments>http://www.emadashi.com/index.php/2008/08/how-we-decide-what-to-have-for-lunch/#comments</comments>
		<pubDate>Sat, 02 Aug 2008 13:09:26 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[lunchpoll]]></category>

		<guid isPermaLink="false">http://eashi.wordpress.com/?p=65</guid>
		<description><![CDATA[Do you go through the same, time-consuming, frustrating discussion with your colleagues when you want to decide what to have for lunch? well&#8230;this is exactly what we have been going through where I work.
To solve the problem (partially, because humans can never totally agree! ), I made a small, quick and dirty web application; LunchPoll.
The user [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://eashi.files.wordpress.com/2008/08/croppercapture5.jpg"></a><a href="http://eashi.files.wordpress.com/2008/08/croppercapture41.jpg"></a>Do you go through the same, time-consuming, frustrating discussion with your colleagues when you want to decide what to have for lunch? well&#8230;this is exactly what we have been going through where I work.</p>
<p>To solve the problem (partially, because humans can never totally agree! <a href="http://eashi.files.wordpress.com/2008/08/4.gif"><img class="alignnone size-medium wp-image-61" src="http://eashi.files.wordpress.com/2008/08/4.gif?w=18" alt="" width="18" height="18" /></a>), I made a small, quick and dirty web application; LunchPoll.</p>
<p>The user (Active Directory user, it works on Windows Authentication) would go to the home page, select the available poll:</p>
<p><a href="http://eashi.files.wordpress.com/2008/08/croppercapture31.jpg"><img class="alignnone size-medium wp-image-66" src="http://eashi.files.wordpress.com/2008/08/croppercapture31.jpg?w=300" alt="" width="300" height="128" /></a></p>
<p><a href="http://eashi.files.wordpress.com/2008/08/croppercapture3.jpg?w=300"></a></p>
<p>Then a list of all available restaurants will show up. The restuarants&#8217; names are in arabic, so don&#8217;t be frightned if you didn&#8217;t understand the names <img src='http://www.emadashi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  :</p>
<p><a href="http://eashi.files.wordpress.com/2008/08/croppercapture41.jpg"><img class="alignnone size-medium wp-image-67" src="http://eashi.files.wordpress.com/2008/08/croppercapture41.jpg?w=116" alt="" width="116" height="300" /></a></p>
<p><a href="http://eashi.files.wordpress.com/2008/08/croppercapture4.jpg"></a></p>
<p>The user will assign a weight for each restaurant depending on his taste for today, and no two restaurants can have the same weight.</p>
<p>And after submitting the poll, the user will see the results; all the restaurants will appear, each one with the value of its weigt next to it, along with the voters names who voted for now:</p>
<p><a href="http://eashi.files.wordpress.com/2008/08/croppercapture51.jpg"><img class="alignnone size-medium wp-image-68" src="http://eashi.files.wordpress.com/2008/08/croppercapture51.jpg?w=124" alt="" width="136" height="304" /></a></p>
<p>you can download the source code <a title="Lunchpoll source code" href="http://www.freedrive.com/file/433348,lunchpoll.zip">here</a>. bon apetite <img src='http://www.emadashi.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p> </p>
<p>p.s. There is no administration interface, so you will have insert restaurants in the Restaurants table, and Insert an entry for each new poll in the Polls table, giving the Status column the value &#8220;1&#8243;</p>
<p>p.p.s That never stopped the arguments <img src='http://www.emadashi.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> <a href="http://eashi.files.wordpress.com/2008/08/croppercapture5.jpg"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/index.php/2008/08/how-we-decide-what-to-have-for-lunch/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Are code comments important?</title>
		<link>http://www.emadashi.com/index.php/2008/07/are-code-comments-important/</link>
		<comments>http://www.emadashi.com/index.php/2008/07/are-code-comments-important/#comments</comments>
		<pubDate>Sat, 19 Jul 2008 10:02:50 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[comments]]></category>

		<guid isPermaLink="false">http://eashi.wordpress.com/?p=49</guid>
		<description><![CDATA[From the very first day I have heard about Agile development and I have been hearing things like &#8220;code comments are not such a good thing&#8221;
The main idea behind that is that the code should be self explanatory; giving functions good names and splitting concerns into different functions.
But what about the &#8220;why&#8221;; why this certain [...]]]></description>
			<content:encoded><![CDATA[<p>From the very first day I have heard about <a title="Agile Development" href="http://en.wikipedia.org/wiki/Agile_development">Agile development </a>and I have been hearing things like &#8220;<a title="code comments are bad" href="http://blog.gravityfree.ca/2006/11/myth-of-comments.html">code comments are not such a good thing</a>&#8221;</p>
<p>The main idea behind that is that the code should be self explanatory; giving functions good names and splitting concerns into different functions.</p>
<p>But what about the &#8220;why&#8221;; why this certain code is written this way? why not do it that way? and this is what I have gone through today!</p>
<p>I was working on this bug I had which resulted with a really nasty Timeout Runtime error!<br />
I instantly remembered that there was some place in the code that had the same functionality, so I jumped to it and found it is doing the same thing&#8230;.almost!</p>
<p>Why my code isn&#8217;t working?!&#8230;my code saves the domain object&#8230;and that code saves the domain object too! Ok, he is using the repository directly&#8230;and i am using the service&#8230;so what?!<br />
Being that guy my team leader Muhammed Tobji, who happens to be a really smart guy, I was sure I was on the right track!</p>
<p>After spending sometime struggling with that bug, I noticed a lot of comments above the that line of code of Tobjis, it said:<br />
<strong>&#8220;Don&#8217;t use the service&#8230;use the repository&#8230;or you will have a Timeout exception!!&#8221;</strong><br />
GGRRRRR!!!</p>
<p>It was there! I don&#8217;t know how much time I could have wasted trying to find the solution, when the solution was already there! The code was almost cleanly refactored, the name of the functions were logical and self explantory, and yet..that was not enough! there was we still a need for comments because it was exceptional situaion (and software has lots of exceptional situations <img src='http://www.emadashi.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )</p>
<p>my conclusion is &#8220;use comments&#8221;! Be wise though, don&#8217;t comment the obvious, but in such situations&#8230;please&#8230;do post your code comment <img src='http://www.emadashi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>(thanks Tobji <img src='http://www.emadashi.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/index.php/2008/07/are-code-comments-important/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>My &#8220;Introduction to NHibernate&#8221; presentation and slides</title>
		<link>http://www.emadashi.com/index.php/2008/07/my-introduction-to-nhibernate-presentation-and-slides/</link>
		<comments>http://www.emadashi.com/index.php/2008/07/my-introduction-to-nhibernate-presentation-and-slides/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 16:34:04 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[NHibernate]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://eashi.wordpress.com/?p=39</guid>
		<description><![CDATA[I have delivered the presentation I talked about in my previous post here.
Actually it was pretty simple and straightforward, the slides them selves don&#8217;t have code content; all the code was shown in VS directly (I always found it better to see the code in its really environment to better understand).
The attendees were handful, but [...]]]></description>
			<content:encoded><![CDATA[<p>I have delivered the presentation I talked about in my previous post <a title="what is next" href="http://eashi.wordpress.com/2008/06/21/what-is-next-2/" target="_blank">here</a>.</p>
<p>Actually it was pretty simple and straightforward, the slides them selves don&#8217;t have code content; all the code was shown in VS directly (I always found it better to see the code in its really environment to better understand).<br />
The attendees were handful, but if felt really great when they expressed how excited they were about the whole thing.</p>
<p>You can find the Power Point slides and the sample code in the following zipped file:</p>
<p><a href="http://www.freedrive.com/file/395364,emadnhibernatepresentation.zip">http://www.freedrive.com/file/395364,emadnhibernatepresentation.zip</a></p>
<p>I intend also to share with you the process I went through in order to conclude to the presentation in its final state.</p>
<p>I hope you benefit from it <img src='http://www.emadashi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span style="color:#ff0000;">Update: </span>I did this presentation again with enhanced slides, you can find those slides on <a href="http://eashi.wordpress.com/2008/12/05/introduction-to-nhibernate-session-at-jordev-was-good/">this post</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/index.php/2008/07/my-introduction-to-nhibernate-presentation-and-slides/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Columns&#8217; case-sensitivity in NHibernate</title>
		<link>http://www.emadashi.com/index.php/2008/06/columns-case-sensitivity-in-nhibernate/</link>
		<comments>http://www.emadashi.com/index.php/2008/06/columns-case-sensitivity-in-nhibernate/#comments</comments>
		<pubDate>Sat, 28 Jun 2008 09:29:44 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[NHibernate]]></category>

		<guid isPermaLink="false">http://eashi.wordpress.com/?p=36</guid>
		<description><![CDATA[The other day I wanted to create an HQL query to retrieve data from one object (WorkOrderFault) that has many-to-many relation with another. so I created the following:

ISession session = NHibernateOrmSessionFactory.CurrentNHibernateSession;
IQuery query = session.CreateQuery(
   &#8220;select wof from WorkOrderFault wof join wof.WorkOrderTechnicians as tech where tech.Id = 43334&#8243;);
IList&#60;WorkOrderFault&#62; objects = query.List&#60;WorkOrderFault&#62;();

The query ran successfully, and I got [...]]]></description>
			<content:encoded><![CDATA[<p>The other day I wanted to create an HQL query to retrieve data from one object (WorkOrderFault) that has many-to-many relation with another. so I created the following:</p>
<div style="font-size:11pt;background:#f2ebe3;color:black;font-family:Courier New;">
<p style="margin:0;"><span style="color:#2b91af;">ISession</span> session = <span style="color:#2b91af;">NHibernateOrmSessionFactory</span>.CurrentNHibernateSession;</p>
<p style="margin:0;"><span style="color:#2b91af;">IQuery</span> query = session.CreateQuery(</p>
<p style="margin:0;"><span style="color:#a31515;">   &#8220;select wof from WorkOrderFault wof join wof.WorkOrderTechnicians as tech where tech.Id = 43334&#8243;</span>);</p>
<p style="margin:0;"><span style="color:#2b91af;">IList</span>&lt;<span style="color:#2b91af;">WorkOrderFault</span>&gt; objects = query.List&lt;<span style="color:#2b91af;">WorkOrderFault</span>&gt;();</p>
</div>
<p>The query ran successfully, and I got my results.</p>
<p>Then I wanted to use paging and get certain amount of results starting from certain record, so I added these two lines directly after I instantiated the IQuery object :</p>
<div style="font-size:11pt;background:#f2ebe3;color:black;font-family:Courier New;">
<p style="margin:0;">query.SetMaxResults(10);</p>
<p style="margin:0;">query.SetFirstResult(0);</p>
</div>
<p><!--EndFragment-->Simple and nice, but instead I got the following error:</p>
<blockquote><p>System.Data.SqlClient.SqlException : The column &#8216;FaultId10_&#8217; was specified multiple times for &#8216;query&#8217;.</p></blockquote>
<p>When I checked my mapping file of WorkOrderFault, it had the following lines (I am including the lines we are interested in only):  </p>
<div style="font-size:11pt;background:#f2ebe3;color:black;font-family:Courier New;">
<p style="margin:0;"><span style="color:#0000ff;">&lt;</span><span style="color:#a31515;">property</span><span style="color:#0000ff;"> </span><span style="color:#ff0000;">name</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">FaultId</span>&#8220;<span style="color:#0000ff;"> </span><span style="color:#ff0000;">type</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">System.Int32</span>&#8220;<span style="color:#0000ff;"> </span><span style="color:#ff0000;">column</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">FaultID</span>&#8220;<span style="color:#0000ff;"> </span><span style="color:#ff0000;">not-null</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">false</span>&#8220;<span style="color:#0000ff;"> </span><span style="color:#ff0000;">access</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">field.camelcase-underscore</span>&#8220;<span style="color:#0000ff;">/&gt;</span> </p>
<div style="font-size:11pt;background:#f2ebe3;color:black;font-family:Courier New;">
<p style="margin:0;"><span style="color:#0000ff;">&lt;</span><span style="color:#a31515;">many-to-one</span><span style="color:#0000ff;"> </span><span style="color:#ff0000;">name</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">Fault</span>&#8220;<span style="color:#0000ff;"> </span><span style="color:#ff0000;">class</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">GRP.Maintenance.Domain.Settings.Faults</span>&#8220;<span style="color:#0000ff;"> </span><span style="color:#ff0000;">column</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">FaultId</span>&#8220;</p>
<p style="margin:0;"><span style="color:#0000ff;">                </span><span style="color:#ff0000;">fetch</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">select</span>&#8220;<span style="color:#0000ff;"> </span><span style="color:#ff0000;">insert</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">false</span>&#8220;<span style="color:#0000ff;"> </span><span style="color:#ff0000;">update</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">false</span>&#8220;<span style="color:#0000ff;"> </span><span style="color:#ff0000;">not-found</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">exception</span>&#8220;</p>
<p style="margin:0;"><span style="color:#0000ff;">                </span><span style="color:#ff0000;">access</span><span style="color:#0000ff;">=</span>&#8220;<span style="color:#0000ff;">field.camelcase-underscore</span>&#8220;<span style="color:#0000ff;">/&gt;</span></p>
</div>
</div>
<p><!--EndFragment--><!--EndFragment--></p>
<p>Ok, I know it&#8217;s wrong to map the same column for two different properties (don&#8217;t ask about the reason), but this is the current situation; one property to hold the Id (as an integer), and another property to hold everything. There might be more justifying situations where you want to map two properties to one column, so let&#8217;s assume it&#8217;s ok.</p>
<p>NHibernate is smart enough, when using queries, to query the database field only once; in situations like this NHibernate figures out that there are two properties mapped to one column so it shouldn&#8217;t retrieve it twice (i.e select columnx as x1, columnx as x2&#8230;..).<br />
But not in this case!! It just didnt&#8217; work!</p>
<p>I had no explanation for this, except when I looked closely to the map file, I noticed that the field that was causing the problem &#8220;FaultID&#8221; was written once with capital d (D), and the other with small d (d)!</p>
<p>So as it appears, NHibernate has schizophrenia when it comes to database columns case sensitivity; because SQL itself is case insensitive, but NHibernate code distinguishes between the uppercase and lowercase.</p>
<p>Keep an eye on your map files, try to make them EXACTLY the case like the database is, and unify that through all your map files.</p>
<p><span style="color:#ff0000;"><strong>UPDATE:</strong><br />
</span><span style="color:#000000;">the effect <strong>SetMaxResults()</strong> produced is it wrapped the original SQL sentace with &#8220;<span style="color:#3366ff;">WITH query AS (&#8230;</span>&#8220;, and only then the SQL refused the duplicate columns in the result, hence the SQLException took place.</span></p>
<p><span style="color:#000000;">original SQL: &#8220;<span style="color:#3366ff;">select workorderf0_.RecID as RecID10_, workorderf0_.WorkOrderID&#8230;.</span>&#8220;</span></p>
<p><span style="color:#000000;">SQL after SetMaxResults: &#8220;<span style="color:#3366ff;">WITH query AS (SELECT TOP 10 ROW_NUMBER() OVER (ORDER BY CURRENT_TIMESTAMP) as __hibernate_row_nr__,  workorderf0_.RecID as RecID10_&#8230;</span>&#8220;</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/index.php/2008/06/columns-case-sensitivity-in-nhibernate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Suspecting already used code</title>
		<link>http://www.emadashi.com/index.php/2008/06/suspecting-already-used-code/</link>
		<comments>http://www.emadashi.com/index.php/2008/06/suspecting-already-used-code/#comments</comments>
		<pubDate>Sun, 22 Jun 2008 14:37:12 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[NHibernate]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[software management]]></category>

		<guid isPermaLink="false">http://eashi.wordpress.com/2008/06/22/suspecting-already-used-code/</guid>
		<description><![CDATA[In one of the modules I am working on, my unit tests used to take tremendous amount of time (4 minutes per test  ). I inherited the NHibernate config file from previous NHibernate test module that was used somewhere before!
At the beginning I thought that this is something common when you use NHibernate with rich [...]]]></description>
			<content:encoded><![CDATA[<p>In one of the modules I am working on, my unit tests used to take tremendous amount of time (4 minutes per test  <a href="http://eashi.files.wordpress.com/2008/06/clip-image0011.gif"><img src="http://eashi.files.wordpress.com/2008/06/clip-image001-thumb1.gif" alt="clip_image001" width="18" height="18" /></a>). I inherited the NHibernate config file from previous NHibernate test module that was used somewhere before!</p>
<p>At the beginning I thought that this is something common when you use NHibernate with rich applications, so I didn’t pay much attention, but then it became a real headache.</p>
<p>One of the best colleagues notified me about an important note, which is that I was loading other domain objects from a shared  module (which I didn’t really need).<br />
I checked the NHibernate config file, and removed the mapping line that includes those shared domain objects, and the time shrank to 15 seconds!<a href="http://eashi.files.wordpress.com/2008/06/clip-image0021.gif"><img src="http://eashi.files.wordpress.com/2008/06/clip-image002-thumb1.gif" alt="clip_image002" width="38" height="18" /></a></p>
<p>The moral of the story is that it’s ok to suspect code we inherit from others, other modules or projects, we might not gain anything by doing that, but I am almost sure that we won’t lose!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/index.php/2008/06/suspecting-already-used-code/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What is next</title>
		<link>http://www.emadashi.com/index.php/2008/06/what-is-next-2/</link>
		<comments>http://www.emadashi.com/index.php/2008/06/what-is-next-2/#comments</comments>
		<pubDate>Sat, 21 Jun 2008 13:14:36 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[mindmap]]></category>
		<category><![CDATA[mindomo]]></category>
		<category><![CDATA[NHibernate]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://eashi.wordpress.com/2008/06/21/what-is-next-2/</guid>
		<description><![CDATA[Ok, now I am facing a hard decision; what to do next in my technical life?
In order to reach for better decision, I drew a mind map using this wonderful online tool Mindomo, it’s like  the following:

Those nodes are the things I think I want to study/do most.
I marked the most important ones with the [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, now I am facing a hard decision; what to do next in my technical life?</p>
<p>In order to reach for better decision, I drew a <a href="http://en.wikipedia.org/wiki/Mind_map">mind map</a> using this wonderful online tool <a href="http://www.mindomo.com/">Mindomo</a>, it’s like  the following:</p>
<p><a href="http://eashi.files.wordpress.com/2008/06/mostimportant1.jpg"><img style="border-width:0;" src="http://eashi.files.wordpress.com/2008/06/mostimportant-thumb.jpg" border="0" alt="most important" width="527" height="279" /></a></p>
<p>Those nodes are the things I think I want to study/do most.<br />
I marked the most important ones with the red, yellow and then blue flags. Then marked the ones I need to do most urgently with 1 being the most urgent, 2 less urgent and so on.</p>
<p>We use NHibernate at work, it’s interesting technology and very much talked about recently, knowing it in details helps to be more productive and give my experience real credit for it.<br />
So I thought about doing some session about it with anyone interested about it here at work (we need to refresh out technical enthusiasm),  my plan is to give a brief introduction on it with some samples, then have a longer discussion about it.<br />
I gave it the highest mark of urgency because we usually are pressured at work and we don’t have the luxury to “sharpen our saws” by having such sessions (I know…don’t look at me like that!). so it takes the first place.</p>
<p>Second in  place, studying for the ASP.NET exam of Microsoft (which is something really cared about here), and I better take the exam before it’s too late.</p>
<p>Thy cycle goes on clock-wise, till it reaches this charity web application, then I thought why not use this chance of creating web application to learn the “Javascript in depth”, “Ajax”, and  “jQuery”?!<br />
and this is what I will do by god willing.</p>
<p>If I want to do that I better commit to what i have just posted, so wish me luck…and if you think you can enjoy open source project, contact me and we might do the charity web application together <img src='http://www.emadashi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/index.php/2008/06/what-is-next-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Builds while deployment</title>
		<link>http://www.emadashi.com/index.php/2008/06/builds-while-deployment/</link>
		<comments>http://www.emadashi.com/index.php/2008/06/builds-while-deployment/#comments</comments>
		<pubDate>Sun, 15 Jun 2008 16:20:45 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://eashi.wordpress.com/?p=14</guid>
		<description><![CDATA[In my company, we are working on this big GRP project, lots of pages, projects and workflows, soon we are delivering some modules to the customer.
So today, while trying to test a workflow that we have been working for days, something weird happened; the users of the workflow didn&#8217;t exist anymore!! 
After searching for a while, [...]]]></description>
			<content:encoded><![CDATA[<p style="line-height:14.25pt;"><span style="font-size:10pt;color:#000000;">In my company, we are working on this big GRP project, lots of pages, projects and workflows, soon we are delivering some modules to the customer.<br />
So today, while trying to test a workflow that we have been working for days, something weird happened; the users of the workflow didn&#8217;t exist anymore!! </span></p>
<p style="line-height:14.25pt;"><span style="font-size:10pt;color:#000000;">After searching for a while, it appeared that we are delivering some modules, and real data needed to be deployed on a database especially for deployment, basically the Users table was the primary table! so as simple as it gets&#8230;they created the new database and changed the users we used for the real users (along with the hierarchical structure of the employees).<br />
Ok&#8230;that’s fine for now, but the problem is that they wanted us to work on the new data; the action was that they changed the users on the development database on our development environment!</span></p>
<p style="line-height:14.25pt;"><span style="font-size:10pt;color:#000000;">That took place with late alert, not only that, but I believe that the change should always start from the development database (not the opposite),  notifying all developers of the plan and including them in the change, and only then&#8230;the change is reflected to the deployment database. </span></p>
<p style="line-height:14.25pt;"><span style="font-size:10pt;color:#000000;">The team I work with was halted for more than half a day, trying to reorganize the users with the proper structure to start the workflow again!</span></p>
<p style="line-height:14.25pt;"><span style="font-size:10pt;color:#000000;">How do you handle deployment issues when it comes to real data deployment?</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;"> </span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/index.php/2008/06/builds-while-deployment/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

