<?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-6205172072186192698</id><updated>2011-11-27T16:36:01.217-08:00</updated><category term='portal'/><title type='text'>Manoj: on the Open Source world</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>36</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-7354313915912012366</id><published>2010-11-14T04:07:00.000-08:00</published><updated>2010-11-14T04:10:54.207-08:00</updated><title type='text'>Facebook Vs Google, its going to be intresting..</title><content type='html'>&lt;span class="Apple-style-span"   &gt;&lt;span class="Apple-style-span" style="font-size: 24px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: rgb(64, 64, 64); font-weight: normal; font-size: 13px; line-height: 18px; "&gt;Social networking site Facebook may announce its e-mail service as early as Monday, if online buzz is to be believed.  &lt;a href="http://economictimes.indiatimes.com/infotech/internet/Facebook-may-announce-e-mail-service-Monday/articleshow/6924187.cms"&gt;Read more&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-7354313915912012366?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/7354313915912012366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2010/11/facebook-vs-google-its-going-to-be.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/7354313915912012366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/7354313915912012366'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2010/11/facebook-vs-google-its-going-to-be.html' title='Facebook Vs Google, its going to be intresting..'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-3819195357352258081</id><published>2009-09-21T07:46:00.000-07:00</published><updated>2009-09-21T08:19:01.972-07:00</updated><title type='text'>Loading Message Resources From Database</title><content type='html'>Instead of loading message resource from properties file, here is the code to how to use database as a message resource bundle in struts applcation.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" background-color: rgb(192, 192, 192); font-family:'Courier New';"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;DBPropertyMessageResources.java&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'Courier New';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'Courier New';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;b&gt;&lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt; &lt;span style="background:silver;mso-highlight:silver"&gt;DBPropertyMessageResources&lt;/span&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;extends&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt; MessageResources {&lt;/span&gt;&lt;span style="Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;span style="mso-tab-count:1"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt; DBPropertyMessageResources(MessageResourcesFactory factory, String config,&lt;/span&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;boolean&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt; returnNull) {&lt;/span&gt;&lt;span style="Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;b&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;span style="mso-tab-count:2"&gt;            &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;super&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;(factory, config,returnNull);&lt;/span&gt;&lt;/p&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;b&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;span style="mso-tab-count:2"&gt;            &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;this&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;.&lt;/span&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#0000C0;"&gt;factory&lt;/span&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;=factory;&lt;/span&gt;&lt;/p&gt;&lt;/b&gt;&lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;span style="mso-tab-count:2"&gt;            &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;this&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;.&lt;/span&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#0000C0;"&gt;config&lt;/span&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;=config;&lt;/span&gt;&lt;span style="Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;span style="mso-tab-count:2"&gt;            &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;this&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;.&lt;/span&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#0000C0;"&gt;returnNull&lt;/span&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;=&lt;/span&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;false&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;;&lt;/span&gt;&lt;span style="Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;b&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;span style="mso-tab-count:1"&gt;      &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/b&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:13px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;span style="mso-spacerun:yes"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt; String getMessage(Locale locale, String key) {&lt;/span&gt;&lt;span style=" Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;span style="mso-spacerun:yes"&gt;    &lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;  &lt;/span&gt;String result = DBPropertyMessageService.&lt;i&gt;getMessage&lt;/i&gt;(locale, key,&lt;/span&gt;&lt;span style="Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;span style="mso-spacerun:yes"&gt;    &lt;/span&gt;&lt;span style="mso-tab-count: 2"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:#0000C0;"&gt;returnNull&lt;/span&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;);&lt;/span&gt;&lt;span style="Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;span style="mso-spacerun:yes"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#3F7F5F;"&gt;// we need to flush the cache of the super class MessageResource as&lt;/span&gt;&lt;span style="Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:#3F7F5F;"&gt;//we want to have real &lt;span style="mso-tab-count:1"&gt; &lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt; &lt;/span&gt;dynamic data here (no caches&lt;/span&gt;&lt;span style="Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;span style="mso-spacerun:yes"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#3F7F5F;"&gt;//except the one in DBPropertyMessageService)&lt;/span&gt;&lt;span style=" Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;span style="mso-spacerun:yes"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#0000C0;"&gt;formats&lt;/span&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;.clear();&lt;/span&gt;&lt;span style="Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;span style="mso-spacerun:yes"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;return&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt; result; &lt;/span&gt;&lt;span style="Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;}&lt;/span&gt;&lt;span style="Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;}&lt;/p&gt;&lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=" color: black; background-image: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background- background-position: initial initial; font-family:'Courier New';color:silver;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;DBPropertyMessageResourcesFactory.java&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-Times New Roman&amp;quot;; mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language: AR-SAfont-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt; &lt;span style="background:silver;mso-highlight:silver"&gt;DBPropertyMessageResourcesFactory&lt;/span&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;extends&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;MessageResourcesFactory {&lt;/span&gt;&lt;span style=" Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;span style="mso-tab-count:1"&gt;      &lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt; &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=" Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt; MessageResources createResources(String config) {&lt;/span&gt;&lt;span style="Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;span style="mso-tab-count:1"&gt;      &lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=" Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;return&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt; DBPropertyMessageResources(&lt;/span&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;this&lt;/span&gt;&lt;/b&gt;&lt;span style=" Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;, config,&lt;span style="mso-tab-count: 1"&gt; &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;this&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;.&lt;/span&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:#0000C0;"&gt;returnNull&lt;/span&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;);&lt;/span&gt;&lt;span style="Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;span style="mso-tab-count:1"&gt;      &lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;    &lt;/span&gt;}&lt;/span&gt;&lt;span style=" Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;b&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:13px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;/b&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=" color: black; background-image: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background- background-position: initial initial; font-family:'Courier New';color:silver;"&gt;DBPropertyMessageService.java&lt;/span&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-Times New Roman&amp;quot;; mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language: AR-SAfont-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="background-color: rgb(192, 192, 192);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt; &lt;span style="background:silver;mso-highlight:silver"&gt;DBPropertyMessageService&lt;/span&gt; {&lt;/span&gt;&lt;span style="Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;span style="mso-tab-count:1"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;static&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt; String getMessage(Locale locale, String key, &lt;/span&gt;&lt;b&gt;&lt;span style=" Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;boolean&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt; returnNull) &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/span&gt;&lt;span style="Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;b&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:13px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;span style="mso-tab-count:2"&gt;            &lt;/span&gt;key=&lt;/span&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;/b&gt;&lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;span style="mso-tab-count:2"&gt;            &lt;/span&gt;returnNull=&lt;/span&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;true&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;;&lt;/span&gt;&lt;span style="Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;span style="mso-tab-count:2"&gt;            &lt;/span&gt;locale=&lt;/span&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;;&lt;/span&gt;&lt;span style="Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span class="Apple-style-span" style="font-size: -webkit-xxx-large;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; font-size: 16px; "&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;quot;;font-size:10.0pt;color:#3F7F5F;"&gt;// do the jdbc coding to get the value from the database using the key &lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/b&gt;&lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;b&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:13px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;span style="mso-tab-count:2"&gt;            &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#7F0055;"&gt;return&lt;/span&gt;&lt;/b&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt; &lt;/span&gt;&lt;span style="Courier New&amp;quot;;font-family:&amp;quot;;font-size:10.0pt;color:#2A00FF;"&gt;"sparkle software"&lt;/span&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;/b&gt;&lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;span style="mso-tab-count:1"&gt;      &lt;/span&gt;}&lt;/span&gt;&lt;span style="Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;font-family:&amp;quot;;font-size:10.0pt;"&gt;&lt;o:p&gt; &lt;span class="Apple-style-span"  style="font-weight: normal;  font-size:medium;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;span style="Courier New&amp;quot;; font-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;span style="mso-tab-count:1"&gt;   &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;/b&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:13px;"&gt;&lt;span class="Apple-style-span"  style="font-weight: normal;  font-size:medium;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;b&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:13px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=" color: black; background-image: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background- background-position: initial initial; font-family:'Courier New';color:silver;"&gt;struts-config.xml&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="background-color: rgb(192, 192, 192);"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="mso-pagination:none;mso-layout-grid-align:none; text-autospace:none"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;b&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:13px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:13px;"&gt;&lt;span class="Apple-style-span"  style="font-weight: normal;  font-size:medium;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;span class="Apple-style-span" style="background-color: rgb(192, 192, 192);"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;span style="Courier New&amp;quot;; background:blue;mso-highlight:bluefont-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;&lt;span class="Apple-style-span"  style="font-weight: normal;  font-size:medium;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;b&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:13px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:13px;"&gt;&lt;span class="Apple-style-span"  style="font-weight: normal;  font-size:medium;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;span class="Apple-style-span" style="background-color: rgb(192, 192, 192);"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;span style="Courier New&amp;quot;; background:blue;mso-highlight:bluefont-family:&amp;quot;;font-size:10.0pt;color:teal;"&gt;&lt;&lt;/span&gt;&lt;span style="Courier New&amp;quot;;background: blue;mso-highlight:bluefont-family:&amp;quot;;font-size:10.0pt;color:#3F7F7F;"&gt;message-resources &lt;/span&gt;&lt;span style=" Courier New&amp;quot;;background:blue;mso-highlight:bluefont-family:&amp;quot;;font-size:10.0pt;color:#7F007F;"&gt;factory&lt;/span&gt;&lt;span style="Courier New&amp;quot;;background:blue; mso-highlight:bluefont-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;=&lt;/span&gt;&lt;span style="Courier New&amp;quot;; background:blue;mso-highlight:bluefont-family:&amp;quot;;font-size:10.0pt;color:#2A00FF;"&gt;"com.sparkle.resources.DBPropertyMessageResourcesFactory" &lt;/span&gt;&lt;span style="Courier New&amp;quot;; background:blue;mso-highlight:bluefont-family:&amp;quot;;font-size:10.0pt;color:#7F007F;"&gt;parameter&lt;/span&gt;&lt;span style="Courier New&amp;quot;;background:blue;mso-highlight: bluefont-family:&amp;quot;;font-size:10.0pt;color:black;"&gt;=&lt;/span&gt;&lt;span style="Courier New&amp;quot;; background:blue;mso-highlight:bluefont-family:&amp;quot;;font-size:10.0pt;color:#2A00FF;"&gt;"param1"&lt;/span&gt;&lt;span style="Courier New&amp;quot;;background:blue; mso-highlight:bluefont-family:&amp;quot;;font-size:10.0pt;color:teal;"&gt;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;/b&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;/b&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-3819195357352258081?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/3819195357352258081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/09/loading-message-resources-from-database.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/3819195357352258081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/3819195357352258081'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/09/loading-message-resources-from-database.html' title='Loading Message Resources From Database'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-694848124234572080</id><published>2009-09-06T22:21:00.000-07:00</published><updated>2009-09-07T00:11:27.310-07:00</updated><title type='text'>Search Engine for API Search</title><content type='html'>When I was doing research this morning, I came to know that there is a search engine for API search called &lt;a href="http://start.gotapi.com/"&gt;gotAPI.com&lt;/a&gt;. They have got all kinds of api search like java, database, ajax, frameworks etc.  And now, they have launched new beta version of gotAPI.com &lt;a href="http://beta.gotapi.com/"&gt;http://beta.gotapi.com/&lt;/a&gt; this have got lot of new features and included more api's.  It will be helpful for developers, so I thought of writing this post.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-694848124234572080?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/694848124234572080/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/09/search-engine-for-api-search.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/694848124234572080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/694848124234572080'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/09/search-engine-for-api-search.html' title='Search Engine for API Search'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-504840653955976385</id><published>2009-09-04T04:14:00.000-07:00</published><updated>2009-09-04T04:20:49.731-07:00</updated><title type='text'>Java Magic Number</title><content type='html'>A numerical identifier for the class file. It should always be &lt;span style="font-weight: bold;"&gt;CAFEBABE&lt;/span&gt;, in hex, stored in the first 4 bytes of the class file. The easiest way to corrupt a class file’s magic number is to upload it to your website with FTP failing to turn on the binary option&lt;br /&gt;&lt;br /&gt;Sometimes during the transmission of files, the connection may be aborted, or may be scrambled, causing class loading to fail. Sometimes when copying files over to a web server, they may become garbled or a disk error might occur. For this reason, special care is taken by the JVM and the class loader, to verify that classes are intact. One of the precautions is that every class definition contains at the beginning the magic number, a sequence of four bytes that identify a file as a Java class definition file.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-504840653955976385?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/504840653955976385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/09/java-magic-number.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/504840653955976385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/504840653955976385'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/09/java-magic-number.html' title='Java Magic Number'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-2197236319887271066</id><published>2009-09-04T03:33:00.000-07:00</published><updated>2009-09-04T03:40:40.901-07:00</updated><title type='text'>Yahoo meme</title><content type='html'>Yahoo launches a microblogging platform which looks like twitter.  Now in English version of &lt;a href="http://meme.yahoo.com"&gt;Yahoo meme&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-2197236319887271066?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/2197236319887271066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/09/yahoo-meme.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/2197236319887271066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/2197236319887271066'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/09/yahoo-meme.html' title='Yahoo meme'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-6563461806275477176</id><published>2009-08-10T23:58:00.000-07:00</published><updated>2009-08-11T00:18:25.550-07:00</updated><title type='text'>Google Caffeine - New version of Google Search?</title><content type='html'>Google has just unveiled a “secret project” of “&lt;a href="http://googlewebmastercentral.blogspot.com/2009/08/help-test-some-next-generation.html"&gt;next-generation architecture for Google’s web search&lt;/a&gt;“.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What's New&lt;/b&gt;&lt;br /&gt;&lt;p&gt;The categories for the new search engine on are as follows: speed, accuracy, temporal relevancy, and index size. Here’s how we define those:&lt;br /&gt;&lt;span id="more-138268"&gt;&lt;/span&gt;&lt;/p&gt; &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Speed:&lt;/strong&gt; How fast can the new search engine load results?&lt;/p&gt;   &lt;p&gt;&lt;strong&gt;Accuracy:&lt;/strong&gt; Which set of results is more accurate to the search term?&lt;/p&gt;   &lt;p&gt;&lt;strong&gt;Temporal Relevancy:&lt;/strong&gt; Is one version of search better at capturing breaking news? &lt;/p&gt;   &lt;p&gt;&lt;strong&gt;Index Size:&lt;/strong&gt; Is it really more comprehensive than the last version of Google?   &lt;/p&gt; &lt;/blockquote&gt;&lt;br /&gt;Please visit the web developer preview of Google's new infrastructure at &lt;a href="http://www2.sandbox.google.com/"&gt;http://www2.sandbox.google.com/&lt;/a&gt; and try searches there.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-6563461806275477176?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/6563461806275477176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/08/google-caffeine-new-version-of-google.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/6563461806275477176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/6563461806275477176'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/08/google-caffeine-new-version-of-google.html' title='Google Caffeine - New version of Google Search?'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-5083109486508352605</id><published>2009-08-04T01:49:00.000-07:00</published><updated>2009-08-04T09:43:17.432-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='portal'/><title type='text'>Servlets vs Portlets</title><content type='html'>&lt;ul&gt;   &lt;li&gt;  Portlets are not accessible by a URL. Portlets are intended to be part of a page, as opposed to being independent pages.&lt;/li&gt; &lt;/ul&gt; &lt;ul&gt;   &lt;li&gt;  Browsers and web clients interact with portlets through the portal server.  Portlets can neither set HTTP headers, nor be aware of the client URL.&lt;/li&gt; &lt;/ul&gt; &lt;ul&gt;   &lt;li&gt;  The portal server provides a customized subset of the request object to a portlet.&lt;/li&gt; &lt;/ul&gt; &lt;ul&gt;   &lt;li&gt;  Portlets only contribute a fragment of the HTML page that is eventually presented to the browser, and not the whole page. A portal server aggregates these fragments from various portlets to create a final page.&lt;br /&gt; &lt;/li&gt; &lt;/ul&gt; &lt;ul&gt;   &lt;li&gt;  Portlets come with certain modes and window states that make them function independently of the whole page behavior.&lt;br /&gt; &lt;/li&gt; &lt;/ul&gt; &lt;ul&gt;   &lt;li&gt;  Portlets have access to some specialized functionality that allows storage of states and preferences across requests and sessions.&lt;br /&gt; &lt;/li&gt; &lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-5083109486508352605?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/5083109486508352605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/08/servlets-vs-portlets.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/5083109486508352605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/5083109486508352605'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/08/servlets-vs-portlets.html' title='Servlets vs Portlets'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-1973120226791826071</id><published>2009-08-03T02:06:00.000-07:00</published><updated>2009-08-03T02:13:35.135-07:00</updated><title type='text'>Eclipse based LDAP Browser and Directory Client</title><content type='html'>&lt;a href="http://directory.apache.org/studio/"&gt;Apache Directory Studio&lt;/a&gt;   is a completely directory tooling platform intended to be used with any LDAP server however it is particularly designed for use with Apache Directory Sever.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;br /&gt;&lt;/b&gt; &lt;ul&gt;   &lt;li&gt;LDAP Browser&lt;/li&gt; &lt;/ul&gt;The LDAP Browser has been designed to work with almost any LDAP  server available. It not only permits to read and display the tree of your LDAP Server but also allows you to modify it by creating, editing or removing entries. &lt;ul&gt;   &lt;li&gt;LDIF Editor&lt;/li&gt; &lt;/ul&gt;             The LDIF Editor is a tool for editing LDIF files. It provides syntax highlighting and content assistance. &lt;ul&gt;   &lt;li&gt;Schema Editor&lt;/li&gt; &lt;/ul&gt;             The Schema Editor has been designed to edit the schema files in the OpenLDAP format. It allows you to edit easily attribute types and object classes for Apache Directory Server and OpenLDAP. &lt;ul&gt;   &lt;li&gt;Embeded ApacheDS&lt;/li&gt; &lt;/ul&gt;             Apache Directory Studio bundles the latest version of the LDAPV3 certified Apache DS. Creating and launching a new LDAP server now takes less than 10 seconds! &lt;ul&gt;   &lt;li&gt;ApacheDS Configuration&lt;/li&gt; &lt;/ul&gt;             The Apache DS Configuration Editor can be used to edit the server configuration ('server.xml' file) of an Apache Directory Server installation. &lt;ul&gt;   &lt;li&gt;ACI Editor&lt;/li&gt; &lt;/ul&gt;             The ACI Editor allows you to define, for an entry or a set of entries, graphically or manually (in souce code mode), an ACI (Access Control Information) item specification for Apache Directory Server. &lt;ul&gt;   &lt;li&gt;Internationalization&lt;/li&gt; &lt;/ul&gt;             Apache Directory Studio is now internationalized in English, French and German. We're also open for volunteers who want to add another language support. &lt;ul&gt;   &lt;li&gt;Multi-platform &amp;amp; in eclipse&lt;/li&gt; &lt;/ul&gt;             Based on Eclipse, Apache Directory Studio is a multi-plaform application that runs on Mac OS X, Linux and Windows, and also as plugins inside Eclipse itself.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-1973120226791826071?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/1973120226791826071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/08/eclipse-based-ldap-browser-and.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/1973120226791826071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/1973120226791826071'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/08/eclipse-based-ldap-browser-and.html' title='Eclipse based LDAP Browser and Directory Client'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-5950661234055981044</id><published>2009-07-31T03:24:00.000-07:00</published><updated>2009-07-31T03:27:16.980-07:00</updated><title type='text'>New Features and Enhancements in JDK 7</title><content type='html'>&lt;ul&gt;   &lt;li&gt;The &lt;code&gt;java.nio.file&lt;/code&gt; package and its related package,     &lt;code&gt;java.nio.file.attribute&lt;/code&gt;, provide comprehensive support for file I/O and for accessing the file system. See &lt;a  href="http://java.sun.com/docs/books/tutorial/essential/io/file.html"&gt; File I/O (featuring NIO 2.0)&lt;/a&gt; in the &lt;a  href="http://java.sun.com/docs/books/tutorial"&gt;Java Tutorials&lt;/a&gt;   &lt;/li&gt;   &lt;p&gt; &lt;/p&gt;   &lt;li&gt;Networking   &lt;/li&gt;   &lt;p&gt; &lt;/p&gt;   &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;Sockets Direct Protocol (SDP) is a wire protocol developed to support stream connections over InfiniBand fabric. For more information, see &lt;a  href="http://java.sun.com/docs/books/tutorial/sdp/sockets/"&gt; Understanding the Sockets Direct Protocol&lt;/a&gt; a trail in the &lt;a  href="http://java.sun.com/docs/books/tutorial"&gt;Java Tutorials&lt;/a&gt;.       &lt;/p&gt;     &lt;/li&gt;     &lt;li&gt;&lt;a  href="http://java.sun.com/javase/7/docs/technotes/guides/net/ClassLoader.html"&gt;Closing a URL Classloader       &lt;/a&gt;&lt;/li&gt;     &lt;p&gt; &lt;/p&gt;   &lt;/ul&gt;   &lt;li&gt;Java HotSpot Virtual Machine&lt;br&gt;     &lt;p&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;ul&gt;     &lt;li&gt;&lt;a  href="http://java.sun.com/javase/7/docs/technotes/guides/vm/compressedOops.html"&gt;Compressed Oops&lt;/a&gt; in the Hotspot JVM     &lt;/li&gt;     &lt;p&gt; &lt;/p&gt;     &lt;li&gt;       &lt;p&gt;&lt;a  href="http://java.sun.com/javase/7/docs/technotes/guides/vm/performance-enhancements-7.html"&gt;Java HotSpot Virtual Machine Performance Enhancements&lt;/a&gt;       &lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;   &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;a  href="http://java.sun.com/javase/7/docs/technotes/guides/vm/mulitple-language-support.html"&gt;Java Virtual Machine Suppport for Non-Java Languages&lt;/a&gt;       &lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt;   &lt;p&gt; &lt;/p&gt;   &lt;ul&gt;     &lt;li&gt;&lt;a  href="http://java.sun.com/javase/7/docs/technotes/guides/vm/G1.html"&gt;Garbage-First Collector&lt;/a&gt;     &lt;/li&gt;   &lt;/ul&gt;   &lt;p&gt; &lt;/p&gt;   &lt;li&gt;     &lt;p&gt;&lt;a  href="http://java.sun.com/javase/7/webnotes/updates/encodings.html"&gt;Supported Encodings&lt;/a&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;p&gt; &lt;/p&gt;   &lt;li&gt;     &lt;p&gt;&lt;a  href="http://java.sun.com/javase/7/webnotes/updates/locales.html"&gt;Supported Locales&lt;/a&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;p&gt; &lt;/p&gt;   &lt;li&gt;     &lt;p&gt;&lt;a href="http://java.sun.com/webapps/bugreport"&gt;Submitting a Bug Report and Available Support Options&lt;/a&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p&gt;&lt;a  href="http://java.sun.com/javase/7/docs/legal/SMICopyright.html"&gt;Copyright and License Terms for Documentation&lt;/a&gt;&lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt; &lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-5950661234055981044?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/5950661234055981044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/07/new-features-and-enhancements-in-jdk-7.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/5950661234055981044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/5950661234055981044'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/07/new-features-and-enhancements-in-jdk-7.html' title='New Features and Enhancements in JDK 7'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-6852037849304601314</id><published>2009-07-30T07:33:00.000-07:00</published><updated>2009-07-30T07:36:16.465-07:00</updated><title type='text'>Tips for Using Tomcat in Production</title><content type='html'>&lt;ol&gt;   &lt;li&gt;&lt;strong&gt;If you're running on a 1.5+ JVM, add the following to your &lt;code&gt;JAVA_OPTS&lt;/code&gt; in catalina.sh&lt;/strong&gt; (or &lt;code&gt;catalina.bat&lt;/code&gt; for Windows):     &lt;div class="syntax_hilite"&gt;&lt;span class="langName"&gt;&lt;br&gt;     &lt;/span&gt;     &lt;div id="code-1"&gt;     &lt;div class="code"&gt;     &lt;ol&gt;       &lt;li  style="font-family: 'Courier New',Courier,monospace; font-weight: normal; font-style: normal; color: rgb(58, 106, 139);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/j2ee/heapdumps &lt;/div&gt;       &lt;/li&gt;     &lt;/ol&gt;     &lt;/div&gt;     &lt;/div&gt;     &lt;/div&gt;     &lt;p&gt;Then use a tool such as &lt;a href="http://www.yourkit.com"&gt;YourKit&lt;/a&gt; to analyze the heapdump file. &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;Straight from the &lt;a  href="http://tomcat.apache.org/tomcat-5.5-doc/jasper-howto.html"&gt;Tomcat documentation on Jasper 2&lt;/a&gt;...&lt;br&gt;     &lt;blockquote&gt;       &lt;p&gt;When using Jasper 2 in a production Tomcat server you should consider making the following changes from the default configuration.&lt;br&gt;       &lt;strong&gt;development&lt;/strong&gt; - To disable on access checks for JSP pages compilation set this to &lt;code&gt;false&lt;/code&gt;.&lt;br&gt;       &lt;strong&gt;genStringAsCharArray&lt;/strong&gt; - To generate slightly more efficient char arrays, set this to &lt;code&gt;true&lt;/code&gt;.&lt;br&gt;       &lt;strong&gt;modificationTestInterval&lt;/strong&gt; - If development has to be set to &lt;code&gt;true&lt;/code&gt; for any reason (such as dynamic generation of JSPs), setting this to a high value will improve performance a lot.&lt;br&gt;       &lt;strong&gt;trimSpaces&lt;/strong&gt; - To remove useless bytes from the response, set this to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;     &lt;/blockquote&gt;   &lt;/li&gt;   &lt;li&gt;Use &lt;a  href="http://tomcat.apache.org/tomcat-5.5-doc/cluster-howto.html"&gt;Tomcat's clustering/session replication&lt;/a&gt; capability to minimize application user impact during maintenance periods.&lt;/li&gt;   &lt;li&gt;&lt;strong&gt;Implement custom error pages&lt;/strong&gt; to hide raw exception messages. To do this, simply add something like the following to your web.xml:     &lt;div class="syntax_hilite"&gt;&lt;span class="langName"&gt;&lt;br&gt;     &lt;/span&gt;     &lt;div id="xml-2"&gt;     &lt;div class="xml"&gt;     &lt;ol&gt;       &lt;li  style="font-family: 'Courier New',Courier,monospace; font-weight: normal; font-style: normal; color: rgb(58, 106, 139);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;error&lt;/span&gt;-page&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;       &lt;/li&gt;       &lt;li style="font-weight: bold; color: rgb(38, 83, 106);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;error&lt;/span&gt;-code&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;404&lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;/error&lt;/span&gt;-code&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;       &lt;/li&gt;       &lt;li  style="font-family: 'Courier New',Courier,monospace; font-weight: normal; font-style: normal; color: rgb(58, 106, 139);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;location&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;/error/404.html&lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;/location&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;       &lt;/li&gt;       &lt;li style="font-weight: bold; color: rgb(38, 83, 106);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;/error&lt;/span&gt;-page&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;       &lt;/li&gt;     &lt;/ol&gt;     &lt;/div&gt;     &lt;/div&gt;     &lt;/div&gt;     &lt;p&gt; &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;&lt;strong&gt;Eliminate &lt;code&gt;System.out&lt;/code&gt; and &lt;code&gt;System.err&lt;/code&gt; statements&lt;/strong&gt; from application code and use a logging toolkit such as &lt;a href="http://logging.apache.org/log4j"&gt;Log4J&lt;/a&gt; for application logging.&lt;/li&gt;   &lt;li&gt;&lt;strong&gt;Leverage Tomcat's shared library directory.&lt;/strong&gt; If you're loading several applications with several of the same library dependencies, consider moving them from the applications' &lt;code&gt;WEB-INF/lib&lt;/code&gt; directory to Tomcat's shared library &lt;code&gt;{catalina.home}/shared/lib&lt;/code&gt;. This will reduce the memory used by each application and result in smaller WAR files.&lt;br&gt;     &lt;br&gt;   &lt;/li&gt;   &lt;li&gt;&lt;strong&gt;Tweak memory parameters.&lt;/strong&gt; Most of the time you will want to make a change to the default settings. The best advice here is to create a development environment that matches your production environment and load test the application. While you do this you can also use a profiler to identify bottlenecks, etc.&lt;/li&gt;   &lt;li&gt;&lt;strong&gt;Remove unnecessary applications. &lt;/strong&gt;&lt;/li&gt;   &lt;li&gt;&lt;strong&gt;Secure the Manager application. &lt;/strong&gt;By default there are no users with the manager role. To make use of the manager webapp you need to add a new role and user into the &lt;code&gt;CATALINA_HOME/conf/tomcat-users.xml&lt;/code&gt; file.     &lt;div class="syntax_hilite"&gt;&lt;span class="langName"&gt;&lt;br&gt;     &lt;/span&gt;     &lt;div id="xml-3"&gt;     &lt;div class="xml"&gt;     &lt;ol&gt;       &lt;li  style="font-family: 'Courier New',Courier,monospace; font-weight: normal; font-style: normal; color: rgb(58, 106, 139);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;role&lt;/span&gt; &lt;span  style="color: rgb(0, 0, 102);"&gt;rolename&lt;/span&gt;=&lt;span  style="color: rgb(255, 0, 0);"&gt;"manager"&lt;/span&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;       &lt;/li&gt;       &lt;li style="font-weight: bold; color: rgb(38, 83, 106);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;user&lt;/span&gt; &lt;span  style="color: rgb(0, 0, 102);"&gt;username&lt;/span&gt;=&lt;span  style="color: rgb(255, 0, 0);"&gt;"darren"&lt;/span&gt; &lt;span  style="color: rgb(0, 0, 102);"&gt;password&lt;/span&gt;=&lt;span  style="color: rgb(255, 0, 0);"&gt;"ReallyComplexPassword"&lt;/span&gt; &lt;span  style="color: rgb(0, 0, 102);"&gt;roles&lt;/span&gt;=&lt;span  style="color: rgb(255, 0, 0);"&gt;"manager"&lt;/span&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;/user&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;       &lt;/li&gt;       &lt;li  style="font-family: 'Courier New',Courier,monospace; font-weight: normal; font-style: normal; color: rgb(58, 106, 139);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;/role&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;       &lt;/li&gt;     &lt;/ol&gt;     &lt;/div&gt;     &lt;/div&gt;     &lt;/div&gt;     &lt;p&gt;Use a valve to filter by IP or hostname to only allow a subset of machines to connect (i.e. LAN machines). This can be configured at the Engine, Host, or Context level in the &lt;code&gt;conf/server.xml&lt;/code&gt; by adding something like the following:&lt;/p&gt;     &lt;div class="syntax_hilite"&gt;&lt;span class="langName"&gt;&lt;br&gt;     &lt;/span&gt;     &lt;div id="xml-4"&gt;     &lt;div class="xml"&gt;     &lt;ol&gt;       &lt;li  style="font-family: 'Courier New',Courier,monospace; font-weight: normal; font-style: normal; color: rgb(58, 106, 139);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="color: rgb(128, 128, 128); font-style: italic;"&gt;&amp;lt;!-- allow only LAN IPs to connect to the manager webapp --&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;       &lt;/li&gt;       &lt;li style="font-weight: bold; color: rgb(38, 83, 106);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="color: rgb(128, 128, 128); font-style: italic;"&gt;&amp;lt;!-- contrary to the current Tomcat 5.5 documation the value for 'allow' is not a regular expression --&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;       &lt;/li&gt;       &lt;li  style="font-family: 'Courier New',Courier,monospace; font-weight: normal; font-style: normal; color: rgb(58, 106, 139);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="color: rgb(128, 128, 128); font-style: italic;"&gt;&amp;lt;!-- future versions may have to be specified as 192.168.1.* --&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;       &lt;/li&gt;       &lt;li style="font-weight: bold; color: rgb(38, 83, 106);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;Valve&lt;/span&gt; &lt;span  style="color: rgb(0, 0, 102);"&gt;className&lt;/span&gt;=&lt;span  style="color: rgb(255, 0, 0);"&gt;"org.apache.catalina.valves.RemoteAddrValve"&lt;/span&gt;         &lt;span style="color: rgb(0, 0, 102);"&gt;allow&lt;/span&gt;=&lt;span  style="color: rgb(255, 0, 0);"&gt;"192.168.1.*"&lt;/span&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;/Valve&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;       &lt;/li&gt;     &lt;/ol&gt;     &lt;/div&gt;     &lt;/div&gt;     &lt;/div&gt;     &lt;p&gt; &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;&lt;strong&gt;Strip down &lt;code&gt;server.xml&lt;/code&gt;&lt;/strong&gt; by removing comments to make it easier to read and remove connectors that you don't need. An easy way to do this is the following: Rename &lt;code&gt;CATALINA_HOME/conf/server.xml&lt;/code&gt; to &lt;code&gt;CATALINA_HOME/conf/server-original.xml&lt;/code&gt; and rename &lt;code&gt;CATALINA_HOME/conf/server-minimal.xml&lt;/code&gt; to &lt;code&gt;CATALINA_HOME/conf/server.xml&lt;/code&gt;. The minimal configuration provides the same basic configuration, but without the nested comments is much easier to maintain and understand. Do not delete the original file as the comments make it useful for reference if you ever need to make changes. Unless you are using Tomcat with the Apache server, comment out this line in &lt;code&gt;CATALINA_HOME/conf/server.xml&lt;/code&gt;:     &lt;div class="igBar"&gt;&lt;span id="lxml-5"&gt;&lt;a  href="http://www.digitalsanctum.com/2007/08/18/20-tips-for-using-tomcat-in-production/#"  onclick="javascript:showPlainTxt('xml-5'); return false;"&gt;&lt;br&gt;     &lt;/a&gt;&lt;/span&gt;&lt;/div&gt;     &lt;div class="syntax_hilite"&gt;&lt;span class="langName"&gt;&lt;/span&gt; &lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;Connector&lt;/span&gt; &lt;span  style="color: rgb(0, 0, 102);"&gt;port&lt;/span&gt;=&lt;span  style="color: rgb(255, 0, 0);"&gt;"8009"&lt;/span&gt; &lt;span  style="color: rgb(0, 0, 102);"&gt;enableLookups&lt;/span&gt;=&lt;span  style="color: rgb(255, 0, 0);"&gt;"false"&lt;/span&gt; &lt;span  style="color: rgb(0, 0, 102);"&gt;redirectPort&lt;/span&gt;=&lt;span  style="color: rgb(255, 0, 0);"&gt;"8443"&lt;/span&gt; &lt;span  style="color: rgb(0, 0, 102);"&gt;protocol&lt;/span&gt;=&lt;span  style="color: rgb(255, 0, 0);"&gt;"AJP/1.3"&lt;/span&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;     &lt;div id="xml-5"&gt;     &lt;div class="xml"&gt;     &lt;ol&gt;       &lt;li  style="font-family: 'Courier New',Courier,monospace; font-weight: normal; font-style: normal; color: rgb(58, 106, 139);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;         &lt;/div&gt;       &lt;/li&gt;     &lt;/ol&gt;     &lt;/div&gt;     &lt;/div&gt;     &lt;/div&gt;     &lt;p&gt; &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;&lt;strong&gt;Split your Tomcat installation for added flexibility when it comes time to upgrade Tomcat.&lt;/strong&gt; See the &lt;em&gt;"Advanced Configuration - Multiple Tomcat Instances"&lt;/em&gt; section in the RUNNING.txt file of the Tomcat distribution.&lt;/li&gt;   &lt;li&gt;&lt;strong&gt;&lt;a  href="http://tomcat.apache.org/tomcat-5.5-doc/jasper-howto.html#Web%20Application%20Compilation"&gt;Precompile JSPs&lt;/a&gt; (at build time).&lt;br&gt;     &lt;/strong&gt;&lt;/li&gt;   &lt;li&gt;&lt;strong&gt;Secure directory listings&lt;/strong&gt;. In &lt;code&gt;CATALINA_HOME/conf/web.xml&lt;/code&gt;:     &lt;div class="syntax_hilite"&gt;&lt;span class="langName"&gt;&lt;br&gt;     &lt;/span&gt;     &lt;div id="xml-6"&gt;     &lt;div class="xml"&gt;     &lt;ol&gt;       &lt;li  style="font-family: 'Courier New',Courier,monospace; font-weight: normal; font-style: normal; color: rgb(58, 106, 139);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;servlet&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;       &lt;/li&gt;       &lt;li style="font-weight: bold; color: rgb(38, 83, 106);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;servlet&lt;/span&gt;-name&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;default&lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;/servlet&lt;/span&gt;-name&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;       &lt;/li&gt;       &lt;li  style="font-family: 'Courier New',Courier,monospace; font-weight: normal; font-style: normal; color: rgb(58, 106, 139);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;servlet&lt;/span&gt;-class&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;org.apache.catalina.servlets.DefaultServlet&lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;/servlet&lt;/span&gt;-class&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp;&lt;/div&gt;       &lt;/li&gt;       &lt;li style="font-weight: bold; color: rgb(38, 83, 106);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;init&lt;/span&gt;-param&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;       &lt;/li&gt;       &lt;li  style="font-family: 'Courier New',Courier,monospace; font-weight: normal; font-style: normal; color: rgb(58, 106, 139);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;param&lt;/span&gt;-name&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;debug&lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;/param&lt;/span&gt;-name&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;       &lt;/li&gt;       &lt;li style="font-weight: bold; color: rgb(38, 83, 106);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;param&lt;/span&gt;-value&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;0&lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;/param&lt;/span&gt;-value&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;       &lt;/li&gt;       &lt;li  style="font-family: 'Courier New',Courier,monospace; font-weight: normal; font-style: normal; color: rgb(58, 106, 139);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;/init&lt;/span&gt;-param&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;       &lt;/li&gt;       &lt;li style="font-weight: bold; color: rgb(38, 83, 106);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;init&lt;/span&gt;-param&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;       &lt;/li&gt;       &lt;li  style="font-family: 'Courier New',Courier,monospace; font-weight: normal; font-style: normal; color: rgb(58, 106, 139);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;param&lt;/span&gt;-name&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;listings&lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;/param&lt;/span&gt;-name&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;       &lt;/li&gt;       &lt;li style="font-weight: bold; color: rgb(38, 83, 106);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;param&lt;/span&gt;-value&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;false&lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;/param&lt;/span&gt;-value&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp; &lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="color: rgb(128, 128, 128); font-style: italic;"&gt;&amp;lt;!-- make sure this is false --&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;       &lt;/li&gt;       &lt;li  style="font-family: 'Courier New',Courier,monospace; font-weight: normal; font-style: normal; color: rgb(58, 106, 139);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;/init&lt;/span&gt;-param&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;       &lt;/li&gt;       &lt;li style="font-weight: bold; color: rgb(38, 83, 106);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;load&lt;/span&gt;-on-startup&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;1&lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;/load&lt;/span&gt;-on-startup&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;       &lt;/li&gt;       &lt;li  style="font-family: 'Courier New',Courier,monospace; font-weight: normal; font-style: normal; color: rgb(58, 106, 139);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;/servlet&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;       &lt;/li&gt;     &lt;/ol&gt;     &lt;/div&gt;     &lt;/div&gt;     &lt;/div&gt;     &lt;p&gt; &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;If you have multi-core CPUs or more than one CPUs on your server, it might be beneficial to &lt;strong&gt;increase the thread pool beyond the default 250&lt;/strong&gt;. On the other hand, if you have a slow server, decreasing the thread pool will decrease the overhead on the server.&lt;/li&gt;   &lt;li&gt;&lt;strong&gt;Monitor application applications via Tomcat MBeans.&lt;/strong&gt; This &lt;a href="http://www.devx.com/Java/Article/32730/1954?pf=true"&gt;article&lt;/a&gt; provides some great insight on how to do this.&lt;/li&gt;   &lt;li&gt;&lt;strong&gt;Consider JDK 1.5 or even better JDK 1.6&lt;/strong&gt; to take advantage of performance improvements.&lt;br&gt;     &lt;br&gt;   &lt;/li&gt;   &lt;li&gt;&lt;strong&gt;Use the &lt;code&gt;-server&lt;/code&gt; JVM option.&lt;/strong&gt; This enables the server JVM, which JIT compiles bytecode much earlier, and with stronger optimizations. Startup and first calls will be slower due to JIT compilation taking more time, but subsequent ones will be faster.&lt;/li&gt;   &lt;li&gt;&lt;strong&gt;Use GZIP compression&lt;/strong&gt;. Look for the service connector you wish to configure for compression and add two attributes,     &lt;code&gt;compression&lt;/code&gt; and &lt;code&gt;compressableMimeType&lt;/code&gt;. For example:     &lt;div class="igBar"&gt;&lt;span id="lxml-7"&gt;&lt;a  href="http://www.digitalsanctum.com/2007/08/18/20-tips-for-using-tomcat-in-production/#"  onclick="javascript:showPlainTxt('xml-7'); return false;"&gt;&lt;br&gt;     &lt;/a&gt;&lt;/span&gt;&lt;/div&gt;     &lt;div class="syntax_hilite"&gt;&lt;span class="langName"&gt;&amp;nbsp;&lt;/span&gt;     &lt;div id="xml-7"&gt;     &lt;div class="xml"&gt;     &lt;ol&gt;       &lt;li  style="font-family: 'Courier New',Courier,monospace; font-weight: normal; font-style: normal; color: rgb(58, 106, 139);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;Connector&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;       &lt;/li&gt;       &lt;li style="font-weight: bold; color: rgb(38, 83, 106);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp;port="80"&lt;/div&gt;       &lt;/li&gt;       &lt;li  style="font-family: 'Courier New',Courier,monospace; font-weight: normal; font-style: normal; color: rgb(58, 106, 139);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp;maxHttpHeaderSize="8192"&lt;/div&gt;       &lt;/li&gt;       &lt;li style="font-weight: bold; color: rgb(38, 83, 106);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp;URIEncoding="UTF-8"&lt;/div&gt;       &lt;/li&gt;       &lt;li  style="font-family: 'Courier New',Courier,monospace; font-weight: normal; font-style: normal; color: rgb(58, 106, 139);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp;maxThreads="150"&lt;/div&gt;       &lt;/li&gt;       &lt;li style="font-weight: bold; color: rgb(38, 83, 106);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp;minSpareThreads="25"&lt;/div&gt;       &lt;/li&gt;       &lt;li  style="font-family: 'Courier New',Courier,monospace; font-weight: normal; font-style: normal; color: rgb(58, 106, 139);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp;maxSpareThreads="75"&lt;/div&gt;       &lt;/li&gt;       &lt;li style="font-weight: bold; color: rgb(38, 83, 106);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp;enableLookups="false"&lt;/div&gt;       &lt;/li&gt;       &lt;li  style="font-family: 'Courier New',Courier,monospace; font-weight: normal; font-style: normal; color: rgb(58, 106, 139);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp;redirectPort="8443"&lt;/div&gt;       &lt;/li&gt;       &lt;li style="font-weight: bold; color: rgb(38, 83, 106);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp;acceptCount="100"&lt;/div&gt;       &lt;/li&gt;       &lt;li  style="font-family: 'Courier New',Courier,monospace; font-weight: normal; font-style: normal; color: rgb(58, 106, 139);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp;connectionTimeout="20000"&lt;/div&gt;       &lt;/li&gt;       &lt;li style="font-weight: bold; color: rgb(38, 83, 106);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp;disableUploadTimeout="true"&lt;/div&gt;       &lt;/li&gt;       &lt;li  style="font-family: 'Courier New',Courier,monospace; font-weight: normal; font-style: normal; color: rgb(58, 106, 139);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp;compression="on"&lt;/div&gt;       &lt;/li&gt;       &lt;li style="font-weight: bold; color: rgb(38, 83, 106);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp;compressableMimeType="text/html,text/xml,text/plain,application/xml"&amp;gt;&lt;/div&gt;       &lt;/li&gt;       &lt;li  style="font-family: 'Courier New',Courier,monospace; font-weight: normal; font-style: normal; color: rgb(58, 106, 139);"&gt;         &lt;div  style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"&gt;&lt;span  style="color: rgb(0, 153, 0);"&gt;&lt;span  style="font-weight: bold; color: black;"&gt;&amp;lt;/Connector&lt;span  style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;       &lt;/li&gt;     &lt;/ol&gt;     &lt;/div&gt;     &lt;/div&gt;     &lt;/div&gt;     &lt;p&gt;For more information, read the &lt;a  href="http://tomcat.apache.org/tomcat-5.5-doc/config/http.html"&gt;Tomcat HTTP Connector documentation&lt;/a&gt;. &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;The default Tomcat configuration provides good protection for most requirements, but does not prevent a malicious application from compromising the security of other applications running in the same instance. To prevent this sort of attack, Tomcat can be run with a Security Manager enabled which strictly controls access to server resources. Tomcat documentation has a good section on &lt;a  href="http://tomcat.apache.org/tomcat-5.5-doc/security-manager-howto.html"  class="external text"  title="http://tomcat.apache.org/tomcat-5.5-doc/security-manager-howto.html"  rel="nofollow"&gt;enabling the Security Manager.&lt;/a&gt;&lt;/li&gt; &lt;/ol&gt; &lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-6852037849304601314?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/6852037849304601314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/07/tips-for-using-tomcat-in-production.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/6852037849304601314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/6852037849304601314'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/07/tips-for-using-tomcat-in-production.html' title='Tips for Using Tomcat in Production'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-1118494874673084356</id><published>2009-07-29T11:38:00.000-07:00</published><updated>2009-07-29T11:43:45.101-07:00</updated><title type='text'>Choosing a Java Web Framework</title><content type='html'>&lt;div class="content"&gt;     &lt;p&gt;Choosing a Java Web framework for your project is not getting any easier.   Here are some things I think about when choosing a Java Web framework.&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;strong&gt;Is it action based?&lt;/strong&gt; Action based frameworks generally map actions (defined in an HTML form or URL) to code in the controller tier of the application. Action based frameworks are the most popular type of framework. Most developers have had at least some exposure to these kinds of frameworks. The most popular Java Web framework, &lt;a href="http://struts.apache.org/"&gt;Struts&lt;/a&gt;, is an action based framework.  &lt;strong&gt;Examples: Struts, &lt;a href="http://struts.apache.org/2.x/"&gt;Struts2&lt;/a&gt; (based on &lt;a href="http://www.opensymphony.com/webwork/"&gt;WebWork&lt;/a&gt;), &lt;a href="http://www.springframework.org/docs/reference/mvc.html"&gt;Spring MVC&lt;/a&gt;, &lt;a href="http://stripes.mc4j.org/confluence/display/stripes/Home"&gt;Stripes&lt;/a&gt;, &lt;a href="http://www.rubyonrails.org/"&gt;Ruby on Rails&lt;/a&gt; , &lt;a href="http://grails.codehaus.org/"&gt;Grails&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Is it component based?&lt;/strong&gt; Component based frameworks create a component abstraction in the view tier. Event listeners capture user actions and map back to code in the controller tier. I am of the opinion that component based framework have a steeper learning curve than action based frameworks. Some will counter that component based frameworks offer greater productivity, once the framework is learned. Programming in a component based framework can sometimes feel like programming Java Swing components. &lt;strong&gt;Examples: &lt;a href="http://java.sun.com/javaee/javaserverfaces/"&gt;JavaServer Faces&lt;/a&gt; (JSF) implementations (&lt;a href="http://myfaces.apache.org/"&gt;MyFaces&lt;/a&gt;, &lt;a href="http://tapestry.apache.org/"&gt;Tapestry&lt;/a&gt;, &lt;a href="http://rifers.org/"&gt;RIFE&lt;/a&gt;, &lt;a href="http://wicket.sourceforge.net/"&gt;Wicket&lt;/a&gt;, &lt;a href="http://code.google.com/webtoolkit/"&gt;Google Web Toolkit &lt;/a&gt;(GWT), &lt;a href="http://www.thinwire.com/"&gt;ThinWire&lt;/a&gt;, &lt;a href="http://www.nextapp.com/platform/echo2/echo/"&gt;Echo2&lt;/a&gt;, &lt;a href="http://www.icesoft.com/products/icefaces.html"&gt;IceFaces (JSF implementation)&lt;/a&gt;, &lt;a href="http://click.sourceforge.net/"&gt;Click&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Is it page based?&lt;/strong&gt; Page based frameworks allow you to develop application made of many Web pages. To implement these Web pages, the developer creates HTML (using JSPs or templates), JavaScript and CSS files. All action based frameworks (that I know of) and some component based frameworks are page based. Most of these frameworks now have good support for AJAX. Because you write the Web tier yourself, you also have a lot of control and the ability to adhere to Web standards. Struts is a page based framework. &lt;strong&gt;Examples: Struts, Struts2/WebWork, Spring MVC, Stripes, Ruby on Rails (requires JRuby to run in Java), Grails, RIFE, JavaServer Faces (JSF) implementations (MyFaces), Tapestry, RIFE, Wicket&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Is the Web tier generated?&lt;/strong&gt; New AJAX frameworks such as Google Web Toolkit, require you to only code in Java. They then generate the entire Web tier for you, so you don’t have to code the HTML, JavaScript or CSS. You will still need to understand CSS concepts in order to style you components. This may be attractive you if you or your team doesn’t have much experience with JavaScript and CSS or you want to keep all of you application logic within Java code. These frameworks are component based and the style of programming is very similar to Swing. AJAX is used heavily by these framework to create a rich user interface. In traditional frameworks, there are many Web pages that work together to form an application. These frameworks may only have one page (a frame) where components and screens are swapped out using AJAX. &lt;strong&gt;Examples: Google Web Toolkit (GWT), ThinWire, Echo2, IceFaces (JSF implementation)&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Is it JSP based?&lt;/strong&gt;  Many frameworks, including Struts, use &lt;a href="http://java.sun.com/products/jsp/"&gt;JSP&lt;/a&gt; pages to generate HTML. JSP (JavaServer Pages) are the classic way to generate Web pages in Java. Tag libraries are used within JSP pages to generate HTML. Custom tags can be created fairly easily to add your own functionality. JSP pages get compiled into &lt;a href="http://java.sun.com/javaee/javaserverfaces/"&gt;Java Servlets&lt;/a&gt;.  &lt;strong&gt;Examples: Struts, Struts2/WebWork, Spring MVC, JavaServer Faces (JSF) implementations (MyFaces), Click&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Is it template based?&lt;/strong&gt; Some frameworks offer an alternative to JSP pages known as a template. Sometimes a framework only works with templates, while there are also lightweight template libraries, such as Velocity or FreeMarker, that can be used in combination with JSP frameworks. A template is often an HTML file with references to Java components made within the HTML code. Because these files are not JSP pages, they bypass the JSP API which many developers do not like to use. This also give some templates the ability to be viewed by a browser, which makes them nice for Web designers. I list some examples of frameworks that use template out of the box. However, as I mentioned earlier, JSP based frameworks can be made to work with templating technologies. &lt;strong&gt;Examples: &lt;a href="https://facelets.dev.java.net/"&gt;Facelets&lt;/a&gt; (a view handler that can be used with any JSF implementation), Tapestry, RIFE, Wicket, &lt;a href="http://velocity.apache.org/"&gt;Velocity&lt;/a&gt;, &lt;a href="http://shale.apache.org/shale-clay/index.html"&gt;Clay&lt;/a&gt; (part of &lt;a href="http://shale.apache.org/"&gt;Shale&lt;/a&gt;), &lt;a href="http://www.freemarker.org/"&gt;FreeMarker&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Is it Rails like?&lt;/strong&gt; The hugely popular Ruby on Rails (RoR) framework has defined its own class of Web framework. Without going into the framework itself, two fundamentals of this framework are “convention over configuration” and “don’t repeat yourself”. Rails like frameworks generate a lot of the application structure up front to make it easy to get up and running. &lt;strong&gt;Examples: Ruby on Rails (requires JRuby to run in Java), Grails, &lt;a href="http://www.trailsframework.org/"&gt;Trails&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Does it support a dynamic scripting language?&lt;/strong&gt; Many frameworks now have support for dynamic scripting frameworks. If you would rather do most of your Web programming in a scripting language rather than Java (there are many who would), then one of these frameworks might be for you. They tend to be action and page based and have good support for AJAX. &lt;strong&gt;Examples: Ruby on Rails (requires JRuby to run in Java), Grails (using &lt;a href="http://groovy.codehaus.org/"&gt;Groovy&lt;/a&gt; scripting language)&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Does it support IoC?&lt;/strong&gt;  You will often hear this referred to as “Spring integration”.  The &lt;a href="http://www.springframework.org/"&gt;Spring Framework&lt;/a&gt; is a full stack J2EE application framework.  There are many different sub-frameworks within the Spring Framework, and its &lt;a href="http://www.springframework.org/docs/reference/beans.html"&gt;Spring IoC&lt;/a&gt; (inversion of control or dependency injection) framework is its most widely used. IoC frameworks can make it easy to configure Java beans within your application, as well as provide a number of other benefits. Most of the popular frameworks have support in one way or another for Spring IoC. If this is important to you, then you should make sure the framework you are selecting makes it easy to work with Spring IoC. There are other IoC frameworks out there, such as &lt;a href="http://hivemind.apache.org/"&gt;HiveMind&lt;/a&gt; and &lt;a href="http://plexus.codehaus.org/"&gt;Plexus&lt;/a&gt;, but Spring is currently the standard.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Does it support Web conversations?&lt;/strong&gt;  Supporting &lt;a href="http://evolutionarygoo.com/blog/?p=79"&gt;Web conversations&lt;/a&gt; is about tracking state across several pages, so if you are using a framework that is page based, then this may be important to you. If it is, then &lt;a href="http://www.jboss.com/products/seam"&gt;JBoss Seam&lt;/a&gt; and &lt;a href="http://www.springframework.org/go-webflow"&gt;Spring Web Flow&lt;/a&gt; are frameworks to consider. They are not Web frameworks, but server side frameworks that integrate into the middle tier of your application. Seam uses JSF for its Web tier. Spring Web Flow can integrate with various Web frameworks. Shale, a framework for JSF, also includes support for conversations, as well as RIFE.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Is it testable?&lt;/strong&gt; Many of the popular frameworks are building in formal support for mock objects and other testing concerns. Testing is critical and Web applications tend to be difficult to test.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;How well does it support security?  Is it well supported and maintained?  Is it stable?  Will it help me adhere to standards?&lt;/strong&gt; These are things I think about on all projects when selecting a framework and they apply here as well. Especially here, since there are so many Java Web frameworks to choose from and new ones are showing up each month.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-1118494874673084356?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/1118494874673084356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/07/choosing-java-web-framework.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/1118494874673084356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/1118494874673084356'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/07/choosing-java-web-framework.html' title='Choosing a Java Web Framework'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-1503155038166435829</id><published>2009-07-27T23:22:00.000-07:00</published><updated>2009-07-28T10:20:40.326-07:00</updated><title type='text'>Technologies used to censor the Web</title><content type='html'>&lt;p&gt;&lt;b&gt;IP Blocking&lt;/b&gt;&lt;/p&gt; &lt;p&gt;IP Blocking is one of the most basic methods for censorship, as it simply prevents all packets    going to or from targeted IP addresses.&lt;br /&gt;&lt;/p&gt; &lt;p&gt;But while these sorts of operations are relatively simple to execute, they don't tackle the problem of individual communications    between users, especially if the users have set up multi-hop circuits that use multiple servers to create a proxy ring.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Traffic Classification (QoS)&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;This is a much more sophisticated method of blocking traffic than IP blocking, as one can halt any file sent through a certain type of protocol, such as FTP. Because we know that FTP transfers are most often sent through TCP port 21, they can simply limit the bandwidth available on that port and throttle transfers. "it is not too resource intensive and is fairly easy to set up."&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Shallow Packet Inspection&lt;/b&gt;&lt;/p&gt; &lt;p&gt;Shallow packet inspection is basically a blunter, broader version of the deep packet inspection (DPI) technique that is used to block packets based on their content. But unlike DPI, which intercepts packets and inspects their fingerprints, headers and payloads, shallow packet inspection makes broad generalities about traffic based solely on checking out the packet header.&lt;br /&gt;&lt;/p&gt;  &lt;p&gt;"Shallow packet inspection is more judging a book by its cover. If a packet says that it's SSL (Secure Sockets Layer) in the header, then a shallow packet inspector takes it at face value." &lt;/p&gt; &lt;p&gt;&lt;b&gt;Packet Fingerprinting&lt;/b&gt;&lt;/p&gt; &lt;p&gt;This is a slightly more refined method of throttling packets than shallow packet inspection, as it looks not only at the packet    header but at its length, frequency of transmission and other characteristics to make a rough determination of its content. &lt;/p&gt; &lt;p&gt;"A lot of things don't explicitly say what they are. For example, a lot of VPN traffic is indistinguishable from SSH traffic,    which means that it would be throttled if SSH was,". "But what if businesses relied on VPN connections? You'd move    the system to fingerprinting, where the two are easily distinguishable."&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Deep Packet Inspection / Packet Content Filtering&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;DPI is the most refined method for blocking Internet traffic. As mentioned above, deep packet inspectors examine not only a packet's header but also its payload. This gives the ability to filter packets at a more surgical level than any of the other techniques discussed so far. &lt;/p&gt; &lt;p&gt;"Viewing a packet's contents doesn't tell you much on its own, especially if it's encrypted," . "But combining it with    the knowledge gained from fingerprinting and shallow packet inspection, it is usually more than enough to figure out what    sort of traffic you're looking at." &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-1503155038166435829?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/1503155038166435829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/07/technologies-used-to-censor-web.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/1503155038166435829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/1503155038166435829'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/07/technologies-used-to-censor-web.html' title='Technologies used to censor the Web'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-4408175186924078361</id><published>2009-06-18T04:22:00.000-07:00</published><updated>2009-06-27T22:11:24.680-07:00</updated><title type='text'>CentOS x64 bit: Installing Flash plugin for FF</title><content type='html'>Download flash plugin from &lt;a href="http://labs.adobe.com/downloads/flashplayer10.html"&gt;http://labs.adobe.com/downloads/flashplayer10.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;then in terminal:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$ tar -xf libflashplayer-10.0.22.87.linux-x86_64.so.tar.gz&lt;br /&gt;$ sudo cp libflashplayer.so /usr/lib64/mozilla/plugins/&lt;br /&gt;&lt;br /&gt;Restart firefox-64 bit.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;fxd2tbina4&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-4408175186924078361?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/4408175186924078361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/06/centos-x64-bit-installing-flash-plugin.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/4408175186924078361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/4408175186924078361'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/06/centos-x64-bit-installing-flash-plugin.html' title='CentOS x64 bit: Installing Flash plugin for FF'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-3441749576096400991</id><published>2009-06-17T10:16:00.000-07:00</published><updated>2009-06-17T10:31:51.239-07:00</updated><title type='text'>IE vs Firefox in Progressive Rendering</title><content type='html'>&lt;span class="Apple-style-span"   style="  -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; font-family:verdana;font-size:13px;"&gt;Progressive rendering is the act of displaying each object as it is downloaded. Both IE and FF supports progressive rendering; but, they differ on how they render tables.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:verdana;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px;font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:verdana;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px;font-size:13px;"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;Internet Explorer 7&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When Internet Explorer renders a , it downloads all the objects within the table before displaying it. This is required so that Internet Explorer can render the table with the correct width for each column.&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:verdana;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px;font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:verdana;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px;font-size:13px;"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;Mozilla Firefox&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;On the other hand, Firefox renders all objects progressively regardless if it's in a table. That is to say - each object is displayed as soon as it is downloaded.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:verdana;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px;font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:verdana;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px;font-size:13px;"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;What You Can Do To Improve Performance&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Performance Tips&lt;/b&gt;&lt;ol style="font: normal normal normal 12px/normal Verdana, Arial, Helvetica, sans-serif; line-height: 1.3em; list-style-type: decimal; "&gt;&lt;li style="font: normal normal normal 12px/normal Verdana, Arial, Helvetica, sans-serif; line-height: 1.3em; "&gt;Ensure HTML code is valid.&lt;/li&gt;&lt;li style="font: normal normal normal 12px/normal Verdana, Arial, Helvetica, sans-serif; line-height: 1.3em; "&gt;Minimize number of nested tables.&lt;/li&gt;&lt;li style="font: normal normal normal 12px/normal Verdana, Arial, Helvetica, sans-serif; line-height: 1.3em; "&gt;Never wrap entire body contents within a table.&lt;/li&gt;&lt;li style="font: normal normal normal 12px/normal Verdana, Arial, Helvetica, sans-serif; line-height: 1.3em; "&gt;Move towards a CSS-based layout.&lt;/li&gt;&lt;li style="font: normal normal normal 12px/normal Verdana, Arial, Helvetica, sans-serif; line-height: 1.3em; "&gt;Move JavaScript to the very bottom of document (right before the  tag). If not possible, move JavaScript to the  of document.&lt;/li&gt;&lt;li style="font: normal normal normal 12px/normal Verdana, Arial, Helvetica, sans-serif; line-height: 1.3em; "&gt;Pay close attention to the size of objects and their locations?&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;The Key Is To Understand&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;By knowing each browser's strengths and weaknesses, you can build a better design. A good design will never make the reader wait. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:verdana;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px;font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:verdana;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px;font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;table&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-3441749576096400991?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/3441749576096400991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/06/ie-vs-firefox-in-progressive-rendering.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/3441749576096400991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/3441749576096400991'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/06/ie-vs-firefox-in-progressive-rendering.html' title='IE vs Firefox in Progressive Rendering'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-6900288636653348793</id><published>2009-06-17T03:16:00.000-07:00</published><updated>2009-06-17T03:23:51.678-07:00</updated><title type='text'>Eclipse look and feel for swing applications</title><content type='html'>&lt;span style="font-size:100%;"&gt;This is what you were looking for. There is an open source API called &lt;b&gt;SWT(Standard Widget Toolkit)&lt;/b&gt; by eclipse.  A GUI &lt;/span&gt;framework for Swing user interfaces.  You can see the list of swt widgets here &lt;a class="moz-txt-link-freetext" href="http://www.eclipse.org/swt/widgets/"&gt;http://www.eclipse.org/swt/widgets/&lt;/a&gt;.  Using this framework we can build application like eclipse look and feel.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-6900288636653348793?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/6900288636653348793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/06/eclipse-look-and-feel-for-swing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/6900288636653348793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/6900288636653348793'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/06/eclipse-look-and-feel-for-swing.html' title='Eclipse look and feel for swing applications'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-7705738778217206541</id><published>2009-06-13T01:05:00.000-07:00</published><updated>2009-06-13T01:08:04.027-07:00</updated><title type='text'>Classpath Helper</title><content type='html'>&lt;div&gt;H&lt;span class="Apple-style-span"  style=" ;font-family:verdana;"&gt;ow to find unused Jar libs in a huge application?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Georgia;"&gt;I think this tool(classpath helper) answers, &lt;a href="http://classpathhelper.sourceforge.net/"&gt;http://classpathhelper.sourceforge.net/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-7705738778217206541?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/7705738778217206541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/06/classpath-helper.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/7705738778217206541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/7705738778217206541'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/06/classpath-helper.html' title='Classpath Helper'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-7480497810192046177</id><published>2009-06-12T23:50:00.001-07:00</published><updated>2009-06-12T23:50:31.803-07:00</updated><title type='text'>What is Google Wave?</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande'; font-size: 14px; line-height: 20px; "&gt;&lt;a href="http://wave.google.com/" style="color: rgb(128, 0, 128); "&gt;Google Wave&lt;/a&gt; is a new communication service previewed today at &lt;a href="http://code.google.com/events/io/" style="color: rgb(0, 0, 255); "&gt;Google I/O&lt;/a&gt;. "A wave is equal parts conversation and document, where people can communicate and work together with richly formatted text, photos, videos, maps, and more."&lt;br /&gt;&lt;br /&gt;The service seems to combine Gmail and Google Docs into an interesting free-form workspace that could be used to write documents collaboratively, plan events, play games or discuss a recent news.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-7480497810192046177?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/7480497810192046177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/06/what-is-google-wave.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/7480497810192046177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/7480497810192046177'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/06/what-is-google-wave.html' title='What is Google Wave?'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-8806564008839319703</id><published>2009-06-11T06:43:00.000-07:00</published><updated>2009-06-11T06:45:08.345-07:00</updated><title type='text'>Running tomcat on port 80 as non-root</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Use the &lt;a href="http://httpd.apache.org/" target="_blank"&gt;Apache httpd server&lt;/a&gt; to “pass” requests to Tomcat. &lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Use &lt;a href="http://en.wikipedia.org/wiki/Iptables" target="_blank"&gt;IPtables&lt;/a&gt;.&lt;/strong&gt; This requires a kernel version of 2.4.x or higher. If you’re running an older version of the kernel take a look at &lt;a href="http://en.wikipedia.org/wiki/Ipchains" target="_blank"&gt;IPChains&lt;/a&gt; and consider a command something like:&lt;code&gt; ipchains -I input --proto TCP --dport 80 -j REDIRECT 8080&lt;/code&gt; &lt;p&gt;The IPtables solution allows Tomcat to run as an independent server as a non-privileged user and listen on port 80. IPtables will redirect all requests coming in on port 80 to port 8080 or whatever port you have Tomcat running under.The first step for this solution is to make sure your firewall allows TCP requests on port 8080 (or whatever port your Tomcat configuration has specfied). Essentially you need to duplicate all the firewall rules you have configured for port 80 since you will be redirecting those requests to 8080. The second step is to use the iptables command (usually installed by default on linux distributions) to redirect all packets on port 80, to port 8080. Here is a an example of the command you would use to do this:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j REDIRECT --to-port 8080&lt;br /&gt;&lt;/code&gt;&lt;/p&gt; To redirect local requests use the following command:&lt;code&gt;iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j REDIRECT --to-port 8080&lt;/code&gt;&lt;br /&gt;This is handy if you’re running Tomcat on your workstation and debugging an application that’s required to run on port 80.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Use rinetd. &lt;/strong&gt;rinetd is a dedicated port redirector program that receives a packet and redirects it to a different port or address. Since rinetd redirects packets after they’ve gone through IPtables, this solution can be used for local and non-local requests.There are two things you should consider when using rinetd. First, rinetd cannot be used to redirect &lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Ftp" target="_blank"&gt;FTP&lt;/a&gt;&lt;/strong&gt; requests because FTP requires more than one socket. Secondly, rinetd makes all packets appear as though they originated from the local machine. This obviously will impact things like web server logs and setting permissions based on IP address.Although rinetd has these side effects, using a combination of iptables and rinetd may be another option but seems like a more complicated solution from a debugging and maintenance perspective.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-8806564008839319703?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/8806564008839319703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/06/running-tomcat-on-port-80-as-non-root.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/8806564008839319703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/8806564008839319703'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/06/running-tomcat-on-port-80-as-non-root.html' title='Running tomcat on port 80 as non-root'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-4664951026172496326</id><published>2009-06-06T08:42:00.000-07:00</published><updated>2009-06-06T08:50:13.777-07:00</updated><title type='text'>Installing self-signed ssl certificate</title><content type='html'>1. Generate an RSA key for signing the certificate:&lt;br /&gt;openssl genrsa -out mykey.pem 2048&lt;br /&gt;&lt;br /&gt;2. Generate a certificate using the new key:&lt;br /&gt;openssl req -new -x509 -key mykey.pem -out mycert.pem -days 365&lt;br /&gt;&lt;br /&gt;Enter your name, organization name and address as prompted.&lt;br /&gt;In this example, we've created a key file, mykey.pem, and a self-signed certificate. Normally, you want a certificate from a "certificate authority" or CA. &lt;br /&gt;3. Since the certificate is in PEM format, convert it to PKCS12 for Tomcat:&lt;br /&gt;openssl pkcs12 -export -in mycert.pem -inkey mykey.pem -out mycert.p12 -name tomcat&lt;br /&gt;&lt;br /&gt;You MUST specify an export password! Tomcat expects one.&lt;br /&gt;&lt;br /&gt;4. Keep the  “mycert.p12” file you will need it to configure in tomcat server.xml.&lt;br /&gt;&lt;br /&gt;5.  Edit $CATALINA_HOME/conf/server.xml and uncomment the SSL connector tag.&lt;br /&gt;        Connector port="8443" maxHttpHeaderSize="8192"&lt;br /&gt;        maxThreads="150" minSpareThreads="25" maxSpareThreads="75"&lt;br /&gt;         enableLookups="false" disableUploadTimeout="false" proxyPort="443"&lt;br /&gt;         acceptCount="100" scheme="https" secure="true"&lt;br /&gt;         clientAuth="false" sslProtocol="TLS" keystoreType="PKCS12" &lt;br /&gt;        keystoreFile="/opt/openssl-0.9.8g/mycert.p12" &lt;br /&gt;         keystorePass="*****"  /&gt;"&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-4664951026172496326?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/4664951026172496326/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/06/installing-self-signed-ssl-certificate.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/4664951026172496326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/4664951026172496326'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/06/installing-self-signed-ssl-certificate.html' title='Installing self-signed ssl certificate'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-5535871574547665086</id><published>2009-06-06T08:16:00.000-07:00</published><updated>2009-06-06T08:19:22.925-07:00</updated><title type='text'>Google's Page Speed</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: verdana; font-size: 15px; line-height: 19px; "&gt;Google has released a Firefox add-on called &lt;a href="http://code.google.com/speed/page-speed/download.html" style="color: rgb(0, 0, 0); text-decoration: underline; "&gt;Page Speed&lt;/a&gt;. It integrates with another add-on, &lt;a href="http://getfirebug.com/" style="color: rgb(169, 64, 29); text-decoration: underline; "&gt;Firebug&lt;/a&gt;, and is aimed at web developers trying to make their pages faster. “Page Speed is a tool we’ve been using internally to improve the performance of our web pages,” &lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana; font-size: 15px; line-height: 19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana; font-size: 15px; line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="font-size: 14px; line-height: 16px; "&gt;Also see &lt;a href="http://developer.yahoo.com/yslow/" style="color: rgb(169, 64, 29); text-decoration: underline; "&gt;YSlow&lt;/a&gt;, another Firebug add-on (this time by Yahoo) that “analyzes web pages and suggests ways to improve their performance”.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-5535871574547665086?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/5535871574547665086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/06/googles-page-speed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/5535871574547665086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/5535871574547665086'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/06/googles-page-speed.html' title='Google&apos;s Page Speed'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-5806801626395554835</id><published>2009-06-01T09:21:00.001-07:00</published><updated>2009-06-01T09:28:04.185-07:00</updated><title type='text'>Best Ajax Framework</title><content type='html'>There are lot of ajax frameworks out there, my pick is&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.dojotoolkit.org/"&gt;Dojo &lt;/a&gt;- &lt;span class="Apple-style-span" style="font-family: Lucida; font-size: 13px; line-height: 16px; "&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Lucida; line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Provides more features and widgets but customization is harder&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://developer.yahoo.com/yui/"&gt;YUI &lt;/a&gt;-  h&lt;span class="Apple-style-span" style="font-size: medium;"&gt;as &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Lucida; line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;well documented code and detailed tutorial.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Lucida; line-height: 16px;"&gt;&lt;a href="http://code.google.com/webtoolkit/"&gt;GWT &lt;/a&gt;- Google's framework :-)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://sweetdev-ria.sourceforge.net/sweetdev-ria3.2/"&gt;SweekDev Ria&lt;/a&gt; - Has more features and performance overheads&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-5806801626395554835?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/5806801626395554835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/06/best-ajax-framework.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/5806801626395554835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/5806801626395554835'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/06/best-ajax-framework.html' title='Best Ajax Framework'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-8515349411592628512</id><published>2009-05-17T05:53:00.000-07:00</published><updated>2009-05-17T05:55:35.655-07:00</updated><title type='text'>First Web Server</title><content type='html'>&lt;img src="http://farm1.static.flickr.com/114/298160250_8273b83f2b.jpg?v=0" alt="The World's First Web Server by sbisson." /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 12px; "&gt;In a glass case at &lt;a href="http://www.itpro.co.uk/blogs/maryb/2008/09/10/the-lhc-isnt-the-only-geek-magnet-at-cern/" rel="nofollow" style="color: rgb(16, 87, 174); text-decoration: underline; "&gt;CERN&lt;/a&gt; is an unpreposessing little NeXT cube. It's hard to believe that this little workstation changed the world, but it did. It's Tim Berners Lee's original web server, the world's first.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-8515349411592628512?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/8515349411592628512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/05/first-web-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/8515349411592628512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/8515349411592628512'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/05/first-web-server.html' title='First Web Server'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-5771189106008517707</id><published>2009-05-13T21:18:00.001-07:00</published><updated>2009-05-13T21:18:59.016-07:00</updated><title type='text'>Google Launches Search Options, Declares Real-Time Search Biggest Challenge</title><content type='html'>&lt;p&gt;&lt;img src="http://www.techcrunch.com/wp-content/uploads/2009/05/goog-search-options.jpg" /&gt;&lt;/p&gt; &lt;p&gt;Google has just launched a new “search options” feature on its main search page. When you click on “Search options” you can filter your search by different types of results (videos, forums, and reviews), by time (recent, past 24 hours, past week, past year), as well as seeing related searches, a “wonder wheel” view, or a timeline view.&lt;/p&gt; &lt;p&gt;At Google’s &lt;a href="http://www.techcrunch.com/2009/05/12/live-from-google-searchology/"&gt;Searchology&lt;/a&gt; event, which is going on right now, Marissa Mayer listed the following as the hardest unsolved problems in search:&lt;/p&gt; &lt;p&gt;- Finding the most recent information&lt;br /&gt;- Expressing that you want just one type of result&lt;br /&gt;- Assessing which results are best&lt;br /&gt;- Knowing what you’re looking for&lt;br /&gt;- Expressing your searches in keywords&lt;/p&gt; &lt;p&gt;Notice that real-time search is the No. 1 problem.  (Twitter and a bunch of startups from &lt;a href="http://www.techcrunch.com/2009/05/12/twitter-is-talking-real-time-link-search-but-oneriot-is-launching-it-today/"&gt;OneRiot&lt;/a&gt; to &lt;a href="http://www.techcrunch.com/2009/05/12/tweetmeme-launches-the-second-real-time-tweet-link-search-this-hour/"&gt;Tweetmeme&lt;/a&gt; are also working on it, with the latter two launching their own real-time search efforts today). And it certainly is a problem for Google, even with the new recent results option. Try searching for any of teh top trending results on Twitter right now like &lt;a href="http://www.google.com/#hl=en&amp;amp;tbo=1&amp;amp;tbs=rcnt%3A1&amp;amp;q=Miss+california&amp;amp;fp=rA1UKHGhp_w"&gt;Miss California&lt;img id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.80/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.80/t.gif" /&gt;&lt;/a&gt; (vs. &lt;a href="http://twitter.com/#search?q=%22Miss%20California%22"&gt;Twitter search results&lt;img id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.80/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.80/t.gif" /&gt;&lt;/a&gt;) or &lt;a href="http://www.google.com/#hl=en&amp;amp;tbo=1&amp;amp;tbs=rcnt%3A1&amp;amp;q=Star+Trek&amp;amp;fp=rA1UKHGhp_w"&gt;Star Trek&lt;img id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.80/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.80/t.gif" /&gt;&lt;/a&gt; (vs. &lt;a href="http://twitter.com/#search?q=%22Star%20Trek%22"&gt;Twitter results&lt;img id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.80/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.80/t.gif" /&gt;&lt;/a&gt;), and you don’t even get any Twitter results on Google.&lt;/p&gt; &lt;p&gt;While real-time search is still a big problem, it is not the only problem. Some of the new options address the difficulty of searching back through time. The recent results get as real-time as Google can get, but you can also expand the timeframe. And you can look at an actual timeline of results, which looks for dates within results and then places them chronologically (this is sort of hit or miss—just because a date is mentioned in a text does not mean the entire result is about or from that period of time). Google now also lets you see related searches as an option. And the Wonder Wheel is more of a visual aid to see how different related topics are clustered together. When you click on any spoke of the wheel, it then causes that search term to be at the center. We’ve seen many of these techniques in the past, but Google is giving them a higher profile by putting them in its main search page..&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.techcrunch.com/wp-content/uploads/2009/05/solar-ovens-timeline.jpg" /&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.techcrunch.com/wp-content/uploads/2009/05/solar-ovens-wnder-wheel.jpg" /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-5771189106008517707?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/5771189106008517707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/05/google-launches-search-options-declares.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/5771189106008517707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/5771189106008517707'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/05/google-launches-search-options-declares.html' title='Google Launches Search Options, Declares Real-Time Search Biggest Challenge'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-2168857867825505356</id><published>2009-05-12T03:00:00.000-07:00</published><updated>2009-05-12T03:04:43.831-07:00</updated><title type='text'>Accessing Remote Database from MySQL Trigger</title><content type='html'>Recently, we were in need of accessing the remote machine database from the MySQL's trigger.  We found the only way to get this done by using the &lt;a href="http://dev.mysql.com/doc/refman/5.0/en/federated-storage-engine.html"&gt;FEDERATED&lt;/a&gt; storage engine.&lt;br /&gt;&lt;br /&gt;The FEDERATED storage engine is available beginning with MySQL 5.0.3. It is a storage engine that accesses data in tables of remote databases rather than in local tables.&lt;br /&gt;&lt;br /&gt;The FEDERATED storage engine is available beginning with MySQL 5.0.3. This storage engine enables data to be accessed from a remote MySQL database on a local server without using replication or cluster technology. When using a FEDERATED table, queries on the local server are automatically executed on the remote (federated) tables. No data is stored on the local tables.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-2168857867825505356?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/2168857867825505356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/05/accessing-remote-database-from-mysql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/2168857867825505356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/2168857867825505356'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/05/accessing-remote-database-from-mysql.html' title='Accessing Remote Database from MySQL Trigger'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-8844907450258289870</id><published>2009-04-24T10:51:00.001-07:00</published><updated>2009-04-24T10:54:54.934-07:00</updated><title type='text'>Internet Connection Speed:  Top 10 Contries</title><content type='html'>&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(102, 102, 102); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;font-family:Verdana;font-size:12;"  &gt;&lt;p&gt;At the end of 2008, approximately 19 per cent&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;a title="Internet Connections" href="http://www.techpark.net/2008/06/11/internet-now-and-then/" target="_blank" style="border-style: none; text-decoration: none; color: rgb(53, 106, 160);"&gt;Internet connections&lt;/a&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;around the world were at speeds greater than 5 Mbps — a 21 per cent increase over the average global connection speed at the end of 2007.&lt;/p&gt;&lt;p&gt;This is according to the State of the Internet report, a quarterly study by Akamai Technologies, the US-based Internet content distribution giant. The State of the Internet report tracks average connection speeds for countries around the world.&lt;/p&gt;&lt;p&gt;Check out the top 10 nations in terms of average Internet connection speed.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;1. South Korea&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;South Korea rules supreme when it comes to Internet connection speed and broadband connectivity. It is the world’s No.1 with average connection speed of 15 Mbps, ten times the global average!&lt;/p&gt;&lt;p&gt;During 2008, South Korea’s rate of quarterly change appeared to be locked into a cyclical pattern, with quarterly decreases being recorded in the first and third quarters, and increases seen in the second and fourth quarters.&lt;/p&gt;&lt;p&gt;&lt;span id="more-357"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;For the whole year, South Korea saw a modest 7 per cent rise in their levels of high broadband adoption. South Korea is also ranked first in terms of high broadband connectivity with 69 per cent connections above 5 Mpbs.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;2. Japan&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Japan ranks 2nd in terms of Internet connection and high broadband connectivity.&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;a title="Internet Research In Japan" href="http://www.techpark.net/2007/08/24/japan-new-internet-by-2020/" target="_blank" style="border-style: none; text-decoration: none; color: rgb(53, 106, 160);"&gt;Japan&lt;/a&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;ranks 2nd in terms of high broadband connectivity. About 54 per cent of the connections in Japan are above 7 Mbps.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;3. Hong Kong&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Hong Kong ranks third with an Internet connection speed of 6.9 Mbps. The country ranks fifth in terms of high broadband connectivity with 38 per cent of the connection above 5 Mbps.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;4. Romania&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Romania is at the fourth position with a Internet connection speed of 5.7 Mbps. The country ranks third in terms of high broadband connectivity with 45% of the connection above 5 Mbps.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;5. Sweden&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Sweden is at the fifth position with a Internet connection speed of 5.6 Mbps. Sweden ranks fourth in terms of high broadband connectivity with 39 per cent of the connection above 5Mbps.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;6. Switzerland&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Switzerland has bagged the sixth position with an Internet connection speed of over 5 Mbps. The country however does not figure in the top ten list of countries with high broadband connectivity.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;7. Netherlands&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Netherlands ranks 7th with an Internet connection speed of 4.9 Mbps. The country ranks 7th in terms of high broadband connectivity with 28 per cent of the connections above 5 Mbps.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;8. Belgium&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Belgium is at the 8th position with an Internet connection speed of 4.7 Mbps. The country ranks sixth in terms of high broadband connectivity with 31 per cent of the connection above 5 Mbps.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;9. Slovakia&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Slovakia bags the ninth position with an Internet connection speed of 4.5 Mbps. The country does not figure among the top ten in terms of high broadband connectivity.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;10. Norway&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Norway ranks tenth with an Internet connection speed of 4.5 Mbps. The country ranks fifth in terms of high broadband connectivity with 38 per cent of the connection above 5 Mbps.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;United States&lt;/strong&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;is at the 17th position with an Internet connection speed of 3.9 Mbps, up approximately 8 per cent from the average connection speed for the first quarter of 2008.&lt;/p&gt;&lt;p&gt;In terms of Internet connection speed,&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;strong&gt;China&lt;/strong&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;is way behind leading economies with an average Internet connection speed of 833 kbps.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;India&lt;/strong&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;has been ranked at a dismal 115th among 223 countries in terms of average Internet connection speeds. India has an average Internet connection speed of just 772 Kbps compared with the global average of 1.5 Mbps.&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;I think now we are in the first place, as Airtel BroadBand introduces 16 Mbps Speed :-)&lt;/span&gt;&lt;span style="font-style:italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-8844907450258289870?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/8844907450258289870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/04/internet-connection-speed-top-10.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/8844907450258289870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/8844907450258289870'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/04/internet-connection-speed-top-10.html' title='Internet Connection Speed:  Top 10 Contries'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-1704133276155270206</id><published>2009-04-24T09:21:00.000-07:00</published><updated>2009-04-24T10:08:18.301-07:00</updated><title type='text'>Use Google to search within specific topics</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: arial; "&gt;&lt;div class="content"&gt;&lt;p style="font-family: arial, sans-serif; "&gt;&lt;span style="font-family: arial, sans-serif; font-size:-1;"&gt;Google also offers these special searches:&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;table border="0" cellspacing="5" cellpadding="5"&gt;&lt;tbody&gt;&lt;tr align="center"&gt;&lt;td style="background-color: white; font-family: arial, sans-serif; "&gt; &lt;/td&gt;&lt;td style="background-color: white; font-family: arial, sans-serif; "&gt;&lt;div align="center"&gt;&lt;span style="font-family: arial, sans-serif; font-size:-1;"&gt;&lt;a href="http://www.google.com/unclesam" style="font-family: arial, sans-serif; color: rgb(0, 0, 204); "&gt;&lt;img src="http://www.google.co.in/intl/en/sitesearch/unclesam.gif" width="150" height="52" border="0" alt="Uncle Sam" /&gt;&lt;br /&gt;U.S. Government&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: white; font-family: arial, sans-serif; "&gt; &lt;/td&gt;&lt;td style="background-color: white; font-family: arial, sans-serif; "&gt;&lt;div align="center"&gt;&lt;span style="font-family: arial, sans-serif; font-size:-1;"&gt;&lt;a href="http://www.google.com/linux" style="font-family: arial, sans-serif; color: rgb(85, 26, 139); "&gt;&lt;img src="http://www.google.co.in/intl/en/sitesearch/linux.gif" width="150" height="63" border="0" alt="Linux" /&gt;&lt;br /&gt;Linux&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: white; font-family: arial, sans-serif; "&gt; &lt;/td&gt;&lt;td style="background-color: white; font-family: arial, sans-serif; "&gt;&lt;span style="font-family: arial, sans-serif; font-size:-1;"&gt;&lt;a href="http://www.google.com/bsd" style="font-family: arial, sans-serif; color: rgb(0, 0, 204); "&gt;&lt;img src="http://www.google.co.in/intl/en/sitesearch/bsd.gif" width="150" height="52" border="0" alt="BSD" /&gt;&lt;br /&gt;BSD&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr align="center"&gt;&lt;td style="background-color: white; font-family: arial, sans-serif; "&gt; &lt;/td&gt;&lt;td style="background-color: white; font-family: arial, sans-serif; "&gt;&lt;span style="font-family: arial, sans-serif; font-size:-1;"&gt;&lt;a href="http://www.google.com/mac.html" style="font-family: arial, sans-serif; color: rgb(0, 0, 204); "&gt;&lt;img src="http://www.google.co.in/intl/en/sitesearch/mac.gif" width="150" height="52" border="0" alt="Mac" /&gt;&lt;br /&gt;Apple Macintosh&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color: white; font-family: arial, sans-serif; "&gt; &lt;/td&gt;&lt;td style="background-color: white; font-family: arial, sans-serif; "&gt;&lt;span style="font-family: arial, sans-serif; font-size:-1;"&gt;&lt;a href="http://www.google.com/microsoft.html" style="font-family: arial, sans-serif; color: rgb(0, 0, 204); "&gt;&lt;img src="http://www.google.co.in/intl/en/sitesearch/microsoft.gif" width="150" height="61" border="0" alt="Microsoft" /&gt;&lt;br /&gt;Microsoft&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color: white; font-family: arial, sans-serif; "&gt; &lt;/td&gt;&lt;td style="background-color: white; font-family: arial, sans-serif; "&gt; &lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-1704133276155270206?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/1704133276155270206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/04/use-google-to-search-within-specific.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/1704133276155270206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/1704133276155270206'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/04/use-google-to-search-within-specific.html' title='Use Google to search within specific topics'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-4963453075408289265</id><published>2009-04-24T09:04:00.000-07:00</published><updated>2009-04-24T09:20:54.613-07:00</updated><title type='text'>Optimize Mozilla Firefox</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;FireTune&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You might have heard of accessing Firefox's hidden preferences using the about:config command. There are tons of tweaks you can do to make Firefox load faster, browse faster, download faster, etc. How these tweaks work depends on the speed of your computer, your technical knowledge, and your connection speed.&lt;br /&gt;&lt;br /&gt;FireTune takes this approach one-step farther. It gives you a simple graphical interface to get the most tweaking out of Firefox without spending all day trying to comprehend what the tweak is trying to do.&lt;br /&gt;&lt;br /&gt;You can download FireTune from the author’s homepage &lt;a href="http://www.totalidea.com/download.php"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dl.maximumpc.com/galleries/awesomizebrowsers/MainWindow_ff.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 415px; height: 379px;" src="http://dl.maximumpc.com/galleries/awesomizebrowsers/MainWindow_ff.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span"   style="  line-height: 15px; font-family:Arial;font-size:12px;"&gt;Unzip the FireTune ZIP directory and double-click on the FireTune application file. When FireTune opens, you will be presented with the main menu. Click on Create backup of configuration. This ensures that you will be able to restore your original configuration files if something goes wrong in the optimization. When backed up properly, you will get a Backup Successful message.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dl.maximumpc.com/galleries/awesomizebrowsers/BackupSuccessful.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 268px; height: 169px;" src="http://dl.maximumpc.com/galleries/awesomizebrowsers/BackupSuccessful.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span"   style="  line-height: 15px; font-family:Arial;font-size:12px;"&gt;You are now ready to tweak Firefox. We are going to assume that you have a Fast Computer and a Fast Connection since this is Maximum PC, so select Fast Computer / Fast Connection. The program will alert you that you should have created a backup of your configuration files, if you have already click Yes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dl.maximumpc.com/galleries/awesomizebrowsers/Warning.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 415px; height: 156px;" src="http://dl.maximumpc.com/galleries/awesomizebrowsers/Warning.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"   style="  line-height: 15px; font-family:Arial;font-size:12px;"&gt;You will get a second prompt alerting you that you need to close Firefox or the optimizations will fail. As the program suggests, close all running instances of Firefox and then click the OK button.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dl.maximumpc.com/galleries/awesomizebrowsers/SecondWarning.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 415px; height: 156px;" src="http://dl.maximumpc.com/galleries/awesomizebrowsers/SecondWarning.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"   style="  line-height: 15px; font-family:Arial;font-size:12px;"&gt;Close the program if the tweaks were successful. If they failed for whatever reason, click the Restore original configuration button on the main window. After restoring, perform the appropriate tweaks again.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dl.maximumpc.com/galleries/awesomizebrowsers/TweakSuccessful.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 415px; height: 169px;" src="http://dl.maximumpc.com/galleries/awesomizebrowsers/TweakSuccessful.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-4963453075408289265?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/4963453075408289265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/04/optimize-mozilla-firefox.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/4963453075408289265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/4963453075408289265'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/04/optimize-mozilla-firefox.html' title='Optimize Mozilla Firefox'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-8029765785590163157</id><published>2009-04-21T23:45:00.000-07:00</published><updated>2009-04-21T23:47:39.302-07:00</updated><title type='text'>Google Me</title><content type='html'>Google me? I'll Google you! Google has become the de facto public record these days but most people remain in relative obscurity there and/or fear of what past indiscretions Google will expose to people who search for them.&lt;br /&gt;&lt;br /&gt;Today Google released a product, called Google Me, that aims to change all of that. For a price - though not a monetary one.&lt;br /&gt;&lt;br /&gt;Starting today, searchers who enter only the word "me" in the search box will be given an opportunity to set up or edit their Google Profile.&lt;br /&gt;&lt;br /&gt;When someone searches for a name that matches a Google Profile, that profile may now be displayed at the bottom of the search results page.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.readwriteweb.com/images/googleprofilescreen2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 610px; height: 581px;" src="http://www.readwriteweb.com/images/googleprofilescreen2.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-8029765785590163157?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/8029765785590163157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/04/google-me.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/8029765785590163157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/8029765785590163157'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/04/google-me.html' title='Google Me'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-7969004407972670060</id><published>2009-04-20T20:21:00.000-07:00</published><updated>2009-04-20T20:23:36.125-07:00</updated><title type='text'>Oracle to Buy Sun</title><content type='html'>Interesting &lt;a href="http://www.sun.com/third-party/global/oracle/index.jsp"&gt;Check this out...&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-7969004407972670060?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/7969004407972670060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/04/oracle-to-buy-sun.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/7969004407972670060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/7969004407972670060'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/04/oracle-to-buy-sun.html' title='Oracle to Buy Sun'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-8881325011905339324</id><published>2009-04-18T10:07:00.001-07:00</published><updated>2009-04-18T11:23:46.272-07:00</updated><title type='text'>Google Crawlers Family</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_S54OBJ9phuM/SeoI-PkzR8I/AAAAAAAAAL0/bfQ2tlqC7U4/s1600-h/crawlers.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 476px; height: 310px;" src="http://4.bp.blogspot.com/_S54OBJ9phuM/SeoI-PkzR8I/AAAAAAAAAL0/bfQ2tlqC7U4/s320/crawlers.JPG" alt="" id="BLOGGER_PHOTO_ID_5326079374744831938" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-8881325011905339324?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/8881325011905339324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/04/google-crawlers-family.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/8881325011905339324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/8881325011905339324'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/04/google-crawlers-family.html' title='Google Crawlers Family'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_S54OBJ9phuM/SeoI-PkzR8I/AAAAAAAAAL0/bfQ2tlqC7U4/s72-c/crawlers.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-8150047661697435785</id><published>2009-04-08T10:31:00.000-07:00</published><updated>2009-04-08T10:36:56.026-07:00</updated><title type='text'>Build faster Web applications with caching</title><content type='html'>JCS(Java Caching System)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jakarta.apache.org/jcs/index.html"&gt;&lt;/a&gt;&lt;a href="http://jakarta.apache.org/jcs/index.html"&gt;http://jakarta.apache.org/jcs/index.html&lt;/a&gt; &lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We need to know this..&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-8150047661697435785?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/8150047661697435785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/04/build-faster-web-applications-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/8150047661697435785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/8150047661697435785'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/04/build-faster-web-applications-with.html' title='Build faster Web applications with caching'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-4352875545880528502</id><published>2009-04-07T09:33:00.000-07:00</published><updated>2009-04-07T09:43:22.819-07:00</updated><title type='text'>What is OpenID?</title><content type='html'>In recent days, I see the word openID in many sites.  OpenID, what is it?&lt;br /&gt;&lt;br /&gt;Here is the answer.  OpenID eliminates the need for multiple usernames across different websites, simplifying your online experience.  OpenId is an open, decentralized standard for user authentication and access control, allowing users to log onto many services with the same digital identity .  In simple, Common userId for different websites where you have accounts.  For more information see  &lt;a href="http://openid.net/"&gt; http://openid.net/ &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-4352875545880528502?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/4352875545880528502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/04/what-is-openid.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/4352875545880528502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/4352875545880528502'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/04/what-is-openid.html' title='What is OpenID?'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-4276966995458157698</id><published>2009-04-01T08:58:00.000-07:00</published><updated>2009-04-01T09:02:32.957-07:00</updated><title type='text'>Must know topics for 2009</title><content type='html'>&lt;ul&gt;&lt;li&gt;Cloud computing&lt;/li&gt;&lt;li&gt;Mashups&lt;/li&gt;&lt;li&gt;WOA&lt;/li&gt;&lt;li&gt;Non-relational databases&lt;/li&gt;&lt;li&gt;Social computing&lt;/li&gt;&lt;li&gt;Dynamic languages&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-4276966995458157698?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/4276966995458157698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/04/must-know-topics-for-2009.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/4276966995458157698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/4276966995458157698'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/04/must-know-topics-for-2009.html' title='Must know topics for 2009'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-8814208584225696693</id><published>2009-03-26T10:48:00.000-07:00</published><updated>2009-03-31T06:39:31.604-07:00</updated><title type='text'>Virtualization</title><content type='html'>Virtualisation is the creation of virtual instances of computers or operating systems on a single physical machine. These virtual instances are commonly known as Virtual Machines or “VMs”. Virtual Machines share the resources of that single computer across multiple environments. Different virtual machines can run different operating systems and multiple applications on the same physical computer.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;How Does Virtualization Work&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Virtualization uses software called a &lt;a href="http://www.vi-pedia.com/Hypervisor" title="Hypervisor"&gt;hypervisor&lt;/a&gt; such as &lt;a href="http://www.vi-pedia.com/VMware_ESX_Server" title="VMware ESX Server"&gt;VMware ESX Server&lt;/a&gt; or &lt;a href="http://www.vi-pedia.com/index.php?title=Microsoft_Hyper-V&amp;amp;action=edit&amp;amp;redlink=1" class="new" title="Microsoft Hyper-V (not yet written)"&gt;Microsoft Hyper-V&lt;/a&gt; to “virtualize” the hardware resources of an x86-based computer—including the CPU, RAM, hard disk and network controller—to create a fully functional virtual machine that can run its own operating system and applications just like a “real”, physical computer.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Each virtual machine contains a complete system(BIOS, CPU, RAM, Hard Disks, Network Cards) eliminating potential conflicts.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Virtualization works by inserting a thin layer of software directly on the computer hardware or on a host operating system. This contains a virtual machine monitor or &lt;a href="http://www.vi-pedia.com/Hypervisor" title="Hypervisor"&gt;hypervisor&lt;/a&gt; that allocates hardware resources dynamically and transparently.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Multiple operating systems run concurrently on a single physical computer and share hardware resources with each other.&lt;/li&gt;&lt;li&gt; By encapsulating an entire machine, including CPU, memory, operating system, and network devices, a virtual machine is completely compatible with all standard x86 operating systems, applications, and device drivers.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Hypervisor&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A hypervisor is hardware virtualization software that allows multiple virtual machine to run on a single physical computer. A hypervisor is also called virtual machine monitor or "VMM".&lt;br /&gt;&lt;br /&gt;&lt;a name="Types_of_Hypervisors"&gt;&lt;/a&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;&lt;span class="mw-headline"&gt;Types of Hypervisors&lt;/span&gt;&lt;/span&gt; &lt;p&gt;There are two types of hypervisors, Hypervisor Type 1 (native, bare-metal) and Hypervisor Type 2 (hosted). &lt;/p&gt; &lt;ul&gt;&lt;li&gt;A Type 1 (or native, bare-metal) hypervisor is a thin layer of software that runs directly on the physical host's hardware. It manages physical resources and also the interaction between the physical hardware and virtual machines. It is also responsible for monitoring the guest operating systems inside the virtual machines. A guest operating system (such as Microsoft Windows Server 2003 or Microsoft Windows XP Professional) thus runs on another level, above the hypervisor. This is the classic implementaion of virtual architectures. Examples of type 1of hypervisors are: &lt;ul&gt;&lt;li&gt;&lt;a href="http://www.vi-pedia.com/VMware_ESX_Server" title="VMware ESX Server"&gt;VMware ESX Server&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.vi-pedia.com/index.php?title=Oracle_VM&amp;amp;action=edit&amp;amp;redlink=1" class="new" title="Oracle VM (not yet written)"&gt;Oracle VM&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.vi-pedia.com/index.php?title=Microsoft_Hyper-V&amp;amp;action=edit&amp;amp;redlink=1" class="new" title="Microsoft Hyper-V (not yet written)"&gt;Microsoft Hyper-V&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.vi-pedia.com/index.php?title=Xen&amp;amp;action=edit&amp;amp;redlink=1" class="new" title="Xen (not yet written)"&gt;Xen&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.vi-pedia.com/index.php?title=Citrix_XenServer&amp;amp;action=edit&amp;amp;redlink=1" class="new" title="Citrix XenServer (not yet written)"&gt;Citrix XenServer&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;A Type 2 (or hosted) hypervisor is a software application that runs withing a conventional operating system environment. Considering the hypervisor layer being a distinct software layer, guest operating systems thus run at the third level above the hardware. Examples of Tye 2 hypervisors are: &lt;ul&gt;&lt;li&gt;&lt;a href="http://www.vi-pedia.com/index.php?title=VMware_Server&amp;amp;action=edit&amp;amp;redlink=1" class="new" title="VMware Server (not yet written)"&gt;VMware Server&lt;/a&gt; (formerly known as GSX) &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.vi-pedia.com/index.php?title=VMware_Workstation&amp;amp;action=edit&amp;amp;redlink=1" class="new" title="VMware Workstation (not yet written)"&gt;VMware Workstation&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.vi-pedia.com/index.php?title=VMware_Fusion&amp;amp;action=edit&amp;amp;redlink=1" class="new" title="VMware Fusion (not yet written)"&gt;Vmware Fusion&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.vi-pedia.com/index.php?title=Microsoft_Virtual_PC&amp;amp;action=edit&amp;amp;redlink=1" class="new" title="Microsoft Virtual PC (not yet written)"&gt;Microsoft Virtual PC&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.vi-pedia.com/index.php?title=Microsoft_Virtual_Server&amp;amp;action=edit&amp;amp;redlink=1" class="new" title="Microsoft Virtual Server (not yet written)"&gt;Microsoft Virtual Server&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.vi-pedia.com/index.php?title=VirtualBox&amp;amp;action=edit&amp;amp;redlink=1" class="new" title="VirtualBox (not yet written)"&gt;Sun xVM VirtualBox&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-8814208584225696693?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/8814208584225696693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/03/virtualization-virtualisation-is.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/8814208584225696693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/8814208584225696693'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/03/virtualization-virtualisation-is.html' title='Virtualization'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-2384618480399515832</id><published>2009-03-16T10:32:00.000-07:00</published><updated>2009-03-16T10:35:26.285-07:00</updated><title type='text'>Java learning paths</title><content type='html'>- &lt;a href="https://www.suntrainingcatalogue.com/eduserv/client/learningPath.do?p=/training/certification/java/scja.html"&gt;Sun Certified Java Associate (SCJA)&lt;/a&gt;&lt;br /&gt;         - &lt;a href="https://www.suntrainingcatalogue.com/eduserv/client/learningPath.do?p=/training/certification/java/scjp.html"&gt;Sun Certified Java Programmer (SCJP)&lt;/a&gt; : I'm here&lt;br /&gt;         - &lt;a href="https://www.suntrainingcatalogue.com/eduserv/client/learningPath.do?p=/training/certification/java/scjd.html"&gt;Sun Certified Java Developer (SCJD)&lt;/a&gt;&lt;br /&gt;         - &lt;a href="https://www.suntrainingcatalogue.com/eduserv/client/learningPath.do?p=/training/certification/java/scwcd.html"&gt;Sun Certified Web Component Developer (SCWCD)&lt;/a&gt;&lt;br /&gt;         - &lt;a href="https://www.suntrainingcatalogue.com/eduserv/client/learningPath.do?p=/training/certification/java/scbcd.html"&gt;Sun Certified Business Component Developer (SCBCD)&lt;/a&gt;&lt;br /&gt;         - &lt;a href="https://www.suntrainingcatalogue.com/eduserv/client/learningPath.do?p=/training/certification/java/scdjws.html"&gt;Sun Certified Developer For Java Web Services (SCDJWS)&lt;/a&gt;&lt;br /&gt;         - &lt;a href="https://www.suntrainingcatalogue.com/eduserv/client/learningPath.do?p=/training/certification/java/scmad.html"&gt;Sun Certified Mobile Application Developer (SCMAD)&lt;/a&gt;&lt;br /&gt;         - &lt;a href="https://www.suntrainingcatalogue.com/eduserv/client/learningPath.do?p=/training/certification/java/scea.html"&gt;Sun Certified Enterprise Architect (SCEA)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;https://www.suntrainingcatalogue.com/eduserv/client/learningPath.do?p=/training/certification/java/index.html&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-2384618480399515832?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/2384618480399515832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/03/java-learning-paths.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/2384618480399515832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/2384618480399515832'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/03/java-learning-paths.html' title='Java learning paths'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6205172072186192698.post-2195587752873202243</id><published>2009-01-27T10:14:00.000-08:00</published><updated>2009-01-27T10:18:00.751-08:00</updated><title type='text'>Google's GDrive</title><content type='html'>Taking cloud computing to a new level, Google is soon going to launch 'GDrive', a long-rumored online storage for its users.&lt;br /&gt;&lt;br /&gt;GDrive would work as an online hard disk and could essentially work as a syncing device that will periodically update itself with the activities that take place on a computer, the Google Operating System has discovered.&lt;br /&gt;&lt;br /&gt;Also discovered in a Google Apps CSS file is that there is reportedly an update for Google Docs on the way that would include a desktop client for syncing files with GDrive.&lt;br /&gt;&lt;br /&gt;Since this drive will allow users to save their data online, users will be able to access their data from any computer in the world, as long as it is connected to an internet connection.&lt;br /&gt;&lt;br /&gt;In fact, if you take Google provisions seriously, you've probably already shifted your photograph and document base to atleast one of the Google services that work as great archiving hubs. However, space restriction and reliability could be a user's concern while depending on the Google servers to save their precious data.&lt;br /&gt;&lt;br /&gt;The GDrive could also partially replace the physical hard disk that a user needs to select an operating system (OS) for usage -- that is, after the initial booting. Google's online hard drive will merge all of Google's web based applications and make them available together.&lt;br /&gt;&lt;br /&gt;The GDrive is expected to be launched in 2009.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://secure.bidvertiser.com/performance/bdv_rss_rd.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;click=1&amp;rsrc=3" target="_blank"&gt;&lt;img src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=245891&amp;bid=632231&amp;PHS=245891632231&amp;rssimage=1&amp;rsrc=3" border="0"/&gt;&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6205172072186192698-2195587752873202243?l=manojmaniraj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://manojmaniraj.blogspot.com/feeds/2195587752873202243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://manojmaniraj.blogspot.com/2009/01/googles-gdrive.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/2195587752873202243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6205172072186192698/posts/default/2195587752873202243'/><link rel='alternate' type='text/html' href='http://manojmaniraj.blogspot.com/2009/01/googles-gdrive.html' title='Google&apos;s GDrive'/><author><name>Manoj Maniraj</name><uri>http://www.blogger.com/profile/05509661961470608823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_S54OBJ9phuM/SX9RzskqBgI/AAAAAAAAALQ/UeZs7DDNkaI/S220/Picture+056.jpg'/></author><thr:total>0</thr:total></entry></feed>
