<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:planet="http://planet.intertwingly.net/" xmlns:indexing="urn:atom-extension:indexing" indexing:index="no"><access:restriction xmlns:access="http://www.bloglines.com/about/specs/fac-1.0" relationship="deny"/>
  <title>Planet HTML5</title>
  <subtitle>HTML5 News &amp; Views</subtitle>
  <updated>2009-11-29T22:34:51Z</updated>
  <generator uri="http://intertwingly.net/code/venus/">Venus</generator>
  <author>
    <name>Michael(tm) Smith</name>
    <email>mike@w3.org</email>
  </author>
  <id>http://www.w3.org/html/planet/atom.xml</id>
  <link href="http://www.w3.org/html/planet/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://www.w3.org/html/planet/" rel="alternate"/>

  <entry>
    <id>http://stackoverflow.com/questions/1800213/are-transactions-possible-with-html5-storage-in-safari</id>
    <link href="http://stackoverflow.com/questions/1800213/are-transactions-possible-with-html5-storage-in-safari" rel="alternate" type="text/html"/>
    <title>Are transactions possible with HTML5 Storage in Safari</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Instead of doing an each loop on a JSON file containing a list of SQL statments and passing them one at a time, is it possible with Safari client side storage to simply wrap the data in "BEGIN TRANSACTION" / "COMMIT TRANSACTION" and pass that to the database system in a single call? Looping 1,000+ statements takes too much time.</p>

<p><b>Currently iterating one transaction at a time:</b></p>

<pre>$j.getJSON("update1.json",
  function(data){
    $j.each(data, function(i,item){
    		testDB.transaction(
    		    function (transaction) {
    		        transaction.executeSql(data[i], [], nullDataHandler, errorHandler);
    		    }
    		);
   });
});
</pre>

<p><b>Trying to figure out how to make just one call:</b></p>

<pre>$j.getJSON("update1.json",
  function(data){
    		testDB.transaction(
    		    function (transaction) {
    		        transaction.executeSql(data, [], nullDataHandler, errorHandler);
    		    }
    		);
});
</pre>

<p>Has anybody tried this yet and succeeded? </p></div>
    </summary>
    <updated>2009-11-29T21:15:26Z</updated>
    <published>2009-11-25T21:53:43Z</published>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="safari"/>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="sql"/>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="client-side-scripting"/>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="html5"/>
    <author>
      <name>SKFox</name>
    </author>
    <source>
      <id>http://stackoverflow.com/feeds/tag/html5</id>
      <link href="http://stackoverflow.com/feeds/tag/html5" rel="self" type="application/atom+xml"/>
      <link href="http://stackoverflow.com/questions/tagged/?tagnames=html5&amp;sort=active" rel="alternate" type="text/html"/>
      <link href="http://www.creativecommons.org/licenses/by-nc/2.5/rdf" rel="license"/>
      <subtitle>most recent 30 from stackoverflow.com</subtitle>
      <title>active questions tagged html5 - Stack Overflow</title>
      <updated>2009-11-29T22:34:30Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://stackoverflow.com/questions/1808704/which-html-doctype</id>
    <link href="http://stackoverflow.com/questions/1808704/which-html-doctype" rel="alternate" type="text/html"/>
    <title>Which HTML DocType?</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I was asked today by a senior developer which doctype I'd use if I was going to write something (personal / non-commercial) for the open web.</p>

<p>I responded, <code>&lt;!doctype html&gt;</code>, to which I was greeted with a look of shock, horror and surprise and then asked to explain myself.</p>

<p>To my mind, it's a good candidate because current browsers (IE, FF, Opera, Safari) will look at it and switch the content into standards mode - even though they don't implement HTML5.  If I want to actually take advantage of HTML5 elements, I can use some javascript to create a reference to those tags not recognised by, say, IE (e.g. <code>document.createElement('article');</code>) and then work with them as if they were native parts of the DOM.</p>

<p>Was this really such a bad answer?  What would you have answered and why?</p></div>
    </summary>
    <updated>2009-11-29T20:28:02Z</updated>
    <published>2009-11-27T13:12:56Z</published>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="html5"/>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="subjective"/>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="doctype"/>
    <author>
      <name>Phil.Wheeler</name>
    </author>
    <source>
      <id>http://stackoverflow.com/feeds/tag/html5</id>
      <link href="http://stackoverflow.com/feeds/tag/html5" rel="self" type="application/atom+xml"/>
      <link href="http://stackoverflow.com/questions/tagged/?tagnames=html5&amp;sort=active" rel="alternate" type="text/html"/>
      <link href="http://www.creativecommons.org/licenses/by-nc/2.5/rdf" rel="license"/>
      <subtitle>most recent 30 from stackoverflow.com</subtitle>
      <title>active questions tagged html5 - Stack Overflow</title>
      <updated>2009-11-29T22:34:30Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <author>
      <name>Anne van Kesteren</name>
    </author>
    <id>tag:annevankesteren.nl,2009-11-28:/160322/w3ctp-html</id>
    <link href="http://annevankesteren.nl/2009/11/w3ctp-html" rel="alternate" type="text/html"/>
    <title xml:lang="en">W3CTP: HTML</title>
    <summary xml:lang="en">&lt;p&gt;The meeting on HTML5!&lt;/p&gt;</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>I planned to post this way earlier but travel, jetlag, and a general feel that the entry was not quite finished got in the way. It seems to slow process on posting other things though so here it is.</p>
<p>I was somewhat disappointed by the lack of fights. The W3C did their part by providing us with popcorn and nachos, but none of the discussions about accessibility, distributed extensibility, extensions to host objects that cannot be implemented by ECMAScript directly, a language specification for HTML, et cetera went beyond polite discourse. Boring!</p>
<p>It is pretty clear we are reaching the end of the process. The specification no longer has major holes and the remaining issues are around differences of perspective on how certain issues need to be tackled. Of course, if at one point we decide to go the other way on one of these the outcome may be disruptive, but it does not seem all that likely.</p>
<p>The HTML WG did run again in unconference-style and the only thing I think we should here is gauge the level of interest in certain topics before giving them a one or half an hour slot. If there is just one person talking all the time it is not that interesting and we might as well have read an email outlining his position at some other point.</p></div>
    </content>
    <updated>2009-11-28T16:03:22Z</updated>
    <published>2009-11-28T16:03:22Z</published>
    <source>
      <id>tag:annevankesteren.nl,2003:/weblog</id>
      <author>
        <name>Anne van Kesteren</name>
        <uri>http://annevankesteren.nl/about</uri>
      </author>
      <link href="http://annevankesteren.nl/feeds/weblog" rel="self" type="application/atom+xml"/>
      <link href="http://annevankesteren.nl/" rel="alternate" type="text/html"/>
      <rights xml:lang="en">Copyright © 2003-2007 Anne van Kesteren. All rights reserved.</rights>
      <subtitle xml:lang="en">Weblog on W3C, WHATWG, HTML, CSS, DOM, XML, HTTP and more.</subtitle>
      <title xml:lang="en">Anne’s Weblog</title>
      <updated>2009-11-28T16:03:22Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://stackoverflow.com/questions/1805638/html-forms-working-offline</id>
    <link href="http://stackoverflow.com/questions/1805638/html-forms-working-offline" rel="alternate" type="text/html"/>
    <title>HTML forms working offline</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I need to be able to run HTML forms offline. I mean they have to work without direct connection to the web server. </p>

<p>In an application I wrote over 5 years ago I did it by implementing a custom protocol handler - when a user initiated form submit the resulting HTTP request was recorded locally. At later time when a connection to the server becomes available a synchronization program loops through collected requests and submits them to the server collects the responses and again saves them locally for later use.</p>

<p>That was then. Now another customer approached me with a very similar request. What technology do you guys think I should use today? </p>

<p>Support for HTML5 is very limited just yet. Google gears? Or should I go back and continue using the protocol handler and custom synchronizer?</p></div>
    </summary>
    <updated>2009-11-27T10:01:36Z</updated>
    <published>2009-11-26T21:07:19Z</published>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="html5"/>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="html"/>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="offline"/>
    <author>
      <name>mfeingold</name>
    </author>
    <source>
      <id>http://stackoverflow.com/feeds/tag/html5</id>
      <link href="http://stackoverflow.com/feeds/tag/html5" rel="self" type="application/atom+xml"/>
      <link href="http://stackoverflow.com/questions/tagged/?tagnames=html5&amp;sort=active" rel="alternate" type="text/html"/>
      <link href="http://www.creativecommons.org/licenses/by-nc/2.5/rdf" rel="license"/>
      <subtitle>most recent 30 from stackoverflow.com</subtitle>
      <title>active questions tagged html5 - Stack Overflow</title>
      <updated>2009-11-29T22:34:30Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://stackoverflow.com/questions/1445862/possible-to-use-html-images-like-canvas-with-getimagedata-putimagedata</id>
    <link href="http://stackoverflow.com/questions/1445862/possible-to-use-html-images-like-canvas-with-getimagedata-putimagedata" rel="alternate" type="text/html"/>
    <title>possible to use html images like canvas with getImageData / putImageData ?</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I'd like to know if there is a way to dynamically modify/access the data contained in html images just as if they were an html5 canvas element. With canvas, you can in javascript access the raw pixel data with getImageData() and putImageData(), but I have thus far been not able to figure out how to do this with images.</p></div>
    </summary>
    <updated>2009-11-26T21:10:14Z</updated>
    <published>2009-09-18T17:26:58Z</published>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="image"/>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="html5"/>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="canvas"/>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="getimagedata"/>
    <author>
      <name>gmiernicki</name>
    </author>
    <source>
      <id>http://stackoverflow.com/feeds/tag/html5</id>
      <link href="http://stackoverflow.com/feeds/tag/html5" rel="self" type="application/atom+xml"/>
      <link href="http://stackoverflow.com/questions/tagged/?tagnames=html5&amp;sort=active" rel="alternate" type="text/html"/>
      <link href="http://www.creativecommons.org/licenses/by-nc/2.5/rdf" rel="license"/>
      <subtitle>most recent 30 from stackoverflow.com</subtitle>
      <title>active questions tagged html5 - Stack Overflow</title>
      <updated>2009-11-29T22:34:30Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://developer.mozilla.org/devnews/?p=780</id>
    <link href="http://developer.mozilla.org/devnews/index.php/2009/11/26/firefox-3-6-beta-revision-4-now-available-for-download/" rel="alternate" type="text/html"/>
    <link href="http://developer.mozilla.org/devnews/index.php/2009/11/26/firefox-3-6-beta-revision-4-now-available-for-download/#comments" rel="replies" type="text/html"/>
    <link href="http://developer.mozilla.org/devnews/index.php/2009/11/26/firefox-3-6-beta-revision-4-now-available-for-download/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Firefox 3.6 Beta (revision 4) now available for download</title>
    <summary xml:lang="en">This morning the Mozilla community released Firefox 3.6 Beta 4, making  it available for  free download and  issuing an update for all Firefox 3.6 beta users.  This update contains over 100 fixes from the last Firefox 3.6 beta, containing many    improvements for web developers, Add-on    [...]</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>This morning the Mozilla community released Firefox 3.6 Beta 4, making  it <a href="http://www.mozilla.com/firefox/all-beta.html">available for  free download</a> and  issuing an update for all Firefox 3.6 beta users.  This update contains <a href="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=ALL%20status1.9.2:beta4-fixed">over 100 fixes</a> from the last Firefox 3.6 beta, containing many    improvements for web developers, Add-on         developers, and users.  Almost 70% of the thousands of Firefox Add-ons have now been  upgraded by their authors    to be compatible with Firefox 3.6 Beta. If  your favorite Add-on isn’t yet compatible, you can also download and  install the <a href="https://addons.mozilla.org/addon/15003?src=external-fxbetarelnote">Add-on     Compatibility Reporter</a> – your favorite Add-on author will     appreciate it!</p>
