<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://geeks.netindonesia.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Basirudin Rachman</title><link>http://geeks.netindonesia.net/blogs/basir/default.aspx</link><description>
</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>(500) Internal Server Error on IronPython</title><link>http://geeks.netindonesia.net/blogs/basir/archive/2009/11/09/500-internal-server-error-on-ironpython.aspx</link><pubDate>Mon, 09 Nov 2009 07:18:05 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:184392</guid><dc:creator>basir</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/basir/rsscomments.aspx?PostID=184392</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/basir/archive/2009/11/09/500-internal-server-error-on-ironpython.aspx#comments</comments><description>&lt;p&gt;I tried to use IronPython to create a SOAP request to a Web Service but got an Internal Server Error.&lt;/p&gt;  &lt;p&gt;The same script has been tested from C# withouth error. Anyone got a clue?&lt;/p&gt;  &lt;p&gt;Following is the ironpython command:&lt;/p&gt;  &lt;pre style="border-bottom:#cecece 1px solid;border-left:#cecece 1px solid;padding-bottom:5px;background-color:#fbfbfb;min-height:40px;padding-left:5px;width:650px;padding-right:5px;overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;padding-top:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  1: IronPython 2.6 (2.6.10920.0) on .NET 2.0.50727.4927
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  2: Type &amp;quot;&lt;span style="color:#8b0000;"&gt;help&lt;/span&gt;&amp;quot;, &amp;quot;&lt;span style="color:#8b0000;"&gt;copyright&lt;/span&gt;&amp;quot;, &amp;quot;&lt;span style="color:#8b0000;"&gt;credits&lt;/span&gt;&amp;quot; or &amp;quot;&lt;span style="color:#8b0000;"&gt;license&lt;/span&gt;&amp;quot; &lt;span style="color:#0000ff;"&gt;for&lt;/span&gt; more information.
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  3: &amp;gt;&amp;gt;&amp;gt; from System.Net import *
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  4: &amp;gt;&amp;gt;&amp;gt; from System.Text import *
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  5: &amp;gt;&amp;gt;&amp;gt; from System.IO import *
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  6: &amp;gt;&amp;gt;&amp;gt; query = Encoding.UTF8.GetBytes(&amp;#39;&amp;#39;&amp;#39;&amp;lt;?xml version=&amp;quot;&lt;span style="color:#8b0000;"&gt;1.0&lt;/span&gt;&amp;quot; encoding=&amp;quot;&lt;span style="color:#8b0000;"&gt;utf-8&lt;/span&gt;&amp;quot;?&amp;gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  7: ... &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&lt;span style="color:#8b0000;"&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/span&gt;&amp;quot; xmlns
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  8: :xsd=&amp;quot;&lt;span style="color:#8b0000;"&gt;http://www.w3.org/2001/XMLSchema&lt;/span&gt;&amp;quot; xmlns:soapenc=&amp;quot;&lt;span style="color:#8b0000;"&gt;http://www.w3.org/2003/05
&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  9: /soap-encoding&amp;quot;&lt;span style="color:#8b0000;"&gt; xmlns:tns=&lt;/span&gt;&amp;quot;http:&lt;span style="color:#008000;"&gt;//www.witsml.org/wsdl/120&amp;quot; xmlns:types=&amp;quot;http://w&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 10: ww.witsml.org/wsdl
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 11: ...   &amp;lt;soap12:Body soap12:encodingStyle=&amp;quot;&lt;span style="color:#8b0000;"&gt;http://www.w3.org/2003/05/soap-encoding
&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 12: &amp;quot;&lt;span style="color:#8b0000;"&gt;&amp;gt;
&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 13: ...     &amp;lt;q3:WMLS_GetVersion xmlns:q3=&amp;quot;&lt;span style="color:#8b0000;"&gt;http://www.witsml.org/message/120&lt;/span&gt;&amp;quot; /&amp;gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 14: ...   &amp;lt;/soap12:Body&amp;gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 15: ... &amp;lt;/soap12:Envelope&amp;gt;&amp;#39;&amp;#39;&amp;#39;)
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 16: &amp;gt;&amp;gt;&amp;gt; req = WebRequest.Create(&amp;quot;&lt;span style="color:#8b0000;"&gt;http://localhost:81/Petrolink.Powerstore.Webservice
&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 17: /wmls.asmx&amp;quot;&lt;span style="color:#8b0000;"&gt;)
&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 18: &amp;gt;&amp;gt;&amp;gt; req.Headers.Add(&amp;quot;&lt;span style="color:#8b0000;"&gt;SOAPAction&lt;/span&gt;&amp;quot;, &amp;quot;&lt;span style="color:#8b0000;"&gt;\&amp;quot;\&amp;quot;&lt;/span&gt;&amp;quot;)
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 19: &amp;gt;&amp;gt;&amp;gt; req.Credentials = NetworkCredential(&amp;quot;&lt;span style="color:#8b0000;"&gt;fred&lt;/span&gt;&amp;quot;, &amp;quot;&lt;span style="color:#8b0000;"&gt;derf&lt;/span&gt;&amp;quot;);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 20: &amp;gt;&amp;gt;&amp;gt; req.ContentType = &amp;quot;&lt;span style="color:#8b0000;"&gt;application/soap+xml; charset=utf-8&lt;/span&gt;&amp;quot;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 21: &amp;gt;&amp;gt;&amp;gt; req.Accept = &amp;quot;&lt;span style="color:#8b0000;"&gt;text/xml&lt;/span&gt;&amp;quot;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 22: &amp;gt;&amp;gt;&amp;gt; req.Method = &amp;quot;&lt;span style="color:#8b0000;"&gt;POST&lt;/span&gt;&amp;quot;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 23: &amp;gt;&amp;gt;&amp;gt; requestStream = req.GetRequestStream()
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 24: &amp;gt;&amp;gt;&amp;gt; requestStream.Write(query,0,query.Length)
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 25: &amp;gt;&amp;gt;&amp;gt; requestStream.Close()
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 26: &amp;gt;&amp;gt;&amp;gt; response = req.GetResponse()
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 27: Traceback (most recent call last):
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 28:   File &amp;quot;&lt;span style="color:#8b0000;"&gt;&amp;lt;stdin&amp;gt;&lt;/span&gt;&amp;quot;, line 1, &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; &amp;lt;module&amp;gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 29: SystemError: The remote server returned an error: (500) Internal Server Error.
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 30: &lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;And below is the C# code with the screenshot of the result:&lt;/p&gt;

&lt;pre style="border-bottom:#cecece 1px solid;border-left:#cecece 1px solid;padding-bottom:5px;background-color:#fbfbfb;min-height:40px;padding-left:5px;width:650px;padding-right:5px;overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;padding-top:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  1: &lt;span style="color:#0000ff;"&gt;byte&lt;/span&gt;[] query = Encoding.UTF8.GetBytes(&amp;quot;&lt;span style="color:#8b0000;"&gt;&amp;lt;?xml version=\&amp;quot;1.0\&amp;quot; encoding=\&amp;quot;utf-8\&amp;quot;?&amp;gt;&amp;lt;soap12:Envelope xmlns:xsi=\&amp;quot;http://www.w3.org/2001/XMLSchema-instance\&amp;quot; xmlns:xsd=\&amp;quot;http://www.w3.org/2001/XMLSchema\&amp;quot; xmlns:soapenc=\&amp;quot;http://www.w3.org/2003/05/soap-encoding\&amp;quot; xmlns:tns=\&amp;quot;http://www.witsml.org/wsdl/120\&amp;quot; xmlns:types=\&amp;quot;http://www.witsml.org/wsdl/120/encodedTypes\&amp;quot; xmlns:rpc=\&amp;quot;http://www.w3.org/2003/05/soap-rpc\&amp;quot; xmlns:soap12=\&amp;quot;http://www.w3.org/2003/05/soap-envelope\&amp;quot;&amp;gt;&amp;lt;soap12:Body soap12:encodingStyle=\&amp;quot;http://www.w3.org/2003/05/soap-encoding\&amp;quot;&amp;gt;&amp;lt;q3:WMLS_GetVersion xmlns:q3=\&amp;quot;http://www.witsml.org/message/120\&amp;quot; /&amp;gt;&amp;lt;/soap12:Body&amp;gt;&amp;lt;/soap12:Envelope&amp;gt;&lt;/span&gt;&amp;quot;);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  2: 
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  3: HttpWebRequest req = (HttpWebRequest)WebRequest.Create(&amp;quot;&lt;span style="color:#8b0000;"&gt;http://localhost:81/Petrolink.Powerstore.Webservice/wmls.asmx&lt;/span&gt;&amp;quot;);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  4: &lt;span style="color:#008000;"&gt;// if SOAPAction header is required, add it here...&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  5: req.Headers.Add(&amp;quot;&lt;span style="color:#8b0000;"&gt;SOAPAction&lt;/span&gt;&amp;quot;, &amp;quot;&lt;span style="color:#8b0000;"&gt;\&amp;quot;\&amp;quot;&lt;/span&gt;&amp;quot;);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  6: 
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  7: req.Credentials = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; NetworkCredential(&amp;quot;&lt;span style="color:#8b0000;"&gt;fred&lt;/span&gt;&amp;quot;, &amp;quot;&lt;span style="color:#8b0000;"&gt;derf&lt;/span&gt;&amp;quot;);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  8: req.ContentType = &amp;quot;&lt;span style="color:#8b0000;"&gt;application/soap+xml; charset=utf-8&lt;/span&gt;&amp;quot;;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  9: req.Accept = &amp;quot;&lt;span style="color:#8b0000;"&gt;text/xml&lt;/span&gt;&amp;quot;;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 10: req.Method = &amp;quot;&lt;span style="color:#8b0000;"&gt;POST&lt;/span&gt;&amp;quot;;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 11: 
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 12: Stream requestStream = req.GetRequestStream();
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 13: requestStream.Write(query,0,query.Length);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 14: requestStream.Close();
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 15: WebResponse response = req.GetResponse();
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 16: 
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 17: StreamReader sr = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; StreamReader(response.GetResponseStream());
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 18: 
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 19: Console.WriteLine(sr.ReadToEnd());&lt;/pre&gt;&lt;/pre&gt;


.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, &amp;quot;Courier New&amp;quot;, courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }

&lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/basir/image_54DAA3A4.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/basir/image_thumb_4B8E4296.png" width="244" height="125" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/basir/archive/2009/11/09/500-internal-server-error-on-ironpython.aspx&amp;amp;subject=(500) Internal Server Error on IronPython" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/basir/archive/2009/11/09/500-internal-server-error-on-ironpython.aspx&amp;amp;t=(500)+Internal+Server+Error+on+IronPython" target="_blank" title="Submit (500) Internal Server Error on IronPython to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/basir/archive/2009/11/09/500-internal-server-error-on-ironpython.aspx&amp;amp;title=(500)+Internal+Server+Error+on+IronPython" target="_blank" title="Submit (500) Internal Server Error on IronPython to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/basir/archive/2009/11/09/500-internal-server-error-on-ironpython.aspx&amp;amp;phase=2" target="_blank" title="Submit (500) Internal Server Error on IronPython to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/basir/archive/2009/11/09/500-internal-server-error-on-ironpython.aspx&amp;amp;title=(500)+Internal+Server+Error+on+IronPython" target="_blank" title="Add (500) Internal Server Error on IronPython to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=184392" width="1" height="1"&gt;</description></item><item><title>Problem With Port 80 – Skype Took It</title><link>http://geeks.netindonesia.net/blogs/basir/archive/2009/11/05/problem-with-port-80-skype-took-it.aspx</link><pubDate>Thu, 05 Nov 2009 07:08:20 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:184348</guid><dc:creator>basir</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/basir/rsscomments.aspx?PostID=184348</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/basir/archive/2009/11/05/problem-with-port-80-skype-took-it.aspx#comments</comments><description>&lt;p&gt;I tried to start my default web site from IIS Manager this morning, but it gave me an error – inform that the port 80 is already used.&lt;/p&gt;  &lt;p&gt;Investigation using netstat –ao command, I got this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/basir/image_44DC663E.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/basir/image_thumb_08241C07.png" width="244" height="31" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Lookup to Task List, got the application which use the port 80. It was Skype. Does anyone know what does Skype use port 80 for?&lt;/p&gt;  &lt;p&gt;No worry, you don’t have to tell me now because I’m going back to the code :)&lt;/p&gt;  &lt;p&gt;See this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/basir/image_7EE7E0C5.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/basir/image_thumb_1C79BBC5.png" width="193" height="82" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Happily ever after…&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/basir/archive/2009/11/05/problem-with-port-80-skype-took-it.aspx&amp;amp;subject=Problem With Port 80 – Skype Took It" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/basir/archive/2009/11/05/problem-with-port-80-skype-took-it.aspx&amp;amp;t=Problem+With+Port+80+%e2%80%93+Skype+Took+It" target="_blank" title="Submit Problem With Port 80 – Skype Took It to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/basir/archive/2009/11/05/problem-with-port-80-skype-took-it.aspx&amp;amp;title=Problem+With+Port+80+%e2%80%93+Skype+Took+It" target="_blank" title="Submit Problem With Port 80 – Skype Took It to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/basir/archive/2009/11/05/problem-with-port-80-skype-took-it.aspx&amp;amp;phase=2" target="_blank" title="Submit Problem With Port 80 – Skype Took It to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/basir/archive/2009/11/05/problem-with-port-80-skype-took-it.aspx&amp;amp;title=Problem+With+Port+80+%e2%80%93+Skype+Took+It" target="_blank" title="Add Problem With Port 80 – Skype Took It to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=184348" width="1" height="1"&gt;</description></item><item><title>Silverlight Week</title><link>http://geeks.netindonesia.net/blogs/basir/archive/2009/11/02/silverlight-week.aspx</link><pubDate>Mon, 02 Nov 2009 15:27:35 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:184291</guid><dc:creator>basir</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/basir/rsscomments.aspx?PostID=184291</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/basir/archive/2009/11/02/silverlight-week.aspx#comments</comments><description>&lt;p&gt;It was on two weeks a go I got invitation to talk and discuss about Silverlight. &lt;/p&gt;  &lt;p&gt;The first one was in Computer Science IPB, .NET Community arranged by Ecko (one of MSP from IPB). Since there’s some new students in the audiences, so I tried to explain from the beginning, introduction to .NET Framework, then went to Silverlight things – of course this also an introduction.&lt;/p&gt;  &lt;p&gt;Following pictures taken from the event (not many students came to the event, since they have some assignment from the lecturer):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/basir/Class1a_1C7C1B9B.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="Class 1 - a" border="0" alt="Class 1 - a" src="http://geeks.netindonesia.net/blogs/basir/Class1a_thumb_5365D407.jpg" width="244" height="184" /&gt;&lt;/a&gt;&amp;#160; &lt;a href="http://geeks.netindonesia.net/blogs/basir/Class1_61E0D02C.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="Class 1" border="0" alt="Class 1" src="http://geeks.netindonesia.net/blogs/basir/Class1_thumb_15D523E6.jpg" width="244" height="184" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The 2nd event was conducted in the next Sunday&amp;#160; (Oct 18th 2009). This event was conducted by Informatic Diploma Department of IPB. I did not expected this event as formal as I though, but it was. There was speech from the lecturer, head of student group and then me. &lt;/p&gt;  &lt;p&gt;Following pictures taken from the event:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/basir/Class2a_5315D8AD.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="Class 2 - a" border="0" alt="Class 2 - a" src="http://geeks.netindonesia.net/blogs/basir/Class2a_thumb_3F78533F.jpg" width="244" height="184" /&gt;&lt;/a&gt;&amp;#160; &lt;a href="http://geeks.netindonesia.net/blogs/basir/Class2_23871E47.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="Class 2" border="0" alt="Class 2" src="http://geeks.netindonesia.net/blogs/basir/Class2_thumb_3DA73BD1.jpg" width="244" height="184" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/basir/archive/2009/11/02/silverlight-week.aspx&amp;amp;subject=Silverlight Week" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/basir/archive/2009/11/02/silverlight-week.aspx&amp;amp;t=Silverlight+Week" target="_blank" title="Submit Silverlight Week to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/basir/archive/2009/11/02/silverlight-week.aspx&amp;amp;title=Silverlight+Week" target="_blank" title="Submit Silverlight Week to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/basir/archive/2009/11/02/silverlight-week.aspx&amp;amp;phase=2" target="_blank" title="Submit Silverlight Week to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/basir/archive/2009/11/02/silverlight-week.aspx&amp;amp;title=Silverlight+Week" target="_blank" title="Add Silverlight Week to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=184291" width="1" height="1"&gt;</description></item><item><title>Petrolink Is (Still) Hiring</title><link>http://geeks.netindonesia.net/blogs/basir/archive/2009/11/02/petrolink-is-still-hiring.aspx</link><pubDate>Mon, 02 Nov 2009 05:47:47 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:184285</guid><dc:creator>basir</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/basir/rsscomments.aspx?PostID=184285</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/basir/archive/2009/11/02/petrolink-is-still-hiring.aspx#comments</comments><description>&lt;p&gt;If you are a good .NET Developer with following criteria:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Experience in C# for 3 years or more.&lt;/li&gt;    &lt;li&gt;Love to code any kind of application – web, network, communication, messaging, real time data transfer, etc.&lt;/li&gt;    &lt;li&gt;Good Attitude (Done is the target).&lt;/li&gt;    &lt;li&gt;Able to work together in a team or alone.&lt;/li&gt;    &lt;li&gt;It would be an additional value if you have experience with WPF/WCF.&lt;/li&gt;    &lt;li&gt;Graduated from University with Background in Computer Science or Mathematics or Physics or Electrical Engineering.&lt;/li&gt;    &lt;li&gt;Interesting in create application for Oil and Gas industry and standard such as &lt;a href="http://en.wikipedia.org/wiki/Wellsite_information_transfer_standard_markup_language"&gt;WITSML&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/PRODML"&gt;PRODML&lt;/a&gt;.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If you are interested to join us, please send your cv to &lt;a href="mailto:jakarta.vacancies@petrolink.com"&gt;jakarta.vacancies@petrolink.com&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Petrolink is a well established information and communications technology service company specializing in the oil and gas exploration and production sector. If you interest to know more about Petrolink, pelase visit our website: &lt;a href="http://www.petrolink.com"&gt;http://www.petrolink.com&lt;/a&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/basir/archive/2009/11/02/petrolink-is-still-hiring.aspx&amp;amp;subject=Petrolink Is (Still) Hiring" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/basir/archive/2009/11/02/petrolink-is-still-hiring.aspx&amp;amp;t=Petrolink+Is+(Still)+Hiring" target="_blank" title="Submit Petrolink Is (Still) Hiring to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/basir/archive/2009/11/02/petrolink-is-still-hiring.aspx&amp;amp;title=Petrolink+Is+(Still)+Hiring" target="_blank" title="Submit Petrolink Is (Still) Hiring to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/basir/archive/2009/11/02/petrolink-is-still-hiring.aspx&amp;amp;phase=2" target="_blank" title="Submit Petrolink Is (Still) Hiring to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/basir/archive/2009/11/02/petrolink-is-still-hiring.aspx&amp;amp;title=Petrolink+Is+(Still)+Hiring" target="_blank" title="Add Petrolink Is (Still) Hiring to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=184285" width="1" height="1"&gt;</description></item><item><title>Never Underestimate readme.txt</title><link>http://geeks.netindonesia.net/blogs/basir/archive/2009/11/01/never-underestimate-readme-txt.aspx</link><pubDate>Sun, 01 Nov 2009 15:05:32 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:184277</guid><dc:creator>basir</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/basir/rsscomments.aspx?PostID=184277</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/basir/archive/2009/11/01/never-underestimate-readme-txt.aspx#comments</comments><description>&lt;p&gt;Have you been in the situation where you got an error that you have previously encountered?&lt;/p&gt;  &lt;p&gt;I got this error after installing Oracle Data Access Component (ODAC) 11.1.0.6.21 in my machine (Windows 7 Ultimate x64):&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Unable to load DLL &amp;#39;OraOps11w.dll&amp;#39;: The specified module could not be found. (Exception from HRESULT: 0x8007007E)&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;What have I done? Let’s figure out what steps that drove me to this situation:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;I opened the “readme.txt”, it just to remind me the command for installation, and got this: &lt;em&gt;install.bat odp.net20 c:\oracle odac. &lt;/em&gt;Yes, I only need this component to be used by at least .NET 2.0. &lt;/li&gt;    &lt;li&gt;Finish – I thought that was enough. And then running the application then got the error. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Hmm, figure out, I remember that I need to put the binary path of C:\oracle into environment system path, then I put the C:\oracle\bin. Run the application? Still got the error.&lt;/p&gt;  &lt;p&gt;Ok, now, I’m going to read each item in readme.txt carefully, and then in the point 4 in that readme.txt file I got this: &lt;em&gt;Add the install directory and install directory&amp;#39;s bin subdirectory… add c:\oracle and c:\oracle\bin to the system PATH. &lt;/em&gt;Yes, you’re right I forgot to put c:\oracle in the system PATH.&lt;/p&gt;  &lt;p&gt;So, never underestimate readme.txt, at least for my self :)&lt;/p&gt;  &lt;p&gt;Now I got my application log:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;2009-11-01 17:50:11.096, GET, P,………. &lt;/em&gt;&lt;/strong&gt;Do you know what does the caracter P mean? Yes it means the applicatin runs smoothly (PASSED).&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/basir/archive/2009/11/01/never-underestimate-readme-txt.aspx&amp;amp;subject=Never Underestimate readme.txt" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/basir/archive/2009/11/01/never-underestimate-readme-txt.aspx&amp;amp;t=Never+Underestimate+readme.txt" target="_blank" title="Submit Never Underestimate readme.txt to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/basir/archive/2009/11/01/never-underestimate-readme-txt.aspx&amp;amp;title=Never+Underestimate+readme.txt" target="_blank" title="Submit Never Underestimate readme.txt to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/basir/archive/2009/11/01/never-underestimate-readme-txt.aspx&amp;amp;phase=2" target="_blank" title="Submit Never Underestimate readme.txt to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/basir/archive/2009/11/01/never-underestimate-readme-txt.aspx&amp;amp;title=Never+Underestimate+readme.txt" target="_blank" title="Add Never Underestimate readme.txt to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=184277" width="1" height="1"&gt;</description></item><item><title>Windows XP Mode</title><link>http://geeks.netindonesia.net/blogs/basir/archive/2009/11/01/windows-xp-mode.aspx</link><pubDate>Sun, 01 Nov 2009 07:50:56 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:184273</guid><dc:creator>basir</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/basir/rsscomments.aspx?PostID=184273</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/basir/archive/2009/11/01/windows-xp-mode.aspx#comments</comments><description>&lt;p&gt;I’m installing Windows XP Mode now. &lt;/p&gt;  &lt;p&gt;It is required because I need to instal Oracle 10g because it cannot be installed on Windows 7.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/basir/image_33791CF0.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/basir/image_thumb_591ED1EC.png" width="244" height="184" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Automatically detect Active Drives:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/basir/image_7626269A.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/basir/image_thumb_70A79029.png" width="244" height="134" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Instal AVG Anti Virus:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/basir/image_07163498.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/basir/image_thumb_7D5DA094.png" width="244" height="167" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Instal Oracle 10g:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/basir/image_26A4C2C6.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/basir/image_thumb_515CDB3E.png" width="244" height="167" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/basir/image_3CB62A21.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/basir/image_thumb_1078E196.png" width="244" height="167" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/basir/archive/2009/11/01/windows-xp-mode.aspx&amp;amp;subject=Windows XP Mode" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/basir/archive/2009/11/01/windows-xp-mode.aspx&amp;amp;t=Windows+XP+Mode" target="_blank" title="Submit Windows XP Mode to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/basir/archive/2009/11/01/windows-xp-mode.aspx&amp;amp;title=Windows+XP+Mode" target="_blank" title="Submit Windows XP Mode to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/basir/archive/2009/11/01/windows-xp-mode.aspx&amp;amp;phase=2" target="_blank" title="Submit Windows XP Mode to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/basir/archive/2009/11/01/windows-xp-mode.aspx&amp;amp;title=Windows+XP+Mode" target="_blank" title="Add Windows XP Mode to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=184273" width="1" height="1"&gt;</description></item><item><title>Upgrade Vista Ultimate To Windows 7 Ultimate</title><link>http://geeks.netindonesia.net/blogs/basir/archive/2009/08/08/upgrade-vista-ultimate-to-windows-7-ultimate.aspx</link><pubDate>Sat, 08 Aug 2009 03:42:47 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:183041</guid><dc:creator>basir</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/basir/rsscomments.aspx?PostID=183041</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/basir/archive/2009/08/08/upgrade-vista-ultimate-to-windows-7-ultimate.aspx#comments</comments><description>&lt;p align="justify"&gt;Alhamdulillah, after waiting about more than an hour I was successfully upgrade my Dell XPS M1330 machine from Vista Ultimate to Windows 7 Ultimate 32 bit.&lt;/p&gt;  &lt;p align="justify"&gt;I’ve got no errors when the upgrade process running, only a message in the beginning of process that inform me that some applications will not run on Windows 7 after upgrade from Vista (i.e. SQL Server Management Studio). As l recalled, only three applications that will not run.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://geeks.netindonesia.net/blogs/basir/win7_7C1D9655.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="win7" border="0" alt="win7" src="http://geeks.netindonesia.net/blogs/basir/win7_thumb_044DA7EE.png" width="244" height="154" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;My XPS provides finger print reader to log in to system, and it works fine.&lt;/p&gt;  &lt;p align="justify"&gt;Next, first time first, check following applications:&lt;/p&gt;  &lt;h3 align="justify"&gt;VS 2008&lt;/h3&gt;  &lt;p align="justify"&gt;This should be run, just wanna make sure.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://geeks.netindonesia.net/blogs/basir/vssc_3831D5DA.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="vssc" border="0" alt="vssc" src="http://geeks.netindonesia.net/blogs/basir/vssc_thumb_27F5E814.png" width="244" height="207" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h3 align="justify"&gt;SQL Server Management Studio&lt;/h3&gt;  &lt;p align="justify"&gt;When the upgrading process runs, this application is included as one application that need to be uninstalled first. However, i did not uninstall it and will see what happen when I try to open it:&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://geeks.netindonesia.net/blogs/basir/sqlerr_4D4FB5B5.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="sqlerr" border="0" alt="sqlerr" src="http://geeks.netindonesia.net/blogs/basir/sqlerr_thumb_71949A37.png" width="244" height="84" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;I got above an error message when trying to open SQL Server Management Studio. Ok will do something to make it run (hmm, probably need to reinstall it again, don’t know yet).&lt;/p&gt;  &lt;h3 align="justify"&gt;OpenOffice Writer&lt;/h3&gt;  &lt;p align="justify"&gt;I got this runs well too:&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://geeks.netindonesia.net/blogs/basir/ooss_71744E9D.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="ooss" border="0" alt="ooss" src="http://geeks.netindonesia.net/blogs/basir/ooss_thumb_348FA6FE.png" width="243" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h3 align="justify"&gt;Oracle Services&lt;/h3&gt;  &lt;p align="justify"&gt;Oracle services: both the listener and the service looks fine, all have been up and started:&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://geeks.netindonesia.net/blogs/basir/orcss_40817165.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="orcss" border="0" alt="orcss" src="http://geeks.netindonesia.net/blogs/basir/orcss_thumb_04E162A5.png" width="244" height="20" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;Others application such as my internal office messaging system created using Java looks good on Windows 7. &lt;/p&gt;  &lt;p align="justify"&gt;So, no reason not to upgrade my Vista to Windows 7. Thanks to &lt;a href="http://wss-id.org/blogs/narenda/"&gt;Naren&lt;/a&gt; for the iso, so I don’t have to download from MSDN.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/basir/archive/2009/08/08/upgrade-vista-ultimate-to-windows-7-ultimate.aspx&amp;amp;subject=Upgrade Vista Ultimate To Windows 7 Ultimate" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/basir/archive/2009/08/08/upgrade-vista-ultimate-to-windows-7-ultimate.aspx&amp;amp;t=Upgrade+Vista+Ultimate+To+Windows+7+Ultimate" target="_blank" title="Submit Upgrade Vista Ultimate To Windows 7 Ultimate to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/basir/archive/2009/08/08/upgrade-vista-ultimate-to-windows-7-ultimate.aspx&amp;amp;title=Upgrade+Vista+Ultimate+To+Windows+7+Ultimate" target="_blank" title="Submit Upgrade Vista Ultimate To Windows 7 Ultimate to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/basir/archive/2009/08/08/upgrade-vista-ultimate-to-windows-7-ultimate.aspx&amp;amp;phase=2" target="_blank" title="Submit Upgrade Vista Ultimate To Windows 7 Ultimate to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/basir/archive/2009/08/08/upgrade-vista-ultimate-to-windows-7-ultimate.aspx&amp;amp;title=Upgrade+Vista+Ultimate+To+Windows+7+Ultimate" target="_blank" title="Add Upgrade Vista Ultimate To Windows 7 Ultimate to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=183041" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/basir/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://geeks.netindonesia.net/blogs/basir/archive/tags/Upgrade/default.aspx">Upgrade</category></item><item><title>Caching Strategy for Collection Object – Part I</title><link>http://geeks.netindonesia.net/blogs/basir/archive/2009/07/23/caching-strategy-for-collection-object-part-i.aspx</link><pubDate>Thu, 23 Jul 2009 13:45:42 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:182727</guid><dc:creator>basir</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/basir/rsscomments.aspx?PostID=182727</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/basir/archive/2009/07/23/caching-strategy-for-collection-object-part-i.aspx#comments</comments><description>&lt;h3&gt;Background&lt;/h3&gt;  &lt;p&gt;In a cache management pattern, usually the object that stored in the cache will exactly same with the object returned from the real data store.&lt;/p&gt;  &lt;p&gt;Following diagram shows the working of cache:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/basir/CacheRepositoryAgentDiagram_55FE7388.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="CacheRepositoryAgentDiagram" border="0" alt="CacheRepositoryAgentDiagram" src="http://geeks.netindonesia.net/blogs/basir/CacheRepositoryAgentDiagram_thumb_467B61B9.png" width="244" height="225" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;As shown in diagram above, the cache repository agent (CRA) will responsible to return object requested by the client.&lt;/p&gt;  &lt;p&gt;1. Client request Object.&lt;/p&gt;  &lt;p&gt;2. CRA will check to the cache, if the object available, than return it back to client.&lt;/p&gt;  &lt;p&gt;3. If not exist in the cache, get the object from repository (REP) (i.e. database repository), return to the client and asynchronously add it to the cache.&lt;/p&gt;  &lt;h3&gt;Problem&lt;/h3&gt;  &lt;p&gt;With the following condition, some problems might be appeared when the usage of CRA and Cache is come after the system running well in the model of Client &amp;lt;-&amp;gt; REP. The problems are:&lt;/p&gt;  &lt;p&gt;1. Object returned by REP is not the one that expected by CRA to be stored in the Cache.&lt;/p&gt;  &lt;p&gt;2. More precisely, if the CRA expects object which contains a raw data structure, but the REP return an object which contains processed data structure.&lt;/p&gt;  &lt;p&gt;Solving the problems above is actually the objective of this article. We will assume the object used by REP and CRA is not a simple object such like a Person object which can be retrieved using a key/ID (REP.GetByID(id) or CRA.GetByID(id)), but the object that contains collection of item, that act like a table in database but stored in the Cache (we call it CollectionObjectInfo). Following diagram shows the sample structure of CollectionObjectInfo:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/basir/CollectionObjectInfo_4B7D9F68.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="CollectionObjectInfo" border="0" alt="CollectionObjectInfo" src="http://geeks.netindonesia.net/blogs/basir/CollectionObjectInfo_thumb_034FE38C.png" width="244" height="221" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;While the object that returned by REP is already in product format, i.e.: an xml string produced from the combining subset data of the DataList:&lt;/p&gt;  &lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#800000;"&gt;xml&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;version&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;1.0&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;encoding&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;utf-8&amp;quot;&lt;/span&gt;?&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;ObjectInfo&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;   &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;data&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;v11, v12, v1n&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;data&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;   &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;data&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;vm1, vm2, vmn&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;data&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;ObjectInfo&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/basir/archive/2009/07/23/caching-strategy-for-collection-object-part-i.aspx&amp;amp;subject=Caching Strategy for Collection Object – Part I" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/basir/archive/2009/07/23/caching-strategy-for-collection-object-part-i.aspx&amp;amp;t=Caching+Strategy+for+Collection+Object+%e2%80%93+Part+I" target="_blank" title="Submit Caching Strategy for Collection Object – Part I to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/basir/archive/2009/07/23/caching-strategy-for-collection-object-part-i.aspx&amp;amp;title=Caching+Strategy+for+Collection+Object+%e2%80%93+Part+I" target="_blank" title="Submit Caching Strategy for Collection Object – Part I to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/basir/archive/2009/07/23/caching-strategy-for-collection-object-part-i.aspx&amp;amp;phase=2" target="_blank" title="Submit Caching Strategy for Collection Object – Part I to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/basir/archive/2009/07/23/caching-strategy-for-collection-object-part-i.aspx&amp;amp;title=Caching+Strategy+for+Collection+Object+%e2%80%93+Part+I" target="_blank" title="Add Caching Strategy for Collection Object – Part I to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=182727" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/basir/archive/tags/Problem/default.aspx">Problem</category><category domain="http://geeks.netindonesia.net/blogs/basir/archive/tags/Caching+Strategy/default.aspx">Caching Strategy</category><category domain="http://geeks.netindonesia.net/blogs/basir/archive/tags/Cache/default.aspx">Cache</category></item><item><title>Call Means Enable Me</title><link>http://geeks.netindonesia.net/blogs/basir/archive/2009/07/21/call-means-enable-me.aspx</link><pubDate>Tue, 21 Jul 2009 06:08:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:182659</guid><dc:creator>basir</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/basir/rsscomments.aspx?PostID=182659</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/basir/archive/2009/07/21/call-means-enable-me.aspx#comments</comments><description>&lt;p style="text-align:justify;"&gt;Just realize and smell something bad in my code. Call a method with passing boolean if the logic inside the method is enable and check it inside that method. &lt;/p&gt;  &lt;p style="text-align:justify;"&gt;Let me show one of a method that uses a boolean parameter. &lt;/p&gt;  &lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; T Get(&lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; isEnable, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; key)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (isEnable)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;     {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt;         &lt;span style="color:#008000;"&gt;//Main Logic.&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt;     }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt;   7:&lt;/span&gt;&amp;#160; &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum8"&gt;   8:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;default&lt;/span&gt;(T);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum9"&gt;   9:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p style="text-align:justify;"&gt;The method above is a member of some kind of a façade class that try to make our life simpler when need logic steps inside the method. &lt;/p&gt;

