<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Your mind to my mind, your thoughts to mine</title>
	<atom:link href="http://www.jeevanchaaya.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.jeevanchaaya.com</link>
	<description>"An Image of My Life" blog series</description>
	<pubDate>Tue, 18 May 2010 04:38:14 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>Thinking Globally  - Tellurium and Internationalization</title>
		<link>http://www.jeevanchaaya.com/2010/05/17/thinking-globally-tellurium-and-internationalization/</link>
		<comments>http://www.jeevanchaaya.com/2010/05/17/thinking-globally-tellurium-and-internationalization/#comments</comments>
		<pubDate>Tue, 18 May 2010 04:04:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[groovy]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[test]]></category>

		<category><![CDATA[tellurium]]></category>

		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.jeevanchaaya.com/?p=180</guid>
		<description><![CDATA[Introduction
There are more than 6,000 languages in use around the world today. So imagine the vast array of characters your application is introduced to. Any software product that involves users across the globe, has a very important requirement - the ability of users to interact with it in their own specific language, locale or cultural [...]]]></description>
			<content:encoded><![CDATA[<h3><strong>Introduction</strong></h3>
<p>There are more than 6,000 languages in use around the world today. So imagine the vast array of characters your application is introduced to. Any software product that involves users across the globe, has a very important requirement - the ability of users to interact with it in their own specific language, locale or cultural conventions. There are two main concepts that facilitate a software for international use</p>
<ul>
<li>Internationalization - The software is designed such that it can be used in multiple geographic locations. This involves requirements such as requiring all messages and constants to be stored externally and not hard coded. Date, time or currency should not be assumed to have a certain convention but instead should be generic and manageable.</li>
<li>Localization - This is the process of adapting internationalized software to the user needs in a particular region or locale. This includes ability to translate.</li>
</ul>
<p><span id="more-180"></span></p>
<p>The following cultural conventions impact internationalization (i18n for short).</p>
<ul>
<li> language and punctuations</li>
<li>date and time</li>
<li>numbers</li>
<li>currency</li>
</ul>
<h3><strong>ASCII and beyond</strong></h3>
<p>Character handling is also a very import aspect of i18n. The first step here is to be able to encode or represent alphabets. Initially when ASCII was introduced it could be stored in 7 bits and was used to represent a character using a number between 32 and 127. This was great until the world became a smaller place to live in, and new language started to be used in the world of computer science. This is where Unicode came into picture and was an effort to create a character set to be able to handle every character on the planet. It is a 16 bit character set. In Unicode every letter has what is called a code point as this : U+. This Unicode had to be stored, thus introducing the concept of encoding. UTF-8 provides a way to store the code points in 8 bit bytes. Anyways the story of Unicode is our cup of tea for another day.</p>
<h3><strong>Designing Tellurium with Internationalization in mind</strong></h3>
<p>Now let me get back to the point, One of the key features of 0.7.0 version of Tellurium is it&#8217;s ability to be used effectively in multiple locales. Tellurium provides a very effective internationalization functionality.</p>
<p>First let us look at the key Java i18n modules that we use to implement Internationalization.</p>
<p><a href="http://www.jeevanchaaya.com/techvibe/wp-content/uploads/2010/05/i18narchitecture-1.jpg"><img class="aligncenter size-full wp-image-181" title="i18narchitecture-1" src="http://www.jeevanchaaya.com/techvibe/wp-content/uploads/2010/05/i18narchitecture-1.jpg" alt="" width="500" height="375" /></a></p>
<p>Every Locale is represented by a String language code and String country code. ResourceBundles have key value combination with the key representing a bundle name and the value is the particular ResourceBundle.  NumberFormat, MessageFormat and DateFormat provides internationalization support for numbers,  messages and dates respectively.</p>
<p>Tellurium uses the following design strategy to provide internationalization</p>
<p><a href="http://www.jeevanchaaya.com/techvibe/wp-content/uploads/2010/05/i18narchitecture-2.jpg"><img class="aligncenter size-full wp-image-182" title="i18narchitecture-2" src="http://www.jeevanchaaya.com/techvibe/wp-content/uploads/2010/05/i18narchitecture-2.jpg" alt="" width="500" height="375" /></a></p>
<ul>
<li> ResourceBundleSource handles resource bundles that are defined as properties files. Every Locale has an associated properties file, like for ex: DefaultMessagesBundle_en_US. All messages that need to be internationalized are defined separately in the properties file.  The ResourceBundleSource maintains a map of bundles to locales.</li>
<li>ResourceBundle handles internationalization for all other data types in addition to the message  management provided by ResourceBundleSource.</li>
<li>IResourceBundle provides the polymorphism required to provide access to resource bundles.</li>
</ul>
<p>These provide a very effective way to run tests all within the confines of one&#8217;s own locale, it cannot get much simpler than that. Another great aspect of internationalization in tellurium is that users can extend ResourceBundle and provide their own default implementation very easily.</p>
<p>If you want to know more about usages of i18n Functionality in Tellurium check out the latest <a title="Tellurium User Guide" href="http://code.google.com/p/aost/downloads/detail?name=tellurium-reference-0.7.0.pdf&amp;can=2&amp;q=  ">Tellurium  User Guide.</a></p>
<h3><strong>Resources</strong><a href="[http://code.google.com/p/aost/"><br />
</a></h3>
<ul>
<li><a href="[http://code.google.com/p/aost/"> Tellurium Project Home</a></li>
<li><a href="http://code.google.com/p/aost/wiki/Tellurium070Released ">Tellurium 0.7.0</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.jeevanchaaya.com/2010/05/17/thinking-globally-tellurium-and-internationalization/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Call to Open Source Developers to work on Tellurium</title>
		<link>http://www.jeevanchaaya.com/2010/04/16/call-to-open-source-developers-to-work-on-tellurium/</link>
		<comments>http://www.jeevanchaaya.com/2010/04/16/call-to-open-source-developers-to-work-on-tellurium/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 19:22:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.jeevanchaaya.com/2010/04/16/call-to-open-source-developers-to-work-on-tellurium/</guid>
		<description><![CDATA[I am diverting myself from my usual slew of technical posts to advertise a great open source opportunity to fellow enthusiasts out there. I have been an active player in a very interesting open source project called Tellurium.
In simple terms Tellurium is an automated testing framework for web applications. Imagine a selenium like framework but [...]]]></description>
			<content:encoded><![CDATA[<p>I am diverting myself from my usual slew of technical posts to advertise a great open source opportunity to fellow enthusiasts out there. I have been an active player in a very interesting open source project called Tellurium.</p>
<p>In simple terms Tellurium is an automated testing framework for web applications. Imagine a selenium like framework but without many of the disadvantages of selenium, imagine the freedom from having to use long and unwieldly XPath expressions, imagine tests robust enough to maintain themselves as the UI changes.</p>
<p>For a developer imagine the awesomeness and goodness that comes out of using Groovy and JQuery, intrigued?</p>
<p>Come join us, by checking out this link <a href="http://code.google.com/p/telluriumsource/wiki/TelluriumCallForParticipation">http://code.google.com/p/telluriumsource/wiki/TelluriumCallForParticipation</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeevanchaaya.com/2010/04/16/call-to-open-source-developers-to-work-on-tellurium/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Licensing agreements, the trials and tribulations</title>
		<link>http://www.jeevanchaaya.com/2010/04/12/licensing-agreements-the-trials-and-tribulations/</link>
		<comments>http://www.jeevanchaaya.com/2010/04/12/licensing-agreements-the-trials-and-tribulations/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 22:22:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[license lgpl gpl]]></category>

		<guid isPermaLink="false">http://www.jeevanchaaya.com/?p=175</guid>
		<description><![CDATA[Licensing in open source has seen it&#8217;s share of trials and tribulations. To start off let me mention some major licenses that are making it&#8217;s rounds in the open source community:

MIT/BSD - this is a very liberal license that allows redistribution even without the source.
GPL - copy left license. This is a way to negate [...]]]></description>
			<content:encoded><![CDATA[<p>Licensing in open source has seen it&#8217;s share of trials and tribulations. To start off let me mention some major licenses that are making it&#8217;s rounds in the open source community:</p>
<ul>
<li>MIT/BSD - this is a very liberal license that allows redistribution even without the source.</li>
<li>GPL - copy left license. This is a way to negate copyrights to encourage collaborative development. IT essentially grants the following rights - anyone can use the code, anyone can redistribute the code as long as the source is included and distribution license remains GPL, any derivative work created of the code needs to be licensed under GPL.</li>
<li>LGPL - weaker copy left license, it allows lesser restrictions on making derivative work open source when there is a linking between non GPL and non open source software.</li>
<li>Apache License</li>
</ul>
<p><span id="more-175"></span></p>
<p>Now the project I work on is a closed source project primarily because thats the way the client wants it. I strongly agree with Paul Ramsey in that open source should be not about the product itself but about the community arranged around them.</p>
<p>The members of the team i belong to have contributed a lot to open source java. But restrictions around our project that is servicing a particular client should not prevent us from having to not use open source. I like the LGPL licensing mainly because it allows us to work around some of the restrictions of GPL.  But a lot of open source software these days are focussing more on GPL, which is in a way a good thing to prevent commercial closed source competitors from taking the IP.But I still do wonder, what happened to the real free and open software revolution that started off with Unix.</p>
<p>But is there an end  to this licensing dilemma? I dont think so, maybe a dual licensing scheme might help, maybe a dynamic licensing with a lesser restriction in exchange for contribution to the project might help.  Only time will tell how this will end.</p>
<p>These are some links that i referred to for this post</p>
<ul>
<li>http://www.smashingmagazine.com/2010/03/24/a-short-guide-to-open-source-and-similar-licenses/</li>
<li>http://blog.cleverelephant.ca/2010/04/on-road-to-damascus-gpl-to-bsd.html</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.jeevanchaaya.com/2010/04/12/licensing-agreements-the-trials-and-tribulations/feed/</wfw:commentRss>
		</item>
		<item>
		<title>DYK Fact #1</title>
		<link>http://www.jeevanchaaya.com/2010/02/17/dyk-fact-1/</link>
		<comments>http://www.jeevanchaaya.com/2010/02/17/dyk-fact-1/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 16:58:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.jeevanchaaya.com/2010/02/17/dyk-fact-1/</guid>
		<description><![CDATA[I think it is time I start of Did you know facts to keep my blog site updated regularly. Let&#8217;s start with a Java one

Did Ya Know that Java has virtual functions?


A virtual function is a member function that you expect to be redefined in derived classes. So yes Java does have virtual functions. Although [...]]]></description>
			<content:encoded><![CDATA[<p>I think it is time I start of Did you know facts to keep my blog site updated regularly. Let&#8217;s start with a Java one</p>
<ul>
<li><em>Did Ya Know that Java has virtual functions?</em></li>
</ul>
<blockquote>
<p>A virtual function is a member function that you expect to be redefined in derived classes. So yes Java does have virtual functions. Although functions in Java are virtual by default. But in essence what we cann method overriding is actually virtual functions. In order to prevent a method from being vitual just declare it as final.</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.jeevanchaaya.com/2010/02/17/dyk-fact-1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Connection refused</title>
		<link>http://www.jeevanchaaya.com/2010/01/12/connection-refused/</link>
		<comments>http://www.jeevanchaaya.com/2010/01/12/connection-refused/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 20:18:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.jeevanchaaya.com/?p=172</guid>
		<description><![CDATA[Have you ever encountered a &#8220;Connection Refused&#8221; error and beaten your head around to figure out what in the world was happening? Well I found myself sailing in the same boat, just 6 hours before a client demo, a day after I had an outpatient surgery.

What was the issue?

Our application was a web based GIS [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever encountered a &#8220;Connection Refused&#8221; error and beaten your head around to figure out what in the world was happening? Well I found myself sailing in the same boat, just 6 hours before a client demo, a day after I had an outpatient surgery.</p>
<p><span id="more-172"></span></p>
<p><strong>What was the issue?<br />
</strong></p>
<p>Our application was a web based GIS decision support system. We have a web mapping server that renders out WMS and WFS responses. We have a caching layer, a servlet that caches responses from the web mapping server and connects to it through a URLConnection. Our application is SSL based i.e. we use https. We had a demo scheduled for a client when lo and behold Mr murphy strikes.</p>
<p>We were able to access our application, login to it and perform most of the task. But when accessing a particular cachable GIS layer, bada bing!! &#8230; we got the notorious</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">java.<span style="color: #006633;">net</span>.<span style="color: #003399;">ConnectException</span><span style="color: #339933;">:</span> <span style="color: #003399;">Connection</span> refused</pre></div></div>

<p><strong>So how did we tame the beast</strong> ?</p>
<p>So we followed the myriads of steps described in tons of forums:</p>
<p>1. Check apache&#8217;s httpd.conf (or ssl.conf if you have SSL configured) configuration and check if the VirtualHost matches the Listen address and port</p>
<p>2. Check if the JkWorkers is defined correctly</p>
<p>3. Check if JkMount mounts the addresses correctly matching the right URL to the right Runner that is defined in the workers file.</p>
<p>Finally we hit jackpot when we found out the real reason for the issue - our hosts table was screwy with incorrect IP address settings</p>
<p>THis leads us to another mystery &#8212; how did everything else work and the failure happened only when URLCOnnection was invoked ?? , Sherlock Holmes wanna take the case??</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeevanchaaya.com/2010/01/12/connection-refused/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