<p>The Mozilla community appreciates your feedback and assistance     in    testing this preview of the next version of Firefox. Your beta   software       will update itself periodically, and eventually will be  updated to    the final     release itself.</p>
<p>The Beta of Firefox 3.6 / Gecko 1.9.2  introduces several new     features for users to evaluate:</p>
<ul>
<li>(New in this version) Support for the <a href="https://developer.mozilla.org/en/Using_files_from_web_applications">HTML5 File API</a></li>
<li>A <a href="http://developer.mozilla.org/devnews/index.php/2009/11/16/component-directory-lockdown-new-in-firefox-3-6/">change  to how third-party software integrates with Firefox</a> to increase  stability.</li>
<li>The ability to <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=503481">run  scripts  asynchronously</a> to speed up page load times.</li>
<li>A <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=524904">mechanism</a> to prevent incompatible software from crashing Firefox.</li>
<li>Users can now change their browser’s appearance with a single click,     with built in support for <a href="https://addons.mozilla.org/en-US/firefox/personas/">Personas</a>.</li>
<li>Firefox 3.6 will <a href="http://theunfocused.net/2009/10/06/firefox-3-6-knows-when-your-plugins-are-out-of-date/">alert     users about out of date plugins</a> to keep them safe.</li>
<li>Open, native video can now be displayed <a href="http://mozillalinks.org/wp/2009/10/firefox-3-6-gets-full-screen-native-video/">full     screen</a>, and supports <a href="https://developer.mozilla.org/En/HTML/Element/Video">poster    frames</a>.</li>
<li>Support for the <a href="http://hacks.mozilla.org/2009/10/woff/">WOFF font format</a>.</li>
<li>Improved JavaScript performance, overall browser  responsiveness and    startup time.</li>
<li>Support for new CSS, DOM and HTML5 web technologies.</li>
</ul>
<p>Web developers and Add-on developers should read more detail about <a href="http://developer.mozilla.org/en/docs/Firefox_3.6_for_developers">the    many new features in Firefox  3.6 for developers</a> on the Mozilla    Developer Center. For the full list of changes since the <a href="http://www.mozilla.org/projects/firefox/3.6a1/releasenotes/">alpha    release</a> of Firefox 3.6 see <a href="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=ALL%20status1.9.2%3Afixed">this    list</a> (it’s big).</p>
<p>Please use the following links to download Firefox 3.6 Beta, or visit    the <a href="http://www.mozilla.com/firefox/all-beta.html">beta download    page</a>:</p>
<ul>
<li>Windows: <a href="http://download.mozilla.org/?product=firefox-3.6b4&amp;os=win&amp;lang=en-US">Firefox     3.6 Beta 4 Setup.exe</a></li>
<li>Mac OS X: <a href="http://download.mozilla.org/?product=firefox-3.6b4&amp;os=osx&amp;lang=en-US">Firefox     3.6 Beta 4.dmg</a></li>
<li>Linux: <a href="http://download.mozilla.org/?product=firefox-3.6b4&amp;os=linux&amp;lang=en-US">firefox-3.6b4.tar.bz2</a></li>
</ul>
<p>As always, the Mozilla community would appreciate hearing about any <a href="http://feedback.mozilla.org/">feedback</a> you have about this    release, or any <a href="http://developer.mozilla.org/en/docs/Bug_writing_guidelines">bugs      you may find</a>.</p></div>
    </content>
    <updated>2009-11-26T14:51:18Z</updated>
    <published>2009-11-26T14:51:18Z</published>
    <category scheme="http://developer.mozilla.org/devnews" term="Releases"/>
    <author>
      <name>beltzner</name>
      <uri>http://beltzner.ca/mike</uri>
    </author>
    <source>
      <id>http://developer.mozilla.org/devnews/index.php/feed/atom/</id>
      <link href="http://developer.mozilla.org/devnews" rel="alternate" type="text/html"/>
      <link href="http://developer.mozilla.org/devnews/index.php/feed/atom/" rel="self" type="application/atom+xml"/>
      <title xml:lang="en">Mozilla Developer News</title>
      <updated>2009-11-26T14:51:18Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <author>
      <name>Henri Sivonen</name>
    </author>
    <id>http://hsivonen.iki.fi/no-dtd/</id>
    <link href="http://hsivonen.iki.fi/no-dtd/" rel="alternate" type="text/html"/>
    <title type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">DTDs Don’t Work on the Web</div>
    </title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">Last weekend, Slashdot <a href="http://slashdot.org/article.pl?sid=07/01/14/1359213" shape="rect">linked</a>
to an <a href="http://www.deviceforge.com/news/NS9169645513.html" shape="rect">article</a>
that observed that Netscape had removed the <a href="http://my.netscape.com/publish/formats/rss-0.91.dtd" shape="rect">RSS
0.91 DTD</a>. I hope this episode has a silver
lining and helps in making people realize that DTDs don’t belong on
the Web.</div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Last weekend, Slashdot <a href="http://slashdot.org/article.pl?sid=07/01/14/1359213" shape="rect">linked</a>
to an <a href="http://www.deviceforge.com/news/NS9169645513.html" shape="rect">article</a>
that observed that Netscape had removed the <a href="http://my.netscape.com/publish/formats/rss-0.91.dtd" shape="rect">RSS
0.91 DTD</a>. Netscape quickly <a href="http://blog.netscape.com/2007/01/16/to-dtd-or-not-to-dtd/" shape="rect">restored</a>
the resource on a temporary basis. I hope this episode has a silver
lining and helps in making people realize that DTDs don’t belong on
the Web.</p>
<p>My initial thought was “Wow people are actually using XML
parsers with RSS” and next “but don’t have to good sense to
disable the processing of external entities”. It has been
interesting to observe how different people react to story. I think
Netscape’s position that they want to get rid of the burden is
actually quite reasonable, although the initial removal was obviously
due to the New Netscape being ignorant about the activities of the
Old Netscape.</p>
<h2 id="spof">A Single Point of Failure is <em>Bad</em></h2>
<p>There’s a lot of HTML and XHTML sample code out there that
contains a doctype that points to a DTD on <a href="http://www.w3.org/" shape="rect">www.w3.org</a>.
The illusion that this somehow “works” is based on <em>browsers
not actually retrieving the referenced DTDs</em>. This is why
www.w3.org doesn’t melt down under a massive ongoing distributed
denial of service attack. This is also why the Web keeps working when
there is a power outage at MIT and www.w3.org is temporarily
unreachable. <ins datetime="2008-02-09T10:23:00Z">(<b>Update:</b> <a href="http://www.w3.org/blog/systeam/2008/02/08/w3c_s_excessive_dtd_traffic" shape="rect">www.w3.org is under a massive DDoS attack all the time</a>—but not from browsers. Interestingly, the questions raised by the W3C Systeam don’t include “Should we admit that DTDs are a bad idea and we should get rid of them?” <ins datetime="2009-11-26T13:04:21Z"><b>Update:</b> Microsoft <a href="http://support.microsoft.com/kb/973687" shape="rect">issues updates</a> for various versions of MSXML to avoid parsing failure due to www.w3.org banning the IP address of the host running MSXML.</ins>)</ins></p>
<p>The RSS 0.91 DTD incident shows how bad an idea the remote DTD
becomes when it is for real and not just an illusion maintained to
keep the appearances. First, there’s a single point of failure.
When the DTD became unavailable, apps around the world stopped
working. Not good. Second, the RSS 0.91 DTD is retrieved over 4
million times per day. That’s nuts. Burdening a single third party
like that for something as useless as a DTD makes no sense.</p>
<h2 id="advice">Advice</h2>
<p>Although I now have a bit of a “told you so” feeling, when I
was younger, I too thought that loading external entities is a
problem that needs to be <a href="http://hsivonen.iki.fi/entity-management/" shape="rect">solved</a>.
I have gotten over it, though. The right way to fix the use of DTDs
on the Web is not to use them on the producer side and not to resolve
them on the consumer side.</p>
<ul><li><p>If you are a spec writer for an XML vocabulary, please don’t
	specify a DTD for the vocabulary. Please suggest that
	implementations run their XML parsers with external entity
	resolution disabled. Please note, however, that <em>banning</em> the
	doctype like SOAP does (or otherwise subsetting XML) is improper in
	terms of spec layering.</p>
	</li><li><p>If you are an implementor of a Web-facing XML-consuming app,
	please configure your XML parser not to perform DTD-based validation
	and not to resolve external entities. If, for legacy reasons, you
	must process some well-known DTDs, please make your entity resolver
	retrieve those DTDs from a local catalog. (For the internal subset,
	be sure to have protection against the Billion Laughs attack in
	place.)</p>
	</li><li><p>If you publish XML files on the Web, please don’t include a
	doctype. <em>(This point is specifically not about <code>text/html</code>
	content.)</em> 
	</p>
</li></ul>
<h2 id="faq">FAQ</h2>
<p>Unfortunately, writing about this requires pre-emptively refuting
all the usual misconceptions, so here goes:</p>
<h3 id="validation">But if I don’t have a doctype, my document cannot be validated,
right?</h3>
<p>The document won’t be “valid” in the sense of the term
defined in <a href="http://www.w3.org/TR/REC-xml/" shape="rect">XML 1.0</a>, <em>but
this does not matter</em>. Validity in the sense defined in XML 1.0
is dubious and overrated.</p>
<p>DTDs aren’t a particularly powerful validation formalism.
Moreover, having the document <em>declare its own grammar</em> is
worthless as far as the ability of a consumer to trust the document
adhering to particular rules is concerned. <a href="http://hsivonen.iki.fi/validator/" shape="rect">RELAX
NG validation</a> takes two distinct inputs—the document and the
schema—and the document cannot override the schema. In the RSS 0.91
case, the <a href="http://feedvalidator.org/" shape="rect">Feed Validator</a>
(that uses custom Python code instead of any schema formalism) does a
much better job at checking the feed syntax than DTD-based validation
would.</p>
<h3 id="specs">But a spec says I must use a doctype. What can I do?</h3>
<p>There’s not-so-great spec writing out there. You can try what
happens if you don’t comply. ☺</p>
<h3 id="layout">Isn’t a doctype needed to trigger the standards layout in
browsers?</h3>
<p>For <code>text/html</code> content, <a href="http://hsivonen.iki.fi/doctype/" shape="rect">yes</a>,
but this isn’t about HTML. For documents served using an XML
content type, <em>no</em>.</p>
<h3 id="type">How can a consuming application determine the type of a document
without a doctype?</h3>
<p>Using the doctype as an indicator of the type of the document
(what kind of document it is) is <a href="http://hsivonen.iki.fi/doctype/#xml" shape="rect">utterly
bogus</a>. Please don’t let the unfortunate name “doctype” or
the HTML 4.01 spec fool you.</p>
<p>If a consuming application can handle multiple XML vocabularies,
the right way to dispatch document to different handlers is to check
the namespace of the root element. For vocabularies that aren’t in
a namespace, the right way to dispatch is to look at the MIME type.
Vocabularies that aren’t in a namespace and don’t have a
vocabulary-specific MIME type are badly behaved and you have to
dispatch on the root element name.</p>
<h3 id="wml">Are you aware of WML 2.0?</h3>
<p><a href="http://www.opera.com/docs/specs/doctype/" shape="rect">Yeah</a>,
unfortunately. Fortunately, WML 2.0 is not really that relevant to
the Web. Opera and WebKit-based browsers are doing a good job
obsoleting the concept of the “Mobile Web” and making WML a
legacy footnote.</p>
<h3 id="subsetting">But DTDs are part of the XML spec. You said subsetting is
improper. Shouldn’t apps support the whole spec?</h3>
<p>Ad hoc subsetting is wrong. Having different spec profiles is also
bad in general, but the XML spec <em>itself</em> effectively defines
three processing profiles:</p>
<ol><li><p>Not performing DTD-based validation, not retrieving external
	entities.</p>
	</li><li><p>Not performing DTD-based validation, retrieving external
	entities to perform infoset augmentation and entity reference
	expansion.</p>
	</li><li><p>Performing DTD-based validation, retrieving external entities
	to perform infoset augmentation and entity reference expansion.</p>
</li></ol>
<p>The whole point of having profiles is to allow apps to choose a
suitable one. <a href="http://www.xml.com/axml/notes/WhyOptExtEnt.html" shape="rect">The
creators of the XML spec made profile #1 for browsers.</a> It would
be crazy for Web-facing apps not to take the opportunity to avoid the
DTD cruft when given the chance. In fact, the whole concept of
well-formedness is there to support DTDlessness!</p>
<h3 id="entities">Aren’t you disallowing character entities?</h3>
<p>It is a done deal. Many people are just still in denial. Character
entities (other than the 5 predefined ones) became unsafe for the Web
when the XML 1.0 spec made them an optional feature (profile #1
above). On the Web, you can’t count on optional features (which is
why it is a bad idea for Web-oriented specs to have optional
features). 
</p>
<p>The situation is unfortunate, but this really is an input method
problem between you and your editor. Fixing it in the wire format is
the wrong place. However, if I had a chance go back in time and
change XML 1.0, I’d define all the XHTML and MathML entities as
predefined. But it is too late, because much of the value of XML is
in interoperable off-the-shelf parsers and changing XML would break
the interop (which is why XML 1.1 is such a bad idea). So you just
need to figure out a better input method and use straight UTF-8.</p>
<h3 id="math">Don’t you know that Gecko maps MathML entities to PUA
characters so using straight UTF-8 with the real astral characters is
different?</h3>
<p>I am <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=289938" shape="rect">aware</a>
of that. What Gecko does is dirty, should be fixed and definitely
should not be encouraged.</p>
<h3 id="id">How do I establish IDness without DTD processing?</h3>
<p>You establish it by mutating the infoset reported by the XML
processor based on some criteria related to element and attribute
names and namespaces. An “<a href="http://www.w3.org/TR/xml-id/#dt-xml-id-proc" shape="rect">xml:id
processor</a>” does this. A conceptually analogous “XHTML id
processor” could be defined. (<a href="http://whatwg.org/specs/web-apps/current-work/" shape="rect">XHTML5</a>
implies such a processing component.) Both can be implemented as SAX
filters.</p>
<h3 id="notation">What about NOTATIONs?</h3>
<p>Ha ha. We’re out of frequent questions.</p></div>
    </content>
    <updated>2009-11-26T13:07:18Z</updated>
    <source>
      <id>http://hsivonen.iki.fi/feed/atom/</id>
      <author>
        <name>Henri Sivonen</name>
        <email>hsivonen@iki.fi</email>
      </author>
      <link href="http://hsivonen.iki.fi/" rel="alternate" type="text/html"/>
      <link href="http://hsivonen.iki.fi/feed/atom/" rel="self" type="application/atom+xml"/>
      <rights xml:lang="en">Copyright Henri Sivonen</rights>
      <subtitle xml:lang="en">Articles and blogish notes</subtitle>
      <title xml:lang="en">Henri Sivonen’s pages</title>
      <updated>2009-11-29T22:00:31Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://stackoverflow.com/questions/1789692/section-or-article-which-is-contained-in-which</id>
    <link href="http://stackoverflow.com/questions/1789692/section-or-article-which-is-contained-in-which" rel="alternate" type="text/html"/>
    <title>&lt;section&gt; or &lt;article&gt;, which is contained in which</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Trying to get my head around the new semantic elements in HTML5.</p>

<p>Does a <code>&lt;section&gt;</code> belong inside an <code>&lt;article&gt;</code> or is it the other way around? Does it even matter?</p>

<p>I'm looking at structuring a wordpress blog something like this:
<img alt="Attempted layout for html5 blog" src="http://emberapp.com/abizern/images/littlesnapper-1/sizes/m.png"/></p>