&lt;p style="text-align:justify;"&gt;The caller itself will pass the boolean parameter based on configuration related with their context. So let see two callers use this façade: &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;div style="text-align:justify;"&gt;In first caller class, let say class RepositoryOne&amp;lt;T&amp;gt;: &lt;/div&gt;

    &lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
      &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; ObjectInfo&amp;lt;T&amp;gt; getFromFacade(Guid objectID)&lt;/pre&gt;


        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;


        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; FacadeClass&amp;lt;ObjectInfo&amp;lt;T&amp;gt;&amp;gt;.Get(IS_ENABLE, objectID.ToString());&lt;/pre&gt;


        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
    &lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;pre&gt;In the other class, let say class RepositoryTwo: &lt;/pre&gt;

    &lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
      &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; IPrincipal Find(IPrincipal sample)&lt;/pre&gt;


        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;


        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;     StoreIdentity sampleIdentity = (StoreIdentity)sample.Identity;&lt;/pre&gt;


        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;     IPrincipal principal = (IPrincipal) FacadeClass &amp;lt;StorePrincipal&amp;gt;.Get(IS_ENABLE, sampleIdentity.Name);&lt;/pre&gt;


        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt;     &lt;/pre&gt;


        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt;     &lt;span style="color:#008000;"&gt;//Main Logic. &lt;/span&gt;&lt;/pre&gt;


        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt;   7:&lt;/span&gt;     &lt;/pre&gt;


        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum8"&gt;   8:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; principal;&lt;/pre&gt;


        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum9"&gt;   9:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
    &lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Btw, where is &lt;span style="color:red;"&gt;&lt;strong&gt;IS_ENABLE&lt;/strong&gt;&lt;/span&gt; come from? &lt;span style="color:red;"&gt;&lt;strong&gt;IS_ENABLE&lt;/strong&gt;&lt;/span&gt; Is a readonly variable in class level which the value set and got from a config value. &lt;/p&gt;

