<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8660592024451013107</id><updated>2012-01-20T17:16:01.892+05:00</updated><category term='CXF'/><category term='=='/><category term='Final'/><category term='Discourse 4'/><category term='HashMap'/><category term='The Myth of Static and Final Methods'/><category term='form is a great and necessary principle'/><category term='AXIS2'/><category term='Women blamed for different reasons in History'/><category term='Benazir Bhutto'/><category term='Shopping Cart and Java'/><category term='getNamedDispatcher'/><category term='How StringBuilderWorks'/><category term='AXIS'/><category term='Discourses of Rumi'/><category term='Java StringBuilder'/><category term='Discourses'/><category term='Java Class Loaders'/><category term='Discourse'/><category term='Discourse Five'/><category term='Rumi'/><category term='God&apos;s Pen'/><category term='IdentityHashMap'/><category term='code audit'/><category term='ServletContext'/><category term='seed with no husk'/><category term='Husna Sheikh'/><category term='Marie'/><category term='REST'/><category term='God'/><category term='Oracle SUN Strategy'/><category term='Discourse 5'/><category term='Discourse Four'/><category term='code refactoring'/><category term='Joan of Arc'/><category term='Aroosa Channa'/><category term='Static'/><category term='SOAP'/><category term='Agrippina'/><category term='equals()'/><category term='Noor Jehan'/><category term='XFire'/><category term='Zulfiqar Bhutto'/><category term='code standards'/><category term='Boudicca'/><category term='Difference Between SOAP and REST'/><category term='Cleopatra'/><category term='StringBuilder'/><category term='getRequestDispatcher()'/><title type='text'>Waqas Ali Memon</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>30</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-6116821713151735273</id><published>2011-02-21T11:01:00.001+05:00</published><updated>2011-02-21T11:01:22.071+05:00</updated><title type='text'>the child abuse</title><content type='html'>&lt;div class="pp_item" align="left"&gt;&lt;p&gt;Software are the brain children of programmers, and its users are famous for child abuse -waqas~azhar-&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-6116821713151735273?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/6116821713151735273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2011/02/child-abuse.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/6116821713151735273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/6116821713151735273'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2011/02/child-abuse.html' title='the child abuse'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-7833453459484002111</id><published>2010-05-13T18:03:00.005+05:00</published><updated>2010-05-13T18:27:36.845+05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java Class Loaders'/><category scheme='http://www.blogger.com/atom/ns#' term='Static'/><category scheme='http://www.blogger.com/atom/ns#' term='The Myth of Static and Final Methods'/><category scheme='http://www.blogger.com/atom/ns#' term='Final'/><title type='text'>The Myth of Static and Final Methods.</title><content type='html'>What is the output of the program? and why?&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public class ABC {&lt;br /&gt;    public static void test() {&lt;br /&gt;      System.out.println("ABC Static Test");&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void test2() {&lt;br /&gt;      System.out.println("ABC Test 2");&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class CDE extends ABC {&lt;br /&gt;    public static void test() {&lt;br /&gt;      System.out.println("CDE Static Test");&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void test2() {&lt;br /&gt;      System.out.println("CDE Test 2");&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;      ABC obj = new CDE();&lt;br /&gt;      obj.test();&lt;br /&gt;      obj.test2();&lt;br /&gt;      CDE obj1 = new CDE();&lt;br /&gt;      obj1.test();&lt;br /&gt;      obj1.test2();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Lets discuss it here... &lt;br /&gt;&lt;br /&gt;We have been learning since so many years that static methods can not be overridden? when why? Some people call them as they are implicitly final... are they final?&lt;br /&gt;To me, they are not final, they just hide themselves and behave like final. This is the reason why the above code does not generate a compile time error when we try to override it.... &lt;br /&gt;&lt;br /&gt;Override? are we overriding it? Nopes, we are not, and can not override it. Its simply a unique method, which could be created because of the hidden nature of superclass's static method. To check it, try to change STATIC into FINAL.... it generates error, you can not override a final method, blah blah. Because, Final methods are not hidden, they can not be overridden, Static methods are hidden, they can not be overridden too.&lt;br /&gt;&lt;br /&gt;Polymorphism is a concept of OOP and static methods are not part of OOP. (Amazing isnt it?)&lt;br /&gt;&lt;br /&gt;Now, lets speak about the Output of above method... whats output? did u actually think or just compiled and calculated it?&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;ABC Static Test&lt;br /&gt;CDE Test 2&lt;br /&gt;CDE Static Test&lt;br /&gt;CDE Test 2&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Because: When you override a method, you still get the benefits of run-time polymorphism, and when you hide, you do not.&lt;br /&gt;The same object &lt;span style="font-style:italic;"&gt;obj&lt;/span&gt; calls &lt;span style="font-style:italic;"&gt;test()&lt;/span&gt; method of superclass and &lt;span style="font-style:italic;"&gt;test2()&lt;/span&gt; method of child class... because, test2() is overridden and is given the priority, test() is a class method and compiler or JVM does not actually need a reference to it thus ignoring the obj reference here. The compiler will only look at the declared type of the reference, and use that declared type to determine, at compile time, which method to call. Since obj is declared as type ABC, the compiler looks at obj.test() and decides it means ABC.test().&lt;br /&gt;&lt;br&gt;&lt;br /&gt;For static methods, the compiler only uses the declared type of the reference. That's what we mean when we say a static method does not have run-time polymorphism&lt;br /&gt;&lt;br /&gt;So, Remember that static methods are evaluated at Compile time. and class object are evaluated at Runtime. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Summarizing&lt;/span&gt;&lt;br /&gt;1. Static method can't be overriden (They only get hidden)&lt;br /&gt;2. Final method can't be overriden either.&lt;br /&gt;3. But declaring the same STATIC method as the one in super class is ok.&lt;br /&gt;4. whereas declaring the same FINAL method as the one in super class is illegal.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-7833453459484002111?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/7833453459484002111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2010/05/myth-of-static-and-final-methods.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/7833453459484002111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/7833453459484002111'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2010/05/myth-of-static-and-final-methods.html' title='The Myth of Static and Final Methods.'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-4842770106021320431</id><published>2010-05-05T12:52:00.003+05:00</published><updated>2010-05-05T13:46:32.786+05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='getRequestDispatcher()'/><category scheme='http://www.blogger.com/atom/ns#' term='getNamedDispatcher'/><category scheme='http://www.blogger.com/atom/ns#' term='ServletContext'/><title type='text'>getRequestDispatcher() and getNamedDispatcher of the ServletContext</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;b style="font-family: trebuchet ms;"&gt;What is the difference between the getRequestDispatcher(String) and getNamedDispatcher(String) methods in the ServletContext Class?&lt;/b&gt;&lt;/span&gt; &lt;p  style="font-family:trebuchet ms;"&gt; &lt;span style="font-size:100%;"&gt;&lt;b&gt;NamedDispatcher&lt;/b&gt;&lt;/span&gt; &lt;/p&gt;&lt;p  style="font-family:trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt; Returns a RequestDispatcher object that acts as a wrapper for the named servlet. &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt; getNamedDispatcher(String) method takes the name of the Servlet as parameter which is declared via Deployment descriptor. &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:trebuchet ms;"&gt; &lt;span style="font-size:100%;"&gt;&lt;i&gt;Example: Deployment Descriptor&lt;/i&gt;&lt;/span&gt; &lt;/p&gt;&lt;p  style="font-family:trebuchet ms;"&gt; &lt;span style="font-size:100%;"&gt;&lt;code&gt;&lt;br /&gt;&lt;span class="xml_tag_symbols"&gt;&lt;&lt;/span&gt;&lt;span class="xml_tag_name"&gt;servlet&lt;/span&gt;&lt;span class="xml_tag_symbols"&gt;&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="xml_tag_symbols"&gt;&lt;&lt;/span&gt;&lt;span class="xml_tag_name"&gt;servlet-name&lt;/span&gt;&lt;span class="xml_tag_symbols"&gt;&gt;&lt;/span&gt;FirstServlet&lt;span class="xml_tag_symbols"&gt;&lt;!--&lt;/span--&gt;&lt;span class="xml_tag_name"&gt;servlet-name&lt;/span&gt;&lt;span class="xml_tag_symbols"&gt;&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="xml_tag_symbols"&gt;&lt;&lt;/span&gt;&lt;span class="xml_tag_name"&gt;servlet-class&lt;/span&gt;&lt;span class="xml_tag_symbols"&gt;&gt;&lt;/span&gt;com.example.ServletExample&lt;span class="xml_tag_symbols"&gt;&lt;!--&lt;/span--&gt;&lt;span class="xml_tag_name"&gt;servlet-class&lt;/span&gt;&lt;span class="xml_tag_symbols"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml_tag_symbols"&gt;&lt;!--&lt;/span--&gt;&lt;span class="xml_tag_name"&gt;servlet&lt;/span&gt;&lt;span class="xml_tag_symbols"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt; &lt;/p&gt;&lt;p  style="font-family:trebuchet ms;"&gt; &lt;/p&gt;&lt;pre  style="font-family:trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt;RequestDispatcher dispatch = request.getNamedDispatcher(?&lt;a href="http://faq.javaranch.com/java/FirstServlet"&gt;FirstServlet&lt;/a&gt;?);&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;dispatch.forward(request, response); &lt;/pre&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;p  style="font-family:trebuchet ms;"&gt; &lt;span style="font-size:100%;"&gt;&lt;b&gt;Note:&lt;/b&gt; A servlet instance can determine its name using servletConfig.getServletName(); This method returns the name of the class that implements the &lt;i&gt;Servlet&lt;/i&gt; interface or extends the &lt;i&gt;HttpServlet&lt;/i&gt; class. &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:trebuchet ms;"&gt; &lt;span style="font-size:100%;"&gt;&lt;b&gt;RequestDispatcher&lt;/b&gt;&lt;/span&gt; &lt;/p&gt;&lt;p  style="font-family:trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt; Returns a RequestDispatcher object that acts as a wrapper for the resource located at the given path. &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:trebuchet ms;"&gt; &lt;/p&gt;&lt;pre  style="font-family:trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt; RequestDispatcher dispatch = request.getRequestDispatcher("/tes");&lt;/span&gt;&lt;/pre&gt; &lt;p  style="font-family:trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt; Here "/tes" represents the url-pattern element value of the servlet class. &lt;/span&gt;&lt;/p&gt;&lt;p face="trebuchet ms"&gt; &lt;span style="font-size:100%;"&gt;&lt;code&gt;&lt;br /&gt;&lt;span class="xml_tag_symbols"&gt;&lt;&lt;/span&gt;&lt;span class="xml_tag_name"&gt;servlet-mapping&lt;/span&gt;&lt;span class="xml_tag_symbols"&gt;&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="xml_tag_symbols"&gt;&lt;&lt;/span&gt;&lt;span class="xml_tag_name"&gt;servlet-name&lt;/span&gt;&lt;span class="xml_tag_symbols"&gt;&gt;&lt;/span&gt;Test&lt;span class="xml_tag_symbols"&gt;&lt;!--&lt;/span--&gt;&lt;span class="xml_tag_name"&gt;servlet-name&lt;/span&gt;&lt;span class="xml_tag_symbols"&gt;&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="xml_tag_symbols"&gt;&lt;&lt;/span&gt;&lt;span class="xml_tag_name"&gt;url-pattern&lt;/span&gt;&lt;span class="xml_tag_symbols"&gt;&gt;&lt;/span&gt;/tes&lt;span class="xml_tag_symbols"&gt;&lt;!--&lt;/span--&gt;&lt;span class="xml_tag_name"&gt;url-pattern&lt;/span&gt;&lt;span class="xml_tag_symbols"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="xml_tag_symbols"&gt;&lt;!--&lt;/span--&gt;&lt;span class="xml_tag_name"&gt;servlet-mapping&lt;/span&gt;&lt;span class="xml_tag_symbols"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt; &lt;/p&gt;&lt;p face="trebuchet ms"&gt;&lt;span style="font-size:100%;"&gt; It represents the path of the servlet class. Since both the base as well as target servlet are in the same package structure by just specifying the url-pattern element value we will be able to access the target servlet. &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family: trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt; We shouldn't specify the entire path like &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family: trebuchet ms;"&gt; &lt;/p&gt;&lt;pre  style="font-family:trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt; String str = "/WEB-INF/classes/com/example/posr/Test"&lt;/span&gt;&lt;/pre&gt; &lt;p style="font-family: trebuchet ms;"&gt; &lt;/p&gt;&lt;pre  style="font-family:trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt; RequestDispatcher dispatch = request.getRequestDispatcher(str);&lt;/span&gt;&lt;/pre&gt; &lt;p style="font-family: trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt; To forward a request to a JSP page we use &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family: trebuchet ms;"&gt; &lt;/p&gt;&lt;pre  style="font-family:trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt; RequestDispatcher dispatch = request.getRequestDispatcher("/TestJspOne.jsp");&lt;/span&gt;&lt;/pre&gt; &lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt; Here "/TestJspOne.jsp" the slash denotes the Jsp page is at the root of the application.&lt;br /&gt;&lt;br /&gt;There is another way to get the request dispatcher object.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt; &lt;code&gt;RequestDispatcher dispatch = request.getRequestDispatcher(arg);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;where 					&lt;code&gt;arg &lt;/code&gt;(a string) can be a relative path or not to a particular resource. (i.e. jsp, servlet, etc.) It may be both a relative (not starting with '/') or relative (to this request) URL.&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Main Difference is:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="postbody"&gt;forwards and includes to servlet has access to 5 request attributes each.&lt;br /&gt;&lt;br /&gt;javax.servlet.forward.request_uri&lt;br /&gt;javax.servlet.forward.context_path&lt;br /&gt;javax.servlet.forward.servlet_path&lt;br /&gt;javax.servlet.forward.path_info&lt;br /&gt;javax.servlet.forward.query_string&lt;br /&gt;&lt;br /&gt;AND&lt;br /&gt;&lt;br /&gt;javax.servlet.include.request_uri&lt;br /&gt;javax.servlet.include.context_path&lt;br /&gt;javax.servlet.include.servlet_path&lt;br /&gt;javax.servlet.include.path_info&lt;br /&gt;javax.servlet.include.query_string &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;&lt;br /&gt;And, all of these are not present when dispatched through getNamedDispatcher.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-4842770106021320431?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/4842770106021320431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2010/05/getrequestdispatcher-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/4842770106021320431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/4842770106021320431'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2010/05/getrequestdispatcher-and.html' title='getRequestDispatcher() and getNamedDispatcher of the ServletContext'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-4975831125635538504</id><published>2010-04-28T13:34:00.007+05:00</published><updated>2010-04-28T14:23:51.959+05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HashMap'/><category scheme='http://www.blogger.com/atom/ns#' term='=='/><category scheme='http://www.blogger.com/atom/ns#' term='equals()'/><category scheme='http://www.blogger.com/atom/ns#' term='IdentityHashMap'/><title type='text'>equals(), ==, HashMap and IdentityHashMap</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-weight: bold;"&gt;== is an operator that checks the object references. &lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;i.e.&lt;br /&gt;String a="waqas";&lt;br /&gt;String b="waqas";&lt;br /&gt;&lt;br /&gt;a==b &lt;span style="font-style: italic;"&gt;is true because both a &amp;amp; b refer to same object reference "waqas"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;.equals() is a method that checks the contents or can be overridden to return the desired results.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;String a="waqas";&lt;br /&gt;String b ="waqas";&lt;br /&gt;String c= new String("waqas");&lt;br /&gt;String d= new String("waqas");&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;a.equals(b) is true, and similarly a.equals(c) and c.equals(d) true&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;but a==c is not true&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-style: italic;"&gt;and similarly &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;a==d, b==c, b==d are not true&lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;HashMap&lt;/span&gt;&lt;br /&gt;HashMap uses the .equals() method to perform its operations like checking for duplicate keys....&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;IdentityHashMap&lt;/span&gt;&lt;br /&gt;IdentityHashMap uses == method to perform its operations, as name suggests, it checks identity of the key not the contents.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Example&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;import java.util.HashMap;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;import java.util.IdentityHashMap;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;import java.util.Map;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;public class IdentityMapDemo {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    public static void main(String[] args) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        Map identityMap = new IdentityHashMap();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        Map hashMap = new HashMap();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;              identityMap.put("a", 1);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        identityMap.put(new String("a"), 2);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        identityMap.put("a", 3);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        hashMap.put("a", 1);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        hashMap.put("a", 1);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        hashMap.put(new String("a"), 2);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        hashMap.put("a", 3);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;              System.out.println("Identity Map KeySet Size :: " + identityMap.keySet().size());&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;              System.out.println("Hash Map KeySet Size :: " + hashMap.keySet().size());&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Result:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Identity Map KeySet Size :: 2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Hash Map KeySet Size :: 1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Another Differece between HashMap and IdentityHashMap is&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;The other difference (or a consequence) is that IdentityHashMap does not use hash from &lt;/span&gt;&lt;span style="font-style: italic;font-size:130%;" &gt;object.hashCode()&lt;/span&gt;&lt;span style="font-size:130%;"&gt; but uses &lt;/span&gt;&lt;span style="font-style: italic;font-size:130%;" &gt;System.identityHashCode(object)&lt;/span&gt;&lt;span style="font-size:130%;"&gt;.&lt;br /&gt;This is a major difference, because you can use IdentityHashMap for mutable objects for whose hash code changes during the "in map" time frame.&lt;br /&gt;&lt;br /&gt;Example: there is Person class with 'name' and 'age' properties and #equals checks for 'name' and 'age' and #hashCode depends on those properties as well.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;font-size:130%;" &gt;Person p = new Person("Jan Kowalski");&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:130%;" &gt;hashMap = new HashMap();&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:130%;" &gt;idHashMap = new IdentityHashMap();&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:130%;" &gt;hashMap.put(p, something);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:130%;" &gt;idHashMap.put(p, something);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:130%;" &gt;p.setAge(30);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;...and now what?&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:130%;" &gt;&lt;br /&gt;hashMap.containsKey(p)&lt;/span&gt;&lt;span style="font-size:130%;"&gt; -&gt; it is unknown if this is going to return true or false. Sometimes it will return true, sometimes false. This is a bug to put mutable objects into HashMap and changing them later. That will lead to hard to find bugs. On the other hand:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:130%;" &gt;&lt;br /&gt;idHashMap.containsKey(p)&lt;/span&gt;&lt;span style="font-size:130%;"&gt; --&gt; will always return true as long as this is the same object.&lt;br /&gt;&lt;br /&gt;However:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:130%;" &gt;p2 = new Person("Jan Kowalski");&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:130%;" &gt;p2.setAge(30);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:130%;" &gt;idHashMap.containsKey(p2)&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;will always return false.&lt;br /&gt;&lt;br /&gt;This is important to know the difference when doing, for example, master-detail form, when some map is used to assign objects which can be modified. Using HashMap for such a case will lead to strange behaviour while IdentityHashMap works fine.&lt;br /&gt;&lt;br /&gt;Last, but not least, for big maps packed with objects with expensive #equals and #hashCode methods, IdentityHashMap will perform much better, because none of the two above methods are used.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;Difference b/w Object.hashCode and System.identityHashCode(object)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="post-header"&gt;  &lt;/div&gt;&lt;span style="font-size:130%;"&gt;  basically  System.identityHashCode (Object) always returns different values for different objects Its declared as public static int identityHashCode(Object x)&lt;br /&gt;&lt;br /&gt;The hash code for the null reference is zero.&lt;br /&gt;&lt;/span&gt;&lt;pre style="font-style: italic;"&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;// FileName Test.java&lt;br /&gt;class HashCodeTest&lt;br /&gt;{&lt;br /&gt; int number;&lt;br /&gt; public HashCodeTest(int i)&lt;br /&gt; { this.number=i;}&lt;br /&gt;&lt;br /&gt; public int hashCode() { return this.number; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public class Test&lt;br /&gt;{&lt;br /&gt; public static void main(String[] args)&lt;br /&gt; {&lt;br /&gt;     String s1="Namaste"; String s2 = s1;&lt;br /&gt;     System.out.println("s1 "+ s1 + " s2 "+ s2);&lt;br /&gt;     System.out.println("System.identityHashCode(s1)"  + System.identityHashCode(s1));&lt;br /&gt;     System.out.println("System.identityHashCode(s2) "+ System.identityHashCode(s2));&lt;br /&gt;     s1=s1 + " World";&lt;br /&gt;     System.out.println(" s1 "+ s1 + " s2 " + s2);&lt;br /&gt;     System.out.println("System.identityHashCode(s1) " + System.identityHashCode(s1));&lt;br /&gt;     System.out.println("System.identityHashCode(s2) "+ System.identityHashCode(s2));&lt;br /&gt;&lt;br /&gt;     HashCodeTest o1 = new HashCodeTest(5);&lt;br /&gt;     HashCodeTest o2 = new HashCodeTest(5);&lt;br /&gt;&lt;br /&gt;     System.out.println("");&lt;br /&gt;     System.out.println("First Object : " + o1);&lt;br /&gt;     System.out.println("Second Object : " + o2);&lt;br /&gt;     System.out.println("System.identityHashCode(First_Object) : " + System.identityHashCode(o1));&lt;br /&gt;     System.out.println("System.identityHashCode(Second_Object) : " + System.identityHashCode(o2));&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;the output was something like&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;s1 Namaste s2 Namaste&lt;br /&gt;System.identityHashCode(s1)1671711&lt;br /&gt;System.identityHashCode(s2) 1671711&lt;br /&gt;s1 Namaste World s2 Namaste&lt;br /&gt;System.identityHashCode(s1) 11394033&lt;br /&gt;System.identityHashCode(s2) 1671711&lt;br /&gt;&lt;br /&gt;First Object : HashCodeTest@5&lt;br /&gt;Second Object : HashCodeTest@5&lt;br /&gt;System.identityHashCode(First_Object) : 4384790&lt;br /&gt;System.identityHashCode(Second_Object) : 9634993&lt;br /&gt;&lt;/span&gt;&lt;h3 class="post-title entry-title"&gt;&lt;span style="font-size:130%;"&gt;&lt;a href="http://lavnish.blogspot.com/2008/05/objecthashcode-vs-systemidentityhashcod.html"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-4975831125635538504?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/4975831125635538504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2010/04/equals-hashmap-and-identityhashmap.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/4975831125635538504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/4975831125635538504'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2010/04/equals-hashmap-and-identityhashmap.html' title='equals(), ==, HashMap and IdentityHashMap'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-3133815873880950586</id><published>2010-04-27T18:10:00.000+05:00</published><updated>2010-04-27T18:11:00.307+05:00</updated><title type='text'>ThreadLocal and Servlets</title><content type='html'>&lt;span class="ContentBody"&gt;This class allows you to put local data on a thread, so that every module running in the thread can access it. &lt;span style="font-family:Courier New;"&gt;ThreadLocal&lt;/span&gt; has been around since JDK 1.2, but hasn't been used much, maybe because of a first, rather poor implementation, performance-wise.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="ContentBody"&gt;&lt;i&gt;This class provides thread-local variables. These variables differ from their normal counterparts in that each thread that accesses one (via its get or set method) has its own, independently initialized copy of the variable. ThreadLocal instances are typically private static fields in classes that wish to associate state with a thread (e.g., a user ID or Transaction ID). &lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="ContentBody"&gt;An example may help clarify this concept. A servlet is executed in a thread, but since many users may use the same servlet at the same time, many threads will be running the same servlet code concurrently. If the servlet uses a &lt;span style="font-family:Courier New;"&gt;ThreadLocal&lt;/span&gt; object, it can hold data local to each thread. The user ID is a good example of what could be stored in the &lt;span style="font-family:Courier New;"&gt;ThreadLocal&lt;/span&gt; object. I like to think of this object as a hash map where a kind of thread ID is used as the key. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span class="ContentBody"&gt; The simplest way to use a &lt;span style="font-family:Courier New;"&gt;ThreadLocal&lt;/span&gt; object is to implement it as a singleton. Here's an example in which the value stored in the &lt;span style="font-family:Courier New;"&gt;ThreadLocal&lt;/span&gt; is a List: &lt;/span&gt;&lt;/p&gt;&lt;span class="ContentBody"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;i&gt;public class MyThreadLocal {&lt;br /&gt;     private static ThreadLocal&lt;list&gt; tLocal = new ThreadLocal&lt;span class="ContentBody"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-size:78%;"&gt;&lt;list&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;();&lt;br /&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="margin-left: 40px;"&gt;&lt;span style="font-size:78%;"&gt;&lt;i&gt;&lt;span class="ContentBody"&gt;&lt;span style="font-family:Courier New;"&gt; public static void set(List list) {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-left: 40px;"&gt;&lt;div style="margin-left: 40px;"&gt;&lt;span style="font-size:78%;"&gt;&lt;i&gt;&lt;span class="ContentBody"&gt;&lt;span style="font-family:Courier New;"&gt; tLocal.set(list);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-left: 40px;"&gt;&lt;span style="font-size:78%;"&gt;&lt;i&gt;&lt;span class="ContentBody"&gt;&lt;span style="font-family:Courier New;"&gt; }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:78%;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;div style="margin-left: 40px;"&gt;&lt;span style="font-size:78%;"&gt;&lt;i&gt;&lt;span class="ContentBody"&gt;&lt;span style="font-family:Courier New;"&gt; public static List get() {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-left: 40px;"&gt;&lt;div style="margin-left: 40px;"&gt;&lt;span style="font-size:78%;"&gt;&lt;i&gt;&lt;span class="ContentBody"&gt;&lt;span style="font-family:Courier New;"&gt; return (List) tLocal.get();&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-left: 40px;"&gt;&lt;span style="font-size:78%;"&gt;&lt;i&gt;&lt;span class="ContentBody"&gt;&lt;span style="font-family:Courier New;"&gt; }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;i&gt;&lt;span style="font-size:78%;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/i&gt;&lt;span class="ContentBody"&gt;&lt;br /&gt;This makes it simple to set or get the current thread's value: &lt;span style="font-family:Courier New;"&gt;MyThreadLocal.set(list);&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;i&gt;list = MyThreadLocal.get();&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="ContentBody"&gt;The first time you use this technique, it may seem a bit like magic, but behind the scenes, the local data is simply fetched using a unique ID of the thread. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-3133815873880950586?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/3133815873880950586/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2010/04/threadlocal-and-servlets.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/3133815873880950586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/3133815873880950586'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2010/04/threadlocal-and-servlets.html' title='ThreadLocal and Servlets'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-4484717126820785268</id><published>2010-04-27T17:25:00.008+05:00</published><updated>2010-05-13T18:02:21.663+05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java Class Loaders'/><title type='text'>Java Class Loaders</title><content type='html'>Java Language Specification (JLS) speaks about Java Class Loaders, and If understood properly, It helps programmers get rid of Debug and save their time.&lt;br /&gt;&lt;br /&gt;When we say, Java loads any class, we mean that instances java.lang.ClassLoader loads that class. This class can be extended, to create your custom class loaders.&lt;br /&gt;&lt;br /&gt;When You execute a simple Class,&lt;br /&gt;1. Bootstrap loader is responsible to have already loaded Key Java Classes like java.lang.Object&lt;br /&gt;2. Ext loader is responsible for loading java extensions&lt;br /&gt;3. Class Loader is responsible for loading the class that you want to execute.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The parent class loader for any class loader is the class loader instance that loaded that class loader.  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To set the parent class loader:&lt;br /&gt;&lt;br /&gt;public class CustomClassLoader extends ClassLoader{&lt;br /&gt;      public CustomClassLoader(){&lt;br /&gt;             super(CustomClassLoader.class.getClassLoader());&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note: If we have one class HelloWorld.java and two custom class loaders, CustomLoader1 and CustomLoader2, then HelloWorld would be executed twice and both the instances of HelloWorld are not equal.&lt;br /&gt;&lt;br /&gt;i.e. HelloWorld hw1 = (HelloWorld) hw2; //throws ClassCastException&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;Who should write custom class loaders?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Those who wish to control JVM's classloading or do not like the default behavior of classloader. i.e. If HelloWorld is such a class that changes so rapidly and on the fly, we need to make sure it is loaded each time it is changed, since default Java loader never reloads any class. Your class loader should know that the class has changed.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; java.io.DataInputStream;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; java.io.File;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; java.io.FileInputStream;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; java.io.IOException;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; java.util.Enumeration;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; java.util.Hashtable;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;class&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; CustomClassLoader &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;extends&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; ClassLoader &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;   &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; CustomClassLoader()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;       &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;super&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;(CustomClassLoader.class.getClassLoader());&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;   &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;   &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; Class loadClass(String className) &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;throws&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; ClassNotFoundException &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; findClass(className);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;   &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;   &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; Class findClass(String className)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;       &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;byte&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; classByte[];&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;       Class result=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;       result = (Class)classes.get(className);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;       &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;(result != &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;           &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; result;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;       &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;      &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;       &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;try&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;           &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; findSystemClass(className);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;       &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;}&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;catch&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;(Exception e)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;       &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;       &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;try&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;          String classPath =    ((String)ClassLoader.getSystemResource(className.replace(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;'.'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;,File.separatorChar)+&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;".class"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;).getFile()).substring(1);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;          classByte = loadClassData(classPath);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;           result = defineClass(className,classByte,0,classByte.length,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;           classes.put(className,result);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;           &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; result;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;       &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;}&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;catch&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;(Exception e)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;           &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;       &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;   &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;   &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;byte&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;[] loadClassData(String className) &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;throws&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; IOException&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;       File f ;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;       f = &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; File(className);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;       &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; size = (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;)f.length();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;       &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;byte&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; buff[] = &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;byte&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;[size];&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;       FileInputStream fis = &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; FileInputStream(f);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;       DataInputStream dis = &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; DataInputStream(fis);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;       dis.readFully(buff);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;       dis.close();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;       &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; buff;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;   &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;   &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; Hashtable classes = &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; Hashtable();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;font-family:arial;" &gt;&lt;span style="color: rgb(255, 255, 255);"&gt;Here is how to use the CustomClassLoader&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;class&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; CustomClassLoaderTest &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;static&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; main(String [] args) &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;throws&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; Exception&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;       CustomClassLoader test = &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; CustomClassLoader();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;       test.loadClass( com.test.HelloWorld );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;So, This is the sequence of Class Loaders.&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;Bootstrap classes&lt;/b&gt;: the runtime classes in  &lt;tt&gt;rt.jar&lt;/tt&gt;, internationalization classes in &lt;tt&gt;i18n.jar&lt;/tt&gt;, and others. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Installed extensions&lt;/b&gt;: classes in JAR files in the  &lt;tt&gt;lib/ext&lt;/tt&gt; directory of the JRE, and in the system-wide, platform-specific extension directory (such as &lt;tt&gt;/usr/jdk/packages/lib/ext&lt;/tt&gt; on the Solaris&lt;span style=""&gt;&lt;sup&gt;TM&lt;/sup&gt;&lt;/span&gt; Operating System, but note that use of this directory applies only to Java&lt;span style=""&gt;&lt;sup&gt;TM&lt;/sup&gt;&lt;/span&gt; 6 and later). &lt;/li&gt;&lt;li&gt;&lt;b&gt;The class path&lt;/b&gt;: classes, including classes in JAR files, on paths specified by the  system property &lt;tt&gt;java.class.path&lt;/tt&gt;.  If a JAR file on the class path has a manifest with the &lt;code&gt;Class-Path&lt;/code&gt; attribute, JAR files specified by the &lt;code&gt;Class-Path&lt;/code&gt; attribute  will be searched also. By default, the &lt;code&gt;java.class.path&lt;/code&gt; property's value  is &lt;code&gt;.&lt;/code&gt;, the current directory.  You can change the value by using the  &lt;tt&gt;-classpath&lt;/tt&gt; or &lt;tt&gt;-cp&lt;/tt&gt; command-line options, or setting the &lt;code&gt;CLASSPATH&lt;/code&gt; environment variable.  The command-line options override the setting of the &lt;code&gt;CLASSPATH&lt;/code&gt;  environment variable.&lt;br /&gt;&lt;span style="font-family:monospace;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Here is the Overall Mechanism&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Constructors in &lt;tt&gt;java.lang.ClassLoader&lt;/tt&gt; and its subclasses  allow you to specify a parent when you instantiate a new class loader.  If you don't explicitly specify a parent, the virtual machine's system  class loader will be assigned as the default parent. &lt;/li&gt;&lt;li&gt;The &lt;tt&gt;loadClass&lt;/tt&gt; method in &lt;tt&gt;ClassLoader&lt;/tt&gt; performs  these tasks, in order, when called to load a class:       &lt;ol&gt;&lt;li&gt;If a class has already been loaded, it returns it.  &lt;/li&gt;&lt;li&gt;Otherwise, it delegates the search for the new class       to the parent class loader.  &lt;/li&gt;&lt;li&gt;If the parent class loader does not find the class,       &lt;tt&gt;loadClass&lt;/tt&gt; calls the method &lt;tt&gt;findClass&lt;/tt&gt;       to find and load the class.  &lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;The &lt;tt&gt;findClass&lt;/tt&gt; method of &lt;tt&gt;ClassLoader&lt;/tt&gt; searches  for the class in the current class loader if the class wasn't found by  the parent class loader. You will probably want to override this method  when you instantiate a class loader subclass in your application. &lt;/li&gt;&lt;li&gt;The class &lt;tt&gt;java.net.URLClassLoader&lt;/tt&gt;  serves as the basic class loader for extensions  and other JAR files, overriding the &lt;tt&gt;findClass&lt;/tt&gt; method of  &lt;tt&gt;java.lang.ClassLoader&lt;/tt&gt; to search one or more specified URLs for  classes and resources. &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-4484717126820785268?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/4484717126820785268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2010/04/java-class-loaders.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/4484717126820785268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/4484717126820785268'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2010/04/java-class-loaders.html' title='Java Class Loaders'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-5684939219183371518</id><published>2010-04-27T16:00:00.010+05:00</published><updated>2010-04-27T17:24:41.182+05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='StringBuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='Java StringBuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='How StringBuilderWorks'/><title type='text'>How StringBuilder works internally?</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;String and StringBuilder, Immutability and Mutability are famous topics and they are discussed around everywhere, but i wondered how StringBuilder had aided advantages over String and StringBuffer. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;There are few things that matter. &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:trebuchet ms;"&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;1. String is immutable, which means each time you try to concatenate or use any method, it creates a new object and returns you the modified object.&lt;br /&gt;&lt;br /&gt;2. StringBuffer, is a buffer but its synchronized, and too expensive for memory, so it should be avoided. If you need synchronization You can use locks etc. otherwise.&lt;br /&gt;&lt;br /&gt;3. StringBuilder in JSE 1.5 is superior to above two, its mutable, its not synchronized. Its mutable because it does not create String reference each time you try to invoke its methods, i.e. append(), rather it changes. It should be used if your String opperations are larger. Do not use it if you just want to concatenate a String for 3 or 4 times or known number of times. &lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;How StringBuilder Works?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;It's Object maintains a buffer to accommodate the concatenation of new data. New data is added to the end of the buffer if room is available; otherwise, a new, larger buffer is allocated, data from the original buffer is copied to the new buffer, then the new data is appended to the new buffer.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Following is the code snippet from AbstractStringBuilder which is super class of StringBuilder.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt; public AbstractStringBuilder append(String str) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;     if (str == null) str = "null";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;     int len = str.length();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;     if (len == 0) return this;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;     int newCount = count + len;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;     if (newCount &gt; value.length)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;         expandCapacity(newCount);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;    str.getChars(0, len, value, count);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;     count = newCount;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;     return this;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt; }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt; void expandCapacity(int minimumCapacity) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;     int newCapacity = (value.length + 1) * 2;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;     if (newCapacity &lt;&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;          newCapacity = Integer.MAX_VALUE;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;     } else if (minimumCapacity &gt; newCapacity) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;          newCapacity = minimumCapacity;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;     }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;     value = Arrays.copyOf(value, newCapacity);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt; }&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-5684939219183371518?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/5684939219183371518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2010/04/how-stringbuilder-works-internally.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/5684939219183371518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/5684939219183371518'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2010/04/how-stringbuilder-works-internally.html' title='How StringBuilder works internally?'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-6600471102348693169</id><published>2010-03-10T10:46:00.002+05:00</published><updated>2010-03-10T10:52:09.310+05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shopping Cart and Java'/><title type='text'>Shopping Cart and Java</title><content type='html'>There are several frameworks, proven, standard and famous. &lt;br /&gt;&lt;br /&gt;1. Struts framework is one of the secure Java proven framework for shopping cart.&lt;br /&gt;2. For E-commerce application,IBM Web sphere Commerce Suit is the complete end to end package. &lt;br /&gt;3. Apache OFBiz -  http://ofbiz.apache.org/&lt;br /&gt;4. IceFaces framework&lt;br /&gt;5. ATG Commerce server&lt;br /&gt;6. Spring Web Flow &lt;br /&gt;7. Konakart -  http://www.konakart.com/  &lt;br /&gt;&lt;br /&gt;* We can plug the Acegi security framework..... for strus, spring,etc. &lt;br /&gt;* IceFaces has following features.&lt;br /&gt;  **Excellent JSF functionalities like drop down, fade effect , excellent UI features.&lt;br /&gt;  **It's Free and JSF based. (included in JEE specifications)&lt;br /&gt;  **Full Ajax features.&lt;br /&gt;  **Excellent documentation and sample code available. "&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-6600471102348693169?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/6600471102348693169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2010/03/shopping-cart-and-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/6600471102348693169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/6600471102348693169'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2010/03/shopping-cart-and-java.html' title='Shopping Cart and Java'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-6691449472376834894</id><published>2010-03-10T10:39:00.001+05:00</published><updated>2010-03-10T10:41:44.598+05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOAP'/><category scheme='http://www.blogger.com/atom/ns#' term='REST'/><category scheme='http://www.blogger.com/atom/ns#' term='Difference Between SOAP and REST'/><title type='text'>SOAP and REST</title><content type='html'>The reason is, SOAP related Specs and Standards for WSDL, Attachments and Security are all well established and are currently supported by all major vendors like Microsoft, IBM and Oracle. SOAP allows for better inter-operatbility between Java and .NET the 2 most widely used enterprise stacks. The client in my case was a .NET shop.&lt;br /&gt;&lt;br /&gt;On the other hand I would have used REST if I needed to support PHP or Ruby clients. These programming languages have only basic support SOAP, and for those REST is the way to go.&lt;br /&gt;&lt;br /&gt;The best practice here is to build your web services in a protocol independent manner. Keep a layer to send receive SOAP or REST request/response messages at the front gate and keep all your business logic behind this layer.&lt;br /&gt;Your SOAP or REST gateway must simply pass parameters to the business logic layer and receive marshallable objects back from it.&lt;br /&gt;&lt;br /&gt;Your business logic, must be protocol independent and must be testable without needing a web service container.&lt;br /&gt;&lt;br /&gt;One thing for sure. If my web service finds takers, then I will have to support both REST and SOAP over time, There's no way one protocol will serve all my clients.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-6691449472376834894?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/6691449472376834894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2010/03/soap-and-rest.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/6691449472376834894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/6691449472376834894'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2010/03/soap-and-rest.html' title='SOAP and REST'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-4241164313522933273</id><published>2010-01-29T21:52:00.000+05:00</published><updated>2010-01-29T21:53:23.489+05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle SUN Strategy'/><title type='text'>Orace Sun Strategy</title><content type='html'>Oracle invites you to view our Oracle + Sun Product Strategy Webcast series. You'll get the chance to learn more about the combination of Sun and Oracle—and what it means for you.&lt;br /&gt;&lt;br /&gt;These informative, on-demand sessions offer strategies for Sun's major product lines related to the combination, explain how Oracle will deliver more innovation to our customers, and outline our approach to protecting customers' investments.&lt;br /&gt;&lt;br /&gt;Simply click on your area of interest to view each Webcast.&lt;br /&gt;&lt;br /&gt;http://www.oracle.com/events/productstrategy/index.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-4241164313522933273?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/4241164313522933273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2010/01/orace-sun-strategy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/4241164313522933273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/4241164313522933273'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2010/01/orace-sun-strategy.html' title='Orace Sun Strategy'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-1035041877517921217</id><published>2009-12-23T17:03:00.001+05:00</published><updated>2009-12-23T17:03:31.749+05:00</updated><title type='text'>Sindhi Culture Victimization « Vixmemon's Blog</title><content type='html'>&lt;a href=http://shar.es/aOC0i&gt;Sindhi Culture Victimization « Vixmemon's Blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Posted using &lt;a href="http://sharethis.com"&gt;ShareThis&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-1035041877517921217?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/1035041877517921217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2009/12/sindhi-culture-victimization-vixmemon.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/1035041877517921217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/1035041877517921217'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2009/12/sindhi-culture-victimization-vixmemon.html' title='Sindhi Culture Victimization « Vixmemon&amp;#39;s Blog'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-7550003348644174071</id><published>2009-12-17T10:37:00.001+05:00</published><updated>2009-12-17T10:37:29.601+05:00</updated><title type='text'>NFC Award and Sindh « Vixmemon's Blog</title><content type='html'>&lt;a href=http://vixmemon.wordpress.com/2009/12/17/nfc-award-and-sindh/&gt;NFC Award and Sindh « Vixmemon's Blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Posted using &lt;a href="http://sharethis.com"&gt;ShareThis&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-7550003348644174071?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/7550003348644174071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2009/12/nfc-award-and-sindh-vixmemon-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/7550003348644174071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/7550003348644174071'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2009/12/nfc-award-and-sindh-vixmemon-blog.html' title='NFC Award and Sindh « Vixmemon&amp;#39;s Blog'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-7960785012874176102</id><published>2009-12-11T16:50:00.000+05:00</published><updated>2009-12-11T16:50:02.255+05:00</updated><title type='text'>Poll: Is Sindhi Media Showing wrong image of Sindhi Culture? Are their programs and videos vulgar? should they be stopped?</title><content type='html'>&lt;a href="http://vixmemon.wordpress.com/#pd_a_2334217"&gt;Poll: Is Sindhi Media Showing wrong image of Sindhi Culture? Are their programs and videos vulgar? should they be stopped?&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-7960785012874176102?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://vixmemon.wordpress.com/#pd_a_2334217' title='Poll: Is Sindhi Media Showing wrong image of Sindhi Culture? Are their programs and videos vulgar? should they be stopped?'/><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/7960785012874176102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2009/12/poll-is-sindhi-media-showing-wrong.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/7960785012874176102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/7960785012874176102'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2009/12/poll-is-sindhi-media-showing-wrong.html' title='Poll: Is Sindhi Media Showing wrong image of Sindhi Culture? Are their programs and videos vulgar? should they be stopped?'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-5462718886832696905</id><published>2009-12-11T15:42:00.002+05:00</published><updated>2009-12-11T15:46:19.116+05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Joan of Arc'/><category scheme='http://www.blogger.com/atom/ns#' term='Women blamed for different reasons in History'/><category scheme='http://www.blogger.com/atom/ns#' term='Marie'/><category scheme='http://www.blogger.com/atom/ns#' term='Agrippina'/><category scheme='http://www.blogger.com/atom/ns#' term='Cleopatra'/><category scheme='http://www.blogger.com/atom/ns#' term='Zulfiqar Bhutto'/><category scheme='http://www.blogger.com/atom/ns#' term='Noor Jehan'/><category scheme='http://www.blogger.com/atom/ns#' term='Husna Sheikh'/><category scheme='http://www.blogger.com/atom/ns#' term='Boudicca'/><category scheme='http://www.blogger.com/atom/ns#' term='Benazir Bhutto'/><category scheme='http://www.blogger.com/atom/ns#' term='Aroosa Channa'/><title type='text'>Women blamed for different reasons in History</title><content type='html'>&lt;span style="font-weight:bold;"&gt;&lt;blockquote&gt;Joan of Arc (Jeanne Darc)&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;A sixteen-year-old peasant girl, growing up and tending the cattle at Domrémy, has for some years been hearing voices. She sometimes sees the speakers, and recognizes them as St Michael, St Catherine and St Margaret. But in this winter of 1428-9 they have been giving her a very specific instruction. She must raise the siege of Orléans so that the king of France, Charles VII, can go to Reims to be anointed in the cathedral. Joan is examined by the churchmen of Charles VII for 3 weeks and finally they recommend to use her services for the country.&lt;br /&gt;&lt;br /&gt;Joan and her soldiers reach Orléans on 29 April 1429. One by one the English positions fall. By May 8 their army is in full retreat from Orléans. Reims is reached on July 16. The city opens its gates to Charles. Preparations are made for an immediate consecration in the cathedral the following day. As Charles is anointed with the holy oil, Joan stands nearby with her banner. Then she kneels before him, and for the first time calls him her king.&lt;br /&gt;&lt;br /&gt;Joan's misfortunes begin in May 1430. In a skirmish against the Burgundians at Compiègne she falls from her horse and is captured. Over the next few months her fate as a captive is hotly contested. On 30 May 1431 she is burnt at the stake as a relapsed heretic.&lt;br /&gt;&lt;br /&gt;Joan is finally canonized in 1920 (500 years later), and declared as a saint, as an example of the power of inspiration.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;blockquote&gt;Agrippina&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;Germanicus, the official heir, has been married since about AD 5 to Agrippina, granddaughter of Augustus. The couple have a dynastic glamour which Tiberius (when Augustus dies, in AD 14, Tiberius succeeds without opposition.) himself lacks. It is lacked even more by his own son Drusus, the child of his first marriage. There is potential here for jealousy and conflict. The inevitable rumors of poison begin to circulate when Germanicus suddenly dies (almost certainly of natural causes) when campaigning in Syria in AD 19. Four years later Tiberius's son Drusus also dies. The likelihood of succession returns to the family of Germanicus. Tiberius, now living in isolation in Capri, is a man prone to suspicion. An ambitious commander of the praetorian guard, Sejanus, convinces the emperor that Agrippina, the widow of Germanicus, is plotting against him. She and her two elder sons, Nero and Drusus, are arrested in AD 29-30. Within four years all three have died in prison.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;blockquote&gt;Cleopatra&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;The arrival in Alexandria of Julius Caesar gives Cleopatra her first chance of a wider role in the world. She seizes it, becoming the mistress of the man who is now unmistakably - after his defeat of Ptolemy - the most powerful Roman. Caesar spends the winter of 48-7 BC in Egypt, helping the young queen suppress the forces of her even younger brother (who fails to survive these events).&lt;br /&gt;Soon after Caesar's departure from Alexandria, Cleopatra gives birth to a son (in the summer of 47), whom she claims - almost certainly correctly - to be Caesar's. In 46 Caesar invites Cleopatra to Rome with her son (subseqently known by the nickname Caesarion, 'little Caesar') and provides them with a villa. After Caesar's assassination, in 44, she returns to Egypt with the child.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;blockquote&gt;Marrie (Mariym, the Virgin Mother of Jesus Christ)&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;She was blamed to have been in relation with some other man when she was bearing Messiah Jesus. She was married to Joseph but the marriage was a written agreement valid after 1 year. She bore Jesus Christ in that 1 year, untouched. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;blockquote&gt;Noor Jehan&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;Not long after Zulfikar Ali Bhutto took office, the Pakistan Peoples Party newspaper Musawat ran a number of stories about Nur Jehan’s close and “scandalous” association with Gen. Yahya Khan. She was outraged. In a press statement, she said if she really was the sort of woman she was being portrayed as, she would rather leave Pakistan, never to return. She also tried to approach Bhutto who did not have time to see her. She called me a couple of times and I said I would do my best. Noor Muhammad Mughal or Noora, Bhutto’s personal valet and a man you could only ignore at your peril, was a great admirer of the Madam. One day, he took a copy of Musawat that carried one of the Nur Jehan stories, complete with pictures, to Bhutto and said, “Sahib, why is Hanif Ramay after Nur Jehan? What has she done to him?” Bhutto told Ramay to lay off and leave Nur Jehan alone. Madam had her ways, and she had her admirers everywhere.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;blockquote&gt;Benazir Bhutto&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;In his book, Christopher Sandford writes that Benazir Bhutto became infatuated with Imran Khan, and the pair enjoyed a “close” and possibly “sexual” relationship. The author has also alleged that Khan’s mother even tried to organise an arranged marriage between the pair, but to no avail. But Sandford, who interviewed both Khan and his ex-wife Jemima for the book, claimed that a source told him that Bhutto was 21, and in her second year of reading politics at Lady Margaret Hall, when she became close to Khan in 1975. However, the former Pakistan cricket captain has rebuffed these claims, saying that he never had a sexual relationship with Bhutto. Pakistan President Asif Ali Zardari and other members of the Bhutto family also have been “profoundly grieved” by a new book that claims Benazir Bhutto had a college affair with former international cricketer Imran Khan.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;blockquote&gt;Aroosa Channa&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;Pakistani journalist Aroosa Alam, mother of popular Pakistani actor and singer Fakhar-e-Alam and daughter of notorious "General Rani" is blamed to have been in affair with Former CM of Punjab Capt Amarinder Singh, who’s wife Praneet Kaur is Member Parliament from Patiala and Natwar Singh is his brother in law (Bahnoi) as Lalu of Sadhu yadav. Amarinder Singh has denied the reports of affair but refused to take legal action against the newspapers.&lt;br /&gt; &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;blockquote&gt;Husna Sheikh&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;Prime Minister Zulfiqar Ali Bhutto was a legendary character. Forever burned into the realms of history, it is an oft-repeated story of how he was married twice - once to a cousin from his village and then to the glamorous Iranian born Nusrat, and then how he entered into a relationship with Husna Sheikh. That Zulfiqar Ali Bhutto was smitten with Husna, and used friends to cover for him while he courted her is still legend. However, neither of them ever spoke out, and this legendary romance has only been hinted at.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;blockquote&gt;Boudicca (birth unknown-61)&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;The warrior of East Anglia made herself extremely unpopular with the Romans when she led a campaign against them following the death of her leader husband Prasutagus. She was finally defeated around Ajavascript:void(0)D 61, and is thought to have poisoned herself to avoid capture.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-5462718886832696905?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/5462718886832696905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2009/12/women-blamed-for-different-reasons-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/5462718886832696905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/5462718886832696905'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2009/12/women-blamed-for-different-reasons-in.html' title='Women blamed for different reasons in History'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-5179769263513454689</id><published>2009-11-11T13:31:00.001+05:00</published><updated>2009-11-11T13:36:22.549+05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AXIS'/><category scheme='http://www.blogger.com/atom/ns#' term='CXF'/><category scheme='http://www.blogger.com/atom/ns#' term='AXIS2'/><category scheme='http://www.blogger.com/atom/ns#' term='XFire'/><title type='text'>XFire, CXF and AXIS2</title><content type='html'>While studying about CXF, i thought i should share some key points with the team. So here are my findings so far. I think we should go for CXF.&lt;br /&gt;&lt;br /&gt;XFire and CXF&lt;br /&gt;&lt;br /&gt;Features&lt;br /&gt; XFire&lt;br /&gt; CXF (XFire2.0)&lt;br /&gt;Webservice Standards&lt;br /&gt; SOAP, WSDL, WS-I Basic Profile, WS-Addressing, WS-Security, etc.  SOAP, the WSI Basic Profile, WSDL, WS-Addressing,  WS-ReliableMessaging,&lt;br /&gt;WS-Security, WS-SecurityPolicy, and WS-SecureConversation, WS-Policy,&lt;br /&gt;Pluggable Bindings&lt;br /&gt;  POJOs, XMLBeans, JAXB 1.1, JAXB 2.0, and Castor support  JAXB 2.x, Aegis, XMLBeans, SDO, etc.&lt;br /&gt;Performance&lt;br /&gt; Can be tuned if proper data-binding used. (using JiBX instead of JAXB).&lt;br /&gt; Apache CXF 2.0 currently doesn’t support JiBX. Expected to support it for CXF future releases.&lt;br /&gt;New Features&lt;br /&gt; X&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;   1. Spring 2.0 XML support&lt;br /&gt;   2. RESTful service support&lt;br /&gt;   3. JSON support&lt;br /&gt;   4. And some of WS specs support as well&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note: User's looking to use XFire on a new project, should use CXF instead. CXF is a continuation of the XFire project and is considered XFire 2.0. It has many new features, a ton of bug fixes, and is now JAX-WS compliant! XFire will continue to be maintained through bug fix releases, but most development will occur on CXF now.&lt;br /&gt;XFire has strong community base, bug fixes and so many resources easily available on internet, CXF is still new, development is on going, and community is not so strong. This is the only issue with CXF.&lt;br /&gt;&lt;br /&gt;Conclusion&lt;br /&gt;None of the Web Services frameworks is in general superior to the others. Axis 2 is structured modularly, has many features and can be used as an application server for Web Services. A special feature of Axis 2 is the support of removable binding frameworks, for example XMLBeans. Axis 2 together with the XMLBeans framework included is well suited for Web Services which are using very complex schema definitions.&lt;br /&gt;The disadvantages of Axis 2 are its complexity as well as the insufficient JAX-WS support. Therefore anyone who wants to work with JAX-WS should choose Apache CXF or the reference implementation.&lt;br /&gt;Those who prefer a seamless integration with the Spring framework are well advised with the JAX-WS implementation. Furthermore CXF is slim and easy to use. CXF is the tool of choice if a SOAP engine has to be embedded into an existing software.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;My Suggestion after careful study&lt;br /&gt;We can easily migrate and we should migrate to CXF because of its reliability and performance. AXIS2 is no doubt a good solution but why increase the learning curve.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-5179769263513454689?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/5179769263513454689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2009/11/xfire-cxf-and-axis2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/5179769263513454689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/5179769263513454689'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2009/11/xfire-cxf-and-axis2.html' title='XFire, CXF and AXIS2'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-8037014145943455664</id><published>2009-10-20T13:35:00.002+06:00</published><updated>2009-10-20T15:02:33.482+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code standards'/><category scheme='http://www.blogger.com/atom/ns#' term='code audit'/><category scheme='http://www.blogger.com/atom/ns#' term='code refactoring'/><title type='text'>The 5 Static Code Audits every developer should know and use</title><content type='html'>The five audits that are going to be focused are Numerical Literal in code, String Literal, god Method, Shotgun Surgery and Duplicate Code. “Why those five?” There are many reasons but in general, once they are explained, they are easy to understand and at the same time they have real benefit.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Numerical Literal in Code:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For the masses that read Martin Fowler’s awesome book “Refactoring” this audit was named “Magic Number” refactor. However, for me this is one of the simplest refactoring methods to learn and understand.&lt;br /&gt;&lt;br /&gt;We have all written code like:&lt;br /&gt;&lt;blockquote&gt;    double salaryCalc(double salary){&lt;br /&gt;      return salary * 1.34564333721&lt;br /&gt;    }&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Instead of using a numeric literal, it would be better to replace that number with a symbolic constant. This way a meaningful name can be given to the number, as an example:&lt;br /&gt;&lt;blockquote&gt;    double salaryCalc(double salary){&lt;br /&gt;      return salary * BONUS&lt;br /&gt;    }&lt;br /&gt;    static final double BONUS = 1.34564333721&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Now when the developers review the code, at a very minimum they should know what 1.34564333721 is the bonus for the calculation.&lt;br /&gt;&lt;br /&gt;Again if you are doing refactoring, the unit test should not have to change and the outcome should be exactly the same when the refactor is complete.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;String Literal:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We all know there are times when time is of the essence, and we have to make changes to code and get it into production as soon as possible. String literals just happen. This audit is especially nice when you need to internationalize the software, or have already done that task. It should be run very often and all new occurrences should be remediated as soon as they are found. &lt;br /&gt;&lt;br /&gt;This would be incorrect:&lt;br /&gt;&lt;blockquote&gt;    public const helloWorldMessage : String = ‘Hello World!’;&lt;br /&gt;&lt;/blockquote&gt;    Delphi&lt;br /&gt;&lt;br /&gt;This would be correct:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;    Public const helloWorldMessage : String =&lt;br /&gt;          resourceManager.GetString(‘msg.helloworld’);&lt;br /&gt;&lt;/blockquote&gt;    Delphi&lt;br /&gt;&lt;br /&gt;This method would retrieve the helloWorldMessage string from a resource bundle that could be changed outside of the application and corrected without having to recompile.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;god Method:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The god ‘X’ audits, where ‘X’ is equal to Method, Class, or Package are great checks on good object design. This audit does more than just look at the code and spit out that it should be done a better way, as with to two above audits.&lt;br /&gt;&lt;br /&gt;The overview for this audit will be the god Method; the simple way to explain it is that you have a class, the class contains 50 methods, however only 1 method appears to be doing all the work. This method would be marked as a god Method.&lt;br /&gt;&lt;br /&gt;By the way, most god ‘X’ situations do not start out that way. In the case of god Methods, they normally start out as simple normal methods but over time as more functionality gets added and the method has more responsibilities assigned to it, it grows and grows and eventually it becomes a god Method.&lt;br /&gt;&lt;br /&gt;So what calculations are used to figure out if a method is doing more work than other methods? The usual calculation revolves around three major audits and a set of metrics to determine its status. The three audits used include Long Methods, Long Parameters, and Switch statements. The 4 basic metrics used include; Line of Code (LOC), Number of Parameters (NOP), Number of Local Variables (NOLV), and Maximum Number of Branches (MNOB).&lt;br /&gt;&lt;br /&gt;By putting those numbers together you can start to see how the calculation works. Long Methods usually mean more than one operation is being performed, Long Parameters are hard to understand, and Switch statements mean a lot of different paths through the code. By adding in the metrics LOC per method compared to other methods and then verifying the NOP, NOLV, and MNOB, it can calculate what a god Method is and what is not.&lt;br /&gt;&lt;br /&gt;So what do you do once you have isolated a god Method? There are a number of refactors that could occur, like Extract Method, Introduce Parameter Object, and many others. The idea is to make sure the method is only doing the work that the method was supposed to do in the first place. As an example, having a method that calculates the salary and updates the salary history, generates salary reports, and calculates taxes all in one single method may not be the best approach. Plus, from a simple maintenance perspective, separation is going to make that job much easier.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Shotgun Surgery:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This audit is one of my favorite audits, not just because of the cool name, but because this audit can save a lot of time. Like the god ‘X’ audits, this method also uses metrics to calculate its results.&lt;br /&gt;&lt;br /&gt;Ever isolate the one method with one line of code that needs to be modified? You know in your developer heart that when you make the change to that one line of code that you will get to leave the office early, get to have dinner with the family, get to watch your favorite T.V. show, and maybe, just maybe, get to go to bed early! However, you change the one line of code in the one method, run unit tests it passes, put it in production… you don’t get to go home until 3:00 am, your spouse and kids are upset and your manager is really mad for breaking production.&lt;br /&gt;&lt;br /&gt;However, if you would have used the shotgun surgery audit, the bad stuff may not have had to happen. This is because the audit basically looks at the number of places in your code that is relying on that one method. Meaning that you will know that one line change is going to affect the entire code base and you better take a step back before actually changing that line.&lt;br /&gt;&lt;br /&gt;The two metrics that are used to help calculate a shotgun surgery method are Changing Methods (CM) and Changing Classes (ChC). The changing methods audit is really the number of methods that are associated or relying on the particular method, and the changing classes is the number of classes that is also affected by changing the method. So you can think of the shotgun surgery audit as a mini-method-dependency-checker.&lt;br /&gt;&lt;br /&gt;So if you have a method that is reported to have shotgun surgery what should you do? Simple. Slow down… look a little deeper into the code, find the dependencies and review what the proposed change would do to the system. The extra time will be paid back many times over with the re-work that will not have to be done. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Duplicate code:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There are many days I believe Copy/Paste should be banished from our editors. The amount of times we use this feature in our code is astounding. Sometimes I refer to the process as Snarf and Barf, because it takes no time to execute and no real thought behind it. This leads too many of us (including myself) to copy bad code and paste it all over the place.&lt;br /&gt;&lt;br /&gt;This leads to many problems, the biggest being a maintenance nightmare. Think of how many times we copy five or 10 lines of code and put that same code in the next method, in another method, and so on. Then we change the second method just a little for this one border case, then the next, how do you keep track?&lt;br /&gt;&lt;br /&gt;Using this audit you should be able to find many of the areas that this occurs in. Many tools out there today state that 10 lines or more have to be duplicated before the audit returns a true. That is personally way too high, especially if the tool you use has the ability to check for duplicates in Conditionals and Constructors. I would recommend setting the number down to three to five lines.&lt;br /&gt;&lt;br /&gt;Once the developer has isolated the duplicates, a couple of standard refactoring methods can be applied, usually Extract Method, or Pull Up Field will do the trick.&lt;br /&gt;&lt;br /&gt;So an example maybe an IF statement like:&lt;br /&gt;&lt;blockquote&gt;    if (int x=0; x&lt; 100; x++{&lt;br /&gt;       //other statements&lt;br /&gt;       someValue = 10;&lt;br /&gt;    } else {&lt;br /&gt;       //other statements&lt;br /&gt;       someValue = 10;&lt;br /&gt;    }&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Could be written as:&lt;br /&gt;&lt;blockquote&gt;    if (int x=0; x &lt; 100; x++{&lt;br /&gt;       //other statements&lt;br /&gt;    } else {&lt;br /&gt;       //other statements&lt;br /&gt;    }&lt;br /&gt;       someValue = 10;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The over-simplified example highlights it perfectly; the someValue was going to get changed to 10 every time so it may as well be changed only once.&lt;br /&gt;&lt;br /&gt;There are a lot of audits out there today; there are most likely audits for almost anything we can think of. Remember, when starting with audits to start slow, pick a couple that you believe will give good feedback and have a potential for an easy payback and you should be ready to go.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-8037014145943455664?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/8037014145943455664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2009/10/5-static-code-audits-every-developer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/8037014145943455664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/8037014145943455664'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2009/10/5-static-code-audits-every-developer.html' title='The 5 Static Code Audits every developer should know and use'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-2263957396679261570</id><published>2009-06-30T11:28:00.001+06:00</published><updated>2009-06-30T11:28:38.164+06:00</updated><title type='text'>Sufi Aphorisms</title><content type='html'>&lt;a href="http://www.goodreads.com/book/show/530452.Sufi_Aphorisms_Kitab_Al_Hikam" style="float: left; padding-right: 20px"&gt;&lt;img alt="Sufi Aphorisms - Kitab Al-Hikam" border="0" src="http://www.goodreads.com/images/nocover-111x148.jpg" /&gt;&lt;/a&gt; &lt;a href="http://www.goodreads.com/book/show/530452.Sufi_Aphorisms_Kitab_Al_Hikam"&gt;Sufi Aphorisms - Kitab Al-Hikam&lt;/a&gt; by &lt;a href="http://www.goodreads.com/author/show/293415.Ibn_Ata_Illah"&gt;Ibn Ata Illah&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;  &lt;a href="http://www.goodreads.com/review/show/61590742"&gt;&lt;h3&gt;My review&lt;/h3&gt;&lt;/a&gt;&lt;br /&gt;  rating: 5 of 5 stars&lt;br/&gt;&lt;br /&gt;  &lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.goodreads.com/review/list/2472929-waqas-memon"&gt;View all my reviews.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-2263957396679261570?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/2263957396679261570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2009/06/sufi-aphorisms.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/2263957396679261570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/2263957396679261570'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2009/06/sufi-aphorisms.html' title='Sufi Aphorisms'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-823878574253216518</id><published>2009-06-29T16:51:00.000+06:00</published><updated>2009-06-29T16:52:46.966+06:00</updated><title type='text'>Sufi Aphorisms - the Kitab-al-Hikam</title><content type='html'>If you want the door of hope be opened for you,&lt;br /&gt;then consider what comes to you from your Lord,&lt;br /&gt;&lt;br /&gt;but if you want the door of sadness be opened for you,&lt;br /&gt;then consider what goes to Him from you.&lt;br /&gt;&lt;br /&gt;- "The Hikam" Sufi Aphorisms&lt;br /&gt;by Ibn Ata'Allah al Iskandari&lt;br /&gt;Late 13th Century C.E.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-823878574253216518?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/823878574253216518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2009/06/sufi-aphorisms-kitab-al-hikam.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/823878574253216518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/823878574253216518'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2009/06/sufi-aphorisms-kitab-al-hikam.html' title='Sufi Aphorisms - the Kitab-al-Hikam'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-4147498223095016939</id><published>2009-05-15T19:43:00.003+06:00</published><updated>2009-05-15T19:55:09.100+06:00</updated><title type='text'>Zembly Facebook Application - An Easy Way to get through it!</title><content type='html'>Since last few days i was wondering how could i develop a face-book application? where would i host my application? Would it require an extra day to learn PHP and to integrate my application with face-book? &lt;br /&gt;I had been asking out friends regarding what to do with this, but never came out with such an easy and user friendly solution that Zembly has.&lt;br /&gt;&lt;br /&gt;I heard about &lt;a href="http://zembly.com"&gt;Zembly&lt;/a&gt; from &lt;a href="http://osum.sun.com"&gt;OSUM&lt;/a&gt; (Open Source University Meetup, pronounced as Awesome), and started a demo to know how does it create a facebook application that it claims to be done in no as minimum as 10 minutes.&lt;br /&gt;&lt;br /&gt;Yes, I finally created the application, Zembly hosts it, and i have tested it by sending it's link to my all friends on facebook. It was fun using it, with just few easy steps. The only things that you had to do was to give zembly the facebook application id and key, and a canvas name that would be used for the application. &lt;br /&gt;&lt;br /&gt;I am impressed and would suggest you guys must try it, meanwhile i would try creating more applications in it and also create some widgets for my sites. &lt;br /&gt;&lt;br /&gt;Checkout Facebook application that i created, its simple but yet its a facebook application.&lt;br /&gt;&lt;a href="http://apps.facebook.com/wixgiftsyou"&gt;http://apps.facebook.com/wixgiftsyou&lt;/a&gt;&lt;br /&gt;Nice work SUN.&lt;br /&gt;Cheers! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-4147498223095016939?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/4147498223095016939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2009/05/zembly-facebook-application-easy-way-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/4147498223095016939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/4147498223095016939'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2009/05/zembly-facebook-application-easy-way-to.html' title='Zembly Facebook Application - An Easy Way to get through it!'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-2815541968956622797</id><published>2009-05-05T18:04:00.000+06:00</published><updated>2009-05-05T19:25:57.327+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Discourse'/><category scheme='http://www.blogger.com/atom/ns#' term='Rumi'/><category scheme='http://www.blogger.com/atom/ns#' term='Discourse Five'/><category scheme='http://www.blogger.com/atom/ns#' term='God&apos;s Pen'/><category scheme='http://www.blogger.com/atom/ns#' term='Discourse 5'/><category scheme='http://www.blogger.com/atom/ns#' term='God'/><category scheme='http://www.blogger.com/atom/ns#' term='Discourses of Rumi'/><title type='text'>Discourses of Rumi (Discourse 5)</title><content type='html'>Wherever you turn, there is the Face of God. This Face runs and extends inﬁnitely and forever.&lt;br /&gt;True spiritual lovers have sacrificed themselves for the sake of that Face, desiring nothing in return. The rest of the human race are like cattle.&lt;br /&gt;&lt;br /&gt;Yet, even though they are cattle, still they deserve favor. They may live in the stable, yet they&lt;br /&gt;are accepted by the Lord of the stable. If He so desires, He transfers them from this stable into&lt;br /&gt;His private pen. So, in the beginning God brought men and women into existence, and then transferred them from the pen of spiritual existence into the world inanimate. Then from the pen of the world inanimate into the vegetable world. Then from vegetable into animal. From animal to&lt;br /&gt;human, human to angel, and so on forever. He manifested all these forms so that you would know His pens are many, and that each one is loftier than the next.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;God revealed this present world so that you could accept the other stages that lie ahead. He did not reveal it so that you would say, “This is all there is.” The masters of crafts demonstrate their abilities and arts so their apprentices will ﬁnd faith in them, and will believe in the other arts they have not yet demonstrated.&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-2815541968956622797?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/2815541968956622797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2009/05/discourses-of-rumi-discourse-5_05.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/2815541968956622797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/2815541968956622797'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2009/05/discourses-of-rumi-discourse-5_05.html' title='Discourses of Rumi (Discourse 5)'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-4838763214779064000</id><published>2009-05-05T18:02:00.001+06:00</published><updated>2009-05-05T18:04:18.041+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Discourses'/><category scheme='http://www.blogger.com/atom/ns#' term='Rumi'/><category scheme='http://www.blogger.com/atom/ns#' term='seed with no husk'/><category scheme='http://www.blogger.com/atom/ns#' term='Discourse 5'/><category scheme='http://www.blogger.com/atom/ns#' term='form is a great and necessary principle'/><category scheme='http://www.blogger.com/atom/ns#' term='Discourses of Rumi'/><title type='text'>Discourses of Rumi (Discourse 5)</title><content type='html'>Form too possesses great importance. No, much more than importance— it is of true substance. Just as the body will fail if it lacks a heart, so too it fails without a skin. If you plant a seed with no husk, it cannot grow, but if you bury it in the earth with its shell, then it germinates and&lt;br /&gt;becomes a great tree. So, form is a great and necessary principle, and without it our task fails and&lt;br /&gt;our purpose is not attained. Yes, this principle is reality in the eyes of those who know reality and have become reality!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-4838763214779064000?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/4838763214779064000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2009/05/discourses-of-rumi-discourse-5.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/4838763214779064000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/4838763214779064000'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2009/05/discourses-of-rumi-discourse-5.html' title='Discourses of Rumi (Discourse 5)'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-1977321256623627625</id><published>2009-04-22T00:53:00.000+06:00</published><updated>2009-04-22T01:05:07.489+06:00</updated><title type='text'></title><content type='html'>&lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="300"&gt; &lt;param name="movie" value="http://www.britepic.com/britepic.swf"&gt; &lt;param name="FlashVars" value="id=1138608&amp;src=http://3.bp.blogspot.com/_bnsbYdkDGfI/Se4XA14THpI/AAAAAAAAAIQ/OJfB--0dDgA/s1600-h/image005.jpg&amp;keywords=children,%20child,%20flower,%20garden,%20rose,%20beauty&amp;href=http%253A//&amp;caption=image005&amp;width=400&amp;height=300&amp;" &gt; &lt;param name="allowscriptaccess" value="always"&gt; &lt;param name="wmode" value="transparent"&gt; &lt;embed src="http://www.britepic.com/britepic.swf" flashvars="id=1138608&amp;src=http://3.bp.blogspot.com/_bnsbYdkDGfI/Se4XA14THpI/AAAAAAAAAIQ/OJfB--0dDgA/s1600-h/image005.jpg&amp;keywords=children,%20child,%20flower,%20garden,%20rose,%20beauty&amp;href=http%253A//&amp;caption=image005&amp;width=400&amp;height=300&amp;" allowscriptaccess="always" pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="transparent" type="application/x-shockwave-flash" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_bnsbYdkDGfI/Se4XAiKUKqI/AAAAAAAAAII/3pTEUvVPy14/s1600-h/image004.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 249px;" src="http://3.bp.blogspot.com/_bnsbYdkDGfI/Se4XAiKUKqI/AAAAAAAAAII/3pTEUvVPy14/s320/image004.jpg" alt="" id="BLOGGER_PHOTO_ID_5327220707163384482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_bnsbYdkDGfI/Se4XAf1xbfI/AAAAAAAAAIA/ankdhfDxoZ4/s1600-h/image003.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 302px;" src="http://3.bp.blogspot.com/_bnsbYdkDGfI/Se4XAf1xbfI/AAAAAAAAAIA/ankdhfDxoZ4/s320/image003.jpg" alt="" id="BLOGGER_PHOTO_ID_5327220706540350962" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_bnsbYdkDGfI/Se4XALffASI/AAAAAAAAAH4/rEHcTjxHW5E/s1600-h/image002.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 255px; height: 320px;" src="http://4.bp.blogspot.com/_bnsbYdkDGfI/Se4XALffASI/AAAAAAAAAH4/rEHcTjxHW5E/s320/image002.jpg" alt="" id="BLOGGER_PHOTO_ID_5327220701078159650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_bnsbYdkDGfI/Se4XAGf4-4I/AAAAAAAAAHw/sKq23BCKcew/s1600-h/image001.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 257px;" src="http://1.bp.blogspot.com/_bnsbYdkDGfI/Se4XAGf4-4I/AAAAAAAAAHw/sKq23BCKcew/s320/image001.jpg" alt="" id="BLOGGER_PHOTO_ID_5327220699737684866" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-1977321256623627625?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/1977321256623627625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2009/04/blog-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/1977321256623627625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/1977321256623627625'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2009/04/blog-post.html' title=''/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bnsbYdkDGfI/Se4XAiKUKqI/AAAAAAAAAII/3pTEUvVPy14/s72-c/image004.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-8030089946143174074</id><published>2009-03-26T16:44:00.000+05:00</published><updated>2009-03-26T16:48:05.503+05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Discourses'/><category scheme='http://www.blogger.com/atom/ns#' term='Discourse'/><category scheme='http://www.blogger.com/atom/ns#' term='Rumi'/><category scheme='http://www.blogger.com/atom/ns#' term='Discourse 4'/><category scheme='http://www.blogger.com/atom/ns#' term='Discourse Four'/><title type='text'>Discourses of Rumi (discourse 4)</title><content type='html'>&lt;div style="text-align: justify; color: rgb(255, 204, 0);"&gt;&lt;span style="font-size:100%;"&gt;All things are assigned a task. The heavens send rain and light for the herbs of the ﬁeld to germinate and spring into life. The earth receives the seeds and bears fruit, it accepts and reveals a hundred thousand marvels too numerous to tell. The mountains give forth mines of gold and silver. All these things the heavens, the earth and the mountains do, yet they do not perform that one thing; that particular task is performed by us.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:100%;"&gt;  &lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-family: times new roman; font-style: italic;"&gt;“We offered the Trust to the heavens,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: times new roman; font-style: italic;"&gt;       The earth and the mountains,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: times new roman; font-style: italic;"&gt;They refused to carry it and were afraid of it,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: times new roman; font-style: italic;"&gt;           But humans carried it.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: times new roman; font-style: italic;"&gt;    Surely they are foolish and sinful.”&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-8030089946143174074?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/8030089946143174074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2009/03/discourses-of-rumi-discourse-4.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/8030089946143174074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/8030089946143174074'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2009/03/discourses-of-rumi-discourse-4.html' title='Discourses of Rumi (discourse 4)'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-6448952399007523071</id><published>2009-03-19T19:17:00.001+05:00</published><updated>2009-03-19T19:17:37.409+05:00</updated><title type='text'>Discourses of Rumi (Discourse 3)</title><content type='html'>&lt;span style="color: rgb(255, 204, 204);"&gt;A certain king said to a dervish, “In the moment when you ﬁnd revelation and propinquity in the Court of God, remember me.” The dervish replied, “When I come into that Presence, and the Light of that Sun shines upon me, I will no more remember myself. How then can I remember you?”&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 204, 204);"&gt;Even still, make a request of such a dervish, who is utterly absorbed, and even without them mentioning you or your needs in God’s presence still the request is fulﬁlled.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 204, 204);"&gt;There was once a king who had a favorite and highly conﬁdential servant. Whenever that servant set out for the royal palace, people who had a request to make presented him with their histories and their letters, begging him to submit them to the king. He would place the documents in his wallet. On coming into the king’s presence, he could not endure the splendor of the king’s beauty, and would fall down dumfounded. The king would then, in a loving manner, put his hand into his wallet, saying, “What does this servant of mine have here, who is utterly absorbed in my beauty?”&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 204, 204);"&gt;In this way he found the letters and would endorse the petitions of every man and woman, and then return the documents into the wallet. So he would attend to the needs of every one of them, without that servant ever submitting them, so that not a single one was rejected. On the contrary, their demands were granted many times over, and they attained far more than they had asked for. But in the case of other servants who retained consciousness, and were able to present and indicate to the king the histories of the people in need—out of a hundred requests and a hundred needs, only one might be fulﬁlled.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-6448952399007523071?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/6448952399007523071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2009/03/discourses-of-rumi-discourse-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/6448952399007523071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/6448952399007523071'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2009/03/discourses-of-rumi-discourse-3.html' title='Discourses of Rumi (Discourse 3)'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-4183060214683422592</id><published>2009-03-18T16:40:00.000+05:00</published><updated>2009-03-18T16:41:50.713+05:00</updated><title type='text'>Discourses of Rumi - (Discourse 2)</title><content type='html'>&lt;span style="color: rgb(255, 255, 204);font-size:100%;" &gt;The many things of this world are a trial appointed by God, for they hide the single reality,  There is a saying, that the saint is One, human kind is a hundred, meaning the saint's whole attention remains upon the one truth, while people are scattered over a hundred appearances.&lt;br /&gt;&lt;br /&gt;But which Hundred? Which Fifty? Which Sixty? Lost in this world of mirrored reflections, they are faceless people without hands and feet, without mind and soul, quivering like a magic talisman, like quick-silver or mercury.&lt;br /&gt;&lt;br /&gt;Call them sixty, a hundred or a thousand, they are nothing, but the Saint is a thousand.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-4183060214683422592?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/4183060214683422592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2009/03/discourses-of-rumi-discourse-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/4183060214683422592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/4183060214683422592'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2009/03/discourses-of-rumi-discourse-2.html' title='Discourses of Rumi - (Discourse 2)'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-6610957903723342458</id><published>2009-03-17T20:43:00.000+05:00</published><updated>2009-03-17T20:44:13.761+05:00</updated><title type='text'>Hazrat Ali (A.S.) Quotes</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_bnsbYdkDGfI/Sb_FNU5iigI/AAAAAAAAAHo/X6PB3t88wfI/s1600-h/image004.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 271px; height: 320px;" src="http://1.bp.blogspot.com/_bnsbYdkDGfI/Sb_FNU5iigI/AAAAAAAAAHo/X6PB3t88wfI/s320/image004.jpg" alt="" id="BLOGGER_PHOTO_ID_5314182918059493890" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-6610957903723342458?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/6610957903723342458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2009/03/hazrat-ali-as-quotes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/6610957903723342458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/6610957903723342458'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2009/03/hazrat-ali-as-quotes.html' title='Hazrat Ali (A.S.) Quotes'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_bnsbYdkDGfI/Sb_FNU5iigI/AAAAAAAAAHo/X6PB3t88wfI/s72-c/image004.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-331836420457324910</id><published>2009-03-17T18:16:00.000+05:00</published><updated>2009-03-17T18:38:32.752+05:00</updated><title type='text'>Discourses of Rumi (Discourse 1)</title><content type='html'>&lt;div style="text-align: justify; color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;Mohammed &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 255, 255);"&gt;(peace be upon him)&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;, the great Prophet, once&lt;/span&gt; &lt;span style="color: rgb(255, 255, 255);"&gt;said, “The worst of scholars are those who visit&lt;/span&gt; &lt;span style="color: rgb(255, 255, 255);"&gt;princes, and the best of princes are those who visit &lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;scholars. Wise is the prince who stands at the &lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;door of the poor, and wretched are the poor who&lt;/span&gt; &lt;span style="color: rgb(255, 255, 255);"&gt;stand at the door of the prince.”&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-331836420457324910?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/331836420457324910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2009/03/discourses-of-rumi-discourse-1.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/331836420457324910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/331836420457324910'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2009/03/discourses-of-rumi-discourse-1.html' title='Discourses of Rumi (Discourse 1)'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-2326931147813625999</id><published>2009-03-17T18:06:00.000+05:00</published><updated>2009-03-17T18:52:04.925+05:00</updated><title type='text'>Discourses of Rumi (Discourse 26)</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(64, 49, 15);font-family:Arial,Helvetica,sans-serif;font-size:100%;"  &gt; &lt;span style="color: rgb(255, 204, 204);"&gt;In discourse Twenty-Six Rumi says, “Beware! Do not say, ‘‘I have understood.’‘ The more you understand and grasp these words, the farther you will be from understanding them. Their meaning comes in not understanding.”&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);font-family:Arial,Helvetica,sans-serif;font-size:100%;"  &gt;Such insights can not be explained, we must catch them inwardly, with only the subtle clues that Rumi leaves to guide us.      Follow Rumi closely in this way, and you will see a string that holds one pearl to the next on this necklace. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-2326931147813625999?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/2326931147813625999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2009/03/discourses-of-rumi.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/2326931147813625999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/2326931147813625999'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2009/03/discourses-of-rumi.html' title='Discourses of Rumi (Discourse 26)'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-8779884655552081973</id><published>2009-03-17T17:07:00.001+05:00</published><updated>2009-03-17T17:07:43.177+05:00</updated><title type='text'>It is what it is (Author: Al-Rumi (Translated by Doug Marman))</title><content type='html'>&lt;span style="color: rgb(255, 255, 255); font-weight: bold;font-family:Arial,Helvetica,sans-serif;font-size:100%;"  &gt;A story is told that one such public challenge came from a Muslim dignitary, Qonavi, who confronted Rumi before an audience. “You claim to be at one with 72 religious sects,” said Qonavi, “but the Jews cannot agree with the Christians, and the Christians cannot agree with Muslims. If they cannot agree with each other, how could you agree with them all?” To this Rumi answered, “Yes, you are right, I agree with you too. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-8779884655552081973?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/8779884655552081973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2009/03/it-is-what-it-is-author-al-rumi_17.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/8779884655552081973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/8779884655552081973'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2009/03/it-is-what-it-is-author-al-rumi_17.html' title='It is what it is (Author: Al-Rumi (Translated by Doug Marman))'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8660592024451013107.post-4226130327100258404</id><published>2009-03-17T17:03:00.000+05:00</published><updated>2009-03-17T17:05:56.835+05:00</updated><title type='text'>It is what it is (Author: Al-Rumi (Translated by Doug Marman))</title><content type='html'>&lt;span style="color: rgb(255, 204, 204); font-weight: bold;font-family:Arial,Helvetica,sans-serif;font-size:100%;"  &gt;The story is told that one day, while Rumi was in deep contemplation, surrounded by his disciples, a drunkard walked in shouting and stumbling. The man staggered toward Rumi, and then fell on him. To Rumi’‘s followers such a disgrace of their teacher was intolerable, and they rose as one to rush the ignorant fool. Rumi stopped them with his raised hand, saying, “I thought this intruder was the one who was intoxicated, but now I see it is not he, but my own students who are drunk!”&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8660592024451013107-4226130327100258404?l=vixmemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vixmemon.blogspot.com/feeds/4226130327100258404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vixmemon.blogspot.com/2009/03/it-is-what-it-is-author-al-rumi.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/4226130327100258404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8660592024451013107/posts/default/4226130327100258404'/><link rel='alternate' type='text/html' href='http://vixmemon.blogspot.com/2009/03/it-is-what-it-is-author-al-rumi.html' title='It is what it is (Author: Al-Rumi (Translated by Doug Marman))'/><author><name>Waqas Memon</name><uri>https://profiles.google.com/112803736379740099020</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-VFlDKvHO7Wo/AAAAAAAAAAI/AAAAAAAAAAA/1NyiB2CsTtQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