<p>Is this reasonable, or am I missing something?</p></div>
    </summary>
    <updated>2009-11-26T09:58:40Z</updated>
    <published>2009-11-24T12:13:44Z</published>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="html5"/>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="section"/>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="article"/>
    <author>
      <name>Abizern</name>
    </author>
    <source>
      <id>http://stackoverflow.com/feeds/tag/html5</id>
      <link href="http://stackoverflow.com/feeds/tag/html5" rel="self" type="application/atom+xml"/>
      <link href="http://stackoverflow.com/questions/tagged/?tagnames=html5&amp;sort=active" rel="alternate" type="text/html"/>
      <link href="http://www.creativecommons.org/licenses/by-nc/2.5/rdf" rel="license"/>
      <subtitle>most recent 30 from stackoverflow.com</subtitle>
      <title>active questions tagged html5 - Stack Overflow</title>
      <updated>2009-11-29T22:34:30Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://stackoverflow.com/questions/1797535/html-canvas-element-implemented-in-flash</id>
    <link href="http://stackoverflow.com/questions/1797535/html-canvas-element-implemented-in-flash" rel="alternate" type="text/html"/>
    <title>HTML Canvas element implemented in Flash?</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Can the HTML 5 Canvas element be implemented in Flash to provide support for that element in older browsers?</p></div>
    </summary>
    <updated>2009-11-25T15:05:43Z</updated>
    <published>2009-11-25T15:05:43Z</published>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="canvas"/>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="html5"/>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="flash"/>
    <author>
      <name>Liam</name>
    </author>
    <source>
      <id>http://stackoverflow.com/feeds/tag/html5</id>
      <link href="http://stackoverflow.com/feeds/tag/html5" rel="self" type="application/atom+xml"/>
      <link href="http://stackoverflow.com/questions/tagged/?tagnames=html5&amp;sort=active" rel="alternate" type="text/html"/>
      <link href="http://www.creativecommons.org/licenses/by-nc/2.5/rdf" rel="license"/>
      <subtitle>most recent 30 from stackoverflow.com</subtitle>
      <title>active questions tagged html5 - Stack Overflow</title>
      <updated>2009-11-29T22:34:30Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://blog.mozilla.com/meeting-notes/archives/270</id>
    <link href="http://blog.mozilla.com/meeting-notes/archives/270" rel="alternate" type="text/html"/>
    <link href="http://blog.mozilla.com/meeting-notes/archives/270#comments" rel="replies" type="text/html"/>
    <link href="http://blog.mozilla.com/meeting-notes/archives/270/feed/atom" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Mozilla Platform Meeting Minutes: 2009-11-24</title>
    <summary xml:lang="en">Platform/2009-11-24
From MozillaWiki
&lt; Platform
« previous week | index | next week »


  Notices / Schedule 
Firefox 3.0.16 / Firefox 3.5.6


 in QA, on track for mid-December release

Firefox 3.0.17 / Firefox 3.5.7


 no schedule for either release yet, should have one by the end of the week
 tree should open in early December

Firefox 3.6 Beta


 beta [...]</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><div>
