<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.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-23257774</id><updated>2012-05-09T11:46:47.130+05:30</updated><category term="Personal" /><category term="Blogger Hacks" /><category term="Time Management" /><category term="Fedora" /><category term="SCTP" /><category term="Microsoft" /><category term="MySQL" /><category term="SQL" /><category term="Javascript" /><category term="hSenid Mobile" /><category term="OpenCV" /><category term="Hibernate" /><category term="ASP" /><category term="Java" /><category term="diGIT" /><category term="Google" /><category term="Programming" /><category term="C#" /><category term="Productivity" /><category term="Scala" /><category term="MsSqlServer" /><category term="Firefox" /><category term="Other" /><category term="Git" /><category term="Soltura" /><category term="Maven" /><category term="Linux" /><category term="Eclipse" /><category term="SDP" /><category term="Ubuntu" /><category term="Spring" /><category term="Tips and Tricks" /><category term="OpenJDK" /><category term="Utilities" /><title type="text">Sandarenu's Blog</title><subtitle type="html">All about Me and My Experiences...</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default?start-index=26&amp;max-results=25" /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>142</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/sandarenu" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="sandarenu" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">sandarenu</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><entry><id>tag:blogger.com,1999:blog-23257774.post-4875647748837362820</id><published>2012-04-27T07:15:00.001+05:30</published><updated>2012-04-27T07:15:04.997+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Scala" /><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><title type="text">Exclude resource files from jar file created with SBT</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I use SBT to build my scala projects. In addition to scala source files I have some resource files in my project. Those are some configuration files and localization resource files.&lt;br /&gt;&lt;br /&gt;When I build the jar file using SBT&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt; package&lt;/span&gt; command all of those resource files also get included in the jar file. When those resource files are included inside the jar, modifying&amp;nbsp;them becomes difficult. I have to extract the jar file, edit them and create the jar file again.&lt;br /&gt;&lt;br /&gt;Ideal way of handling resource files are not to include them in the jar file, rather keep them separately and include them in the class path when running the application. How to exclude them from SBT package task was the problem I had. After some googling I found out that this can be achieved by including &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;mapping&lt;/b&gt;&lt;/span&gt; task in the build. Following is sample build file which uses &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;mapping&lt;/span&gt; to exclude various types of resource files.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="scala" style="background-color: #f0f0f0; border: 1px solid #d0d0d0; color: #000066; font-family: monospace;"&gt;&lt;a href="http://scala-lang.org/" style="color: #000060;"&gt;&lt;span style="color: blue; font-weight: bold;"&gt;val&lt;/span&gt;&lt;/a&gt; excludeFileRegx &lt;span style="color: navy;"&gt;=&lt;/span&gt; &lt;span style="color: #6666ff;"&gt;""&lt;/span&gt;&lt;span style="color: #6666ff;"&gt;"(.*?)&lt;span style="color: blue; font-weight: bold;"&gt;\.&lt;/span&gt;(properties|props|conf|dsl|txt|xml)$"&lt;/span&gt;&lt;span style="color: #6666ff;"&gt;""&lt;/span&gt;.&lt;span style="color: black;"&gt;r&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; lazy &lt;a href="http://scala-lang.org/" style="color: #000060;"&gt;&lt;span style="color: blue; font-weight: bold;"&gt;val&lt;/span&gt;&lt;/a&gt; myapp &lt;span style="color: navy;"&gt;=&lt;/span&gt; Project&lt;span style="color: #f78811;"&gt;(&lt;/span&gt;id &lt;span style="color: navy;"&gt;=&lt;/span&gt; &lt;span style="color: #6666ff;"&gt;"myapp"&lt;/span&gt;, base &lt;span style="color: navy;"&gt;=&lt;/span&gt; file&lt;span style="color: #f78811;"&gt;(&lt;/span&gt;&lt;span style="color: #6666ff;"&gt;"myapp"&lt;/span&gt;&lt;span style="color: #f78811;"&gt;)&lt;/span&gt;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; settings &lt;span style="color: navy;"&gt;=&lt;/span&gt; baseSettings ++ Seq&lt;span style="color: #f78811;"&gt;(&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; name &lt;span style="color: navy;"&gt;:=&lt;/span&gt; &lt;span style="color: #6666ff;"&gt;"My App"&lt;/span&gt;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; mappings in &lt;span style="color: #f78811;"&gt;(&lt;/span&gt;Compile, packageBin&lt;span style="color: #f78811;"&gt;)&lt;/span&gt; ~&lt;span style="color: navy;"&gt;=&lt;/span&gt; &lt;span style="color: #f78811;"&gt;{&lt;/span&gt; &lt;span style="color: #f78811;"&gt;(&lt;/span&gt;ms&lt;span style="color: navy;"&gt;:&lt;/span&gt; Seq&lt;span style="color: #f78811;"&gt;[&lt;/span&gt;&lt;span style="color: #f78811;"&gt;(&lt;/span&gt;File, String&lt;span style="color: #f78811;"&gt;)&lt;/span&gt;&lt;span style="color: #f78811;"&gt;]&lt;/span&gt;&lt;span style="color: #f78811;"&gt;)&lt;/span&gt; &lt;span style="color: navy;"&gt;=&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ms filter &lt;span style="color: #f78811;"&gt;{&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href="http://scala-lang.org/" style="color: #000060;"&gt;&lt;span style="color: blue; font-weight: bold;"&gt;case&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #f78811;"&gt;(&lt;/span&gt;file, toPath&lt;span style="color: #f78811;"&gt;)&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;span style="color: navy;"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #f78811;"&gt;{&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href="http://scala-lang.org/" style="color: #000060;"&gt;&lt;span style="color: blue; font-weight: bold;"&gt;val&lt;/span&gt;&lt;/a&gt; shouldExclude &lt;span style="color: navy;"&gt;=&lt;/span&gt; excludeFileRegx.&lt;span style="color: black;"&gt;pattern&lt;/span&gt;.&lt;span style="color: black;"&gt;matcher&lt;/span&gt;&lt;span style="color: #f78811;"&gt;(&lt;/span&gt;file.&lt;span style="color: black;"&gt;getName&lt;/span&gt;&lt;span style="color: #f78811;"&gt;)&lt;/span&gt;.&lt;span style="color: black;"&gt;matches&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: green; font-style: italic;"&gt;// println("===========" + file + " &amp;nbsp;" + shouldExclude)&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: navy;"&gt;!&lt;/span&gt;shouldExclude&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #f78811;"&gt;}&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #f78811;"&gt;}&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #f78811;"&gt;}&lt;/span&gt;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; libraryDependencies ++&lt;span style="color: navy;"&gt;=&lt;/span&gt; Seq &lt;span style="color: #f78811;"&gt;(&lt;/span&gt;dispatch&lt;span style="color: #f78811;"&gt;)&lt;/span&gt;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; libraryDependencies ++&lt;span style="color: navy;"&gt;=&lt;/span&gt; testDependencies&lt;span style="color: #f78811;"&gt;)&lt;/span&gt;&lt;span style="color: #f78811;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-4875647748837362820?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/4875647748837362820/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=4875647748837362820" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/4875647748837362820" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/4875647748837362820" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2012/04/exclude-resource-files-from-jar-file.html" title="Exclude resource files from jar file created with SBT" /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23257774.post-8841862829233408800</id><published>2012-01-19T07:01:00.000+05:30</published><updated>2012-01-19T07:01:21.532+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu" /><title type="text">Solving no-interface issue in Wireshark on Ubuntu 11.10</title><content type="html">Recently I switched to Ubuntu 11.10 as OS in my development machine. Previously I was using Fedora 12. When I installed Wireshark in ubuntu and run it, wireshark didn't show any interfaces which can capture packets. I think it is because wireshark was not run as root user. In fedora when I start wireshark it &amp;nbsp;ask to run as root and get the password. In ubuntu it was not like that.&lt;br /&gt;So after doing some googleing found a solution at a blog post by&amp;nbsp;&lt;a href="http://www.tavshed.com/?p=104" title="tavshed's blog post"&gt;tavshed&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;pre class="bash"&gt;&lt;span style="color: #c20cb9; font-weight: bold;"&gt;sudo&lt;/span&gt; groupadd wireshark&lt;br /&gt;&lt;span style="color: #c20cb9; font-weight: bold;"&gt;sudo&lt;/span&gt; usermod &lt;span style="color: #660033;"&gt;-a&lt;/span&gt; &lt;span style="color: #660033;"&gt;-G&lt;/span&gt; wireshark YOUR_USER_NAME&lt;br /&gt;&lt;span style="color: #c20cb9; font-weight: bold;"&gt;sudo&lt;/span&gt; &lt;span style="color: #c20cb9; font-weight: bold;"&gt;chgrp&lt;/span&gt; wireshark &lt;span style="font-weight: bold;"&gt;/&lt;/span&gt;usr&lt;span style="font-weight: bold;"&gt;/&lt;/span&gt;bin&lt;span style="font-weight: bold;"&gt;/&lt;/span&gt;dumpcap&lt;br /&gt;&lt;span style="color: #c20cb9; font-weight: bold;"&gt;sudo&lt;/span&gt; &lt;span style="color: #c20cb9; font-weight: bold;"&gt;chmod&lt;/span&gt; 750 &lt;span style="font-weight: bold;"&gt;/&lt;/span&gt;usr&lt;span style="font-weight: bold;"&gt;/&lt;/span&gt;bin&lt;span style="font-weight: bold;"&gt;/&lt;/span&gt;dumpcap&lt;br /&gt;&lt;span style="color: #c20cb9; font-weight: bold;"&gt;sudo&lt;/span&gt; setcap cap_net_raw,&lt;span style="color: #007800;"&gt;cap_net_admin&lt;/span&gt;=eip &lt;span style="font-weight: bold;"&gt;/&lt;/span&gt;usr&lt;span style="font-weight: bold;"&gt;/&lt;/span&gt;bin&lt;span style="font-weight: bold;"&gt;/&lt;/span&gt;dumpcap&lt;br /&gt;&lt;span style="color: #c20cb9; font-weight: bold;"&gt;sudo&lt;/span&gt; getcap &lt;span style="font-weight: bold;"&gt;/&lt;/span&gt;usr&lt;span style="font-weight: bold;"&gt;/&lt;/span&gt;bin&lt;span style="font-weight: bold;"&gt;/&lt;/span&gt;dumpcap&lt;/pre&gt;&lt;pre class="bash"&gt;&lt;span style="color: #c20cb9; font-weight: bold;"&gt;sudo&lt;/span&gt; chmod +xs /usr/bin/dumpcap&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-8841862829233408800?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/8841862829233408800/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=8841862829233408800" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/8841862829233408800" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/8841862829233408800" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2012/01/solving-no-interface-issue-in-wireshark.html" title="Solving no-interface issue in Wireshark on Ubuntu 11.10" /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23257774.post-5206598838143967477</id><published>2011-11-18T07:02:00.001+05:30</published><updated>2011-11-18T07:17:00.906+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><title type="text">Creating Java Command Line Applications using jLine</title><content type="html">Most common way of writing a command line application in java is to use BufferedReader to read user input. But if you want more features like tab completion, you have to write code to handle it from the scratch in BufferedReader method.&lt;br /&gt;&lt;br /&gt;There is a nice library called jLine&amp;nbsp;&lt;a href="http://jline.sourceforge.net/"&gt;http://jline.sourceforge.net/&lt;/a&gt;&amp;nbsp;which can be used to write nice CLI apps without much effort. It has out of the box support for;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Command History&amp;nbsp;&lt;/li&gt;&lt;li&gt;Tab completion&amp;nbsp;&lt;/li&gt;&lt;li&gt;Line editing&amp;nbsp;&lt;/li&gt;&lt;li&gt;Custom Key Bindings&amp;nbsp;&lt;/li&gt;&lt;li&gt;Character masking&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;I've written simple sample application on how to use jLine. You can check that out in github&amp;nbsp;&lt;a href="https://github.com/sandarenu/sample-apps/tree/master/java-cli-app"&gt;https://github.com/sandarenu/sample-apps/tree/master/java-cli-app&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-5206598838143967477?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/5206598838143967477/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=5206598838143967477" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/5206598838143967477" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/5206598838143967477" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2011/11/creating-java-command-line-applications.html" title="Creating Java Command Line Applications using jLine" /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23257774.post-1496803709792263330</id><published>2011-10-17T07:48:00.001+05:30</published><updated>2011-10-17T07:48:46.216+05:30</updated><title type="text">Another Tech Genius Passed Away...</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-UQe_73304RE/TpuQZsRaHqI/AAAAAAAAA6w/r58YJaSiK_E/s1600/dennis_ritchie.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-UQe_73304RE/TpuQZsRaHqI/AAAAAAAAA6w/r58YJaSiK_E/s1600/dennis_ritchie.jpg" /&gt;&lt;/a&gt;&lt;/div&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;Dennis Ritche, co-author&amp;nbsp;of C programming language and one of the creators of Unix operating system has passed away last week. His inventions changed the way how we do things in the computer industry.&lt;br /&gt;Thank You Dennis....&lt;br /&gt;&lt;br /&gt;It is really sad to see that two of the great minds in technology world passed away in a month...&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-1496803709792263330?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/1496803709792263330/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=1496803709792263330" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/1496803709792263330" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/1496803709792263330" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2011/10/another-tech-genius-passed-away.html" title="Another Tech Genius Passed Away..." /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-UQe_73304RE/TpuQZsRaHqI/AAAAAAAAA6w/r58YJaSiK_E/s72-c/dennis_ritchie.jpg" height="72" width="72" /><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23257774.post-8826053575096151241</id><published>2011-10-06T13:49:00.001+05:30</published><updated>2011-10-06T13:49:21.352+05:30</updated><title type="text">Remembering Steve Jobs</title><content type="html">Steve Jobs, one of the greatest visionaries of our time has passed away on Wednesday(5th Oct 2011). He was 56.&lt;br /&gt;&lt;br /&gt;At 2005 Stanford address quated on his own mortality, saying:&lt;br /&gt;&lt;b&gt;“Remembering that I’ll be dead soon is the most important tool I’ve ever encountered to help me make the big choices in life. Because almost everything — all external expectations, all pride, all fear of embarrassment or failure - these things just fall away in the face of death, leaving only what is truly important.&lt;/b&gt;”&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-gAIl8wSyvFk/To1jlXOfKrI/AAAAAAAAA6s/FbPJQV_wbMI/s1600/Steve-Jobs.jpeg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-gAIl8wSyvFk/To1jlXOfKrI/AAAAAAAAA6s/FbPJQV_wbMI/s1600/Steve-Jobs.jpeg" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-8826053575096151241?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/8826053575096151241/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=8826053575096151241" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/8826053575096151241" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/8826053575096151241" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2011/10/remembering-steve-jobs.html" title="Remembering Steve Jobs" /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-gAIl8wSyvFk/To1jlXOfKrI/AAAAAAAAA6s/FbPJQV_wbMI/s72-c/Steve-Jobs.jpeg" height="72" width="72" /><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23257774.post-3487341101462293239</id><published>2011-09-08T08:29:00.001+05:30</published><updated>2011-09-08T08:29:11.737+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><category scheme="http://www.blogger.com/atom/ns#" term="Git" /><category scheme="http://www.blogger.com/atom/ns#" term="Tips and Tricks" /><title type="text">How to Use Multiple GIT Accounts</title><content type="html">Yesterday at HMS we moved some of our projects to GIT from SVN repository. So in order to access that office GIT repository I had to create a new ssh key using my office email address. I already had a ssh key which I used to access my GitHub account. So once I created new key I was unable to access GitHub since in normal configuration ssh can only have one public key.&lt;br /&gt;But I wanted to find a way which I can use both office GIT server login and my GitHub login. After doing some searching on google I found a solution to that. For that we'll have to create ssh config file. So I created following config file at my .ssh folder&lt;br /&gt;vi ~/.ssh/config&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# hms-git&lt;br /&gt;Host hms-git&lt;br /&gt;&amp;nbsp;&amp;nbsp;HostName git.myoffice.com&lt;br /&gt;&amp;nbsp;&amp;nbsp;User git&lt;br /&gt;&amp;nbsp;&amp;nbsp;IdentityFile /home/sandarenu/.ssh/id_rsa&lt;br /&gt;&lt;br /&gt;# github&lt;br /&gt;Host github.com&lt;br /&gt;&amp;nbsp;&amp;nbsp;HostName github.com&lt;br /&gt;&amp;nbsp;&amp;nbsp;User git&lt;br /&gt;&amp;nbsp;&amp;nbsp;IdentityFile /home/sandarenu/.ssh/id_rsa_github&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;Once this config file is saved I could clone office git projects using&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;git clone git@hms-git:myproject&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To clone GitHub project I could use&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;git clone git@github.com:sandarenu/task_tracker.git&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-3487341101462293239?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/3487341101462293239/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=3487341101462293239" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/3487341101462293239" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/3487341101462293239" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2011/09/how-to-use-multiple-git-accounts.html" title="How to Use Multiple GIT Accounts" /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23257774.post-4312898438411191228</id><published>2011-07-08T07:55:00.000+05:30</published><updated>2011-07-08T07:55:32.190+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><title type="text">Using SoapUI for Web Service Testing</title><content type="html">&lt;a href="http://www.soapui.org/"&gt;SoapUI&lt;/a&gt; is a great tool which can be used to test web services. In this post I'll show you how to set up SoapUI project for WS testing.&lt;br /&gt;&lt;br /&gt;Create new project from File -&amp;gt;New SoapUI Project, and in "New Project Dialog" give name and the location of the WSDL file.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-TkfxF_g1XF8/Tgvgt3-58GI/AAAAAAAAA5w/0fB_Zo3t7IM/s1600/new-ws-project.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="160" src="http://3.bp.blogspot.com/-TkfxF_g1XF8/Tgvgt3-58GI/AAAAAAAAA5w/0fB_Zo3t7IM/s320/new-ws-project.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;You can find the sample wsdl file I used for testing in github &lt;a href="https://github.com/sandarenu/soapui-test"&gt;https://github.com/sandarenu/soapui-test&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Web Service Mocking&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Service mocking is required when you are writing a web service clients and either you don't have the web service implemented or you don't have the access to the real service. Here's how to do that using SoapUI.&lt;br /&gt;&lt;br /&gt;Create Mock of the web service by right clicking on the project and selecting 'Generate MockService'.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-ztbKFhaXn0s/Tgvgubo8k1I/AAAAAAAAA50/Q_lwfPMKmwc/s1600/mock-service-config.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="168" src="http://2.bp.blogspot.com/-ztbKFhaXn0s/Tgvgubo8k1I/AAAAAAAAA50/Q_lwfPMKmwc/s320/mock-service-config.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Once mock service is created you can mock the operations by clicking on the small icon in the service mock dialog.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-SVBD4n8CfC0/TgvgtVUGGmI/AAAAAAAAA5s/EoIyYvrk9-s/s1600/project-structure.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="168" src="http://2.bp.blogspot.com/-SVBD4n8CfC0/TgvgtVUGGmI/AAAAAAAAA5s/EoIyYvrk9-s/s320/project-structure.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Double click on the operation you just mocked and you'll get a dialog to configure mock responses.&lt;br /&gt;You can configure any number of mock responses and then select how those response to be dispatched when our mock service receives WS request. There are many dispatching strategies available such as "Script", "Sequence", "Query Match", etc...&lt;br /&gt;&lt;br /&gt;When you do some integration testing you need your mock service to respond based on different parameters of the requests you send. In such cases you can either use "Script" or "Query Match" dispatch mechanism.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Web Service Testing&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;We can use SoapUI to create test cases to test a Web Service we developed. To create a test suite right click on the project and select "New TestSuite" from the context menu. Then right click on the test suite we just created and select "New TestCase".&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-7o0ex8jh50A/TgvgsGpI6cI/AAAAAAAAA5k/1Vcm8vn4SDQ/s1600/testcase.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="168" src="http://4.bp.blogspot.com/-7o0ex8jh50A/TgvgsGpI6cI/AAAAAAAAA5k/1Vcm8vn4SDQ/s320/testcase.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Once we have created the test case we can add test steps to it. Lets add a test step to test time for time zone 'lk'. Right click on the test steps dialog and select "Test Request" and create the request you want to test.&lt;br /&gt;Once test request is created we can add assertion step to it. Click the "Assertions" button at the bottom of the test request editor.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-yezUBg8G8_Y/TgvgvPHk4-I/AAAAAAAAA54/5kLGRm-CmWg/s1600/mock-operation.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="168" src="http://3.bp.blogspot.com/-yezUBg8G8_Y/TgvgvPHk4-I/AAAAAAAAA54/5kLGRm-CmWg/s320/mock-operation.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Right click on the assertion editor and add "xPath Match"&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-utW4JTUFqFw/Tgvgq74yJRI/AAAAAAAAA5c/C_EZ4SqQQ1E/s1600/xquery-match-assertion.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="266" src="http://1.bp.blogspot.com/-utW4JTUFqFw/Tgvgq74yJRI/AAAAAAAAA5c/C_EZ4SqQQ1E/s320/xquery-match-assertion.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;Put //Time as "xQuery Expression" and put value you are expecting as "Expected Result"&lt;br /&gt;&lt;br /&gt;Now you can test this request using the Mock WS you created before. Start the mock service by clicking on the small green arrow found in the top of the "TimeServiceMock". Then open the test case you created above by double clicking it. Then run the test case again by clicking small green arrow in the to of the dialog box.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-ddFhBlNBsdM/ThZpPkNdWqI/AAAAAAAAA6I/tkRXfIaRMLw/s1600/run-test-case.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-ddFhBlNBsdM/ThZpPkNdWqI/AAAAAAAAA6I/tkRXfIaRMLw/s320/run-test-case.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;If every thing went well you'll be able get success result for your test case.&lt;br /&gt;&lt;br /&gt;This is just the start. You can then add more test cases and assertions and improve your test suite. SoapUI site has good documentation on how to do functional testing. &lt;a href="http://www.soapui.org/Getting-Started/functional-testing.html"&gt;http://www.soapui.org/Getting-Started/functional-testing.html&lt;/a&gt;&lt;br /&gt;You can refer that and get more information.&lt;br /&gt;&lt;br /&gt;You can also find the SoapUI project for this example at https://github.com/sandarenu/soapui-test. Download it and open it using "File -&amp;gt; Import Project"&lt;br /&gt;&lt;br /&gt;Happy Testing.....&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-4312898438411191228?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/4312898438411191228/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=4312898438411191228" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/4312898438411191228" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/4312898438411191228" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2011/07/using-soapui-for-web-service-testing.html" title="Using SoapUI for Web Service Testing" /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-TkfxF_g1XF8/Tgvgt3-58GI/AAAAAAAAA5w/0fB_Zo3t7IM/s72-c/new-ws-project.png" height="72" width="72" /><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23257774.post-4685147056028589486</id><published>2011-07-03T14:04:00.001+05:30</published><updated>2011-07-03T14:05:06.207+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><title type="text">Solving 'symbol lookup error' in new Eclipse 3.7 Indigo in Fedora</title><content type="html">When I downloaded and run the latest eclipse 3.7 Indigo release, it crashed with a strange error.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;symbol lookup error: /usr/lib/libwebkit-1.0.so.2: undefined symbol: soup_content_decoder_get_typ&lt;/span&gt;e&lt;br /&gt;&lt;br /&gt;After some searching in the web I found out that it is due that I'm having an older version of&amp;nbsp;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;libsoup&lt;/span&gt;&lt;/b&gt; library.&amp;nbsp;I had&amp;nbsp;libsoup-2.28.1-1.fc12.i686 in my fedora 12.&lt;br /&gt;Issue was solved by updating that library using yum.&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;yum update libsoup&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-4685147056028589486?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/4685147056028589486/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=4685147056028589486" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/4685147056028589486" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/4685147056028589486" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2011/07/solving-symbol-lookup-error-in-new.html" title="Solving 'symbol lookup error' in new Eclipse 3.7 Indigo in Fedora" /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23257774.post-464289302904801519</id><published>2011-05-06T11:05:00.000+05:30</published><updated>2011-05-06T11:05:57.986+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="Hibernate" /><title type="text">Hibernate HQL Select Query Based on Item in a One-to-Many Relationship</title><content type="html">Few days back I had a situation where I have to fetch some data based on a value of an item stored in one-to-many relationship. I my project I had two classes like below. I had to fetch all the Oders that has&amp;nbsp;particular&amp;nbsp;item.&lt;br /&gt;&lt;br /&gt;&lt;pre style="background: #ffffff; color: black;"&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;class&lt;/span&gt; Order &lt;span style="color: purple;"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: maroon; font-weight: bold;"&gt;private&lt;/span&gt; &lt;span style="color: #bb7977; font-weight: bold;"&gt;List&lt;/span&gt;&lt;span style="color: #808030;"&gt;&amp;lt;&lt;/span&gt;Item&lt;span style="color: #808030;"&gt;&amp;gt;&lt;/span&gt; items&lt;span style="color: purple;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: dimgrey;"&gt;//more code ...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: purple;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;class&lt;/span&gt; Item &lt;span style="color: purple;"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: maroon; font-weight: bold;"&gt;private&lt;/span&gt; &lt;span style="color: #bb7977; font-weight: bold;"&gt;String&lt;/span&gt; itemId&lt;span style="color: purple;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: maroon; font-weight: bold;"&gt;private&lt;/span&gt; &lt;span style="color: #bb7977; font-weight: bold;"&gt;String&lt;/span&gt; name&lt;span style="color: purple;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: dimgrey;"&gt;//more code ...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: purple;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;With native SQL it was not that difficult, but since I've used Hibernate I wanted to find a way to do it in HQL. After some searching in Google I found out how to do it.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;select o from Order o left join o.items its where its.itemId = :itemId&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-464289302904801519?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/464289302904801519/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=464289302904801519" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/464289302904801519" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/464289302904801519" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2011/05/hibernate-hql-select-query-based-on.html" title="Hibernate HQL Select Query Based on Item in a One-to-Many Relationship" /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23257774.post-5328321795975763339</id><published>2011-04-21T07:48:00.000+05:30</published><updated>2011-04-21T07:48:11.517+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Tips and Tricks" /><category scheme="http://www.blogger.com/atom/ns#" term="Google" /><title type="text">Different views for your blog</title><content type="html">Recently Blogger started providing different views for the blogs created in it. They are very cute way to view our blogs in different angles. Following is snapshot view of my blog.&lt;div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-nJiNMA4HAvE/Ta-TkQaSp8I/AAAAAAAAA5Y/CdxkxjRXDzg/s1600/blogger_snapshot.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="210" src="http://2.bp.blogspot.com/-nJiNMA4HAvE/Ta-TkQaSp8I/AAAAAAAAA5Y/CdxkxjRXDzg/s400/blogger_snapshot.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Try my blog on those different views using following urls.&lt;/div&gt;&lt;div&gt;&lt;a href="http://sandarenu.blogspot.com/view/flipcard"&gt;http://sandarenu.blogspot.com/view/flipcard&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://sandarenu.blogspot.com/view/mosaic"&gt;http://sandarenu.blogspot.com/view/mosaic&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://sandarenu.blogspot.com/view/sidebar"&gt;http://sandarenu.blogspot.com/view/sidebar&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://sandarenu.blogspot.com/view/snapshot"&gt;http://sandarenu.blogspot.com/view/snapshot&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://sandarenu.blogspot.com/view/timeslide"&gt;http://sandarenu.blogspot.com/view/timeslide&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-5328321795975763339?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/5328321795975763339/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=5328321795975763339" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/5328321795975763339" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/5328321795975763339" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2011/04/different-views-for-your-blog.html" title="Different views for your blog" /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-nJiNMA4HAvE/Ta-TkQaSp8I/AAAAAAAAA5Y/CdxkxjRXDzg/s72-c/blogger_snapshot.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23257774.post-3943399214764794976</id><published>2011-04-21T07:34:00.000+05:30</published><updated>2011-04-21T07:34:08.614+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Personal" /><title type="text">After Long Time.......</title><content type="html">Its being long time since my last post......&lt;br /&gt;Hopping to do some posts more frequently in coming months. So keep your fingers crossed :)&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-3943399214764794976?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/3943399214764794976/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=3943399214764794976" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/3943399214764794976" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/3943399214764794976" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2011/04/after-long-time.html" title="After Long Time......." /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23257774.post-924360479817338419</id><published>2010-05-04T07:43:00.000+05:30</published><updated>2010-05-04T07:43:19.345+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="MySQL" /><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><category scheme="http://www.blogger.com/atom/ns#" term="MsSqlServer" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><title type="text">MySql - Ms Sql Server Database Portability</title><content type="html">Few weeks back I was given a task to migrate a Java application using MySQL as its database to MS SQL Server. It was actually not a full migration, rather application should be able work with both MySQL and MS SQL Server. Since we had used Hibernate in our application I thought it will be a easy thing. But when I dig deep in to the application and started migration I was proved to be wrong. I encounter lot of issues and hence thought of documenting them so any one can get some help. Major headache was the difference in some direct SQL commands used in the application. Following are the list of issues I encounter and how I solved them.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. JDBC Driver Issue with the Microsoft JDBC Driver&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; First thought of using JDBC driver provided by&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=99B21B65-E98F-4A61-B811-19912601FDC9&amp;amp;displaylang=en"&gt; Microsoft for MS SQL Server 2005&lt;/a&gt;.&amp;nbsp; But when I ran the test cases I got few issues with it.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1). Gave execption "org.hibernate.MappingException: No Dialect mapping for JDBC type: -9 "&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; After some investigation found out that it was due to NVARCHAR datatype. There is another opensource driver called &lt;a href="http://jtds.sourceforge.net/"&gt;jtds&lt;/a&gt;. Which is more actively developed as well. With that driver I did not get that MappingException.&lt;br /&gt;&lt;br /&gt;2. Data type differences&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For queries like "&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;SELECT count(id) From myTable&lt;/span&gt;", MySql JDBC driver returns datatype java.math.BigInteger and with MsSQL jtds JDBC driver we get datatype java.lang.Integer. So I had to convert it to string first and then convert to long&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;String countStr = summaryRow[1] == null? "0": String.valueOf(summaryRow[1]);&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; long count = Long.parseLong(countStr);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. Nullable Unique columns not supported in MsSql Server. In Sql Server NULL is taken as a value and hence can't have multiple rows with null, but in MySql we can have Nullable unique columns. So when table schema is generated through Hibernate we have to execute additional update query to perform a workaround for this issue. Here we add new column called 'my-table_id_add' to the table. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;declare unique_key_list_my-table cursor for&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select OBJECT_NAME(OBJECT_ID)&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM sys.objects&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE type_desc LIKE '%CONSTRAINT' and OBJECT_NAME(OBJECT_ID) LIKE 'UQ__my-table%'&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;OPEN unique_key_list_my-table&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FETCH NEXT FROM unique_key_list_my-table INTO @keyName&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set @RowNum = 0&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHILE @@FETCH_STATUS = 0&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; set @RowNum = @RowNum + 1&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; print cast(@RowNum as char(1)) + ' ' + @keyName&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if not @keyName is null&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; begin&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select @sql = 'ALTER TABLE [my-table] DROP CONSTRAINT [' + @keyName + ']'&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; execute sp_executesql @sql&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; end&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; FETCH NEXT FROM unique_key_list_my-table INTO @keyName&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;CLOSE unique_key_list_my-table&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;DEALLOCATE unique_key_list_my-table&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ALTER TABLE my-table ADD my-table_id_add AS (CASE WHEN my-table_id IS NULL THEN CAST(id AS VARCHAR(30)) ELSE my-table_id END);&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ALTER TABLE my-table ADD CONSTRAINT UQ__my-table_my-table_id UNIQUE(my-table_id_add);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;TIMESTAMP&lt;/span&gt; in MS Sql server is not functionally same as MySQL. Have to use &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;GETDATE()&lt;/span&gt; function for that.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.g: &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Create table timestamp_test DATETIME default(GETDATE())&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5. In Ms Sql Server we can't use '&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;user&lt;/span&gt;' as table/field name, but that is possible in MySql. &lt;br /&gt;&lt;br /&gt;6. &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;LIMIT&lt;/span&gt; is not supported in Ms Sql Server and there is no easy way if we want go select some range of data. In MySql we use "&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;SELECT * FROM my-table LIMIT 10, 20&lt;/span&gt;" to select records from 10 to 20, but in Ms Sql Server we have to use something like "&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (ORDER BY id) as row FROM my-table ) a WHERE row &amp;gt; 10 and row &amp;lt;= 20&lt;/span&gt;"&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-924360479817338419?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/924360479817338419/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=924360479817338419" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/924360479817338419" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/924360479817338419" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2010/05/mysql-ms-sql-server-database.html" title="MySql - Ms Sql Server Database Portability" /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23257774.post-2012209831877583917</id><published>2010-02-17T14:48:00.000+05:30</published><updated>2010-02-17T14:48:31.701+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="Maven" /><title type="text">Integrating YUI Compressor to your Maven Web Project</title><content type="html">Size of the javascript files and css files in a website has a big affect on its performance. Especially in slow connections lot of time will be spent on downloading those files. We recently came across such situation. Our website was using jQuery and some other javascipt libraries. Some of them were more than 100kb. Sometimes it took more than 10 seconds to load a page. When we view the loading statistics using developer-tools in Chrome it showed that browser had downloaded more than 500kb of scripts and css.&lt;br /&gt;&lt;br /&gt;One way to reduce this script size is to compress them. Our script files contained lot of comments, licencing statements, nice formattings, long meaningful variable names etc... which increases the file size. &lt;a href="http://developer.yahoo.com/yui/compressor/" target="_blank"&gt;YUI Compressor&lt;/a&gt; is a free utility by Yahoo which can be use to compress our scripts by removing above mentioned things. It is jar file and you can use that and compress file by file.&lt;br /&gt;&lt;br /&gt;But that is not very practicle to keep those minimized scripts in develepment since after minimizing you won't be able read them and edit them when needed. Best method is to do the minization when you create the war file. Luckly there is a &lt;a href="http://alchim.sourceforge.net/yuicompressor-maven-plugin/" target="_blank"&gt;maven plugin for this&lt;/a&gt;. Following is the plugin component you can add to your maven pom.&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.code0 { font-size: small; font-family: Consolas, "Courier New", Courier, Monospace; color: #000000; background-color: #ffffff; } .code1 { margin: 0em; } .code2 { margin: 0em; width: 100%; background-color: #f0f0f0; } .code3 { color: #006400; } .code4 { color: #000000; } .code5 { color: #008b8b; font-weight: bold; } .code6 { color: #00008b; } &lt;/style&gt;&lt;br /&gt;&lt;div class="code0"&gt;&lt;pre class="code1"&gt;&lt;span class="code3"&gt;&amp;lt;&lt;/span&gt;&lt;span class="code4"&gt;plugins&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code2"&gt;&lt;span class="code3"&gt;....&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code1"&gt;&lt;span class="code3"&gt;&amp;lt;&lt;/span&gt;&lt;span class="code4"&gt;plugin&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code2"&gt;&lt;span class="code3"&gt;&amp;lt;&lt;/span&gt;&lt;span class="code4"&gt;groupId&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;span class="code4"&gt;org&lt;/span&gt;&lt;span class="code3"&gt;.&lt;/span&gt;&lt;span class="code4"&gt;apache&lt;/span&gt;&lt;span class="code3"&gt;.&lt;/span&gt;&lt;span class="code4"&gt;maven&lt;/span&gt;&lt;span class="code3"&gt;.&lt;/span&gt;&lt;span class="code4"&gt;plugins&lt;/span&gt;&lt;span class="code3"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="code4"&gt;groupId&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code1"&gt;&lt;span class="code3"&gt;&amp;lt;&lt;/span&gt;&lt;span class="code4"&gt;artifactId&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;span class="code4"&gt;maven&lt;/span&gt;&lt;span class="code3"&gt;-&lt;/span&gt;&lt;span class="code4"&gt;war&lt;/span&gt;&lt;span class="code3"&gt;-&lt;/span&gt;&lt;span class="code4"&gt;plugin&lt;/span&gt;&lt;span class="code3"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="code4"&gt;artifactId&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code2"&gt;&lt;span class="code3"&gt;&amp;lt;&lt;/span&gt;&lt;span class="code4"&gt;configuration&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code1"&gt;&lt;span class="code3"&gt;&amp;lt;&lt;/span&gt;&lt;span class="code4"&gt;webResources&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code2"&gt;&lt;span class="code3"&gt;&amp;lt;&lt;/span&gt;&lt;span class="code4"&gt;resource&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code1"&gt;&lt;span class="code3"&gt;&amp;lt;&lt;/span&gt;&lt;span class="code4"&gt;directory&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code2"&gt;&lt;span class="code4"&gt;$&lt;/span&gt;&lt;span class="code3"&gt;{&lt;/span&gt;&lt;span class="code4"&gt;project&lt;/span&gt;&lt;span class="code3"&gt;.&lt;/span&gt;&lt;span class="code4"&gt;build&lt;/span&gt;&lt;span class="code3"&gt;.&lt;/span&gt;&lt;span class="code4"&gt;directory&lt;/span&gt;&lt;span class="code3"&gt;}/&lt;/span&gt;&lt;span class="code4"&gt;minimized&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code1"&gt;&lt;span class="code3"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="code4"&gt;directory&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code2"&gt;&lt;span class="code3"&gt;&amp;lt;&lt;/span&gt;&lt;span class="code4"&gt;targetPath&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;/&amp;lt;/&lt;/span&gt;&lt;span class="code4"&gt;targetPath&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code1"&gt;&lt;span class="code3"&gt;&amp;lt;&lt;/span&gt;&lt;span class="code4"&gt;filtering&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;span class="code5"&gt;false&lt;/span&gt;&lt;span class="code3"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="code4"&gt;filtering&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code2"&gt;&lt;span class="code3"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="code4"&gt;resource&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code1"&gt;&lt;span class="code3"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="code4"&gt;webResources&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code2"&gt;&lt;span class="code3"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="code4"&gt;configuration&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code1"&gt;&lt;span class="code3"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="code4"&gt;plugin&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code2"&gt;&lt;span class="code3"&gt;&amp;lt;&lt;/span&gt;&lt;span class="code4"&gt;plugin&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code1"&gt;&lt;span class="code3"&gt;&amp;lt;&lt;/span&gt;&lt;span class="code4"&gt;groupId&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;span class="code4"&gt;net&lt;/span&gt;&lt;span class="code3"&gt;.&lt;/span&gt;&lt;span class="code4"&gt;sf&lt;/span&gt;&lt;span class="code3"&gt;.&lt;/span&gt;&lt;span class="code4"&gt;alchim&lt;/span&gt;&lt;span class="code3"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="code4"&gt;groupId&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code2"&gt;&lt;span class="code3"&gt;&amp;lt;&lt;/span&gt;&lt;span class="code4"&gt;artifactId&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;span class="code4"&gt;yuicompressor&lt;/span&gt;&lt;span class="code3"&gt;-&lt;/span&gt;&lt;span class="code4"&gt;maven&lt;/span&gt;&lt;span class="code3"&gt;-&lt;/span&gt;&lt;span class="code4"&gt;plugin&lt;/span&gt;&lt;span class="code3"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="code4"&gt;artifactId&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code1"&gt;&lt;span class="code3"&gt;&amp;lt;&lt;/span&gt;&lt;span class="code4"&gt;version&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;span class="code6"&gt;0.7.1&lt;/span&gt;&lt;span class="code3"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="code4"&gt;version&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code2"&gt;&lt;span class="code3"&gt;&amp;lt;&lt;/span&gt;&lt;span class="code4"&gt;executions&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code1"&gt;&lt;span class="code3"&gt;&amp;lt;&lt;/span&gt;&lt;span class="code4"&gt;execution&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code2"&gt;&lt;span class="code3"&gt;&amp;lt;&lt;/span&gt;&lt;span class="code4"&gt;goals&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code1"&gt;&lt;span class="code3"&gt;&amp;lt;&lt;/span&gt;&lt;span class="code4"&gt;goal&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;span class="code4"&gt;compress&lt;/span&gt;&lt;span class="code3"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="code4"&gt;goal&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code2"&gt;&lt;span class="code3"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="code4"&gt;goals&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code1"&gt;&lt;span class="code3"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="code4"&gt;execution&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code2"&gt;&lt;span class="code3"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="code4"&gt;executions&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code1"&gt;&lt;span class="code3"&gt;&amp;lt;&lt;/span&gt;&lt;span class="code4"&gt;configuration&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code2"&gt;&lt;span class="code3"&gt;&amp;lt;&lt;/span&gt;&lt;span class="code4"&gt;webappDirectory&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code1"&gt;&lt;span class="code4"&gt;$&lt;/span&gt;&lt;span class="code3"&gt;{&lt;/span&gt;&lt;span class="code4"&gt;project&lt;/span&gt;&lt;span class="code3"&gt;.&lt;/span&gt;&lt;span class="code4"&gt;build&lt;/span&gt;&lt;span class="code3"&gt;.&lt;/span&gt;&lt;span class="code4"&gt;directory&lt;/span&gt;&lt;span class="code3"&gt;}/&lt;/span&gt;&lt;span class="code4"&gt;minimized&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code2"&gt;&lt;span class="code3"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="code4"&gt;webappDirectory&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code1"&gt;&lt;span class="code3"&gt;&amp;lt;&lt;/span&gt;&lt;span class="code4"&gt;nosuffix&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;span class="code5"&gt;true&lt;/span&gt;&lt;span class="code3"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="code4"&gt;nosuffix&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code2"&gt;&lt;span class="code3"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="code4"&gt;configuration&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code1"&gt;&lt;span class="code3"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="code4"&gt;plugin&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code2"&gt;&lt;span class="code3"&gt;....&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code1"&gt;&lt;span class="code3"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="code4"&gt;plugins&lt;/span&gt;&lt;span class="code3"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When you run mnv clean package YUI compressor will compress the scripts and put them in target/minimized folder and those will be used to create the war file.&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-2012209831877583917?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/2012209831877583917/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=2012209831877583917" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/2012209831877583917" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/2012209831877583917" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2010/02/integrating-yui-compressor-to-your.html" title="Integrating YUI Compressor to your Maven Web Project" /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23257774.post-4767738491647900893</id><published>2010-01-15T06:44:00.001+05:30</published><updated>2010-01-15T06:45:17.493+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Other" /><title type="text">8 Stages of Programming a New Feature</title><content type="html">This is a really nice comic I came across few days back. It is really nice and explains every thing what we generally going through as software engineers.....&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_tedTUODQRM0/S0_A2UwBK_I/AAAAAAAAA3E/ALdUDKkv168/s1600-h/8-stages-programming.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://4.bp.blogspot.com/_tedTUODQRM0/S0_A2UwBK_I/AAAAAAAAA3E/ALdUDKkv168/s640/8-stages-programming.jpg" width="452" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;This one was originally published at&amp;nbsp;&lt;a href="http://www.my25percent.com/2009/09/eight-stages-of-programming-new-feature.html"&gt;http://www.my25percent.com/2009/09/eight-stages-of-programming-new-feature.html&amp;nbsp;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-4767738491647900893?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/4767738491647900893/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=4767738491647900893" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/4767738491647900893" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/4767738491647900893" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2010/01/8-stages-of-programming-new-feature.html" title="8 Stages of Programming a New Feature" /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_tedTUODQRM0/S0_A2UwBK_I/AAAAAAAAA3E/ALdUDKkv168/s72-c/8-stages-programming.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23257774.post-2626259799909526433</id><published>2010-01-01T08:02:00.000+05:30</published><updated>2010-01-01T08:02:45.759+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Other" /><category scheme="http://www.blogger.com/atom/ns#" term="Personal" /><title type="text">Happy New Year 2010</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_tedTUODQRM0/Sz1eDp2Le_I/AAAAAAAAA2g/IwOQbZUxR8I/s1600-h/Happy+New+Year+-+Suba+Aluth+Avruddak+Vewa.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_tedTUODQRM0/Sz1eDp2Le_I/AAAAAAAAA2g/IwOQbZUxR8I/s400/Happy+New+Year+-+Suba+Aluth+Avruddak+Vewa.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;b&gt;Wish You All a Very Happy and Prosperous&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;b&gt;New Year!&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;b&gt;May All Your Dreams Come True in This Wonderful Year...&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-2626259799909526433?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/2626259799909526433/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=2626259799909526433" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/2626259799909526433" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/2626259799909526433" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2010/01/happy-new-year-2010.html" title="Happy New Year 2010" /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_tedTUODQRM0/Sz1eDp2Le_I/AAAAAAAAA2g/IwOQbZUxR8I/s72-c/Happy+New+Year+-+Suba+Aluth+Avruddak+Vewa.jpg" height="72" width="72" /><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23257774.post-6446891725508412843</id><published>2010-01-01T07:41:00.002+05:30</published><updated>2010-01-01T07:48:47.048+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Soltura" /><category scheme="http://www.blogger.com/atom/ns#" term="SDP" /><category scheme="http://www.blogger.com/atom/ns#" term="hSenid Mobile" /><title type="text">Traditional SDP Vs mChoice Soltura</title><content type="html">&lt;span style="font-family: arial, sans-serif; font-size: small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'trebuchet ms', sans-serif;"&gt;&lt;b&gt;&lt;a href="http://en.wikipedia.org/wiki/Service_delivery_platform"&gt;SDPs&lt;/a&gt;&lt;/b&gt; are commonly developed as core systems which interconnect different Telco network services and provide one unified access point for customers (application developers). This will reduce the application development cost rapidly and easy management of applications&amp;nbsp;&lt;span style="font-family: arial, sans-serif;"&gt;&lt;span style="font-family: 'trebuchet ms', sans-serif;"&gt;for the Telco. Even though SDP reduces the application development cost, still the most difficult part remains; which is the development of the business logic of the application. With SDP model&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'trebuchet ms', sans-serif;"&gt;if&lt;/span&gt;&lt;span style="font-family: 'trebuchet ms', sans-serif;"&gt;&amp;nbsp;any content provider wants to run a&amp;nbsp;mobile application, then they have to consider about two things;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family: 'trebuchet ms', sans-serif;"&gt;Developing/running and maintaining the application&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: 'trebuchet ms', sans-serif;"&gt;Managing the content provided by the application&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family: 'trebuchet ms', sans-serif;"&gt;These two are completely different things. For a genuine content provider &lt;b&gt;'Developing/running and maintaining'&lt;/b&gt;&amp;nbsp;an application is a completely new thing and it will deviate his concentration from providing valuable content. In addition to that, content provider also has to bear the cost of infrastructure required to run the application. Initial&amp;nbsp;cost of developing the application and buying infrastructure can be really high. This startup cost is one of the main reasons blocking many of the new comers entering to the market.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-family: 'trebuchet ms', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-family: 'trebuchet ms', sans-serif;"&gt;This is where the &lt;b&gt;mChoice Soltura TM&lt;/b&gt; come in to the scene. mChoice Soltura is not just a SDP, rather it provides infrastructure for content providers to create their own application with virtually zero cost. &lt;b&gt;They don't have to worry about creating applications, maintaining them and infrastructure requirements to run those applications&lt;/b&gt;.&amp;nbsp;They can put 100% of their attention to the creation of the content. mChoice Soltura will provide different types of applications, so the content provider can choose the application matching to their requirement and use it.&amp;nbsp;mChoice Soltura provides a simple and powerful Web Based Interface for content provider to create/manage application and manage content.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-family: 'trebuchet ms', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-family: 'trebuchet ms', sans-serif;"&gt;mChoice Soltura releases the burden of application creation, maintenance and infrastructure management and brings the&amp;nbsp;freedom to the content providers.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-6446891725508412843?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/6446891725508412843/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=6446891725508412843" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/6446891725508412843" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/6446891725508412843" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2010/01/traditional-sdp-vs-mchoice-soltura.html" title="Traditional SDP Vs mChoice Soltura" /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23257774.post-8517764202401971682</id><published>2009-11-14T14:03:00.002+05:30</published><updated>2009-11-14T14:05:27.568+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="SCTP" /><category scheme="http://www.blogger.com/atom/ns#" term="OpenJDK" /><title type="text">Reducing the Time Between SCTP Message Received and SCTP_SACK Sent</title><content type="html">&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Last few weeks I was involved with a development related to SCTP protocol in Java. I have also done two posts on how to get started with SCTP. During that project I came across a strange issue. That is I receive two responses for all the packets I send to the peer. After doing some investigation we found that it is due to that from my application SCTP SACK message is sent after 200ms. Because of that delay peer thinks that I have not received the message and sent it again. &lt;br /&gt;That 200ms is a configuration based on the SCTP RFC. According to that an acknowledgment(SACK) should be generated for at least every second packet received, and SHOULD be generated within 200 ms of the arrival of any unacknowledged DATA chunk.So to fix this issue I had to find a way to reduce the delay between message receiving and SACK sending. &lt;br /&gt;We can reduce that time delay by editing the value of /proc/sys/net/sctp/sack_timeout property file. Just use following to set timeout to 50ms.&amp;nbsp; &lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;echo 50 &amp;gt; /proc/sys/net/sctp/sack_timeout&lt;br /&gt;&lt;/div&gt;After doing that that two response issue was fixed.&amp;nbsp; Thanks Chris at sctp-dev@openjdk.java.net for helping me on fixing this issue.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="technorati-tags"&gt;&lt;a href="http://technorati.com/tag/SCTP" rel="tag"&gt;SCTP&lt;/a&gt;, &lt;a href="http://technorati.com/tag/OpenJDK" rel="tag"&gt;OpenJDK&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Java" rel="tag"&gt;Java&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Programming" rel="tag"&gt;Programming&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-8517764202401971682?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/8517764202401971682/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=8517764202401971682" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/8517764202401971682" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/8517764202401971682" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2009/11/reducing-time-between-sctp-message.html" title="Reducing the Time Between SCTP Message Received and SCTP_SACK Sent" /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23257774.post-1019134960011257715</id><published>2009-10-16T08:17:00.005+05:30</published><updated>2009-10-16T08:38:05.270+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><title type="text">Catching JVM Shutdown event</title><content type="html">&lt;span style="font-size:85%;"&gt;&lt;a href="http://java.sun.com/j2se/1.5.0/docs/guide/lang/hook-design.html" target="_blank"&gt;Shutdown hook&lt;/a&gt; is a mechanism provided by java for us to handle shutdown event of our applications. We can attach any piece of code to this and execute them just before JVM exits.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;&lt;a name="line1"&gt;&lt;strong&gt;public&lt;/strong&gt; &lt;strong&gt;class&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;ShutDownHookTest&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;      &lt;strong&gt;public&lt;/strong&gt; &lt;strong&gt;static&lt;/strong&gt; &lt;strong&gt;void&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;main&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(32, 64, 160);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;[&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;/span&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;args&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt; &lt;strong&gt;throws&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;Exception&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;              &lt;span style="color: rgb(32, 64, 160);"&gt;System&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;out&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;println&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;"System Started..."&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span style="color: rgb(32, 64, 160);"&gt;Runtime&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;getRuntime&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;addShutdownHook&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;new&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;Thread&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt; &lt;strong&gt;new&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;Runnable&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;                      &lt;strong&gt;public&lt;/strong&gt; &lt;strong&gt;void&lt;/strong&gt; &lt;span style="color: rgb(32, 64, 160);"&gt;run&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt; &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;                              &lt;span style="color: rgb(32, 64, 160);"&gt;System&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;out&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;println&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;"System is Shutting Down..."&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;                      &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;              &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;              &lt;span style="color: rgb(32, 64, 160);"&gt;Thread&lt;/span&gt;.&lt;span style="color: rgb(32, 64, 160);"&gt;sleep&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;10000&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(68, 68, 255);"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;Compile and run this sample code and press Crt+C to exit the application, you can see that "System is Shutting Down" message prints before application exiting.&lt;br /&gt;&lt;br /&gt;But we have to be careful when using this, because if the shutdown code we attach to the shutdown hook end up in an infinite loop, our application will be stuck and only way to exit will be killing the process.&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-1019134960011257715?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/1019134960011257715/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=1019134960011257715" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/1019134960011257715" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/1019134960011257715" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2009/10/catchig-jvm-shutdown-event.html" title="Catching JVM Shutdown event" /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23257774.post-9181578520918408102</id><published>2009-09-25T12:02:00.003+05:30</published><updated>2009-09-25T12:08:48.123+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Tips and Tricks" /><title type="text">InfoQ allow you to download Mp3s</title><content type="html">Finally, a feature I was waiting for long time has been included to &lt;a href="http://www.infoq.com"&gt;InfoQ&lt;/a&gt;. Now they give the mp3 files of the presentations posted in the site. &lt;a href="http://sandarenu.blogspot.com/2009/07/download-presentation-videos-from-infoq.html"&gt;Previously we had to use some tools to capture the streaming flash video&lt;/a&gt; and convert them in to mp3.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tedTUODQRM0/SrxlGKNXb1I/AAAAAAAAAz4/L0eDivifBQc/s1600-h/infoq-mp3-download.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 240px;" src="http://2.bp.blogspot.com/_tedTUODQRM0/SrxlGKNXb1I/AAAAAAAAAz4/L0eDivifBQc/s400/infoq-mp3-download.png" alt="" id="BLOGGER_PHOTO_ID_5385290410922307410" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-9181578520918408102?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/9181578520918408102/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=9181578520918408102" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/9181578520918408102" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/9181578520918408102" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2009/09/infoq-allow-you-to-download-mp3s.html" title="InfoQ allow you to download Mp3s" /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_tedTUODQRM0/SrxlGKNXb1I/AAAAAAAAAz4/L0eDivifBQc/s72-c/infoq-mp3-download.png" height="72" width="72" /><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23257774.post-8097817534726726400</id><published>2009-08-08T13:23:00.001+05:30</published><updated>2009-08-08T13:23:48.742+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="Utilities" /><title type="text">Command Line Client for JMX</title><content type="html">&lt;p&gt;JMX is a mechanism where we can used to monitor and control our java applications remotely. We can expose variables and methods to outside using JMX.&amp;#160; To access these exposed variables or methods, we have to use JMX Client. JConsole is the JMX client application shipped with Java. It is a swing based application.&lt;/p&gt;  &lt;p&gt;There is nothing wrong with JConsole if I'm using it in from my desktop. But issue is when I want to run it on a remote machine through ssh, I can't use X because of bandwidth limitations. So ideal tool for such situation is to use CLI tool. &lt;/p&gt;  &lt;p&gt;After searching few minutes in goolgle I found this cute little tool called &lt;strong&gt;&amp;quot;&lt;/strong&gt;&lt;a href="http://www.cyclopsgroup.org/projects/jmxterm/" target="_blank"&gt;&lt;strong&gt;Jmxterm (JMX&amp;#160; Terminal)&amp;quot;.&lt;/strong&gt;&lt;/a&gt; It is again a Java application and give you all the features you need when you use JMX. It is really user friendly as well. It has auto command completion and also can remember previous command you used. It is just like bash. &lt;/p&gt;  &lt;p&gt;&lt;font face="cour" size="1"&gt;[sandarenu@localhost jmx-commandline]$ java -jar jmxterm-1.0-alpha-4-uber.jar     &lt;br /&gt;Welcome to JMX terminal. Type &amp;quot;help&amp;quot; for available commands.      &lt;br /&gt;$&amp;gt;help      &lt;br /&gt;#following commands are available to use:      &lt;br /&gt;about&amp;#160;&amp;#160;&amp;#160; - Display about page      &lt;br /&gt;bean&amp;#160;&amp;#160;&amp;#160;&amp;#160; - Display or set current selected MBean.      &lt;br /&gt;beans&amp;#160;&amp;#160;&amp;#160; - List available beans under a domain or all domains      &lt;br /&gt;bye&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; - Terminate console and exit      &lt;br /&gt;close&amp;#160;&amp;#160;&amp;#160; - Close current JMX connection      &lt;br /&gt;domain&amp;#160;&amp;#160; - Display or set current selected domain.      &lt;br /&gt;domains&amp;#160; - List all available domain names      &lt;br /&gt;exit&amp;#160;&amp;#160;&amp;#160;&amp;#160; - Terminate console and exit      &lt;br /&gt;get&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; - Get value of MBean attribute(s)      &lt;br /&gt;help&amp;#160;&amp;#160;&amp;#160;&amp;#160; - Display available commands or usage of a command      &lt;br /&gt;info&amp;#160;&amp;#160;&amp;#160;&amp;#160; - Display detail information about an MBean      &lt;br /&gt;jvms&amp;#160;&amp;#160;&amp;#160;&amp;#160; - List all running local JVM processes      &lt;br /&gt;open&amp;#160;&amp;#160;&amp;#160;&amp;#160; - Open JMX session or display current connection      &lt;br /&gt;option&amp;#160;&amp;#160; - Set options for command session      &lt;br /&gt;quit&amp;#160;&amp;#160;&amp;#160;&amp;#160; - Terminate console and exit      &lt;br /&gt;run&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; - Invoke an MBean operation      &lt;br /&gt;set&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; - Set value of an MBean attribute &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cour" size="1"&gt;$&amp;gt;jvms     &lt;br /&gt;2686&amp;#160;&amp;#160;&amp;#160;&amp;#160; ( ) -      &lt;br /&gt;12216&amp;#160;&amp;#160;&amp;#160; ( ) - jmxterm-1.0-alpha-4-uber.jar      &lt;br /&gt;12200&amp;#160;&amp;#160;&amp;#160; ( ) - hsendidmobile.ss7.sampleapp.performance.ApplicationStarter      &lt;br /&gt;$&amp;gt;open 12200      &lt;br /&gt;$&amp;gt;bean Performance:name=smsSender,type=map      &lt;br /&gt;#bean is set to Performance:name=smsSender,type=map      &lt;br /&gt;$&amp;gt;info      &lt;br /&gt;#mbean = Performance:name=smsSender,type=map      &lt;br /&gt;#class name = hsendidmobile.ss7.sampleapp.performance.sms.ForwardMoSenderMBean      &lt;br /&gt;#there is no attribute      &lt;br /&gt;# operations      &lt;br /&gt;&amp;#160; %0&amp;#160;&amp;#160; - int currrentTps()      &lt;br /&gt;&amp;#160; %1&amp;#160;&amp;#160; - void sendMessage()      &lt;br /&gt;&amp;#160; %2&amp;#160;&amp;#160; - void sendTps(int p1)      &lt;br /&gt;&amp;#160; %3&amp;#160;&amp;#160; - void sendTpsParallay(int p1,int p2)      &lt;br /&gt;&amp;#160; %4&amp;#160;&amp;#160; - void stopSending()      &lt;br /&gt;#there's no notifications      &lt;br /&gt;$&amp;gt;run sendMessage      &lt;br /&gt;#calling operation sendMessage of mbean Performance:name=smsSender,type=map      &lt;br /&gt;#operation returns:      &lt;br /&gt;null&lt;/font&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:67ef1d29-3ef5-476a-bf29-92107623d220" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/JMX" rel="tag"&gt;JMX&lt;/a&gt;,&lt;a href="http://technorati.com/tags/CLI" rel="tag"&gt;CLI&lt;/a&gt;,&lt;a href="http://technorati.com/tags/JConsole" rel="tag"&gt;JConsole&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-8097817534726726400?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/8097817534726726400/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=8097817534726726400" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/8097817534726726400" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/8097817534726726400" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2009/08/command-line-client-for-jmx.html" title="Command Line Client for JMX" /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23257774.post-2198112233713814082</id><published>2009-07-11T08:50:00.001+05:30</published><updated>2009-07-11T08:50:54.969+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Utilities" /><category scheme="http://www.blogger.com/atom/ns#" term="Tips and Tricks" /><title type="text">Download Presentation Videos from InfoQ</title><content type="html">&lt;p&gt;&lt;a href="http://infoq.com" target="_blank"&gt;InfoQ&lt;/a&gt; is a very resource full web site for anyone in the software industry. They have lot of articles, white papers, and presentations in various topics related to software engineering. Presentation videos found in InfoQ have being recorded during various conferences and are really useful. I really love watching those videos since it is great opportunity to listen to industry experts. &lt;/p&gt;  &lt;p&gt;But the problem was that I had to sit in front of the browser and watch those videos. So I though of downloading those videos watch them when I have free time, or when I'm traveling. So I tried to download the flv using many of the free tools available in the web. But they were not successful at all. After many unsuccessful attempts, I found a way to download those presentations. It is a tool called Grub-Pro coming with Orbit-Downloader. &lt;a href="http://www.orbitdownloader.com/Grab-Pro-tutorials.htm" target="_blank"&gt;Here is the tutorial for it&lt;/a&gt;. Only issue with this tool is that you have to use Internet Explorer. But no worries, as long as I can download the video, I don't mind even using IE for a while :)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_tedTUODQRM0/SlgE-o0VQGI/AAAAAAAAAzQ/yhmkd5TaJxM/s1600-h/grubproinIE4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="278" alt="grub-pro-in-IE" src="http://lh4.ggpht.com/_tedTUODQRM0/SlgFC4cEItI/AAAAAAAAAzU/pteppJ940y8/grubproinIE_thumb2.png?imgmax=800" width="433" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_tedTUODQRM0/SlgFEPdD5-I/AAAAAAAAAzY/h4L_aqMcb-M/s1600-h/grubprodownload2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="214" alt="grub-pro-download" src="http://lh5.ggpht.com/_tedTUODQRM0/SlgFFV5XGfI/AAAAAAAAAzc/mJdY5WhAlfE/grubprodownload_thumb.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5733402a-7c8d-4817-bb07-18b685cd44a2" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/InfoQ%20Presentations" rel="tag"&gt;InfoQ Presentations&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Orbit%20Downloader" rel="tag"&gt;Orbit Downloader&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Grub-Pro" rel="tag"&gt;Grub-Pro&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-2198112233713814082?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/2198112233713814082/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=2198112233713814082" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/2198112233713814082" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/2198112233713814082" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2009/07/download-presentation-videos-from-infoq.html" title="Download Presentation Videos from InfoQ" /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_tedTUODQRM0/SlgFC4cEItI/AAAAAAAAAzU/pteppJ940y8/s72-c/grubproinIE_thumb2.png?imgmax=800" height="72" width="72" /><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23257774.post-1608670496659753015</id><published>2009-06-14T10:31:00.001+05:30</published><updated>2009-06-14T10:31:50.167+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><category scheme="http://www.blogger.com/atom/ns#" term="Productivity" /><category scheme="http://www.blogger.com/atom/ns#" term="Utilities" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="Tips and Tricks" /><title type="text">Task Focused Programing with Mylyn and TaskTop</title><content type="html">&lt;p&gt; Few days back I came across &lt;a href="http://www.infoq.com/presentations/mik-kersten-eclipse-mylin-tfi" target="_blank"&gt;this presentation at InfoQ site&lt;/a&gt; regarding &amp;quot;Eclipse, Mylyn and the TFI&amp;quot;. I've seen the Mylyn view in the Eclipse and my idea about that was like some kind of a task management tool that comes with Eclipse IDE. After watching the vide my idea about Mylyn changed a lot and I was really exited about Mylyn and wanted to give it a try.&amp;#160; Mylyn is an open source product, there is a commercial version as well, which is called &lt;a href="http://tasktop.com" target="_blank"&gt;TaskTop&lt;/a&gt;. In task top there is a free version called &amp;quot;TaskTop Starter&amp;quot; which has some more features like Time Tracking. &lt;/p&gt;  &lt;h4&gt;&lt;u&gt;Installing Mylyn and TaskTop&lt;/u&gt;&lt;/h4&gt;  &lt;p&gt;Mylyn comes by default with many of Eclipse editions. I was using Eclipse JEE Developer edition and it already had Mylyn. So most probably you also having it already. If you don't have Mylyn pug-in already installed in your Eclipse you can get it from &lt;a href="http://www.eclipse.org/mylyn/" target="_blank"&gt;Eclipse site.&lt;/a&gt; It has all the instruction you need to install it. &lt;/p&gt;  &lt;p&gt;Once you install Mylyn you'll get a new view called &amp;quot;Task&amp;quot;. If it is not already shown you can get it from Window -&amp;gt; Show View -&amp;gt; Other.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_tedTUODQRM0/SjSD_ouHO1I/AAAAAAAAAx8/EzOQbDjP1dg/s1600-h/task-view%5B2%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="154" alt="task-view" src="http://lh6.ggpht.com/_tedTUODQRM0/SjSEBNsBzVI/AAAAAAAAAyA/5xt0P4dG408/task-view_thumb.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;To install TaskTop starter edition follow the instructions given in &lt;a href="http://tasktop.com/support/download/" target="_blank"&gt;TaskTop site&lt;/a&gt;. Before installing TaskTop you should do a complete update of your Eclipse. Otherwise you'll get some errors regarding incompatibilities. &lt;/p&gt;  &lt;h4&gt;&lt;u&gt;Some Interesting Features of Mylyn/TaskTop&lt;/u&gt;&lt;/h4&gt;  &lt;p&gt;Mylyn is all about task focused programing. It allows you to do multitasking with ease. When you create a task all the editors you open are attached to that task. So when you move to another task you can see all the file which you had opened already there. You don't need to waist time on opening and closing editors when switching from one task to another.&amp;#160; Trust me this can improve your productivity many times. I personally experiences this during last tow days &lt;/p&gt;  &lt;p&gt;I used mylyn.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_tedTUODQRM0/SjSEERzfPJI/AAAAAAAAAyE/e_HItyBl038/s1600-h/task-list%5B4%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="196" alt="task-list" src="http://lh3.ggpht.com/_tedTUODQRM0/SjSEFxFH1II/AAAAAAAAAyI/v20QpTUTBto/task-list_thumb%5B2%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_tedTUODQRM0/SjSEISxw3tI/AAAAAAAAAyM/SXE_eOsM1ag/s1600-h/creating-new-task%5B2%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="196" alt="creating-new-task" src="http://lh3.ggpht.com/_tedTUODQRM0/SjSEJ93bDGI/AAAAAAAAAyQ/1VsyXVwf6X4/creating-new-task_thumb.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;You can also integrate bug reports from common bug tracking systems like bugzilla and Jira. Most interesting thing about this is that you can share how you fix the bug with other developers as well. Lett's say you had to open 5 files and do changes in order to fix the bug. When you mark the bug as Fixed you can also attach Mylyn context as well. So when other open it, mylyn will automatically open the files you have opened when you fixed that bug. &lt;/p&gt;  &lt;p&gt;Another interesting thing is you can see how you have spent your time on various tasks you have performed during the day. This feature comes with the TaskTop Starter.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_tedTUODQRM0/SjSENuVRgII/AAAAAAAAAyU/J4yvsps_MmA/s1600-h/time-tracking%5B2%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="196" alt="time-tracking" src="http://lh5.ggpht.com/_tedTUODQRM0/SjSEPGBEgRI/AAAAAAAAAyY/HACldnnCNPY/time-tracking_thumb.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;There are many more interesting things regarding Mylyn. This is only an enlightment article. If you are interested you should watch that InfoQ video.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:0c3388d9-e71a-4edc-857c-b76a70b62d4c" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Mylyn" rel="tag"&gt;Mylyn&lt;/a&gt;,&lt;a href="http://technorati.com/tags/TaskTop" rel="tag"&gt;TaskTop&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Task%20Focused%20Programing.%20Eclipse" rel="tag"&gt;Task Focused Programing. Eclipse&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Productivity" rel="tag"&gt;Productivity&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-1608670496659753015?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/1608670496659753015/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=1608670496659753015" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/1608670496659753015" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/1608670496659753015" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2009/06/task-focused-programing-with-mylyn-and.html" title="Task Focused Programing with Mylyn and TaskTop" /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_tedTUODQRM0/SjSEBNsBzVI/AAAAAAAAAyA/5xt0P4dG408/s72-c/task-view_thumb.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23257774.post-1322371123600448030</id><published>2009-05-02T12:45:00.000+05:30</published><updated>2009-05-02T12:45:00.698+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="SCTP" /><category scheme="http://www.blogger.com/atom/ns#" term="OpenJDK" /><title type="text">SCTP Client-Server in Java</title><content type="html">&lt;p&gt;As I promised in &lt;a href="http://sandarenu.blogspot.com/2009/05/communicating-over-sctp-in-java.html" target="_blank"&gt;my previous article&lt;/a&gt; here is very simple Client Server example for SCTP in Java. If you still have not installed and tested OpenJDK please follow the instructions given in &lt;a href="http://sandarenu.blogspot.com/2009/05/communicating-over-sctp-in-java.html" target="_blank"&gt;my previous article&lt;/a&gt;.&lt;/p&gt;  &lt;h5&gt;&lt;strong&gt;SCTP Server&lt;/strong&gt;&lt;/h5&gt;  &lt;p&gt;import java.io.IOException;    &lt;br /&gt;import java.net.InetSocketAddress;     &lt;br /&gt;import java.net.SocketAddress;     &lt;br /&gt;import java.nio.ByteBuffer; &lt;/p&gt;  &lt;p&gt;import com.sun.nio.sctp.MessageInfo;    &lt;br /&gt;import com.sun.nio.sctp.SctpChannel;     &lt;br /&gt;import com.sun.nio.sctp.SctpServerChannel; &lt;/p&gt;  &lt;p&gt;/**    &lt;br /&gt;* @author sandarenu     &lt;br /&gt;* $LastChangedDate$     &lt;br /&gt;* $LastChangedBy$     &lt;br /&gt;* $LastChangedRevision$     &lt;br /&gt;*/     &lt;br /&gt;public class SctpServer { &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; public static void main(String[] args) throws IOException {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SocketAddress serverSocketAddress = new InetSocketAddress(1111);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.out.println(&amp;quot;create and bind for sctp address&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SctpServerChannel sctpServerChannel =&amp;#160; SctpServerChannel.open().bind(serverSocketAddress);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.out.println(&amp;quot;address bind process finished successfully&amp;quot;); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SctpChannel sctpChannel;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; while ((sctpChannel = sctpServerChannel.accept()) != null) {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.out.println(&amp;quot;client connection received&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.out.println(&amp;quot;sctpChannel.getRemoteAddresses() = &amp;quot; + sctpChannel.getRemoteAddresses());     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.out.println(&amp;quot;sctpChannel.association() = &amp;quot; + sctpChannel.association());     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MessageInfo messageInfo = sctpChannel.receive(ByteBuffer.allocate(64000) , null, null);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.out.println(messageInfo); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;}&lt;/p&gt;  &lt;h5&gt;&lt;strong&gt;SCTP Client&lt;/strong&gt;&lt;/h5&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;import java.io.IOException;    &lt;br /&gt;import java.net.InetAddress;     &lt;br /&gt;import java.net.InetSocketAddress;     &lt;br /&gt;import java.net.SocketAddress;     &lt;br /&gt;import java.nio.ByteBuffer; &lt;/p&gt;  &lt;p&gt;import com.sun.nio.sctp.MessageInfo;    &lt;br /&gt;import com.sun.nio.sctp.SctpChannel; &lt;/p&gt;  &lt;p&gt;/**    &lt;br /&gt;* @author sandarenu     &lt;br /&gt;* $LastChangedDate$     &lt;br /&gt;* $LastChangedBy$     &lt;br /&gt;* $LastChangedRevision$     &lt;br /&gt;*/     &lt;br /&gt;public class SctpClient { &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; public static void main(String[] args) throws IOException {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; try {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SocketAddress socketAddress = new InetSocketAddress( 6050);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.out.println(&amp;quot;open connection for socket [&amp;quot; + socketAddress + &amp;quot;]&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SctpChannel sctpChannel = SctpChannel.open();//(socketAddress, 1 ,1 );     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sctpChannel.bind(new InetSocketAddress( 6060));     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sctpChannel.connect(socketAddress, 1 ,1); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.out.println(&amp;quot;sctpChannel.getRemoteAddresses() = &amp;quot; + sctpChannel.getRemoteAddresses());    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.out.println(&amp;quot;sctpChannel.getAllLocalAddresses() = &amp;quot; + sctpChannel.getAllLocalAddresses());     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.out.println(&amp;quot;sctpChannel.isConnectionPending() = &amp;quot; + sctpChannel.isConnectionPending());     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.out.println(&amp;quot;sctpChannel.isOpen() = &amp;quot; + sctpChannel.isOpen());     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.out.println(&amp;quot;sctpChannel.isRegistered() = &amp;quot; + sctpChannel.isRegistered());     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.out.println(&amp;quot;sctpChannel.provider() = &amp;quot; + sctpChannel.provider());     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.out.println(&amp;quot;sctpChannel.association() = &amp;quot; + sctpChannel.association()); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.out.println(&amp;quot;send bytes&amp;quot;);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; final ByteBuffer byteBuffer = ByteBuffer.allocate(64000);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //Simple M3ua ASP_Up message     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; byte [] message = new byte []{1,0,3,1,0,0,0,24,0,17,0,8,0,0,0,1,0,4,0,8,84,101,115,116}; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; final MessageInfo messageInfo = MessageInfo.createOutGoing(null, 0);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.out.println(&amp;quot;messageInfo = &amp;quot; + messageInfo);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.out.println(&amp;quot;messageInfo.streamNumber() = &amp;quot; + messageInfo.streamNumber()); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; byteBuffer.put(message);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; byteBuffer.flip(); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; try {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sctpChannel.send(byteBuffer, messageInfo);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } catch (Exception e) {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; e.printStackTrace();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.out.println(&amp;quot;close connection&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sctpChannel.close(); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } catch (Exception e) {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; e.printStackTrace();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;}&lt;/p&gt;  &lt;p&gt;   &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a21ad710-c827-456c-badf-832168e1622e" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Java" rel="tag"&gt;Java&lt;/a&gt;,&lt;a href="http://technorati.com/tags/OpenJDK" rel="tag"&gt;OpenJDK&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Programming" rel="tag"&gt;Programming&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SCTP" rel="tag"&gt;SCTP&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-1322371123600448030?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/1322371123600448030/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=1322371123600448030" title="9 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/1322371123600448030" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/1322371123600448030" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2009/05/sctp-client-server-in-java.html" title="SCTP Client-Server in Java" /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23257774.post-7117720317445931349</id><published>2009-05-01T12:28:00.001+05:30</published><updated>2009-05-01T12:28:41.825+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="Fedora" /><category scheme="http://www.blogger.com/atom/ns#" term="SCTP" /><category scheme="http://www.blogger.com/atom/ns#" term="OpenJDK" /><title type="text">Communicating over SCTP in Java</title><content type="html">&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol" target="_blank"&gt;SCTP - Stream Control Transmission Protocol&lt;/a&gt; is a relatively new (standardize in year 200 by IETF) transport layer protocol to design to operate over IP. It is an alternative for TCP and UDP and combines many good features of those protocols. Main intention of developing SCTP was to cater the growing demand of IP telephony market.&amp;#160; &lt;/p&gt;  &lt;p&gt;Since SCTP is relatively new protocol programming language support for this is also not as commonly available as TCP or UDP, especially you are Java developer. But is you are a C/C++ developer then you have no problem, there is a very good guide on &lt;a href="http://www.unpbook.com/" target="_blank"&gt;UNIX - Network Programing Vol1-3rd Edition&lt;/a&gt; (chapter 9, 10 and 23). &lt;/p&gt;  &lt;p&gt;If you are Java developer then you'd have to use OpenJDK instead of Sun java JDK, since at present only OpenJDK has the support for SCTP. So first thing you have do is to &lt;a href="http://download.java.net/jdk7/sctp/" target="_blank"&gt;download and install OpenJDK-7&lt;/a&gt;.&amp;#160; Currently it only has versions for Linux and Solaris, again if you are using Windows then you'll have to do some more research. I've tried this only on Linux(Fedora), may be later I'll try with Windows as well. If your Linux kernel do not support SCTP, then you'll have install &lt;a href="http://lksctp.sourceforge.net/" target="_blank"&gt;LKSCTP&lt;/a&gt; as well. &lt;a href="http://openjdk.java.net/projects/sctp/html/gettingstarted.html" target="_blank"&gt;Here is the small getting started guide at OpenJDK&lt;/a&gt; site. You can use the small test program given that guide to test whether your SCTP stack if working properly. I'll post small client-server program in SCTP in a later post. &lt;/p&gt;  &lt;p&gt;PS: I found this SCTP library for Windows &lt;a href="http://www.sctp.be/sctplib/"&gt;http://www.sctp.be/sctplib/&lt;/a&gt;, but couldn't check whether there is a support from OpenJDK-SCTP side for windows. If you find something please let me know as well.&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:db909547-4870-46d2-ae62-95a2c3c2910e" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SCTP" rel="tag"&gt;SCTP&lt;/a&gt;,&lt;a href="http://technorati.com/tags/OpenJDK" rel="tag"&gt;OpenJDK&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Java" rel="tag"&gt;Java&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Linux" rel="tag"&gt;Linux&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Programming" rel="tag"&gt;Programming&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-7117720317445931349?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/7117720317445931349/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=7117720317445931349" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/7117720317445931349" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/7117720317445931349" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2009/05/communicating-over-sctp-in-java.html" title="Communicating over SCTP in Java" /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23257774.post-3959332002601612316</id><published>2009-03-22T10:06:00.001+05:30</published><updated>2009-03-22T10:06:56.663+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><category scheme="http://www.blogger.com/atom/ns#" term="OpenCV" /><title type="text">OpenCV - Haar Training Resources</title><content type="html">&lt;p&gt;There were lot of good feed back for my &lt;a href="http://sandarenu.blogspot.com/search/label/OpenCV" target="_blank"&gt;OpenCV articles&lt;/a&gt; (&lt;a href="http://sandarenu.blogspot.com/2008/06/opencv-computer-vision-library.html" target="_blank"&gt;Article1&lt;/a&gt;, &lt;a href="http://sandarenu.blogspot.com/2008/07/getting-started-with-opencv.html" target="_blank"&gt;Article 2&lt;/a&gt;). There were lot of inquires regarding Haar Training and how to do it. Since I was bit busy with my work at hSenind I couldn't put any replies for that. Finally I managed to find some time to put together few URL and important tools where you can use to create your own classifier XML. &lt;/p&gt;  &lt;p&gt;If you are interested in OpenCV vision library you should join to &lt;a href="http://groups.yahoo.com/subscribe/OpenCV" target="_blank"&gt;OpenCV&lt;/a&gt; yahoo group. It is very active and has lot of resources as well.&amp;#160; Following are some good links I used when I was learning on how to do Haar Training with OpenCV.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://note.sonots.com/?cmd=htmlinsert&amp;amp;page=haartraining" href="http://note.sonots.com/?cmd=htmlinsert&amp;amp;page=haartraining" target="_blank"&gt;http://note.sonots.com/?cmd=htmlinsert&amp;amp;page=haartraining&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="http://opencv.willowgarage.com/wiki/FaceDetection" href="http://opencv.willowgarage.com/wiki/FaceDetection" target="_blank"&gt;http://opencv.willowgarage.com/wiki/FaceDetection&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="http://note.sonots.com/SciSoftware/haartraining.html" href="http://note.sonots.com/SciSoftware/haartraining.html" target="_blank"&gt;http://note.sonots.com/SciSoftware/haartraining.html&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="https://webeng.cs.ait.ac.th/cvwiki/opencv:tutorial:haartraining" href="https://webeng.cs.ait.ac.th/cvwiki/opencv:tutorial:haartraining" target="_blank"&gt;https://webeng.cs.ait.ac.th/cvwiki/opencv:tutorial:haartraining&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="http://64.233.169.104/search?q=cache:PMA3ghxtCbwJ:rogerioferis.com/ClassMarch10/CreatingBoostedClassifiers.doc+HaarTraining+%2B+OpenCV&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;cd=48" href="http://64.233.169.104/search?q=cache:PMA3ghxtCbwJ:rogerioferis.com/ClassMarch10/CreatingBoostedClassifiers.doc+HaarTraining+%2B+OpenCV&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;cd=48" target="_blank"&gt;http://64.233.169.104/search?q=cache:PMA3ghxtCbwJ:rogerioferis.com/ClassMarch10/CreatingBoostedClassifiers.doc+HaarTraining+%2B+OpenCV&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;cd=48&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Most important thing to consider when doing Haar training is to have good positive and negative image set. We have created a small utility modifying sample program provide with OpenCV to create positive samples. You can &lt;a href="http://sandarenu.googlepages.com/CV_TrainingPrj.cpp" target="_blank"&gt;download the source here&lt;/a&gt;. Using that you can create positive samples to detect some object using a video. You can move frame by frame in the video using &lt;strong&gt;'Space Bar',&lt;/strong&gt; mark the areas that contain the object you want to detect using mouse and save it just by pressing &lt;strong&gt;'S'.&lt;/strong&gt; Utility will create the text file required fro training. &lt;/p&gt;  &lt;p&gt;Utility can also be used to create sample images to be used for &lt;a href="http://en.wikipedia.org/wiki/Hidden_Markov_model" target="_blank"&gt;HMM&lt;/a&gt; training as well. If you are interested in HMM following &lt;a title="http://www.bernardotti.it/portal/showthread.php?t=17777" href="http://www.bernardotti.it/portal/showthread.php?t=17777"&gt;http://www.bernardotti.it/portal/showthread.php?t=17777&lt;/a&gt; has a good article on how to use HMM with OpenCV.&lt;/p&gt;  &lt;p&gt;   &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:8677ace1-2231-462f-bc2b-acf8660be0d7" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/OpenCV" rel="tag"&gt;OpenCV&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Haar%20Training" rel="tag"&gt;Haar Training&lt;/a&gt;,&lt;a href="http://technorati.com/tags/HMM" rel="tag"&gt;HMM&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Object%20Detection" rel="tag"&gt;Object Detection&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Computer%20Vision" rel="tag"&gt;Computer Vision&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;  &lt;a href="http://sandarenu.blogspot.com"&gt;Sandarenu's Blog&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23257774-3959332002601612316?l=sandarenu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://sandarenu.blogspot.com/feeds/3959332002601612316/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=23257774&amp;postID=3959332002601612316" title="9 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/3959332002601612316" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/23257774/posts/default/3959332002601612316" /><link rel="alternate" type="text/html" href="http://sandarenu.blogspot.com/2009/03/opencv-haar-training-resources.html" title="OpenCV - Haar Training Resources" /><author><name>Chathurika Sandarenu</name><uri>https://profiles.google.com/101209916173307104239</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-_GuibgE_8eA/AAAAAAAAAAI/AAAAAAAAAAA/NpAoJPoA120/s512-c/photo.jpg" /></author><thr:total>9</thr:total></entry></feed>

