Skip to main content

Posts

Showing posts from 2009

Singleton pattern revisited in Java

Lets look at one the simple implementation of Singleton pattern in Java public class A { public static A a; private A () {} public static A getInstance() { if ( a == null ) { a = new A(); } return a; } } I'm arguing there is a major flaw in the implementation of getInstance() method, most of the old authors have simply translated all pattern implementation into Java from C++, remember Java Class-loaders work differently from C++. The above class is never loaded until we call A.getInstance() once, so what is the point of writing that thread safe, or validation code its all waste and we are simply introducing rubbish, simple implement Singleton pattern this way public class A { public static A a = new A(); private A () {} public static A getInstance() { return a; } }

Does IE6 has any benefits?

I don't like Microsoft like any other open source lover. Though my question is on greatest nightmare IE6, does it have any benefits? I was lucky enough to think one IE6 creates more jobs (i.e UI developer & QA). hahhahah...... Please comment if you know any other IE6 benefit so i can update this post.

Pros and Cons of using DOJO

DOJO is one of the leading JavaScript framework, and few of its competitors are JQuery and YUI. There are few reasons why anyone would want to use a JavaScript framework like DOJO.  Since these toolkits provides lot of features out of the box example:       Rich html components (i.e. Tables, Menus, Textboxes, buttons, Tooltip, Dialog box etc)       Event handling (ie onclick, onhover etc)       AJAX As we all know the issues(i.e browser incompatibility and many more) we encounter if we write all of these things in regular JavaScript, HTML and CSS. So using any JavaScript library makes a better choice. Let me summarize my experience using DOJO. First the good things DOJO has all the components you would most likely use (i.e Calendar, Menus, Trees, Validation, Grids, Event Propagations, Layouts etc) DOJO supports different themes (i.e Tundra, Soria etc). Also you can write your own look and feel and customize accordingly DOJO executes fastest on the browser DOJO is more mature than i

Load Balancing and Clustering Liferay

There are two ways of Clustering Liferay on Tomcat 1. Sticky Session User request will always goes to same Liferay instance 2. Session Replication User request can go to any tomcat in cluster and his session is copied on entire cluster Lets get started for Sticky Session based clustering and load balancing. Use-Case Setting up two tomcat Liferay along with apache on same windows machine. Pre-requirements 1. install Apche 2.x 2. download Liferay5.x and make an extra copy Steps 1. open httpd.conf from apache_home/conf/ and add these lines at the end <Proxy balancer://mycluster> BalancerMember ajp://localhost:8009/ route=tomcatA smax=15 max=50 loadfactor=20 BalancerMember ajp://localhost:8010/ route=tomcatB smax=15 max=50 loadfactor=20 </Proxy> <Location / > ProxyPass balancer://mycluster/ stickysession=JSESSIONID </Location> <Location /balancer-manager> SetHandler balancer-manager Order Deny,Allow Deny from all Allow from l

Load Balancing and Clustering Tomcat

There are two ways of Clustering applications on Tomcat 1. Sticky Session User request will always goes to same tomcat instance 2. Session Replication User request can go to any tomcat in cluster and his session is copied on entire cluster There are pros and cons of both approach, however i'll update this blog later on those. Lets get started for Sticky Session based clustering and load balancing. Use-Case Setting up two tomcat along with apache on same windows machine. Pre-requirements 1. install Apche 2.x 2. download tomcat 5.x /6.x and make an extra copy Steps 1. open httpd.conf from apache_home/conf/ and add these lines at the end BalancerMember ajp://localhost:8009/ route=tomcatA BalancerMember ajp://localhost:8010/ route=tomcatB ProxyPass balancer://mycluster/ stickysession=JSESSIONID SetHandler balancer-manager Order Deny,Allow Deny from all Allow from localhost Step 2. uncomment the following four lines LoadModule proxy_module