<h3>Platform/2009-11-24</h3>
<h5>From MozillaWiki</h5>
<div id="contentSub"><span class="subpages">&lt; <a href="https://wiki.mozilla.org/Platform" title="Platform">Platform</a></span></div>
<p><a href="https://wiki.mozilla.org/Platform/2009-11-17" title="Platform/2009-11-17">« previous week</a> | <a href="https://wiki.mozilla.org/Platform" title="Platform">index</a> | <a class="new" href="https://wiki.mozilla.org/index.php?title=Platform/2009-12-01&amp;action=edit&amp;redlink=1" title="Platform/2009-12-01 (page does not exist)">next week »</a>
</p>
<p><a id="Notices_.2F_Schedule" name="Notices_.2F_Schedule"/><br/>
</p><h3> </h3>
<p><b><a href="https://wiki.mozilla.org/Releases/Firefox_3.0.16" title="Releases/Firefox 3.0.16">Firefox 3.0.16</a> / <a href="https://wiki.mozilla.org/Releases/Firefox_3.5.6" title="Releases/Firefox 3.5.6">Firefox 3.5.6</a></b>
</p>
<ul>
<li> in QA, on track for mid-December release
</li></ul>
<p><b><a class="new" href="https://wiki.mozilla.org/index.php?title=Releases/Firefox_3.0.17&amp;action=edit&amp;redlink=1" title="Releases/Firefox 3.0.17 (page does not exist)">Firefox 3.0.17</a> / <a class="new" href="https://wiki.mozilla.org/index.php?title=Releases/Firefox_3.5.7&amp;action=edit&amp;redlink=1" title="Releases/Firefox 3.5.7 (page does not exist)">Firefox 3.5.7</a></b>
</p>
<ul>
<li> no schedule for either release yet, should have one by the end of the week<p/>
</li><li> tree should open in early December
</li></ul>
<p><b>Firefox 3.6 Beta</b>
</p>
<ul>
<li> beta user base is now over 450,000<p/>
</li><li> beta 3 refresh shipped last week
</li><li> component lockdown effects?
</li></ul>
<p><b>Firefox 3.6 RC</b>
</p>
<ul>
<li> late on RC freeze
</li></ul>
<p><a id="Blocker_Report" name="Blocker_Report"/><br/>
</p><h3> </h3>
<p>See more <a href="https://wiki.mozilla.org/Firefox/3.6" title="Firefox/3.6">Firefox 3.6 related blocker queries</a>, or learn about the <a href="https://wiki.mozilla.org/Releases/Flags" title="Releases/Flags">new status and blocker flags</a>
</p>
<ul>
<li> Release Blockers (flag: blocking1.9.2 or blocking-firefox3.6)<p/>
<ul>
<li> <a class="external text" href="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=flag%3Ablocking1.9.2%2B,blocking-firefox3.6%2B" rel="nofollow" title="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=flag%3Ablocking1.9.2%2B,blocking-firefox3.6%2B">46 OPEN</a> (-51 w/w)<p/>
</li><li> <a class="external text" href="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=FIXED%20-status1.9.2%3Afixed,unaf,wont%20flag%3Ablocking1.9.2%2B,blocking-firefox3.6%2B%20prod:Core,Firefox,Toolkit,NSS,NSPR" rel="nofollow" title="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=FIXED%20-status1.9.2%3Afixed,unaf,wont%20flag%3Ablocking1.9.2%2B,blocking-firefox3.6%2B%20prod:Core,Firefox,Toolkit,NSS,NSPR">23 FIXED but not yet fixed on mozilla-1.9.2</a> (-8 w/w)
</li><li> <a class="external text" href="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=flag%3Ablocking1.9.2%3F,blocking-firefox3.6%3F" rel="nofollow" title="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=flag%3Ablocking1.9.2%3F,blocking-firefox3.6%3F">12 nominations</a> (-21 w/w)
</li><li> Handy charts: <a class="external text" href="http://people.mozilla.org/~mnandigama/openBlockers.html" rel="nofollow" title="http://people.mozilla.org/~mnandigama/openBlockers.html">Blocker snapshots</a>, <a class="external text" href="http://people.mozilla.org/~mnandigama/openBlockersTrend.html" rel="nofollow" title="http://people.mozilla.org/~mnandigama/openBlockersTrend.html">Blocker and Noms trends</a>
</li></ul>
</li><li> Approvals
<ul>
<li> <a class="external text" href="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=ALL%20-status1.9.2%3Afixed,unaf,wont%20flag%3Aapproval1.9.2%3F" rel="nofollow" title="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=ALL%20-status1.9.2%3Afixed,unaf,wont%20flag%3Aapproval1.9.2%3F">100 requests</a> (-11 w/w)<p/>
</li><li> <a class="external text" href="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=ALL%20-status1.9.2%3Afixed,unaf,wont%20flag%3Aapproval1.9.2%2B" rel="nofollow" title="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=ALL%20-status1.9.2%3Afixed,unaf,wont%20flag%3Aapproval1.9.2%2B">7 approved but not yet fixed on mozilla-1.9.2</a> (-10 w/w)
</li><li> Charts: <a class="external text" href="http://people.mozilla.org/~mnandigama/openblockersNominated.html" rel="nofollow" title="http://people.mozilla.org/~mnandigama/openblockersNominated.html">Nominations snapshots</a>
</li></ul>
</li></ul>
<p><a id="Browser_.2F_Front_End" name="Browser_.2F_Front_End"/><br/>
</p><h3> </h3>
<p>(Progress reports every weekend on <a class="external text" href="http://planet.firefox.com" rel="nofollow" title="http://planet.firefox.com">Planet Firefox</a>)
</p>
<ul>
<li> see our <a href="https://wiki.mozilla.org/Firefox/Projects" title="Firefox/Projects">active projects</a> and get involved / <b>propose others</b><p/>
</li><li> Namoroka/mozilla-1.9.2 front end development:
<ul>
<li> <a class="external text" href="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=ALL%20flag%3Ablocking-firefox3.6%2B%2Cblocking1.9.2%2B%20product%3AFirefox%2CToolkit%2CNSS%2CNSPR%20-status1.9.2:fixed,unaffected,wontfix" rel="nofollow" title="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=ALL%20flag%3Ablocking-firefox3.6%2B%2Cblocking1.9.2%2B%20product%3AFirefox%2CToolkit%2CNSS%2CNSPR%20-status1.9.2:fixed,unaffected,wontfix">8 blockers left</a>, <a class="external text" href="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=ALL%20flag%3Ablocking-firefox3.6%2B%2Cblocking1.9.2%2B%20product%3AFirefox%2CToolkit%2CNSS%2CNSPR%20-status1.9.2:fixed,unaffected,wontfix%20sw:crashkill" rel="nofollow" title="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=ALL%20flag%3Ablocking-firefox3.6%2B%2Cblocking1.9.2%2B%20product%3AFirefox%2CToolkit%2CNSS%2CNSPR%20-status1.9.2:fixed,unaffected,wontfix%20sw:crashkill">4 are crashkill</a><p/>
</li><li> <a class="external text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=520535" rel="nofollow" title="https://bugzilla.mozilla.org/show_bug.cgi?id=520535">bug 520535</a> needs a patch
</li><li> the other three need review (Neil Rashbrook is sick, Neil Deakin is out)
</li><li> should be done in next 24 hours
</li><li> keeping nomination list down with constant review, so far no major concerns other than late breaking Toolkit dependencies coming in from Fennec
</li></ul>
</li></ul>
<p><a id="GFX_Update" name="GFX_Update"/><br/>
</p><h3> </h3>
<ul>
<li> <a class="external text" href="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=ALL%20comp:gfx,image,widget,graphics%20-comp:xul%20flag:blocking1.9.2%2B,blocking-firefox3.6%2B%20-status1.9.2:fixed,unaffected,wontfix" rel="nofollow" title="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=ALL%20comp:gfx,image,widget,graphics%20-comp:xul%20flag:blocking1.9.2%2B,blocking-firefox3.6%2B%20-status1.9.2:fixed,unaffected,wontfix">2 blockers</a>; one is waiting on review, the other is a mobile blocker (kerning) that has not seen traction yet.<p/>
</li><li> <a class="external text" href="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=ALL%20comp:gfx,image,widget,graphics%20-comp:xul%20flag:blocking1.9.2%3F,blocking-firefox3.6%3F%20-status1.9.2:fixed,unaffected,wontfix" rel="nofollow" title="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=ALL%20comp:gfx,image,widget,graphics%20-comp:xul%20flag:blocking1.9.2%3F,blocking-firefox3.6%3F%20-status1.9.2:fixed,unaffected,wontfix">2 noms</a>; 1 might be build config related and if so should not block, the other has a reviewed patch and probably shouldn’t block, but should be approved.
</li><li> Jonathan Kew’s font enumeration Ts patch is looking good, and has passed review from John Daggett.
</li><li> And now, for the Direct2D in Firefox show, starring Bas Schouten!
<ul>
<li> <a class="external text" href="http://www.basschouten.com/blog1.php/2009/11/22/direct2d-hardware-rendering-a-browser" rel="nofollow" title="http://www.basschouten.com/blog1.php/2009/11/22/direct2d-hardware-rendering-a-browser">Bas’s blog post on Direct2D</a> was featured in a <a class="external text" href="http://news.cnet.com/8301-17939_109-10403604-2.html" rel="nofollow" title="http://news.cnet.com/8301-17939_109-10403604-2.html">cnet news article on Direct2D in Firefox</a>.<p/>
</li><li> Direct2D provides vector graphics rendering on the GPU. It is implemented as a backend to cairo.
</li><li> Large performance improvements in scrolling.
</li><li> Large improvements in dynamic websites using a lot of transformations and blending operations.
</li><li> Possible implementation strategies:
<ul>
<li> Switched on for all D3D10+ cards, blacklist buggy hardware.<p/>
</li><li> Switch off by default, whitelist hardware/driver versions.
</li><li> Possibly additionally whitelist D3D9 cards.
</li></ul>
</li></ul>
</li><li> <a class="external text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=470440" rel="nofollow" title="https://bugzilla.mozilla.org/show_bug.cgi?id=470440">bug 470440</a> Going to implement sub-pixel positioned text rendering on Linux, hoping to have working code by early next week
</li></ul>
<p><a id="Layout_Update" name="Layout_Update"/><br/>
</p><h3> </h3>
<ul>
<li> Blocker report<p/>
<ul>
<li> Several blockers added and fixed in the last week<p/>
</li><li> 1 nomination (arrived 30 minutes ago)
</li><li> 3 blockers with patches
</li><li> 1 crashkill (not a hard blocker IMHO)
</li></ul>
</li><li> Still evaluating crashes revealed by frame poisoning
<ul>
<li> Largest-volume crash fixed, probably fixes for one or two others<p/>
</li><li> Most have no steps to reproduce, some seem inexplicable
</li><li> Need a judgment call on remaining volume
</li></ul>
</li><li> Video on N900
<ul>
<li> Theorarm decodes 100fps on “reasonably sized video”, beating current DSP decoder (on speed if not power)<p/>
</li><li> Plan on using GL for YUV decoding, not this quarter
</li><li> Experiment with standalone player
</li><li> Pulseaudio takes 10-15% of CPU!
</li></ul>
</li><li> <a class="external text" href="https://developer.mozilla.org/En/Debugging/Record_and_Replay_Debugging_Firefox" rel="nofollow" title="https://developer.mozilla.org/En/Debugging/Record_and_Replay_Debugging_Firefox">Instructions for setting up record and replay</a>
<ul>
<li> Any particular test we should look at?<p/>
</li><li> Need Windows loopback interface sniffing
</li></ul>
</li></ul>
<p><a id="Content_Update" name="Content_Update"/><br/>
</p><h3> </h3>
<ul>
<li> One blocker left (security bug)<p/>
</li><li> Ben Newman got JPW talking across processes.
</li><li> Jonas Sicking went through and caught up with the spec and cleaned up some minor problems in our new DOM file API additions.
</li><li> Continuing with crashkill work
</li><li> HTML5 parser update (hsivonen)
</li></ul>
<p><a id="Platform-specific_Support_Update" name="Platform-specific_Support_Update"/><br/>
</p><h3> </h3>
<p><a id="JS" name="JS"/><br/>
</p><h3> </h3>
<ul>
<li> Blockers:<p/>
<ul>
<li> Some fixed on TM tree, one test failure after m-c merge holding things up<p/>
</li><li> Merging to 1.9.2 ongoing
</li><li> Many new fuzzbug / QA bugs recently
</li><li> JS team will meet to discuss each JS blocker at 2pm PST
</li></ul>
</li></ul>
<p><a id="Startup_Performance" name="Startup_Performance"/><br/>
</p><h3> </h3>
<p><b>Summmary</b>
</p>
<ul>
<li> Read the latest <a class="external text" href="http://autonome.wordpress.com/2009/11/14/firefox-startup-performance-weekly-summary-11/" rel="nofollow" title="http://autonome.wordpress.com/2009/11/14/firefox-startup-performance-weekly-summary-11/">weekly update</a>.<p/>
</li><li> View <a class="external text" href="http://graphs.mozilla.org/dashboard/snapshot/" rel="nofollow" title="http://graphs.mozilla.org/dashboard/snapshot/">snapshot results</a> for startup and all other tests.
<ul>
<li> <a class="external text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=517804" rel="nofollow" title="https://bugzilla.mozilla.org/show_bug.cgi?id=517804">bug 517804</a> was a big win for Mac warm startup, putting 3.6 at 35% faster than 3.5.
</li></ul>
</li></ul>
<p><b>Activity</b>
</p>
<ul>
<li> Joel has some data on his super-static Firefox in <a class="external text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=525013" rel="nofollow" title="https://bugzilla.mozilla.org/show_bug.cgi?id=525013">bug 525013</a>. Inconclusive so far.<p/>
</li><li> Ben is making progress on the fastload replacement in <a class="external text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=520309" rel="nofollow" title="https://bugzilla.mozilla.org/show_bug.cgi?id=520309">bug 520309</a>. Some fastload/invalidation discussion in this <a class="external text" href="http://groups.google.com/group/mozilla.dev.platform/browse_thread/thread/ca867015d8e35fd2/c86a10493eff7146?lnk=raot#c86a10493eff7146" rel="nofollow" title="http://groups.google.com/group/mozilla.dev.platform/browse_thread/thread/ca867015d8e35fd2/c86a10493eff7146?lnk=raot#c86a10493eff7146">dev.platform thread</a>.
</li><li> Taras has patches up for service caching (<a class="external text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=516085" rel="nofollow" title="https://bugzilla.mozilla.org/show_bug.cgi?id=516085">bug 516085</a>
</li><li> Super-fast-path-ing of Components.* needs some JS team help: (<a class="external text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=512584" rel="nofollow" title="https://bugzilla.mozilla.org/show_bug.cgi?id=512584">bug 512584</a>).
</li><li> Looks like a final patch on <a class="external text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=519445" rel="nofollow" title="https://bugzilla.mozilla.org/show_bug.cgi?id=519445">bug 519445</a>, for reducing Mac startup time spent in font system initialization.
</li><li> Ryan Flint put a patch to minify JS on <a class="external text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=524858" rel="nofollow" title="https://bugzilla.mozilla.org/show_bug.cgi?id=524858">bug 524858</a>, needs work still, but significantly reduces the size of shipped JS files.
</li></ul>
<p><b>More</b>
</p>
<ul>
<li> More details on the <a class="external text" href="https://wiki.mozilla.org/Firefox/Projects/Startup_Time_Improvements" rel="nofollow" title="https://wiki.mozilla.org/Firefox/Projects/Startup_Time_Improvements">project page</a>.<p/>
</li><li> Join us on IRC in <a class="external text" href="http://irc.mozilla.org/#startup" rel="nofollow" title="http://irc.mozilla.org/#startup">#startup</a>.
</li></ul>
<p><a id="Security" name="Security"/><br/>
</p><h3> </h3>
<p><a href="https://wiki.mozilla.org/Firefox3.6/Security" title="Firefox3.6/Security">pending reviews</a>
</p>
<table border="1">
<tbody><tr>
<th> feature
</th><th> review date
</th><th> who
</th><th> interested<br/>
</th></tr>
<tr>
<td>Windows TSF integration (1.9.2)
</td><td> <a href="https://wiki.mozilla.org/Firefox3.1/TSF_Security_Review" title="Firefox3.1/TSF Security Review">unscheduled</a>
</td><td> Jim Chen, roc
</td><td>
</td></tr>
<tr>
<td>DNS Prefetching
</td><td> <a href="https://wiki.mozilla.org/Firefox3.1/DNS_Prefetching_Security_Review" title="Firefox3.1/DNS Prefetching Security Review">unscheduled</a>
</td><td> Patrick McManus
</td><td> Jesse, bz, reed(?), ctalbert<br/>
</td></tr>
<tr>
<td> New system metrics (and media queries)
</td><td> <a href="https://wiki.mozilla.org/Firefox_3.6/System_Metrics_Security_Review" title="Firefox 3.6/System Metrics Security Review">unscheduled</a>
</td><td> ?
</td><td> dbaron<br/>
</td></tr></tbody></table>
<p><a class="external text" href="https://intranet.mozilla.org/Security:Topbugs" rel="nofollow" title="https://intranet.mozilla.org/Security:Topbugs">Top Security Bugs</a></p>
<p><b>Session Cookie Policies</b>
</p>
<ul>
<li> Lucas filed <a class="external text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=530594" rel="nofollow" title="https://bugzilla.mozilla.org/show_bug.cgi?id=530594">bug 530594</a> to propose that we forcibly expire session cookies after 7 days; we need feedback from people here and from web developers<p/>
</li><li> also wondering if we should have an explicit option to always expire session cookies whenever the browser quits, even if the user chooses to save tabs or if there is a restart for add-on or application install/update.
</li><li> Related bugs:
<ul>
<li> <a class="external text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=529899" rel="nofollow" title="https://bugzilla.mozilla.org/show_bug.cgi?id=529899">bug 529899</a> to have session restore not save session cookies if the user has set Firefox to expire all cookies on shutdown<p/>
</li><li> <a class="external text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=529644" rel="nofollow" title="https://bugzilla.mozilla.org/show_bug.cgi?id=529644">bug 529644</a> is about rewording the “Save and Quit” dialog to explain that session cookies will be preserved
</li></ul>
</li></ul>
<p><a id="Electrolysis" name="Electrolysis"/><br/>
</p><h3> </h3>
<p><a id="Tree_Management" name="Tree_Management"/><br/>
</p><h3> </h3>
<ul>
<li> Downtimes<p/>
<ul>
<li> Try server repo needs resetting.  Will be down for around 1 hour.  Tomorrow night or next tuesday.
</li></ul>
</li></ul>
<ul>
<li> b4 / rc1 scheduling
</li></ul>
<p><a id="Roundtable" name="Roundtable"/><br/>
</p><h3> </h3>
<ul>
<li> we think we’ve fixed a sigificant number of the <a href="https://wiki.mozilla.org/CrashKill/2009-11-23#3.6b3_Bugs" title="CrashKill/2009-11-23">3.6b3 topcrashes</a> (see Sam’s nice table) (dbaron)
</li></ul>
<div class="printfooter">
Retrieved from “<a href="https://wiki.mozilla.org/Platform/2009-11-24">https://wiki.mozilla.org/Platform/2009-11-24</a>“</div>
<p/></div></div>
    </content>
    <updated>2009-11-25T04:00:06Z</updated>
    <published>2009-11-25T04:00:06Z</published>
    <category scheme="http://blog.mozilla.com/meeting-notes" term="Posts"/>
    <category scheme="http://blog.mozilla.com/meeting-notes" term="mozillaplatform"/>
    <author>
      <name>bsmedberg</name>
      <uri>http://blog.mozilla.com/meeting-notes/wp-atom.php</uri>
    </author>
    <source>
      <id>http://blog.mozilla.com/meeting-notes/feed/atom</id>
      <link href="http://blog.mozilla.com/meeting-notes" rel="alternate" type="text/html"/>
      <link href="http://blog.mozilla.com/meeting-notes/feed/atom" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">Meetings notes from the Mozilla community</subtitle>
      <title xml:lang="en">Meeting Notes</title>
      <updated>2009-11-25T04:00:10Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://ejohn.org/blog/nodename-case-sensitivity/</id>
    <link href="http://ejohn.org/blog/nodename-case-sensitivity/" rel="alternate" type="text/html"/>
    <title xml:lang="en">.nodeName Case Sensitivity</title>
    <summary xml:lang="en">When working with the DOM .nodeName property there are two hard-and-fast rules that most people abide by:


The node names of HTML elements are always uppercase, even if they're explicitly created using lowercase characters. &lt;html&gt; will result in a .nodeName === "HTML" (see the HTML 5 draft).
The node names of XML elements are always in the [...]</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>When working with the DOM <code>.nodeName</code> property there are two hard-and-fast rules that most people abide by:</p>
	<ol>
	<li>The node names of HTML elements are always uppercase, even if they're explicitly created using lowercase characters. <code>&lt;html&gt;</code> will result in a <code>.nodeName === "HTML"</code> (<a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/apis-in-html-documents.html#apis-in-html-documents">see the HTML 5 draft</a>).</li>
	<li>The node names of XML elements are always in the original case, as specified when they're created. <code>&lt;data&gt;</code> will result in a <code>.nodeName === "data"</code>, <code>&lt;DATA&gt;</code> will result in a <code>.nodeName === "DATA"</code>.</li>
	</ol>
	<p>Knowing these rules can be useful because it allows you to optimize your code. If you know that you're in an HTML document you can avoid having to upper/lowercase your <code>.nodeName</code> checks and you can just always assume that you're dealing with a <code>.nodeName</code> that's uppercase. This results in faster selectors for Internet Explorer and other minor optimizations.</p>
	<p>However recently I've been running across two cases that've been especially problematic and have bucked the trend.</p>
	<h3>Importing Nodes from XML</h3>
	<p>The first is for browsers that support the <code>adoptNode</code>/<code>importNode</code> DOM methods. These methods allow you to move (or clone) a node from one DOM document to another. In this way you can move an XML node from an XML document and insert it into an HTML document. Normally this shouldn't matter much but, as it turns out, the original <code>.nodeName</code> case sensitivity is preserved from the original XML-ness of the node.</p>
	<p>Thus if you have a lowercase XML element (<code>&lt;data&gt;</code>) and you use <code>adoptNode</code> or <code>importNode</code> to bring it into your HTML document the result will be <code>.nodeName === "data"</code> -- which completely bucks the trend for "all HTML element's node names are always uppercase." I consider this to be a bug, considering that the DOM element is now in an HTML document, not in an XML document, and should behave as such.</p>
	<h3>Unknown HTML 5 Elements</h3>
	<p>The second bit of weirdness comes from people attempting to use the new elements from HTML 5 in browsers that don't support it. Most browsers behave perfectly well when using some of the new HTML 5 elements (in that they don't freak out and support some level of styling). For Internet Explorer you must use the <a href="http://ejohn.org/blog/html5-shiv/">HTML 5 Shim</a> technique - this will give unknown HTML 5 elements the ability to be styled and hold contents (such as a <code>&lt;section&gt;</code> element).</p>
	<p>However there is an additional gotcha: When Internet Explorer encounters an element that it doesn't recognize it leaves the <code>.nodeName</code> in its original case. Thus if you have a <code>&lt;section&gt;</code> element in your HTML page the result will be <code>.nodeName === "section"</code> -- which directly contradicts the normal case sensitivity of the <code>.nodeName</code> property in HTML documents.</p>
	<p>To try and understand all of this I made a bunch of test cases using a number of doctypes and document styles.</p>
	<ul>
	<li><a href="http://ejohn.org/files/bugs/nodeName/html5.html">HTML 5 document</a> - uses the <a href="http://ejohn.org/blog/html5-doctype/">HTML 5 Doctype</a>.</li>
	<li><a href="http://ejohn.org/files/bugs/nodeName/xhtml.html">XHTML document served as text/html</a>.</li>
	<li><a href="http://ejohn.org/files/bugs/nodeName/quirks.html">HTML document served with no doctype</a>.</li>
	<li><a href="http://ejohn.org/files/bugs/nodeName/xhtml.xhtml">XHTML document served with correct mimetype</a>.</li>
	</ul>
	<p>The important part of the test page is quite simple:</p>
	<div class="syntax_hilite">
