<?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-10926158</id><updated>2011-12-29T19:27:01.952-05:00</updated><category term='couchdb'/><category term='yahoo'/><category term='yahoo virus removal tool'/><category term='&quot;REST Client&quot;'/><category term='wordpress syntax highlighting'/><category term='volatile keyword'/><category term='&quot;REST UI&quot;'/><category term='search engine'/><category term='Tomcat 6 remote debugging'/><category term='yadu'/><category term='volatile keyword in java'/><category term='embed code'/><category term='bigtable'/><category term='neo4j'/><category term='SunOne Remote Debugging'/><category term='PHP CMS'/><category term='volatile'/><category term='nosql'/><category term='Eclipse Tomcat Remote Debugging'/><category term='crawler'/><category term='Tomcat Eclipse Remote Debugging'/><category term='web page rank'/><category term='yahoo messenger virus'/><category term='Joomla Vs Drupal comparison'/><category term='Eclipse Remote Debugging'/><category term='&quot;multi catch&quot;'/><category term='yahoo virus'/><category term='messenger'/><category term='Ad Campaign using AdWords AdSense'/><category term='blog syntax highlighting'/><category term='java'/><category term='multi-site cms'/><category term='lucene'/><category term='tere aane ka shukriya - yadu ghazal'/><category term='trojan'/><category term='blog'/><category term='mongodb'/><category term='graph database'/><category term='REST Client Tool'/><category term='google pagerank'/><category term='blogger'/><category term='Remote Debugging - SunOne+Eclipse'/><category term='&quot;HTTP Client&quot;'/><category term='remote debugging'/><category term='embed code with syntax highlighting'/><category term='virus'/><category term='worm'/><category term='&quot;SOAP UI&quot;'/><category term='&quot;java 7 feautres&quot;'/><category term='&quot;string in switch&quot;'/><category term='syntax highlighter'/><category term='ACID nosql'/><category term='hbase'/><category term='&quot;java 7&quot;'/><category term='&quot;try with resources&quot;'/><category term='yahoo messenger worm'/><category term='nutch'/><title type='text'>Yadu's Blog</title><subtitle type='html'>confluence of ideas and technology</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://yadu.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://yadu.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Yadu</name><uri>http://www.blogger.com/profile/18388446465037858805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_KL65fB_2EiU/SMp5znpDUpI/AAAAAAAABDQ/Hr-EKT5vv1c/S220/yadu.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>18</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-10926158.post-8455523403286727436</id><published>2011-12-29T19:23:00.001-05:00</published><updated>2011-12-29T19:27:01.963-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bigtable'/><category scheme='http://www.blogger.com/atom/ns#' term='neo4j'/><category scheme='http://www.blogger.com/atom/ns#' term='couchdb'/><category scheme='http://www.blogger.com/atom/ns#' term='ACID nosql'/><category scheme='http://www.blogger.com/atom/ns#' term='nosql'/><category scheme='http://www.blogger.com/atom/ns#' term='hbase'/><category scheme='http://www.blogger.com/atom/ns#' term='graph database'/><category scheme='http://www.blogger.com/atom/ns#' term='mongodb'/><title type='text'>Graph Database: neo4j</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;If we start looking  around us in real life we’ll find more and more things are either in form graph  or web of graphs. How are peoples connected with each other? How does money flow  in a system? How are restaurants, hotels, and roads interconnected? How does a  message flow on a social network? We’ll end up with a graph if we try to draw  them on white board. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;We are dealing with  kind of similar domain model in our project. We got a flexible model using some out  of box design approaches over relational database. But this flexibility came  with some tradeoffs put in by limits of relational database. Growing size of  data is a concern; tens of millions of rows get added to a single table every couple of months. We are striving to come up with an improved and better-fit  solution before we hit the wall down the road after few years. This provoked us  to dive into NoSQL movement and do some experimentation. I got a chance to  attend tech talk on &lt;b&gt;neo4j&lt;/b&gt; at Credit Suisse last week. I am touching on NoSQL and neo4j  briefly in this email below. This shift in paradigm to see things in natural  form seems interesting or may be some food for thought during holidays. It may  help in solving some of the problems what we have been thinking of.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Faceoff: acronym  NoSQL is not for “No SQL” or “Never SQL”; it is “&lt;b&gt;N&lt;/b&gt;ot &lt;b&gt;O&lt;/b&gt;nly SQL”. So  most of the times, it means working on some no SQL persistence system along with  SQL (relational) database, separating content between the two based on use  case.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;b&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Different Types of  NoSQL Data Models:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Key/Value Stores –  fits well for very high volume of data having relatively low complexity e.g.  Amazon Dynamo&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Column Stores – fits  well for high volume of data having fairly high complexity e.g. Hbase,  Cassandra, BigTable&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Document Databases –  a middle path between high volume of data and high complexity e.g. Mongo,  CouchDB&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Graph Databases –  fits well for fairly high volume of data having high complexity e.g.  neo4j&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-1uvOrmE66LY/Tvz_D6NeO-I/AAAAAAAADQ4/5oAqoCh7W4I/s1600/NoSQL_Datamodel.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-1uvOrmE66LY/Tvz_D6NeO-I/AAAAAAAADQ4/5oAqoCh7W4I/s1600/NoSQL_Datamodel.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Why a graph database  (neo4j)?&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Many domains are  graph oriented and they are poorly mapped to tables. Why take the pain of  squeezing a graph into table?&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Performance problems  due to SQL joins for connected data&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;ACID&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt; and &lt;b&gt;JTA&lt;/b&gt;  compliant – only NoSQL DB, I know so far, which supports transactions like  relational DB&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Relationships can be  added dynamically if required&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;It can represents  one to one mapping from real life domain model&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;You might have heard  about Facebook Graph API and Open Graph Protocol; which see data in form of  graph of different domains like people, places, business, and events.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Data Modeling in  Graph Database (neo4j):&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Entities are nodes –  all nodes have ids; id is uniquely created automatically for every new node and  it cannot be changed&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoListParagraph" style="text-align: justify; text-indent: -0.25in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div class="MsoListParagraph" style="text-align: justify; text-indent: -0.25in;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;-&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Tied relationships  to connect nodes – uniquely identified by its type and direction&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraph" style="text-align: justify; text-indent: -0.25in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div class="MsoListParagraph" style="text-align: justify; text-indent: -0.25in;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;-&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Properties  (key/value pairs) – they can be attached to any node or relationship. Only java  primitives can be used for properties, objects go as nodes.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;This is a little  similar to how we bind data (e.g. single level JSON object) to a node in DOM and  then access it later. For example we do this using jQuery&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;pre class="brush:javascript"&gt;var user = {‘name’:‘John’, ‘age’:28, ‘department’:‘IT’};&lt;br /&gt;&lt;br /&gt;${“#user_div”}.data(“userInfo”, user);  // bind data to element having id=“user_div”&lt;br /&gt;&lt;br /&gt;alert( ${“#user_div”}.data(“userInfo”).name );  // prints John&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;&lt;b&gt;Spring Data Graph:&lt;/b&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;This is a JPA for  graph database. An annotation driven, aspectJ based domain layer framework from  SpringSource for mapping.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Cypher:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Graph query  language. Neo4j also supports a powerful native traversing mechanism to retrieve  data from graph.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Real Life Use  Cases:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraph" style="text-indent: -0.25in;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;-&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Social  Networks&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraph" style="text-indent: -0.25in;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;-&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Geo Spatial  Data&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoListParagraph" style="text-indent: -0.25in;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;-&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Recommendation  Engines&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Performance:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Test Case – 1000  persons having 50 friends on average over 4 levels. What is query time to find  out if any two persons, picked randomly, are friends?&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Result – it is 2000  ms for relational database and 2 ms for neo4j. Neo4j reports 2 ms even if number  of persons are increased to 1 million. Remember search complexity of a tree  from graph theory and algorithm class in school?&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;References:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Webinar: &lt;a href="http://www.blogger.com/goog_1206108059"&gt;http://www.youtube.com/watch?v=UodTzseLh04&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;&lt;a href="http://www.youtube.com/watch?v=UodTzseLh04%20" target="_blank"&gt; http://www.youtube.com/watch?v=UodTzseLh04&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Presentation:&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.blogger.com/exchweb/bin/redir.asp?URL=http://dl.dropbox.com/u/16869/presentations/2011-12-21-NYC-Java-SIG-Getting-started-with-Neo4j.pdf" target="_blank"&gt;http://dl.dropbox.com/u/16869/presentations/2011-12-21-NYC-Java-SIG-Getting-started-with-Neo4j.pdf&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;JDBC Driver for  neo4j:&lt;span style="color: blue;"&gt; &lt;a href="http://www.blogger.com/exchweb/bin/redir.asp?URL=http://rickardoberg.wordpress.com/2011/12/19/creating-a-jdbc-driver-for-neo4j/" target="_blank"&gt;http://rickardoberg.wordpress.com/2011/12/19/creating-a-jdbc-driver-for-neo4j/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Spring Graph Data:  &lt;a href="http://www.blogger.com/exchweb/bin/redir.asp?URL=http://www.springsource.org/spring-data/neo4j" target="_blank"&gt;http://www.springsource.org/spring-data/neo4j&lt;/a&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 9pt;"&gt;Happy  Holidays!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10926158-8455523403286727436?l=yadu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yadu.blogspot.com/feeds/8455523403286727436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10926158&amp;postID=8455523403286727436' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/8455523403286727436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/8455523403286727436'/><link rel='alternate' type='text/html' href='http://yadu.blogspot.com/2011/12/graph-database-neo4j.html' title='Graph Database: neo4j'/><author><name>Yadu</name><uri>http://www.blogger.com/profile/18388446465037858805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_KL65fB_2EiU/SMp5znpDUpI/AAAAAAAABDQ/Hr-EKT5vv1c/S220/yadu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-1uvOrmE66LY/Tvz_D6NeO-I/AAAAAAAADQ4/5oAqoCh7W4I/s72-c/NoSQL_Datamodel.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10926158.post-8870534232635396996</id><published>2011-07-13T16:00:00.024-04:00</published><updated>2011-07-13T18:28:04.013-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='&quot;try with resources&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='&quot;multi catch&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='&quot;java 7&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='&quot;java 7 feautres&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='&quot;string in switch&quot;'/><title type='text'>Java 7: New Feauters</title><content type='html'>Attended webcast of launch of Java 7 last week. A number of evolutionary new features are added by project &lt;span style="font-weight: bold;"&gt;coin &lt;/span&gt;to make Java developers life easy. In addition to them but more exciting step has been taken by opening JVM for dynamic languages. Now languages like Javascript, JRuby, Python and many more can dance within JVM. What a confluence of back-enders and front-enders, static lovers and dynamic lovers! Stage is set for a new paradigm in programming world ...&lt;br /&gt;&lt;br /&gt;I would love to share some of there here.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.&lt;/span&gt; Hurrrey.... finally String can be used in switch statement.&lt;br /&gt;&lt;pre class="brush:java"&gt;void printSubjectType(String subject) {&lt;br /&gt;String subjectType;&lt;br /&gt;&lt;br /&gt;switch(month) {&lt;br /&gt;case "english": subjectType = "Language"; break;&lt;br /&gt;case "physics": subjectType = "Science"; break;&lt;br /&gt;case "algebra": subjectType = "Mathematics"; break;&lt;br /&gt;...&lt;br /&gt;default: subjectType = "Uknown";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;System.out.println( subjectType );&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2.&lt;/span&gt; No need to mention types of generic on right hand side while initializing variable.&lt;br /&gt;&lt;pre class="brush:java"&gt;//Old&lt;br /&gt;Map&amp;lt;String, Integer&amp;gt; monthDays = new HashMap&amp;lt;String, Integer&amp;gt;();&lt;br /&gt;&lt;br /&gt;//Java 7&lt;br /&gt;Map&amp;lt;String, Integer&amp;gt; monthDays = new HashMap&amp;lt;&amp;gt;(); // equivalent to new HashMap&amp;lt;String, Integer&amp;gt;();&lt;br /&gt;&lt;br /&gt;// few more in Java 7&lt;br /&gt;Map&amp;lt;? extends Number&amp;gt; monthDays = new HashMap&amp;lt;&amp;gt;(); // equivalent to new HashMap&amp;lt;Number&amp;gt;();&lt;br /&gt;List&amp;lt;?&amp;gt; list = new ArrayList&amp;lt;&amp;gt;(); // equivalent to new ArrayList&amp;lt;Object&amp;gt;();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.&lt;/span&gt; Multi catch - specify more than one exception in catch clause.&lt;br /&gt;&lt;pre class="brush:java"&gt;// Old&lt;br /&gt;try {&lt;br /&gt;new FileImageInputStream(new File("test.txt"));&lt;br /&gt;} catch ( FileNotFoundException e ) {&lt;br /&gt;throw(e);&lt;br /&gt;} catch ( IOException e ) {&lt;br /&gt;throw(e);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Java 7&lt;br /&gt;try {&lt;br /&gt;new FileImageInputStream(new File("test.txt"));&lt;br /&gt;} catch ( FileNotFoundException | IOException e ) {&lt;br /&gt;throw(e);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4.&lt;/span&gt; try-with-resources - New try clause syntax where resources can be initialized. These resources get automatically closed for sure after completing try block.&lt;br /&gt;&lt;pre class="brush:java"&gt;//Java 7&lt;br /&gt;try( InputStream in = FileInputStream("src"); OutputStream out = FileOutputStream("dest"); ) {&lt;br /&gt;..........&lt;br /&gt;..........&lt;br /&gt;}&lt;br /&gt;// no need to close in and out in finally block what we generally used to do.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Some more sophisticated features:&lt;br /&gt;1. JVM supports dynamic languages like Javascript, JRuby etc. using invokdynamic and call site features.&lt;br /&gt;2. New file APIs.&lt;br /&gt;3. NIO2 - New IO part two APIs. Support for asynchronous IO has been added.&lt;br /&gt;&lt;br /&gt;Ref: http://www.oracle.com/us/corporate/events/java7/index.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10926158-8870534232635396996?l=yadu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yadu.blogspot.com/feeds/8870534232635396996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10926158&amp;postID=8870534232635396996' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/8870534232635396996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/8870534232635396996'/><link rel='alternate' type='text/html' href='http://yadu.blogspot.com/2011/07/java-7-new-feauters.html' title='Java 7: New Feauters'/><author><name>Yadu</name><uri>http://www.blogger.com/profile/18388446465037858805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_KL65fB_2EiU/SMp5znpDUpI/AAAAAAAABDQ/Hr-EKT5vv1c/S220/yadu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10926158.post-7558949184129806878</id><published>2010-07-06T18:10:00.010-04:00</published><updated>2011-09-13T16:08:34.304-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='&quot;REST UI&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='REST Client Tool'/><category scheme='http://www.blogger.com/atom/ns#' term='&quot;SOAP UI&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='&quot;REST Client&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='&quot;HTTP Client&quot;'/><title type='text'>REST Client</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;This is a feature rich rest client what I developed and released to open source under EPL 1.0 for  developers  to play with web services. It can be used to test any URL for all HTTP  methods &lt;br /&gt;&lt;ul&gt;&lt;li&gt;GET &lt;/li&gt;&lt;li&gt;POST &lt;/li&gt;&lt;li&gt;PUT &lt;/li&gt;&lt;li&gt;DELETE  &lt;/li&gt;&lt;li&gt;HEAD&amp;nbsp;&lt;/li&gt;&lt;li&gt;OPTIONS&lt;/li&gt;&lt;li&gt; TRACE&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Main Features&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Simultaneous  views of request,  response and browser. &lt;/li&gt;&lt;li&gt;Post raw data or  file, text content or  binary. &lt;/li&gt;&lt;li&gt;Post params in either body or as  part of URL (twitter  style). &lt;/li&gt;&lt;li&gt;Post multipart form data with  same ease as of normal  post. &lt;/li&gt;&lt;li&gt;Handle response equally well even  if it is binary e.g.  image, pdf etc. No gibberish characters anymore. &lt;/li&gt;&lt;li&gt;Play  with  headers and params. &lt;/li&gt;&lt;/ol&gt;&lt;h4&gt;Min.   Requirement&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;Java 1.6 &lt;/li&gt;&lt;li&gt;Eclipse 3.4  (for  plugin) &lt;/li&gt;&lt;li&gt;HTTP 1.1 compatibility &lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Project Home:&lt;br /&gt;&lt;/h4&gt;&lt;h4&gt;&lt;a href="http://tinyurl.com/rest-client"&gt;http://tinyurl.com/rest-client&lt;/a&gt;&lt;br /&gt;&lt;/h4&gt;&lt;h4&gt;Approved by eclipse.org: &lt;/h4&gt;&lt;h4&gt;&lt;a href="http://marketplace.eclipse.org/content/rest-client" rel="nofollow"&gt;http://marketplace.eclipse.org/content/rest-client&lt;/a&gt;&lt;/h4&gt;&lt;br /&gt;&lt;a href="http://img175.imageshack.us/img175/8761/screenshot2p.jpg"&gt;&lt;img alt="" border="0" src="http://img175.imageshack.us/img175/8761/screenshot2p.jpg" style="cursor: pointer; display: block; height: 931px; margin: 0px auto 10px; text-align: center; width: 783px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10926158-7558949184129806878?l=yadu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yadu.blogspot.com/feeds/7558949184129806878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10926158&amp;postID=7558949184129806878' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/7558949184129806878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/7558949184129806878'/><link rel='alternate' type='text/html' href='http://yadu.blogspot.com/2010/07/rest-client.html' title='REST Client'/><author><name>Yadu</name><uri>http://www.blogger.com/profile/18388446465037858805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_KL65fB_2EiU/SMp5znpDUpI/AAAAAAAABDQ/Hr-EKT5vv1c/S220/yadu.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10926158.post-3475280931020359496</id><published>2010-05-28T14:55:00.009-04:00</published><updated>2010-05-28T16:58:53.500-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='volatile'/><category scheme='http://www.blogger.com/atom/ns#' term='volatile keyword'/><category scheme='http://www.blogger.com/atom/ns#' term='volatile keyword in java'/><title type='text'>Volatillity of "volatile" in Java Multi-threading</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:verdana;"&gt;Many people say &lt;/span&gt;&lt;span style="font-style: italic;font-family:verdana;" &gt;volatile &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;keyword in Java is poorly understood and underused and I am not the exception. I would try to throw some light over it to make it simple to understand.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;volatile has its meaning in context of multi-threading. Many explain it as&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;"&lt;/span&gt;&lt;span style="font-style: italic;font-family:verdana;" &gt;If a variable is declared as volatile then it is guaranteed that    any thread which reads it see the most recently written    value.&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Well first we need to understand that each thread has private memory (cache) in addition to access to shared main memory. Thread contains a copy of shared object, present in main memory, in its cache. There is time-to-time synchronization between cached value and value in main memory; it happens on event of obtaining or releasing lock. But this is not true if variable is declared as volatile. Volatile variables are read and written to main memory only. So there is no need of synchronization and any thread trying to read value will read from main memory.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Having said that there is still an open question of dead lock. Well access to volatile variable is like accessing a synchronized block without holding lock.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10926158-3475280931020359496?l=yadu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yadu.blogspot.com/feeds/3475280931020359496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10926158&amp;postID=3475280931020359496' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/3475280931020359496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/3475280931020359496'/><link rel='alternate' type='text/html' href='http://yadu.blogspot.com/2010/05/volatillity-of-volatile-in-java-multi.html' title='Volatillity of &quot;volatile&quot; in Java Multi-threading'/><author><name>Yadu</name><uri>http://www.blogger.com/profile/18388446465037858805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_KL65fB_2EiU/SMp5znpDUpI/AAAAAAAABDQ/Hr-EKT5vv1c/S220/yadu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10926158.post-4444406745238525903</id><published>2010-03-29T11:31:00.009-04:00</published><updated>2010-05-28T16:57:57.248-04:00</updated><title type='text'>Ajax - Internal</title><content type='html'>&lt;span style="font-family: verdana;"&gt;Objective of this post is to expose behind the scene story of Ajax but lets start with classical definition of Ajax ...&lt;/span&gt;&lt;br /&gt;&lt;div  style="text-align: center;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt; &lt;b style="font-family: verdana;"&gt;1.  What is Ajax?&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;div  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Ajax is a web technology by which web client (web  page) can interact with server asynchronously. Ajax stands for &lt;b&gt;A&lt;/b&gt;synchronous  &lt;b&gt;J&lt;/b&gt;avascript &lt;b&gt;a&lt;/b&gt;nd &lt;b&gt;X&lt;/b&gt;ML. The whole story is around an  object XMLHttpRequest which is an implementation, available in most  browsers, of an interface &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#xmlhttprequest"&gt;XMLHttpRequest&lt;/a&gt;  provided by scripting engine. IE has a different name of this  object called XMLHTTP and instantiated as an activeX object. This object  can be used by scripts to programmatically connect to their originating  server via HTTP synchronously and &lt;b&gt;asynchronously&lt;/b&gt;. Its  asynchronous capability is exploited by AJAX for interactive  communication with server.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt; &lt;b style="font-family: verdana;"&gt;2. Example&lt;/b&gt; &lt;/span&gt;&lt;div  style="margin-left: 40px;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;function ajaxCall(url) {&lt;br /&gt;var req;&lt;br /&gt;&lt;br /&gt;try {&lt;br /&gt;   req = new XMLHttpRequest();&lt;br /&gt;} catch(e)  {&lt;br /&gt;   try {&lt;br /&gt;       req = new  ActiveXObject("Msxml2.XMLHTTP");    // IE 6.0+&lt;br /&gt;   } catch(e) {&lt;br /&gt;        try {&lt;br /&gt;           req = new  ActiveXObject("Microsoft.XMLHTTP");    // Older IE&lt;br /&gt;       }  catch(e) {&lt;br /&gt;           throw new Error("Your browser doesn't  support AJAX =&gt; " + e);    // Doesn't support AJAX&lt;br /&gt;       }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;req.onreadystatechange = function() {&lt;br /&gt;    if(this.readyState == 4) {&lt;br /&gt;       var data =  req.responseText;&lt;br /&gt;        document.getElementById('response').innerHTML = data;    // create a div  with id 'response'&lt;br /&gt;       // $("#response").html(data);  // if  using jquery&lt;br /&gt;   }&lt;br /&gt;};&lt;br /&gt;req.open("GET", url, true);&lt;br /&gt;req.send(null);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;div  style="margin-left: 40px;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Working  with GET&lt;/b&gt;&lt;br /&gt;Parameters can be passed as part of URL with GET e.g.  http://server.com/getUser?fname=susan&amp;amp;lname=hank&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Working  with POST (sending JSON object, sending DOM)&lt;/b&gt;&lt;br /&gt;With POST send()  method can have a Document, DOM string, JSON string or any simple text  string.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;   &lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;◆ A new instance of XMLHttpRequest object  needs to be created for each new request. This is so because once  readyState gets changed it is not reset to 0.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;◆ Some browsers don't  implement no argument send() method. So it would be better to pass  'null' if there is nothing to pass.&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;span style="font-size:85%;"&gt;  &lt;/span&gt;&lt;p  style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;3. XMLHttpRequest  Explained&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;XMLHttpRequest has the following methods&lt;/span&gt;&lt;/p&gt;&lt;table  border="1" height="366" width="676" style="font-family:verdana;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Method&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;abort()&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;Aborts the current request&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;getAllResponseHeaders()&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;Returns all of the HTTP  headers as a string&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;getResponseHeader( headerName )&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;Returns the specific value  of the given HTTP header.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;open( method, URL, async, userName, password )&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;Opens a connection to the  given URL using the given Method.&lt;br /&gt;&lt;b&gt;URL&lt;/b&gt; - The URL that you  wish to connect to.&lt;br /&gt;&lt;b&gt;method&lt;/b&gt; - The HTTP method of which you  wish to communicate by.&lt;br /&gt;Possible Methods:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;GET - most  common&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;POST&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;HEAD&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;PUT&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;DELETE - least  common&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;async&lt;/b&gt; - whether or not the connection should be  asynchronous. For Ajax this is always true.&lt;br /&gt;&lt;b&gt;userName&lt;/b&gt; -  username IF login is required&lt;br /&gt;&lt;b&gt;password&lt;/b&gt; - password IF login is  required&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;send( content )&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;Sends the request to the url in the open function. Content is any  information that you wish to send to the server. This is typically null  but depends on the method specified in the open function.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;setRequestHeader( key,  value )&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;Adds a  key-value pair to the HTTP header to be sent.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;p  style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;XMLHttpRequest  has the following properties&lt;/span&gt;&lt;/p&gt;&lt;table  border="1" height="221" width="675" style="font-family:verdana;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Property&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;onreadystatechange&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;A reference to an event  handler for an event that triggers everytime the object changes state.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;readyState&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;Returns the state of the  object as follows: &lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;0 = uninitialized&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;1 = open&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;2 =  sent&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;3 = receiving&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;4 = ready&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;responseText&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;The response from the  server contained in a single string.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;responseXML&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;The response from the  server in XML format.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;status&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;The HTTP status code as a number&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;statusText&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color: rgb(217, 234, 211);"&gt;&lt;span style="font-size:85%;"&gt;The HTTP status as a  string, ex: "Not Okay" or "Ok"&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p  style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;4.  Interface of XMLHttpRequest object&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;XMLHttpRequest object  is the implementation of interface provided by scripting engine as  specified by W3C. Below is the interface&lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="background-color: rgb(217, 234, 211);font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;[NoInterfaceObject]&lt;br /&gt;interface  XMLHttpRequestEventTarget : EventTarget {&lt;br /&gt;// for future use&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;[&lt;a href="http://www.w3.org/TR/XMLHttpRequest/#xmlhttprequest-constructor" title="XMLHttpRequest constructor"&gt;Constructor&lt;/a&gt;]&lt;br /&gt;interface  XMLHttpRequest : &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#xmlhttprequesteventtarget"&gt;XMLHttpRequestEventTarget&lt;/a&gt;  {&lt;br /&gt;// &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#event-handler-attributes"&gt;event  handler attributes&lt;/a&gt;&lt;br /&gt;attribute &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#function"&gt;Function&lt;/a&gt; &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#onreadystatechange"&gt;onreadystatechange&lt;/a&gt;;&lt;br /&gt;&lt;br /&gt;// &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#states"&gt;states&lt;/a&gt;&lt;br /&gt;const unsigned short &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#unsent-state" title="UNSENT  state"&gt;UNSENT&lt;/a&gt; = 0;&lt;br /&gt;const unsigned short &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#opened-state" title="OPENED  state"&gt;OPENED&lt;/a&gt; = 1;&lt;br /&gt;const unsigned short &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#headers-received-state" title="HEADERS_RECEIVED state"&gt;HEADERS_RECEIVED&lt;/a&gt; = 2;&lt;br /&gt;const  unsigned short &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#loading-state" title="LOADING  state"&gt;LOADING&lt;/a&gt; = 3;&lt;br /&gt;const unsigned short &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#done-state" title="DONE  state"&gt;DONE&lt;/a&gt; = 4;&lt;br /&gt;readonly attribute unsigned short &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#readystate"&gt;readyState&lt;/a&gt;;&lt;br /&gt;&lt;br /&gt;// &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#request"&gt;request&lt;/a&gt;&lt;br /&gt;void &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#open"&gt;open&lt;/a&gt;(DOMString  method, DOMString url);&lt;br /&gt;void &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#open"&gt;open&lt;/a&gt;(DOMString  method, DOMString url, boolean async);&lt;br /&gt;void &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#open"&gt;open&lt;/a&gt;(DOMString  method, DOMString url, boolean async, DOMString? user);&lt;br /&gt;void &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#open"&gt;open&lt;/a&gt;(DOMString  method, DOMString url, boolean async, DOMString? user, DOMString?  password);&lt;br /&gt;void &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#setrequestheader"&gt;setRequestHeader&lt;/a&gt;(DOMString  header, DOMString value);&lt;br /&gt;void &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#send"&gt;send&lt;/a&gt;();&lt;br /&gt;void &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#send"&gt;send&lt;/a&gt;(Document  data);&lt;br /&gt;void &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#send"&gt;send&lt;/a&gt;([AllowAny]  DOMString? data);&lt;br /&gt;void &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#abort"&gt;abort&lt;/a&gt;();&lt;br /&gt;&lt;br /&gt;// &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#response"&gt;response&lt;/a&gt;&lt;br /&gt;readonly attribute unsigned short &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#status"&gt;status&lt;/a&gt;;&lt;br /&gt;readonly attribute DOMString &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#statustext"&gt;statusText&lt;/a&gt;;&lt;br /&gt;DOMString &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#getresponseheader"&gt;getResponseHeader&lt;/a&gt;(DOMString  header);&lt;br /&gt;DOMString &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#getallresponseheaders"&gt;getAllResponseHeaders&lt;/a&gt;();&lt;br /&gt;readonly attribute DOMString &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#responsetext"&gt;responseText&lt;/a&gt;;&lt;br /&gt;readonly attribute Document &lt;a href="http://www.w3.org/TR/XMLHttpRequest/#responsexml"&gt;responseXML&lt;/a&gt;;&lt;br /&gt;};&lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;More  information is provided by the W3C at &lt;a href="http://www.w3.org/TR/XMLHttpRequest/"&gt;http://www.w3.org/TR/XMLHttpRequest/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10926158-4444406745238525903?l=yadu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yadu.blogspot.com/feeds/4444406745238525903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10926158&amp;postID=4444406745238525903' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/4444406745238525903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/4444406745238525903'/><link rel='alternate' type='text/html' href='http://yadu.blogspot.com/2010/03/ajax-internal.html' title='Ajax - Internal'/><author><name>Yadu</name><uri>http://www.blogger.com/profile/18388446465037858805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_KL65fB_2EiU/SMp5znpDUpI/AAAAAAAABDQ/Hr-EKT5vv1c/S220/yadu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10926158.post-5566755010695029062</id><published>2009-10-30T14:23:00.002-04:00</published><updated>2009-10-30T14:26:02.206-04:00</updated><title type='text'>How to log Hibernate SQLs and parameters ?</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: verdana;"&gt;These configs are handy to log Hibernate SQLs and parameters using log4j.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;log4j.logger.org.hibernate.SQL=DEBUG&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;log4j.logger.org.hibernate.type=DEBUG&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;log4j.logger.org.hibernate.bind=DEBUG&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;log4j.additivity.org.hibernate.SQL=true  (optional)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10926158-5566755010695029062?l=yadu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yadu.blogspot.com/feeds/5566755010695029062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10926158&amp;postID=5566755010695029062' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/5566755010695029062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/5566755010695029062'/><link rel='alternate' type='text/html' href='http://yadu.blogspot.com/2009/10/how-to-log-hibernate-sqls-and.html' title='How to log Hibernate SQLs and parameters ?'/><author><name>Yadu</name><uri>http://www.blogger.com/profile/18388446465037858805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_KL65fB_2EiU/SMp5znpDUpI/AAAAAAAABDQ/Hr-EKT5vv1c/S220/yadu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10926158.post-5035453276471058852</id><published>2009-10-18T12:32:00.006-04:00</published><updated>2009-11-13T16:28:55.889-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ad Campaign using AdWords AdSense'/><title type='text'>Practical Approach to Google's AdWords</title><content type='html'>&lt;span style="font-family: verdana;font-family:Verdana;font-size:100%;"  &gt; These steps can be helpful in deciding best strategy for online Ad campaign using Google's AdWords.&lt;/span&gt;&lt;span style="font-family: verdana;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;ol style="font-family: verdana;font-family:verdana;" &gt;  &lt;li&gt;&lt;span style="font-size:100%;"&gt;Find out your target customers and do customer segmentation.&lt;br /&gt;&lt;/span&gt;  &lt;/li&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;  &lt;li&gt;&lt;span style="font-size:100%;"&gt;Coin proper keywords combination focusing on target segment. Choosing right keywords is most essential part of Ad campaign.&lt;br /&gt;&lt;/span&gt;  &lt;/li&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;  &lt;li&gt;&lt;span style="font-size:100%;"&gt;Next step comes of refining chosen keywords and controlling the behavior of display of Ad in search results by using various options to define your keywords.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ul style="font-family: verdana;font-family:verdana;" &gt;&lt;ul&gt;    &lt;li&gt;&lt;span style="font-size:100%;"&gt;So once you have a number of alternative keyword combinations, go for that which is closest to your products/services.&lt;br /&gt;&lt;/span&gt;    &lt;/li&gt;    &lt;li&gt;&lt;span style="font-size:100%;"&gt;Use quotes, brackets, exclamation mark (to negate words) to control display of Ad in search results.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ol style="font-family: verdana;font-family:verdana;" start="4" &gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;A realistic budget can be set on monthly basis so that you don't run out of advertising money if there are unexpectedly very high number of hits.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;  &lt;/li&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;  &lt;li&gt;&lt;span style="font-size:100%;"&gt;A regular monitoring of ad campaign is necessary. You should do data mining to find out "customer conversion rates", "expense vs returns".&lt;br /&gt;&lt;/span&gt;  &lt;/li&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;  &lt;li&gt;&lt;span style="font-size:100%;"&gt;Localization is very useful in targeting perspective customers having higher possibility of conversion. For example if your products/services are physically present only in certain cities or areas you should localize your Ads to these places only. This can save you ton of money by avoiding unnecessary hits from people outside of your focus area.&lt;br /&gt;&lt;/span&gt;  &lt;/li&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;  &lt;li&gt;&lt;span style="font-size:100%;"&gt;Create specifically designed landing pages tied up with the Ad. Sending visitors to homepage can leave them lost in piles of information.&lt;br /&gt;&lt;/span&gt;  &lt;/li&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;  &lt;li&gt;&lt;span style="font-size:100%;"&gt;Ad campaign can be outsourced to SEO companies for better returns. These companies have experts of this field. They properly launch, design, refresh and monitor Ad campaigns.&lt;br /&gt;&lt;/span&gt;  &lt;/li&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;  &lt;li&gt;&lt;span style="font-size:100%;"&gt;There is a risk factor with AdWords. You may loose your money without return if any computer generated program hits your Ad. Money may be returned by Google in such cases if it had been proved but there would be additional pain in claiming your money back.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;  &lt;/li&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;  &lt;li&gt;&lt;span style="font-size:100%;"&gt;If your business is very new of its kind and most of the people don't know about it, AdWords may not be the right choice for you. People generally avoid clicking on Ads in such a case. Traditional ways of promoting productions/services may be better choice to go with.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;  &lt;/li&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/ol&gt;&lt;span style="font-family: verdana;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10926158-5035453276471058852?l=yadu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yadu.blogspot.com/feeds/5035453276471058852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10926158&amp;postID=5035453276471058852' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/5035453276471058852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/5035453276471058852'/><link rel='alternate' type='text/html' href='http://yadu.blogspot.com/2009/10/practical-approach-to-google-adwords.html' title='Practical Approach to Google&amp;#39;s AdWords'/><author><name>Yadu</name><uri>http://www.blogger.com/profile/18388446465037858805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_KL65fB_2EiU/SMp5znpDUpI/AAAAAAAABDQ/Hr-EKT5vv1c/S220/yadu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10926158.post-4542439741819617884</id><published>2009-08-01T01:50:00.029-04:00</published><updated>2009-08-03T21:55:04.175-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='syntax highlighter'/><category scheme='http://www.blogger.com/atom/ns#' term='embed code with syntax highlighting'/><category scheme='http://www.blogger.com/atom/ns#' term='embed code'/><category scheme='http://www.blogger.com/atom/ns#' term='wordpress syntax highlighting'/><category scheme='http://www.blogger.com/atom/ns#' term='blog syntax highlighting'/><title type='text'>Embed Code in Blog and Webpages with Syntax Highlighting</title><content type='html'>&lt;span style=";font-family:verdana;font-size:85%;"  &gt;Ever wondered how one can embed code in blogs and web pages with language specific highlighting? Let's hit ground directly. It is a cakewalk by using js based open source &lt;a href="http://alexgorbatchev.com/wiki/SyntaxHighlighter" target="_blank"&gt;Syntax Highlighter&lt;/a&gt; developed by Alex Gorbatchev.&lt;/span&gt;&lt;br /&gt;&lt;p   style=";font-family:verdana;font-size:85%;"&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;Here We'll talk about embedding code with language specific syntax highlighting in blogger/blogspot. But it is pretty straight forward to do the same in any web page.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;span style="font-weight: bold;"&gt;Setup Syntax Highlighter for Blogger&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Open template layout for editing in 'Edit Html' mode&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Add following lines of code in head section (just before closing head tag &amp;lt;/head&amp;gt;)&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;pre class="brush:html"&gt;&amp;lt;!-- Adding Syntax Highlighter --&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;link href="http://alexgorbatchev.com/pub/sh/current/styles/shCore.css" rel="stylesheet" type="text/css"&amp;gt;&lt;br /&gt;&amp;lt;link href="http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css" rel="stylesheet" type="text/css"&amp;gt;&lt;br /&gt;&amp;lt;script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!-- language specific brushes (js files) go here --&amp;gt;&lt;br /&gt;&amp;lt;script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js' type='text/javascript'/&amp;gt;&lt;br /&gt;&amp;lt;script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'/&amp;gt;&lt;br /&gt;&amp;lt;script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js' type='text/javascript'/&amp;gt;&lt;br /&gt;&amp;lt;script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'/&amp;gt;&lt;br /&gt;&amp;lt;script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'/&amp;gt;&lt;br /&gt;&amp;lt;script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js' type='text/javascript'/&amp;gt;&lt;br /&gt;&amp;lt;script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js' type='text/javascript'/&amp;gt;&lt;br /&gt;&amp;lt;script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPerl.js' type='text/javascript'/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!-- Adding Syntax Highlighter Ends Here --&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre class="brush:js"&gt;//enabling syntax highlighter for blogger&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;SyntaxHighlighter.config.bloggerMode = true;&lt;br /&gt;SyntaxHighlighter.all();&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Save template and you are done with setting up syntax highlighter for your blogger!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;span style="font-weight: bold;"&gt;Writing Post with Syntax Highlighting&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;       Open editor in "Edit Html" mode and wrap code in language specific pre tags&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;SQL Example&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;br /&gt;&amp;lt;pre class="brush:sql"&amp;gt;&lt;br /&gt;CREATE TABLE login_detail(user_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,&lt;br /&gt;email VARCHAR(255) NOT NULL UNIQUE,&lt;br /&gt;password VARCHAR(255) NOT NULL,&lt;br /&gt;user_type VARCHAR(10),&lt;br /&gt;active CHAR(1) NOT NULL DEFAULT 'Y');&lt;br /&gt;&amp;lt;/pre&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;Result:&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;CREATE TABLE login_detail(user_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,&lt;br /&gt;email VARCHAR(255) NOT NULL UNIQUE,&lt;br /&gt;password VARCHAR(255) NOT NULL,&lt;br /&gt;user_type VARCHAR(10),&lt;br /&gt;active CHAR(1) NOT NULL DEFAULT 'Y');&lt;br /&gt;&lt;/pre&gt;&lt;li&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;Javascript Example&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;br /&gt;&amp;lt;pre class="brush:js"&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;// The Vehicle class&lt;br /&gt;Vehicle={&lt;br /&gt;wheels:2,&lt;br /&gt;setWheels:function(x){&lt;br /&gt;this.wheels=x&lt;br /&gt;},&lt;br /&gt;getWheels:function(x){&lt;br /&gt;return this.wheels&lt;br /&gt;}&lt;br /&gt;};&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;Result:&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:js"&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt; // The Vehicle class&lt;br /&gt; Vehicle={&lt;br /&gt;   wheels:2,&lt;br /&gt;   setWheels:function(x){&lt;br /&gt;     this.wheels=x&lt;br /&gt;   },&lt;br /&gt;   getWheels:function(x){&lt;br /&gt;     return this.wheels&lt;br /&gt;   }&lt;br /&gt; };&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;br /&gt;** Don't forget doing HTML encoding of text for getting properly formatted HTML.&lt;br /&gt;&lt;a href="http://www.opinionatedgeek.com/DotNet/Tools/HTMLEncode/Encode.aspx" target="_blank"&gt;HTML Encoder 1&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mlawire.blogspot.com/2009/07/html-encoder-encode-html-entities.html" target="_blank"&gt;HTML Encoder 2&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10926158-4542439741819617884?l=yadu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yadu.blogspot.com/feeds/4542439741819617884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10926158&amp;postID=4542439741819617884' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/4542439741819617884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/4542439741819617884'/><link rel='alternate' type='text/html' href='http://yadu.blogspot.com/2009/08/syntax-highlighter.html' title='Embed Code in Blog and Webpages with Syntax Highlighting'/><author><name>Yadu</name><uri>http://www.blogger.com/profile/18388446465037858805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_KL65fB_2EiU/SMp5znpDUpI/AAAAAAAABDQ/Hr-EKT5vv1c/S220/yadu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10926158.post-22907547848017185</id><published>2009-01-23T12:20:00.003-05:00</published><updated>2009-01-23T13:08:36.618-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Remote Debugging - SunOne+Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='SunOne Remote Debugging'/><title type='text'>Remote Debugging - SunOne+Eclipse</title><content type='html'>&lt;span style="font-family: verdana;font-family:verdana;font-size:100%;"  &gt;&lt;code&gt;&lt;br /&gt;In &lt;span style="font-weight: bold;"&gt;server.xml&lt;/span&gt; ( for my installation it is at /opt/jsws70/https-&amp;lt;user&amp;gt;/config/server.xml )&lt;br /&gt;&lt;br /&gt; 1. Set debug option under jvm to true.&lt;br /&gt;     &amp;lt;debug&amp;gt;&lt;span style="font-weight: bold; color: rgb(51, 102, 255);"&gt;true&lt;/span&gt;&amp;lt;/debug&amp;gt;&lt;br /&gt;&lt;br /&gt; 2. Set the port on which debugging to be enabled&lt;br /&gt;      &amp;lt;debug-jvm-options&amp;gt;-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=&amp;lt;&lt;span style="font-weight: bold; color: rgb(51, 102, 255);"&gt;desired port&lt;/span&gt;&amp;gt;&amp;lt;/debug-jvm-options&amp;gt;&lt;br /&gt;&lt;br /&gt; 3. Now for Eclipse configuration, go to debug configuration. Use server name or IP and in the port option, put the same port that you have set in server.xml &amp;lt;desired-port&amp;gt;&lt;br /&gt;&lt;br /&gt; 4. If you need more detail, please follow steps in &lt;a href="http://yadu.blogspot.com/2009/01/tomcat-eclipse-remote-debugging.html"&gt;Remote Debugging - Tomcat+Eclipse&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10926158-22907547848017185?l=yadu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yadu.blogspot.com/feeds/22907547848017185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10926158&amp;postID=22907547848017185' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/22907547848017185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/22907547848017185'/><link rel='alternate' type='text/html' href='http://yadu.blogspot.com/2009/01/remote-debugging-sunoneeclipse.html' title='Remote Debugging - SunOne+Eclipse'/><author><name>Yadu</name><uri>http://www.blogger.com/profile/18388446465037858805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_KL65fB_2EiU/SMp5znpDUpI/AAAAAAAABDQ/Hr-EKT5vv1c/S220/yadu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10926158.post-6872183274379988512</id><published>2009-01-16T15:55:00.000-05:00</published><updated>2009-01-23T12:19:57.155-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse Tomcat Remote Debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='remote debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='Tomcat 6 remote debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse Remote Debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='Tomcat Eclipse Remote Debugging'/><title type='text'>Remote Debugging - Tomcat + Eclipse</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;I am assuming that you have setup Tomcat by exploding its zip distribution. Windows installer distribution of Tomcat doesn't contain all config and script files including catalina.bat or catalina.sh . I used&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;- Tomcat 6.0.18&lt;/span&gt;  &lt;span style="font-family:verdana;"&gt;&lt;br /&gt;- Eclipse 3.4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;- Windows XP&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt; &lt;b style="font-family: verdana;"&gt;&lt;u&gt;&lt;br /&gt;Tomcat Configuration&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;    &lt;ol  style="font-family:verdana;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt; Go to CATALINA_HOME\bin and edit catalina.bat in any editor, say Notepad++ . Here CATALINA_HOME is your tomcat installation directory. For me it is C:\Tomcat6.0 .&lt;br /&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;     Find &lt;b&gt;JPDA_TRANSPORT &lt;/b&gt;and set it as &lt;b&gt;JPDA_TRANSPORT=dt_socket .&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;     Find &lt;b&gt;JPDA_ADDRESS&lt;/b&gt; and set it as &lt;b&gt;JPDA_ADDRESS&lt;/b&gt;&lt;b&gt;=8000 &lt;/b&gt;(you can use any unused port).   &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt; Check if port specified is not being already being used; by executing "netstat" at command prompt. Check list of local ports. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;     Save your changes.   &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt; Start your server in debug mode by hitting "catalina jpda start". You may like to add CATALINA_HOME\bin in you PATH environment variable.&lt;br /&gt;&lt;/span&gt;   &lt;/li&gt;&lt;/ol&gt; &lt;span style="font-size:85%;"&gt; &lt;b style="font-family: verdana;"&gt;&lt;u&gt;Eclipse Configuration&lt;/u&gt;&lt;/b&gt; &lt;/span&gt;  &lt;ol  style="font-family:verdana;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;     Click on green beetle -&gt; debug configurations...   &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;     At Remote Java Application, click new and configure the settings.   &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;     Give a name to this debug configuration (homebase-tomcat for me).&lt;br /&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;     Type &lt;b&gt;localhost&lt;/b&gt; at Host or any name you have given to you localhost, mapped to 127.0.0.1 in hosts file (localhost.mlbam.com for me).&lt;br /&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;     Type &lt;b&gt;8000&lt;/b&gt; as the port. Please note that the port must be the same with the JPDA_ADDRESS in catalina.bat file.   &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;     Browse the project that you would like to debug.   &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;     Click on debug button.   &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_KL65fB_2EiU/SXD1ieddwdI/AAAAAAAABok/JUmznCBSkVQ/s1600-h/eclipse-debug.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 251px;" src="http://1.bp.blogspot.com/_KL65fB_2EiU/SXD1ieddwdI/AAAAAAAABok/JUmznCBSkVQ/s320/eclipse-debug.JPG" alt="" id="BLOGGER_PHOTO_ID_5291999534801338834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt; &lt;u style="font-family: verdana;"&gt;&lt;b&gt;Debugging&lt;/b&gt;&lt;/u&gt; &lt;/span&gt;  &lt;ol  style="font-family:verdana;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;     Go to your code and put breakpoints by double clicking on the left panel, wherever you want to debug.   &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;     Hit your server by opening pages, where you want to debug, in browser.   &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;     You will see eclipse switches to debug perspective and debug control flow stops at first breakpoint on the way.   &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;     Use following eclipse shortcuts to proceed debugging   &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;ul  style="font-family:verdana;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;     F5 - Step into (you may like to go inside any method on the way)&lt;br /&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;     F6 - Step over (line by line)&lt;br /&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt; F7 - Step return (coming out back after going down into a call hierarchy) &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt; F8 - Resume debugging (breakpoint to breakpoint)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt; &lt;ol start="5"  style="font-family:verdana;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;     Use terminate and disconnect buttons to stop debugging&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size:85%;"&gt;You all set to play with debugging!!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10926158-6872183274379988512?l=yadu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yadu.blogspot.com/feeds/6872183274379988512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10926158&amp;postID=6872183274379988512' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/6872183274379988512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/6872183274379988512'/><link rel='alternate' type='text/html' href='http://yadu.blogspot.com/2009/01/tomcat-eclipse-remote-debugging.html' title='Remote Debugging - Tomcat + Eclipse'/><author><name>Yadu</name><uri>http://www.blogger.com/profile/18388446465037858805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_KL65fB_2EiU/SMp5znpDUpI/AAAAAAAABDQ/Hr-EKT5vv1c/S220/yadu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_KL65fB_2EiU/SXD1ieddwdI/AAAAAAAABok/JUmznCBSkVQ/s72-c/eclipse-debug.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10926158.post-3419337771546169059</id><published>2009-01-12T00:40:00.000-05:00</published><updated>2009-01-12T01:01:39.723-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Joomla Vs Drupal comparison'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP CMS'/><category scheme='http://www.blogger.com/atom/ns#' term='multi-site cms'/><title type='text'>Joomla Vs Drupal</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;Here I'll try to compare two hottest PHP based content management system Joomla and Drupal, based on some prevailing factors, and my experience while working/evaluating Joomla and Drupal.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(11, 83, 148);font-family:verdana;font-size:85%;"  &gt;&lt;u&gt;&lt;b&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;Joomla&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/u&gt;&lt;span style="color: rgb(56, 118, 29);"&gt;&lt;b&gt;Excels at:&lt;/b&gt;&lt;/span&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;ol  style="font-family:verdana;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Eye candy themes and templates&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Great at functionalities&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Shopping Cart - Virtumart and OSCommerce&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Huge library of free/commercial extensions&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Events &amp;amp; Calendar - good support&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Document Management - Promising DocMan extension&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Excelent web admin interface&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size:85%;"&gt;&lt;b style="color: rgb(56, 118, 29); font-family: verdana;"&gt;Under performs at:&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;ol  style="font-family:verdana;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Architecture is poor&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;No Multi-site management support (Separate installation for each site)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Poor in standard's compliance&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;SEO - You may hit your head against wall to make it working&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="color: rgb(11, 83, 148);font-family:verdana;font-size:85%;"  &gt;&lt;u&gt;&lt;b&gt;&lt;span style="font-size:100%;"&gt;Drupal&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/u&gt;&lt;span style="color: rgb(56, 118, 29);"&gt;&lt;b&gt;Excels at:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;ol  style="font-family:verdana;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Multi-Site Management&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Standard's Compliance&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Architecture - Very good&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;SEO - Supports well (Search engine friendly pages)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Better Documentation&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Internationalization (using i18n module)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;SSL Compatible&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size:85%;"&gt;&lt;b style="color: rgb(56, 118, 29); font-family: verdana;"&gt;Under performs at:&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;ol  style="font-family:verdana;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Themes and Templates - are very simple not eye candy&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Shopping Cart - addon is not as good (seems good option &lt;a title="Ubercart" target="_blank" href="http://www.ubercart.org/" id="tc5z"&gt;Ubercart&lt;/a&gt; )&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Event &amp;amp; Calendars - not great&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Document Management - nothing like DocMan in Joomla&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;u&gt;&lt;b&gt;&lt;span style="color: rgb(53, 28, 117);font-size:100%;" &gt;Conclusion&lt;/span&gt;&lt;br /&gt;&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Joomla as a CMS appears to excel in elements that can be identified as functional, while Drupal succeeds in the architectural elements. Which element is more important in a CMS, architecture or function? According to Deane Barker he believes it is more important for a CMS to have better architecture. &lt;/span&gt;&lt;/span&gt;&lt;blockquote  style="font-family:verdana;"&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;As a developer with the capability to write code, I find myself much more concerned with architectural matters. Functionality can be programmed, but I’m at the mercy of architecture. Put another way, give me the right tools and materials, and I can build anything. But give me nothing but a pile of sand and a toothbrush, and I’m pretty much screwed.&lt;/span&gt;&lt;/p&gt; &lt;/blockquote&gt; &lt;p  style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;In other words, if you agree with Barker that architecture is more important than function you're likely going to want to choose Drupal. However, if you need to make a quick sell where function, third party integration, and eye candy is important right out the box... Joomla still has the advantage.&lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Learnig Curve - Joomla has relatively shallow learning curve. It is one of the very easiest CMS systems to learn and customize but you may find some mess at coding level. Drupal has a little steeper than Joomla, but still relatively easy to learn.&lt;/span&gt;&lt;/p&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;u&gt;&lt;span style="color: rgb(53, 28, 117);"&gt;Reference:&lt;br /&gt;&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;http://www.alledia.com/blog/general-cms-issues/joomla-and-drupal-%11-which-one-is-right-for-you &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;http://cmsreport.com/node/543&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;http://kb.siteground.com/article/CMS_application_comparison_Joomla_vs_Drupal.html&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10926158-3419337771546169059?l=yadu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yadu.blogspot.com/feeds/3419337771546169059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10926158&amp;postID=3419337771546169059' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/3419337771546169059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/3419337771546169059'/><link rel='alternate' type='text/html' href='http://yadu.blogspot.com/2009/01/joomla-vs-drupal.html' title='Joomla Vs Drupal'/><author><name>Yadu</name><uri>http://www.blogger.com/profile/18388446465037858805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_KL65fB_2EiU/SMp5znpDUpI/AAAAAAAABDQ/Hr-EKT5vv1c/S220/yadu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10926158.post-5864890584651130984</id><published>2008-12-10T11:16:00.000-05:00</published><updated>2008-12-10T11:38:11.455-05:00</updated><title type='text'>Trip to Saat Taal</title><content type='html'>&lt;embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="400" height="267" flashvars="host=picasaweb.google.com&amp;RGB=0x000000&amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fa1yadu%2Falbumid%2F5246597570782597681%3Fkind%3Dphoto%26alt%3Drss" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10926158-5864890584651130984?l=yadu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yadu.blogspot.com/feeds/5864890584651130984/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10926158&amp;postID=5864890584651130984' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/5864890584651130984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/5864890584651130984'/><link rel='alternate' type='text/html' href='http://yadu.blogspot.com/2008/12/saat-taal.html' title='Trip to Saat Taal'/><author><name>Yadu</name><uri>http://www.blogger.com/profile/18388446465037858805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_KL65fB_2EiU/SMp5znpDUpI/AAAAAAAABDQ/Hr-EKT5vv1c/S220/yadu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10926158.post-3923002643270151031</id><published>2008-02-14T01:59:00.000-05:00</published><updated>2008-12-10T10:29:32.897-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tere aane ka shukriya - yadu ghazal'/><title type='text'>तेरे आने का शुक्रिया !</title><content type='html'>गिराते नहीं अगर तुम, तो मैं क्यों बनाता ये मंजिलें,&lt;br&gt;ऐ वक्त तेरा चोट देते जाने का शुक्रिया;&lt;br&gt;&lt;br&gt;भुझाते नहीं अगर तुम, तो मैं क्यों जलाता ये दीये,&lt;br&gt;आँधियों मेरी महफ़िल में आने का शुक्रिया;&lt;br&gt;&lt;br&gt;भीगाते नही अगर तुम, तो मैं क्यों बनाता ये छतरियाँ,&lt;br&gt;बादलों मेरे घर में बरसने का शुक्रिया;&lt;br&gt;&lt;br&gt;आती नहीं अगर तुम, तो मैं क्यों बनाता ये सीढियां,&lt;br&gt;दीवारों मेरी राह में आने का शुक्रिया;&lt;br&gt;&lt;br&gt;टूटते नहीं अगर तुम, तो मैं क्यों सजाता ये शमां,&lt;br&gt;ऐ ख्वाब मेरी जिंदगी में आने का शुक्रिया!&lt;br&gt;&lt;br&gt; - यदु 'पगु'&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10926158-3923002643270151031?l=yadu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yadu.blogspot.com/feeds/3923002643270151031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10926158&amp;postID=3923002643270151031' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/3923002643270151031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/3923002643270151031'/><link rel='alternate' type='text/html' href='http://yadu.blogspot.com/2008/02/blog-post.html' title='तेरे आने का शुक्रिया !'/><author><name>Yadu</name><uri>http://www.blogger.com/profile/18388446465037858805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_KL65fB_2EiU/SMp5znpDUpI/AAAAAAAABDQ/Hr-EKT5vv1c/S220/yadu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10926158.post-4101062161663809983</id><published>2008-02-14T00:50:00.000-05:00</published><updated>2008-02-14T01:37:51.912-05:00</updated><title type='text'>Shimla Trip</title><content type='html'>&lt;embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="400" height="267" flashvars="host=picasaweb.google.com&amp;RGB=0x000000&amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fa1yadu%2Falbumid%2F5116370154329429745%3Fkind%3Dphoto%26alt%3Drss" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10926158-4101062161663809983?l=yadu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yadu.blogspot.com/feeds/4101062161663809983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10926158&amp;postID=4101062161663809983' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/4101062161663809983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/4101062161663809983'/><link rel='alternate' type='text/html' href='http://yadu.blogspot.com/2008/02/shimla-trip.html' title='Shimla Trip'/><author><name>Yadu</name><uri>http://www.blogger.com/profile/18388446465037858805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_KL65fB_2EiU/SMp5znpDUpI/AAAAAAAABDQ/Hr-EKT5vv1c/S220/yadu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10926158.post-836536199697449591</id><published>2007-10-03T03:09:00.000-04:00</published><updated>2007-12-02T14:12:56.324-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='yadu'/><category scheme='http://www.blogger.com/atom/ns#' term='lucene'/><category scheme='http://www.blogger.com/atom/ns#' term='web page rank'/><category scheme='http://www.blogger.com/atom/ns#' term='crawler'/><category scheme='http://www.blogger.com/atom/ns#' term='google pagerank'/><category scheme='http://www.blogger.com/atom/ns#' term='nutch'/><category scheme='http://www.blogger.com/atom/ns#' term='search engine'/><title type='text'>Page Rank - How Search Engines Rank Web Pages?</title><content type='html'>&lt;p&gt;Search for anything using your favorite crawler-based search engine. Nearly instantly, the search      engine will sort through the millions of pages it knows about and present you with ones      that match your topic. The matches will even be ranked, so that the most relevant ones      come first.&lt;/p&gt;      &lt;p&gt;Of course, the search engines don't always get it right. Non-relevant pages make it      through, and sometimes it may take a little more digging to find what you are looking for.      But, by and large, search engines do an amazing job.&lt;/p&gt;      &lt;p&gt;As WebCrawler founder Brian Pinkerton puts it, "Imagine walking up to a librarian      and saying, 'travel.' They’re going to look at you with a blank face."&lt;/p&gt;        &lt;p&gt;OK -- a librarian's not really going to stare at you with a vacant        expression. Instead, they're going to ask you questions to better        understand what you are looking for.&lt;/p&gt;        &lt;p&gt;Unfortunately, search engines don't have the ability to ask a few questions to      focus your search, as a librarian can. They also can't rely on judgment and past experience to rank web pages,      in the way humans can.&lt;/p&gt;        &lt;p&gt;So, how do crawler-based search engines go about determining relevancy,        when confronted with hundreds of millions of web pages to sort through? They follow a set of rules,        known as an algorithm. Exactly how a particular search engine's algorithm        works is a closely-kept trade secret. However, all major search engines        follow the general rules below.&lt;/p&gt;        &lt;h2&gt;&lt;span style="font-size:100%;"&gt;Location, Location, Location...and Frequency&lt;/span&gt;&lt;/h2&gt;        &lt;p&gt;One of the the main rules in a ranking algorithm involves the location and frequency of keywords on a web page. Call      it the location/frequency method, for short.&lt;/p&gt;      &lt;p&gt;Remember the librarian mentioned above? They need to find books to match your request      of "travel," so it makes sense that they first look at books with travel in the      title. Search engines operate the same way. Pages with the search terms appearing in the      HTML title tag are often assumed to be more relevant than others to the topic.&lt;/p&gt;        &lt;p&gt;Search engines will also check to see if the search keywords appear near the top of a web      page, such as in the headline or in the first few paragraphs of text. They assume that any      page relevant to the topic will mention those words right from the beginning.&lt;/p&gt;      &lt;p&gt;Frequency is the other major factor in how search engines determine relevancy. A search      engine will analyze how often keywords appear in relation to other words in a web page.      Those with a higher frequency are often deemed more relevant than other web pages.&lt;/p&gt;      &lt;h2&gt;&lt;span style="font-size:100%;"&gt;Spice In The Recipe&lt;/span&gt;&lt;/h2&gt;      &lt;p&gt;Now it's time to qualify the location/frequency method described above. All the major      search engines follow it to some degree, in the same way cooks may follow a      standard chili recipe.      But cooks like to add their own secret ingredients. In the same way, search engines add      spice to the location/frequency method. Nobody does it exactly the same, which is      one reason why the      same search on different search engines produces different results.&lt;/p&gt;        &lt;p&gt;To begin with, some search engines index more web pages than others. Some search      engines also index web pages more often than others. The result is that no search engine      has the exact same collection of web pages to search through. That naturally        produces differences, when comparing their results.&lt;/p&gt;      &lt;p&gt;Search engines may also penalize pages or exclude them from the index, if they detect search engine "spamming." An example is when a word is repeated hundreds of times on a page, to increase the frequency and propel the page higher in the listings. Search engines watch for common spamming methods in a variety of ways, including following up on complaints from their users.&lt;/p&gt;        &lt;h2&gt;&lt;span style="font-size:100%;"&gt;Off The Page Factors&lt;/span&gt;&lt;/h2&gt;        &lt;p&gt;Crawler-based search engines have plenty of experience now with        webmasters who constantly rewrite their web pages in an attempt to gain        better rankings. Some sophisticated webmasters may even go to great        lengths to "reverse engineer" the location/frequency systems        used by a particular search engine. Because of this, all major search        engines now also make use of "off the page" ranking criteria.&lt;/p&gt;        &lt;p&gt;Off the page factors are those that a webmasters cannot easily        influence. Chief among these is link analysis. By analyzing how pages link        to each other, a search engine can both determine what a page is about and        whether that page is deemed to be "important" and thus deserving        of a ranking boost. In addition, sophisticated techniques are used to        screen out attempts by webmasters to build "artificial" links        designed to boost their rankings.&lt;/p&gt;        &lt;p&gt;Another off the page factor is clickthrough measurement. In short, this        means that a search engine may watch what results someone selects for a        particular search, then eventually drop high-ranking pages that aren't        attracting clicks, while promoting lower-ranking pages that do pull in        visitors. As with link analysis, systems are used to compensate for        artificial links generated by eager webmasters.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10926158-836536199697449591?l=yadu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yadu.blogspot.com/feeds/836536199697449591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10926158&amp;postID=836536199697449591' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/836536199697449591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/836536199697449591'/><link rel='alternate' type='text/html' href='http://yadu.blogspot.com/2007/10/how-search-engines-rank-web-pages.html' title='Page Rank - How Search Engines Rank Web Pages?'/><author><name>Yadu</name><uri>http://www.blogger.com/profile/18388446465037858805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_KL65fB_2EiU/SMp5znpDUpI/AAAAAAAABDQ/Hr-EKT5vv1c/S220/yadu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10926158.post-5522197517135371212</id><published>2007-01-09T01:17:00.000-05:00</published><updated>2007-01-09T01:28:11.917-05:00</updated><title type='text'>Enjoy the coffee...</title><content type='html'>&lt;span style="font-family:lucida grande;font-size:130%;"&gt;A group of alumni, highly established in their careers, got together to visit their old university professor.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:lucida grande;font-size:130%;"&gt;Conversation soon turned into complaints about stress in work and life .  Offering his guests coffee, the professor went to the kitchen and returned with a large pot of coffee and an assortment of cups--porcelain, plastic, glass, crystal; some plain looking, some expensive, some exquisite --telling them to help themselves to the coffee.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:lucida grande;font-size:130%;"&gt;When all the students had a cup of coffee in hand, the professor said: "If you noticed, all the nice looking expensive cups were taken up, leaving behind the plain and cheap ones.  While it is but normal for you to want only the best for yourselves, that is the source of your problems and stress.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:lucida grande;font-size:130%;"&gt;"What all of you really wanted was coffee, not the cup, but you consciously went for the best cups and were eyeing each other's cups.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:lucida grande;font-size:130%;"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Now consider this:&lt;/span&gt;&lt;br /&gt;Life is the coffee, and the jobs, money and position in society are the cups.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:lucida grande;font-size:130%;"&gt;They are just tools to hold and contain Life, and do not change the quality of Life.  Sometimes, by concentrating only on the cup, we fail to enjoy the coffee God has provided .&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:lucida grande;font-size:130%;"&gt;"So, don't let the cups drive you .... enjoy the coffee instead ."&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:lucida grande;font-size:130%;"&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10926158-5522197517135371212?l=yadu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yadu.blogspot.com/feeds/5522197517135371212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10926158&amp;postID=5522197517135371212' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/5522197517135371212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/5522197517135371212'/><link rel='alternate' type='text/html' href='http://yadu.blogspot.com/2007/01/enjoy-coffee.html' title='Enjoy the coffee...'/><author><name>Yadu</name><uri>http://www.blogger.com/profile/18388446465037858805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_KL65fB_2EiU/SMp5znpDUpI/AAAAAAAABDQ/Hr-EKT5vv1c/S220/yadu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10926158.post-8885171999935906720</id><published>2006-12-06T02:10:00.000-05:00</published><updated>2006-12-06T02:38:40.853-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virus'/><category scheme='http://www.blogger.com/atom/ns#' term='yahoo virus'/><category scheme='http://www.blogger.com/atom/ns#' term='yahoo messenger virus'/><category scheme='http://www.blogger.com/atom/ns#' term='trojan'/><category scheme='http://www.blogger.com/atom/ns#' term='yahoo messenger worm'/><category scheme='http://www.blogger.com/atom/ns#' term='messenger'/><category scheme='http://www.blogger.com/atom/ns#' term='yahoo'/><category scheme='http://www.blogger.com/atom/ns#' term='worm'/><category scheme='http://www.blogger.com/atom/ns#' term='yahoo virus removal tool'/><title type='text'>How to remove yahoo messenger worm ?</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(102, 51, 0);"&gt;Promblem:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If your yahoo messenger is affected by this worm it will send the nsl-school.org url (and other different urls) to all of your friend list in yahoo messenger using your ID . So with in few hours many of your friends will get infected with it if they click on any of these links.&lt;br /&gt;&lt;br /&gt;I don't know the actual target of the idiot who created it. May be to advertise his site or to steal very imp data from your computer. I resolved the problem manually from 2 infected PC's. Just go through the below steps carefully.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0); font-weight: bold;font-size:100%;" &gt;What are those links ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Nsl-school.org and other (Do not open this url in your browser).&lt;br /&gt;&lt;br /&gt;&lt;b style="color: rgb(102, 51, 0);"&gt;After effects ?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1:&lt;/b&gt; It sets your default IE page to nsl-school.org, you can’t even change it back to other page. If you open IE from your comp some malicious code will automatically executed into your computer.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2:&lt;/b&gt; It will disables the Task manager / reg edit. So you can’t kill the malicious processes anymore.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3:&lt;/b&gt; Files that are gonaa installed by this virus are svhost.exe , svhost32.exe , internat.exe, enet.exe.&lt;br /&gt;&lt;br /&gt;you can find these files in windows/ &amp; temp/ directories.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4:&lt;/b&gt; It may send the secured &amp;amp; protected information to attacker.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="color: rgb(102, 51, 0);"&gt;Manual Removal:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1:&lt;/b&gt; Close the IE browser. Log out messenger / Remove Internet Cable.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2:&lt;/b&gt; To enable Regedit&lt;br /&gt;&lt;br /&gt;Click Start, Run and type this command exactly as given below: (better - Copy and paste)&lt;br /&gt;&lt;br /&gt;REG add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableRegistryTools /t REG_DWORD /d 0 /f&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3:&lt;/b&gt; To enable task manager : (To kill the process we need to enable task manager)&lt;br /&gt;&lt;br /&gt;Click Start, Run and type this command exactly as given below: (better - Copy and paste)&lt;br /&gt;&lt;br /&gt;REG add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableTaskMgr /t REG_DWORD /d 0 /f&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4:&lt;/b&gt; Now we need to change the default page of IE though regedit.&lt;br /&gt;&lt;br /&gt;Start&gt;Run&gt;Regedit&lt;br /&gt;&lt;br /&gt;From the below locations in Regedit chage your default home page to google.com or other.&lt;br /&gt;&lt;br /&gt;HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main&lt;br /&gt;&lt;br /&gt;HKEY_ LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main&lt;br /&gt;&lt;br /&gt;HKEY_USERS\Default\Software\Microsoft\Internet Explorer\Main&lt;br /&gt;&lt;br /&gt;Just replace the attacker site with google.com or set it to blank page.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5:&lt;/b&gt; Now we need to kill the process from back end. Press Ctrl + Alt + Del&lt;br /&gt;&lt;br /&gt;Kill the process svhost32.exe . ( may be more than one process is running.. check properly)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6:&lt;/b&gt; Delete svhost32.exe , svhost.exe files from Windows/ &amp; temp/ directories. Or just search for svhost in your comp.. delete those files.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7:&lt;/b&gt; Go to regedit search for svhost and delete all the results you get.&lt;br /&gt;&lt;br /&gt;Start menu &gt; Run &gt; Regedit &gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;8:&lt;/b&gt; Restart the computer. That’s it now you are virus free.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 0);"&gt;Removal Tools:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;I did not use these tools. Please make sure that they are appropriate for the purpose.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;1.&lt;/span&gt;&lt;/span&gt; &lt;a class="user" href="http://hot_kool_mohnish.tripod.com/sitebuildercontent/sitebuilderfiles/svhost32-removal.zip"&gt;http://hot_kool_mohnish.tripod.com/sitebuildercontent/sitebuilderfiles/svhost32-removal.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;2.&lt;/span&gt; &lt;/span&gt;&lt;a class="user" href="http://www.reloadedlabs.com/ymworm.htm"&gt;http://www.reloadedlabs.com/ymworm.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;3.&lt;/span&gt; &lt;/span&gt;Following steps can be taken to remove worm from your system:&lt;br /&gt;&lt;br /&gt;1) Download this file: &lt;a class="user" href="http://avsharath.googlepages.com/RepairRegistry.reg"&gt;http://avsharath.googlepages.com/RepairRegistry.reg&lt;/a&gt; (repairs your registry which is damaged by the worm)&lt;br /&gt;&lt;br /&gt;2) Double click on that downloaded registry file, you will be asked wheather you're sure to add this to registry, click yes.&lt;br /&gt;3) Restart your system.&lt;br /&gt;4) Delete the file svhost32.exe from your Windows folder( If it is present).&lt;br /&gt;5) Delete the file svhost.exe from your Windows folder( If it is present).&lt;br /&gt;6) Lastly, search for: ENET.EXE and delete it if found.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10926158-8885171999935906720?l=yadu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yadu.blogspot.com/feeds/8885171999935906720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10926158&amp;postID=8885171999935906720' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/8885171999935906720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/8885171999935906720'/><link rel='alternate' type='text/html' href='http://yadu.blogspot.com/2006/12/how-to-remove-yahoo-messenger-worm.html' title='How to remove yahoo messenger worm ?'/><author><name>Yadu</name><uri>http://www.blogger.com/profile/18388446465037858805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_KL65fB_2EiU/SMp5znpDUpI/AAAAAAAABDQ/Hr-EKT5vv1c/S220/yadu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10926158.post-113341376308466066</id><published>2005-12-01T00:08:00.000-05:00</published><updated>2005-12-01T00:17:57.753-05:00</updated><title type='text'>Million Dollar : hoax</title><content type='html'>&lt;span style="font-family:times new roman;"&gt;I have been receiving variants of the mail below for last few months. It shows how Internet criminals are trying to make people fool. Their first objective is to get account number of targeted person and then he/she will left with nothing in his/her account...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;Dear Singh,&lt;br /&gt;I am Barrister Kofo Williams (ESQ) a Solicitor; I am the PersonalAttorney to one Engr. Michael Singh a national of your country, whoUsed to be a contractor with NNPC here in Nigeria.&lt;br /&gt;On the 10th October 2002 my client, his wife and entire family wereinvolved in a car accident along 3rd mainland bridge Express Road LagosIsland. Unfortunately they all lost their lives in the event of theaccident,since then I have made several inquiries to their Embassy tolocate any of my clients extended relatives, this has also provedunsuccessful.&lt;br /&gt;After these several Unsuccessful attempts, I decided to trace hisRelatives, to locate any member of His family but of no avail, hence Icontacted you since you bear the same surname to my late client. Icontact you to assist in repatriating the money in addition, propertyleft behind by my client before they get Confiscated or declaredUnserviceable by the bank where these huge deposits were lodged.&lt;br /&gt;Particularly, the Bank where the deceased had an account valued atabout US$10 million dollars. Consequently, the bank issued me a noticeto provide the next of kin or have the account confiscated within thenext ten official working days. Since I have been Unsuccessful inlocating the relatives for over 2 years now, I seek your consent topresent you as the next of kin of the deceased, regardless of yourcountry, with your name/address; some vitals will be obtained on yourfavor which will back you as the next of kin to the deceased. Theproceeds of this account valued at US$10 Million dollars can be Paid toyou and then you and me can share like this 45% for me and 45% for you,while we will set aside 10% to pay back for any expenses or tax as yourgovernment may require. I have all necessary legal documents that canbe used to back up any claim we may make.&lt;br /&gt;All I require is your honest cooperation to enable us seeing this dealthrough. I guarantee that this will be executed under a legitimatearrangement that will protect you from any breach of the law.&lt;br /&gt;Please Reply urgently to enable us discuss further. Via this E-mailaddress:kofoschamber005@katamail.com&lt;br /&gt;Best Regards,&lt;br /&gt;Barrister Kofo Williams. (ESQ)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10926158-113341376308466066?l=yadu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yadu.blogspot.com/feeds/113341376308466066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10926158&amp;postID=113341376308466066' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/113341376308466066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10926158/posts/default/113341376308466066'/><link rel='alternate' type='text/html' href='http://yadu.blogspot.com/2005/11/million-dollar-hoax.html' title='Million Dollar : hoax'/><author><name>Yadu</name><uri>http://www.blogger.com/profile/18388446465037858805</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_KL65fB_2EiU/SMp5znpDUpI/AAAAAAAABDQ/Hr-EKT5vv1c/S220/yadu.jpg'/></author><thr:total>3</thr:total></entry></feed>
