<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Grayger &#187; JavaScript</title>
	<atom:link href="http://www.grayger.com/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.grayger.com</link>
	<description>In the pursuit of effectiveness</description>
	<lastBuildDate>Sat, 02 Jul 2011 16:38:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>JavaScript The Good Parts</title>
		<link>http://www.grayger.com/javascript/javascript-the-good-parts/</link>
		<comments>http://www.grayger.com/javascript/javascript-the-good-parts/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 16:17:09 +0000</pubDate>
		<dc:creator>grayger</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Douglas Crockford]]></category>

		<guid isPermaLink="false">http://www.grayger.com/wp/?p=37</guid>
		<description><![CDATA[&#8220;JavaScript The Good Parts&#8221; by Douglas Crockford is one of the most subjective books on JavaScript because it dares to divide JavaScript language specifications into good parts and bad parts.
Most of good parts are well-known, but not widely used. I can see they are fully and correctly used in JavaScript frameworks or toolkits but they [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;JavaScript The Good Parts&#8221; by Douglas Crockford is one of the most subjective books on JavaScript because it dares to divide JavaScript language specifications into good parts and bad parts.</p>
<p>Most of good parts are well-known, but not widely used. I can see they are fully and correctly used in JavaScript frameworks or toolkits but they are rarely or inappropriately used by page designers.</p>
<p>For me, sections on bad parts are much useful. I tell &#8220;===&#8221; from &#8220;==&#8221; but I have never used &#8220;===&#8221; just because I, as a Java programmer, am not familiar to it. The book helps use bad parts less rather than use good parts more.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grayger.com/javascript/javascript-the-good-parts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Douglas Crockford&#8217;s blog</title>
		<link>http://www.grayger.com/javascript/douglas-crockfords-blog/</link>
		<comments>http://www.grayger.com/javascript/douglas-crockfords-blog/#comments</comments>
		<pubDate>Sun, 30 Mar 2008 12:29:17 +0000</pubDate>
		<dc:creator>grayger</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Adsafe]]></category>
		<category><![CDATA[Douglas Crockford]]></category>
		<category><![CDATA[JSON]]></category>

		<guid isPermaLink="false">http://www.grayger.com/wp/?p=29</guid>
		<description><![CDATA[Recently, I found Douglas Crockford&#8217;s blog. Although I am very interested in his articles, finding his blog took a long time since http://www.crockford.com/ doesn&#8217;t provide any link to it. Reading posts was enjoyable. I note down some impressive posts.
Introducing other&#8217;s work

 A paper, Using JavaScript as a Real Programming Language
 The Non-Designer&#8217;s Design Book

Introducing his [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, I found <a href="http://blog.360.yahoo.com/blog-TBPekxc1dLNy5DOloPfzVvFIVOWMB0li">Douglas Crockford&#8217;s blog</a>. Although I am very interested in his articles, finding his blog took a long time since <a href="http://www.crockford.com/">http://www.crockford.com/</a> doesn&#8217;t provide any link to it. Reading posts was enjoyable. I note down some impressive posts.</p>
<p><strong>Introducing other&#8217;s work</strong></p>
<ul>
<li> A paper, Using JavaScript as a Real Programming Language</li>
<li> The Non-Designer&#8217;s Design Book</li>
</ul>
<p><strong>Introducing his work</strong></p>
<ul>
<li> Adsafe</li>
<li> Contributions to JSON</li>
</ul>
<p><strong>Informative but arguable (in my view)</strong></p>
<ul>
<li> XML&#8217;s future in WEB : XML is on web trending down. XHTML failed to displace HTML because
<ul>
<li>Its client-side validation is not so beneficial.</li>
<li>It lacks security model</li>
</ul>
</li>
</ul>
<ul>
<li>Thread is evil.</li>
<li> Scribe, the first trial of data-document translation, is similar to JSON. Adopting SGML and XML instead of it was a bad choice.</li>
</ul>
<p>Security of JavaScript seems to be one of his current concerns. <a href="http://yuiblog.com/blog/2008/03/24/crockford-ajaxworld-ch9/">His recent talk</a> shows his approaches toward the security problems.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grayger.com/javascript/douglas-crockfords-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pro JavaScript Techniques</title>
		<link>http://www.grayger.com/javascript/pro-javascript-techniques/</link>
		<comments>http://www.grayger.com/javascript/pro-javascript-techniques/#comments</comments>
		<pubDate>Tue, 29 Jan 2008 11:17:03 +0000</pubDate>
		<dc:creator>grayger</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.grayger.com/wp/?p=27</guid>
		<description><![CDATA[The &#8220;Pro JavaScript Techniques&#8221; authored by John Resig, the creator of jQuery, is a excellent book. I neither bought nor read the book. Instead I just read sample code snippets from http://jspro.org/code/ and tested them. Guessing from the code snippets, Ch.2 and Ch.3 describe backgrounds of JavaScript. I think these chapters are the core of [...]]]></description>
			<content:encoded><![CDATA[<p>The &#8220;Pro JavaScript Techniques&#8221; authored by John Resig, the creator of jQuery, is a excellent book. I neither bought nor read the book. Instead I just read sample code snippets from <a href="http://jspro.org/code/">http://jspro.org/code/</a> and tested them. Guessing from the code snippets, Ch.2 and Ch.3 describe backgrounds of JavaScript. I think these chapters are the core of this book and they really help us understand the concept of &#8220;prototype-based&#8221; and write object-oriented JavaScript code gracefully. Remaining chapters are for advanced techniques and tips: Ajax, DOM, cross-browser supporting, new features of JavaScript 1.6/1.7 and so on. Even though these chapters are not so much impressive to me, they also seem to be worthwhile to read.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grayger.com/javascript/pro-javascript-techniques/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript function considered a first-class object</title>
		<link>http://www.grayger.com/javascript/javascript-function-considered-a-first-class-object/</link>
		<comments>http://www.grayger.com/javascript/javascript-function-considered-a-first-class-object/#comments</comments>
		<pubDate>Mon, 26 Nov 2007 13:22:37 +0000</pubDate>
		<dc:creator>grayger</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[First-class object]]></category>
		<category><![CDATA[YUI]]></category>

		<guid isPermaLink="false">http://www.grayger.com/wp/?p=21</guid>
		<description><![CDATA[JavaScript is a prototype based language, and it has many characteristics of functional languages. For example, JavaScript regards a function as a first-class object. Among many type checking functions YUI provides, YAHOO.lang.isObject() reflects the characterstic.


&#60;script src=&#34;http://yui.yahooapis.com/2.3.1/build/yahoo/yahoo-min.js&#34; type=&#34;text/javascript&#34;&#62;&#60;/script&#62;
foo= function() {} // function is storable in variables
YAHOO.lang.isObject(foo) // returns true

]]></description>
			<content:encoded><![CDATA[<p>JavaScript is a prototype based language, and it has many characteristics of functional languages. For example, JavaScript regards a function as a first-class object. Among many <a href="http://developer.yahoo.com/yui/examples/yahoo/yahoo_type_checking.html">type checking functions</a> YUI provides, YAHOO.lang.isObject() reflects the characterstic.</p>
<pre class="brush: javascript; ">

&lt;script src=&quot;http://yui.yahooapis.com/2.3.1/build/yahoo/yahoo-min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
foo= function() {} // function is storable in variables
YAHOO.lang.isObject(foo) // returns true
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.grayger.com/javascript/javascript-function-considered-a-first-class-object/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript coding style</title>
		<link>http://www.grayger.com/javascript/javascript-coding-style/</link>
		<comments>http://www.grayger.com/javascript/javascript-coding-style/#comments</comments>
		<pubDate>Sun, 11 Nov 2007 10:49:08 +0000</pubDate>
		<dc:creator>grayger</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Coding style]]></category>
		<category><![CDATA[YUI]]></category>

		<guid isPermaLink="false">http://grayger.hosting.paran.com/wordpress/?p=19</guid>
		<description><![CDATA[When I was a beginner of JavaScript, I don&#8217;t have to use OOP.
As system grows, I put more value on modular design and code reuse.
Some technique enabling OOP were helpful. I just enjoyed the encapsulation technique.


ClassA = function(){
this.funcA = function(){
}
this.funcB = function(){
}
}

Later, I knew that using &#8220;prototype&#8221; is more efficient in memory usage. Refer to [...]]]></description>
			<content:encoded><![CDATA[<p>When I was a beginner of JavaScript, I don&#8217;t have to use OOP.<br />
As system grows, I put more value on modular design and code reuse.</p>
<p><a href="http://mckoss.com/jscript/object.htm">Some technique enabling OOP</a> were helpful. I just enjoyed the encapsulation technique.</p>
<pre class="brush: javascript; ">

ClassA = function(){
this.funcA = function(){
}
this.funcB = function(){
}
}
</pre>
<p>Later, I knew that using &#8220;prototype&#8221; is more efficient in memory usage. Refer to <a href="http://www.softwaresecretweapons.com/jspwiki/javascriptrefactoringforsaferfasterbetterajax">this</a>.</p>
<pre class="brush: javascript; ">

ClassA = function(){
}
ClassA.prototype.funcA = function(){
}
ClassA.prototype.funcB = function(){
}
</pre>
<p>Now, I found more readable and concise style from <a href="http://developer.yahoo.com/">YUI</a>.</p>
<pre class="brush: javascript; ">

ClassA = function(){
}
ClassA.prototype = {
funcA: function(){
},
funcB: function(){
}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.grayger.com/javascript/javascript-coding-style/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Misuse of &#8220;Array&#8221; as an associative array</title>
		<link>http://www.grayger.com/javascript/misuse-of-array-as-an-associative-array/</link>
		<comments>http://www.grayger.com/javascript/misuse-of-array-as-an-associative-array/#comments</comments>
		<pubDate>Tue, 30 Oct 2007 01:13:00 +0000</pubDate>
		<dc:creator>grayger</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Associative array]]></category>

		<guid isPermaLink="false">http://grayger.hosting.paran.com/wordpress/?p=17</guid>
		<description><![CDATA[The difference between array and associative array is so clear that developers never misuse them.
In fact, if they misuse them in a specific programming language, compiler or interpreter will detect the error.
But JavaScript is exceptional. Unfortunately, it allows careless developers to use &#8220;Array&#8221; as an associative array.
Thanks to the article that awakes me. It doesn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>The difference between array and associative array is so clear that developers never misuse them.<br />
In fact, if they misuse them in a specific programming language, compiler or interpreter will detect the error.<br />
But JavaScript is exceptional. Unfortunately, it allows careless developers to use &#8220;Array&#8221; as an associative array.<br />
Thanks to the <a href="http://www.andrewdupont.net/2006/05/18/javascript-associative-arrays-considered-harmful">article</a> that awakes me. It doesn&#8217;t take a long time to find silly mistakes in my code.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grayger.com/javascript/misuse-of-array-as-an-associative-array/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unobtrusive JavaScript</title>
		<link>http://www.grayger.com/javascript/unobtrusive-javascript/</link>
		<comments>http://www.grayger.com/javascript/unobtrusive-javascript/#comments</comments>
		<pubDate>Mon, 29 Oct 2007 03:58:00 +0000</pubDate>
		<dc:creator>grayger</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Unobtrusiveness]]></category>
		<category><![CDATA[YUI]]></category>

		<guid isPermaLink="false">http://grayger.hosting.paran.com/wordpress/?p=16</guid>
		<description><![CDATA[About 1 year ago, I had to implement CRUD operation on existing HTML table.  I found that manupulating DOM element enables functions such as adding or deleting rows, sorting table. But it was not simple and code got bigger and bigger as each function is implemented one by one. At that times, sortable table [...]]]></description>
			<content:encoded><![CDATA[<p>About 1 year ago, I had to implement CRUD operation on existing HTML table.  I found that manupulating DOM element enables functions such as adding or deleting rows, sorting table. But it was not simple and code got bigger and bigger as each function is implemented one by one. At that times, <span style="text-decoration: underline"></span><a href="http://www.joostdevalk.nl/code/sortable-table">sortable table example</a> provided valuable insight. It was implemented in unobtrusive way.</p>
<p>Nowdays, if I am asked to use the grid-like control on the WEB, I will not hesitate to select <a href="http://developer.yahoo.com/yui">YUI</a>. Check out YUI if you want to know the beauty of <a href="http://en.wikipedia.org/wiki/Unobtrusive_JavaScript">unobtrusive JavaScript</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grayger.com/javascript/unobtrusive-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