<div id="html-1">
	<div><span style="color: #00bbdd;">&lt;!DOCTYPE html&gt;</span><br/>
<span style="color: #009900;"><a href="http://december.com/html/4/element/html.html"><span style="color: #000000; font-weight: bold;">&lt;html&gt;</span></a></span><br/>
<span style="color: #009900;"><a href="http://december.com/html/4/element/head.html"><span style="color: #000000; font-weight: bold;">&lt;head&gt;</span></a></span><br/>
  <span style="color: #009900;"><a href="http://december.com/html/4/element/title.html"><span style="color: #000000; font-weight: bold;">&lt;title&gt;</span></a></span>Testing nodeName<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title&gt;</span></span><br/>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/head&gt;</span></span><br/>
<span style="color: #009900;"><a href="http://december.com/html/4/element/body.html"><span style="color: #000000; font-weight: bold;">&lt;body&gt;</span></a></span><br/>
  <span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">&lt;div</span></a> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"test"</span><a href="http://december.com/html/4/element/.html"><span style="color: #000000; font-weight: bold;">&gt;</span></a></span><br/>
    <span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">&lt;div&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span><span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">&lt;DIV&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/DIV&gt;</span></span><br/>
    <span style="color: #009900;">&lt;section&gt;</span><span style="color: #009900;"><a href="http://december.com/html/4/element/.html"><span style="color: #000000; font-weight: bold;">&lt;</span></a>/section&gt;</span><span style="color: #009900;">&lt;SECTION&gt;</span><span style="color: #009900;"><a href="http://december.com/html/4/element/.html"><span style="color: #000000; font-weight: bold;">&lt;</span></a>/SECTION&gt;</span><br/>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span><br/>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/body&gt;</span></span><br/>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/html&gt;</span></span></div>
	</div>
</div>
	<p>and the test cases are as follows:</p>
	<p><strong>HTML</strong></p>
	<p>Accesses the HTML elements that were originally included the page (should be case insensitive).</p>
	<div class="syntax_hilite">
<div id="js-2">
	<div>runTest<span style="color: #008800; font-weight: bold;">(</span><span style="color: #3366CC;">"HTML"</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color: #008800; font-weight: bold;">(</span><span style="color: #008800; font-weight: bold;">)</span><span style="color: #008800; font-weight: bold;">{</span><br/>
  <span style="color: #000066; font-weight: bold;">return</span> document.<span style="color: #006600;">getElementById</span><span style="color: #008800; font-weight: bold;">(</span><span style="color: #3366CC;">"test"</span><span style="color: #008800; font-weight: bold;">)</span>.<span style="color: #006600;">childNodes</span>;<br/>
<span style="color: #008800; font-weight: bold;">}</span><span style="color: #008800; font-weight: bold;">)</span>;</div>
	</div>
</div>
	<p><strong>HTML createElement</strong></p>
	<p>Creates new DOM elements using the same document as the page in which it was shipped (should be case insensitive).</p>
	<div class="syntax_hilite">
<div id="js-3">
	<div>runTest<span style="color: #008800; font-weight: bold;">(</span><span style="color: #3366CC;">"HTML createElement"</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color: #008800; font-weight: bold;">(</span><span style="color: #008800; font-weight: bold;">)</span><span style="color: #008800; font-weight: bold;">{</span><br/>
  <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #008800; font-weight: bold;">[</span>    <br/>
    document.<span style="color: #006600;">createElement</span><span style="color: #008800; font-weight: bold;">(</span><span style="color: #3366CC;">"div"</span><span style="color: #008800; font-weight: bold;">)</span>,<br/>
    document.<span style="color: #006600;">createElement</span><span style="color: #008800; font-weight: bold;">(</span><span style="color: #3366CC;">"DIV"</span><span style="color: #008800; font-weight: bold;">)</span>,<br/>
    document.<span style="color: #006600;">createElement</span><span style="color: #008800; font-weight: bold;">(</span><span style="color: #3366CC;">"section"</span><span style="color: #008800; font-weight: bold;">)</span>,<br/>
    document.<span style="color: #006600;">createElement</span><span style="color: #008800; font-weight: bold;">(</span><span style="color: #3366CC;">"SECTION"</span><span style="color: #008800; font-weight: bold;">)</span><br/>
  <span style="color: #008800; font-weight: bold;">]</span>;          <br/>
<span style="color: #008800; font-weight: bold;">}</span><span style="color: #008800; font-weight: bold;">)</span>;</div>
	</div>
</div>
	<p><strong>innerHTML</strong></p>
	<p>Attempts to inject the elements using <code>.innerHTML</code> (should be case insensitive).</p>
	<div class="syntax_hilite">
<div id="js-4">
	<div>runTest<span style="color: #008800; font-weight: bold;">(</span><span style="color: #3366CC;">"innerHTML"</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color: #008800; font-weight: bold;">(</span><span style="color: #008800; font-weight: bold;">)</span><span style="color: #008800; font-weight: bold;">{</span><br/>
  <span style="color: #003366; font-weight: bold;">var</span> test = document.<span style="color: #006600;">getElementById</span><span style="color: #008800; font-weight: bold;">(</span><span style="color: #3366CC;">"test"</span><span style="color: #008800; font-weight: bold;">)</span>;<br/>
  test.<span style="color: #006600;">innerHTML</span> = <span style="color: #3366CC;">"&lt;div&gt;&lt;/div&gt;&lt;DIV&gt;&lt;/DIV&gt;"</span> + <br/>
    <span style="color: #3366CC;">"&lt;section&gt;&lt;/section&gt;&lt;SECTION&gt;&lt;/SECTION&gt;"</span>;<br/>
  <span style="color: #000066; font-weight: bold;">return</span> test.<span style="color: #006600;">childNodes</span>;<br/>
<span style="color: #008800; font-weight: bold;">}</span><span style="color: #008800; font-weight: bold;">)</span>;</div>
	</div>
</div>
	<p>For the remaining tests I grab a simple XML document:</p>
	<div class="syntax_hilite">
<div id="xml-10">
	<div><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;</span>?xml <span style="color: #000066;">version</span>=<span style="color: #ff0000;">"1.0"</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">"UTF-8"</span>?<span style="font-weight: bold; color: black;">&gt;</span></span><br/>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;test<span style="font-weight: bold; color: black;">&gt;</span></span></span><br/>
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;div<span style="font-weight: bold; color: black;">&gt;</span></span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/div<span style="font-weight: bold; color: black;">&gt;</span></span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;DIV<span style="font-weight: bold; color: black;">&gt;</span></span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/DIV<span style="font-weight: bold; color: black;">&gt;</span></span></span><br/>
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;section<span style="font-weight: bold; color: black;">&gt;</span></span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/section<span style="font-weight: bold; color: black;">&gt;</span></span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;SECTION<span style="font-weight: bold; color: black;">&gt;</span></span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/SECTION<span style="font-weight: bold; color: black;">&gt;</span></span></span><br/>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/test<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
	</div>
</div>
	<p>like so:</p>
	<div class="syntax_hilite">
<div id="js-5">
	<div><span style="color: #003366; font-weight: bold;">var</span> xhr = window.<span style="color: #006600;">XMLHttpRequest</span> ?<br/>
        <span style="color: #003366; font-weight: bold;">new</span> XMLHttpRequest<span style="color: #008800; font-weight: bold;">(</span><span style="color: #008800; font-weight: bold;">)</span> :<br/>
        <span style="color: #003366; font-weight: bold;">new</span> ActiveXObject<span style="color: #008800; font-weight: bold;">(</span><span style="color: #3366CC;">"Microsoft.XMLHTTP"</span><span style="color: #008800; font-weight: bold;">)</span>;<p/>
	<p>xhr.<span style="color: #006600;">open</span><span style="color: #008800; font-weight: bold;">(</span><span style="color: #3366CC;">"GET"</span>, <span style="color: #3366CC;">"test.xml"</span>, <span style="color: #003366; font-weight: bold;">false</span><span style="color: #008800; font-weight: bold;">)</span>;<br/>
xhr.<span style="color: #006600;">send</span><span style="color: #008800; font-weight: bold;">(</span><span style="color: #003366; font-weight: bold;">null</span><span style="color: #008800; font-weight: bold;">)</span>;</p>
	<p><span style="color: #003366; font-weight: bold;">var</span> xml = xhr.<span style="color: #006600;">responseXML</span>;</p></div>
	</div>
</div>
	<p><strong>XML</strong></p>
	<p>Test the elements in the XML document directly (should be case sensitive).</p>
	<div class="syntax_hilite">
<div id="js-6">
	<div>runTest<span style="color: #008800; font-weight: bold;">(</span><span style="color: #3366CC;">"XML"</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color: #008800; font-weight: bold;">(</span><span style="color: #008800; font-weight: bold;">)</span><span style="color: #008800; font-weight: bold;">{</span><br/>
  <span style="color: #000066; font-weight: bold;">return</span> xml.<span style="color: #006600;">documentElement</span>.<span style="color: #006600;">childNodes</span>;<br/>
<span style="color: #008800; font-weight: bold;">}</span><span style="color: #008800; font-weight: bold;">)</span>;</div>
	</div>
</div>
	<p><strong>XML createElement</strong></p>
	<p>Same as the HTML createElement but done using the XML document (should be case sensitive).</p>
	<div class="syntax_hilite">
<div id="js-7">
	<div>runTest<span style="color: #008800; font-weight: bold;">(</span><span style="color: #3366CC;">"XML createElement"</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color: #008800; font-weight: bold;">(</span><span style="color: #008800; font-weight: bold;">)</span><span style="color: #008800; font-weight: bold;">{</span><br/>
  <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #008800; font-weight: bold;">[</span>    <br/>
    xml.<span style="color: #006600;">createElement</span><span style="color: #008800; font-weight: bold;">(</span><span style="color: #3366CC;">"div"</span><span style="color: #008800; font-weight: bold;">)</span>,<br/>
    xml.<span style="color: #006600;">createElement</span><span style="color: #008800; font-weight: bold;">(</span><span style="color: #3366CC;">"DIV"</span><span style="color: #008800; font-weight: bold;">)</span>,<br/>
    xml.<span style="color: #006600;">createElement</span><span style="color: #008800; font-weight: bold;">(</span><span style="color: #3366CC;">"section"</span><span style="color: #008800; font-weight: bold;">)</span>,<br/>
    xml.<span style="color: #006600;">createElement</span><span style="color: #008800; font-weight: bold;">(</span><span style="color: #3366CC;">"SECTION"</span><span style="color: #008800; font-weight: bold;">)</span><br/>
  <span style="color: #008800; font-weight: bold;">]</span>;          <br/>
<span style="color: #008800; font-weight: bold;">}</span><span style="color: #008800; font-weight: bold;">)</span>;</div>
	</div>
</div>
	<p><strong>HTML via importNode</strong></p>
	<p>This clones the nodes from the XML document, using <code>importNode</code>, and places them into the HTML document (should be case sensitive).</p>
	<div class="syntax_hilite">
<div id="js-8">
	<div>runTest<span style="color: #008800; font-weight: bold;">(</span><span style="color: #3366CC;">"HTML via importNode"</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color: #008800; font-weight: bold;">(</span><span style="color: #008800; font-weight: bold;">)</span><span style="color: #008800; font-weight: bold;">{</span><br/>
  <span style="color: #003366; font-weight: bold;">var</span> test = document.<span style="color: #006600;">getElementById</span><span style="color: #008800; font-weight: bold;">(</span><span style="color: #3366CC;">"test"</span><span style="color: #008800; font-weight: bold;">)</span>;<br/>
  <span style="color: #000066; font-weight: bold;">while</span> <span style="color: #008800; font-weight: bold;">(</span> test.<span style="color: #006600;">firstChild</span> <span style="color: #008800; font-weight: bold;">)</span> <span style="color: #008800; font-weight: bold;">{</span><br/>
    test.<span style="color: #006600;">removeChild</span><span style="color: #008800; font-weight: bold;">(</span> test.<span style="color: #006600;">firstChild</span> <span style="color: #008800; font-weight: bold;">)</span>;<br/>
  <span style="color: #008800; font-weight: bold;">}</span>           <p/>
	<p>  <span style="color: #003366; font-weight: bold;">var</span> nodes = xml.<span style="color: #006600;">documentElement</span>.<span style="color: #006600;">childNodes</span>, node;<br/>
  <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #008800; font-weight: bold;">(</span> <span style="color: #003366; font-weight: bold;">var</span> i = <span style="color: #CC0000;">0</span>; i &lt; nodes.<span style="color: #006600;">length</span>; i++ <span style="color: #008800; font-weight: bold;">)</span> <span style="color: #008800; font-weight: bold;">{</span><br/>
    node = document.<span style="color: #006600;">importNode</span><span style="color: #008800; font-weight: bold;">(</span> nodes<span style="color: #008800; font-weight: bold;">[</span>i<span style="color: #008800; font-weight: bold;">]</span>, <span style="color: #003366; font-weight: bold;">false</span> <span style="color: #008800; font-weight: bold;">)</span>;<br/>
    test.<span style="color: #006600;">appendChild</span><span style="color: #008800; font-weight: bold;">(</span> node <span style="color: #008800; font-weight: bold;">)</span>;<br/>
  <span style="color: #008800; font-weight: bold;">}</span></p>
	<p>  <span style="color: #000066; font-weight: bold;">return</span> test.<span style="color: #006600;">childNodes</span>;<br/>
<span style="color: #008800; font-weight: bold;">}</span><span style="color: #008800; font-weight: bold;">)</span>;</p></div>
	</div>
</div>
	<p><strong>HTML via adoptNode</strong></p>
	<p>This moves the nodes from the XML document, using <code>adoptNode</code>, and places them into the HTML document (should be case sensitive).</p>
	<div class="syntax_hilite">