&lt;p style="text-align:justify;"&gt;Ok, back again, the objective is to make the usage of &lt;span style="color:red;"&gt;&lt;strong&gt;IS_ENABLE&lt;/strong&gt;&lt;/span&gt; to be as efficient as possible, even though all the codes above will run smoothly without any warning or error message. Fortunately we&amp;#39;re the master, who can smell something not good appears in front of our face. Let me make it clear, to make the usage of &lt;span style="color:red;"&gt;&lt;strong&gt;IS_ENABLE&lt;/strong&gt;&lt;/span&gt; to be as efficient as possible is never pass it to the façade. Let the logic be handled by the caller. &lt;/p&gt;

&lt;h1&gt;The Caller &lt;/h1&gt;

&lt;p style="text-align:justify;"&gt;Now, let me define the caller. The caller is any class that needs the façade. In the current case all the callers are some kind of Repository that need to retrieve something from the façade. And also, in the current case the all callers are inherited from one class, let say RepositoryBase&amp;lt;T&amp;gt; class. &lt;/p&gt;

&lt;p style="text-align:justify;"&gt;In this case also, yes, the all callers should have a configuration to be able to use the façade. However, in the other case or other class, yes the other class can use the façade without has to be bothered with any of configuration, just call it and get from it. &lt;/p&gt;

