<?xml version="1.0" encoding="UTF-8"?>

<rss version='2.0'
     xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">
    <channel>
        <!-- This XML Feed shows details for the page Ajaxian -->
        <creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.5/
          </creativeCommons:license>
        <title>Ajaxian</title>
        <description>&lt;p&gt;Ben and Dion discuss Ajaxian technology.&lt;/p&gt;
</description>
                <category>Ajax</category>

        <pubDate>Fri, 07 Oct 2005 01:35:35 -0700</pubDate>
        <lastBuildDate>Tue, 16 May 2006 05:02:25 -0700</lastBuildDate>
            
        <item>
            <title>Audible Ajax Episode 29: Interview with Google’s Gavin Doughtie</title>
            <link>http://swik.net/Ajax/Ajaxian/Audible+Ajax+Episode+29%3A+Interview+with+Google%E2%80%99s+Gavin+Doughtie/cdtbi</link>
            <description>&lt;p&gt;In the run up to &lt;a href=&quot;http://www.theajaxexperience.com&quot;&gt;The Ajax Experience&lt;/a&gt; conference coming up at the end of this month, Dion and I thought it would be fun to interview a few of the speakers. In this episode of Audible Ajax, we talk with &lt;a href=&quot;http://ajaxexperience.techtarget.com/east/html/speakers.html#GDoughtie&quot;&gt;Gavin Doughtie&lt;/a&gt;, a Dojo contributor and Google employee. The topics range from browser graphics to hiring good JavaScript engineers. Hope you enjoy it!&lt;/p&gt;
&lt;p&gt;We have the &lt;a href=&quot;http://media.ajaxian.com/podcasts/Gavin.mp3&quot;&gt;audio directly available&lt;/a&gt;, or you can &lt;a href=&quot;http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=79427931&quot;&gt;subscribe to the podcast&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=aOSLL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=aOSLL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=VHV3L&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=VHV3L&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=zLk2l&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=zLk2l&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            
            <pubDate>Fri, 05 Sep 2008 07:04:54 -0700</pubDate>
        </item>
            
        <item>
            <title>The JavaScript Framework Long Tail</title>
            <link>http://swik.net/Ajax/Ajaxian/The+JavaScript+Framework+Long+Tail/cdtbh</link>
            <description>&lt;p&gt;One of the reasons Dion is such an effective editor here at Ajaxian is his sense for filtering all of the available news from the Ajax community down to about three stories a day. Truth-be-told, with all the submissions we get and what we find on our own, we could easily post 10 stories a day. But in today&amp;#8217;s saturated environment, we find three stories is about the right number to keep from overwhelming our readership with too much noise. We hope you agree, and we&amp;#8217;re interested in hearing if you feel otherwise.&lt;/p&gt;
&lt;p&gt;A consequence of this arbitrary filtering is that some of the lesser known frameworks and libraries simply don&amp;#8217;t get covered. We never try to be king-makers, nor do we have that kind of clout&amp;#8211;we simply can&amp;#8217;t cover everything.&lt;/p&gt;
&lt;p&gt;We enjoyed Six Revisions&amp;#8217; &lt;a href=&quot;http://sixrevisions.com/javascript/promising_javascript_frameworks/&quot;&gt;recent round-up of 10 new/up-and-coming JavaScript frameworks&lt;/a&gt;, many of which we&amp;#8217;ve never covered, like Midori, Archetype, JUNE, UIZE, Simple.js, and fleegix.js.&lt;/p&gt;
&lt;p&gt; The adventurous among you should take a look! Not too long ago, an up-start named jQuery shook up the existing players&amp;#8230; some of these may be next.&lt;/p&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=glrVL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=glrVL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=AM3bL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=AM3bL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=mei4l&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=mei4l&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            
            <pubDate>Fri, 05 Sep 2008 07:04:54 -0700</pubDate>
        </item>
            
        <item>
            <title>Cappuccino and Objective-J released as opensource</title>
            <link>http://swik.net/Ajax/Ajaxian/Cappuccino+and+Objective-J+released+as+opensource/cds5w</link>
            <description>&lt;p&gt;&lt;a href=&quot;http://cappuccino.org/&quot;&gt;&lt;img src=&quot;http://cappuccino.org/images/cappuccino-icon.png&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We were all &lt;a href=&quot;http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino&quot;&gt;very impressed&lt;/a&gt; with the work that the 280 North team did with &lt;a href=&quot;http://280slides.com/&quot;&gt;280 Slides&lt;/a&gt;, and they fulfilled their promise by opensourcing &lt;a href=&quot;http://cappuccino.org/&quot;&gt;Cappuccino and Objective-J under LGPL&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
Cappuccino is an open source application framework for developing applications that look and feel like the desktop software users are familiar with.&lt;/p&gt;
&lt;p&gt;Cappuccino is built on top of standard web technologies like JavaScript, and it implements most of the familiar APIs from GNUstep and Apple&amp;#8217;s Cocoa frameworks. When you program in Cappuccino, you don&amp;#8217;t need to concern yourself with the complexities of traditional web technologies like HTML, CSS, or even the DOM. The unpleasantries of building complex cross browser applications are abstracted away for you.&lt;/p&gt;
&lt;p&gt;Cappuccino was implemented using a new programming language called Objective-J, which is modelled after Objective-C and built entirely on top of JavaScript. Programs written in Objective-J are interpreted in the client, so no compilation or plugins are required.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;The team has done a good job doing what many opensource projects miss, giving &lt;a href=&quot;http://cappuccino.org/learn/&quot;&gt;documentation&lt;/a&gt; and &lt;a href=&quot;http://cappuccino.org/discuss/&quot;&gt;discussion&lt;/a&gt;. It will be interesting to see how others take this work and produce compelling Web based products. Let us know if it is you!&lt;/p&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=IF9NL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=IF9NL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=uXQML&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=uXQML&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=Pv0cl&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=Pv0cl&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            
            <pubDate>Fri, 05 Sep 2008 06:04:02 -0700</pubDate>
        </item>
            
        <item>
            <title>jTPS: Animated Sortable Datagrid jQuery plugin</title>
            <link>http://swik.net/Ajax/Ajaxian/jTPS%3A+Animated+Sortable+Datagrid+jQuery+plugin/cds2b</link>
            <description>&lt;p&gt;&lt;a href=&quot;http://www.overset.com/2008/08/30/animated-sortable-datagrid-jquery-plugin-jtps/&quot;&gt;&lt;img src=&quot;http://ajaxian.com/wp-content/uploads/jtps.png&quot; alt=&quot;&quot; title=&quot;jtps&quot; width=&quot;500&quot; height=&quot;123&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The data grid above is a jQuery plugin &lt;a href=&quot;http://www.overset.com/2008/08/30/animated-sortable-datagrid-jquery-plugin-jtps/&quot;&gt;jTPS&lt;/a&gt; that creates a table you can sort and page through, using nice animations, all via a simple call out:&lt;/p&gt;