<div id="js-9">
	<div>runTest<span style="color: #008800; font-weight: bold;">(</span><span style="color: #3366CC;">"HTML via adoptNode"</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color: #008800; font-weight: bold;">(</span><span style="color: #008800; font-weight: bold;">)</span><span style="color: #008800; font-weight: bold;">{</span><br/>
  <span style="color: #003366; font-weight: bold;">var</span> test = document.<span style="color: #006600;">getElementById</span><span style="color: #008800; font-weight: bold;">(</span><span style="color: #3366CC;">"test"</span><span style="color: #008800; font-weight: bold;">)</span>;<br/>
  <span style="color: #000066; font-weight: bold;">while</span> <span style="color: #008800; font-weight: bold;">(</span> test.<span style="color: #006600;">firstChild</span> <span style="color: #008800; font-weight: bold;">)</span> <span style="color: #008800; font-weight: bold;">{</span><br/>
    test.<span style="color: #006600;">removeChild</span><span style="color: #008800; font-weight: bold;">(</span> test.<span style="color: #006600;">firstChild</span> <span style="color: #008800; font-weight: bold;">)</span>;<br/>
  <span style="color: #008800; font-weight: bold;">}</span><p/>
	<p>  <span style="color: #003366; font-weight: bold;">var</span> nodes = xml.<span style="color: #006600;">documentElement</span>.<span style="color: #006600;">childNodes</span>, node;<br/>
  <span style="color: #000066; font-weight: bold;">while</span> <span style="color: #008800; font-weight: bold;">(</span> nodes.<span style="color: #006600;">length</span> <span style="color: #008800; font-weight: bold;">)</span> <span style="color: #008800; font-weight: bold;">{</span><br/>
    node = document.<span style="color: #006600;">adoptNode</span><span style="color: #008800; font-weight: bold;">(</span> nodes<span style="color: #008800; font-weight: bold;">[</span><span style="color: #CC0000;">0</span><span style="color: #008800; font-weight: bold;">]</span> <span style="color: #008800; font-weight: bold;">)</span>;<br/>
    test.<span style="color: #006600;">appendChild</span><span style="color: #008800; font-weight: bold;">(</span> node <span style="color: #008800; font-weight: bold;">)</span>;<br/>
  <span style="color: #008800; font-weight: bold;">}</span></p>
	<p>  <span style="color: #000066; font-weight: bold;">return</span> test.<span style="color: #006600;">childNodes</span>;<br/>
<span style="color: #008800; font-weight: bold;">}</span><span style="color: #008800; font-weight: bold;">)</span>;</p></div>
	</div>
</div>
	<h3>The Results</h3>
	<p>I ran the following tests in IE 6, IE 7, IE 8, Firefox 3.5, Safari 4.0.3, Chrome 3.0.195, and Opera 10.10. Additionally I tested against <code>.tagName</code> in addition to <code>.nodeName</code> and found no discernible difference (you can run your own <code>.tagName</code> tests by appending a ?tagName to any test URL <a href="http://ejohn.org/files/bugs/nodeName/html5.html?tagName">like so</a>.)</p>
	&lt;link href="http://ejohn.org/files/bugs/nodeName/style.css" rel="stylesheet"&gt;
	<div id="testgrid">
	<p><strong><a href="http://ejohn.org/files/bugs/nodeName/html5.html">HTML 5 Document</a></strong></p>
	<blockquote><p><strong>Note:</strong> The HTML 5, XHTML (served as HTML), and no-doctype pages all behaved identically to each other in every browser - thus I'm just going to not display the XHTML (as HTML) and no-doctype results as there wouldn't be anything interesting to show.</p></blockquote>
	<p>Firefox, Safari, and Chrome all yielded the same results here: Bringing in elements from an external document maintains the case sensitive nature of the <code>.nodeName</code> property - which is unexpected.</p>
	<table id="results">
	<thead>
<tr id="results-head">
<th/>
	<th>&lt;div&gt;</th>
	<th>&lt;DIV&gt;</th>
	<th>&lt;section&gt;</th>
	<th>&lt;SECTION&gt;</th>
</tr>
</thead>
	<tbody id="results-body">
<tr>
<th>HTML</th>
	<td class="pass">DIV</td>
	<td class="pass">DIV</td>
	<td class="pass">SECTION</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>HTML createElement</th>
	<td class="pass">DIV</td>
	<td class="pass">DIV</td>
	<td class="pass">SECTION</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>innerHTML</th>
	<td class="pass">DIV</td>
	<td class="pass">DIV</td>
	<td class="pass">SECTION</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>XML</th>
	<td class="pass">div</td>
	<td class="pass">DIV</td>
	<td class="pass">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>XML createElement</th>
	<td class="pass">div</td>
	<td class="pass">DIV</td>
	<td class="pass">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>HTML via importNode</th>
	<td class="fail">div</td>
	<td class="pass">DIV</td>
	<td class="fail">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>HTML via adoptNode</th>
	<td class="fail">div</td>
	<td class="pass">DIV</td>
	<td class="fail">section</td>
	<td class="pass">SECTION</td>
</tr>
</tbody>
	</table>
	<p>Internet Explorer fails in a different manner. To start, Internet Explorer doesn't support <code>importNode</code> or <code>adoptNode</code> so those particular tests simply don't run. However we can confirm that the case sensitivity of the unknown HTML 5 element is maintained in HTML, even though it shouldn't be.</p>
	<p/><table id="results"><thead><tr id="results-head"><th/><th>&lt;div&gt;</th><th>&lt;DIV&gt;</th><th>&lt;section&gt;</th><th>&lt;SECTION&gt;</th></tr></thead><tbody id="results-body"><tr><th>HTML</th><td class="pass">DIV</td><td class="pass">DIV</td><td class="fail">section</td><td class="pass">SECTION</td></tr><tr><th>HTML createElement</th><td class="pass">DIV</td><td class="pass">DIV</td><td class="fail">section</td><td class="pass">SECTION</td></tr><tr><th>innerHTML</th><td class="pass">DIV</td><td class="pass">DIV</td><td class="fail">section</td><td class="pass">SECTION</td></tr><tr><th>XML</th><td class="pass">div</td><td class="pass">DIV</td><td class="pass">section</td><td class="pass">SECTION</td></tr><tr><th>XML createElement</th><td class="pass">div</td><td class="pass">DIV</td><td class="pass">section</td><td class="pass">SECTION</td></tr><tr><th>HTML via importNode</th><td class="error" colspan="4">Error: Object doesn't support this property or method</td></tr><tr><th>HTML via adoptNode</th><td class="error" colspan="4">Error: Object doesn't support this property or method</td></tr></tbody></table><p/>
	<p>Opera ups the ante one further: Since it attempts to simultaneous follow web standards, and implement Internet Explorer's weird quirks, it <em>both</em> fails the <code>importNode</code>/<code>adoptNode</code> and the HTML 5 unknown element cases.</p>
	<p/><table id="results"> <thead><tr id="results-head"><th/><th>&lt;div&gt;</th><th>&lt;DIV&gt;</th><th>&lt;section&gt;</th><th>&lt;SECTION&gt;</th></tr></thead> <tbody id="results-body"><tr><th>HTML</th><td class="pass">DIV</td><td class="pass">DIV</td><td class="fail">section</td><td class="pass">SECTION</td></tr><tr><th>HTML createElement</th><td class="pass">DIV</td><td class="pass">DIV</td><td class="fail">section</td><td class="pass">SECTION</td></tr><tr><th>innerHTML</th><td class="pass">DIV</td><td class="pass">DIV</td><td class="fail">section</td><td class="pass">SECTION</td></tr><tr><th>XML</th><td class="pass">div</td><td class="pass">DIV</td><td class="pass">section</td><td class="pass">SECTION</td></tr><tr><th>XML createElement</th><td class="pass">div</td><td class="pass">DIV</td><td class="pass">section</td><td class="pass">SECTION</td></tr><tr><th>HTML via importNode</th><td class="fail">div</td><td class="pass">DIV</td><td class="fail">section</td><td class="pass">SECTION</td></tr><tr><th>HTML via adoptNode</th><td class="fail">div</td><td class="pass">DIV</td><td class="fail">section</td><td class="pass">SECTION</td></tr></tbody> </table><p/>
	<p><strong><a href="http://ejohn.org/files/bugs/nodeName/xhtml.xhtml">XHTML (served with correct mimetype)</a></strong></p>
	<p>Nearly every browser that supported showing this page (Firefox, Safari, Opera, Chrome) displayed the same, expected, results:</p>
	<table id="results">
	<thead>
<tr id="results-head">
<th/>
<th>&lt;div&gt;</th>
	<th>&lt;DIV&gt;</th>
	<th>&lt;section&gt;</th>
	<th>&lt;SECTION&gt;</th>
</tr>
</thead>
	<tbody id="results-body">
<tr>
<th>HTML</th>
	<td class="pass">div</td>
	<td class="pass">DIV</td>
	<td class="pass">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>HTML createElement</th>
	<td class="pass">div</td>
	<td class="pass">DIV</td>
	<td class="pass">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>innerHTML</th>
	<td class="pass">div</td>
	<td class="pass">DIV</td>
	<td class="pass">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>XML</th>
	<td class="pass">div</td>
	<td class="pass">DIV</td>
	<td class="pass">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>XML createElement</th>
	<td class="pass">div</td>
	<td class="pass">DIV</td>
	<td class="pass">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>HTML via importNode</th>
	<td class="pass">div</td>
	<td class="pass">DIV</td>
	<td class="pass">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>HTML via adoptNode</th>
	<td class="pass">div</td>
	<td class="pass">DIV</td>
	<td class="pass">section</td>
	<td class="pass">SECTION</td>
</tr>
</tbody>
	</table>
	<p>An XHTML page served properly is just an XML document - thus the case of elements is sensitive (as to be expected).</p>
	<p>... except in Opera. Opera apparently will treat div elements case insensitively, when injected using <code>.innerHTML</code>, even if it's being served within an XHTML document.</p>
	<table id="results">
<thead>
<tr id="results-head">
<th/>
<th>&lt;div&gt;</th>
	<th>&lt;DIV&gt;</th>
	<th>&lt;section&gt;</th>
	<th>&lt;SECTION&gt;</th>
</tr>
</thead>
	<tbody id="results-body">
<tr>
<th>HTML</th>
	<td class="pass">div</td>
	<td class="pass">DIV</td>
	<td class="pass">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>HTML createElement</th>
	<td class="pass">div</td>
	<td class="pass">DIV</td>
	<td class="pass">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>innerHTML</th>
	<td class="fail">DIV</td>
	<td class="pass">DIV</td>
	<td class="pass">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>XML</th>
	<td class="pass">div</td>
	<td class="pass">DIV</td>
	<td class="pass">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>XML createElement</th>
	<td class="pass">div</td>
	<td class="pass">DIV</td>
	<td class="pass">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>HTML via importNode</th>
	<td class="pass">div</td>
	<td class="pass">DIV</td>
	<td class="pass">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>HTML via adoptNode</th>
	<td class="pass">div</td>
	<td class="pass">DIV</td>
	<td class="pass">section</td>
	<td class="pass">SECTION</td>
</tr>
</tbody>
 </table>
	<h4>Update: XHTML as XML Tests</h4>
	<p>Based upon some suggestions in the comments I've run some additional tests. Namely I tested the loading of an XML document that has the correct XHTML namespace attached to it (specifically I used the same XHTML test page that I used for the other tests, just appending a .xml extension instead of .xhtml). The results are rather interesting - and promising, at least. (Note: Internet Explorer continues to fail as it doesn't have an adoptNode/importNode method.)</p>
	<p>Firefox continues to fail the importing of XML nodes, even when they're coming  from an XML document:</p>
	<table id="results">
<thead>
<tr id="results-head">
<th/>
	<th>&lt;div&gt;</th>
	<th>&lt;DIV&gt;</th>
	<th>&lt;section&gt;</th>
	<th>&lt;SECTION&gt;</th>
</tr>
</thead>
	<tbody id="results-body">
<tr>
<th>HTML</th>
	<td class="pass">DIV</td>
	<td class="pass">DIV</td>
	<td class="pass">SECTION</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>HTML createElement</th>
	<td class="pass">DIV</td>
	<td class="pass">DIV</td>
	<td class="pass">SECTION</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>innerHTML</th>
	<td class="pass">DIV</td>
	<td class="pass">DIV</td>
	<td class="pass">SECTION</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>XML</th>
	<td class="pass">div</td>
	<td class="pass">DIV</td>
	<td class="pass">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>XML createElement</th>
	<td class="pass">div</td>
	<td class="pass">DIV</td>
	<td class="pass">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>HTML via importNode</th>
	<td class="fail">div</td>
	<td class="pass">DIV</td>
	<td class="fail">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>HTML via adoptNode</th>
	<td class="fail">div</td>
	<td class="pass">DIV</td>
	<td class="fail">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>XML (XHTML)</th>
	<td class="pass">div</td>
	<td class="pass">DIV</td>
	<td class="pass">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>XHTML via importNode</th>
	<td class="fail">div</td>
	<td class="pass">DIV</td>
	<td class="fail">section</td>
	<td class="pass">SECTION</td>