&lt;p style="text-align:justify;"&gt;Now, it makes sense that what I wrote has something wrong in it. Please see conditions below: &lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;div style="text-align:justify;"&gt;One or more classes should have config value to determine whether they&amp;#39;ll be able to call the façade or not. &lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;div style="text-align:justify;"&gt;Other classes don&amp;#39;t have to worry with this determination. &lt;/div&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;Solution &lt;/h1&gt;

&lt;p style="text-align:justify;"&gt;It has clear now that only the repository things need this: &lt;span style="color:red;"&gt;&lt;strong&gt;IS_ENABLE&lt;/strong&gt;&lt;/span&gt;. &lt;/p&gt;

&lt;p style="text-align:justify;"&gt;Let us refactor the façade class to remove all &lt;span style="color:red;"&gt;&lt;strong&gt;IS_ENABLE&lt;/strong&gt;&lt;/span&gt; parameters usage. &lt;/p&gt;

&lt;p style="text-align:justify;"&gt;Now, the façade will look like this: &lt;/p&gt;

&lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; T Get(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; key)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;     &lt;span style="color:#008000;"&gt;//Main Logic.&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;     &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;default&lt;/span&gt;(T);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p style="text-align:justify;"&gt;The problem was on the caller, more specifically is on the base class, RepositoryBase&amp;lt;T&amp;gt; that should encapsulate the process call the façade so the inherited classes will use this call method efficiently. I add following members inside the base class: &lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;div style="text-align:justify;"&gt;A readonly variable of &lt;span style="color:red;"&gt;&lt;strong&gt;IS_ENABLE&lt;/strong&gt;&lt;/span&gt; which is moved from the child classes. &lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;div style="text-align:justify;"&gt;Constructor that got the value for &lt;span style="color:red;"&gt;&lt;strong&gt;IS_ENABLE&lt;/strong&gt;&lt;/span&gt; from configuration owned by each child class. &lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;div style="text-align:justify;"&gt;New get method which uses IS_ENABLE to filter call to the façade, so the filter now happens in the caller. &lt;/div&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;readonly&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; IS_ENABLE;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt;&amp;#160; &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; BaseAgentRepository(&lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; isEnable)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt; {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt;     IS_ENABLE = isEnable;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt; }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt;   7:&lt;/span&gt;&amp;#160; &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum8"&gt;   8:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; T get(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; key)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum9"&gt;   9:&lt;/span&gt; {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum10"&gt;  10:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (IS_ENABLE)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum11"&gt;  11:&lt;/span&gt;     {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum12"&gt;  12:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; FacadeClass&amp;lt;T&amp;gt;.Get(key);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum13"&gt;  13:&lt;/span&gt;     }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum14"&gt;  14:&lt;/span&gt;     &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum15"&gt;  15:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;default&lt;/span&gt;(T);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum16"&gt;  16:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p style="text-align:justify;"&gt;The consequence for the child classes is to override the constructor to pass the config value for &lt;span style="color:red;"&gt;&lt;strong&gt;IS_ENABLE&lt;/strong&gt;&lt;/span&gt; and call the get to façade using the one in base class. &lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;div style="text-align:justify;"&gt;In RepositoryOne&amp;lt;T&amp;gt;: &lt;/div&gt;

    &lt;p style="text-align:justify;"&gt;Constructor: &lt;/p&gt;

    &lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
      &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; RepositoryOne()&lt;/pre&gt;


        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; : &lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;(OneConfig.Instance.Tuning.Facade.Enable)&lt;/pre&gt;


        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt; {&lt;/pre&gt;


        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
    &lt;/div&gt;

    &lt;p style="text-align:justify;"&gt;Change in getFromFacade: &lt;/p&gt;

    &lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
      &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; ObjectInfo&amp;lt;T&amp;gt; getFromFacade(Guid objectID)&lt;/pre&gt;


        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;


        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; get(objectID.ToString());&lt;/pre&gt;


        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
    &lt;/div&gt;

    &lt;pre&gt;&lt;code&gt;					&lt;/code&gt;&lt;/pre&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;div style="text-align:justify;"&gt;In RepositoryTwo&amp;lt;T&amp;gt;: &lt;/div&gt;

    &lt;p style="text-align:justify;"&gt;Constructor: &lt;/p&gt;

    &lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
      &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; RepositoryTwo()&lt;/pre&gt;


        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; : &lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;(TwoConfig.Instance.Facade.Enable)&lt;/pre&gt;


        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt; {&lt;/pre&gt;


        &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
    &lt;/div&gt;

    &lt;pre&gt;&lt;code&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
  &lt;p style="text-align:justify;"&gt;Change in Find method: &lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
    &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
      &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; IPrincipal Find(IPrincipal sample)&lt;/pre&gt;


      &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;


      &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;     SampleIdentity sampleIdentity = (SampleIdentity)sample.Identity;&lt;/pre&gt;


      &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;     IPrincipal principal = (IPrincipal)get(sampleIdentity.Name);&lt;/pre&gt;


      &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt;     &lt;/pre&gt;


      &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt;     &lt;span style="color:#008000;"&gt;//Main Logic. &lt;/span&gt;&lt;/pre&gt;


      &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt;   7:&lt;/span&gt;     &lt;/pre&gt;


      &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum8"&gt;   8:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; principal;&lt;/pre&gt;


      &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum9"&gt;   9:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
  &lt;/div&gt;

  &lt;pre&gt;&lt;code&gt;			&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;h1&gt;Conclusion &lt;/h1&gt;

&lt;p style="text-align:justify;"&gt;None of the code can be perfect at the first time, at least which happens in lot of my code. Event one variable can mess up your application a lot, not for the warning or error, but for the &lt;strong&gt;smell&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;However, this solution is not the best, in the feature, if the smell appears as bad as the current condition, I&amp;#39;ll let the code to adapt.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/basir/archive/2009/07/21/call-means-enable-me.aspx&amp;amp;subject=Call Means Enable Me" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/basir/archive/2009/07/21/call-means-enable-me.aspx&amp;amp;t=Call+Means+Enable+Me" target="_blank" title="Submit Call Means Enable Me to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/basir/archive/2009/07/21/call-means-enable-me.aspx&amp;amp;title=Call+Means+Enable+Me" target="_blank" title="Submit Call Means Enable Me to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/basir/archive/2009/07/21/call-means-enable-me.aspx&amp;amp;phase=2" target="_blank" title="Submit Call Means Enable Me to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/basir/archive/2009/07/21/call-means-enable-me.aspx&amp;amp;title=Call+Means+Enable+Me" target="_blank" title="Add Call Means Enable Me to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=182659" width="1" height="1"&gt;</description></item><item><title>Solve TF53011 Problem</title><link>http://geeks.netindonesia.net/blogs/basir/archive/2009/04/01/solve-tf53011-problem.aspx</link><pubDate>Tue, 31 Mar 2009 17:24:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:90257</guid><dc:creator>basir</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/basir/rsscomments.aspx?PostID=90257</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/basir/archive/2009/04/01/solve-tf53011-problem.aspx#comments</comments><description>&lt;p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve got a problem when try to add a new user as Team Foundation Server (TFS) &amp;quot;Licensed User&amp;quot; from my TFS Client event I logged in as TFS administrator.&lt;/p&gt;
&lt;p&gt;The problem is the target machine (TFS machine) cannot be resolved from my machine. Following image shows dialog of TFS Client on my machine:&lt;/p&gt;
&lt;p&gt;&lt;img border="0" alt="Unresolved Machine" src="http://geeks.netindonesia.net/photos/basir/images/90247/original.aspx" /&gt;&lt;/p&gt;
&lt;p&gt;To&amp;nbsp;add new user as &amp;quot;Licensed User&amp;quot; in TFS, please see following url: &lt;a href="http://social.msdn.microsoft.com/forums/en-US/tfssetup/thread/0939d3aa-6acc-41f1-b674-c33a9f75351d/"&gt;http://social.msdn.microsoft.com/forums/en-US/tfssetup/thread/0939d3aa-6acc-41f1-b674-c33a9f75351d/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Yes, I have tried the GUI way, but as we can see on above picture, I cannot resolve my server machine to get the user name. So another alternative is to use the command utility (TFSSecurity.exe) directly in the server machine.&lt;/p&gt;
&lt;p&gt;So, go log in to the server, find the TFS folder (usually TFS is installed on following path: [SYSTEM_DRIVE]:\Program Files\Microsoft Visual Studio 2008 Team Foundation Server\Tools.&lt;/p&gt;
&lt;p&gt;Use following command, then expected user will be registered as &amp;nbsp;&amp;quot;Licensed User&amp;quot;:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;TFSSecurity.exe /server:TCNBW2K8A /g+ &amp;quot;Team Foundation Licensed Users&amp;quot; n:maulida&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;And following is the result from above command:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img border="0" alt="TFSSecurity Result" src="http://geeks.netindonesia.net/photos/basir/images/90249/original.aspx" width="662" height="418" /&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/basir/archive/2009/04/01/solve-tf53011-problem.aspx&amp;amp;subject=Solve TF53011 Problem" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/basir/archive/2009/04/01/solve-tf53011-problem.aspx&amp;amp;t=Solve+TF53011+Problem" target="_blank" title="Submit Solve TF53011 Problem to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/basir/archive/2009/04/01/solve-tf53011-problem.aspx&amp;amp;title=Solve+TF53011+Problem" target="_blank" title="Submit Solve TF53011 Problem to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/basir/archive/2009/04/01/solve-tf53011-problem.aspx&amp;amp;phase=2" target="_blank" title="Submit Solve TF53011 Problem to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/basir/archive/2009/04/01/solve-tf53011-problem.aspx&amp;amp;title=Solve+TF53011+Problem" target="_blank" title="Add Solve TF53011 Problem to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=90257" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/basir/archive/tags/Team+Foundation+Server/default.aspx">Team Foundation Server</category><category domain="http://geeks.netindonesia.net/blogs/basir/archive/tags/Problem/default.aspx">Problem</category><category domain="http://geeks.netindonesia.net/blogs/basir/archive/tags/TFS/default.aspx">TFS</category><category domain="http://geeks.netindonesia.net/blogs/basir/archive/tags/TFSSecurity/default.aspx">TFSSecurity</category></item><item><title>Siap Menguji Aplikasi Anda?</title><link>http://geeks.netindonesia.net/blogs/basir/archive/2009/03/25/siap-menguji-aplikasi-anda.aspx</link><pubDate>Wed, 25 Mar 2009 16:37:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:87014</guid><dc:creator>basir</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/basir/rsscomments.aspx?PostID=87014</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/basir/archive/2009/03/25/siap-menguji-aplikasi-anda.aspx#comments</comments><description>&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Terakhir kali mempersiapkan aplikasi untuk diuji sebagai salah satu syarat menjadi &lt;i style="mso-bidi-font-style:normal;"&gt;Microsoft Partner&lt;/i&gt;, pernah saya lakukan sekitar tahun 2005/2006. Alhamdulillah produk kantor saya waktu itu lulus sehingga layak mendapatkan status sebagai &lt;i style="mso-bidi-font-style:normal;"&gt;Microsoft Partner&lt;/i&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Saat ini saya kembali harus menyiapkan produk untuk mengikuti ujian untuk tujuan yang sama yaitu menjadi &lt;i style="mso-bidi-font-style:normal;"&gt;Microsoft Partner&lt;/i&gt;. Tentunya banyak perubahan pada kriteria yang harus dipenuhi oleh produk sehingga dapat lulus dari ujian yang diberikan. &lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Catatan ini adalah catatan awal dari persiapan untuk mengikuti ujian yang terbaru, dan barangkali dari temen-temen pembaca sekalian ada yang sudah mengikuti dengan aturan yang terbaru ini sehingga dapat memberikan sumbang saran &lt;/font&gt;&lt;span style="FONT-FAMILY:Wingdings;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;mso-char-type:symbol;mso-symbol-font-family:Wingdings;"&gt;&lt;span style="mso-char-type:symbol;mso-symbol-font-family:Wingdings;"&gt;J&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Terdapat dua jenis pengujian untuk mendapatkan label Microsoft Partner yaitu:&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;Microsoft Platform Test for ISV Solutions&lt;/i&gt; dan &lt;i style="mso-bidi-font-style:normal;"&gt;Microsoft Platform Test for Hosted Solutions&lt;/i&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Perbedaan dari keduanya adalah jenis aplikasi yang akan diuji. Untuk aplikasi yang memerlukan penginstalan langsung pada computer pengguna cocok untuk pengujian jenis pertama, sementara untuk tipe aplikasi yang menawarkan service kepada pengguna maka diuji oleh pengujian jenis kedua.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Cara pengujian dan nilai poin:&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT:-0.25in;MARGIN:0in 0in 0pt 0.5in;mso-list:l0 level1 lfo1;" class="MsoListParagraphCxSpFirst"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;1.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;em&gt;&lt;strong&gt;Foundation Test&lt;/strong&gt;&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 0pt 0.5in;" class="MsoListParagraphCxSpMiddle"&gt;&lt;font size="3" face="Calibri"&gt;Ini merupakan ujian yang &lt;b style="mso-bidi-font-weight:normal;"&gt;wajib&lt;/b&gt; diambil. Untuk jenis pertama ada dua ujian yang ditawarkan dan boleh diambil salah satu saja:&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT:-0.25in;MARGIN:0in 0in 0pt 0.75in;mso-list:l1 level1 lfo2;mso-add-space:auto;" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;mso-fareast-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;-&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Windows Server Test&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT:-0.25in;MARGIN:0in 0in 10pt 0.75in;mso-list:l1 level1 lfo2;mso-add-space:auto;" class="MsoListParagraphCxSpLast"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;mso-fareast-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;-&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Windows Client Test yang berjalan pada system operasi XP.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt 0.5in;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Sementara untuk ujian jenis kedua hanya satu jenis ujian yaitu Windows Server Test. Masing-masing ujian memiliki nilai 10. &lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT:-0.25in;MARGIN:0in 0in 0pt 0.5in;mso-list:l0 level1 lfo1;" class="MsoListParagraphCxSpFirst"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;2.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;em&gt;&lt;strong&gt;Elective Test&lt;/strong&gt;&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 0pt 0.5in;" class="MsoListParagraphCxSpMiddle"&gt;&lt;font size="3" face="Calibri"&gt;Ini merupakan ujian pilihan yang harus diambil &lt;b style="mso-bidi-font-weight:normal;"&gt;minimal &lt;/b&gt;satu dengan masing-masing nilai adalah 10:&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT:-0.25in;MARGIN:0in 0in 0pt 0.75in;mso-list:l1 level1 lfo2;mso-add-space:auto;" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;mso-fareast-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;-&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Microsoft&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Office&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT:-0.25in;MARGIN:0in 0in 0pt 0.75in;mso-list:l1 level1 lfo2;mso-add-space:auto;" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;mso-fareast-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;-&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;SQL Server&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT:-0.25in;MARGIN:0in 0in 0pt 0.75in;mso-list:l1 level1 lfo2;mso-add-space:auto;" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;mso-fareast-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;-&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Web Services plus .NET Framework&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT:-0.25in;MARGIN:0in 0in 10pt 0.75in;mso-list:l1 level1 lfo2;mso-add-space:auto;" class="MsoListParagraphCxSpLast"&gt;&lt;span style="mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;mso-fareast-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;-&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Managed Code&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Syarat kelulusan dari aplikasi yang diuji adalah minimal lulus satu ujian dari &lt;i style="mso-bidi-font-style:normal;"&gt;Foundation&lt;/i&gt; dan satu ujian dari &lt;i style="mso-bidi-font-style:normal;"&gt;Elective&lt;/i&gt;. Sekedar tambahan, pengujian terhadap Windows Server 2003 dan SQL Server 2005 akan berakhir per 31 Maret 2009. Bagi Anda yang ingin menguji aplikasi terhadap kedua perangkat tersebut Anda masih punya waktu sekitar 6 hari, karena berikutnya syarat pengujian berubah menjadi Windows Server 2008 dan SQL Server 2008.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Untuk lebih jelas materi apa saja yang diujikan dan berapa biaya untuk masing-masing pengujian, silakan langsung unduh persyaratan dari situs &lt;a href="http://www.lionbridge.com/lionbridge/en-US/services/software-product-engineering/testing-veritest/product-certification-services/microsoft.htm" target="_blank"&gt;Lionbridge&lt;/a&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Silakan mencoba dan jangan lupa untuk berbagi cerita kalau aplikasi Anda dapat lulus dari ujian-ujian tersebut.&lt;/font&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/basir/archive/2009/03/25/siap-menguji-aplikasi-anda.aspx&amp;amp;subject=Siap Menguji Aplikasi Anda?" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/basir/archive/2009/03/25/siap-menguji-aplikasi-anda.aspx&amp;amp;t=Siap+Menguji+Aplikasi+Anda%3f" target="_blank" title="Submit Siap Menguji Aplikasi Anda? to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/basir/archive/2009/03/25/siap-menguji-aplikasi-anda.aspx&amp;amp;title=Siap+Menguji+Aplikasi+Anda%3f" target="_blank" title="Submit Siap Menguji Aplikasi Anda? to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/basir/archive/2009/03/25/siap-menguji-aplikasi-anda.aspx&amp;amp;phase=2" target="_blank" title="Submit Siap Menguji Aplikasi Anda? to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/basir/archive/2009/03/25/siap-menguji-aplikasi-anda.aspx&amp;amp;title=Siap+Menguji+Aplikasi+Anda%3f" target="_blank" title="Add Siap Menguji Aplikasi Anda? to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=87014" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/basir/archive/tags/Test/default.aspx">Test</category><category domain="http://geeks.netindonesia.net/blogs/basir/archive/tags/Veri+Test/default.aspx">Veri Test</category><category domain="http://geeks.netindonesia.net/blogs/basir/archive/tags/Microsoft+Partner/default.aspx">Microsoft Partner</category></item><item><title>Kesalahan Multithread? – Bagian I</title><link>http://geeks.netindonesia.net/blogs/basir/archive/2008/04/09/kesalahan-multithread-bagian-i.aspx</link><pubDate>Wed, 09 Apr 2008 04:41:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:43951</guid><dc:creator>basir</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/basir/rsscomments.aspx?PostID=43951</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/basir/archive/2008/04/09/kesalahan-multithread-bagian-i.aspx#comments</comments><description>&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;Beberapa hari berkutat dengan masalah yang sebenernya sederhana (ini tahunya belakangan :D), tapi mencari solusi yang kelewat kompleks (menurut saya).&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;Masalah pertama adalah kecurigaan terhadap kesalahan thread dari program yang saya buat (hehehe emang enak nyalahin orang lain – baca: program) ketika terjadi kondisi di akhir thread terhadap suatu proses yang diharapkan, tetapi harapan tersebut tidak terjadi. Hmm bingung ya? Paragraf berikut ini berusaha menerangkan kasus yang terjadi.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;Saya memiliki 2 komponen yang saling berinteraksi, masing – masing berjalan dengan thread yang berbeda, masing-masing adalah:&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;TEXT-ALIGN:justify;mso-list:l2 level1 lfo2;"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Komponen pertama K1 memiliki tugas yang sangat sederhana yaitu menuliskan hasil parse data mentah DM1 menjadi data yang valid DV1 yang disimpan ke dalam antrian Q1, ke dalam suatu file F1. DV1 sendiri merupakan data tunggal yang ada di dalam suatu antrian (yang berharap ditulis ke dalam file) Q1, sehingga di dalam Q1 terdapat DV11, DV12, sampai DV1n. Aturan yang saya buat adalah akan menulis ke dalam file F1 jika satu atau lebih kondisi berikut terpenuhi (menggunakan relasi “atau” – &lt;i style="mso-bidi-font-style:normal;"&gt;or&lt;/i&gt;):&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0in 0in 0pt 0.75in;TEXT-INDENT:-0.25in;TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;mso-add-space:auto;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;1.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Jika jumlah DV1 di dalam antrian Q1 adalah lebih besar atau sama dengan nilai tertentu yang dapat dikonfigurasi. &lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast" style="MARGIN:0in 0in 10pt 0.75in;TEXT-INDENT:-0.25in;TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;mso-add-space:auto;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;2.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Jika jumlah DM1 lebih kecil atau sama dengan 0.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt 0.5in;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;Karena proses penulisan ke dalam file yang dilakukan oleh K1 berada dalam thread yang terpisah dari thread utama, maka proses ini akan dilakukan terus selama tidak ada signal dari thread utama untuk mengakhiri proses.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;TEXT-ALIGN:justify;mso-list:l2 level1 lfo2;"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Komponen kedua K2. Memiliki tugas juga sangat sederhana, yaitu membuka setiap file yang telah ditulis oleh K1 dan melakukan proses konversi menjadi data lain yang diinginkan, sebut saja DV2. Selanjutnya di dalam K2 ini juga kumpulan hasil konversi akan disubmit menggunakan Web Service, tetapi ini tidak akan dibahas di tulisan ini karena memang bukan permasalahan yang berhubungan dengan thread.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0in 0in 0pt 0.5in;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;Thread ini juga merupakan anakkan dari thread utama seperti halnya thread terhadap K1. Di dalam K2 saya menggunakan satu komponen lain yang melakukan pengamatan terhadap folder dimana F1 akan dituliskan – merupakan enkapsulasi dari satu kelas standar di dalam .NET yang disebut “FileSystemWatcher”. Di dalam folder tersebut akan terdapat lebih dari satu F1, sebut saja F11, F12, sampai F1n. &lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0in 0in 0pt 0.5in;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;Harapan saya terhadap komponen ini adalah apabila terdapat penambahan file yang dihasilkan K1 akan dapat masuk ke dalam antrian untuk diproses.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0in 0in 0pt 0.5in;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;Kondisi yang akan dijalankan oleh thread ini adalah:&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0in 0in 0pt 1in;TEXT-INDENT:-0.25in;TEXT-ALIGN:justify;mso-list:l3 level1 lfo6;mso-add-space:auto;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;1.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Jika signal berhenti belum diterima.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0in 0in 0pt 1in;TEXT-INDENT:-0.25in;TEXT-ALIGN:justify;mso-list:l3 level1 lfo6;mso-add-space:auto;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;2.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Jika jumlah F1 yang belum diproses lebih besar dari 0.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast" style="MARGIN:0in 0in 10pt 0.5in;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;Sperti halnya K2, maka K1 akan berhenti jika mendapat signal dari thread utama.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;Ok, mudah-mudahan masih mudeng, sebelumnya mohon maaf, tulisan ini bukan tulisan yg pop karena ga ngebahas LINQ, ADEM, dll yang lagi ngetrend :D. Back to business…&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;Harapan saya adalah ketika thread utama mengirimkan signal bahwa proses telah selesai (di trigger dari luar sistem) maka semua file yang berada di dalam folder yang diamati oleh K2 akan diproses. Kenyataanya adalah bahwa ketika signal proses selesai telah dikirim, maka secara “berurutan” thread K1 akan melakukan “Join” – menyelesaikan masalah2 yg belum tuntas, lalu K2 juga demikian. Tetapi apa yang terjadi? &lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;TEXT-ALIGN:justify;mso-list:l4 level1 lfo3;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;1.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Ketika K1 menyelesaikan masalahnya, maka ada beberapa F1 &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;yang akan di buat oleh nya. Harapan saya adalah semua F1 yang dibuat pada masa-masa akhir ini akan dikonsumsi oleh K2.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast" style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;TEXT-ALIGN:justify;mso-list:l4 level1 lfo3;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;2.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Ketika K2 menyelesaikan masalahnya, ternyata tidak satupun F1 yang dibuat pada “injury time” ini yang diproses.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;Hmmm, saya berulang kali menyalahkan algoritma yang ada pada K1 dan K2 (padahal saya sendiri yang membuatnya). Kecurigaan pada proses signaling sampai kesimpulan “Ini pasti bug nya VS 2008” :D. Sampai tadi malam saya berpikir kembali, lalu melihat algoritma yang ada pada thread utama ketika melakukan penyelesaian proses. Melihat, berpikir sebentar, lalu saya tertawa, dan berlari ke kamar menemui istri saya yang sedang tertidur, lalu berkata “Ternyata bukan salah threadnya…., hahaha ini salah saya menuliskan algoritma di dalam thread utama”.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;Apa yang sebenarnya terjadi di dalam thread utama yang menyebabkan kesalahan fatal diatas? Sebelum menuju masalah mari kita lihat apa yang biasanya dilkaukan terhadap suatu aplikasi multi thread ketika mengakhiri aplikasi?&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;TEXT-ALIGN:justify;mso-list:l1 level1 lfo4;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;1.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Mengirimkan signal ke semua thread untuk mengakhiri proses.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast" style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;TEXT-ALIGN:justify;mso-list:l1 level1 lfo4;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;2.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Melakukan join.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;Dua konsep sederhana diatas jika ditulisakan dalam algoritma yang salah akan berakibat fatal (tidak sesuai dengan apa yang diharapkan, walaupun aplikasi berakhir secara normal).&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;Kesalahan yang saya lakukan adalah dengan algoritma berikut:&lt;/font&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;Mengirimkan signal ke semua thread K1 yang sedang berjalan untuk mengakhiri proses. (langkah ini adalah benar dilakukan pertama kali).&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="COLOR:red;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Mengirimkan signal ke semua thread K2 untuk mengakhiri proses. (Inilah kesalahannya, karena thread K2 akan langsung berhenti karena tidak ada lagi F1x yang diproses).&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="COLOR:red;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="COLOR:red;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Melakukan join pada semua thread K1. Sehingga pada saat ini K1 akan menuliskan DVx sejumlah m yang tersisa menjadi F1x sejumlah m pula.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;Melakukan join pada semua thread K2. Disini diharapkan melakukan proses terhadap F1x sejumlah m, tetapi tidak terjadi karena sudah keluar dari kondisi untuk melakukan proses akibat dari point 2 diatas.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;Lalu apa yang dilakukan?&lt;/font&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;Proses ini benar.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="COLOR:#4f6228;mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;mso-themecolor:accent3;mso-themeshade:128;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="COLOR:#4f6228;mso-themecolor:accent3;mso-themeshade:128;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Melakukan join thread K1, sehingga akan menuliskan semua file F1x yang tersisa. Di sisi lain karena K2 masih berjalan, maka setiap penambahan file akan disimpan dalam antrian K2.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="COLOR:#4f6228;mso-themecolor:accent3;mso-themeshade:128;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Mengirim signal ke semua thread K2 untuk berhenti. Kondisi proses akan tetap dilakukan di dalam K2, karena masih ada file yang tersimpan di dalam antrian menunggu untuk dip roses.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;&lt;font face="Calibri" size="3"&gt;Melakukan join, menyelesaikan semua proses terhadap F1x.&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;Pelajaran apa yang bisa didapat? &lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;TEXT-ALIGN:justify;mso-list:l5 level1 lfo8;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;1.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Bagi saya adalah menganggap sepele permasalahan yang sebenarnya memang sepele tanpa logika yang kuat akan berakibat fatal.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;TEXT-ALIGN:justify;mso-list:l5 level1 lfo8;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;2.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Terlalu cepat mengambil kesimpulan sehingga menyalahkan hal lain yang belum tentu salah tanpa bukti yang kuat, akan berakibat fatal juga.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast" style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;TEXT-ALIGN:justify;mso-list:l5 level1 lfo8;"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font face="Calibri" size="3"&gt;3.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;Akhirnya, mencoba menjernihkan pikiran kembali, dan mengamati masalah dari akarnya (thread utama), melakukan investigasi secara teliti dan berurutan.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 10pt;TEXT-ALIGN:justify;"&gt;&lt;font face="Calibri" size="3"&gt;Wallohu a’lam.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/basir/archive/2008/04/09/kesalahan-multithread-bagian-i.aspx&amp;amp;subject=Kesalahan Multithread? – Bagian I" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/basir/archive/2008/04/09/kesalahan-multithread-bagian-i.aspx&amp;amp;t=Kesalahan+Multithread%3f+%e2%80%93+Bagian+I" target="_blank" title="Submit Kesalahan Multithread? – Bagian I to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/basir/archive/2008/04/09/kesalahan-multithread-bagian-i.aspx&amp;amp;title=Kesalahan+Multithread%3f+%e2%80%93+Bagian+I" target="_blank" title="Submit Kesalahan Multithread? – Bagian I to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/basir/archive/2008/04/09/kesalahan-multithread-bagian-i.aspx&amp;amp;phase=2" target="_blank" title="Submit Kesalahan Multithread? – Bagian I to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/basir/archive/2008/04/09/kesalahan-multithread-bagian-i.aspx&amp;amp;title=Kesalahan+Multithread%3f+%e2%80%93+Bagian+I" target="_blank" title="Add Kesalahan Multithread? – Bagian I to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=43951" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/basir/archive/tags/Talking+Code/default.aspx">Talking Code</category><category domain="http://geeks.netindonesia.net/blogs/basir/archive/tags/Behind+The+Code/default.aspx">Behind The Code</category></item><item><title>Memperkenalkan BIND-C</title><link>http://geeks.netindonesia.net/blogs/basir/archive/2008/04/02/memperkenalkan-bind-c.aspx</link><pubDate>Wed, 02 Apr 2008 03:09:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:43674</guid><dc:creator>basir</dc:creator><slash:comments>20</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/basir/rsscomments.aspx?PostID=43674</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/basir/archive/2008/04/02/memperkenalkan-bind-c.aspx#comments</comments><description>&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;BIND-C merupakan komunitas pengembang perangkat lunak berbasiskan .NET di kota Bogor dan sekitarnya.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;BIND-C merupakan kependekan dari “Bogor Indonesia .NET Developer Community” atau bisa dibilang INDC nya Bogor, atau INDC cabang Bogor &lt;/font&gt;&lt;span style="FONT-FAMILY:Wingdings;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;mso-char-type:symbol;mso-symbol-font-family:Wingdings;"&gt;&lt;span style="mso-char-type:symbol;mso-symbol-font-family:Wingdings;"&gt;J&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Beberapa hal menjadi alas an kenapa BIND-C harus dibentuk:&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l1 level1 lfo1;" class="MsoListParagraphCxSpFirst"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;1.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Seringkali acara komunitas yang rutin diadakan di Jakarta (biasanya di kantor MS di gedung BEJ), pada jam kerja (800 – 1700) ataupun selepas jam kerja (1900 – 2100). Hal ini membuat beberapa orang kawan tidak bisa hadir apabila bentrok dengan jam kerja ataupun terlalu malam untuk mengikuti acara – acara yang diadakan selepas jam kerja. Inisiatif untuk membuat acara serupa dengan waktu dan tempat yang terjangkau menjadi salah satu keinginan dari kami – kami yang bekerja di Jakarta tapi tinggal di Bogor.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l1 level1 lfo1;" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;2.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Beberapa kawan justru kerja di Depok, atau bahkan di Bogor, dan ternyata cukup banyak pengembang perangkat lunak yang tinggal di Bogor, dan menggunakan teknologi .NET sehari – hari.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l1 level1 lfo1;" class="MsoListParagraphCxSpLast"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;3.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Keingingan untuk memperoleh informasi teknologi terkini dirasakan perlu, sehingga kebutuhan komunitas yang dapat saling isi, saling berbagi secara online ataupun offline dipandang perlu juga. Mengaplikasikan teknologi .NET terbaru hanya mungkin jika pengetahuan tentang hal tsb sudah diperoleh.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Dari keinginan – keinginan diatas, lalu kami (orang – orang Bogor), saling berdiskusi melalui jalur pribadi email untuk mengatur langkah apa yang bisa dilakukan, sehingga lahirlah milis BIND-C dengan alamat &lt;/font&gt;&lt;a href="mailto:bind-c@googlegroups.com"&gt;&lt;font size="3" face="Calibri"&gt;bind-c@googlegroups.com&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt; untuk membuat diskusi lebih efisien. Awalnya ada sekitar 10 orang yang bergabung di milis ini, yaitu:&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo2;" class="MsoListParagraphCxSpFirst"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;1.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Aang&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo2;" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;2.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Mas Agung Putranto&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo2;" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;3.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Arif Muhammad Iqbal&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo2;" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;4.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Arum Madarum&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo2;" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;5.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Saya, Basirudin Rachman&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo2;" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;6.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Bayu Wicaksana&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo2;" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;7.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Firyan Gustano&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo2;" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;8.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Luhur&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo2;" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;9.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Bos Marulam (Bos Acong)&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo2;" class="MsoListParagraphCxSpLast"&gt;&lt;span style="mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;10.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Istri saya, Maulida Rahmatillah&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Group BIND-C dibentuk tanggal 16 Januari 2008, sampai saat ini anggotanya mencapai 29 orang. &lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Pertemuan pertama secara offline diadakan di kantor Bos Acong, di Asmara, Jl. Pandu Bogor. Yang hadir 4 orang: Saya, Bos Acong, Bayu dan Firyan. Hasilnya adalah perlunya penyamarataan pemahaman tentang bagaimana pengembangan perangkat lunak yang sebaiknya dilakukan, lebih kepada software construction. Sehingga direncanakan akan diadakan pelatihan Pengembangan Perangkat Lunak berbasis Obyek.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Selanjutnya pelatihan sendiri baru bisa dilaksanakan pada tanggal 30 Maret 2008, dengan kehadiran sekitar 9 orang, laporan untuk kegiatan ini bisa dilihat di postingan blog istri saya di alamat berikut: &lt;/font&gt;&lt;a href="http://lidalucu.multiply.com/journal/item/59/Hasil_Pertemuan_Pertama_BIND-C"&gt;&lt;font size="3" face="Calibri"&gt;http://lidalucu.multiply.com/journal/item/59/Hasil_Pertemuan_Pertama_BIND-C&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Selanjutnya, silakan teman – teman yang ingin aktif dan tinggal di daerah Bogor sekitarnya bergabung bersama kita, sukur – sukur bisa memberikan ilmunya kepada kita – kita melalui acara yang rencananya dibuat 2 kali dalam 1 bulan. &lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Acara berikutnya dari BIND-C Insya Allah akan diadakan tanggal 20 April 2008.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Salam.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Bsrd.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/basir/archive/2008/04/02/memperkenalkan-bind-c.aspx&amp;amp;subject=Memperkenalkan BIND-C" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/basir/archive/2008/04/02/memperkenalkan-bind-c.aspx&amp;amp;t=Memperkenalkan+BIND-C" target="_blank" title="Submit Memperkenalkan BIND-C to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/basir/archive/2008/04/02/memperkenalkan-bind-c.aspx&amp;amp;title=Memperkenalkan+BIND-C" target="_blank" title="Submit Memperkenalkan BIND-C to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/basir/archive/2008/04/02/memperkenalkan-bind-c.aspx&amp;amp;phase=2" target="_blank" title="Submit Memperkenalkan BIND-C to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/basir/archive/2008/04/02/memperkenalkan-bind-c.aspx&amp;amp;title=Memperkenalkan+BIND-C" target="_blank" title="Add Memperkenalkan BIND-C to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=43674" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/basir/archive/tags/Talking+Code/default.aspx">Talking Code</category><category domain="http://geeks.netindonesia.net/blogs/basir/archive/tags/Behind+The+Code/default.aspx">Behind The Code</category><category domain="http://geeks.netindonesia.net/blogs/basir/archive/tags/INDC/default.aspx">INDC</category><category domain="http://geeks.netindonesia.net/blogs/basir/archive/tags/Behind+The+Class/default.aspx">Behind The Class</category></item><item><title>Hired by PE ;)</title><link>http://geeks.netindonesia.net/blogs/basir/archive/2006/11/26/Hired-by-PE-_3B002900_.aspx</link><pubDate>Sun, 26 Nov 2006 04:44:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:13317</guid><dc:creator>basir</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/basir/rsscomments.aspx?PostID=13317</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/basir/archive/2006/11/26/Hired-by-PE-_3B002900_.aspx#comments</comments><description>&lt;p&gt;This is a late blog I think, but better late than nothing right ? :)&lt;/p&gt;&lt;p&gt;About three weeks ago, Agus called me and asked me to substitute him to train ASP .NET 2.0 to a company in Jakarta. Fortunately the company is located in the same building with company I work for.&lt;/p&gt;&lt;p&gt;Hired by PE (People Enterprise), I continued the training session as the final session of Object Oriented Training (is it right Gus ?). Being a substitute I tried to &amp;quot;read&amp;quot; the participants how the training will flow. And then I open with new features in ASP .NET 2.0 such as : Master Page, Membership, bla bla bla.... &lt;/p&gt;&lt;p&gt;Started at 9.30 am and end at 5 pm I think. It was a good class, we discussed about lot of issues in what happened in my participants company related to the daily application they used. In the end we agreed to create a little community of developer in our building (Wisma BNI 46), and then we can create such as Community In touch event like what we already did monthly in INDC.&lt;/p&gt;&lt;p&gt;So It was a nice training, meet with developers from other company, discuss and talk about CODE :D.&lt;/p&gt;&lt;p&gt;&amp;lt;/bsrd&amp;gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/basir/archive/2006/11/26/Hired-by-PE-_3B002900_.aspx&amp;amp;subject=Hired by PE ;)" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/basir/archive/2006/11/26/Hired-by-PE-_3B002900_.aspx&amp;amp;t=Hired+by+PE+%3b)" target="_blank" title="Submit Hired by PE ;) to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/basir/archive/2006/11/26/Hired-by-PE-_3B002900_.aspx&amp;amp;title=Hired+by+PE+%3b)" target="_blank" title="Submit Hired by PE ;) to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/basir/archive/2006/11/26/Hired-by-PE-_3B002900_.aspx&amp;amp;phase=2" target="_blank" title="Submit Hired by PE ;) to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/basir/archive/2006/11/26/Hired-by-PE-_3B002900_.aspx&amp;amp;title=Hired+by+PE+%3b)" target="_blank" title="Add Hired by PE ;) to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=13317" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/basir/archive/tags/Behind+The+Class/default.aspx">Behind The Class</category></item><item><title>OO day</title><link>http://geeks.netindonesia.net/blogs/basir/archive/2006/11/26/OO-day.aspx</link><pubDate>Sun, 26 Nov 2006 02:22:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:13314</guid><dc:creator>basir</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/basir/rsscomments.aspx?PostID=13314</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/basir/archive/2006/11/26/OO-day.aspx#comments</comments><description>&lt;p&gt;Yesterday was a full&amp;nbsp;Object Oriented day&lt;/p&gt;&lt;p&gt;I was invited by my former company to share my knowledges about such things like : Object Oriented Programming, Implementation of this concept using current technology (I prefer .NET, using C# in VSTS), little orientation about &amp;quot;How to design architectures&amp;quot;, and other things related to code and development.&lt;/p&gt;&lt;p&gt;Yes, it was a full OO day, starting at 9.30 am, we ended at about 5 pm. With 10 participants from my former company, including the boss (Assalamualaikum Pak Indra :)), 2 persons that I know since I left the company, and the others are new comer in the company.&lt;/p&gt;&lt;p&gt;Started with, as usually giving presentation about OO with attributes on it, like : What is an object, Identical or Equal, Encapsulation, Association - Aggregation, Messages, Invokin an Operation, Collaboration, How an OO Program Work, Classes, Hierarchy of classes, Shared Data / Operation, ie. static.&lt;/p&gt;&lt;p&gt;But not only one way communication that happened in the event, but we discussed about daily problem that usually come to us when we develop something, and find the way out. Current technology such as CAB, Ajax, ORM, bla bla bla ;D.&lt;/p&gt;&lt;p&gt;After break with shalat Zuhur and Lunch, we continued with more deeply dig to the code :). Still using presentation, but more technical presentation, we talked about : What type means (class, struct, interface, generic), what is modular vs. reusable code, scope, inheritance, abstract;virtual function, using Interface, and ended with three patterns : Singleton, Bridge, Factory (yes as preliminary I just show these patterns to them). After presentation (or while doing presentation) we try to design little system, writing the class diagram, and put it in the CODE of course :D. We dig more into how to use interface as the public contract to the client, but keep the implementation as a &amp;quot;SECRET&amp;quot; recipe :D. Showing how to implement the definition of &amp;quot;INTENTION&amp;quot;... :)&lt;/p&gt;&lt;p&gt;Yes yes-ter-day was an OO day. In the closing we discussed the road map after this action, to determine the next action. Yes we deal about the next action, implement the code with the concept we have learned together, and then sharpen them using what we will learn next... {still secret, but don&amp;#39;t worry I&amp;#39;ll blog it Insya Allah :)}.&lt;/p&gt;&lt;p&gt;&amp;lt;/bsrd&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/basir/archive/2006/11/26/OO-day.aspx&amp;amp;subject=OO day" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/basir/archive/2006/11/26/OO-day.aspx&amp;amp;t=OO+day" target="_blank" title="Submit OO day to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/basir/archive/2006/11/26/OO-day.aspx&amp;amp;title=OO+day" target="_blank" title="Submit OO day to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/basir/archive/2006/11/26/OO-day.aspx&amp;amp;phase=2" target="_blank" title="Submit OO day to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/basir/archive/2006/11/26/OO-day.aspx&amp;amp;title=OO+day" target="_blank" title="Add OO day to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=13314" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/basir/archive/tags/Behind+The+Class/default.aspx">Behind The Class</category></item></channel></rss>