&lt;div class=&quot;igBar&quot;&gt;&lt;a href=&quot;javascriptshowCodeTxt(&#039;javascript-2&#039;);&quot;&gt;PLAIN TEXT&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;syntax_hilite&quot;&gt;&lt;span style=&quot;color:#000000; font-weight:bold;&quot;&gt;JAVASCRIPT:&lt;/span&gt;
&lt;div id=&quot;javascript-2&quot;&gt;
&lt;div class=&quot;javascript&quot;&gt;
&lt;ol&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;$&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;document&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;ready&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;$&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;’#TABLETOCONTROL’&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;initTable&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;perPages:&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;5&lt;/span&gt;,&lt;span style=&quot;color:#800000;&quot;&gt;12&lt;/span&gt;,&lt;span style=&quot;color:#800000;&quot;&gt;15&lt;/span&gt;,&lt;span style=&quot;color:#800000;&quot;&gt;50&lt;/span&gt;,&lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;ALL&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;controlTable&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=kc9oL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=kc9oL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=VzT9L&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=VzT9L&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=Vk4cl&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=Vk4cl&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            
            <pubDate>Fri, 05 Sep 2008 05:03:55 -0700</pubDate>
        </item>
            
        <item>
            <title>gameQuery:</title>
            <link>http://swik.net/Ajax/Ajaxian/gameQuery%3A/cdsek</link>
            <description>&lt;p&gt;&lt;a href=&quot;http://gamequery.onaluf.org/&quot;&gt;&lt;img src=&quot;http://ajaxian.com/wp-content/uploads/gamequery.png&quot; alt=&quot;&quot; title=&quot;gameQuery&quot; width=&quot;480&quot; height=&quot;482&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Selim Arsever wants to make it easier to great JavaScript games, so he created &lt;a href=&quot;http://gamequery.onaluf.org/&quot;&gt;gameQuery&lt;/a&gt;, based on jQuery.&lt;/p&gt;
&lt;p&gt;gameQuery allows you to declare animations, which are made of one image with a succession of frames just like in a css sprite. An animation in itself doesn&#039;t exist until it&#039;s associated with a sprite.&lt;/p&gt;
&lt;div class=&quot;igBar&quot;&gt;&lt;a href=&quot;javascriptshowCodeTxt(&#039;javascript-4&#039;);&quot;&gt;PLAIN TEXT&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;syntax_hilite&quot;&gt;&lt;span style=&quot;color:#000000; font-weight:bold;&quot;&gt;JAVASCRIPT:&lt;/span&gt;
&lt;div id=&quot;javascript-4&quot;&gt;
&lt;div class=&quot;javascript&quot;&gt;
&lt;ol&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; myAnimation = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;new&lt;/span&gt; Animation&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt; imageURL: &lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;./myAnimation.png&quot;&lt;/span&gt;, numberOfFrame: &lt;span style=&quot;color:#800000;&quot;&gt;10&lt;/span&gt;, delta: &lt;span style=&quot;color:#800000;&quot;&gt;60&lt;/span&gt;, rate: &lt;span style=&quot;color:#800000;&quot;&gt;90&lt;/span&gt;, type: Animation.&lt;span style=&quot;color: #006600;&quot;&gt;VERTICAL&lt;/span&gt; | Animation.&lt;span style=&quot;color: #006600;&quot;&gt;ONCE&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=TVmAL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=TVmAL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=pJqoL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=pJqoL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=ZEAfl&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=ZEAfl&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            
            <pubDate>Fri, 05 Sep 2008 01:37:11 -0700</pubDate>
        </item>
            
        <item>
            <title>Dojo Multifile Uploader with Flash</title>
            <link>http://swik.net/Ajax/Ajaxian/Dojo+Multifile+Uploader+with+Flash/cdps8</link>
            <description>&lt;p&gt;&lt;a href=&quot;http://www.sitepen.com/blog/2008/09/02/the-dojo-toolkit-multi-file-uploader/&quot;&gt;&lt;img src=&quot;http://ajaxian.com/wp-content/uploads/multifileuploader.png&quot; alt=&quot;&quot; title=&quot;multifileuploader&quot; width=&quot;433&quot; height=&quot;406&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;SitePen continues their work on &lt;a href=&quot;http://trac.dojotoolkit.org/browser/deft/trunk/deft&quot;&gt;Deft&lt;/a&gt; with a &lt;a href=&quot;http://www.sitepen.com/blog/2008/09/02/the-dojo-toolkit-multi-file-uploader/&quot;&gt;multi-file uploader&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
The Dojo Toolkit now has support for multi-file uploads, thanks to the new Deft project. The dojox.form.FileUploader class embeds a hidden SWF file in the page which, when triggered, will open a system dialog that supports multiple file selection, and also file masks, which allows the user to filter their selection by file type.&lt;/p&gt;
&lt;p&gt;Better yet, it’s fully degradable. If the user does not have version 9 or greater of the Flash Player installed it can, depending on the options you set, present the user with a standard HTML file input instead (or the option to install the latest Flash Player). The HTML form also supports multiple files, although due to browser restrictions, only one can be selected at a time. But they are all uploaded at once.&lt;/p&gt;
&lt;p&gt;A major benefit to developers is the flexibility to supply your own styled upload button. For example, a paperclip icon toolbar button in an email application should not look like the standard file input with a text field followed by a “browse …” button. What inspired this design was working on projects where designers and clients would hand me a specification which would say, “the upload button looks like this“.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;To use it? Fairly simple:&lt;/p&gt;
&lt;div class=&quot;igBar&quot;&gt;&lt;a href=&quot;javascriptshowCodeTxt(&#039;javascript-6&#039;);&quot;&gt;PLAIN TEXT&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;syntax_hilite&quot;&gt;&lt;span style=&quot;color:#000000; font-weight:bold;&quot;&gt;JAVASCRIPT:&lt;/span&gt;
&lt;div id=&quot;javascript-6&quot;&gt;
&lt;div class=&quot;javascript&quot;&gt;
&lt;ol&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; uploader = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;new&lt;/span&gt; dojox.&lt;span style=&quot;color: #006600;&quot;&gt;form&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;FileInputFlash&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; uploadUrl:&lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;http.localHost/FileUpload.php&quot;&lt;/span&gt;,&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; button:myButton,&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; uploadOnChange: &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;false&lt;/span&gt;,&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; selectMultipleFiles: &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;true&lt;/span&gt;,&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; fileMask: &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;All Images&quot;&lt;/span&gt;, &lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;*.jpg;*.jpeg;*.gif;*.png&quot;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#93;&lt;/span&gt;,&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; degradable: &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;true&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;https://user.sitepen.com/~mwilcox/dojotoolkit/demos/uploader/demo.html&quot;&gt;Want to try it out?&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This comes after the &lt;a href=&quot;http://ajaxian.com/archives/youtube-uploader-now-using-gears-and-what-people-missed-in-gears-04&quot;&gt;YouTube uploader that uses Gears&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=TnZgOL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=TnZgOL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=GwU4wL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=GwU4wL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=DG59Tl&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=DG59Tl&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            
            <pubDate>Thu, 04 Sep 2008 08:54:36 -0700</pubDate>
        </item>
            
        <item>
            <title>Zend Framework 1.6: Dojo, SOAP, Testing, Tooling, and more</title>
            <link>http://swik.net/Ajax/Ajaxian/Zend+Framework+1.6%3A+Dojo%2C+SOAP%2C+Testing%2C+Tooling%2C+and+more/cdplm</link>
            <description>&lt;p&gt;Andi Gutmans &lt;a href=&quot;http://andigutmans.blogspot.com/2008/09/zend-framework-16-featuring-dojo-soap.html&quot;&gt;announced Zend Framework 1.6&lt;/a&gt; which includes the new &lt;a href=&quot;http://andigutmans.blogspot.com/2008/05/dojo-and-zend-framework-partnership.html&quot;&gt;Dojo support&lt;/a&gt; which they put to work on &lt;a href=&quot;http://framework.zend.com/about/faq&quot;&gt;the&lt;/a&gt; &lt;a href=&quot;http://framework.zend.com/community/partners&quot;&gt;site itself&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
With this release we continue to provide enterprise-grade features with our new Zend_Soap component, which brings PHP-style simplicity to building and exposing SOAP web services.  This component can operate in both WSDL and non-WSDL mode and makes creating or consuming a SOAP service a snap.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Preview of Tooling Project:&lt;/em&gt;  &lt;/p&gt;
&lt;p&gt;Zend_Tool is a component currently under development in the Zend Framework library. It provides services for generating and managing ZF-based projects. We are offering a preview release along with ZF 1.6 to collect feedback from users in a variety of environments and with different requirements. Please let us know how Zend_Tool works for you by visiting the Zend_Tool focus group site at &lt;a href=&quot;http://tech.groups.yahoo.com/group/zf-tool/&quot;&gt;http://tech.groups.yahoo.com/group/zf-tool/&lt;/a&gt;. We will also be posting an overview of Zend_Tool on the &lt;a href=&quot;http://devzone.zend.com/&quot;&gt;Zend Developer Zone&lt;/a&gt; within the next 24 hours.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Lucene 2.3 Index File Format Support:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Starting with 1.6, ZF supports version 2.3 of Lucene&#039;s index file format. This update to the format allows segments to share a single set of doc store (vectors &amp;amp; stored fields) files, which enables faster indexing in certain cases. This also makes Zend_Search_Lucene compatible with the latest version of the Lucene project.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Zend_Session save handler for Database Tables:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This is a database independent adapter for use with Zend_Session. Saving sessions in the database may be used for supporting sessions which must be maintained across multiple servers or kept for logging purposes.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Paginator Component:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Zend_Paginator is a new component for displaying large data sets in groups of &#039;pages&#039; on a website. It can paginate data from virtually any source, and it fetches data lazily to maximize performance and minimize memory use when the data set is particularly large (as is often the case with data stored in a relational database). Zend_Paginator comes with a few data source adapters out of the box, along with an interface for implementing additional data source adapters.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Figlet Support:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Zend_Text_Figlet can create large ascii-character-based text given a figlet font and a string to render. Although they’ve been around for a long time, Figlets are most useful for captchas nowadays, especially when a lightweight solution is required and/or bandwidth is constrained. In fact, the new captcha form element includes an adapter for figlets.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;ReCaptcha Service:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;ReCaptcha is a very cool service that provides text-based captcha images. The answers submitted to ReCaptcha help digitize printed books. The new captcha form element also includes an adapter for the ReCaptcha service. Read more about ReCaptcha here: &lt;a href=&quot;http://recaptcha.net/learnmore.html&quot;&gt;http://recaptcha.net/learnmore.html&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Captcha Form Element:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;A form element to render and validate captchas, which are commonly used to ensure a human is submitting a form and not a (potentially malicious) bot. The captcha form element is backed by several adapters for different captcha mechanisms, including GD-based graphics, figlets, and the ReCaptcha service. Users can implement their own adapters;each adapter takes care of validation and decorators to ensure the form element looks and behaves correctly, regardless of the captcha mechanism used.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Zend_Config_Xml Attribute Support:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;XML attribute support has been added to Zend_Config_Xml that allows ZF developers to write smaller XML documents that are more human-readable. This attribute support is already seeing a lot of adoption inthe Zend_Tool project.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Zend_File_Transfer Component:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This is a new component used for transferring files from one machine to another over multiple protocols. It currently supports HTTP, with an adapter interface that can be implemented to support additional protocols in the future. This component also supports validation on the transferred file.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;File Upload Form Element:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This component completes the HTML form element support in Zend_Form. Files can be chosen by the user, validated for properties such as size, and uploaded to the server simply by adding a file upload form element to your forms. The element utilizes Zend_File_Transfer internally to validate the uploaded file and move it to its final destination.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Zend_Wildfire Component with FireBug Log Writer:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Zend_Wildfire is a new component supporting the Wildfire protocol: &lt;a href=&quot;http://www.wildfirehq.org/&quot;&gt;http://www.wildfirehq.org/&lt;/a&gt;. This feature also adds a FireBug log writer to write server-side log events to a FireBug console. A specialized FireBug Zend_Db profiler is provided to log DB profiler data to the FireBug console, as well.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Media View Helpers (Flash, QuickTime, Object, and Page):&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;ZF 1.6 contains new view helpers for embedding Flash, QuickTime, Objects, and Pages in a view.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Zend_Translate adds the INI file format:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This addition adds to the long list of translation file formats it already supports.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=golyaL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=golyaL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=ooY4bL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=ooY4bL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=YmTIll&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=YmTIll&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            
            <pubDate>Thu, 04 Sep 2008 07:55:24 -0700</pubDate>
        </item>
            
        <item>
            <title>IE 8 Security and nosniff</title>
            <link>http://swik.net/Ajax/Ajaxian/IE+8+Security+and+nosniff/cdo63</link>
            <description>&lt;p&gt;Eric Lawrence posted on &lt;a href=&quot;http://blogs.msdn.com/ie/archive/2008/09/02/ie8-security-part-vi-beta-2-update.aspx&quot;&gt;IE 8 security issues in the beta 2 release&lt;/a&gt;, which include:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
&lt;b&gt;Restricting document.domain&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;In Internet Explorer 7, the following set of calls would succeed:&lt;/p&gt;
&lt;div class=&quot;igBar&quot;&gt;&lt;a href=&quot;javascriptshowCodeTxt(&#039;javascript-11&#039;);&quot;&gt;PLAIN TEXT&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;syntax_hilite&quot;&gt;&lt;span style=&quot;color:#000000; font-weight:bold;&quot;&gt;JAVASCRIPT:&lt;/span&gt;
&lt;div id=&quot;javascript-11&quot;&gt;
&lt;div class=&quot;javascript&quot;&gt;
&lt;ol&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;// initial document.domain is app1.example.com&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; document.&lt;span style=&quot;color: #006600;&quot;&gt;domain&lt;/span&gt; = &lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;app1.example.com&quot;&lt;/span&gt;;&amp;#160; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;// 1. Domain property set to default value&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; document.&lt;span style=&quot;color: #006600;&quot;&gt;domain&lt;/span&gt; = &lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;example.com&quot;&lt;/span&gt;;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;// 2. “Loosen” domain&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; document.&lt;span style=&quot;color: #006600;&quot;&gt;domain&lt;/span&gt; = &lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;app1.example.com&quot;&lt;/span&gt;;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;// 3. “Tighten” domain&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;In Internet Explorer 8 and other browsers, the 3rd assignment will throw an exception, because app1.example.com is not a suffix of the then-current value, example.com.&lt;/p&gt;
&lt;p&gt;Put simply, once you’ve loosened document.domain, you cannot tighten it.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Restricting Frame-Targeting&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;HTML5 also specifies the circumstances in which one frame is permitted to use the targetname parameter of a window.open() call to navigate another named frame or window. &lt;/p&gt;
&lt;p&gt;The rules are meant to help prevent a window injection vulnerability. In a window injection attack, a malicious website in one browser frame attempts to “hijack” a frame or popup owned by a trusted webpage.&lt;/p&gt;
&lt;p&gt;For instance, consider the scenario where http://contoso.com opens a popup window with the name helpPage.&lt;/p&gt;
&lt;div class=&quot;igBar&quot;&gt;&lt;a href=&quot;javascriptshowCodeTxt(&#039;javascript-12&#039;);&quot;&gt;PLAIN TEXT&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;syntax_hilite&quot;&gt;&lt;span style=&quot;color:#000000; font-weight:bold;&quot;&gt;JAVASCRIPT:&lt;/span&gt;
&lt;div id=&quot;javascript-12&quot;&gt;
&lt;div class=&quot;javascript&quot;&gt;
&lt;ol&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; window.&lt;span style=&quot;color: #006600;&quot;&gt;open&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;helpTopic.htm&quot;&lt;/span&gt;, &lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;helpPage&quot;&lt;/span&gt;, &lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;height=200,width=400&quot;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;If another page at http://evil.example.com attempts to hijack this window, like so:&lt;/p&gt;
&lt;div class=&quot;igBar&quot;&gt;&lt;a href=&quot;javascriptshowCodeTxt(&#039;javascript-13&#039;);&quot;&gt;PLAIN TEXT&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;syntax_hilite&quot;&gt;&lt;span style=&quot;color:#000000; font-weight:bold;&quot;&gt;JAVASCRIPT:&lt;/span&gt;
&lt;div id=&quot;javascript-13&quot;&gt;
&lt;div class=&quot;javascript&quot;&gt;
&lt;ol&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; window.&lt;span style=&quot;color: #006600;&quot;&gt;open&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;spoof.htm&quot;&lt;/span&gt;, &lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;helpPage&quot;&lt;/span&gt;, &lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;height=200,width=400&quot;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;…instead of navigating the helpPage window owned by Contoso.com, spoof.htm will instead open in a new browser window. While Internet Explorer 7 and 8 always show an address bar on every window, this new restriction makes window injection spoofs even less convincing.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;MIME-Handling: Sniffing Opt-Out&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;As discussed in &lt;a href=&quot;http://blogs.msdn.com/ie/archive/2008/07/02/ie8-security-part-v-comprehensive-protection.aspx&quot;&gt;Part V&lt;/a&gt; of this blog series, Internet Explorer’s MIME-sniffing capabilities can lead to security problems for servers hosting untrusted content.  At that time, we announced a new Content-Type attribute (named “authoritative”) which could be used to disable MIME-sniffing for a particular HTTP response. &lt;/p&gt;
&lt;p&gt;Over the past two months, we’ve received significant community feedback that using a new attribute on the Content-Type header would create a deployment headache for server operators. To that end, we have converted this option into a full-fledged HTTP response header.  Sending the new X-Content-Type-Options response header with the value nosniff will prevent Internet Explorer from MIME-sniffing a response away from the declared content-type.&lt;/p&gt;
&lt;p&gt;For example, given the following HTTP-response:&lt;/p&gt;
&lt;div class=&quot;igBar&quot;&gt;&lt;a href=&quot;javascriptshowCodeTxt(&#039;html-14&#039;);&quot;&gt;PLAIN TEXT&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;syntax_hilite&quot;&gt;&lt;span style=&quot;color:#000000; font-weight:bold;&quot;&gt;HTML:&lt;/span&gt;
&lt;div id=&quot;html-14&quot;&gt;
&lt;div class=&quot;html&quot;&gt;
&lt;ol&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; HTTP/1.1 200 OK&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; Content-Length: 108&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; Date: Thu, 26 Jun 2008 22:06:28 GMT&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; Content-Type: text/plain;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; X-Content-Type-Options: nosniff&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;html&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;a href=&quot;http://december.com/html/4/element/body.html&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;body&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #000066;&quot;&gt;bgcolor&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;#AA0000&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; This page renders as HTML source code (text) in IE8.&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;b&gt;XSS Attack Surface Reduction: CSS Expressions Disabled IE8 Standards Mode&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Also known as “Dynamic Properties,” CSS expressions are a proprietary extension to CSS that carry a high performance cost.  CSS Expressions are also commonly used by attackers to evade server-side XSS Filters. &lt;/p&gt;
&lt;p&gt;As of Beta 2, CSS expressions are not supported in IE8 Standards Mode. They are still supported in IE7 Strict and Quirks mode for backward compatibility. While the IE8 XSS Filter can block attempts to reflect CSS Expressions as part of an XSS attack, blocking them in IE8 Standards Mode brings a performance benefit, improves standards-compliance, and acts as an attack surface reduction against script injection attacks.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=fSmenL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=fSmenL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=areDoL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=areDoL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=zuuU3l&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=zuuU3l&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            
            <pubDate>Thu, 04 Sep 2008 05:54:53 -0700</pubDate>
        </item>
            
        <item>
            <title>Adding Custom Tags To Internet Explorer, The Official Way</title>
            <link>http://swik.net/Ajax/Ajaxian/Adding+Custom+Tags+To+Internet+Explorer%2C+The+Official+Way/cdmox</link>
            <description>&lt;p&gt;There have been some clever tricks to create new custom tags in Internet Explorer, such as the &lt;a href=&quot;http://ajaxian.com/archives/getting-html-5-styles-in-ie-7&quot;&gt;&lt;code&gt;createElement&lt;/code&gt; trick&lt;/a&gt;. However, I never realized that Internet Explorer itself provides a facility to define new tags in the markup and have them styled, since Internet Explorer 5!&lt;/p&gt;
&lt;p&gt;Some details from the MSDN documentation on this feature, titled &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms531076(VS.85).aspx&quot;&gt;&quot;Using Custom Tags In Internet Explorer&quot;&lt;/a&gt;. The trick lies in making sure you namespace things. For example, in the MSDN docs for this feature the example of creating a new &lt;code&gt;JUSTIFY&lt;/code&gt; tag is given:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
&amp;lt;HTML XMLNS:MY&amp;gt;
&amp;lt;MY:JUSTIFY&amp;gt;
   This paragraph demonstrates sample
   usage of the custom MY:JUSTIFY tag in a document.
   By wrapping the paragraph in start and end
   MY:JUSTIFY tags, the contained
   text is justified within the specified width. Try
   resizing the window to verify that the
   content is justified within a 500-pixel width.
   And don&#039;t forget to right-click anywhere on the
   window and &quot;View Source&quot;.
&amp;lt;/MY:JUSTIFY&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;You can even style this with CSS!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
&amp;lt;HTML XMLNS:MY&amp;gt;
&amp;lt;STYLE&amp;gt;
@media all {
   MY\:JUSTIFY  { text-align:justify; width:500 }
}
&amp;lt;/STYLE&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The docs then go on to discuss applying an Internet Explorer &#039;behavior&#039; to this custom element to give it expanded abilities:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
Custom tags become much more interesting when applied with a DHTML behavior. Introduction to DHTML Behaviors (or behaviors) are applied to elements on a page, the same way styles are, using cascading style sheets (CSS) attributes. More specifically, the proposed CSS behavior attribute allows a Web author to specify the location of the behavior and apply that behavior to an element on a page.&lt;/p&gt;
&lt;p&gt;Using DHTML in Internet Explorer 4.0.0, it is possible to create simple animated effects, such as flying text, by manipulating the position of elements on a page over time. Beginning with Internet Explorer 5, this functionality can be encapsulated in a behavior, applied to a custom &amp;lt;InetSDK:FLY&amp;gt; tag, and wrapped around blocks of text on a page. This can be applied to cause text to fly from various directions.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I&#039;m going to do more testing on this functionality today to see how deep it goes, but if true it makes it easier to create browser shims for Internet Explorer for things like SVG, MathML, etc., including HTML 5 (if we namespace the HTML 5 elements, required to get this to work).&lt;/p&gt;
&lt;p&gt;The reason I&#039;m looking for an alternative to the &lt;code&gt;createElement&lt;/code&gt; trick is I&#039;ve found that it doesn&#039;t work with nested custom tags, which limits its usefulness. For example, I&#039;ve found the following to not enter the DOM correctly:&lt;/p&gt;
&lt;div class=&quot;igBar&quot;&gt;&lt;a href=&quot;javascriptshowCodeTxt(&#039;html-16&#039;);&quot;&gt;PLAIN TEXT&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;syntax_hilite&quot;&gt;&lt;span style=&quot;color:#000000; font-weight:bold;&quot;&gt;HTML:&lt;/span&gt;
&lt;div id=&quot;html-16&quot;&gt;
&lt;div class=&quot;html&quot;&gt;
&lt;ol&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;html&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;a href=&quot;http://december.com/html/4/element/body.html&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;body&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;custom_container&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;custom_child&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;/a&gt;/custom_child&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;/a&gt;/custom_container&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=p0XOVL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=p0XOVL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=3Az4ML&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=3Az4ML&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=oMRY2l&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=oMRY2l&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            
            <pubDate>Wed, 03 Sep 2008 13:55:11 -0700</pubDate>
        </item>
            
        <item>
            <title>Brendan discusses how TraceMonkey is climbing faster; Ruby on the Web with V8</title>
            <link>http://swik.net/Ajax/Ajaxian/Brendan+discusses+how+TraceMonkey+is+climbing+faster%3B+Ruby+on+the+Web+with+V8/cdma9</link>
            <description>&lt;p&gt;Brendan Eich jumped right in and &lt;a href=&quot;http://weblogs.mozillazine.org/roadmap/archives/2008/09/tracemonkey_update.html&quot;&gt;benchmarked the tip of tree for TraceMonkey, with the V8 version that came with Google Chrome&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
We win on the bit-banging, string, and regular expression benchmarks. We are around 4x faster at the SunSpider micro-benchmarks than V8.&lt;/p&gt;
&lt;p&gt;This graph does show V8 cleaning our clock on a couple of recursion-heavy tests. We have a plan, to trace recursion (not just tail recursion). We simply haven&#039;t had enough hours in the day to get to it, but it&#039;s &quot;next&quot;.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Brendan shows SunSpider running there, and V8 has that and &lt;a href=&quot;http://code.google.com/apis/v8/benchmarks.html&quot;&gt;other benchmarks to run too&lt;/a&gt;. Isn&#039;t it great when a performance arms war is on? Thank god for competition here. We all win.&lt;/p&gt;
&lt;p&gt;Ray Cromwell ran tests himself, on his own app &lt;a href=&quot;http://timepedia.blogspot.com/2008/09/google-chrome-smokes-competition-on.html&quot;&gt;Chronoscope&lt;/a&gt; (note, probably NOT using tip of tree TraceMonkey):&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
Chronoscope is written in GWT, and to some extent, the GWT compiler may negate some of Chrome&#039;s V8 technology in the sense that GWT &quot;de-classes&quot; many OO polymorphic dispatches into a more functional style of programming, removing as much dynamic dispatch as possible, and eliminating prototype lookups and function call overhead through inlining. I don&#039;t know if GWT hurts &quot;hidden classes&quot; or not, but it might be possible that if GWT didn&#039;t provide such optimizations, the performance differential might be larger.&lt;/p&gt;
&lt;p&gt;Despite this, the results are still good. The test consisted of calling the chart&#039;s redraw() function 100 times per trial, with 10 trials. The slowest and fastest trial are thrown out, and the mean and standard deviation are calculated on the remaining data.&lt;/p&gt;
&lt;p&gt;I tested on a Mac Pro 2.66Ghz with 6Gb of memory, OSX 1.5. The tests were conducted within a Parallels VM running XP2 Service Pack 2, given 2 CPUs and 2Gb of memory. For each browser, I rebooted the VM from a clean start, and ran only the test browser.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ajaxian.com/wp-content/uploads/chronoscopebenchmark.png&quot; alt=&quot;&quot; title=&quot;chronoscopebenchmark&quot; width=&quot;393&quot; height=&quot;105&quot; border=&quot;0&quot;/&gt;
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;And for a bit of fun, Marc-Andre Cournoyer tied together &lt;a href=&quot;http://hotruby.yukoba.jp/&quot;&gt;HotRuby&lt;/a&gt; (remember that? the beast that runs YARV code in the browser!) and V8 to create &lt;a href=&quot;http://macournoyer.wordpress.com/2008/09/02/ruby-on-v8/&quot;&gt;fast Ruby in the browser&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Good times.&lt;/p&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=m7GnVL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=m7GnVL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=D00LIL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=D00LIL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=NI7Tpl&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=NI7Tpl&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            
            <pubDate>Wed, 03 Sep 2008 11:55:12 -0700</pubDate>
        </item>
            
        <item>
            <title>Audible Ajax Episode 28: The State of Ajax, with Chrome and friends</title>
            <link>http://swik.net/Ajax/Ajaxian/Audible+Ajax+Episode+28%3A+The+State+of+Ajax%2C+with+Chrome+and+friends/cdlae</link>
            <description>&lt;p&gt;&lt;img src=&quot;http://ajaxian.com/wp-content/uploads/chromewebkit.png&quot; alt=&quot;&quot; title=&quot;Chrome WebKit Comic&quot; width=&quot;480&quot; height=&quot;342&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;
&lt;p&gt;Everyone knows that the big news of the week is &lt;a href=&quot;http://ajaxian.com/archives/google-chrome-chromium-and-v8&quot;&gt;Google Chrome, Chromium, and V8&lt;/a&gt;. Ben and I sat down for our podcast update and delve deeper at how all of the browsers are doing interesting things and progressing nicely. We discuss SquirrelFish, TraceMonkey, and of course V8.&lt;/p&gt;
&lt;p&gt;We also delve into Canvas land and the fun and frolics that are planned for The Ajax Experience in Boston that happens soon. I am excited about the framework mini-events that happen around the same time too, and gather the crew behind jQuery, Dojo, and Prototype.&lt;/p&gt;
&lt;p&gt;We have the &lt;a href=&quot;http://media.ajaxian.com/podcasts/audibleajax-show-28-googlechrome.mp3&quot;&gt;audio directly available&lt;/a&gt;, or you can &lt;a href=&quot;http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=79427931&quot;&gt;subscribe to the podcast&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=H4LfIL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=H4LfIL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=yL7wAL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=yL7wAL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=3Q0itl&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=3Q0itl&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            
            <pubDate>Wed, 03 Sep 2008 07:54:49 -0700</pubDate>
        </item>
            
        <item>
            <title>Drag and drop via sneaky Textarea hack</title>
            <link>http://swik.net/Ajax/Ajaxian/Drag+and+drop+via+sneaky+Textarea+hack/cdku0</link>
            <description>&lt;p&gt;&lt;a href=&quot;http://www.ernestdelgado.com/articles/ddwdd/gadget_demo.html&quot;&gt;&lt;img src=&quot;http://ajaxian.com/wp-content/uploads/fridgemagnet.png&quot; alt=&quot;&quot; title=&quot;Fridge Magnet&quot; width=&quot;480&quot; height=&quot;507&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ernest Delgado put together work from an earlier project, and the realization that textareas are native drop targets, to create &lt;a href=&quot;http://ernestdelgado.com/articles/ddwdd/&quot;&gt;Drag and Drop without Drag and Drop&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
Something that I never realized before is that text areas are drop targets by default. Using this property alone (without registering drag events on the source elements), we can emulate drag and drop behavior of non-linked images between different documents.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Put together the layers, with canvas, and a hidden transparent text area, and you get the following architecture:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ernestdelgado.com/articles/ddwdd/layout2.png&quot;/&gt;&lt;/p&gt;
&lt;p&gt;Then, check out the &lt;a href=&quot;http://www.ernestdelgado.com/articles/ddwdd/gadget_demo.html&quot;&gt;demo&lt;/a&gt; that allows you to drag between gadgets. Take images from the right hand magnet, and paste them onto the fridge!&lt;/p&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=SMShvL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=SMShvL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=rfsVRL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=rfsVRL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=rKrobl&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=rKrobl&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            
            <pubDate>Wed, 03 Sep 2008 05:54:47 -0700</pubDate>
        </item>
            
        <item>
            <title>Coverflow again…. with Canvas</title>
            <link>http://swik.net/Ajax/Ajaxian/Coverflow+again%E2%80%A6.+with+Canvas/cdkuz</link>
            <description>&lt;p&gt;&lt;a href=&quot;http://radnan.public.iastate.edu/coverflow/&quot;&gt;&lt;img src=&quot;http://ajaxian.com/wp-content/uploads/coverflowagain.png&quot; alt=&quot;&quot; title=&quot;Coverflow again&quot; width=&quot;500&quot; height=&quot;375&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For some reason, we like to &lt;a href=&quot;http://radnan.public.iastate.edu/coverflow/&quot;&gt;implement Coverflow&lt;/a&gt; to see if the technology of choice is decent enough to do so. This latest version works with Canvas, and does a nice job of smoothly doing the animations at hand. All you have to do is:&lt;/p&gt;
&lt;div class=&quot;igBar&quot;&gt;&lt;a href=&quot;javascriptshowCodeTxt(&#039;javascript-18&#039;);&quot;&gt;PLAIN TEXT&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;syntax_hilite&quot;&gt;&lt;span style=&quot;color:#000000; font-weight:bold;&quot;&gt;JAVASCRIPT:&lt;/span&gt;
&lt;div id=&quot;javascript-18&quot;&gt;
&lt;div class=&quot;javascript&quot;&gt;
&lt;ol&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;Coverflow.&lt;span style=&quot;color: #006600;&quot;&gt;init&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;src: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;img/img-0-lo.jpg&#039;&lt;/span&gt;, label: &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;album: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;All That I Am&#039;&lt;/span&gt;, artist: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;Santana&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;,&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;src: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;img/img-1-lo.jpg&#039;&lt;/span&gt;, label: &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;album: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;August &amp;amp; Everything After&#039;&lt;/span&gt;, artist: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;Counting Crows&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;,&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;src: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;img/img-2-lo.jpg&#039;&lt;/span&gt;, label: &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;album: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;Back to Bedlam&#039;&lt;/span&gt;, artist: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;James Blunt&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;,&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;src: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;img/img-3-lo.jpg&#039;&lt;/span&gt;, label: &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;album: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;Carnival of Rust&#039;&lt;/span&gt;, artist: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;Poets of the Fall&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;,&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;src: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;img/img-4-lo.jpg&#039;&lt;/span&gt;, label: &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;album: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;Collision Course&#039;&lt;/span&gt;, artist: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;Linkin Park&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;,&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;src: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;img/img-5-lo.jpg&#039;&lt;/span&gt;, label: &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;album: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;Crossfade&#039;&lt;/span&gt;, artist: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;Crossfade&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;,&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;src: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;img/img-6-lo.jpg&#039;&lt;/span&gt;, label: &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;album: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;Dexter&#039;&lt;/span&gt;, artist: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;Rolfe Kent&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;,&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;src: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;img/img-7-lo.jpg&#039;&lt;/span&gt;, label: &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;album: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;Life for Rent&#039;&lt;/span&gt;, artist: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;Dido&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;,&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;src: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;img/img-8-lo.jpg&#039;&lt;/span&gt;, label: &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;album: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;Say I Am You&#039;&lt;/span&gt;, artist: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;The Weepies&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;,&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;src: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;img/img-9-lo.jpg&#039;&lt;/span&gt;, label: &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;album: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;Signs of Life&#039;&lt;/span&gt;, artist: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;Poets of the Fall&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;,&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;src: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;img/img-10-lo.jpg&#039;&lt;/span&gt;, label: &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;album: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;Viva la Vida&#039;&lt;/span&gt;, artist: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;Coldplay&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;,&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;src: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;img/img-11-lo.jpg&#039;&lt;/span&gt;, label: &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;album: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;We Were Here&#039;&lt;/span&gt;, artist: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;Joshua Radin&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#93;&lt;/span&gt;, &lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; createLabel: &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;item&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;item&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;label&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;album&lt;/span&gt; +&lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;&amp;lt;br /&amp;gt;&#039;&lt;/span&gt;+ &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;item&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;label&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;artist&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;,&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; onSelectCenter: &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;item&lt;/span&gt;, id&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; img = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;new&lt;/span&gt; Image&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; img.&lt;span style=&quot;color: #006600;&quot;&gt;onload&lt;/span&gt; = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Lightbox.&lt;span style=&quot;color: #006600;&quot;&gt;show&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;src&lt;/span&gt;, id&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; img.&lt;span style=&quot;color: #006600;&quot;&gt;src&lt;/span&gt; = &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;item&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;src&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;-lo.jpg&#039;&lt;/span&gt;, &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;-hi.jpg&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=g0ifvL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=g0ifvL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=C5kG1L&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=C5kG1L&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=X4VC3l&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=X4VC3l&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            
            <pubDate>Wed, 03 Sep 2008 05:54:47 -0700</pubDate>
        </item>
            
        <item>
            <title>QUnit: A simple look at the jQuery unit test framework</title>
            <link>http://swik.net/Ajax/Ajaxian/QUnit%3A+A+simple+look+at+the+jQuery+unit+test+framework/cdkjr</link>
            <description>&lt;p&gt;&lt;img src=&quot;http://www.lostechies.com/blogs/chad_myers/WindowsLiveWriter/GettingStartedWithjQueryQUnitforClientSi_12D1D/image_thumb_1.png&quot;/&gt;&lt;/p&gt;
&lt;p&gt;Chad Myers has a &lt;a href=&quot;http://www.lostechies.com/blogs/chad_myers/archive/2008/08/28/getting-started-with-jquery-qunit-for-client-side-javascript-testing.aspx&quot;&gt;simple look at GUnit&lt;/a&gt;, the jQuery based unit test framework. His article explains how to get going, and walks through a test like this:&lt;/p&gt;
&lt;div class=&quot;igBar&quot;&gt;&lt;a href=&quot;javascriptshowCodeTxt(&#039;javascript-24&#039;);&quot;&gt;PLAIN TEXT&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;syntax_hilite&quot;&gt;&lt;span style=&quot;color:#000000; font-weight:bold;&quot;&gt;JAVASCRIPT:&lt;/span&gt;
&lt;div id=&quot;javascript-24&quot;&gt;
&lt;div class=&quot;javascript&quot;&gt;
&lt;ol&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;module&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;Show and Hide&quot;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;test&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;should hide the element when hide is called&quot;&lt;/span&gt;, &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; $&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;#testDiv&quot;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;hide&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;// actual, expected&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; equals&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;$&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;#testDiv&quot;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;css&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;display&quot;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;, &lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;none&quot;&lt;/span&gt;, &lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;The element should be hidden&quot;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;test&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;should show the element when show is called&quot;&lt;/span&gt;, &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;// Arrange&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; $&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;#testDiv&quot;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;css&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;display&quot;&lt;/span&gt;, &lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;none&quot;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;// Act&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; $&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;#testDiv&quot;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;show&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;// Assert&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;// actual, expected&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; equals&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;$&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;#testDiv&quot;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;css&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;display&quot;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;, &lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;block&quot;&lt;/span&gt;, &lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;The element should be visible&quot;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=Hk7q8L&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=Hk7q8L&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=yHY45L&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=yHY45L&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=5sCfMl&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=5sCfMl&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            
            <pubDate>Wed, 03 Sep 2008 03:54:39 -0700</pubDate>
        </item>
            
        <item>
            <title>Xsstc: Cross-site scripting through CSS data</title>
            <link>http://swik.net/Ajax/Ajaxian/Xsstc%3A+Cross-site+scripting+through+CSS+data/cdkjq</link>
            <description>&lt;p&gt;Wes Biggs has posted on &lt;a href=&quot;http://www.tralfamadore.com/2008/08/xsstc-cross-site-scripting-through-css.html&quot;&gt;Xsstc, his cross-site scripting solution&lt;/a&gt; that uses CSS to hide the data:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
It turns out CSS leaks data in a very subtle way. Properties set by an external stylesheet (that is, one that is loaded using a LINK REL=&quot;STYLESHEET&quot; tag) are used to style the elements of the host page, and at runtime the page can introspect itself to see what styles have been applied. Most of these tend to be strictly prescribed data, such as background colours for block elements, or some multiple choice items, like left/center/right alignment for text. While you could conceivably come up with a binary (or ternary) system based on that, it would be a pretty nasty job to try to make those into a general-purpose data channel. Fortunately, there are a few places where CSS lets you specify essentially free-text attributes: image URLs.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;To make this work, the server has to dynamically send out simple CSS data, with info encoded into it... e.g. note the &#039;Hello World&#039;&lt;/p&gt;
&lt;div class=&quot;igBar&quot;&gt;&lt;a href=&quot;javascriptshowCodeTxt(&#039;css-21&#039;);&quot;&gt;PLAIN TEXT&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;syntax_hilite&quot;&gt;&lt;span style=&quot;color:#000000; font-weight:bold;&quot;&gt;CSS:&lt;/span&gt;
&lt;div id=&quot;css-21&quot;&gt;
&lt;div class=&quot;css&quot;&gt;
&lt;ol&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #cc00cc;&quot;&gt;#Xsstc &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;background-image&lt;/span&gt;: &lt;span style=&quot;color: #993333;&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;about:blank#Hello%20World&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;To tie into the data, you just need to exec away via:&lt;/p&gt;
&lt;div class=&quot;igBar&quot;&gt;&lt;a href=&quot;javascriptshowCodeTxt(&#039;javascript-22&#039;);&quot;&gt;PLAIN TEXT&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;syntax_hilite&quot;&gt;&lt;span style=&quot;color:#000000; font-weight:bold;&quot;&gt;JAVASCRIPT:&lt;/span&gt;
&lt;div id=&quot;javascript-22&quot;&gt;
&lt;div class=&quot;javascript&quot;&gt;
&lt;ol&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;Xsstc.&lt;span style=&quot;color: #006600;&quot;&gt;exec&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;http://lbs.tralfamadore.com/test.css&#039;&lt;/span&gt;, showResponse&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;You can see the &lt;a href=&quot;http://www.tralfamadore.com/test-xsstc.html&quot;&gt;test page to see it at work&lt;/a&gt;. An interesting hole indeed....&lt;/p&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=bUqEdL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=bUqEdL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=etmEpL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=etmEpL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=3FPpul&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=3FPpul&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            
            <pubDate>Wed, 03 Sep 2008 03:54:38 -0700</pubDate>
        </item>
            
        <item>
            <title>Google Chrome, Chromium, and V8</title>
            <link>http://swik.net/Ajax/Ajaxian/Google+Chrome%2C+Chromium%2C+and+V8/cdhv2</link>
            <description>&lt;p&gt;It is really exciting to see the level of pace that browsers have been setting recently, especially with respect to performance.&lt;/p&gt;
&lt;p&gt;I have been able to keep in sync with Google Chrome the new browser, and &lt;a href=&quot;http://chromium.org/&quot;&gt;Chromium&lt;/a&gt;, the open source code-base it comes from. There are a couple of innovations that have been great to see such as the multiple process model for tabs and windows, the unified tab and search functionality, and at the core, &lt;a href=&quot;http://code.google.com/p/v8/&quot;&gt;V8&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;V8 is the super-speedy JavaScript VM by Lars Bak of Sun HotSpot fame. When you run JavaScript &lt;a href=&quot;http://code.google.com/apis/v8/benchmarks.html&quot;&gt;benchmarks&lt;/a&gt; on this puppy, you see very speedy responses indeed. The V8 part of &lt;a href=&quot;http://www.google.com/googlebooks/chrome/&quot;&gt;the comic&lt;/a&gt; says it well:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.google.com/googlebooks/chrome/&quot;&gt;&lt;img src=&quot;http://ajaxian.com/wp-content/uploads/v8comic.png&quot; alt=&quot;&quot; title=&quot;V8 Comic&quot; width=&quot;480&quot; height=&quot;1045&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The breakthrough of having hidden classes to look at structures and work out the shared information (e.g. object Foo looks like a Person). Once you have that data, you can optimize in the same way you would class systems. V8 improvements consist of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Compiler: Instead of using interpretation, JavaScript gets compiled down to native code&lt;/li&gt;
&lt;li&gt;Inline caching: Optimize for accessing, and function calling&lt;/li&gt;
&lt;li&gt;Very efficient memory management system&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What version of JavaScript? &quot;V8 implements ECMAScript as specified in ECMA-262, 3rd edition, and runs on Windows XP and Vista, Mac OS X 10.5 (Leopard), and Linux systems that use IA-32 or ARM processors.&quot;&lt;/p&gt;
&lt;p&gt;If you are interested in the benchmark suites, you can &lt;a href=&quot;http://code.google.com/apis/v8/run.html&quot;&gt;run them&lt;/a&gt; and &lt;a href=&quot;http://code.google.com/apis/v8/benchmarks.html&quot;&gt;check them out&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Some of the core technology is also exciting to geeks. For example, as this code is operating system neutral we use the Skia Graphic Library (SGL) used by the Android team.&lt;/p&gt;
&lt;p&gt;What about the process manager? John Resig has &lt;a href=&quot;http://ejohn.org/blog/google-chrome-process-manager&quot;&gt;interesting thoughts on that&lt;/a&gt; with the rub: &quot;The blame of bad performance or memory consumption no longer lies with the browser but with the site.&quot;&lt;/p&gt;
&lt;p&gt;Alex Russell also has some good thoughts on the &lt;a href=&quot;http://alex.dojotoolkit.org/2008/09/the-importance-of-chrome/&quot;&gt;importance of Chrome&lt;/a&gt;, and Christopher Blizzard (Mozilla) also has some thoughts on &lt;a href=&quot;http://www.0xdeadbeef.com/weblog/?p=672&quot;&gt;how this shows the browser market is strong&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This is all great to see. Not only is this just the beginning for Google Chrome, Chromium, and V8 (I am dying for a Mac version!), but the other browsers are keeping pace too. The end result is a better Web for users, and a higher quality of product for developers to build against!&lt;/p&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=yaWXhL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=yaWXhL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=hRktpL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=hRktpL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=A8LDWl&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=A8LDWl&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            
            <pubDate>Tue, 02 Sep 2008 10:54:49 -0700</pubDate>
        </item>
            
        <item>
            <title>This Week in HTML5; Open Web Podcast with Anne van Kesteren</title>
            <link>http://swik.net/Ajax/Ajaxian/This+Week+in+HTML5%3B+Open+Web+Podcast+with+Anne+van+Kesteren/cdg1k</link>
            <description>&lt;p&gt;The tag-team HTML5 series, and &lt;a href=&quot;http://openwebpodcast.com/&quot;&gt;Open Web Podcast&lt;/a&gt; is back this week with new content.&lt;/p&gt;
&lt;p&gt;First, Mark Pilgrim&#039;s &lt;a href=&quot;http://blog.whatwg.org/this-week-in-html-5-episode-4&quot;&gt;This Week in HTML 5 Episode 4&lt;/a&gt; comes to you with the weekly summary: &lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
The big news this week is the birth of the &lt;a href=&quot;http://qa-dev.w3.org/wmvs/HEAD/&quot;&gt;W3C&#039;s experimental HTML 5 validator&lt;/a&gt; (&lt;a href=&quot;http://lists.w3.org/Archives/Public/www-validator/2008Aug/0057.html&quot;&gt;announcement&lt;/a&gt;).  It is based on &lt;a href=&quot;http://html5.validator.nu/&quot;&gt;Henri Sivonen&#039;s experimental HTML 5 validator&lt;/a&gt;, although &lt;a href=&quot;http://lists.w3.org/Archives/Public/public-html/2008Aug/0751.html&quot;&gt;there are still some integration bugs to shake out&lt;/a&gt;.  &lt;a href=&quot;http://intertwingly.net/blog/2008/08/26/W3C-HTML-5-Conformance-Checker&quot;&gt;Related discussion on Sam Ruby&#039;s blog&lt;/a&gt;.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Mark then details the &lt;a href=&quot;http://lists.w3.org/Archives/Public/public-html/2008Aug/0852.html&quot;&gt;discussions on SVG-in-HTML&lt;/a&gt;, and the &lt;a href=&quot;http://lists.w3.org/Archives/Public/public-html/2008Aug/0759.html&quot;&gt;alt argument&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;On the &lt;a href=&quot;http://openwebpodcast.com/episode-3-anne-van-kesteren-on-css-xhr-and-other-web-standards&quot;&gt;Open Web Podcast&lt;/a&gt;, John Resig and I got to interview Anne van Kesteren of Opera and numerous-standards fame:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
We got to sit down with him (virtually) and discuss both high level issues such as the current state of CSS, down to the brass tacks of particular APIs such as access-control, CSS3 Media Queries and XHR, and even look to the future with technology such as WebSockets.&lt;/p&gt;
&lt;p&gt;You can download the podcast directly (OGG format too), or subscribe to the series, including via iTunes).&lt;/p&gt;
&lt;p&gt;There are some nuggets that I didn’t know of, such as the agreement with Microsoft to at least use access-control (as XHR level 2 does) for their competing XDR proposal.&lt;/p&gt;
&lt;p&gt;Finally, with John Resig from Mozilla Corp, and Anne from Opera, there is some healthy debate on the roll of market share and minority browsers.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Who else would you like us to interview?  Ben and I have a fun new series that we are finally putting together that gets more into personality than technology, and is a lot of fun.&lt;/p&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=iHpfcL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=iHpfcL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=j8pWjL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=j8pWjL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=nw18ml&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=nw18ml&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            
            <pubDate>Tue, 02 Sep 2008 06:55:20 -0700</pubDate>
        </item>
            
        <item>
            <title>Firefox implements 3 CSS properties: text-shadow, -moz-box-shadow and -moz-column-rule</title>
            <link>http://swik.net/Ajax/Ajaxian/Firefox+implements+3+CSS+properties%3A+text-shadow%2C+-moz-box-shadow+and+-moz-column-rule/cdg1j</link>
            <description>&lt;p&gt;&lt;a href=&quot;http://maettig.com/code/css/text-shadow.html&quot;&gt;&lt;img src=&quot;http://ajaxian.com/wp-content/uploads/csstextshadow.png&quot; alt=&quot;&quot; title=&quot;CSS Text Shadow and more&quot; width=&quot;480&quot; height=&quot;410&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Michael Ventnor has blogged about the &lt;a href=&quot;http://developer.mozilla.org/web-tech/2008/08/27/3-new-css-3-properties/&quot;&gt;new support for text-shadow, -moz-box-shadow and -moz-column-rule&lt;/a&gt; which follows on with Safari and Opera. The subtle effects really add a great touch when NOT used gratuitously. The &lt;a href=&quot;http://maettig.com/code/css/text-shadow.html&quot;&gt;samples&lt;/a&gt; are both ;)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If you’ve been following the Gecko 1.9.1 development since it started then you’re probably already aware of, and possibly already taking advantage of, these CSS properties that I implemented but haven’t talked about yet (this web-tech blog really is a great idea!). They are in Alpha 1, but for maximum stability regarding them you should wait until Alpha 2 comes very shortly. I am, of course, talking about CSS3 text-shadow, box-shadow and column-rule.&lt;/p&gt;
&lt;p&gt;(I would’ve liked to include an example in this post, but Wordpress doesn’t seem to like “strange” CSS properties)&lt;/p&gt;
&lt;p&gt;Text shadows were in CSS2, but were dropped in CSS2.1 due to lack of implementations; but it’s slowly making a comeback! That’s why the -moz prefix is not necessary for text-shadow, but is needed for the other two (-moz-box-shadow and -moz-column-rule). To see some very creative uses of this property check out &lt;a href=&quot;http://maettig.com/code/css/text-shadow.html&quot;&gt;this&lt;/a&gt; web page. Another cool thing is that this property plays nicely with the “contenteditable” attribute, so you can make a text editor with flickering flames behind your text. Who said Silverlight was needed for pretty RIA’s?&lt;/p&gt;
&lt;p&gt;Box shadow is really nice, you can apply a shadow to almost any arbitrary element in your web page, thus easily giving your web app an extra bit of beauty. We also support the multiple shadows feature for both text and box shadows. Column rule allows you to draw lines between the gaps that separate columns if you are using CSS3 columns. It takes exactly the same syntax as a border side (border-top, etc), and pretty much completes our support for CSS3 columns functionality-wise.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This post comes on the back of &lt;a href=&quot;http://developer.mozilla.org/web-tech/2008/08/20/word-wrap-break-word/&quot;&gt;CSS word wrap support&lt;/a&gt; (e.g. &lt;code&gt;word-wrap: break-word;&lt;/code&gt;), CSS 2.1 generated content (e.g. &lt;code&gt;tr::before { display:table-cell; content:&quot;First cell&quot;; }&lt;/code&gt;), and more.&lt;/p&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=BL41bL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=BL41bL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=lx7hvL&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=lx7hvL&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=Qh3Mcl&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=Qh3Mcl&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            
            <pubDate>Tue, 02 Sep 2008 06:55:20 -0700</pubDate>
        </item>
            
        <item>
            <title>toStaticHTML: Sanitize your HTML in IE 8</title>
            <link>http://swik.net/Ajax/Ajaxian/toStaticHTML%3A+Sanitize+your+HTML+in+IE+8/cdgtk</link>
            <description>&lt;p&gt;The IE 8 beta has a new method, &lt;a href=&quot;http://msdn.microsoft.com/en-gb/library/cc848922(VS.85).aspx&quot;&gt;toStaticHTML&lt;/a&gt; that sanitizes HTML strings by removing dHTML elements and attributes from an HTML fragment.&lt;/p&gt;
&lt;p&gt;The example they give is:&lt;/p&gt;
&lt;div class=&quot;igBar&quot;&gt;&lt;a href=&quot;javascriptshowCodeTxt(&#039;html-27&#039;);&quot;&gt;PLAIN TEXT&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;syntax_hilite&quot;&gt;&lt;span style=&quot;color:#000000; font-weight:bold;&quot;&gt;HTML:&lt;/span&gt;
&lt;div id=&quot;html-27&quot;&gt;
&lt;div class=&quot;html&quot;&gt;
&lt;ol&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;script&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #000066;&quot;&gt;type&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;text/javascript&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;function sanitize() &lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;{&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; var szInput = myDiv.innerHTML;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; var szStaticHTML = toStaticHTML(szInput);&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; ResultComment = &amp;quot;\ntoStaticHTML sanitized the HTML fragment as follows:\n&amp;quot;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; + &amp;quot;Original Content:\n&amp;quot; + szInput + &amp;quot;\n&amp;quot;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; + &amp;quot;Static Content:\n&amp;quot; + szStaticHTML + &amp;quot;\n&amp;quot;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; myDiv.innerText = ResultComment;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;}&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;a href=&quot;http://december.com/html/4/element/body.html&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;body&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #000066;&quot;&gt;onload&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;sanitize()&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;div&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #000066;&quot;&gt;id&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;myDiv&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;a hr