</tr>
</tbody>
 </table>
	<p>As does Opera:</p>
	<p/><table id="results"> <thead><tr id="results-head"><th/><th>&lt;div&gt;</th><th>&lt;DIV&gt;</th><th>&lt;section&gt;</th><th>&lt;SECTION&gt;</th></tr></thead> <tbody id="results-body"><tr><th>HTML</th><td class="pass">DIV</td><td class="pass">DIV</td><td class="fail">section</td><td class="pass">SECTION</td></tr><tr><th>HTML createElement</th><td class="pass">DIV</td><td class="pass">DIV</td><td class="fail">section</td><td class="pass">SECTION</td></tr><tr><th>innerHTML</th><td class="pass">DIV</td><td class="pass">DIV</td><td class="fail">section</td><td class="pass">SECTION</td></tr><tr><th>XML</th><td class="pass">div</td><td class="pass">DIV</td><td class="pass">section</td><td class="pass">SECTION</td></tr><tr><th>XML createElement</th><td class="pass">div</td><td class="pass">DIV</td><td class="pass">section</td><td class="pass">SECTION</td></tr><tr><th>HTML via importNode</th><td class="fail">div</td><td class="pass">DIV</td><td class="fail">section</td><td class="pass">SECTION</td></tr><tr><th>HTML via adoptNode</th><td class="fail">div</td><td class="pass">DIV</td><td class="fail">section</td><td class="pass">SECTION</td></tr><tr><th>XML (XHTML)</th><td class="pass">div</td><td class="pass">DIV</td><td class="pass">section</td><td class="pass">SECTION</td></tr><tr><th>XHTML via importNode</th><td class="fail">div</td><td class="pass">DIV</td><td class="fail">section</td><td class="pass">SECTION</td></tr></tbody> </table><p/>
	<p>BUT both Safari and Chrome PASS on the importing of XHTML nodes, coming from an XML document:</p>
	<table id="results">
<thead>
<tr id="results-head">
<th/>
	<th>&lt;div&gt;</th>
	<th>&lt;DIV&gt;</th>
	<th>&lt;section&gt;</th>
	<th>&lt;SECTION&gt;</th>
</tr>
</thead>
	<tbody id="results-body">
<tr>
<th>HTML</th>
	<td class="pass">DIV</td>
	<td class="pass">DIV</td>
	<td class="pass">SECTION</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>HTML createElement</th>
	<td class="pass">DIV</td>
	<td class="pass">DIV</td>
	<td class="pass">SECTION</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>innerHTML</th>
	<td class="pass">DIV</td>
	<td class="pass">DIV</td>
	<td class="pass">SECTION</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>XML</th>
	<td class="pass">div</td>
	<td class="pass">DIV</td>
	<td class="pass">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>XML createElement</th>
	<td class="pass">div</td>
	<td class="pass">DIV</td>
	<td class="pass">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>HTML via importNode</th>
	<td class="fail">div</td>
	<td class="pass">DIV</td>
	<td class="fail">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>HTML via adoptNode</th>
	<td class="fail">div</td>
	<td class="pass">DIV</td>
	<td class="fail">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>XML (XHTML)</th>
	<td class="pass">div</td>
	<td class="pass">DIV</td>
	<td class="pass">section</td>
	<td class="pass">SECTION</td>
</tr>
	<tr>
<th>XHTML via importNode</th>
	<td class="pass">DIV</td>
	<td class="pass">DIV</td>
	<td class="pass">SECTION</td>
	<td class="pass">SECTION</td>
</tr>
</tbody>
 </table>
	<div id="test">
<div/>
<div/>&lt;section&gt;&lt;/section&gt;&lt;section&gt;&lt;/section&gt;</div>
	<p>This, in particular, is great news. It means that, at least, one browser understands the concept of loading in external (X)HTML into an HTML document and having it continue to work. It's unfortunate that it doesn't work in all browsers, though.</p>
	</div>
	<h3>Conclusion</h3>
	<p>What can we learn from all of this? Unfortunately it appears as if we can't really trust our "trusted" rules about <code>.nodeName</code> case sensitivity for HTML documents. XML documents are completely safe and work as expected. XHTML (served with the correct mimetype) documents are nearly safe, save for the one bizarre Opera bug.</p>
	<p>How will this change the code that we write? In short we can no longer trust the case insensitive nature of HTML documents - we need to assume that BOTH HTML and XML documents will be serving their content in a case sensitive nature - especially as more people start to adopt HTML 5 elements in their pages and expect some level of support in older browsers. This means that a number of selectors and DOM methods will take a performance hit as we can no longer take a case insensitive shortcut in our codebases.</p>
	<p>There are a few outstanding jQuery tickets that are the result of these issues cropping up and now that I know the reasoning behind why they're happening I can now strip out all the case-insensitive performance improvements from the codebase - which is really quite unfortunate but at least it'll behave more consistently. I continue to stand by thesis from my earlier talk about the DOM: <a href="http://ejohn.org/blog/the-dom-is-a-mess/">The DOM is a mess</a> and every DOM method and property is broken in some way, in some browser.
</p>
		<img src="http://ejohn.org/apps/rss/?from=rss&amp;id=5698" style="width: 0px; height: 0px;"/></div>
    </content>
    <updated>2009-11-24T18:08:21Z</updated>
    <category term="dom"/>
    <category term="javascript"/>
    <category term="browsers"/>
    <author>
      <name>John Resig</name>
    </author>
    <source>
      <id>http://ejohn.org</id>
      <link href="http://ejohn.org" rel="alternate" type="text/html"/>
      <link href="http://ejohn.org/mozilla/feed/" rel="self" type="application/rss+xml"/>
      <subtitle xml:lang="en">Blog, Projects, and Links</subtitle>
      <title xml:lang="en">John Resig</title>
      <updated>2009-11-25T16:13:08Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:twitter.com,2007:http://twitter.com/diveintomark/statuses/5988961130</id>
    <link href="http://twitter.com/diveintomark/statuses/5988961130" rel="alternate" type="text/html"/>
    <link href="http://a1.twimg.com/profile_images/296487470/5-is-greater-than-2_normal.png" rel="image" type="image/png"/>
    <title xml:lang="en-US">@joshu actually yes, I'll be in town for AddonCon on Dec. 11. And probably a few days before that to give a tech talk on HTML5-inside-Google</title>
    <updated>2009-11-23T22:00:52Z</updated>
    <published>2009-11-23T22:00:52Z</published>
    <author>
      <name>Mark Pilgrim</name>
      <uri>http://diveintomark.org/</uri>
    </author>
    <source>
      <id>tag:twitter.com,2007:Status</id>
      <link href="http://twitter.com/diveintomark" rel="alternate" type="text/html"/>
      <link href="http://twitter.com/statuses/user_timeline/8294212.atom" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en-US">Twitter updates from Mark Pilgrim / diveintomark.</subtitle>
      <title xml:lang="en-US">Twitter / diveintomark</title>
      <updated>2009-11-29T22:32:24Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://stackoverflow.com/questions/932415/how-does-the-live-real-time-typing-work-in-google-wave</id>
    <link href="http://stackoverflow.com/questions/932415/how-does-the-live-real-time-typing-work-in-google-wave" rel="alternate" type="text/html"/>
    <title>How does the live, real-time typing work in Google Wave?</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I'm sure Wave doesn't poll the server every millisecond to find out if the other user has typed something... so how can I see what the other person is typing as they type? And without hogging the bandwidth.</p></div>
    </summary>
    <updated>2009-11-23T15:11:27Z</updated>
    <published>2009-05-31T16:39:23Z</published>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="gwt"/>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="html5"/>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="http"/>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="google-wave"/>
    <author>
      <name>Sudhir Jonathan</name>
    </author>
    <source>
      <id>http://stackoverflow.com/feeds/tag/html5</id>
      <link href="http://stackoverflow.com/feeds/tag/html5" rel="self" type="application/atom+xml"/>
      <link href="http://stackoverflow.com/questions/tagged/?tagnames=html5&amp;sort=active" rel="alternate" type="text/html"/>
      <link href="http://www.creativecommons.org/licenses/by-nc/2.5/rdf" rel="license"/>
      <subtitle>most recent 30 from stackoverflow.com</subtitle>
      <title>active questions tagged html5 - Stack Overflow</title>
      <updated>2009-11-29T22:34:30Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://ajaxian.com/?p=8010</id>
    <link href="http://feedproxy.google.com/~r/ajaxian/~3/zrM_9tBYpNk/new-svg-web-release-gelatinous-cube" rel="alternate" type="text/html"/>
    <title>New SVG Web Release: Gelatinous Cube</title>
    <summary>Just in time for Thanksgiving is another SVG Web release. The SVG Web project's tradition is to name SVG Web releases after monsters from D&amp;D just to increase the geek factor, so in that spirit their release name this time is "Gelatinous Cube":

