<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Js Maniac</title>
	
	<link>http://eldar.djafarov.com</link>
	<description>Eldar Djafarov's blog</description>
	<lastBuildDate>Wed, 02 Sep 2009 06:51:18 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/JsManiac" /><feedburner:info uri="jsmaniac" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>JS features you better know 1</title>
		<link>http://feedproxy.google.com/~r/JsManiac/~3/3kmfTfwkNaU/js-features-you-better-know-1</link>
		<comments>http://eldar.djafarov.com/post/js-features-you-better-know-1#comments</comments>
		<pubDate>Tue, 01 Sep 2009 11:04:02 +0000</pubDate>
		<dc:creator>Eldar Djafarov</dc:creator>
				<category><![CDATA[post]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://eldar.djafarov.com/?p=116</guid>
		<description><![CDATA[In scope of functions arguments is local variable provides some nice features we can use in our code. First you don&#8217;t need to define any parameters for a function. You can just use arguments and will get arguments passed to the function.

    function sum(){
        var [...]]]></description>
			<content:encoded><![CDATA[<p>In scope of functions <strong>arguments</strong> is local variable provides some nice features we can use in our code. First you don&#8217;t need to define any parameters for a function. You can just use arguments and will get arguments passed to the function.</p>
<pre class="brush: jscript;">
    function sum(){
        var ret = 0;
        for (var i = 0; i &lt; arguments.length; ++i) {
            ret += arguments[i];
        }
        return ret;
    }

    sum(1, 2, 3) //returns 6
</pre>
<p>Worth noting though that although we use arguments like an array, it&#8217;s not an actual javascript Array &#8212; it&#8217;s just an object. So you can&#8217;t do join(), pop(), push(), slice() and so forth.(You can convert it to a real array if you want: &#8220;var argArray = Array.prototype.slice.call(arguments);&#8221; )</p>
<p>arguments.callee property refers to the function that is currently running. It provides a way for unnamed function to refer to itself. This allows to make nice recursions:</p>
<pre class="brush: jscript;">
    function fibonacci(){
        if (arguments.length == 1 &amp;&amp; arguments[0] &gt; 2) {
            return arguments.callee(arguments[0] - 2, [0, 1]);
        }
        if (arguments[0] == 0) {
            return arguments[1];
        }
        else {
            var len = arguments[1].length;
            return arguments.callee(arguments[0] - 1, arguments[1].concat(arguments[1][len - 1] + arguments[1][len - 2]));
        }
    }
    fibonacci(7) //returns [0, 1, 1, 2, 3, 5, 8]
</pre>
<p>Notice that &#8220;callee&#8221; property allows to do recursion with anonymous functions.</p>
<p>arguments.callee.caller property refers to a method called your function. This could be useful for example if you want to forbid public class creating and allow it for Factory only:</p>
<pre class="brush: jscript;">
    function MyClass(){
        if (arguments.callee.caller != MyFactory.createObject) {
            throw new Error(&quot;There is no public constructor for MyClass.&quot;);
        }
        this.myproperty = &quot;hello world&quot;;
    }
</pre>
<img src="http://feeds.feedburner.com/~r/JsManiac/~4/3kmfTfwkNaU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://eldar.djafarov.com/post/js-features-you-better-know-1/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://eldar.djafarov.com/post/js-features-you-better-know-1</feedburner:origLink></item>
		<item>
		<title>“Even Faster Websites”</title>
		<link>http://feedproxy.google.com/~r/JsManiac/~3/8Lt_a6Rbh7g/even-faster-websites</link>
		<comments>http://eldar.djafarov.com/post/even-faster-websites#comments</comments>
		<pubDate>Thu, 27 Aug 2009 09:21:41 +0000</pubDate>
		<dc:creator>Eldar Djafarov</dc:creator>
				<category><![CDATA[post]]></category>

		<guid isPermaLink="false">http://eldar.djafarov.com/?p=58</guid>
		<description><![CDATA[OReily Even Faster Websites is a great book. It has some Javascript perfomance hints in its &#8220;Writing Efficient JavaScript&#8221; part. Here are conclusions:

Use local variables
Avoid with statement
do not use too deep properies, redefine them with locals if possible
 Use the if statement when:
— There are no more than two discrete values for which to test.
— [...]]]></description>
			<content:encoded><![CDATA[<p>OReily Even Faster Websites is a great book. It has some Javascript perfomance hints in its &#8220;Writing Efficient JavaScript&#8221; part. Here are conclusions:</p>
<ul>
<li>Use local variables</li>
<li>Avoid <strong>with </strong>statement</li>
<li>do not use too deep properies, redefine them with locals if possible</li>
<li> Use the <strong>if</strong> statement when:<br />
— There are no more than two discrete values for which to test.<br />
— There are a large number of values that can be easily separated into ranges.</li>
<li>Use the <strong>switch </strong>statement when:<br />
— There are more than two but fewer than 10 discrete values for which to test.<br />
— There are no ranges for conditions because the values are nonlinear.</li>
<li> Use <strong>array lookup</strong> when:<br />
— There are more than 10 values for which to test.<br />
— The results of the conditions are single values rather than a number of actions<br />
to be taken.</li>
<li>To improve perfomance of loops decrement the iterator toward 0 rather than incrementing toward the total length.</li>
</ul>
<img src="http://feeds.feedburner.com/~r/JsManiac/~4/8Lt_a6Rbh7g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://eldar.djafarov.com/post/even-faster-websites/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://eldar.djafarov.com/post/even-faster-websites</feedburner:origLink></item>
		<item>
		<title>take control over class constructor</title>
		<link>http://feedproxy.google.com/~r/JsManiac/~3/Np4URjMkSvg/take-control-over-class-constructor</link>
		<comments>http://eldar.djafarov.com/post/take-control-over-class-constructor#comments</comments>
		<pubDate>Fri, 21 Aug 2009 10:40:14 +0000</pubDate>
		<dc:creator>Eldar Djafarov</dc:creator>
				<category><![CDATA[post]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://eldar.djafarov.com/?p=72</guid>
		<description><![CDATA[Javascript doesn&#8217;t give us simple way to control object constructing. We have new operator, but we cannot control it. Unless we do some magic.
Lets assume we have an observer instance, few classes and we want every instance of this classes to be &#8216;observed&#8217;.

var observer=[]// simplest ever
function foo(){
     this.foo=&#34;foo&#34;;
    [...]]]></description>
			<content:encoded><![CDATA[<p>Javascript doesn&#8217;t give us simple way to control object constructing. We have new operator, but we cannot control it. Unless we do some magic.<br />
Lets assume we have an observer instance, few classes and we want every instance of this classes to be &#8216;observed&#8217;.</p>
<pre class="brush: jscript;">
var observer=[]// simplest ever
function foo(){
     this.foo=&quot;foo&quot;;
     ....
}
function bar(){
     this.bar=&quot;bar&quot;;
     ....
}

function observe(child){ //MAGIC
	childName=child.name||child.toString().match(/function\s*([^\(])\s*\(/)[1];
	newConst=function(){
	    ret={};
	    child.apply(ret, arguments);
            observer.push(ret);
	    return ret;
	};
	newConst.name=childName;
	window[childName]=newConst;
}

observe(foo);
observe(bar);

var t1=new foo();
var t2=new bar();

observer // t1,t2
</pre>
<img src="http://feeds.feedburner.com/~r/JsManiac/~4/Np4URjMkSvg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://eldar.djafarov.com/post/take-control-over-class-constructor/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://eldar.djafarov.com/post/take-control-over-class-constructor</feedburner:origLink></item>
		<item>
		<title>javascript constructor with arguments</title>
		<link>http://feedproxy.google.com/~r/JsManiac/~3/fLeBuJbgCew/javascript-constructor-with-arguments</link>
		<comments>http://eldar.djafarov.com/post/javascript-constructor-with-arguments#comments</comments>
		<pubDate>Sun, 16 Aug 2009 10:37:32 +0000</pubDate>
		<dc:creator>Eldar Djafarov</dc:creator>
				<category><![CDATA[post]]></category>
		<category><![CDATA[art]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://eldar.djafarov.com/?p=65</guid>
		<description><![CDATA[There was an interesting question on stackoverflow recently. Nobody had right answer. Now after few days i got it! It is really a peace of JS art.
The question was if it is possible to call constructor like this:

someClass(arg1,arg2,...,argN){
.... //implementation
}

having just an Array of arguments [arg1,arg2,...,argN]. First thought was just to use apply. Next was: how [...]]]></description>
			<content:encoded><![CDATA[<p>There was an interesting question on <a href="http://stackoverflow.com">stackoverflow</a> recently. Nobody had right answer. Now after few days i got it! It is really a peace of JS art.<br />
The question was if it is possible to call constructor like this:</p>
<pre class="brush: jscript;">
someClass(arg1,arg2,...,argN){
.... //implementation
}
</pre>
<p>having just an Array of arguments [arg1,arg2,...,argN]. First thought was just to use apply. Next was: how can you use apply on a constructor? But it seems you really can:)</p>
<pre class="brush: jscript;">
var args=[arg1,arg2,...,argN];
var inst={};// this will be instance of our class
someClass.apply(inst,args);// magic here
</pre>
<p>You see from this point of view javascript constructor is just a method(function) applied to object cloned from its prototype.</p>
<img src="http://feeds.feedburner.com/~r/JsManiac/~4/fLeBuJbgCew" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://eldar.djafarov.com/post/javascript-constructor-with-arguments/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://eldar.djafarov.com/post/javascript-constructor-with-arguments</feedburner:origLink></item>
		<item>
		<title>SVG have a great potential.</title>
		<link>http://feedproxy.google.com/~r/JsManiac/~3/b5H6m-eHi98/svg-have-a-great-potential</link>
		<comments>http://eldar.djafarov.com/post/svg-have-a-great-potential#comments</comments>
		<pubDate>Fri, 24 Jul 2009 14:35:36 +0000</pubDate>
		<dc:creator>Eldar Djafarov</dc:creator>
				<category><![CDATA[post]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[SVG]]></category>

		<guid isPermaLink="false">http://eldar.djafarov.com/?p=60</guid>
		<description><![CDATA[What intriguing me most of all about SVG is the Adobe. Since SVG is a competitor to Flash. And Adobe was active contributor to SVG and then buys Macromedia in 2005. So I suppose there is a possibility that for Adobe will give up developing of 2 competitive technologies. And I think this won’t be [...]]]></description>
			<content:encoded><![CDATA[<p>What intriguing me most of all about SVG is the Adobe. Since SVG is a competitor to Flash. And Adobe was active contributor to SVG and then buys Macromedia in 2005. So I suppose there is a possibility that for Adobe will give up developing of 2 competitive technologies. And I think this won’t be Flash.<br />
But it seems not SVG either.<br />
Since, we have a great JS library &#8211; <a href="http://raphaeljs.com/">Raphael</a>. It provides solid interface to draw SVG/VML. So we have crossbrowser vector graphics solution now.<br />
Also it seems google will get into it too <a href="http://www.theregister.co.uk/2009/06/03/google_svg_internet_explorer/">Google to slip SVG into Internet Explorer</a> (<a href="http://code.google.com/p/svgweb/">http://code.google.com/p/svgweb/</a>)</p>
<p>Flash is a great technology but it doesn’t give me direct access to all elements of vector graphics elements. So I need some bridges between JavaScript and Actionscript those “almost” similar both ECMAScript languages. That is very sad. </p>
<p>Great to have SVG!</p>
<img src="http://feeds.feedburner.com/~r/JsManiac/~4/b5H6m-eHi98" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://eldar.djafarov.com/post/svg-have-a-great-potential/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://eldar.djafarov.com/post/svg-have-a-great-potential</feedburner:origLink></item>
		<item>
		<title>Google Web perfomance initiative.</title>
		<link>http://feedproxy.google.com/~r/JsManiac/~3/Xt88LCZFqcc/google-web-perfomance-initiative</link>
		<comments>http://eldar.djafarov.com/post/google-web-perfomance-initiative#comments</comments>
		<pubDate>Thu, 23 Jul 2009 15:56:59 +0000</pubDate>
		<dc:creator>Eldar Djafarov</dc:creator>
				<category><![CDATA[post]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://eldar.djafarov.com/?p=51</guid>
		<description><![CDATA[Gogle initiates a really great project recently: Let&#8217;s make the web faster
So Optimizing JavaScript code article got in scope of my interest.
Conclusions:

use [&#60;string>,&#60;string>,&#60;string>].join(&#8220;&#8221;) for string concatenation (* this is pretty well known rule)
use prototype method defining rather than defining method inside closure
Creating a closure is significantly slower then creating an inner function without a closure, [...]]]></description>
			<content:encoded><![CDATA[<p>Gogle initiates a really great project recently: <a href="http://code.google.com/intl/ru-RU/speed/index.html">Let&#8217;s make the web faster</a><br />
So <a href="http://code.google.com/intl/ru-RU/speed/articles/optimizing-javascript.html">Optimizing JavaScript code</a> article got in scope of my interest.<br />
Conclusions:</p>
<ul>
<li>use [&lt;string>,&lt;string>,&lt;string>].join(&#8220;&#8221;) for string concatenation (* this is pretty well known rule)</li>
<li>use prototype method defining rather than defining method inside closure</li>
<li>Creating a closure is significantly slower then creating an inner function without a closure, and much slower than reusing a static function.</li>
</ul>
<p>By the way &#8211; in the last one &#8220;significantly&#8221; means(lower is better)<br />
for Chrome2:  20:10:1<br />
for FireFox3: 500:50:1<br />
for IE6: 2:2:1<br />
I think this is really significantly:)</p>
<img src="http://feeds.feedburner.com/~r/JsManiac/~4/Xt88LCZFqcc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://eldar.djafarov.com/post/google-web-perfomance-initiative/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://eldar.djafarov.com/post/google-web-perfomance-initiative</feedburner:origLink></item>
		<item>
		<title>Javascript performance. Array vs Object.</title>
		<link>http://feedproxy.google.com/~r/JsManiac/~3/9gYOJXAJzhA/javascript-performance-array-vs-object</link>
		<comments>http://eldar.djafarov.com/post/javascript-performance-array-vs-object#comments</comments>
		<pubDate>Mon, 06 Jul 2009 09:59:36 +0000</pubDate>
		<dc:creator>Eldar Djafarov</dc:creator>
				<category><![CDATA[post]]></category>
		<category><![CDATA[Array]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Object]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://eldar.djafarov.com/?p=19</guid>
		<description><![CDATA[Big JavaScript application needs big storage. JS gives us 2 options Array and Object. I have tested following cases:

writing data
writing data randomly
reading data
reading data randomly

I have tested this in following browsers:

IE
FF
Chrome

I want to point out that i am not comparing browsers. I am comparing two methods of storing data in JavaScript.
I have checked perfomance of [...]]]></description>
			<content:encoded><![CDATA[<p>Big JavaScript application needs big storage. JS gives us 2 options Array and Object. I have tested following cases:</p>
<ul>
<li>writing data</li>
<li>writing data randomly</li>
<li>reading data</li>
<li>reading data randomly</li>
</ul>
<p>I have tested this in following browsers:</p>
<ul>
<li>IE</li>
<li>FF</li>
<li>Chrome</li>
</ul>
<p>I want to point out that <strong>i am not comparing browsers</strong>. I am comparing two methods of storing data in JavaScript.</p>
<p>I have checked perfomance of following pices of code:</p>
<p><strong>writing [ ]</strong></p>
<pre class="brush: jscript;">
// initialization
var r=[];
//code to evaluate
for (i=0;i&lt;10000;i++){
    this.r[i]=7;
}
</pre>
<p><strong>writing {}</strong ></p>
<pre class="brush: jscript;">
// initialization
var r={};
//code to evaluate
for (i=0;i&lt;10000;i++){
    this.r[i]=7;
}
</pre>
<p><strong>writing [ ] randomly</strong ></p>
<pre class="brush: jscript;">
// initialization
var r=[];
//code to evaluate
for (i=0;i&lt;10000;i++){
    this.r[Math.floor(Math.random(1000))]=7;
}
</pre>
<p><strong>writing { } randomly</strong ></p>
<pre class="brush: jscript;">
// initialization
var r={};
//code to evaluate
for (i=0;i&lt;10000;i++){
    this.r[Math.floor(Math.random(1000))]=7;
}
</pre>
<p>Here are results in ms:</p>
<table>
<tr>
<td>&nbsp;</td>
<td>IE6</td>
<td>FF3.5</td>
<td>Chrome3</td>
</tr>
<tr>
<td>writing []</td>
<td>14.85</td>
<td>0.95</td>
<td>0.6</td>
</tr>
<tr>
<td>writing {}</td>
<td>14.05</td>
<td>4.3</td>
<td>0.65</td>
</tr>
<tr>
<td>writing [] randomly</td>
<td>36.7</td>
<td>4.1</td>
<td>1.55</td>
</tr>
<tr>
<td>writing {} randomly</td>
<td>37.5</td>
<td>6.15</td>
<td>1.6</td>
</tr>
<tr>
<td>reading []</td>
<td>12</td>
<td>0.2</td>
<td>0.4</td>
</tr>
<tr>
<td>reading {}</td>
<td>13.3</td>
<td>1.5</td>
<td>0.35</td>
</tr>
<tr>
<td>reading [] randomly</td>
<td>71.05</td>
<td>57.2</td>
<td>53.05</td>
</tr>
<tr>
<td>reading {} randomly</td>
<td>71.1</td>
<td>48.9</td>
<td>53.65</td>
</tr>
</table>
<p>Ok the result shows us that the perfomance of Array and Object as storage is almost equal.<br />
So semantically i think it is wise to use array for unordered information and object for mapping.</p>
<img src="http://feeds.feedburner.com/~r/JsManiac/~4/9gYOJXAJzhA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://eldar.djafarov.com/post/javascript-performance-array-vs-object/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://eldar.djafarov.com/post/javascript-performance-array-vs-object</feedburner:origLink></item>
		<item>
		<title>Javascript performance summary</title>
		<link>http://feedproxy.google.com/~r/JsManiac/~3/41siYxAKx4U/javascript-performance-summary</link>
		<comments>http://eldar.djafarov.com/post/javascript-performance-summary#comments</comments>
		<pubDate>Mon, 06 Jul 2009 08:45:56 +0000</pubDate>
		<dc:creator>Eldar Djafarov</dc:creator>
				<category><![CDATA[post]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[profiling]]></category>

		<guid isPermaLink="false">http://eldar.djafarov.com/?p=13</guid>
		<description><![CDATA[I have an idea that Javascript could allow us to improve perfomance of our web applications. Of cause JS is very slow but unlike server side code we can run it on side of our clients. Something like client side cloud-computing.
It is jut an idea&#8230; for now.
Thing i can do right now is to improve [...]]]></description>
			<content:encoded><![CDATA[<p>I have an idea that Javascript could allow us to improve perfomance of our web applications. Of cause JS is very slow but unlike server side code we can run it on side of our clients. Something like client side cloud-computing.<br />
It is jut an idea&#8230; for now.<br />
Thing i can do right now is to improve performance of my scripts as much as possible. A lot can be gained just by following some coding style rules.</p>
<p><a href="http://eldar.djafarov.com/post/javascript-performance-array-vs-object">Javascript performance. Array vs Object</a></p>
<p>Reading and writing perfomance is not differs too much for this two. So you can easily use Object for mapping purposes and Array for unordered stuff.</p>
<p>details:</p>
<p>I have coded a simple profiler to test some siple pieces of code. Here it is:</p>
<pre class="brush: jscript;">
function Profile(){

}

Profile.prototype.status = 0;//0 free, 1 busy
Profile.prototype.tests = [];

Profile.prototype.testIt = function(){
    if (!this.status &amp;&amp; this.tests.length &gt; 0) {
        var atest = this.tests.shift();
        var that = this;
        var l = setTimeout(function(){
            that.process(atest[0], atest[1], atest[2]);
            that.testIt();
        }, 500);
        this.status = 1;
    }
}

Profile.prototype.profile = function(func, name, before){
    Profile.prototype.tests.push([func, name, before]);
    this.testIt();
}
Profile.prototype.process = function(func, name, before){
    var AVGtime = 0;
    for (var i = 0; i &lt; 20; i++) {
        var scope = {};
        before.call(scope);

        var dbefore = new Date();
        func.call(scope);
        var dafter = new Date();

        AVGtime += dafter.getTime() - dbefore.getTime();
    }
    this.report(func, AVGtime / 20, name);
    this.status = 0;
}
Profile.prototype.report = function(func, avg, name){
    var funcDiv = document.createElement(&quot;div&quot;);
    var report = &quot;&lt;div class='function' style='font-size: small; border: 1px solid #999; margin: 10px 0 3px 10px; padding: 5px;'&gt;&quot; + func.toString() + &quot;&lt;/div&quot;;
    report += &quot;&lt;div class='avgTime' style='font-weight: bold;margin: 0 0 0 10px'&gt;&quot; + name + &quot;: &quot; + avg + &quot;ms&lt;/div&gt;&quot;;
    funcDiv.innerHTML = report;
    document.body.appendChild(funcDiv);
}
</pre>
<p>Here are the rules and results of all perfomance tests i run.</p>
<p><a href="http://eldar.djafarov.com/post/javascript-performance-array-vs-object">Javascript performance. Array vs Object</a></p>
<img src="http://feeds.feedburner.com/~r/JsManiac/~4/41siYxAKx4U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://eldar.djafarov.com/post/javascript-performance-summary/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://eldar.djafarov.com/post/javascript-performance-summary</feedburner:origLink></item>
		<item>
		<title>Who am i and what is this blog about</title>
		<link>http://feedproxy.google.com/~r/JsManiac/~3/9k93WYIDRoM/who-am-i-and-what-is-this-blog-about</link>
		<comments>http://eldar.djafarov.com/post/who-am-i-and-what-is-this-blog-about#comments</comments>
		<pubDate>Sun, 05 Jul 2009 13:33:09 +0000</pubDate>
		<dc:creator>Eldar Djafarov</dc:creator>
				<category><![CDATA[post]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Me]]></category>

		<guid isPermaLink="false">http://eldar.djafarov.com/?p=11</guid>
		<description><![CDATA[This is the only private message you will see in this blog.
Since all the thoughts i have about JavaScript and Front-end development totally occupied my mind i have to make this Blog to get them in order.
I am a web developer. My main area of interest for now is a JavaScript.
Yes i have read Douglas [...]]]></description>
			<content:encoded><![CDATA[<p>This is the only private message you will see in this blog.<br />
Since all the thoughts i have about JavaScript and Front-end development totally occupied my mind i have to make this Blog to get them in order.<br />
I am a web developer. My main area of interest for now is a JavaScript.<br />
Yes i have read Douglas Crockford and yes i am subscribed for John Resig, Dion Almaer and other guys blogs.<br />
I think JavaScript is a very powerful language and most widespread cross platform language in the world (since almost every OS have browser and almost every browser have JS implementation).<br />
Also JavaScript is a great technology for web2.0 internet and all the buzzprojects we have now are impossible without it. </p>
<p>I am writhing a js framework named ARIESjs. I know there are a lot of frameworks around but i have my own vision and i want some things which the can not give. I will post the process of development and o lot of examples here, so stay tuned.</p>
<img src="http://feeds.feedburner.com/~r/JsManiac/~4/9k93WYIDRoM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://eldar.djafarov.com/post/who-am-i-and-what-is-this-blog-about/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://eldar.djafarov.com/post/who-am-i-and-what-is-this-blog-about</feedburner:origLink></item>
	</channel>
</rss>
