<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<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/"
	>

<channel>
	<title>ecmascript &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/ecmascript/</link>
	<description>Feed of posts on WordPress.com tagged "ecmascript"</description>
	<pubDate>Mon, 30 Nov 2009 21:36:12 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[A comprehensive introduction to the JavaScript Programming Language by Douglas Crockford.]]></title>
<link>http://wangsarang.wordpress.com/2009/08/25/a-comprehensive-introduction-to-the-javascript-programming-language/</link>
<pubDate>Mon, 24 Aug 2009 23:32:54 +0000</pubDate>
<dc:creator>wangsarang</dc:creator>
<guid>http://wangsarang.wordpress.com/2009/08/25/a-comprehensive-introduction-to-the-javascript-programming-language/</guid>
<description><![CDATA[JavaScript is a scripting language used to enable programmatic access to objects within other applic]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><blockquote><p>
JavaScript is a scripting language used to enable programmatic access to objects within other applications. It is primarily used in the form of client-side JavaScript for the development of dynamic websites. JavaScript is a dialect of the ECMAScript standard and is characterized as a dynamic, weakly typed, prototype-based language with first-class functions. JavaScript was influenced by many languages and was designed to look like Java, but to be easier for non-programmers to work with(From Wikipedia).
</p></blockquote>
<p>A comprehensive introduction to the JavaScript Programming Language by Douglas Crockford who is the creator of JSON.</p>
<p> * <a href="http://video.yahoo.com/watch/111593/1710507">The Javascript Programming Language Part 1</a><br />
 * <a href="http://video.yahoo.com/watch/111594/1710553">The Javascript Programming Language Part 2</a><br />
 * <a href="http://video.search.yahoo.com/video/play?p=javascript+Douglas+Crockford&#38;ei=UTF-8&#38;fr=ush-video&#38;fr2=tab-web&#38;tnr=21&#38;vid=0001434160881">The Javascript Programming Language Part 3</a><br />
 * <a href="http://video.search.yahoo.com/video/play?p=javascript+Douglas+Crockford+4/4&#38;n=21&#38;ei=utf-8&#38;js=1&#38;fr=ush-video&#38;fr2=tab-web&#38;tnr=21&#38;vid=0001146975406">The Javascript Programming Language Part 4</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[ECMAScript to Native Compiler]]></title>