The Gelatinous Cube is a truly horrifying creature:
A gelatinous cube looks like a [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Just in time for Thanksgiving is another SVG Web release. The SVG Web project's tradition is to name SVG Web releases after monsters from D&amp;D just to increase the geek factor, so in that spirit their release name this time is "Gelatinous Cube":</p>
<p><img alt="" class="aligncenter" height="288" src="http://codinginparadise.org/images/gelcube.jpg" width="400"/></p>
<p>The Gelatinous Cube is a truly horrifying creature:</p>
<blockquote><p>A gelatinous cube looks like a transparent ooze of mindless, gelatinous matter in the shape of a cube. It slides through dungeon corridors, absorbing everything in its path, digesting everything organic and secreting non-digestible matter in its wake. Contact with its exterior can result in a paralyzing electric shock, after which the cube will proceed to slowly digest its stunned and helpless prey.</p></blockquote>
<p>Fun times.</p>
<p>Highlights of this release:</p>
<ul>
<li>Loads of important bugs fixed</li>
<li>Performance improvements</li>
<li>You can now dynamically create new SVG root tags</li>
<li>All the namespace aware functions now implemented: setAttributeNS, getAttributeNS, etc.</li>
<li>You can now clone SVG nodes (cloneNode)</li>
<li>You can now right-click on the SVG when using Flash to view the dynamic updated SVG source</li>
<li>Running getElementsByTagNameNS scoped to a particular node now works, such as myGroup.getElementsByTagNameNS(svgns, 'text')</li>
<li>and much much more</li>
</ul>
<p><a href="http://codinginparadise.org/weblog/2009/11/new-svg-web-release-gelatinous-cube.html">Read more about the new release.</a></p>
<p>Learn more about SVG Web:</p>
<ul>
<li> <a href="http://code.google.com/p/svgweb/downloads/list" target="_blank">Latest Download</a></li>
<li> <a href="http://code.google.com/p/svgweb" target="_blank">SVG Web Home Page</a></li>
<li> <a href="http://www.youtube.com/watch?v=XCk22AaRxiE" target="_blank">1 Minute Introduction to SVG Web</a></li>
<li> <a href="http://codinginparadise.org/projects/svgweb/docs/QuickStart.html" target="_blank">Quick Start Guide</a></li>
</ul>
<p>About SVG Web and SVG:</p>
<p>SVG Web is a JavaScript library which provides SVG support on many browsers, including Internet Explorer, Firefox, and Safari. Using the library plus native SVG support you can instantly target close to 100% of the existing installed web base. SVG itself stands for Scalable Vector Graphics, an open standard that is part of the HTML 5 family of technologies for interactive, search-engine friendly web vector graphics.</p>
</div>
    </content>
    <updated>2009-11-23T11:15:29Z</updated>
    <category term="Front Page"/><feedburner:origLink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://ajaxian.com/archives/new-svg-web-release-gelatinous-cube</feedburner:origLink>
    <author>
      <name>Brad Neuberg</name>
    </author>
    <source>
      <id>http://ajaxian.com</id>
      <link href="http://ajaxian.com" rel="alternate" type="text/html"/>
      <link href="http://ajaxian.com/index.xml" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com" rel="hub" type="text/html"/>
      <subtitle>Cleaning up the web with Ajax</subtitle>
      <title>Ajaxian » Front Page</title>
      <updated>2009-11-29T03:34:55Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://sayspy.blogspot.com/2009/11/realstorage-20-is-out.html?utm_source=feedburner</id>
    <link href="http://sayspy.blogspot.com/2009/11/realstorage-20-is-out.html?utm_source=feedburner" rel="alternate" type="text/html"/>
    <title>Coder Who Says Py: realStorage 2.0 is out</title>
    <updated>2009-11-23T04:10:57Z</updated>
    <category term="html5 localstorage"/>
    <author>
      <name>wearehugh</name>
    </author>
    <source>
      <id>http://delicious.com/wearehugh</id>
      <link href="http://delicious.com/wearehugh" rel="alternate" type="text/html"/>
      <link href="http://feeds.delicious.com/rss/wearehugh" rel="self" type="application/rdf+xml"/>
      <subtitle>bookmarks posted by wearehugh</subtitle>
      <title>Delicious/wearehugh</title>
      <updated>2009-11-26T03:30:04Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://code.google.com/p/realstorage/</id>
    <link href="http://code.google.com/p/realstorage/" rel="alternate" type="text/html"/>
    <title>realstorage - Project Hosting on Google Code</title>
    <updated>2009-11-23T04:10:18Z</updated>
    <category term="localstorage html5 javascript"/>
    <author>
      <name>wearehugh</name>
    </author>
    <source>
      <id>http://delicious.com/wearehugh</id>
      <link href="http://delicious.com/wearehugh" rel="alternate" type="text/html"/>
      <link href="http://feeds.delicious.com/rss/wearehugh" rel="self" type="application/rdf+xml"/>
      <subtitle>bookmarks posted by wearehugh</subtitle>
      <title>Delicious/wearehugh</title>
      <updated>2009-11-26T03:30:04Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://stackoverflow.com/questions/1051868/html5-database-administration-introspection</id>
    <link href="http://stackoverflow.com/questions/1051868/html5-database-administration-introspection" rel="alternate" type="text/html"/>
    <title>HTML5 Database administration / introspection?</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I'm playing around with html client side storage and wanted to know if there are any facilities for introspection of the database - is there an equivalent of sqlite ".tables" or ".schema" ?</p>

<p>Also, I'm not seeing my tables show up in AppData\Local\Apple Computer\Safari\LocalStorage . Is there another place tables are stored?</p></div>
    </summary>
    <updated>2009-11-22T22:52:07Z</updated>
    <published>2009-06-27T01:00:57Z</published>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="html5"/>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="database"/>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="sql"/>
    <category scheme="http://stackoverflow.com/feeds/tag/html5/tags" term="safari"/>
    <author>
      <name>Parand</name>
    </author>
    <source>
      <id>http://stackoverflow.com/feeds/tag/html5</id>
      <link href="http://stackoverflow.com/feeds/tag/html5" rel="self" type="application/atom+xml"/>
      <link href="http://stackoverflow.com/questions/tagged/?tagnames=html5&amp;sort=active" rel="alternate" type="text/html"/>
      <link href="http://www.creativecommons.org/licenses/by-nc/2.5/rdf" rel="license"/>
      <subtitle>most recent 30 from stackoverflow.com</subtitle>
      <title>active questions tagged html5 - Stack Overflow</title>
      <updated>2009-11-29T22:34:30Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:diveintomark.org,2009-11-21:/archives/20091121163616</id>
    <link href="http://diveintomark.org/archives/2009/11/21/living-in-a-browser" rel="alternate" type="text/html"/>
    <title xml:lang="en">Living in a browser</title>
    <summary xml:lang="en">Google Chrome OS is gonna be a hit.</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>(Googler hat off)</p>

<p>I just spent an hour in Starbucks. (My kid is down the street at a Chinese class.) In the past hour, I’ve checked my email, read news, caught up on the HTML5 mailing lists and IRC chatter, paid two bills, balanced my checkbook, and written this post. Without leaving my browser.</p>

<p>So yeah, <a href="http://googleblog.blogspot.com/2009/07/introducing-google-chrome-os.html">Google Chrome OS</a> is gonna be a hit.</p>

<p><del>Bummer about the whole “only runs apps <a href="http://www.google.com/search?&amp;ie=UTF-8&amp;q=%22if+you+don't+own+the+master%22+lyrics" title="If you don't own the master (key), the master owns you">signed by a private key</a> that Google won’t be sharing with anyone” thing. I’m not thrilled about the prospect of working for a DRM company. Google was in the DRM business once before; it ended with <a href="http://googlewatch.eweek.com/content/google_video/google_admits_to_fixes_video_refund_gaffe.html">giving everyone their money back, twice</a>. And does anyone honestly believe the first Chrome OS machine won’t be jailbroken within a week?</del> Update: I’m getting conflicting reports about whether retail (non-developer) Chrome OS hardware will include a way to run unverified software. I’m locking this discussion thread until I can confirm this important detail.</p>

<p>On the other hand, computer maintenance sucks gargantuan donkey balls, and normal people don’t care about root. If you accost a random person on the street and ask them if they need root on their operating system to install another browser, and they’ll have three questions for you: 1. What’s root? 2. What’s an operating system? 3. <a href="http://googlesystem.blogspot.com/2009/06/browser-is-search-engine.html">What’s a browser</a>?</p>

<p>Still… if I had root on a Linux netbook, the first thing I’d do is install Chromium and then spend 99% of my time in the browser. So I have to think that Chrome OS is a step in the right direction.</p>

<p>This is an open thread, but I won’t answer any questions on behalf of Google.</p></div>
    </content>
    <updated>2009-11-21T20:19:38Z</updated>
    <published>2009-11-21T16:36:16Z</published>
    <category scheme="http://diveintomark.org" term="unfiled"/>
    <category scheme="http://diveintomark.org" term="chromeos"/>
    <category scheme="http://diveintomark.org" term="google"/>
    <author>
      <name>Mark</name>
      <uri>http://diveintomark.org/</uri>
    </author>
    <source>
      <id>tag:diveintomark.org,2001-07-29:/</id>
      <link href="http://diveintomark.org/" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/diveintomark/all" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com" rel="hub" type="text/html"/>
      <subtitle xml:lang="en">once again between addictions</subtitle>
      <title xml:lang="en">dive into mark</title>
      <updated>2009-11-21T20:19:38Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://webkit.org/blog/907/webkit-nightlies-support-html5-noreferrer-link-relation/</id>
    <link href="http://webkit.org/blog/907/webkit-nightlies-support-html5-noreferrer-link-relation/" rel="alternate" type="text/html"/>
    <title>Surfin’ Safari - Blog Archive  » WebKit nightlies support HTML5 noreferrer link relation</title>
    <updated>2009-11-21T02:21:29Z</updated>
    <category term="html5 webkit"/>
    <author>
      <name>wearehugh</name>
    </author>
    <source>
      <id>http://delicious.com/wearehugh</id>
      <link href="http://delicious.com/wearehugh" rel="alternate" type="text/html"/>
      <link href="http://feeds.delicious.com/rss/wearehugh" rel="self" type="application/rdf+xml"/>
      <subtitle>bookmarks posted by wearehugh</subtitle>
      <title>Delicious/wearehugh</title>
      <updated>2009-11-26T03:30:04Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://ajaxian.com/?p=7972</id>
    <link href="http://feedproxy.google.com/~r/ajaxian/~3/9BMd_k4Xdcg/full-frontal-09-stuart-langridge-on-html5-features" rel="alternate" type="text/html"/>
    <title>Full Frontal ‘09: Stuart Langridge on HTML5 Features</title>
    <summary>Stuart Langridge introduces us to some of the up-and-coming features we're getting with current and future browsers, a nice complement to Robert Nyman's talk, which covered the advanced features of "mainstream" (IE6-compatible) Javascript. After introducing the features that are there today, he also talks about how we can deal with the browser many of us [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Stuart Langridge introduces us to some of the up-and-coming features we're getting with current and future browsers, a nice complement to Robert Nyman's talk, which covered the advanced features of "mainstream" (IE6-compatible) Javascript. After introducing the features that are there today, he also talks about how we can deal with the browser many of us are still having to support.</p>
<h3>The Goodies</h3>
<p>Here are some of the things we can look forward to. (Having been part of the large crowd who charged the pub across the road at lunch, I was a bit late getting back, so I missed one or two of these.)</p>
<h4>Lists</h4>
<div class="igBar"><a>PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color: #000000; font-weight: bold;">JAVASCRIPT:</span>
<div id="javascript-37">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal; color: #3A6A8B;">
<div style="color: #000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"> </div>
</li>
<li style="font-weight: bold; color: #26536A;">
<div style="color: #000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #006600; font-weight: bold;">[</span><span style="color: #800000;">1</span>,<span style="color: #800000;">2</span>,<span style="color: #800000;">3</span><span style="color: #006600; font-weight: bold;">]</span>.<span style="color: #006600;">every</span><span style="color: #006600; font-weight: bold;">(</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #006600; font-weight: bold;">(</span><span style="color: #006600; font-weight: bold;">)</span><span style="color: #006600; font-weight: bold;">)</span> <span style="color: #009900; font-style: italic;">// run for all items</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal; color: #3A6A8B;">
<div style="color: #000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">list.<span style="color: #006600;">filter</span><span style="color: #006600; font-weight: bold;">(</span><span style="color: #006600; font-weight: bold;">)</span> <span style="color: #009900; font-style: italic;">// find elements in the list that pass the function</span></div>
</li>
<li style="font-weight: bold; color: #26536A;">
<div style="color: #000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">list.<span style="color: #006600;">map</span><span style="color: #006600; font-weight: bold;">(</span><span style="color: #006600; font-weight: bold;">)</span> <span style="color: #009900; font-style: italic;">// apply function to each item</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal; color: #3A6A8B;">
<div style="color: #000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"> </div>
</li>
</ol>
</div>
</div>
</div>
<p>It takes a mental shift to start taking advantage of features like this. "Certain browsers" *cough* don't yet provide these conveniences, but you can take advantage of them straight away. Or another example is the base2 library - use it now and you'll be ready for the time when it's present in all browsers.</p>
<h4>Getters and Setters</h4>
<p>As our Javascript apps get increasingly bigger and more complex, we need to borrow principles, patterns, and techniques from "real programming". Getters and setters are the kind of thing we'll need more of. More generally, we'll need to be in the mindset that we're building APIs to components, which others might use; not just an individual making a one-off web app. Stuart shows a couple of techniques for getters and setters: (a) manually defined; (b) using </p>
<h4>Storage</h4>
<p>We can now do global storage - <tt>globalStorage</tt> works similarly to cookies. "Like cookies turned up to 11".</p>
<div class="igBar"><a>PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color: #000000; font-weight: bold;">JAVASCRIPT:</span>
<div id="javascript-38">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal; color: #3A6A8B;">
<div style="color: #000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"> </div>
</li>
<li style="font-weight: bold; color: #26536A;">
<div style="color: #000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">  globalStorage<span style="color: #006600; font-weight: bold;">[</span><span style="color: #3366CC;">"kryogenix.org"</span><span style="color: #006600; font-weight: bold;">]</span>.<span style="color: #006600;">visits</span> = visits+<span style="color: #800000;">1</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal; color: #3A6A8B;">
<div style="color: #000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"> </div>
</li>
</ol>
</div>
</div>
</div>
<p>He notes that like XHR, Microsoft did it a long time ago with <tt>userdata</tt>.</p>
<p>There is also the possibility of SQL and a consistent database API, somewhat supported today but not yet standardised.</p>
<h4>Server-Sent Events</h4>
<div class="igBar"><a>PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color: #000000; font-weight: bold;">HTML:</span>
<div id="html-39">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal; color: #3A6A8B;">
<div style="color: #000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"> </div>
</li>
<li style="font-weight: bold; color: #26536A;">
<div style="color: #000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;">&lt;event -source <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"getTime.php"</span><span style="color: #000000; font-weight: bold;">&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal; color: #3A6A8B;">
<div style="color: #000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"> </div>
</li>
</ol>
</div>
</div>
</div>
<div class="igBar"><a>PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color: #000000; font-weight: bold;">JAVASCRIPT:</span>
<div id="javascript-40">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal; color: #3A6A8B;">
<div style="color: #000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"> </div>
</li>
<li style="font-weight: bold; color: #26536A;">
<div style="color: #000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">document.<span style="color: #006600;">getElementsByTagName</span><span style="color: #006600; font-weight: bold;">(</span><span style="color: #3366CC;">"event-source"</span><span style="color: #006600; font-weight: bold;">)</span><span style="color: #006600; font-weight: bold;">[</span><span style="color: #800000;">0</span><span style="color: #006600; font-weight: bold;">]</span>.<span style="color: #006600;">addEventListener</span><span style="color: #006600; font-weight: bold;">(</span><span style="color: #3366CC;">"server-time"</span>, eventHandler, <span style="color: #003366; font-weight: bold;">false</span><span style="color: #006600; font-weight: bold;">)</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal; color: #3A6A8B;">
<div style="color: #000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">function</span> eventHandler<span style="color: #006600; font-weight: bold;">(</span>event<span style="color: #006600; font-weight: bold;">)</span> <span style="color: #006600; font-weight: bold;">{</span></div>
</li>
<li style="font-weight: bold; color: #26536A;">
<div style="color: #000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">  <span style="color: #000066;">alert</span><span style="color: #006600; font-weight: bold;">(</span>event.<span style="color: #006600;">data</span><span style="color: #006600; font-weight: bold;">)</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal; color: #3A6A8B;">
<div style="color: #000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #006600; font-weight: bold;">}</span></div>
</li>
<li style="font-weight: bold; color: #26536A;">
<div style="color: #000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"> </div>
</li>
</ol>
</div>
</div>
</div>
<p>Only in Opera right now.</p>
<h3>Great. So Do We, Can We, Use it Now or Later?</h3>
<p>You can use these features now if you're in a single-browser environment that supports them: app for one mobile; Air app; intranet app (where you've amazingly got Firefox exlcusively on your intranet); HTA. This isn't the sinful act of coding to weird proprietary APIs; it's coding to browsers that happen to support the technologies of tomorrow, today.</p>
<p>The libraries help us get to the future today, as long as they can support APIs compatibly across all the browsers. But it's all a little difficult when the market leader doesn't play ball. Hopefully, Dean Edwards will continue working on Base2 to plug the gaps, but we still have the problem. Around a year ago, it felt like the anti-IE6 might be at a tipping point, but that's died down a bit, and it's not clear how much longer we'll be held back.</p>
<p>What can you do then with IE6? If a number of major websites really held back and stopped supporting IE6, Stuart reckons corporations would upgrade. Imagine what would happen if Google stopped working on IE6...immediate upgrades. Show of hands indicates perhaps 20% of the audience would agree to mass dropping IE6 on their public sites. In Q&amp;A, Stuart later clarifies he's not really proposing an IE6 shutdown switch, more like a helpful suggestion to upgrade.</p>
<p>Silverlight and Flash. Proprietary, not open. If everyone started using Flash, the future is Adobe's future. Let's make it our future instead - we're building the open web. A call to arms for showing strength in numbers.<br/>
&lt;/event&gt;</p>
</div>
    </content>
    <updated>2009-11-20T15:52:24Z</updated>
    <category term="Front Page"/>
    <category term="IE"/>
    <category term="JavaScript"/>
    <category term="Presentation"/><feedburner:origLink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://ajaxian.com/archives/full-frontal-09-stuart-langridge-on-html5-features</feedburner:origLink>
    <author>
      <name>Michael Mahemoff</name>
    </author>
    <source>
      <id>http://ajaxian.com</id>
      <link href="http://ajaxian.com" rel="alternate" type="text/html"/>
      <link href="http://ajaxian.com/index.xml" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com" rel="hub" type="text/html"/>
      <subtitle>Cleaning up the web with Ajax</subtitle>
      <title>Ajaxian » Front Page</title>
      <updated>2009-11-29T03:34:56Z</updated>
    </source>
  </entry>
</feed>
