<?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>Anay Kamat's Weblog</title>
	<atom:link href="http://anaykamat.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://anaykamat.com</link>
	<description>Technology, Programming, Career, Fun, Friends And Thoughts</description>
	<pubDate>Mon, 30 Jun 2008 10:11:46 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>Taking a close look at inheritance and closures in Javascript</title>
		<link>http://anaykamat.com/2008/06/30/taking-a-close-look-at-inheritance-and-closures-in-javascript/</link>
		<comments>http://anaykamat.com/2008/06/30/taking-a-close-look-at-inheritance-and-closures-in-javascript/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 10:03:24 +0000</pubDate>
		<dc:creator>Anay</dc:creator>
		
		<category><![CDATA[Programming]]></category>

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

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

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

		<guid isPermaLink="false">http://anaykamat.com/?p=53</guid>
		<description><![CDATA[Let’s play with inheritance and closures in Javascript. Take a look at the following javascript code:


function BaseClass(){
	var id=200;
	this.Id=function(){
		return id;
	}
}

function ChildClass(){
	var id=500;
}

ChildClass.prototype = new BaseClass();
var childObject=new ChildClass();

In Javascript, inheritance is achieved using prototype. When we try to access any member on Javascript object, it first tries to search for the member within that object. If the [...]]]></description>
			<content:encoded><![CDATA[<p>Let’s play with inheritance and closures in Javascript. Take a look at the following javascript code:</p>
<pre name="code" class="js">

function BaseClass(){
	var id=200;
	this.Id=function(){
		return id;
	}
}

function ChildClass(){
	var id=500;
}

ChildClass.prototype = new BaseClass();
var childObject=new ChildClass();
</pre>
<p>In Javascript, inheritance is achieved using prototype. When we try to access any member on Javascript object, it first tries to search for the member within that object. If the member is found, then its accessed otherwise it tries to search for that member in its prototype object.</p>
<p>We make BaseClass the parent class of ChildClass with the following instruction:</p>
<pre name="code" class="js">
ChildClass.prototype = new BaseClass();
</pre>
<p>Notice that ChildClass does not have a method called ‘Id’. When we make a call to method ‘Id’ on childObject, it will see that ChildClass does not have ‘Id’ method and so will take it from its prototype object which is nothing but the object of BaseClass.</p>
<p>Based on this knowledge, what do you think will be the output of the following instruction?</p>
<pre name="code" class="js">
childObject.Id()
</pre>
<p>If you think it should be 500, then you are wrong. The correct answer is 200. This happens due to what is known as Closures. According to a <a title="Javascript Closure Tutorial" href="http://www.javascriptkit.com/javatutors/closures.shtml" target="_blank">tutorial on javascript closures</a> by Morris Johns:</p>
<blockquote><p>"a closure is the local variables for a function - kept alive after the function has returned"</p></blockquote>
<p>To understand how this works in our case, let’s try to understand how javascript actually executes a call to the method ‘Id’ on childObject.</p>
<p>As childObject does not have a method called ‘Id’, it takes that method from its prototype and then executes it. You can imagine that Javascript performs the following steps to execute a call to the method ‘Id’ on childObject.</p>
<pre name="code" class="js">

childObject.Id = ChildClass.prototype.Id;
childObject.Id();
</pre>
<p>But does its mean that in Javascript, it’s not possible to override the values from base class/object at all? Well, It is possible by making a small change to our code. Javascript has a keyword called ‘this’. The ‘this’ keyword points to the object in which the method being called is present. For more information on ‘this’ keyword, refer to the article ‘<a title="this keyword tutorial" href="http://www.quirksmode.org/js/this.html" target="_blank">The this keyword</a>’.</p>
<p>In our current code, we are defining a variable using keyword ‘var’ which makes it local to the function in which it is defined. Due to this, closure comes into picture and call to the method ‘Id’ always prints the value from the BaseClass. To solve this problem, we need to refer to the variable ‘id’ using ‘this’ keyword. This will tell our method to use the value from the object in which the method has been placed. In this way, when the method is placed in ChildClass object, it will print the value of ‘id’ from ChildClass and not from BaseClass. Thus, the modified code which allows overriding is given below:</p>
<pre name="code" class="js">

function BaseClass(){
	this.id=200;
	this.Id=function(){
		return this.id;
	}
}

function ChildClass(){
	this.id=500;
}

ChildClass.prototype = new BaseClass();
var childObject=new ChildClass();
</pre>
]]></content:encoded>
			<wfw:commentRss>http://anaykamat.com/2008/06/30/taking-a-close-look-at-inheritance-and-closures-in-javascript/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Something useful: A WYSIWYG WordPress theme editor</title>
		<link>http://anaykamat.com/2008/06/29/something-useful-a-wysiwyg-wordpress-theme-editor/</link>
		<comments>http://anaykamat.com/2008/06/29/something-useful-a-wysiwyg-wordpress-theme-editor/#comments</comments>
		<pubDate>Sun, 29 Jun 2008 09:03:49 +0000</pubDate>
		<dc:creator>shareapost</dc:creator>
		
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://anaykamat.com/2008/06/29/something-useful-a-wysiwyg-wordpress-theme-editor/</guid>
		<description><![CDATA[
Here&#8217;s an oldie but a goodie. Confounded by trying to track down fancy-looking WordPress themes? Check out this Web-
based theme editor that lets you tweak every nook and cranny of a theme then spit it back to your server to go live. You can add columns, change fonts and backgrounds, even throw in a customizable [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://andreglegg.com/wp-content/uploads/2008/06/wordpress-theme-generator_540x460.png"><img class="alignnone size-medium wp-image-29 alignleft" style="left;" src="http://andreglegg.com/wp-content/uploads/2008/06/wordpress-theme-generator_540x460-300x255.png" alt="" width="300" height="255" /></a></p>
<p>Here&#8217;s an <a class="external-link" href="http://digg.com/software/Wordpress_Theme_Generator">oldie</a> but a goodie. Confounded by trying to track down fancy-looking <a class="external-link" href="http://www.wordpress.org/">WordPress</a> themes? Check out <strong><a class="external-link" href="http://www.yvoschaap.com/wpthemegen/">this Web-</a></strong></p>
<p><strong><a class="external-link" href="http://www.yvoschaap.com/wpthemegen/">based theme editor</a></strong> that lets you tweak every nook and cranny of a theme then spit it back to your server to go live. You can add columns, change fonts and backgrounds, even throw in a customizable tag cloud&#8211;all with no coding experience required. All you need is a little creativity and some working knowledge of drop-down menus.</p>
<p>While some WordPress themes have excellent built-in support for doing this right from the WordPress dashboard,</p>
<p>many more don&#8217;t, and trying to figure out all the little things like text color is made far easier with a WYSIWYG editor than with WordPress&#8217; built-in editing tools.</p>
<p>Advanced users can throw in graphics or design elements they&#8217;ve hosted elsewhere on their server (as long</p>
<p>as it&#8217;s got a URL to link up to), and when all is said and done each bit of the theme can be grabbed as an individual file to whatever theme you&#8217;re currently using. This is an easy way to try out new fonts and colors without making a mess out of your existing style.css file.</p>
<p><!-- Social Bookmarks BEGIN --></p>
<div class="social_bookmark">
<a title="Click me to see the sites." href="http://andreglegg.com/#"><strong><em>Bookmark this!</em></strong></a><br />
</p>
<div class="d28" style="hidden">
<br />
<a href="http://del.icio.us/post?url=http://andreglegg.com/2008/06/27/something-useful-a-wysiwyg-wordpress-theme-editor/&amp;title=Something+useful%3A+A+WYSIWYG+WordPress+theme+editor" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://andreglegg.com/wp-content/plugins/social_bookmarks/images/delicious.png" alt="Add to&nbsp;Del.icio.us" /></a><br />
<a href="http://digg.com/submit?phase=2&amp;url=http://andreglegg.com/2008/06/27/something-useful-a-wysiwyg-wordpress-theme-editor/&amp;title=Something+useful%3A+A+WYSIWYG+WordPress+theme+editor" title="Add to&nbsp;digg"><img class="social_img" src="http://andreglegg.com/wp-content/plugins/social_bookmarks/images/digg.png" alt="Add to&nbsp;digg" /></a><br />
<a href="http://www.facebook.com/sharer.php?u=http://andreglegg.com/2008/06/27/something-useful-a-wysiwyg-wordpress-theme-editor/" title="Add to&nbsp;Facebook"><img class="social_img" src="http://andreglegg.com/wp-content/plugins/social_bookmarks/images/facebook.png" alt="Add to&nbsp;Facebook" /></a><br />
<a href="http://cgi.fark.com/cgi/fark/edit.pl?new_url=http://andreglegg.com/2008/06/27/something-useful-a-wysiwyg-wordpress-theme-editor/&amp;new_comment=Something+useful%3A+A+WYSIWYG+WordPress+theme+editor&amp;new_comment=Something+useful%3A+A+WYSIWYG+WordPress+theme+editor&amp;linktype=Misc" title="Add to&nbsp;Fark"><img class="social_img" src="http://andreglegg.com/wp-content/plugins/social_bookmarks/images/fark.png" alt="Add to&nbsp;Fark" /></a><br />
<a href="http://furl.net/storeIt.jsp?t=Something+useful%3A+A+WYSIWYG+WordPress+theme+editor&amp;u=http://andreglegg.com/2008/06/27/something-useful-a-wysiwyg-wordpress-theme-editor/" title="Add to&nbsp;FURL"><img class="social_img" src="http://andreglegg.com/wp-content/plugins/social_bookmarks/images/furl.png" alt="Add to&nbsp;FURL" /></a><br />
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://andreglegg.com/2008/06/27/something-useful-a-wysiwyg-wordpress-theme-editor/&amp;title=Something+useful%3A+A+WYSIWYG+WordPress+theme+editor" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://andreglegg.com/wp-content/plugins/social_bookmarks/images/google.png" alt="Add to&nbsp;Google Bookmarks" /></a><br />
<a href="http://www.netscape.com/submit/?U=http://andreglegg.com/2008/06/27/something-useful-a-wysiwyg-wordpress-theme-editor/&amp;T=Something+useful%3A+A+WYSIWYG+WordPress+theme+editor" title="Add to&nbsp;Netscape"><img class="social_img" src="http://andreglegg.com/wp-content/plugins/social_bookmarks/images/netscape.png" alt="Add to&nbsp;Netscape" /></a><br />
<a href="http://reddit.com/submit?url=http://andreglegg.com/2008/06/27/something-useful-a-wysiwyg-wordpress-theme-editor/&amp;title=Something+useful%3A+A+WYSIWYG+WordPress+theme+editor" title="Add to&nbsp;reddit"><img class="social_img" src="http://andreglegg.com/wp-content/plugins/social_bookmarks/images/reddit.png" alt="Add to&nbsp;reddit" /></a><br />
<a href="http://slashdot.org/bookmark.pl?url=http://andreglegg.com/2008/06/27/something-useful-a-wysiwyg-wordpress-theme-editor/&amp;title=Something+useful%3A+A+WYSIWYG+WordPress+theme+editor" title="Add to&nbsp;Slashdot"><img class="social_img" src="http://andreglegg.com/wp-content/plugins/social_bookmarks/images/slashdot.png" alt="Add to&nbsp;Slashdot" /></a><br />
<a href="http://www.stumbleupon.com/submit.php?url=http://andreglegg.com/2008/06/27/something-useful-a-wysiwyg-wordpress-theme-editor/&amp;title=Something+useful%3A+A+WYSIWYG+WordPress+theme+editor" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://andreglegg.com/wp-content/plugins/social_bookmarks/images/stumbleupon.png" alt="Add to&nbsp;Stumble Upon" /></a><br />
<a href="http://www.spurl.net/spurl.php?url=http://andreglegg.com/2008/06/27/something-useful-a-wysiwyg-wordpress-theme-editor/&amp;title=Something+useful%3A+A+WYSIWYG+WordPress+theme+editor" title="Add to&nbsp;Spurl"><img class="social_img" src="http://andreglegg.com/wp-content/plugins/social_bookmarks/images/spurl.png" alt="Add to&nbsp;Spurl" /></a><br />
<a href="http://www.technorati.com/faves?add=http://andreglegg.com/2008/06/27/something-useful-a-wysiwyg-wordpress-theme-editor/" title="Add to&nbsp;Technorati"><img class="social_img" src="http://andreglegg.com/wp-content/plugins/social_bookmarks/images/technorati.png" alt="Add to&nbsp;Technorati" /></a><br />
<a href="http://www.thisnext.com/pick/new/submit/sociable/?url=http://andreglegg.com/2008/06/27/something-useful-a-wysiwyg-wordpress-theme-editor/&amp;name=Something+useful%3A+A+WYSIWYG+WordPress+theme+editor" title="Add to&nbsp;ThisNext"><img class="social_img" src="http://andreglegg.com/wp-content/plugins/social_bookmarks/images/thisnext.png" alt="Add to&nbsp;ThisNext" /></a><br />
<a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://andreglegg.com/2008/06/27/something-useful-a-wysiwyg-wordpress-theme-editor/&amp;t=Something+useful%3A+A+WYSIWYG+WordPress+theme+editor" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://andreglegg.com/wp-content/plugins/social_bookmarks/images/yahoo.png" alt="Add to&nbsp;Yahoo My Web" /></a><br />
<br />
<a title="Click me to hide the sites." href="http://andreglegg.com/#">Hide Sites</a>
</div>
</div>
<p><!-- Social Bookmarks END --><br />
<img src="http://feeds.feedburner.com/~r/AndreGlegg/~4/321409924" height="1">
<p><b>Source:</b> <a href="http://andreglegg.com/2008/06/27/something-useful-a-wysiwyg-wordpress-theme-editor/"> Web Development</a></p>
]]></content:encoded>
			<wfw:commentRss>http://anaykamat.com/2008/06/29/something-useful-a-wysiwyg-wordpress-theme-editor/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Is JavaScript more object-oriented than other programming languages?</title>
		<link>http://anaykamat.com/2008/06/28/is-javascript-more-object-oriented-than-other-programming-languages/</link>
		<comments>http://anaykamat.com/2008/06/28/is-javascript-more-object-oriented-than-other-programming-languages/#comments</comments>
		<pubDate>Sat, 28 Jun 2008 16:19:26 +0000</pubDate>
		<dc:creator>shareapost</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://anaykamat.com/2008/06/28/is-javascript-more-object-oriented-than-other-programming-languages/</guid>
		<description><![CDATA[

Like this post? Publish It On Your Own Blog

I started my career as a web developer before the dot.com crash.  I learnt all about HTML, IIS, ASP, SQL Server and JavaScript.  Equipped with the knowledge I built a few dynamic websites and carried my laptop with me to all my interviews and walked [...]]]></description>
			<content:encoded><![CDATA[<p><br></p>
<div align="center">
<b>Like this post? <a href='http://shareapost.com/?action=category&#38;id=19&#38;order=1&#38;blog=615' class='external' target='_blank'>Publish It On Your Own Blog</a></b></div>
<p><br></p>
<p>I started my career as a web developer before the dot.com crash.  I learnt all about HTML, IIS, ASP, SQL Server and JavaScript.  Equipped with the knowledge I built a few dynamic websites and carried my laptop with me to all my interviews and walked out of an interview with a job as a senior web developer.  Before .NET existed, creating scalable and maintainable web application was not easy.  ASP had a VB scripting engine.  It was not scalable and it did its best to glue the web front end design with the backend database access.  Most of the middle tier business logic and data access work had to be done using COM.  Looking back you couldn&#8217;t build an elegant web application without .NET.   JavaScript was used a lot in front-end web development mainly for client-side validation, scrolling tickers and special effects.  But most developers never took Javascript seriously as a programming language.  I know I didn&#8217;t but who would have guess that AJAX gave Javascript a more important position in the world of web development.  Its power is hidden in the browser!<br />
<span></span><br />
If you are not a Javascript developer, you will find writing client-side AJAX application in JavaScript a daunting task.  That was one of the reasons Microsoft extended Javascript so that the Javascript language more closely resembles .NET languages such as C# and VB.NET.  Actually JavaScript is an object-oriented programming language but there are a lot of C# and VB.NET OO type programmers who found coding in JavaScript less palatable.</p>
<p>In fact I read that some argue JavaScript is more object-oriented than C# or VB.NET.  In C# and VB.NET, there are objects and classes and an object is an instance of a class but a class does not exist in its own right.  In JavaScript, there are no classes.  Classes do not exist.  Only objects exist in JavaScript.  One of the best feature of JavaScript is you can easily extend it.  What is your thought on this?</p>
<p><!--adsense--></p>
<p>Douglas Crockford shares his knowledge on JavaScript through his article &#8220;<a href="http://javascript.crockford.com/survey.html" target="_blank">A Survey of the JavaScript Programming Language</a>&#8221; which I think all web developers should read for a more in depth understanding of JavaScript as a programming language.</p>
<p>Here&#8217;s what Douglas Crockford say about JavaScript.</strong></p>
<p>1. JavaScript is not Java.  Neither is it a subset of Java.  JavaScript shares C-family syntax with Java, but at a deeper level it shows greater similarity to the languages Scheme and Self. It is a small language, but it is also a suprisingly powerful and expressive language.</p>
<p>2.  It is not a toy language, but a full programming language with many distinctive properties.</p>
<p>3. JavaScript contains a small set of data types. It has the three primitive types boolean, number, and string and the special values null and undefined. Everything else is variations on the object type.</p>
<p>4. Objects can easily be nested inside of other objects, and expressions can reach into the inner objects.</p>
<p>5. Arrays in JavaScript are hashtable objects.</p>
<p>6. Functions in JavaScript look like C functions, except that they are declared with the function keyword instead of a type.</p>
<p>7. Functions which are used to initialize objects are called constructors. The calling sequence for a constructor is slightly different than for ordinary functions.</p>
<p>8. Named variables are defined with the var statement. When used inside of a function, var defines variables with function-scope. The vars are not accessible from outside of the function.</p>
<div><a href="http://www.addthis.com/bookmark.php" title="Bookmark using any bookmark manager!" target="_blank"><img src="http://s3.addthis.com/button1-bm.gif" width="125" height="16" border="0" /></a></div>
<p><a href="http://feeds.feedburner.com/~a/Ashchuan?a=rgzzyn"><img src="http://feeds.feedburner.com/~a/Ashchuan?i=rgzzyn" border="0"></img></a></p>
<p><img src="http://feeds.feedburner.com/~r/Ashchuan/~4/306661493" height="1">
<p><b>Source:</b> <a href="http://www.ashchuan.com/blog/2008/06/07/is-javascript-more-object-oriented-than-other-programming-languages/">Development</a></p>
]]></content:encoded>
			<wfw:commentRss>http://anaykamat.com/2008/06/28/is-javascript-more-object-oriented-than-other-programming-languages/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Binding HTML Form Fields To Javascript Objects</title>
		<link>http://anaykamat.com/2008/05/22/binding-html-form-fields-to-javascript-objects/</link>
		<comments>http://anaykamat.com/2008/05/22/binding-html-form-fields-to-javascript-objects/#comments</comments>
		<pubDate>Thu, 22 May 2008 15:42:58 +0000</pubDate>
		<dc:creator>Anay</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<category><![CDATA[.net]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[data bindings]]></category>

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

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

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

		<guid isPermaLink="false">http://anaykamat.com/?p=50</guid>
		<description><![CDATA[Consider that I have a object called 'person' with a property called 'Name' which returns me the name of a particular person. I want to assign this object property to a form element such that:

The form element will display the value of object property (In our case, the value of person.Name)
If I change the value [...]]]></description>
			<content:encoded><![CDATA[<p>Consider that I have a object called 'person' with a property called 'Name' which returns me the name of a particular person. I want to assign this object property to a form element such that:</p>
<ol>
<li>The form element will display the value of object property (In our case, the value of person.Name)</li>
<li>If I change the value in form, then it should automatically get assigned to the object property</li>
</ol>
<p>In C#, it could be done by using the following piece of code:</p>
<pre name="code" class="csharp">
nameTextBox.DataBindings.Add(&quot;Text&quot;, person, &quot;Name&quot;);
</pre>
<p>I really like the way DataBinding works and would really like have something like this when I'm working on web applications to bind a object property to input elements in HTML forms. So I decided to write a small javascript that would allow me to bind object properties to form elements. For example, I wanted to write something like this:</p>
<pre name="code" class="html">
&lt;input type=&quot;text&quot; object=&quot;person&quot; property=&quot;firstName&quot; /&gt;
</pre>
<p>Thanks to the power of Javascript and prototype library, I was able to use data binding in html forms using code:</p>
<pre name="code" class="js">

function initializeFormBinding()
{
	var formElements = document.getElementsByTagName(&#039;input&#039;);
	$A(formElements).each(function(formElement)
				{
					Element.extend(formElement);
					initializeFormElement(formElement);
				});
}

function initializeFormElement(formElement)
{
	if (!(formElementHasObjectAttribute(formElement) &amp;amp;&amp;amp; formElementHasPropertyAttribute(formElement)))
		return;
	var objectName = getAttributeValue(formElement,&#039;object&#039;);
	var propertyName = getAttributeValue(formElement,&#039;property&#039;);
	window.eval(&#039;formElement.value = &#039;+objectName+&#039;.&#039;+propertyName);
	window.eval(&#039;formElement.onchange=function(){ &#039;+objectName+&#039;.&#039;+propertyName+&#039; = formElement.value; }&#039;);
}

function formElementHasObjectAttribute(formElement)
{
	return getAttributeValue(formElement,&#039;object&#039;)!=null;
}

function formElementHasPropertyAttribute(formElement)
{
	return getAttributeValue(formElement,&#039;property&#039;)!=null;
}

function getAttributeValue(element, attributeName)
{
	return element.readAttribute(attributeName);
}
</pre>
<p>Lets see how to use this: First, create a javascript object. For example:</p>
<pre name="code" class="js">

var person = {};
person.firstName = &#039;&#039;;
person.lastName = &#039;&#039;;
person.age = &#039;&#039;;
person.country = &#039;&#039;;
</pre>
<p>After that call initializeFormBinding() function using onLoad attribute of body tag. For example:</p>
<pre name="code" class="html">

&lt;body onLoad=&quot;javascript:initializeFormBinding();&quot;&gt;
</pre>
<p>Now, in each of your input elements, put the name of the object in 'object' attribute and name of property in 'property' attribute as follows:</p>
<pre name="code" class="html">

&lt;form&gt;
First Name:
&lt;input type=&quot;text&quot; object=&quot;person&quot; property=&quot;firstName&quot; /&gt;&lt;br&gt;
Last Name:
&lt;input type=&quot;text&quot; object=&quot;person&quot; property=&quot;lastName&quot; /&gt;&lt;br&gt;
Age:
&lt;input type=&quot;text&quot; object=&quot;person&quot; property=&quot;age&quot; /&gt;&lt;br&gt;
Country:
&lt;input type=&quot;text&quot; object=&quot;person&quot; property=&quot;country&quot; /&gt;&lt;br&gt;
&lt;/form&gt;
</pre>
<p>Thats it.... If you initialize properties of person object, you would see those values in respective form elements. On the other hand, if you modify the value in a particular input element then it would get reflected in the corresponding object property. Anybody is free to use this code in their applications.</p>
<p><a title="Application example" href="http://www.anaykamat.com/fileuploads/JavascriptDataBinding.zip">Download a small example application.</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://anaykamat.com/2008/05/22/binding-html-form-fields-to-javascript-objects/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Using JSON in Alfresco WebScripts</title>
		<link>http://anaykamat.com/2008/05/08/using-json-in-alfresco-webscripts/</link>
		<comments>http://anaykamat.com/2008/05/08/using-json-in-alfresco-webscripts/#comments</comments>
		<pubDate>Thu, 08 May 2008 14:44:37 +0000</pubDate>
		<dc:creator>Anay</dc:creator>
		
		<category><![CDATA[Programming]]></category>

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

		<guid isPermaLink="false">http://anaykamat.com/2008/05/08/using-json-in-alfresco-webscripts/</guid>
		<description><![CDATA[In my current project, we are using Alfresco for the content repository and all the extra functionalities required are developed using Webscripts. While working on one functionality, I had to serialize javascript objects to JSON and also deserialize it. For doing this, there is a nice javascript code on Alfresco Wiki for converting the object [...]]]></description>
			<content:encoded><![CDATA[<p>In my current project, we are using <a href="http://www.alfresco.com/" title="Alfresco" target="_blank">Alfresco</a> for the content repository and all the extra functionalities required are developed using <a href="http://http://wiki.alfresco.com/wiki/Web_Scripts" title="Web scripts" target="_blank">Webscripts</a>. While working on one functionality, I had to serialize javascript objects to JSON and also deserialize it. For doing this, there is a nice <a href="http://wiki.alfresco.com/wiki/Web_Scripts_Examples#JSON_example" title="Javascript code" target="_blank">javascript code</a> on Alfresco Wiki for converting the object to JSON and vice versa. But to use it, you need to make some slight modifications to the code.  The original code doesn't generate proper JSON code and also has a syntax error in method to obtain the javascript object back from the JSON string. So here is the proper code for handling JSON:</p>
<pre class="javascript">&nbsp;
<span style="color: #009900; font-style: italic;">/*
   json.js
(modified 2006-09-07): added support for RHINO
(modified 2006-05-02): json.parse, json,stringify added
  USAGE:
  var jsObj = JSON.parse(jsonStr);
  var jsonStr = JSON.stringify(jsObj);
*/</span>
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>!<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">json</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
  <span style="color: #003366; font-weight: bold;">var</span> json = <span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
      <span style="color: #003366; font-weight: bold;">var</span> m = <span style="color: #66cc66;">&#123;</span>
              <span style="color: #3366CC;">'b'</span>: <span style="color: #3366CC;">'b'</span>,
              <span style="color: #3366CC;">'t'</span>: <span style="color: #3366CC;">'t'</span>,
              <span style="color: #3366CC;">'n'</span>: <span style="color: #3366CC;">'n'</span>,
              <span style="color: #3366CC;">'f'</span>: <span style="color: #3366CC;">'f'</span>,
              <span style="color: #3366CC;">'r'</span>: <span style="color: #3366CC;">'r'</span>,
              <span style="color: #3366CC;">'&quot;'</span> : <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\"</span>'</span>,
              <span style="color: #3366CC;">''</span>: <span style="color: #3366CC;">''</span>
          <span style="color: #66cc66;">&#125;</span>,
          s = <span style="color: #66cc66;">&#123;</span>
              array: <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
                  <span style="color: #003366; font-weight: bold;">var</span> a = <span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span>, b, f, i, l = x.<span style="color: #006600;">length</span>, v;
                  <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #66cc66;">&#40;</span>i = <span style="color: #CC0000;">0</span>; i &amp;lt; l; i += <span style="color: #CC0000;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
                      v = x<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>;
                      f = s<span style="color: #66cc66;">&#91;</span><span style="color: #000066; font-weight: bold;">typeof</span> v<span style="color: #66cc66;">&#93;</span>;
                      <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>f<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
                          v = f<span style="color: #66cc66;">&#40;</span>v<span style="color: #66cc66;">&#41;</span>;
                          <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> v == <span style="color: #3366CC;">'string'</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
                              a<span style="color: #66cc66;">&#91;</span>a.<span style="color: #006600;">length</span><span style="color: #66cc66;">&#93;</span> = v;
                              b = <span style="color: #003366; font-weight: bold;">true</span>;
                          <span style="color: #66cc66;">&#125;</span>
                      <span style="color: #66cc66;">&#125;</span>
                  <span style="color: #66cc66;">&#125;</span>
                  <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #3366CC;">'['</span>+a.<span style="color: #006600;">join</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>+<span style="color: #3366CC;">']'</span>;
              <span style="color: #66cc66;">&#125;</span>,
              <span style="color: #3366CC;">'boolean'</span>: <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
                  <span style="color: #000066; font-weight: bold;">return</span> String<span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span>;
              <span style="color: #66cc66;">&#125;</span>,
              <span style="color: #3366CC;">'null'</span>: <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
                  <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #3366CC;">&quot;null&quot;</span>;
              <span style="color: #66cc66;">&#125;</span>,
              number: <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
                  <span style="color: #000066; font-weight: bold;">return</span> isFinite<span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span> ? String<span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span> : <span style="color: #3366CC;">'null'</span>;
              <span style="color: #66cc66;">&#125;</span>,
              object: <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
                  <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
                      <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>x <span style="color: #000066; font-weight: bold;">instanceof</span> Array<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
                          <span style="color: #000066; font-weight: bold;">return</span> s.<span style="color: #006600;">array</span><span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span>;
                      <span style="color: #66cc66;">&#125;</span>
                      <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>x.<span style="color: #006600;">hashCode</span><span style="color: #66cc66;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span> s.<span style="color: #006600;">string</span><span style="color: #66cc66;">&#40;</span>+x.<span style="color: #006600;">toString</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
                      <span style="color: #003366; font-weight: bold;">var</span> a = <span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span>, b, f, i, v;
                      <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #66cc66;">&#40;</span>i <span style="color: #000066; font-weight: bold;">in</span> x<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
                          v = x<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>;
                          f = s<span style="color: #66cc66;">&#91;</span><span style="color: #000066; font-weight: bold;">typeof</span> v<span style="color: #66cc66;">&#93;</span>;
                          <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>f<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
                              v = f<span style="color: #66cc66;">&#40;</span>v<span style="color: #66cc66;">&#41;</span>;
&nbsp;
                              <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> v == <span style="color: #3366CC;">'string'</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
                                  a.<span style="color: #006600;">push</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;&quot;</span>+s.<span style="color: #006600;">string</span><span style="color: #66cc66;">&#40;</span>i<span style="color: #66cc66;">&#41;</span>+<span style="color: #3366CC;">':'</span>+ v+<span style="color: #3366CC;">&quot;&quot;</span><span style="color: #66cc66;">&#41;</span>;
                                  b = <span style="color: #003366; font-weight: bold;">true</span>;
                              <span style="color: #66cc66;">&#125;</span>
                          <span style="color: #66cc66;">&#125;</span>
                      <span style="color: #66cc66;">&#125;</span>
                      <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #3366CC;">'{'</span>+a.<span style="color: #006600;">join</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>+<span style="color: #3366CC;">'}'</span>;
                  <span style="color: #66cc66;">&#125;</span>
                  <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #3366CC;">'null'</span>;
              <span style="color: #66cc66;">&#125;</span>,
              string: <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
                  <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>/<span style="color: #66cc66;">&#91;</span><span style="color: #3366CC;">&quot;x00-x1f]/.test(x)) {
                      x = x.replace(/([x00-x1f<span style="color: #000099; font-weight: bold;">\&quot;</span>])/g, function(a, b) {
                          var c = m[b];
                          if (c) {
                              return c;
                          }
                          c = b.charCodeAt();
                          return 'u00' +
                              Math.floor(c / 16).toString(16) +
                              (c % 16).toString(16);
                      });
                  }
                  return '&quot;</span><span style="color: #3366CC;">' + x + '</span><span style="color: #3366CC;">&quot;';
              }
          };
&nbsp;
     return {
        parse: function(s) {
           try {
              return !(/[^,:{}[]0-9.-+Eaeflnr-u nrt]/.test(s.replace(/&quot;</span><span style="color: #66cc66;">&#40;</span>.|<span style="color: #66cc66;">&#91;</span>^<span style="color: #3366CC;">&quot;])*&quot;</span>/g,<span style="color: #3366CC;">&quot;&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> &amp;&amp; <span style="color: #000066; font-weight: bold;">eval</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'('</span> + s + <span style="color: #3366CC;">')'</span><span style="color: #66cc66;">&#41;</span>;
           <span style="color: #66cc66;">&#125;</span> <span style="color: #000066; font-weight: bold;">catch</span> <span style="color: #66cc66;">&#40;</span>e<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
              <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span>;
           <span style="color: #66cc66;">&#125;</span>
        <span style="color: #66cc66;">&#125;</span>,
        stringify: s.<span style="color: #006600;">object</span>
     <span style="color: #66cc66;">&#125;</span>;
  <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre>
<p>Here is how to use this code to serialize a javascript object:</p>
<pre class="javascript">&nbsp;
	o=<span style="color: #66cc66;">&#123;</span><span style="color: #66cc66;">&#125;</span>;
	o.<span style="color: #000066;">name</span> = <span style="color: #3366CC;">&quot;Name&quot;</span>;
	o.<span style="color: #006600;">id</span> = <span style="color: #CC0000;">1</span>;
	j = json.<span style="color: #006600;">stringify</span><span style="color: #66cc66;">&#40;</span>o<span style="color: #66cc66;">&#41;</span>;</pre>
<p>Also, to obtain the object back from JSON string, you can use following method:</p>
<pre class="javascript">&nbsp;
	x = json.<span style="color: #006600;">parse</span><span style="color: #66cc66;">&#40;</span>j<span style="color: #66cc66;">&#41;</span>;</pre>
]]></content:encoded>
			<wfw:commentRss>http://anaykamat.com/2008/05/08/using-json-in-alfresco-webscripts/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Humorous Video: Agile vs. Waterfall</title>
		<link>http://anaykamat.com/2008/03/12/humorous-video-agile-vs-waterfall/</link>
		<comments>http://anaykamat.com/2008/03/12/humorous-video-agile-vs-waterfall/#comments</comments>
		<pubDate>Wed, 12 Mar 2008 15:52:48 +0000</pubDate>
		<dc:creator>Anay</dc:creator>
		
		<category><![CDATA[Funny]]></category>

		<category><![CDATA[My Thoughts]]></category>

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

		<guid isPermaLink="false">http://anaykamat.com/2008/03/12/humorous-video-agile-vs-waterfall/</guid>
		<description><![CDATA[Many big guys have participated in discussions regarding agile and waterfall model. Hold on big guys, look at this video where two kids have nicely presented the debate on agile vs. waterfall.


]]></description>
			<content:encoded><![CDATA[<p>Many big guys have participated in discussions regarding agile and waterfall model. Hold on big guys, look at this video where two kids have nicely presented the debate on agile vs. waterfall.</p>
<p>
<object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/XokJLWp7icI&hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/XokJLWp7icI&hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://anaykamat.com/2008/03/12/humorous-video-agile-vs-waterfall/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Is it really true that something is better than nothing?</title>
		<link>http://anaykamat.com/2008/01/10/is-it-really-true-that-something-is-better-than-nothing/</link>
		<comments>http://anaykamat.com/2008/01/10/is-it-really-true-that-something-is-better-than-nothing/#comments</comments>
		<pubDate>Thu, 10 Jan 2008 07:19:25 +0000</pubDate>
		<dc:creator>Anay</dc:creator>
		
		<category><![CDATA[My Thoughts]]></category>

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

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

		<guid isPermaLink="false">http://anaykamat.com/2008/01/10/is-it-really-true-that-something-is-better-than-nothing/</guid>
		<description><![CDATA[They say that something is better than nothing. To some extent even I don’t disagree with this statement. But sometimes, you might end up collecting a lot of that ‘something’ which may not serve your purpose at all. You might end up collecting so much useless information and advice that you will actually feel that [...]]]></description>
			<content:encoded><![CDATA[<p>They say that something is better than nothing. To some extent even I don’t disagree with this statement. But sometimes, you might end up collecting a lot of that ‘something’ which may not serve your purpose at all. You might end up collecting so much useless information and advice that you will actually feel that actually ‘nothing’ is better than lot of useless ‘something’. When we say that time is important, we should make sure that we save ourselves from these useless ‘something’ and focus on things that we really need.</p>
<p>Being a software application developer, I would like to consider what happens in a typical software industry. What is expected from a software project is nothing but working software. But still, most of companies end up using so called ‘up front’ design approach. In this approach lot of time is spent in designing E-R diagrams or UML diagrams including text documentation. Here, I’m not saying that documentation is useless, but considering the effort that is required to change them once the requirement or design decision is changed, it does feel like a big waste of time. There is another approach in developing software known as Test Driven Development (TDD). In this approach, unit tests are written before the code that implements the required functionality. These tests are written such that:<br />
1. They explain the function of unit under the test<br />
2. The broken functionality is identified automatically as soon as possible</p>
<p>Text based documentation can serve the purpose stated in point 1 but fails to identify broken functionalities automatically. Thus it’s better to have unit tests than to have documentation in text.</p>
<p>Similarly, in case of online forums, threads are created asking for help. But most of the time I see replies like “Yes I agree” or “Wow!!! That was great”.  I have seen replies that advice the creator of the thread to search Google for more information. Such replies don’t add any real value to the owner of the thread or to other readers. If you want to give your opinion then make sure that you also add value to the thread by recommending your own solution. This way, every reply to a thread will improve the discussion further.</p>
<p>Another case I would like to consider is the case of websites which are created only to make money. Such websites are known as virtual real estates and use PLR articles as content. This leads to hundreds of websites having similar content floating in cyberspace. Another fact is that, most of the time such websites are created by people who knows nothing about the topic. The articles are mostly ghostwritten or taken from PLR sources or article directories. Google knows that such duplicate content doesn’t add any value to internet users and thus, hides the results containing duplicate information.</p>
<p>Whatever may be the case or purpose, we should remember that whatever we do, even if it’s little, should add value to our work. Something is better than nothing holds true only when that ‘something’ has a value and not otherwise.</p>
]]></content:encoded>
			<wfw:commentRss>http://anaykamat.com/2008/01/10/is-it-really-true-that-something-is-better-than-nothing/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Active mind and software development</title>
		<link>http://anaykamat.com/2008/01/08/active-mind-and-software-development/</link>
		<comments>http://anaykamat.com/2008/01/08/active-mind-and-software-development/#comments</comments>
		<pubDate>Tue, 08 Jan 2008 07:20:06 +0000</pubDate>
		<dc:creator>Anay</dc:creator>
		
		<category><![CDATA[My Thoughts]]></category>

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

		<guid isPermaLink="false">http://anaykamat.com/2008/01/08/active-mind-and-software-development/</guid>
		<description><![CDATA[Every software developer knows the importance of his or her own mind. Well, I feel that software development itself is an excellent mind game where an active mind can help you to drive the design and development of your software effectively.
If you are involved in the development of software for a domain where requirements keep [...]]]></description>
			<content:encoded><![CDATA[<p>Every software developer knows the importance of his or her own mind. Well, I feel that software development itself is an excellent mind game where an active mind can help you to drive the design and development of your software effectively.</p>
<p>If you are involved in the development of software for a domain where requirements keep changing every second, a developer needs to come up with new and new ideas to prevent the development process from stalling. To think of new ideas, you need to keep your mind focused on the problem which is difficult if your mind is not active.</p>
<p>To keep your mind active all the time, you basically need to keep it engaged in some activities so that your mind won’t have to stay idle. Let’s look at some activities that can keep your mind active and engaged for most of the time.</p>
<p><strong>1. Reading:</strong> Everybody knows the importance of reading. Apart from keeping your mind engaged, it also helps you to learn new concepts, and to come up with some new ideas. You could read literature on almost any topic. Normally, whenever I get tired after long hours of software development, I like to read some story books or newspaper. It distracts my mind for a short time from the puzzles I was trying to solve while coding and thus, making it fresh again after some time.</p>
<p><strong>2. Writing:</strong> Some people think that writing is generally a physical exercise. Just try to write some original articles or essays and you will come to know how much you need to think. But what to write? You can keep your personal diary where you can write your daily experience or a weblog where you can post your thoughts or ideas which could help others. If can even try to write your own poems or songs even if you haven’t written one before.</p>
<p><strong>3. Playing mind games:</strong> Games like chess or sudoku are quite challenging by nature. You can even play these games without moving away from your computer (lol). Don’t worry if you are not expert in chess or sudoku as we are trying to play just for the sake of keeping our mind engaged.</p>
<p><strong>4. Observing mother nature:</strong> If you are really bored of reading, writing or even playing then you can just hang out in some nice garden and appreciate the beautify of our mother nature. Trust me, it works!!!!! Once when I was struggling to come up with an algorithm to write one game, Alan had advised me to go out and look at birds and trees. I listened to his advice and soon after that, my problem was solved.</p>
<p>Here I’ve mentioned the activities that I follow to keep my mind active. Sometimes, I even do meditation for around 10 minutes. Don’t just limit yourself to these activities for keeping your mind engaged. Do whatever you like but make sure that your mind won’t stay idle.</p>
]]></content:encoded>
			<wfw:commentRss>http://anaykamat.com/2008/01/08/active-mind-and-software-development/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Professionalism: A misunderstood term</title>
		<link>http://anaykamat.com/2007/12/30/professionalism-a-misunderstood-term/</link>
		<comments>http://anaykamat.com/2007/12/30/professionalism-a-misunderstood-term/#comments</comments>
		<pubDate>Sun, 30 Dec 2007 09:49:24 +0000</pubDate>
		<dc:creator>Anay</dc:creator>
		
		<category><![CDATA[Career]]></category>

		<category><![CDATA[My Thoughts]]></category>

		<guid isPermaLink="false">http://anaykamat.com/2007/12/30/professionalism-a-misunderstood-term/</guid>
		<description><![CDATA[Everyday, thousands of students join engineering colleges thinking that they are going to be “Professionals” after completing around four years of course. Once I asked some students the reason behind joining computer engineering in college. One of the answers that I got was “To become professional software developer”. On the other hand, I have noticed [...]]]></description>
			<content:encoded><![CDATA[<p>Everyday, thousands of students join engineering colleges thinking that they are going to be “Professionals” after completing around four years of course. Once I asked some students the reason behind joining computer engineering in college. One of the answers that I got was “To become professional software developer”. On the other hand, I have noticed students appearing for interviews wearing formal clothes just to show that they are professionals. Not only students, but many times, people working in software companies develop a culture where they won’t call you professional unless you are going to wear formal clothes.</p>
<p>I know these experiences are little funny but they clearly show how people have misunderstood the term “Professional” and “Professionalism”. Once I met one of my friends during office timings and noticed that he was trying to be too serious in his approach. At his home, he used to be pretty humorous. When I asked him about the reason behind his change of behavior, he said he needs to be serious to look professional. So what exactly is professionalism?</p>
<p>While at work, it’s true that you need to follow some dress code and work ethics but that doesn’t mean that being professional is only limited to acting serious and wearing formal clothes. According to an article titled ‘<a href="http://www.developerdotstar.com/mag/articles/software_professionalism.html" target="_blank">What is a professional programmer?</a>’ by Sarah George, being professional is to have set of qualities like trustworthiness, teamwork, leadership, communication, constant updating of skills, an interest in minimizing risks and accountability.</p>
<p>I completely agree with Sarah George. However, now I have a new question in my mind. Are our professional colleges trying to develop these qualities in students or are they trying to make them pseudo professional by training them with false concepts. When I raised this question in front of related authorities, they simply said it’s the fault of students that they don’t take any interest to learn by themselves.</p>
<p>There are many reasons behind misunderstanding the meaning of professionalism. But it’s our responsibility to leave such misunderstandings behind and develop the qualities described by Sarah George. This will not only help us in developing our career but will also help in the progress of our nation, world and the whole human race.</p>
]]></content:encoded>
			<wfw:commentRss>http://anaykamat.com/2007/12/30/professionalism-a-misunderstood-term/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Fring with Airtel GPRS</title>
		<link>http://anaykamat.com/2007/12/30/fring-with-airtel-gprs/</link>
		<comments>http://anaykamat.com/2007/12/30/fring-with-airtel-gprs/#comments</comments>
		<pubDate>Sun, 30 Dec 2007 06:00:32 +0000</pubDate>
		<dc:creator>Anay</dc:creator>
		
		<category><![CDATA[Technologies]]></category>

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

		<guid isPermaLink="false">http://anaykamat.com/2007/12/30/fring-with-airtel-gprs/</guid>
		<description><![CDATA[Fring is an application for mobile phones that allows you to make calls using VoIP. Yesterday I decided to try it out myself. I had mentioned in one of my post that it is possible to make free calls with fring if you have access to public Wi-Fi hotspots, but in Goa, there are no [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.fring.com/" target="_blank">Fring</a> is an application for mobile phones that allows you to make calls using VoIP. Yesterday I decided to try it out myself. I had mentioned in one of my <a href="http://anaykamat.com/2007/12/24/make-free-calls-from-your-mobile-phone-even-without-sim-card" target="_blank">post</a> that it is possible to make free calls with fring if you have access to public Wi-Fi hotspots, but in Goa, there are no such public Wi-Fi hotspots. On the other hand, my Nokia N72 doesn’t have support for Wi-Fi networks. So I had to rely on GPRS connection.</p>
<p>If you refer to Fring website, it mentions that the application is compatible with Symbian from version 8 to 9.2. Thus it can work on my Nokia N72. I activated Airtel GPRS service on my handset and downloaded fring directly on my mobile from its site.</p>
<p>After installation, fring asked me to register as a new user. Then, I had to select one VoIP service provider from Skype, MSN Messenger, ICQ, SIP, Google Talk, Twitter, Yahoo and AIM. I have been using skype for long time to make VoIP calls so I selected Skype. After that, fring asked me to login to my skype account with skype screen name and password. That’s it!!!! Now fring was ready for use on my handset.</p>
<p>Fring presented me with list of contacts which were taken from my phone book and skype contact list. From here I could have called my friends who were online on Skype at that point of time. If you try to call a person from your phone book, then you will be presented with options of either Direct GSM call or SkypeOut call.</p>
<p>I wanted to try out fring by making a real call. So I requested my father to call me from skype. Soon, my cell started ringing and Fring showed me that the call is from my father. I was able to talk to my father normally without any problems.</p>
<p>But one thing I noticed is that, I was not able to hear my father’s voice instantaneously. There was a small time gap so I felt as if I’m using a walkie-talkie.</p>
<p>If you want to call your friends at a very cheap rate then should try out fring yourself. Hopefully in near future, just like broadband, the number of public Wi-Fi hotspots in India will increase and then people will be able to use applications like Fring with better voice quality.</p>
]]></content:encoded>
			<wfw:commentRss>http://anaykamat.com/2007/12/30/fring-with-airtel-gprs/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