<link>http://brianwestphal.wordpress.com/2009/07/05/ecmascript-to-native-compiler/</link>
<pubDate>Mon, 06 Jul 2009 06:59:08 +0000</pubDate>
<dc:creator>brianwestphal</dc:creator>
<guid>http://brianwestphal.wordpress.com/2009/07/05/ecmascript-to-native-compiler/</guid>
<description><![CDATA[I think it&#8217;d be really cool if someone developed a really good ECMAScript compiler that I coul]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I think it&#8217;d be really cool if someone developed a really good ECMAScript compiler that I could write server apps with.  I think the flexibility of the language and the number of people that are familiar with it (through JavaScript and ActionScript) warrants more investment in the language itself as a pure language.  I think it hands-down beats Python, for instance, in terms of ease-of-programming, power, and flexibility.  Further, variants like ActionScript show that optional type checking can be incredibly beneficial in many circumstances and allow for easier refactoring and code manipulation.</p>
<p>I could give examples as to why Python is very non-ideal, PERL is out-of-fashion, PHP just plain sucks, and Ruby is just another fad language that I won&#8217;t waste my time learning, but I&#8217;ll leave those as exercises for the reader&#8230;</p>
<p>Moving on.  Ideally, a compiler of this sort would produce a single executable that encapsulated the runtime environment in the binary so that people wouldn&#8217;t have to install a separate ECMAScript runtime library.</p>
<p>If a sufficiently well-supported and efficient product of this type was released, I believe it could really change the playing field for server scripting languages.  Next we just need jssp&#8230;</p>
<p>(If no one else works on this, I might make it a pet project of mine in a couple months &#8212; too busy at the moment.)</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[AS3 ile XML işlemleri]]></title>
<link>http://ajanslive.wordpress.com/2009/06/23/as3-ile-xml-islemleri/</link>
<pubDate>Tue, 23 Jun 2009 01:40:02 +0000</pubDate>
<dc:creator>ajanslive</dc:creator>
<guid>http://ajanslive.wordpress.com/2009/06/23/as3-ile-xml-islemleri/</guid>
<description><![CDATA[CS3 &#8216;den önce , yani AS2 ile XML işlemleri oldukça karışıktı. Yani XML verisini dosyadan (veya]]></description>
<content:encoded><![CDATA[CS3 &#8216;den önce , yani AS2 ile XML işlemleri oldukça karışıktı. Yani XML verisini dosyadan (veya]]></content:encoded>
</item>
<item>
<title><![CDATA[محاضره upcoming changes to JavaScript]]></title>
<link>http://keepondev.wordpress.com/2009/06/22/upcoming-changes-to-javascript-video/</link>
<pubDate>Mon, 22 Jun 2009 20:39:43 +0000</pubDate>
<dc:creator>mostafa farghaly</dc:creator>
<guid>http://keepondev.wordpress.com/2009/06/22/upcoming-changes-to-javascript-video/</guid>
<description><![CDATA[السلام عليكم و رحمه الله تعالى و بركاته اعطى 3 من مهندسى جوجل محاضره بعنوان EcmaScript5 , Upcoming c]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:right;">السلام عليكم و رحمه الله تعالى و بركاته</p>
<p style="text-align:right;"><img class="alignnone size-full wp-image-749" title="ecmascript 5 changes upcoming to javascript" src="http://keepondev.wordpress.com/files/2009/06/ecmascript-5-changes-upcoming-to-javascript.jpg" alt="ecmascript 5 changes upcoming to javascript" width="450" height="328" /></p>
<p style="text-align:right;" dir="rtl">اعطى 3 من مهندسى جوجل محاضره بعنوان EcmaScript5 , Upcoming changes to JavaScript ، تناولت المحاضره التغيرات التى ستطرأ على اللغه فى خلال سنه ان شاء الله بعدما اتفق مصنعوا المتصفحات ادراج مواصفات EmaScript5 الجديده ، يمكنك تحميل المحاضره <a rel="nofollow" href="http://www.youtube.com/watch?v=Kq4FpMe6cRs">من هنا</a> ، و يمكنك تحميل الشرائح <a rel="nofollow" href="http://google-caja.googlecode.com/svn/trunk/doc/html/es5-talk/es5-talk.pdf">من هنا</a> .</p>
<p style="text-align:right;" dir="rtl"><strong>ما هى قصه EcmaScript 5 ؟</strong></p>
<p style="text-align:right;" dir="rtl">بعدما تيقن مصنعوا انه يستحيل ادراج مواصفات <a href="http://keepondev.wordpress.com/2009/02/14/javascript-2/">EcmaScript 4</a> فى جافاسكربت حاليا ، لأنها تقلب اللغه رأسا على عقب مقارنه بالوضع الحالى كما انها ضخمه جداااا و ليست backward compatible ، قاموا بإنشاء مجموعه جديده لتحديد مواصفات EcmaScript 3.1 تحتاجها فعلا اللغه بوضعها الحالى بحيث تكون backward compatible و يسهل ادراجها فى وقت قصير بعدما انتهوا من المواصفات و بعد وقت كبير من المناقشات انتهوا إلى مواصفات اطلقوا عليها EcmaScript 5 ، اتفق صناع المتصفحات على ادراجها و هى حاليا فى مرحله التنقيح ، كتب john resig مطور مكتبه jQuery تدوينتين يناقش بهم بعض مزايا EcmaScript 5 الجديده <a rel="nofollow" href="http://ejohn.org/blog/ecmascript-5-objects-and-properties/">هنا</a> و<a rel="nofollow" href="http://ejohn.org/blog/ecmascript-5-objects-and-properties/"> هنا</a> . او يمكنك قراءه المواصفات كامله <a rel="nofollow" href="http://www.ecma-international.org/publications/files/drafts/tc39-2009-025.pdf">من هنا</a> .</p>
<p style="text-align:right;" dir="rtl"><strong><span style="color:#ff6600;">خارج النص</span> :</strong> يمكنك الان متابعه ما اقوم به يوميا من خلال حسابى على <a rel="nofollow" href="http://twitter.com/keepondev">twitter</a> .</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Advanced JavaScript Resources]]></title>
<link>http://technosiastic.wordpress.com/2009/06/08/advanced-javascript-resources/</link>
<pubDate>Mon, 08 Jun 2009 12:29:49 +0000</pubDate>
<dc:creator>Shahriar Hyder</dc:creator>
<guid>http://technosiastic.wordpress.com/2009/06/08/advanced-javascript-resources/</guid>
<description><![CDATA[JavaScript, being so simple to learn &amp; use is one programming language which is not always given]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>JavaScript, being so simple to learn &#38; use is one programming language which is not always given its proper due. I think the main reason for this is that most people who tries to undermine the language are greatly fooled by it&#8217;s simplicity. Although, it has its fare share of shortcomings but the kind of things it can accomplish is pretty amazing.  If you have any doubts, check <a href="http://www.joelonsoftware.com/items/2006/08/01.html" target="_blank">Can Your Programming Language Do This?</a> at <a href="http://www.joelonsoftware.com/" target="_blank">Joel on Software</a>.</p>
<p>There are raging and never ending debates as to whether JavaScript is even a true programming language or whether it is an <a href="http://en.wikipedia.org/wiki/Object-oriented_programming" target="_blank">object-oriented language</a> at all but that&#8217;s beside the point.</p>
<p><a href="http://en.wiktionary.org/wiki/IMHO" target="_blank">IMHO</a>, JavaScript does indeed exhibit <a href="http://en.wikipedia.org/wiki/Object-oriented_programming_language" target="_blank">object-oriented programming language</a> features. As per <a href="http://answers.yahoo.com/question/index?qid=20080213105210AA9cQpk" target="_blank">Yahoo! Answers</a>, there are two models of object orientation. One is based on classes as the templates from which to create objects (instances of classes), and the other relies on prototypes that are already objects and which can be cloned to create new instances. JavaScript (and others) takes the prototype approach.</p>
<p>In any case, today I am here to guide you towards few sources which should go a long way in giving you a good idea about what JavaScript is and what it isn&#8217;t. Statutory warning &#8211; most of them are of advanced nature <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . So, here you go, look at these sources which might quench your thirst for advance level JavaScript:</p>
<p><a title="Permanent Link: JavaScript Execution Context, Closure, Eval and “this” Keyword" rel="bookmark" href="http://www.razorspeed.com/blog/2008/09/13/javascript-execution-context-closure-eval-and-this-keyword.html" target="_blank">JavaScript Execution Context, Closure, Eval and “this” Keyword</a></p>
<p><a href="http://www.jibbering.com/faq/faq_notes/closures.html" target="_blank">Javascript Closures</a></p>
<p><a rel="bookmark" href="http://nerd.metrocat.org/2005/09/the-magic-eval" target="_blank">The Magic Eval</a></p>
<p><a href="http://www.quirksmode.org/js/contents.html" target="_blank">Quirksmode JavaScript Tutorials</a></p>
<p><a href="http://www.digital-web.com/articles/scope_in_javascript/" target="_blank">Scope in JavaScript</a></p>
<p><a href="http://www.digital-web.com/articles/variable_scope_for_new_programmers/" target="_blank">Variable Scope for New Programmers</a></p>
<p><a href="http://javascript.crockford.com/code.html" target="_blank">Code Conventions for the JavaScript Programming Language </a></p>
<p><a href="http://www.javapassion.com/ajax/javascriptCrockford.pdf" target="_blank">The JavaScript Programming Language</a></p>
<p><a href="http://www.sitepoint.com/article/interview-doug-crockford/" target="_blank">Douglas Crockford: JavaScript Doesn’t Suck</a></p>
<p><a href="http://www.ajaxprojects.com/ajax/tutorialdetails.php?itemid=566" target="_blank">JavaScript as a Functional Language</a></p>
<p><a href="http://www.webreference.com/programming/javascript/rg25/" target="_blank">Functional JavaScript &#8211; Harnessing the power of the Function Object</a></p>
<p><a href="http://yuiblog.com/blog/" target="_blank">Yahoo! User Interface Blog</a> has these excellent resources:</p>
<p><a href="http://www.crockford.com" target="_blank">Douglas Crockford</a>, a senior <a href="http://javascript.crockford.com/" target="_blank">JavaScript</a> Architect at Yahoo! and introducer of JavaScript Object Notation (JSON) to the world, whose  <a href="http://javascript.crockford.com/javascript.html" target="_blank">JavaScript: The World&#8217;s Most Misunderstood Programming Language</a> is a must read, had a go at clearing the common JavaScript misgivings for you folks out there:</p>
<p><a title="Permanent Link to YUI Theater: Douglas Crockford, The JavaScript Programming Language" rel="bookmark" href="http://yuiblog.com/blog/2007/01/24/video-crockford-tjpl/" target="_blank">YUI Theater: Douglas Crockford, The JavaScript Programming Language</a></p>
<p><a title="Permanent Link to Video: Douglas Crockford, “An Inconvenient API: The Theory of the Dom”" rel="bookmark" href="http://yuiblog.com/blog/2006/10/20/video-crockford-domtheory/" target="_blank">Video: Douglas Crockford, “An Inconvenient API: The Theory of the Dom”</a></p>
<p><a title="Permanent Link to Video: Douglas Crockford, “Advanced JavaScript”" rel="bookmark" href="http://yuiblog.com/blog/2006/11/27/video-crockford-advjs/" target="_blank">Video: Douglas Crockford, “Advanced JavaScript”</a></p>
<p><a title="Read 'Learning JavaScript Programming Language through Video Lectures'" rel="bookmark" href="http://www.catonmat.net/blog/learning-javascript-programming-language-through-video-lectures/" target="_blank">Learning JavaScript Programming Language through Video Lectures</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Client Callbacks in ASP.Net]]></title>
<link>http://techknowlog.wordpress.com/2009/06/02/client-callbacks-in-asp-net/</link>
<pubDate>Tue, 02 Jun 2009 17:50:56 +0000</pubDate>
<dc:creator>aftab</dc:creator>
<guid>http://techknowlog.wordpress.com/2009/06/02/client-callbacks-in-asp-net/</guid>
<description><![CDATA[By Default ASP.Net pages communicate with the server through a mechanism call “PostBack”. Postback i]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>By Default ASP.Net pages communicate with the server through a mechanism call “PostBack”. Postback is very useful and efficient, except for the cases, where 1) You have a huge page, with a lot of processing required at server, so doing all that processing on every postback is not only waste of resources on the server, but also hurts the user experience. 2) You have client side variable, which will be lost on page refresh(i.e. postback).</p>
<p>You can avoid both these limitations by introducing Client <strong>Callbacks</strong> in your application. In a client callback a client side event makes a request to the server, at server the page is initiated, it members are created, however page runs a modified version of its life cycle and only method that is marked for invocation is called; that, then can return a value that can be read using another client side function. </p>
<p>Through out this process, page is available to the user and results are quick in most of the cases as on a small amount of data is being exchanged between client and the server.</p>
<p>To implement client callbacks you need to do some work both on server side as well as client side. </p>
<p>On server side, you need to: </p>
<blockquote><ol>
<li><font color="#400040">Implement ICallBackEventHandler in the page, that you want to use callbacks in. It have two methods i.e. RaiseCallbackEvent and GetCallbackResults </font></li>
<li><font color="#400040">Provide implementation for RaiseCallBackEvent, this is the method is invoked by the client to perform callbacks. This method accepts string as an argument. </font></li>
<li><font color="#400040">Provide implementation for GetCallbackResults, this method is invoked by the server, to process the request and return the results to the client as a string </font></li>
<li><font color="#400040">Retrieve a reference of a client side function (Using ClientScript.GetCallbackEventReference method), this function will be invoked as the result of server side processing, and it can be used to process any results coming back from server </font></li>
<li><font color="#0080ff"><font color="#400040">Register a client side script, using Page.ClientScript.RegisterClientScriptBlock method, that will make a call to the server.</font>&#160;</font></li>
</ol>
</blockquote>
<p>On ClientSide, you need to:</p>
<blockquote><ol>
<li><font color="#400040">Implement the function that you provided as an argument in step 4 above </font></li>
<li><font color="#400040">Call the function you registered in step 5 above, on a client side event.</font></li>
</ol>
</blockquote>
<p>Lets look at the code that you will use to implement your client call backs. In our demo project, we have two comboboxes on our asp.net page. One contains a list of departments and other a list of employees in the selected department. What we want to do is, fill employee combobox with the respective department employees, whenever our user changes department in Department combobox, without doing a postback.</p>
<p>First things First; Implement ICallbackEventHandler interface</p>
<blockquote><p><font color="#0080ff">public partial class _Default : System.Web.UI.Page,ICallbackEventHandler</font></p>
</blockquote>
<p>Implement two methods of ICallbackEventHandler</p>
<blockquote><p><font color="#0080ff">#region ICallbackEventHandler Members       <br />&#160;&#160;&#160; /// &#60;summary&#62;        <br />&#160;&#160;&#160; /// this method Returns the results of a callback event.        <br />&#160;&#160;&#160; /// &#60;/summary&#62;        <br />&#160;&#160;&#160; /// &#60;returns&#62;&#60;/returns&#62;        <br />&#160;&#160;&#160; public string </font><font color="#0080ff"><strong>GetCallbackResult()         <br /></strong>&#160;&#160;&#160; {        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; //as only strings can be sent back to the client, we are will iterate through the list of        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; //employees and convert it into comma delimited string        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; string employeelist=&#34;&#34;; </font></p>
<p><font color="#0080ff">&#160;&#160;&#160;&#160;&#160;&#160;&#160; foreach (Department dept in departmetList)       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (dept.Name == deptArg)        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; foreach (Employee emp in dept.Employeelist)        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; employeelist += emp.Name;        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; employeelist += &#34;,&#34;;        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; } </font></p>
<p><font color="#0080ff">&#160;&#160;&#160;&#160;&#160;&#160;&#160; return employeelist;       <br />&#160;&#160;&#160; } </font></p>
<p><font color="#0080ff">&#160;&#160;&#160; /// &#60;summary&#62;       <br />&#160;&#160;&#160; /// This method is invoked by the client, this will be used to receive parameter values from the client        <br />&#160;&#160;&#160; /// &#60;/summary&#62;        <br />&#160;&#160;&#160; /// &#60;param name=&#34;eventArgument&#34;&#62;&#60;/param&#62;        <br />&#160;&#160;&#160; public void </font><font color="#0080ff"><strong>RaiseCallbackEvent(string eventArgument)         <br /></strong>&#160;&#160;&#160; {        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; //right now all we are doing is to set the class level variable to eventArgument        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; //that was sent by the client, recall that it is departments name.        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; deptArg = eventArgument;        <br />&#160;&#160;&#160; }</font></p>
</blockquote>
<p>In your page_load event handler, first retrieve the reference of client function that will be invoked as the result of call back using ClientScriptManager.GetCallbackEventReference, </p>
<blockquote><p><font color="#0080ff">string callbackEventReference = Page.ClientScript.GetCallbackEventReference(this, &#34;arg&#34;, &#34;GetResults&#34;, &#34;&#34;); </font></p>
</blockquote>
<p>this method has several overloads, the one we have used takes target (in this case “page”), the “argument” that was passed by the client, name of the client side event handler that received the result of callback event and context as arguments. Context is any client script that will be evaluated prior to making a callback request. In this case we have passed an empty string.</p>
<p>Then you need to build and register a client side script, that will call this CallBackEventReference, this is the script that will make the call to the server.</p>
<blockquote><p><font color="#0080ff">string callbackScript; </font></p>
<p><font color="#0080ff">callbackScript = &#34;function CallServer(arg){&#34; + callbackEventReference + &#34;;}&#34;; </font></p>
<p><font color="#0080ff">//register callbackScript with the client using ClientScriptManager.RegisterClientScriptBlock       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; Page.ClientScript.RegisterClientScriptBlock(this.GetType(), &#34;CallServer&#34;, callbackScript, true);</font></p>
</blockquote>
<p>So this was all that you need to do in our server side code, and now we will look at the client side code that we need to write to complete our client Callback.</p>
<p>First we will write the function (using ECMAScript) in script block of our aspx file, GetResults; that we have been referencing in our code above, </p>
<blockquote><p>&#160;&#160;&#160; <font color="#0080ff">function GetResults(result)       <br />&#160;&#160;&#160; {        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(result!=&#34;&#34;)        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; var array=result.split(&#34;,&#34;);        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; for (var i=0;i&#60;array.length;i++) {        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; option = new Option(array[i],array[i]);        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; var slc_target = document.getElementById(&#34;ddlEmployee&#34;);        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; slc_target.options[i] = option;        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&#160;&#160;&#160;&#160;&#160;&#160;&#160; </font></p>
<p><font color="#0080ff">&#160;&#160;&#160;&#160;&#160;&#160;&#160; }       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; else        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; //do something        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }        <br />&#160;&#160;&#160; }</font></p>
</blockquote>
<p>This function is accepting results; which is a string and it is splitting it into an array. Then all it does is, bind “ddlEmployee” a combobox on the page, with this array.</p>
<p>and finally on a client side event of another combobox, “ddlDept”, we will invoke “CallServer” client side function that we registered using our serverside code and we will pass department as an argument.</p>
<blockquote><p><font color="#0080ff">&#60;asp:DropDownList Width=&#34;100&#34; ID=&#34;ddlDept&#34; runat=&#34;server&#34; OnChange=&#34;CallServer(ddlDept.value)&#34;&#62;</font></p>
</blockquote>
<p>I have attached the demo VS 2008 sollution <a href="http://cid-48ce8b09baf1e580.skydrive.live.com/self.aspx/Public/ClientCallBack.rar">here</a>, when you run the project, you can see that, whenever you change any value in the Department Combo box, values in Employees combobox are refereshed without making a postback to the server.</p>
<p>Download demo project <a href="http://cid-48ce8b09baf1e580.skydrive.live.com/self.aspx/Public/ClientCallBack.rar">here</a></p>
<p>And Happy Programming!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Strings, JavaScript &amp; IE]]></title>
<link>http://jaqoup.wordpress.com/2009/05/24/strings-javascript-ie/</link>
<pubDate>Sun, 24 May 2009 15:15:21 +0000</pubDate>
<dc:creator>Jaqoup</dc:creator>
<guid>http://jaqoup.wordpress.com/2009/05/24/strings-javascript-ie/</guid>
<description><![CDATA[if u r familiar with Javascript can u tell what will be the output of these lines ? var src="abcd"; ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img class="aligncenter size-full wp-image-351" src="http://jaqoup.wordpress.com/files/2009/05/ievsffvsgc.jpeg" alt="" width="300" height="225" /><br />
if u r familiar with Javascript can u tell what will be the output of these lines ?</p>
<pre class="alt2" style="border:1px inset;overflow:auto;width:300px;height:125px;text-align:left;margin:0;padding:6px;">var src="abcd";
var dest="";
for (var i=0;i&#60;4;i++)
{
          dest+=src[i];
}
alert(dest);</pre>
<p>well, it&#8217;s obvious that this fragment will produce a message box holding the string &#8220;abcd&#8221; unless u r used to code Javascript for IE</p>
<p>in Firefox or Chrome it works like a charm</p>
<p><!--more--></p>
<p>but in Internet Explorer  -i think till IE 7, i didn&#8217;t test it with 8- that will produce &#8220;undefinedundefinedundefinedundefined&#8221;</p>
<p>so why is that ?!!!!</p>
<p>that is simply because in IE u cant index char in a string using square brackets so u can not use &#8220;src[i]&#8220;</p>
<p>but instead u use src.charAt(i)</p>
<p>so the fragment would be</p>
<pre class="alt2" style="border:1px inset;overflow:auto;width:300px;height:125px;text-align:left;margin:0;padding:6px;">var src="abcd";
var dest="";
for (var i=0;i&#60;4;i++)
{
          dest+=src.charAt(i);
}
alert(dest);</pre>
<p>and that works fine with the rest of the browsers</p>
<p>i did not look for that in the ECMAscript standard but that thing in IE sucks</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[E4X]]></title>
<link>http://keepondev.wordpress.com/2009/05/09/e4x/</link>
<pubDate>Sat, 09 May 2009 00:17:50 +0000</pubDate>
<dc:creator>mostafa farghaly</dc:creator>
<guid>http://keepondev.wordpress.com/2009/05/09/e4x/</guid>
<description><![CDATA[السلام عليكم و رحمه الله تعالى و بركاته قد ذكرت فى موضوع المصفوفه فى جافاسكربت 1.6 انه تم اضافه مواص]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:right;">السلام عليكم و رحمه الله تعالى و بركاته</p>
<p style="text-align:right;" dir="rtl">قد ذكرت فى موضوع <a href="http://keepondev.wordpress.com/2009/05/06/javascript-16-array/">المصفوفه فى جافاسكربت 1.6</a> انه تم اضافه مواصفات E4X للجافاسكربت ، ال E4x -اختصار ECMA for XML- هو امتداد للغه جافاسكربت يمكننها من برمجه ال XML بطريقه ابسط بكثيرررر من ال DOM ، متاحه حاليا -وقت كتابه التدوينه- فى فايرفوكس فقط ، تم معايره مواصفات E4X بناءا على مواصفات <a rel="nofollow" href="http://www.ecma-international.org/publications/standards/Ecma-357.htm">ECMA-357 standard</a> .</p>
<p style="text-align:right;" dir="rtl">قدمت E4x كائن جديد من نوع XML يمكنك من كتابه  xml literals داخل كود جافاسكربت و برمجتها بمنتهى السهوله ، عليك اولا احاطه كود جافاسكربت بتاج &#60;script&#62; لكن مع تغير الخاصيه type إلى text/javascript;e4x=1 كما يلى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">&#60;script type="text/javascript;<strong>e4x=1</strong>"&#62;
<span style="color:#888888;">    /* JavaScript code here */</span>
&#60;/script&#62;
</span></pre>
<p style="text-align:right;" dir="rtl"><strong>إنشاء كائنات XML</strong></p>
<p style="text-align:right;" dir="rtl">يمكنك انشاء كائنات XML عن طريق E4X بطريقتين ، الطريقه الاولى عن طريق ال XML constructor كما يوضح الكود البسيط التالى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">var languages= new XML('&#60;languages type="dynamic"&#62;<span style="color:#999999;">\</span>
&#60;lang&#62;JavaScript&#60;/lang&#62;&#60;lang&#62;Python&#60;/lang&#62;&#60;/languages&#62;');</span></pre>
<p style="text-align:right;" dir="rtl">ملحوظه : ال <strong>\</strong> التى فى اخر السطر الاول لأنى قسمت النص إلى سطرين حتى يستوعبه عرض المدونه و لا يخرج عن الاطار .<br />
و الطريقه التانيه فى انشاء كائن XML هى استخدام XML literal كما يوضح الكود البسيط التالى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">var languages = &#60;languages type="dynamic"&#62;
&#60;lang&#62;JavaScript&#60;/lang&#62;
&#60;lang&#62;Python&#60;/lang&#62;
&#60;/languages&#62;;</span></pre>
<p style="text-align:right;" dir="rtl">فى كلتا الحالتين ينتج كائن من نوع XML كما يلى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">alert(typeof languages); <span style="color:#999999;">//XML</span></span></pre>
<p style="text-align:right;" dir="rtl">إذا كان ال XML المكتوب غير صحيح -كأن تنسى غلق تاج- فسينتج عنه error .</p>
<p style="text-align:right;" dir="rtl"><strong>التعامل مع المتغيرات </strong></p>
<p style="text-align:right;" dir="rtl">ال XML literal يتميز عن ال XML constructor فى انه يمكنك وضع متيغرات الجافاسكربت داخل كائن ال XML اثناء انشاءه من خلال وضع اسم المتغير داخل <strong>{  }</strong> كما يوضح الكود البسيط التالى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">var h = "html";
var text = "some text ya nas";
var doc = &#60;<strong>{h}</strong>&#62;&#60;body&#62;<strong>{text}</strong>&#60;/body&#62;&#60;/<strong>{h}</strong>&#62;;
alert(doc.toString());
<span style="color:#999999;">// </span></span><span style="color:#999999;">&#60;html&#62;&#60;body&#62;here's some text ya nas&#60;/body&#62;&#60;/html&#62;</span></pre>
<p style="text-align:right;" dir="rtl">يمكنك عمل attributes ديناميكا بنفس الطريقه كما يوضح الكود التالى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">var a = 2;
var b = &#60;foo bar=<strong>{a}</strong> &#62;&#60;/foo&#62;;<span style="color:#999999;"> //&#60;foo bar="2" &#62;&#60;/foo&#62;</span></span></pre>
<p style="text-align:right;" dir="rtl">يتم استبدال علامات التنصيص &#8220;و&#8217; و علامه الاصغر من &#60; و علامه &#38; بال entity المقابل لهم كما يوضح الكود التالى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">var b = 'he said " don\'t leave " ';
var el = &#60;foo a=<strong>{b}</strong> /&#62;;
alert(el.toString());
<span style="color:#999999;">// &#60;foo a="he said <strong>&#38;quot;</strong> don't leave <strong>&#38;quot;</strong> "&#62;</span></span></pre>
<p style="text-align:right;" dir="rtl">يمكن ايضا استخدام متغيرات الجافاسكربت لعمل اسم ال attribute كما يلى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">var a = "att";
var el = &#60;foo <strong>{a}</strong>="b" /&#62;;
alert(el.toString()); <span style="color:#999999;">//&#60;foo att="b"&#62;</span></span></pre>
<p style="text-align:right;" dir="rtl">لا يمكنك عمل التعبير كاملا عن طريق {} كما يلى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">var a = 'a="b"';
var el = &#60;foo <strong>{a}</strong>/&#62;;</span></pre>
<p style="text-align:right;" dir="rtl"><strong>التعامل مع ال atrributes </strong></p>
<p style="text-align:right;" dir="rtl">يمكنك تغير ال attributes و الحصول على قيمها عن طريق وضع @ قبل إسم ال attribute كما يوضح المثال البسيط التالى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">alert(languages.<strong>@type</strong>); // Alerts "dynamic"
languages.<strong>@type</strong> = "agile";
alert(languages.<strong>@type</strong>); // Alerts "agile"
alert(languages.toString())</span>;<span style="color:#999999;">
&#60;languages type=<strong>"agile"</strong>&#62;
    &#60;lang&#62;JavaScript&#60;/lang&#62;
    &#60;lang&#62;Python&#60;/lang&#62;
&#60;/languages&#62;</span></pre>
<p style="text-align:right;" dir="rtl">عليك ملاحظه انه لابد من تحويل قيمه ال attribute إلى نص عن طريق toString قبل مقارنته بنص اخر كما يلى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">if(languages.<strong>@type.toString()</strong> == "agile"){
<span style="color:#999999;">    // do something</span>
}</span></pre>
<p style="text-align:right;" dir="rtl"><strong>التعامل مع الكائن XML</strong></p>
<p style="text-align:right;" dir="rtl">الكائن XML الذى يتم انشاءه عن طريق E4X يحتوى على العديد من الوظائف التى تمكنك من التعامل معه و الحصول على المعلومات منه و تحديث قيمه ، هيا بنا ننشأ كائن XML جديد كما يوضح الكود التالى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">var person = &#60;person&#62;
    &#60;name&#62;Mostafa Farghaly&#60;/name&#62;
    &#60;likes&#62;
        &#60;os&#62;Windows Vista&#60;/os&#62;
        &#60;browser&#62;FireFox&#60;/browser&#62;
        &#60;language&#62;JavaScript&#60;/language&#62;
        &#60;language&#62;PHP&#60;/language&#62;
    &#60;/likes&#62;
&#60;/person&#62;
</span></pre>
<p style="text-align:right;" dir="rtl">يمكنك الحصول على معلومات الكائنات التى يحتويها الكائن person عن طريق dot notation و عن طريق معامله الكائنات كأنها داخل associative array كما يوضح الكود البسيط التالى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">alert(person.name); <span style="color:#888888;">//Mostafa Farghaly</span>
alert(person["name"]); <span style="color:#888888;">//Mostafa Farghaly</span>
alert(person.likes.browser); <span style="color:#888888;">//FireFox</span>
alert(person["likes"].browser); <span style="color:#888888;">//FireFox</span>
</span></pre>
<p style="text-align:right;" dir="rtl">الكائن الذى يتكرر اكثر من مره يدخل داخل كائن من نوع XMLList يحتوى على مجموعه مرتبه من هذه الكائنات المتشابهه و له الوظيفه length التى تبلغ عن عدد تلك الكائنات كما يلى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">alert(person.likes.language);
<span style="color:#888888;">&#60;language&#62;JavaScript&#60;/language&#62;
&#60;language&#62;PHP&#60;/language&#62;</span>
alert(person.likes.length()); <span style="color:#888888;">//2</span>
</span></pre>
<p style="text-align:right;" dir="rtl">عليك ملاحظه ان length وظيفه و ليست خاصيه كما فى حاله المصفوفه .</p>
<p style="text-align:right;" dir="rtl">و كما فى ال DOM يمكنك استخدام ال * للحصول على كل ال Child nodes كما يوضح المثال البسيط التالى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">alert(person.likes.<strong>*</strong>.length()); <span style="color:#888888;">//4</span></span></pre>
<p style="text-align:right;" dir="rtl">المعامل . يستخدم للتعامل مع الكائنات الفرعيه مباشرا من الكائن الحالى direct child nodes ، انا المعامل <strong>..</strong> فيستخدم للتعامل مع الكائنات الفرعيه بالنسبه للكائن الحالى مهما كان عمقها او مهما كانت متفرعه من كائنات اخرى فرعيه كما يوضح المثال البسيط التالى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">alert(person<strong>..</strong>*.length()); <span style="color:#888888;">//11</span></span></pre>
<p style="text-align:right;" dir="rtl">الكود السابق ارجع 11 لأنه ناتج ال element node و ال text node داخل الكائن person .</p>
<p style="text-align:right;" dir="rtl">هناك ايضا وظائف اخرى للكائن XML كما يوضح الكود البسيط التالى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">alert(person.name.<strong>text</strong>()); <span style="color:#888888;">//Mostafa Farghaly</span></span><span style="color:#008000;">
var xml = person.name.<strong>toXMLString</strong>();
<span style="color:#888888;">//&#60;name&#62;&#60;Mostafa Farghaly/name&#62;</span>
var personCopy = person.<strong>copy</strong>(); <span style="color:#888888;">//new person XML object</span>
var child1 = person.child(1); <span style="color:#888888;">// &#60;likes&#62; ... &#60;/likes&#62; element</span></span></pre>
<p style="text-align:right;" dir="rtl"><strong>التعامل مع الكائن XMLList</strong></p>
<p style="text-align:right;" dir="rtl">كما ذكرت من قبل الكائن XMLList الذى ينتج من الاستعلام عن العناصر المتشابهه له الوظيفه length الذى ترجع عدد هذه الكائنات ، كما يمكن عمل loop على هذه الكائنات من خلال for كما يوضح الكود البسيط التالى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">var languages = person.likes.language;
for(var i=0; i&#60;languages.length(); i+=1){
    alert(languages[i]);
}</span></pre>
<p style="text-align:right;" dir="rtl">كما يمكنك ايضا استخدام الجمله for each in الجديده فى جافاسكربت 1.6 -و مدعومه فى فايرفوكس فقط- للإستعلام عن قيم الكائنات كما يوضح الكود البسيط التالى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">var languages = person.likes.language;
for each(var lang in languages){
    alert(lang);
}</span></pre>
<p style="text-align:right;" dir="rtl">عليك ملاحظه ان for in تقوم بالحصول على ال key -الخصائص و الوظائف- ، انا for each in تقوم بالحصول على القيم فقط value .</p>
<p style="text-align:right;" dir="rtl">يمكنك عمل XMLList ببساطه بإستخدام طريقه ال XML literal عن طريق احاطه الكائنات الجديده ب &#60;&#62; و &#60;/&#62; كما يوضح الكود البسيط التالى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">var xml_list = <strong>&#60;&#62;</strong>
&#60;language&#62;&#60;/language&#62;
&#60;language&#62;&#60;/language&#62;
<strong>&#60;/&#62;</strong>;</span></pre>
<p style="text-align:right;" dir="rtl">و يمكنك الاضافه كائنات جديده على ال XMLList عن طريق المعامل =+ كما يوضح المثال البسيط التالى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">var languages = person.likes.language;
languages += &#60;language&#62;Ruby&#60;/language&#62;;</span></pre>
<p style="text-align:right;" dir="rtl">ال XMLList الناتج يكون Static بمعنى انه اذا اضيف عليه كائنات جديده فإن الوظيفه length لن تبلغ عن زياده كائن جديد ، عليك اعاده انشاء ال XMLList كما يوضح المثال التالى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">var languages = person.likes.language;
alert(languages.length()); <span style="color:#888888;">//2</span>
languages += &#60;language&#62;Ruby&#60;/language&#62;;</span><span style="color:#008000;">
alert(languages.length()); <span style="color:#888888;">//2</span>
languages = person.likes.languages;
alert(languages.lenght()); <span style="color:#888888;">//3</span></span></pre>
<p style="text-align:right;" dir="rtl"><strong>البحث و التنقيح</strong></p>
<p style="text-align:right;" dir="rtl">يمكنك إضافه فلتر بين قوسين () للحصول على كائن معين من بين عناصر ال XML ، يمكن اختبار ال attributes كما يوضح المثال البسيط التالى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">var html = &#60;html&#62;
    &#60;p id="p1"&#62;the 1st paragraph&#60;/p&#62;
    &#60;p id="p2"&#62;the 2nd paragraph&#60;/p&#62;
&#60;/html&#62;;

alert(html.p.<strong>(@id=="p1")</strong>); <span style="color:#888888;">// the 1st paragraph</span>
</span></pre>
<p style="text-align:right;" dir="rtl">و يمكنك عمل فلتر على العصنر كما يوضح المثال التالى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">var people = &#60;people</span>&#62;
<span style="color:#008000;">    &#60;person&#62;
        &#60;name&#62;mostafa&#60;/name&#62;
        &#60;age&#62;21&#60;/age&#62;
    &#60;/person&#62;</span>
<span style="color:#008000;">    &#60;person&#62;
        &#60;name&#62;mohamed&#60;/name&#62;
        &#60;age&#62;31&#60;/age&#62;
    &#60;/person&#62;</span><span style="color:#008000;">
&#60;/people&#62;;

alert(people.person.<strong>(name == "mohammed")</strong>.age); <span style="color:#888888;">//31</span>
</span></pre>
<p style="text-align:right;" dir="rtl">و يمكنك تمرير وظيفه للفلتر كما يوضح المثال البسيط التالى :</p>
<pre style="text-align:left;direction:ltr;font-family:tahoma;"><span style="color:#008000;">function overs30(age){
    return age&#62;30;
}
alert(people.person.(<strong>over30(parseInt(age))</strong>.name); <span style="color:#888888;">//mohammed</span></span></pre>
<p style="text-align:right;" dir="rtl"><strong>للمزيد :</strong></p>
<p style="text-align:right;" dir="rtl"><a rel="nofollow" href="https://developer.mozilla.org/en/E4X">Mozilla E4X</a><a rel="nofollow" href="https://developer.mozilla.org/en/E4X_Tutorial"><br />
Mozille E4X tutorial</a><br />
<a rel="nofollow" href="https://developer.mozilla.org/En/E4X/Processing_XML_with_E4X">Mozilla Processing XML with E4X</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Imageless Rounded Corners using Vector Graphics]]></title>
<link>http://sweatte.wordpress.com/2009/04/26/imageless-rounded-corners-using-vector-graphics/</link>
<pubDate>Sun, 26 Apr 2009 07:05:52 +0000</pubDate>
<dc:creator>psweatte</dc:creator>
<guid>http://sweatte.wordpress.com/2009/04/26/imageless-rounded-corners-using-vector-graphics/</guid>
<description><![CDATA[Here&#8217;s a few JavaScript libraries and experimental demos using SVG and VML vector graphics in ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Here&#8217;s a few JavaScript libraries and experimental demos using SVG and VML vector graphics in addition to CSS3 border-radius property to create cross-browser rounded corners without images:</p>
<p><a href="http://www.curvycorners.net/">Curvy Corners JavaScript Library</a><br />
<a href="http://labs.parkerfox.co.uk/cornerz/">Cornerz JavaScript Library</a><br />
<a href="http://www.dillerdesign.com/experiment/DD_roundies/">DD Roundies JavaScript Library</a><br />
<a href="http://www.hedgerwow.com/360/dhtml/dom-svg-vml-round-box.php">SVG and VML Round Boxes</a><br />
<a href="http://www.snook.ca/archives/html_and_css/rounded_corners_experiment_ie/">Rounded Corners using VML</a><br />
<a href="http://a.deveria.com/?p=6">SVG Multiple Images and Rounded Corners</a><br />
<a href="http://a.deveria.com/?p=205">border-radius for all</a><br />
<a href="http://www.boogdesign.com/b2evo/index.php/2009/09/02/firefox-img-rounded-corners-svg?blog=2">Rounded Corners for Image Elements in Firefox with SVG</a><br />
<a href="http://a.deveria.com/roundgen/">Rounded Corner Generator for CSS3/SVG</a><br />
<a href="http://elv1s.ru/files/html+css/vector-corners.html">Vector Corners using SVG, VML, and CSS</a><br />
<a href="http://sample.revulo.com/JavaScript/border-radius.html">Emulating CSS border-radius using VML</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Cool JavaScript Projects]]></title>
<link>http://sweatte.wordpress.com/2009/04/21/cool-javascript-projects/</link>
<pubDate>Tue, 21 Apr 2009 19:44:55 +0000</pubDate>
<dc:creator>psweatte</dc:creator>
<guid>http://sweatte.wordpress.com/2009/04/21/cool-javascript-projects/</guid>
<description><![CDATA[Here&#8217;s a collection of articles on JavaScript games and animation demos that push the limits o]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Here&#8217;s a collection of articles on JavaScript games and animation demos that push the limits of browser-based graphics using sprites and canvas, SVG, or VML based vector graphics:</p>
<p><a href="http://www.brothercake.com/games/underground/underground.html">3D Corridor Game</a><br />
<a href="http://www.abrahamjoffe.com.au/ben/canvascape/">HTML5 Canvas JavaScript FPS</a><br />
<a href="http://www.wolf5k.com/faq.html">Wolfenstein 5K</a><br />
<a href="http://henrikfalck.com/unrealsoccer/">Unreal Soccer</a><br />
<a href="http://games.nihilogic.dk">Nihilogic JavaScript Games</a><br />
<a href="http://www.def-logic.com/games.html">Def-Logic JavaScript/ActionScript Arcade Games</a><br />
<a href="http://www.themaninblue.com/writing/perspective/2008/11/17/">JavaScript Drum Machine</a><br />
<a href="http://www.sinkmyship.com/battleship/">JavaScript Battleship! Game</a><br />
<a href="http://live-chess.com/">JavaScript Chess Game</a><br />
<a href="http://www.xs4all.nl/~hwiegman/hcheckers1.html">JavaScript Checkers Game</a><br />
<a href="http://www.pixelinstrument.net/portfolio/ourdemos/arkanoid.php">JavaScript Arkanoid Port</a><br />
<a href="http://www.masswerk.at/JavaPac/JS-PacMan3D.html">JavaScript 3D PacMan Port</a><br />
<a href="http://deanm.github.com/pre3d/">Pre3D JavaScript Engine</a><br />
<a href="http://www.webresourcesdepot.com/25-amazing-javascript-games-some-fun-and-inspiration/">25 Amazing JavaScript Games</a><br />
<a href="http://www.suzhoukada.com/index.php/2008-12-04-09-08-40/103-50-websites-that-make-amazing-use-of-javascript">Fifty Websites that Make Amazing use of JavaScript</a><br />
<a href="http://www.chromeexperiments.com/">Chrome Experiments</a><br />
<a href="http://dev.opera.com/articles/view/creating-pseudo-3d-games-with-html-5-can-1/">3D Games with HTML5</a><br />
<a href="http://dev.opera.com/articles/view/3d-games-with-canvas-and-raycasting-part-2/">3D Games with HTML5 Part 2</a><br />
<a href="http://www.nczonline.net/blog/2005/2/3/javascript_game_programming">JavaScript Game Programming</a><br />
<a href="http://jsmsxdemo.googlepages.com/jsmsx.html">JsMSX Emulator</a><br />
<a href="http://www.wxjavascript.net/">wxJavaScript UI Library</a><br />
<a href="http://www.sean.co.uk/a/webdesign/javascript_gamelib/javascript_gamelib.shtm">Gamelib JavaScript Library</a><br />
<a href="http://gamequery.onaluf.org/">GameQuery JavaScript Library</a><br />
<a href="http://www.tommysmind.com/gamejs/">GameJS JavaScript Library</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[IE8 CSS and JavaScript Improvements]]></title>
<link>http://sweatte.wordpress.com/2009/03/19/ie8-css-and-javascript-improvements/</link>
<pubDate>Thu, 19 Mar 2009 08:24:40 +0000</pubDate>
<dc:creator>psweatte</dc:creator>
<guid>http://sweatte.wordpress.com/2009/03/19/ie8-css-and-javascript-improvements/</guid>
<description><![CDATA[Here&#8217;s a collection of articles on the W3C standards compliance enhancements and modern featur]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Here&#8217;s a collection of articles on the W3C standards compliance enhancements and modern features introduced in IE8:</p>
<p><a href="http://www.microsoft.com/windows/internet-explorer/readiness/developers-new.aspx">IE8 Web Developer Readiness Summary</a></p>
<p><a href="http://www.legendscrolls.co.uk/webstandards/ie">Web Standards Support in IE8</a></p>
<p><a href="http://www.howtocreate.co.uk/ie8.html">Overview of Changes in IE8</a></p>
<p><a href="http://msdn.microsoft.com/en-us/library/cc304082(VS.85).aspx">CSS Improvements in IE8</a></p>
<p><a href="http://blogs.msdn.com/jscript/archive/2009/04/17/versioning-language-features-in-jscript.aspx">Versioning Language Features in JScript</a></p>
<p><a href="http://msdn.microsoft.com/en-us/library/dd282900(VS.85).aspx">DOM Object Prototypes in IE8</a></p>
<p><a href="http://msdn.microsoft.com/en-us/library/cc288326(VS.85).aspx">Selectors API in IE8</a></p>
<p><a href="http://msdn.microsoft.com/en-us/library/dd361842(VS.85).aspx">Circular Memory Leak Mitigation in IE8</a></p>
<p><a href="http://msdn.microsoft.com/en-us/library/dd229916(VS.85).aspx">Accessor Support in IE8</a></p>
<p><a href="http://msdn.microsoft.com/en-us/library/cc304133(VS.85).aspx">HTML Enhancements in IE8</a></p>
<p><a href="http://blogs.msdn.com/ie/archive/2009/03/12/site-compatibility-and-ie8.aspx">Differences between IE8 Compatibility View and IE7</a></p>
<p><a href="http://blogs.msdn.com/ie/archive/2009/02/19/the-css-corner-using-filters-in-ie8.aspx">Using Filters in IE8</a></p>
<p><a href="http://www.brunildo.org/test/IE8_alpha_filter.html">IE8 Alpha Opacity Filter</a></p>
<p><a href="http://idreamincode.co.uk/ie8-bugs">IE8 CSS Bugs</a></p>
<p><a href="http://hsivonen.iki.fi/doctype/ie8-mode.png">IE8 Compatibility Mode Triggers Diagram</a></p>
<p><a href="http://blogs.msdn.com/ie/archive/2008/03/18/webbrowser-control-rendering-modes-in-ie8.aspx">WebBrowser Control Rendering Modes in IE8</a></p>
<p><a href="http://blogs.msdn.com/ie/archive/2009/07/01/ie-compatibility-list-pruning.aspx">IE Compatibility List Pruning</a></p>
<p><a href="http://blogs.msdn.com/ie/archive/2009/02/06/compatibility-list-faq.aspx">Compatibility List FAQ</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Event Propagation and Delegation in JavaScript, ActionScript, and MXML]]></title>
<link>http://sweatte.wordpress.com/2009/03/01/event-propagation-and-delegation-in-javascript-actionscript-and-mxml/</link>
<pubDate>Sun, 01 Mar 2009 04:40:53 +0000</pubDate>
<dc:creator>psweatte</dc:creator>
<guid>http://sweatte.wordpress.com/2009/03/01/event-propagation-and-delegation-in-javascript-actionscript-and-mxml/</guid>
<description><![CDATA[Here&#8217;s a collection of articles detailing the uses and limitations of event propagation in Jav]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Here&#8217;s a collection of articles detailing the uses and limitations of event propagation in JavaScript, ActionScript and the frameworks based on them.</p>
<p><a href="http://ap-project.org/English/Article/View/7/">Event Delegation without a JavaScript Library</a></p>
<p><a href="http://www.robertnyman.com/2008/05/04/event-delegation-with-javascript/">Event Delegation with JavaScript</a></p>
<p><a href="http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html">Delegating the focus and blur events</a></p>
<p><a href="http://yuiblog.com/blog/2008/10/07/onfocus-onblur/">onfocus and onblur Implementation in YUI</a></p>
<p><a href="http://dev.opera.com/articles/view/event-capture-explained/">Event Capture Explained</a></p>
<p><a href="http://catcode.com/domcontent/events/">Using Events in the Document Object Model</a></p>
<p><a href="http://www.sitepoint.com/blogs/2008/07/23/javascript-event-delegation-is-easier-than-you-think/">Event Delegation is Easier than you Think</a></p>
<p><a href="http://www.quirksmode.org/js/events_order.html">JavaScript Event Order</a></p>
<p><a href="http://www.ibm.com/developerworks/xml/library/x-events/">XML DOM Events</a></p>
<p><a href="http://icant.co.uk/sandbox/bonsaimenu/index.html">Tree Menu using Event Delegation and YUI</a></p>
<p><a href="http://www.danwebb.net/2008/2/8/event-delegation-made-easy-in-jquery">Event Delegation in jQuery</a></p>
<p><a href="http://www.thefutureoftheweb.com/blog/jquery-live-events">jQuery Live Events</a></p>
<p><a href="http://code.google.com/p/reglib/w/list">Reglib Event Delegation Library</a></p>
<p><a href="http://icant.co.uk/sandbox/eventdelegation/">Event Delegation with YUI</a></p>
<p><a href="https://developer.apple.com/internet/webcontent/eventmodels.html">Supporting Three Event Models at Once</a></p>
<p><a href="https://developer.mozilla.org/En/XUL_Event_Propagation">XUL Event Propagation</a></p>
<p><a href="http://livedocs.adobe.com/flex/3/html/events_08.html">Event Propagation in Flex</a></p>
<p><a href="http://livedocs.adobe.com/flex/2/langref/flash/events/Event.html">Flex Event Object</a></p>
<p><a href="http://learn.adobe.com/wiki/display/Flex/Event+Propagation">Flex Event Propagation Visualization</a></p>
<p><a href="http://www.adobe.com/devnet/actionscript/articles/event_handling_as3_print.html">Introduction to Event Handling in ActionScript 3.0</a></p>
<p><a href="http://www.senocular.com/flash/tutorials/buttoncapturing/">Button Capturing in ActionScript 1 and Actionscript 2</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[JavaScript and ActionScript Memoization]]></title>
<link>http://sweatte.wordpress.com/2009/02/28/javascript-and-actionscript-memoization/</link>
<pubDate>Sat, 28 Feb 2009 20:11:03 +0000</pubDate>
<dc:creator>psweatte</dc:creator>
<guid>http://sweatte.wordpress.com/2009/02/28/javascript-and-actionscript-memoization/</guid>
<description><![CDATA[Here&#8217;s a few articles explaining memoization techniques in JavaScript and ActionScript: Memoiz]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Here&#8217;s a few articles explaining memoization techniques in JavaScript and ActionScript:</p>
<p><a href="http://blog.pettomato.com/?p=23">Memoization in ActionScript 3</a><br />
<a href="http://blog.stevenlevithan.com/archives/timed-memoization">Memoization in JavaScript with an Expiration Time</a><br />
<a href="http://talideon.com/weblog/2005/07/javascript-memoization.cfm">Basic JavaScript Memoization</a><br />
<a href="http://osteele.com/archives/2006/04/javascript-memoization">Variations of JavaScript Memoization</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Learn JavaScript and learn it properly]]></title>
<link>http://bjarlestam.wordpress.com/2009/02/25/learn-javascript-and-learn-it-properly/</link>
<pubDate>Wed, 25 Feb 2009 23:56:10 +0000</pubDate>
<dc:creator>bjarlestam</dc:creator>
<guid>http://bjarlestam.wordpress.com/2009/02/25/learn-javascript-and-learn-it-properly/</guid>
<description><![CDATA[JavaScript is the global web version of the unix shell script, simply increadibly useful. With tools]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>JavaScript is the global web version of the unix shell script, simply increadibly useful. With tools like <a title="Ubiquity" href="http://labs.mozilla.com/projects/ubiquity/" target="_blank">ubiquity</a> and <a title="Greasemonkey" href="https://addons.mozilla.org/en-US/firefox/addon/748" target="_blank">greasemonkey</a> you can do lots of cool stuff. Also all the nice frameworks, GUI components and the JSON APIs makes it a very useful language.</p>
<p>So to help you learn JavaScript and for my own reference I have listed some really good resources</p>
<p>The JavaScript Programming Language<br />
<a href="http://video.yahoo.com/watch/111593/1710507" target="_blank">http://video.yahoo.com/watch/111593/1710507</a><br />
<a href="http://video.yahoo.com/watch/111594/1710553" target="_blank">http://video.yahoo.com/watch/111594/1710553</a><br />
<a href="http://video.yahoo.com/watch/111595/1710607" target="_blank">http://video.yahoo.com/watch/111595/1710607</a><br />
<a href="http://video.yahoo.com/watch/111596/1710658" target="_blank">http://video.yahoo.com/watch/111596/1710658</a></p>
<p>Advanced JavaScript<br />
<a href="http://video.yahoo.com/watch/111585/1027823" target="_blank">http://video.yahoo.com/watch/111585/1027823</a><br />
<a href="http://video.yahoo.com/watch/111586/1027832" target="_blank">http://video.yahoo.com/watch/111586/1027832</a><br />
<a href="http://video.yahoo.com/watch/111587/1027854" target="_blank">http://video.yahoo.com/watch/111587/1027854</a></p>
<p>JavaScript &#8211; The Good Parts<br />
<a href="http://video.yahoo.com/watch/630959/2974197" target="_blank">http://video.yahoo.com/watch/630959/2974197</a></p>
<p>Interactive tutorial by John Resig:<br />
<a href="http://ejohn.org/apps/learn/" target="_blank">http://ejohn.org/apps/learn/</a></p>
<p>JavaScript best practices<br />
<a href="http://www.slideshare.net/cheilmann/javascript-best-practices-1041724" target="_blank">http://www.slideshare.net/cheilmann/javascript-best-practices-1041724</a></p>
<p>Blogs:<br />
<a href="http://www.robertnyman.com/">http://www.robertnyman.com/</a><br />
<a href="http://www.wait-till-i.com/">http://www.wait-till-i.com/</a><br />
<a href="http://remysharp.com/">http://remysharp.com/</a><br />
<a href="http://frontendbook.com/">http://frontendbook.com/</a><br />
<a href="http://mattsnider.com/" target="_blank">http://mattsnider.com/</a><br />
<a href="http://ejohn.org/">http://ejohn.org/</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[JavaScript Engine]]></title>
<link>http://namingexception.wordpress.com/2009/02/21/javascript-engine/</link>
<pubDate>Sat, 21 Feb 2009 17:27:23 +0000</pubDate>
<dc:creator>Dhe-Jhe</dc:creator>
<guid>http://namingexception.wordpress.com/2009/02/21/javascript-engine/</guid>
<description><![CDATA[Setelah beberapa hari yang lalu gw mempost Google Chrome, kali ini gw bakal mempost sesuatu yang ter]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><span style="font-size:10pt;font-family:Arial;">Setelah beberapa hari yang lalu gw mempost <span class="yshortcuts">Google Chrome</span>, kali ini gw bakal mempost sesuatu yang tertanam di dalem Chrome atopun Browser laen : <strong>JavaScript Engine </strong>atau kalau kita mau mengikuti standar para pengembang Engine adalah<strong> EcmaScript Engine.</strong></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:Arial;"><strong><br />
</strong></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">Mungkin kalian tau kalau sekarang mungkin semua browser uda mensupport javascript, tapi mungkin ada yang bingung kenapa kalo web nya dibuka pake IE beda hasilnya sama dibuka sama Mozilla ato Opera, malah ga cuma beda, bisa juga code javascript kita ga jalan, alias Crash Total,  nah untuk hal itu, bukan salah programmer, tapi kesalahan si pembuat JavaScript Engine nya  (pokoke, programer web ga mau disalahin T_T)</span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:Arial;"><br />
</span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">Nah ada beberapa engine yang tenar and dipake di browser-browser kenamaan.. kaya Opera, Mozilla, IE, en tentu aja Chrome. En beberapa engine tersebut bakal gw bahas disini, kl ga lengkap bahasannya sori ya.. soalnya susah loh browsing cari artikel + coding kerjaan kantor + inet dengan cap “semoga kebuka”   ..hoho</span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">Disini gw cuma bahas 4 browser, and 2 engine, soalnya ada 2 browser yang gw ga tau pake engine apa, Opera 9.63 and IE 6.0 mungkin kl ada yang tau bisa share disini.. <span> </span>So ada 4 browser yang bakal gw bahas, yaitu:</span></p>
<p class="MsoNormal" style="margin-left:39pt;text-indent:-.25in;"><!--[if !supportLists]--><span style="font-family:Symbol;"><span>·<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:10pt;font-family:Arial;">IE 6.0</span></p>
<p class="MsoNormal" style="margin-left:39pt;text-indent:-.25in;"><!--[if !supportLists]--><span style="font-family:Symbol;"><span>·<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:10pt;font-family:Arial;">Goggle Chrome 1.0.154.48</span></p>
<p class="MsoNormal" style="margin-left:39pt;text-indent:-.25in;"><!--[if !supportLists]--><span style="font-family:Symbol;"><span>·<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:10pt;font-family:Arial;">Mozilla 3.06</span></p>
<p class="MsoNormal" style="margin-left:39pt;text-indent:-.25in;"><!--[if !supportLists]--><span style="font-family:Symbol;"><span>·<span style="font-family:&#34;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;"> </span></span></span><!--[endif]--><span style="font-size:10pt;font-family:Arial;">Opera 9.63</span></p>
<p class="MsoNormal"><strong><span style="font-size:10pt;font-family:Arial;"> </span></strong></p>
<p><strong><span style="font-size:10pt;font-family:Arial;">Rhino</span></strong></p>
<p><span style="font-size:10pt;font-family:Arial;">Rhino adalah engine JS yang dibuat pake bahasa JAVA, (jangan keliru ya antara JAVA dan JavaScript adalah 2 hal yang berbeda) oleh Mozilla Foundation, selain Rhino, juga ada engine JS laen buatan Mozilla yaitu Spider Monkey yang dibuat pake bahasa C, and juga Carakan yang sedang dikembangin en bakal diimplement pada versi Opera 10.</span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">Cara kerja Rhino adalah, javascript diconvert menjadi Java Class and setelah itu baru lah script dijalankan oleh Java Virtual Machine (JVM). Menurut wiki, Rhino 1.6r2 uda dibundled dengan J2SE 6 keluaran SUN, so buat para developer lebih gampang buat gunain javascript di program mereka. Tapi harus diperhatiin, cuma J2SE 6 keluaran SUN <span> </span>yang ngebundled Javascript engine ini, en JVM keluaran vendor laennya ga ngebundled Rhino, seperti Apache Harmony, Excelsior JET<span> ,</span>Microsoft JVM<span> ,</span> IBM J9, <strong><span style="font-family:Arial;font-weight:normal;">JRockit (BEA/Oracle</span></strong><strong><span style="font-family:Arial;">), </span></strong><strong><span style="font-family:Arial;font-weight:normal;">dll.</span></strong></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:Arial;"><strong><span style="font-family:Arial;font-weight:normal;"><br />
</span></strong></span></p>
<p class="MsoNormal"><strong><span style="font-size:10pt;font-family:Arial;">V8</span></strong></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">V8 adalah Engine Javascript<span> </span>yang terpasang pada browser Google Chrome.<span> </span>V8 adalah buatan Google sendiri, dikembangkan secara khusus oleh Team yang berbasis di Denmark. Engine ini diklaim sebagai Engine Java Script tercepat dibanding para kompetitornya. V8 dikembangkan secara open source dengan lisensi BSD, so kalo ada yang mau utak atik enginenya.. monggo diunduh dari: <a href="http://code.google.com/p/v8/">http://code.google.com/p/v8/</a> jangan lupa, kudu bisa C++ buat utak atiknya </span></p>
<p class="MsoNormal">
<p class="MsoNormal">
<p class="MsoNormal"><strong><span style="font-size:10pt;font-family:Arial;">Benchmarking</span></strong></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">Ga puas kaynya kalo ga liat sendiri adu performance JS Engine masing-masing browser, so gw benchmark JS pake 3 benchmarker yang uda cukup tenar:</span></p>
<ul type="disc">
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">V8 Benchmarker: <a href="http://v8.googlecode.com/svn/data/benchmarks/v3/run.html">http://v8.googlecode.com/svn/data/benchmarks/v3/run.html</a></span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">Dromaeo:<a href="http://www.dromaeo.com/">http://www.dromaeo.com</a></span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">SunSpider: <span> </span><a href="http://www2.webkit.org/perf/sunspider-0.9/sunspider-driver.html" target="_blank"><span class="yshortcuts">http://www2.webkit.org/perf/sunspider-0.9/sunspider-driver.html</span></a></span></li>
</ul>
<p class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">Suprisingly, berdasar benchmark yang gw lakuin di 3 engine benchmark berbeda: SunSpider, Dromaeo, en V8, hasilnya nunjukkin hasil yang relatif sama, Chrome di posisi 1 and IE jadi juru kunci, pos 2 and 3 ganti-gantian, antara mozilla and opera..<br />
</span></p>
<ol type="1">
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">Chrome: engine V8</span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">Mozilla: engine Rhino  (pos 2 ato 3)<br />
</span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">Opera 9.63:      (pos 2 ato 3)<br />
</span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">IE 6:<br />
</span></li>
</ol>
<p class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">And ini graph perbandingannya</span></p>
<p class="MsoNormal" style="text-align:center;"><span style="font-size:10pt;font-family:Arial;"><a href="http://namingexception.wordpress.com/files/2009/02/sunspider1.png" target="_blank"><img class="size-medium wp-image-41 aligncenter" title="sunspider1" src="http://namingexception.wordpress.com/files/2009/02/sunspider1.png?w=300" alt="sunspider1" width="300" height="231" /></a><br />
</span></p>
<p class="MsoNormal" style="text-align:center;" align="center">
<p class="MsoNormal" style="text-align:center;" align="center"><span style="font-size:10pt;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="text-align:center;" align="center"><span style="font-size:10pt;font-family:Arial;"><!--[if gte vml 1]&#62;  &#60;![endif]--><!--[if !vml]--></span></p>
<p class="MsoNormal" style="text-align:center;" align="center">
<p class="MsoNormal" style="text-align:center;" align="center"><span style="font-size:10pt;font-family:Arial;"><a href="http://namingexception.files.wordpress.com/2009/02/v81.png"><img class="alignnone size-medium wp-image-39" title="v81" src="http://namingexception.wordpress.com/files/2009/02/v81.png?w=300" alt="v81" width="300" height="231" /></a><br />
</span></p>
<p class="MsoNormal" style="text-align:center;" align="center"><span style="font-size:10pt;font-family:Arial;"> </span></p>
<p class="MsoNormal"><a href="http://namingexception.wordpress.com/files/2009/02/dromaeo.png"><img class="aligncenter size-medium wp-image-40" title="dromaeo" src="http://namingexception.wordpress.com/files/2009/02/dromaeo.png?w=300" alt="dromaeo" width="300" height="231" /></a></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">Emank, dari ketiga benchmark itu, Chrome dengan V8 nya jadi jawara dengan perbedaan yang banget signifikan, en IE kali ini jadi pihak yang kalah telak (sori loh buat penggemar IE =d), hasil graph juga nunjukkin kalo performance javascript engine punya IE bener2 kaco.. khusus untuk testing dromaeo, IE gw sampe crash and ga bisa di test benchmarknya.. so untuk urusan JS, IE is a crap…</span></p>
<p class="MsoNormal">
<p class="MsoNormal"><span style="font-size:10pt;font-family:Arial;color:#4d4d4d;">Back to V8, menurut keterangan yang gw dapet dari </span><span class="apple-style-span"><span style="font-size:10pt;font-family:Arial;color:blue;"><a href="http://code.google.com/apis/v8/design.html">http://code.google.com/apis/v8/design.html</a>, </span></span><span class="apple-style-span"><span style="font-size:10pt;font-family:Arial;">V8 bisa unggul karena 3 fitur utama mereka:</span></span></p>
<ul type="disc">
<li class="MsoNormal"><em><span style="font-size:10pt;font-family:Arial;">Source code</span></em><span class="apple-converted-space"><span style="font-size:10pt;font-family:Arial;"> </span></span><span style="font-size:10pt;font-family:Arial;">JavaScript      yang dikompilasi langsung menjadi<span class="apple-converted-space"> </span><em>native      machine code</em><span class="apple-converted-space"> </span>saat      pertama kali </span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">Sistem manajemen memori efisien yang      menghasilkan alokasi obyek cepat dan jeda waktu yang sangat kecil dalam      proses<span class="apple-converted-space"> </span><em>garbage collection</em>.</span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">Penggunaan<span class="apple-converted-space"> </span><em>hidden      class</em><span class="apple-converted-space"> </span>dan<span class="apple-converted-space"> </span><em>inline cache</em><span class="apple-converted-space"> </span>yang mempercepat<span class="apple-converted-space"> </span><em>function call</em>.</span></li>
</ul>
<p class="MsoNormal"><span style="font-size:10pt;font-family:Arial;color:#4d4d4d;">Mungkin untuk lebih jelas soal tekniknya, bisa liat dari<span> </span></span><span class="apple-style-span"><span style="font-size:10pt;font-family:Arial;color:blue;"><a href="http://code.google.com/apis/v8/design.html">http://code.google.com/apis/v8/design.html </a></span></span></p>
<p class="MsoNormal"><span class="apple-style-span"><span style="font-size:10pt;font-family:Arial;color:blue;"><span> </span></span></span></p>
<p class="MsoNormal"><span style="font-family:Arial;"> </span></p>
<p class="MsoNormal">So mo pake yg mana? kalian sendiri yang menentukan, emank seh IE cupu soal JS, tapi mungkin ada fitur laen di IE yang kalian suka, ya silakan aja pake, wong gw sendiri lebih prefer pake mozilla =d</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[JavaScript - Most Misunderstood Programming Language]]></title>
<link>http://vinaytech.wordpress.com/2008/10/14/javascript-most-misunderstood-programming-language/</link>
<pubDate>Tue, 14 Oct 2008 14:57:55 +0000</pubDate>
<dc:creator>Vinay</dc:creator>
<guid>http://vinaytech.wordpress.com/2008/10/14/javascript-most-misunderstood-programming-language/</guid>
<description><![CDATA[JavaScript, aka Mocha, aka LiveScript, aka JScript, aka ECMAScript, is one of the world&#8217;s most]]></description>
<content:encoded><![CDATA[JavaScript, aka Mocha, aka LiveScript, aka JScript, aka ECMAScript, is one of the world&#8217;s most]]></content:encoded>
</item>
<item>
<title><![CDATA[Latest major browsers performance on Dromaeo]]></title>
<link>http://nanojit.wordpress.com/2008/09/11/latest-major-browsers-performance-on-dromaeo/</link>
<pubDate>Thu, 11 Sep 2008 18:41:38 +0000</pubDate>
<dc:creator>nanojit</dc:creator>
<guid>http://nanojit.wordpress.com/2008/09/11/latest-major-browsers-performance-on-dromaeo/</guid>
<description><![CDATA[Test machine: Celeron D 331 2,66Ghz 512MB DDR 400Mhz Windows XP SP3 Chrome ( Chrome/0.2.149.29 ) htt]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Test machine:</p>
<p>Celeron D 331 2,66Ghz<br />
512MB DDR 400Mhz<br />
Windows XP SP3</p>
<p>Chrome ( Chrome/0.2.149.29 )<br />
<a href="http://dromaeo.com/?id=41149"> http://dromaeo.com/?id=41149</a></p>
<p>Firefox Nightly Build with JIT ( Gecko/20080910043000 )<br />
<a href="http://dromaeo.com/?id=41155"> http://dromaeo.com/?id=41155</a></p>
<p>Opera 9.60 Beta 1 ( Presto/2.1.1 )<br />
<a href="http://dromaeo.com/?id=41166"> http://dromaeo.com/?id=41166</a></p>
<p>Summary:</p>
<p><a href="http://dromaeo.com/?id=41149,41155,41166">http://dromaeo.com/?id=41149,41155,41166</a></p>
<table class="results" border="0">
<tbody>
<tr>
<th class="name">Total:</th>
<th class="name">Chrome</p>
<p>21074.60ms ±10.17%</th>
<th class="name winner">Firefox</p>
<p>16490.80ms ±4.07%</th>
<th class="name">Opera</p>
<p>23313.40ms ±6.15%</th>
<th>Winning</p>
<p>28%</th>
</tr>
</tbody>
</table>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Bloggar, SEO, RSS och sökbarhet i Flash av F-I]]></title>
<link>http://edenstrom.wordpress.com/2008/09/09/bloggar-seo-rss-och-sokbarhet-i-flash-av-f-i/</link>
<pubDate>Tue, 09 Sep 2008 11:53:03 +0000</pubDate>
<dc:creator>edenstrom</dc:creator>
<guid>http://edenstrom.wordpress.com/2008/09/09/bloggar-seo-rss-och-sokbarhet-i-flash-av-f-i/</guid>
<description><![CDATA[Svenska F-I (Fantasy Interactive) har tagit sig an utmaningen att ersätta HTML med Flash. De gillar ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Svenska <a href="http://www.f-i.com">F-I</a> (Fantasy Interactive) har tagit sig an utmaningen att ersätta HTML med Flash. De gillar inte <a href="http://en.wikipedia.org/wiki/AJAX">AJAX</a> eller <a href="http://www.microsoft.com/Silverlight/">Silverlight</a>, liksom.</p>
<p>Utöver den sedvanliga filmvisaren har de i sommar byggt upp en egen Flashbaserad bloggmotor (<a href="http://www.thinkswedish.com/about_propod">Propod</a>) och ett eget Flashbaserat <a href="http://www.thinkswedish.com/#ContentHolder:feed=blog&#38;Entries:0=entry+1=968">publiceringssystem</a> (verkar främst vara för <a href="http://www.f-i.com">f-i.com</a>).<br />
<a href="http://edenstrom.files.wordpress.com/2008/09/flash_seo_f-i.jpg"><img class="alignnone size-medium wp-image-645" title="flash seo f-i" src="http://edenstrom.wordpress.com/files/2008/09/flash_seo_f-i.jpg?w=205" alt="" width="229" height="335" /></a></p>
<p><a href="http://www.f-i.com">F-I</a> har med <a href="en.wikipedia.org/wiki/E4X">E4X</a> (ECMAScript for XML) i <a href="http://en.wikipedia.org/wiki/ActionScript">Actionscript 3</a> lyft Flash till nya nivåer. De har t ex byggt upp fullskalig navigering genom XHTML-filer i Flash som läses via Javascript. Stöd för browser &#8220;back&#8221; &#8220;forth&#8221; finns, likväl som scrollning samt delvis copy-paste. RSS-stöd och vissa sociala bokmärken likså. Och 83 sidor har <a href="http://www.google.se/search?num=50&#38;hl=sv&#38;q=site%3Ahttp%3A%2F%2Fwww.thinkswedish.com&#38;meta=">SEO anpassats för bl a Google</a>.</p>
<p>Några övriga, &#8220;trevliga&#8221; detaljer med arbetet är egen högermeny och &#8211; så klart &#8211; trevliga animationer vart administratören än önskar.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[APE - Actionscript Physics Engine]]></title>
<link>http://rapd.wordpress.com/2008/08/31/ape-actionscript-physics-engine/</link>
<pubDate>Sun, 31 Aug 2008 20:53:07 +0000</pubDate>
<dc:creator>didip</dc:creator>
<guid>http://rapd.wordpress.com/2008/08/31/ape-actionscript-physics-engine/</guid>
<description><![CDATA[APE is open source 2D physics engine for Flash or Flex. Written by Alex Cove. Demo:   Resources: APE]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>APE is open source 2D physics engine for Flash or Flex. Written by Alex Cove.</p>
<p><strong>Demo:</strong></p>
<p><a href="http://www.cove.org/ape/demo2.htm" target="_blank"><img src="http://www.cove.org/ape/img/demo2.png" alt="Crab demo" /></a> </p>
<p><strong>Resources:</strong></p>
<ul>
<li><a href="http://www.cove.org/ape/" target="_blank">APE main page</a></li>
<li><a href="http://www.cove.org/ape/demo2.htm" target="_blank">Crab robot demo</a></li>
<li><a href="http://ape.googlecode.com/svn/" target="_blank">APE SVN repository</a></li>
</ul>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[jQuery Basics]]></title>
<link>http://viralscript.wordpress.com/2008/08/30/jquery-basics/</link>
<pubDate>Sat, 30 Aug 2008 22:23:39 +0000</pubDate>
<dc:creator>Viral</dc:creator>
<guid>http://viralscript.wordpress.com/2008/08/30/jquery-basics/</guid>
<description><![CDATA[When starting off with jQuery, you obviously need to know the basics, like the most common functions]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>When starting off with jQuery, you obviously need to know the basics, like the most common functions, the way you lay out the code, and the chaining.</p>
<p>1. <strong>Reason for use &#8211; </strong>jQuery is a widely used JavaScript library because it &#8216;closes the gap&#8217; with common cross-browser compatibilty in JavaScript. It simplifies many functions that are already available in JavaScript and also adds it&#8217;s own ones that are easily used.</p>
<p>2. <strong>Chaining &#8211; </strong>If you have ever been reccomended jQuery by someone else, I am sure they used the term &#8216;chaining&#8217; somewhere in their persuasive speech. Why? Because chaining is the most useful advantage the jQuery library gives you. Here is an example of chaining:</p>
<blockquote><p><em>$(&#8220;#submenu&#8221;).html(&#8220;Hello World&#8221;).remove();</em></p></blockquote>
<p>In the above &#8217;snippet&#8217;, I have changed the innerHTML of the element with the ID &#8217;submenu&#8217; to &#8216;Hello World!&#8217; and then removed it from the page.<br />
The plain JavaScript variation of this is as follows:</p>
<blockquote><p><em>var submenu = document.getElementById(&#8220;submenu&#8221;);<br />
submenu.innerHTML = &#8220;Hello World!&#8221;;<br />
submenu.parentNode.removeChild(submenu);</em></p></blockquote>
<p>Now that&#8217;s a noticeable difference. When using jQuery effects like sliding and fading, the difference does become a lot greater, which we will work on later.</p>
<p>3. <strong>Basic Functions &#8211; </strong>As you have seen in the example I gave, I used 3 different functions.</p>
<ol>
<li><em>$(&#8220;&#8221;);</em></li>
<li><em>.html(&#8220;&#8221;);</em></li>
<li><em>.remove();</em></li>
</ol>
<ol>
<li>This is what starts the jQuery. From here on out, I&#8217;ll call it the selector. This nifty thing allows you to grab either one element from the page, or an array of elements and then reference it to any functions that follow in the chain. If you were to use:<br />
<blockquote><p><em>$(&#8220;<strong>.</strong>CSSclass&#8221;);</em></p></blockquote>
<p>That would select every element on the page that has the class <em>CSSclass</em>, notice the period ( <strong>.</strong> ).</p>
<blockquote><p><em>$(&#8220;<strong>#</strong>CSSid&#8221;);</em></p></blockquote>
<p>That selects every element on the page that has the ID <em>CSSid</em> although it should be noted that you should only use the same ID once, i.e no repititions of IDs. Notice the hash ( <strong>#</strong> ).</p>
<p>So we&#8217;ve looked at the jQuery alternatives to <em>document.getElementById()</em> and <em>document.getElementsByClassName()</em> (which is not in the DOM actually). The only other one is <em>document.getElementsByTagName()</em>. This also has an alternative in jQuery, much like the ID selector and the className selector, but you only use the name of the element. For example, if I wanted to grab all instances of the paragraph element, I would use:</p>
<blockquote><p><em>$(&#8220;p&#8221;);</em></p></blockquote>
<p>Notice that there is no period, hash, or anything else added, just the element name.</li>
<li>This is the innerHTML function. It works exactly as the plain JavaScript, <em>.innerHTML</em>.</li>
<li>This doesn&#8217;t have it&#8217;s own function in JavaScript, but it is normally referenced like so:<br />
<blockquote><p><em>var element = document.getElementById(&#8220;id&#8221;);<br />
element.parentNode.removeChild(element);</em></p></blockquote>
<p>This was also shown before, but just a little recap.</li>
</ol>
<p><strong>Recap on everything learned :</strong></p>
<blockquote><p><em> </em></p>
<ol>
<li><em>$(&#8220;&#8221;)</em></li>
<li><em>.html(&#8220;&#8221;);</em></li>
<li><em>.remove();</em></li>
</ol>
</blockquote>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Dealing with Javascript variable scope and for-loop or external function.]]></title>
<link>http://haveacafe.wordpress.com/2008/08/26/dealing-with-javascript-variable-scope-and-for-loop-or-external-function/</link>
<pubDate>Tue, 26 Aug 2008 12:44:34 +0000</pubDate>
<dc:creator>haveacafe</dc:creator>
<guid>http://haveacafe.wordpress.com/2008/08/26/dealing-with-javascript-variable-scope-and-for-loop-or-external-function/</guid>
<description><![CDATA[Sometimes, you need to set some HTML attributes automatically with a batch declaration. By example i]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Sometimes, you need to set some HTML attributes automatically with a batch declaration.<br />
By example imagine you want to set an mouseover over hundred of &#60;a&#62; links, in order to display their title content in an alert box. How to proceed ?</p>
<p>You could try to achieve this using a loop. Something like:<br />
<code><br />
&#60;html&#62;<br />
&#60;a id="0" href="./0" title="the first"&#62; link number 0 &#60;/a&#62;<br />
&#60;a id="1" href="./1" title="the second"&#62; link number 1 &#60;/a&#62;<br />
&#60;a id="2" href="./2" title="the third"&#62; link number 2 &#60;/a&#62;<br />
&#60;a id="3" href="./3" title="the fourth"&#62; link number 3 &#60;/a&#62;<br />
&#60;a id="4" href="./4" title="the fifth"&#62; link number 4 &#60;/a&#62;<br />
&#60;/html&#62;<br />
</code><br />
<code><br />
&#60;script&#62;<br />
var number_of_link = 5;<br />
for(i=0;i&#60;number_of_link;i++){<br />
document.getElementById(i).onmouseover =<br />
function(){<br />
alert("I'm the number "+i+" link")<br />
};<br />
}<br />
&#60;/script&#62;<br />
</code></p>
<p>Just try this tiny snippet: have you seen the problem ?<br />
Every link has a function showing the last value of the i variable!</p>
<p>So, what does happened ?</p>
<p>We start iterating over a integer called i. This variable is in a global socpe. For each element found, we set a new function, wich display the i value. But the variable is passed by raference, and we want it to be passed by value !</p>
<p>Fortunately, we have a solution: we will dynamically add a new Function object, which will result in &#8220;statically&#8221; defined function.</p>
<p><code><br />
&#60;html&#62;<br />
&#60;a id="0" href="./0" title="the first"&#62; link number 0 &#60;/a&#62;<br />
&#60;a id="1" href="./1" title="the second"&#62; link number 1 &#60;/a&#62;<br />
&#60;a id="2" href="./2" title="the third"&#62; link number 2 &#60;/a&#62;<br />
&#60;a id="3" href="./3" title="the fourth"&#62; link number 3 &#60;/a&#62;<br />
&#60;a id="4" href="./4" title="the fifth"&#62; link number 4 &#60;/a&#62;<br />
&#60;/html&#62;<br />
</code><br />
<code><br />
&#60;script&#62;<br />
var number_of_link = 5;<br />
for(i=0;i&#60;number_of_link;i++){<br />
document.getElementById(i).onmouseover =<br />
new Function("alert("I'm the number "+i+" link)");<br />
}<br />
&#60;/script&#62;<br />
</code></p>
<p>The <em>Function</em> constructor allow us to take a String, and declaring it as a function. This tip forces the js interpetor to build the string, and only after, to build the function itself. So we achieve to have a static number written in each function we defined and desired omouseover effect.</p>
<p>For further information about function creation, i should recommend you this page:</p>
<p><a href="http://www.howtocreate.co.uk/tutorials/javascript/functions">www.howtocreate.co.uk/tutorials/javascript/functions</a></p>
<p>Have a look too, to some article describing the javascript closure:</p>
<p><a href="http://www.jibbering.com/faq/faq_notes/closures.html">www.jibbering.com/faq/faq_notes/closures.html</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[ECMAScript: un bond en arrière]]></title>
<link>http://codemoiunmouton.wordpress.com/2008/08/20/ecmascript-un-bond-en-arriere/</link>
<pubDate>Wed, 20 Aug 2008 20:38:02 +0000</pubDate>
<dc:creator>michael chaize</dc:creator>
<guid>http://codemoiunmouton.wordpress.com/2008/08/20/ecmascript-un-bond-en-arriere/</guid>
<description><![CDATA[Le comité ECMAScript vient de décider de stopper les travaux sur la version 4 d’ECMAScript pour se c]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://codemoiunmouton.files.wordpress.com/2008/08/feuvert.jpg"><img class="alignleft size-medium wp-image-250" style="border:0 none;margin:5px;" src="http://codemoiunmouton.wordpress.com/files/2008/08/feuvert.jpg?w=168" alt="" width="168" height="168" /></a>Le <strong>comité ECMAScript</strong> vient de décider de stopper les travaux sur la version 4 d’ECMAScript pour se concentrer sur l’ECMAScript 3.1 <em>(mise à jour du JavaScript actuel)</em>. Depuis plusieurs années, Macromedia puis Adobe ont énormément travaillé avec le comité pour définir et faire évoluer cette norme. Les différentes actions et innovations pour améliorer la puissance de calcul et la rigueur dans le coding côté client ont amené Adobe à caler l’ActionScript 3 aux spécifications de la norme ECMAScript 4, de rendre Open Source la machine virtuelle <em>(projet Tamarin chez Mozilla)</em> et de continuer à faire évoluer la norme. Les standards figent des spécifications mais ne sont pas des moteurs d’innovation. On peut donc regretter ce recul du comité approuvé par MicroSoft, Apple, Yahoo et DOJO. La blogoshère tend à accuser ces gros acteurs de vouloir freiner la montée en puissance de Tamarin et de l’AS3. Je pense que le problème est plus complexe et que de nombreux développeurs JavaScript/web ne souhaitaient pas voir leur langage trop se complexifier pour tendre fortement vers Java <em>(le même fossé que nous connaissons entre un développeur AS2 et un développeur AS3)</em>.</p>
<p>Mais peu importe la raison qui a motivé cette décision, il faut aujourd’hui analyser l’impact que cela aura sur le langage AS3. En fait, cette annonce n’aura aucun effet sur le langage et Adobe ne compte pas faire régresser sa syntaxe <em>(packages, namespaces, etc…)</em>. Le fait que l’AS3 ne corresponde plus officiellement à un standard n’aura à mon avis aucun impact sur la communauté de développeurs. Si l’on se projette quelques années en arrière, Java n’était ni standard, ni open source, mais ce langage a su convaincre un public de développeurs passionnés grâce à sa puissance et ses innovations.</p>
<p>A l’opposé, je sais que l’équipe de développement du langage continuera de tenir compte des évolutions de l’ECMAScript et restera très attentive. Mais un standard est aussi un canvas limité, et le langage AS3 a du parfois se contraindre pour éviter de sortir du standard <em>(overload natif, static class…)</em>. J’espère donc qu’Adobe fera évoluer de façon encore plus vive le langage pour qu’il réponde aux demandes des développeurs objets exigeants <em>(et habitués à des POO en Java par exemple) </em>mais aussi aux designers un peu oubliés avec la sortie de l’AS3. <strong>Le langage va aller de l’avant</strong> et c’est au final une bonne nouvelle, qui a suscité des posts très vifs sur le web… j’espère que vous serez calmes et sages sur mon blog.</p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
