<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Robert Accettura&#039;s Fun With Wordage &#187; html5</title>
	<atom:link href="http://robert.accettura.com/blog/tag/html5/feed/" rel="self" type="application/rss+xml" />
	<link>http://robert.accettura.com</link>
	<description>Robert Accettura&#039;s Personal Blog on Web Development and Tech</description>
	<lastBuildDate>Thu, 09 Feb 2012 01:43:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<atom:link rel='hub' href='http://robert.accettura.com/?pushpress=hub'/>
<cloud domain='robert.accettura.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>Make Login Pages Autofocus</title>
		<link>http://robert.accettura.com/blog/2012/01/19/make-login-pages-autofocus/</link>
		<comments>http://robert.accettura.com/blog/2012/01/19/make-login-pages-autofocus/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 14:30:33 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[user experience]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/?p=7225</guid>
		<description><![CDATA[I see this way too often and it gets on my nerves. If you have a page that&#8217;s main purpose is a form, such as a login page, please make the page autofocus to the first field in the form. &#8230; <a href="http://robert.accettura.com/blog/2012/01/19/make-login-pages-autofocus/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I see this way too often and it gets on my nerves.  If you have a page that&#8217;s main purpose is a form, such as a login page, please make the page autofocus to the first field in the form.  Having to tab or click on the first field is a nuisance.  Even big sites make this mistake.</p>
<p>If you don&#8217;t care about IE you can do it as simply as:</p>
<pre>

&lt;form method=&quot;post&quot; action=&quot;/&quot;&gt;
&lt;p&gt;
    &lt;label for=&quot;username&quot;&gt;Username:&lt;/label&gt;
    &lt;input type=&quot;text&quot; name=&quot;username&quot; id=&quot;username&quot; autofocus=&quot;autofocus&quot;/&gt;
&lt;/p&gt;
&lt;p&gt;
    &lt;label for=&quot;password&quot;&gt;Password:&lt;/label&gt;
    &lt;input type=&quot;password&quot; name=&quot;password&quot; id=&quot;password&quot; /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;input type=&quot;submit&quot; name=&quot;login&quot; value=&quot;Login&quot;/&gt;&lt;/p&gt;
&lt;/form&gt;
</pre>
<p>Since <code>autofocus</code> is boolean you technically don&#8217;t even need to specify an attribute value.</p>
<p>To do it with IE in mind you could use the following JavaScript below the form (no library needed):</p>
<pre>

function focusForm(){
    setTimeout(function(){
        try {
            // id of element to focus on
            var elem = document.getElementById('username');
            elem.focus();
            elem.select();
        } catch(e){}
    }, 50); // setTimeout to fix IE bug
}
focusForm();
</pre>
<p>Note the use of <code>select()</code> so if the form reloads due to an incorrect password the field is not just in focus but the contents highlighted.  There is also a <code>setTimeout()</code> since IE, at least some older versions have trouble with this if it happens too quickly.  50 should be fast enough that it won&#8217;t be noticed by humans.</p>
<p>See how simple that is?  No excuses for not fixing this <img src='http://robert.accettura.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  .
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/?p=7225#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2012/01/f629ed9.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2012/01/19/make-login-pages-autofocus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>localStorage With Cookie Fallback</title>
		<link>http://robert.accettura.com/blog/2012/01/17/localstorage-with-cookie-fallback/</link>
		<comments>http://robert.accettura.com/blog/2012/01/17/localstorage-with-cookie-fallback/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 15:58:04 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[cookies]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/?p=7163</guid>
		<description><![CDATA[I mentioned the other day that localStorage can be used as an alternative for cookies. The benefit is that localStorage doesn&#8217;t sent it&#8217;s data back on every request to the server like a cookie. Headers are uncompressed in http making &#8230; <a href="http://robert.accettura.com/blog/2012/01/17/localstorage-with-cookie-fallback/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I <a href="http://robert.accettura.com/blog/2012/01/13/privacy-issues-behind-localstorage/">mentioned the other day</a> that <code>localStorage</code> can be used as an alternative for cookies. The benefit is that  <code>localStorage</code> doesn&#8217;t sent it&#8217;s data back on every request to the server like a cookie.  Headers are uncompressed in http making that very costly.  However not every web browser out there supports <code>localStorage</code>.  Most however do.</p>
<p>Here&#8217;s an example based on <a href="http://www.jquery.com/">jQuery</a> and <a href="http://archive.plugins.jquery.com/project/Cookie">jQuery.cookie</a>.  It&#8217;s designed to turn objects into JSON and store the JSON representation.  On retrieval it restores the object. This doesn&#8217;t handle things like expiring cookies (it simply defaults to 365 days).  I just had this around from an old project with these very specific requirements and figured I&#8217;d post it as-is in case it can help anyone and to demonstrate.  This isn&#8217;t ideal for reuse, but for someone playing with the idea, maybe it will motivate <img src='http://robert.accettura.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  .</p>
<pre>

function storeData(type, obj){
    var data = jQuery.toJSON(obj);

    // If using a modern browser, lets use localStorage and avoid the overhead
    // of a cookie
    if(typeof localStorage != 'undefined' &amp;&amp; localStorage !== null){
        localStorage[type] = data;
    }

    // Otherwise we need to store data in a cookie, not quite so eloquent.
    else {
        jQuery.cookie(type, data, { expires: 365, path: '/' });
    }
}

function loadStoredData(type){
     var data;

    // If using localStorage, retrieve from there
    if(typeof localStorage != 'undefined' &amp;&amp; localStorage !== null){
        data = localStorage[type];
    }

    // Otherwise we have to use cookie based storage
    else {
        data = jQuery.cookie(type);
    }

    // If we have data, lets turn it into an object, otherwise return false
    if(data){
        return jQuery.secureEvalJSON(data);
    }
    return false;
}
</pre>
<p>Pretty simple right?  It&#8217;s still a key/value API.
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/?p=7163#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2012/01/1349b36.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2012/01/17/localstorage-with-cookie-fallback/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Privacy Issues Behind localStorage</title>
		<link>http://robert.accettura.com/blog/2012/01/13/privacy-issues-behind-localstorage/</link>
		<comments>http://robert.accettura.com/blog/2012/01/13/privacy-issues-behind-localstorage/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 15:18:30 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[cookies]]></category>
		<category><![CDATA[google analytics]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[privacy]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/?p=7129</guid>
		<description><![CDATA[Browsers need to overhaul their privacy settings to account for things like localStorage and bring control back to the user. In the days of cookies it was relatively simple for a user to wipe any identifiers (excluding IP address) from &#8230; <a href="http://robert.accettura.com/blog/2012/01/13/privacy-issues-behind-localstorage/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Browsers need to overhaul their privacy settings to account for things like <code>localStorage</code> and bring control back to the user.  In the days of cookies it was relatively simple for a user to wipe any identifiers (excluding IP address) from their browser.  Simply clear cookies.</p>
<p>Firefox has two basic abilities, you can clear cookies, or you can browse and delete cookies.  That&#8217;s great but not terribly clear that there&#8217;s more than cookies.</p>
<p><img src="http://robert.accettura.com/wp-content/uploads/2012/01/20120112_firefox_cookie_privacy.jpg" alt="Firefox Cookie Privacy" title="Firefox Cookie Privacy" width="403" height="340" class="aligncenter size-full wp-image-7136" /></p>
<p>Chrome <strike>as far as I know has no cookie browser like Firefox has, but</strike> (edit: <a href="http://robert.accettura.com/blog/2012/01/13/privacy-issues-behind-localstorage/comment-page-1/#comment-1618984">Erunno</a> notes in the comments you can via <a href="chrome://settings/cookies">chrome://settings/cookies</a>) explicitly lets you &#8220;Delete cookies and other site and plug-in data&#8221;.  That&#8217;s pretty good.</p>
<p><img src="http://robert.accettura.com/wp-content/uploads/2012/01/20120112_chrome_cookie_privacy.jpg" alt="Chrome Cookie Privacy" title="Chrome Cookie Privacy" width="502" height="262" class="aligncenter size-full wp-image-7142" /></p>
<p>Today, I think Safari&#8217;s UI is the closest to perfect.  Each hostname shows exactly what it has.  My only gripe is that Safari doesn&#8217;t let you see what&#8217;s there.  That&#8217;s a &#8220;power-user&#8221; feature however and I think it does an adequate job regardless.</p>
<p><img src="http://robert.accettura.com/wp-content/uploads/2012/01/20120112_safari_cookie_privacy.jpg" alt="Safari Cookie Privacy" title="Safari Cookie Privacy" width="620" height="417" class="aligncenter size-full wp-image-7137" /></p>
<p>Websites use more than just cookies these days.  I discussed this <a href="http://robert.accettura.com/blog/2010/10/11/on-html5-and-the-future-of-privacy/">a little over a year ago</a>.  The reason  <a href="http://samy.pl/evercookie/">evercookie</a> is controversial is that browsers don&#8217;t quite give users the level of control (real or perceived) that they expect for objects other than cookies.</p>
<p>Here is another use case for why this is needed.  Google Analytics is used on perhaps <a href="http://trends.builtwith.com/analytics/Google-Analytics">half the internet&#8217;s websites</a>.  It sets a cookie every time.  That means 230 bytes added to every http request for a lot of websites.  Google <a href="http://code.google.com/p/analytics-issues/issues/detail?can=5&#038;start=0&#038;num=100&#038;q=&#038;colspec=ID%20Component%20Type%20Status%20Priority%20Stars%20Summary&#038;groupby=&#038;sort=&#038;id=143">could</a> switch to <code>localStorage</code> and free up that 230 bytes.  While they technically could do this, in practice, this could create a firestorm of attacks against them.  The problem is it would be spun as Google trying to evade cookie deletion and and a privacy violation.  The same storm that evercookie created.  I suspect that&#8217;s why it hasn&#8217;t been done to date.  The truth is the Google Analytics team has done a lot for improving performance including making it entirely async.  But this move would be controversial.</p>
<p>It&#8217;s no longer about &#8220;cookies&#8221;, but &#8220;user data&#8221;.
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/?p=7129#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2012/01/bcc2bdb.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2012/01/13/privacy-issues-behind-localstorage/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>How Google Music Works</title>
		<link>http://robert.accettura.com/blog/2011/11/16/how-google-music-works/</link>
		<comments>http://robert.accettura.com/blog/2011/11/16/how-google-music-works/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 04:05:54 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[google music]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/?p=6541</guid>
		<description><![CDATA[Google announced Google Music. Needless to say I was curious how they implemented an audio player in the browser. Most of the application is your run of the mill modern Web Application with lots of JavaScript. It looks like pretty &#8230; <a href="http://robert.accettura.com/blog/2011/11/16/how-google-music-works/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Google announced <a href="http://music.google.com">Google Music</a>.  Needless to say I was curious how they implemented an audio player in the browser.  Most of the application is your run of the mill modern Web Application with lots of JavaScript.  It looks like pretty much anything Google&#8217;s built in recent years.  It doesn&#8217;t do anything really out of the ordinary for the most part.  Until you get to the audio playback.</p>
<p>How the audio is played is interesting:</p>
<pre>

&lt;div id=&quot;embed-container&quot;&gt;
  &lt;audio autoplay=&quot;autoplay&quot; id=&quot;html5Player&quot;&gt;&lt;/audio&gt;
  &lt;div class=&quot;goog-ui-media-flash&quot;&gt;
    &lt;embed wmode=&quot;window&quot; pluginspage=&quot;http://www.macromedia.com/go/getflashplayer&quot; type=&quot;application/x-shockwave-flash&quot; seamlesstabbing=&quot;false&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;sameDomain&quot; bgcolor=&quot;#000000&quot; flashvars=&quot;&quot; src=&quot;r/musicplayer.swf&quot; class=&quot;goog-ui-media-flash-object&quot; name=&quot;:0&quot; id=&quot;:0&quot; quality=&quot;high&quot; style=&quot;width: 1px; height: 1px;&quot;&gt;&lt;/embed&gt;
  &lt;/div&gt;
&lt;/div&gt;
</pre>
<p>You&#8217;re reading that right.  That&#8217;s a HTML5 <code>&lt;audio/&gt;</code> tag.  First time I&#8217;ve seen it appear in a major product.  However as of this writing in Firefox, Safari, and Chrome on Mac OS X the Flash player seems to be used.  I suspect, but can&#8217;t confirm that this may indicate a future intent of using HTML5 <code>&lt;audio/&gt;</code> in place of Flash.  Flash is likely the default for now.  But it&#8217;s still very interesting to see.</p>
<p>The audio itself seems to be 44,100 Hz 320 kb/s MPEG Layer 3 (MP3) audio.  The samples I&#8217;ve looked at were encoded with LAME 3.98.2.  Obviously if they intend to use HTML5 audio they will need to offer something other than MP3 at least for Firefox users.  It&#8217;s not currently possible to serve everyone <a href="http://diveintohtml5.info/video.html">without multiple encodings</a>.  I don&#8217;t see that changing anytime soon.</p>
<p>The servers serving the media seem very similar to YouTube&#8217;s delivery servers for H.264 video.  It&#8217;s progressive download, again just like YouTube.  No DRM.  I suspect there&#8217;s a shared history between this delivery system and YouTube or a very strong influence.  But knowing how Google works, there&#8217;s likely a shared backend.</p>
<p>It&#8217;s pretty good stuff.  I highly recommend checking it out.  Google built a decent mp3 player in the cloud.
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/?p=6541#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2011/11/751f915.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2011/11/16/how-google-music-works/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On The Future Of Flash</title>
		<link>http://robert.accettura.com/blog/2011/11/09/on-the-future-of-flash/</link>
		<comments>http://robert.accettura.com/blog/2011/11/09/on-the-future-of-flash/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 02:30:08 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/?p=6523</guid>
		<description><![CDATA[Adobe is killing Flash, as a plugin for mobile. This shouldn&#8217;t come as a surprise to anyone who works on the web. Anyone who knows me knows I&#8217;ve bet on HTML5 since the beginning and haven&#8217;t been ashamed to say &#8230; <a href="http://robert.accettura.com/blog/2011/11/09/on-the-future-of-flash/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Adobe is killing Flash, as a plugin for mobile.  This shouldn&#8217;t come as a surprise to anyone who works on the web.  Anyone who knows me knows I&#8217;ve bet on HTML5 since the beginning and haven&#8217;t been ashamed to say it.  I don&#8217;t do Flash.  To quote <a href="http://blogs.adobe.com/conversations/2011/11/flash-focus.html">Adobe</a>:</p>
<blockquote cite="http://blogs.adobe.com/conversations/2011/11/flash-focus.html"><p>
Our future work with Flash on mobile devices will be focused on enabling Flash developers to package native apps with Adobe AIR for all the major app stores.  We will no longer continue to develop Flash Player in the browser to work with new mobile device configurations (chipset, browser, OS version, etc.) following the upcoming release of Flash Player 11.1 for Android and BlackBerry PlayBook.
</p></blockquote>
<p>I strongly suspect that even this use case is limited and will experience the same fate as the Flash plugin within the next 24-36 months.  HTML5 is supported by browsers, a browser is shipped with the OS and is highly optimized for what it&#8217;s running on.  It&#8217;s also the ultimate in cross-platform.  Why write Flash when you can do something for every platform and not rely on a vendor to abstract you?</p>
<p>Platforms like <a href="http://phonegap.com/">PhoneGap</a> bridge the world of Apps and HTML5 quite nicely.  Adobe bought Nitobi which develops PhoneGap, but PhoneGap is also going to Apache Software Foundation which means Adobe&#8217;s ability to derail the project would be somewhat limited if they wanted to go that route.</p>
<p>Quite a few Apps use HTML/JS extensively already.  HTML5&#8242;s success is despite Apple essentially <a href="http://www.blaze.io/mobile/ios5-top10-performance-changes/">crippling</a> the use of HTML5 in native apps by preventing <code>UIWebView</code> from taking advantage of the Nitro engine.  If/when Apple gets to fixing this another barrier will be gone.  I suspect Apple will eventually make scrolling that doesn&#8217;t suck on iOS easier.  Right now Joe Hewitt&#8217;s <a href="https://github.com/joehewitt/scrollability">Scrollability</a> is likely your best bet.</p>
<p>Adobe goes on to say:</p>
<blockquote cite="http://blogs.adobe.com/conversations/2011/11/flash-focus.html"><p>
However, HTML5 is now universally supported on major mobile devices, in some cases exclusively.  This makes HTML5 the best solution for creating and deploying content in the browser across mobile platforms. We are excited about this, and will continue our work with key players in the HTML community, including Google, Apple, Microsoft and RIM, to drive HTML5 innovation they can use to advance their mobile browsers.
</p></blockquote>
<p>Interestingly they left out that little browser vendor Mozilla.  Perhaps because they are most likely targeting WebKit on mobile and that&#8217;s the common tie between those companies sans-Microsoft which they need IE support.  If Adobe wants a future here they should learn quick that you can&#8217;t ignore platforms. My advice to Adobe is to make sure their solution allows developers to bring their product to <em>any</em> modern browser on <em>any</em> device.</p>
<p>Flash is the last plugin with real usage even on the desktop.  This is the first step towards the concept of plugins in the browser going away.  It&#8217;s unlikely many will see a need to go HTML5 on mobile and develop a separate Flash code base to do the same thing on a desktop.  The name of the game these days is write once, run anywhere (credit to Sun for the slogan).  Today marks the start of the decline of Flash.</p>
<p>As Brendan Eich best put it: &#8220;<a href="http://www.slideshare.net/BrendanEich/capitol-js">Always bet on JavasScript</a>&#8220;.  I have and I continue to do so.  The Open Web is winning.  Slowly but surely.
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/?p=6523#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2011/11/4d19b37.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2011/11/09/on-the-future-of-flash/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Things You&#8217;ll Love About Firefox 4.0</title>
		<link>http://robert.accettura.com/blog/2011/03/21/things-youll-love-about-firefox-4-0/</link>
		<comments>http://robert.accettura.com/blog/2011/03/21/things-youll-love-about-firefox-4-0/#comments</comments>
		<pubDate>Mon, 21 Mar 2011 15:00:14 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[do not track]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[firefox 4.0]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[smil]]></category>
		<category><![CDATA[svg]]></category>
		<category><![CDATA[user-interface]]></category>
		<category><![CDATA[webgl]]></category>
		<category><![CDATA[webm]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/?p=5428</guid>
		<description><![CDATA[It&#8217;s that time again. Here&#8217;s my list of awesome things you&#8217;ll love about Firefox 4: For Users New Look For Tabs One of the first things that you’ll notice is tabs on top. This paradigm really makes more sense since &#8230; <a href="http://robert.accettura.com/blog/2011/03/21/things-youll-love-about-firefox-4-0/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s that time again.  Here&#8217;s my list of awesome things you&#8217;ll love about Firefox 4:</p>
<h3>For Users</h3>
<h4>New Look For Tabs</h4>
<p><img src="http://robert.accettura.com/wp-content/uploads/2011/03/20110321_new_tabs_firefox_4-620x76.jpg" alt="New Tabs For Firefox 4" title="New Tabs For Firefox 4" width="620" height="76" class="aligncenter size-Blog2011 wp-image-5436" /><br />
One of the first things that you’ll notice is tabs on top.  This paradigm really makes more sense since the tab defines not just the content but the environment it’s viewed (prev/next button, URL bar).  It’s also just much sleeker looking.  After a few minutes you’ll likely agree this is a better approach than tabs under.</p>
<p>Another nice touch is if you enter a URL that’s already open in another tab, you’ll be given the option to switch to that tab.  Perfect for those of us who end up with 50 tabs by lunch time.</p>
<p>It also just feels tighter and less intrusive on the web browsing experience.</p>
<p><span id="more-5428"></span></p>
<h4>App Tabs</h4>
<p><img src="http://robert.accettura.com/wp-content/uploads/2011/03/20110321_app_tabs-620x76.jpg" alt="App Tabs" title="App Tabs" width="620" height="76" class="aligncenter size-Blog2011 wp-image-5435" /><br />
App Tabs are a great way to pin sites you use constantly (webmail, Twitter, Facebook, etc.) to your browser and make them easily accessible throughout the day.  I suspect many webmail/Facebook addicts will really dig this feature.  To use it, right clicking on a tab and “Pin as app tab”.  Don’t need it?  Don’t use it, it’s not forced upon you.</p>
<h4>Tab Groups</h4>
<p><img src="http://robert.accettura.com/wp-content/uploads/2011/03/20110321_tab_groups-620x519.jpg" alt="Tab groups" title="Tab Groups" width="620" height="519" class="aligncenter size-Blog2011 wp-image-5434" /><br />
Tab groups are simply a way to group your tabs so that you can stay a little more organized through the day.  For example you might group tabs for “personal” and “work” then switch between the two groups a few times per day, rather than navigating through 50 tabs to find what you’re looking for.  The tab groups interface also gives you a more visual way of navigating tabs and a search feature for searching for a particular tab.  I personally like it for searching through the dozen bugzilla bug reports I have open through the day. It takes a little effort to work into your workflow, and I’m personally not quite there yet, but once you do it seems to really be handy.  Again you can ignore it if you feel no need. </p>
<h4>Goodbye Status Bar</h4>
<p>The status bar you used to see at the bottom of the window is gone for most people.  If you have an add-on that relies on it, for now it will still show (one of my computers still has it).  Just another few pixels for web content.  It does take slight getting used to for the technical folks who watch the connections as we&#8217;ve been used to looking at that bar for 15 years or so.  For the rest of you, it&#8217;s just more web on your screen to fill with photos of cats and amusing captions.</p>
<h4>Polish</h4>
<p>Like every Firefox release, there’s little polish, cleanup, simplifications everywhere.  To many to go into each individual tweaks but you’ll see some, and others you correctly won’t see as unused and outdated options are gone.</p>
<h4>Sync</h4>
<p>Sync is now built-in.  Settings, passwords, bookmarks, history, open tabs.  It’s encrypted on your computer then sent, so the only one who can view the data is you.  I’ve called this the <a href="http://robert.accettura.com/blog/2011/03/03/wanted-native-js-encryption/">ultimate security model</a> in the past.  It&#8217;s optional, you don&#8217;t have to use it, you don&#8217;t loose anything by not using it, other than the ability to sync multiple computers obviously.</p>
<h4>Add-on Manager</h4>
<p><img src="http://robert.accettura.com/wp-content/uploads/2011/03/20110321_addon_manager-620x349.jpg" alt="Add-On Manager" title="Add-On Manager" width="620" height="349" class="aligncenter size-Blog2011 wp-image-5433" /><br />
The add-on manager got some love in 4.0.  </p>
<h4>OMG Fast!</h4>
<p>Firefox 4 is faster in almost every respect.  First of all, it seems much more responsive on startup.  Its JägerMonkey JavaScript engine has really made a difference in <a href="http://www.mozilla.com/en-US/firefox/RC/features/">various benchmarks</a> including Kraken, Sunspider, and V8.  It also has hardware accelerated graphics.  Even on Windows XP, which is still fully supported (ahem). </p>
<h4>Out Of Process Plugins (Mac)</h4>
<p>Windows and Linux got this in Firefox 3.6, the Mac version was a little behind schedule.  Plugins now run outside of the Firefox process.  That means when a plugin like Flash crashes, it won’t take out your entire browser.  As Windows users will tell you, this makes a big difference in terms of stability.</p>
<h4>Do Not Track</h4>
<p>Simply put it’s a way to tell websites and advertisers that <a href="https://wiki.mozilla.org/Privacy/Jan2011_DoNotTrack_FAQ">you don’t want to be tracked.</a>  It’s obviously up to websites/advertisers to honor the flag.</p>
<p>To enable it go into Preferences and under the “Advanced” tab select the “General” sub-tab and check the “Tell web sites I do not want to be tracked” checkbox.</p>
<h3>For Developers</h3>
<h4>Support for WebM Video</h4>
<p>I&#8217;ve discussed <a href="http://robert.accettura.com/?s=webm">WebM</a> on this blog before and won&#8217;t repeat what I&#8217;ve said before.  WebM is an open standard, it looks great.</p>
<h4>WebGL</h4>
<p><a href="https://developer.mozilla.org/en/WebGL">WebGL</a> is amazing.  Check out some of the demos by <a href="http://hacks.mozilla.org/category/webgl/">Mozilla</a> or gathered by the <a href="http://www.chromeexperiments.com/webgl">Chromium team</a>.</p>
<p>Take a look at <a href="http://videos.mozilla.org/serv/mozhacks/flight-of-the-navigator/">Flight of the Navigator</a> and remember: this is the web!</p>
<p><img src="http://robert.accettura.com/wp-content/uploads/2011/03/20110321_webgl_flight_of_the_navigator-620x313.jpg" alt="WebGL Flight Of The Navigator" title="WebGL Flight Of The Navigator" width="620" height="313" class="aligncenter size-Blog2011 wp-image-5432" /></p>
<h4>Fix for the CSS :visited hole</h4>
<p>Just a FYI, this <a href="http://hacks.mozilla.org/2010/03/privacy-related-changes-coming-to-css-vistited/">no longer works</a>.</p>
<h4>Web Console</h4>
<p><a href="https://developer.mozilla.org/en/Using_the_Web_Console">This</a> replaces the old Error Console and in many ways is almost like Firebug Lite.  It’s got some great features like HTTP headers and will make it a lot easier to quickly debug things if you’re using a computer without Firebug already installed.  If you are a web developer make sure to take a look.</p>
<h4>Do Not Track Header</h4>
<p>This is a feature that’s been in the news quite a bit, and mentioned above.  When enabled all HTTP requests will include the following header:</p>
<pre>
DNT: 1
</pre>
<h4>HTTP Strict Transport Security</h4>
<p><a href="http://blog.mozilla.com/security/2010/08/27/http-strict-transport-security/">A HTTP header</a> to tell browsers to only use HTTPS to communicate with the site.  As more sites start to switch to HTTPS this is a great way to mitigate some potential attack vectors.</p>
<h4>CSS border-radius</h4>
<p>If you’re a web developer or designer you’ve likely tried to do this before using images and realized how much it sucks.  Now you can do it with the <a href="https://developer.mozilla.org/en/CSS/border-radius">simplicity of CSS</a>.</p>
<h4>CSS -moz-calc</h4>
<p><a href="https://developer.mozilla.org/en/CSS/-moz-calc">Do calculations</a> to determine the size and shape of an object.  I can’t tell you how many times this would have been realy helpful. </p>
<h4>HTML5 Parser</h4>
<p>Faster, more powerful, more consistent, <a href="https://developer.mozilla.org/en/HTML/HTML5/HTML5_Parser">futuristic</a>!</p>
<h4>Partial Support For HTML5 Forms</h4>
<p><a href="https://developer.mozilla.org/en/HTML/HTML5/Forms_in_HTML5">Forms in HTML5</a> are pretty awesome.  I won’t go into detail on HTML5 forms here, but you should check them out.</p>
<h4>SVG Animation with SMIL</h4>
<p>Exactly what the title says.  I suspect <a href="https://developer.mozilla.org/en/SVG/SVG_animation_with_SMIL">this</a> will result in some really cool things over time, and some really pointless things that we’ll still find amusing.</p>
<p>Of course that&#8217;s not all, just the stuff I really find to be the most interesting.
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/?p=5428#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2011/03/609c5e5.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2011/03/21/things-youll-love-about-firefox-4-0/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>On HTML5 And The Future Of Privacy</title>
		<link>http://robert.accettura.com/blog/2010/10/11/on-html5-and-the-future-of-privacy/</link>
		<comments>http://robert.accettura.com/blog/2010/10/11/on-html5-and-the-future-of-privacy/#comments</comments>
		<pubDate>Tue, 12 Oct 2010 01:10:29 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[cookies]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[privacy]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/?p=4817</guid>
		<description><![CDATA[Today&#8217;s alarmist without much research news is &#8220;New Web Code Draws Concern Over Risks to Privacy&#8221; about HTML5 and its threat to privacy. How evil of HTML5 and its creators. The Real Deal Persistent cookies are nothing new. Essentially the &#8230; <a href="http://robert.accettura.com/blog/2010/10/11/on-html5-and-the-future-of-privacy/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today&#8217;s alarmist without much research news is &#8220;<a href="http://www.nytimes.com/2010/10/11/business/media/11privacy.html?_r=1">New Web Code Draws Concern Over Risks to Privacy</a>&#8221; about HTML5 and its threat to privacy.  How evil of HTML5 and its creators.</p>
<h3>The Real Deal</h3>
<p>Persistent cookies are nothing new.  Essentially the strategy works like this:  Store data everywhere you can on the users footprint, and if data it deleted in a few locations, you copy it back from another location the next time you can.  It&#8217;s regenerative by design.  A popular example is <a href="http://samy.pl/evercookie/">evercookie</a> which uses:</p>
<blockquote cite="http://samy.pl/evercookie/">
<ul>
<li>Standard HTTP Cookies</li>
<li>Local Shared Objects (Flash Cookies)</li>
<li>Storing cookies in RGB values of auto-generated, force-cached PNGs using HTML5 Canvas tag to read pixels (cookies) back out</li>
<li>Storing cookies in and reading out Web History</li>
<li>Storing cookies in HTTP ETags</li>
<li>Internet Explorer userData storage</li>
<li>HTML5 Session Storage</li>
<li>HTML5 Local Storage</li>
<li>HTML5 Global Storage</li>
<li>HTML5 Database Storage via SQLite</li>
</ul>
</blockquote>
<p>Note that several of these aren&#8217;t HTML5 specific.  More than one of which isn&#8217;t cleared by just &#8220;erasing cookies&#8221;.</p>
<p>HTML5 does add a few new possibilities, but they are also by design as easy to control, monitor and restrict as your browser (or third-party add-on) will allow.  HTML5 storage mechanisms are bound to the host that created them making them easy to search/sift/manage as HTTP cookies.  Much worse are some of the more obscure cookie methods (Flash Cookies, various history hacks).  They don&#8217;t really provide any more of a privacy risk than what the browser already has been offering for the past decade.</p>
<h3>To Shut Up The Geolocaiton Conspiracy Theorists</h3>
<p>Before someone even attempts the &#8220;Geolocation API lets advertisers know my location&#8221; myth, lets get this out of the way.  The <a href="http://dev.w3.org/geo/api/spec-source.html#privacy_for_uas">specification</a> explicitly states:</p>
<blockquote cite="http://dev.w3.org/geo/api/spec-source.html#privacy_for_uas"><p>
User agents must not send location information to Web sites without the express permission of the user. User agents must acquire permission through a user interface, unless they have prearranged trust relationships with users, as described below. The user interface must include the URI of the document origin [DOCUMENTORIGIN]. Those permissions that are acquired through the user interface and that are preserved beyond the current browsing session (i.e. beyond the time when the browsing context [BROWSINGCONTEXT] is navigated to another URL) must be revocable and user agents must respect revoked permissions.</p>
<p>Some user agents will have prearranged trust relationships that do not require such user interfaces. For example, while a Web browser will present a user interface when a Web site performs a geolocation request, a VOIP telephone may not present any user interface when using location information to perform an E911 function.
</p></blockquote>
<p>To my knowledge no user agent implements Geolocation without complying with these specifications.  None.</p>
<h3>No HTML5 Needed For Fingerprinting</h3>
<p>Even if you do manage to wipe all the above storage locations, you&#8217;re still not untraceable.  Browser fingerprinting is the idea that just your system configuration makes you unique enough to be traceable.  This includes things like your browser version, platform, flash version, and various other bits of data plugins may additionally leak.  The EFF recently did a rather <a href="https://panopticlick.eff.org/">impressive study</a> to learn about the accuracy of this technique.  Computers with Flash and Java installed sport 18.8 bits of entropy and result in 94.2% of browsers being unique in the EFF study [<a href="https://panopticlick.eff.org/browser-uniqueness.pdf">cite</a>, pdf].  Of course their data was likely skewing towards more experienced web users who are more likely to have an assortment of customizations to their computer (specific plugins, more variety in web browsers, operating systems, fonts) than the average internet user.  I&#8217;d wager that their data downplays the effectiveness of this technique.</p>
<p>The idea that HTML5 is a privacy risk is FUD.  It doesn&#8217;t provide any worse security than anything else already out there.  It&#8217;s actually easier to counteract than what&#8217;s already being used since it&#8217;s handled by the browser.</p>
<h3>The Future</h3>
<p>I still believe all browsers out there can do a much better job of protecting privacy when it comes to local data storage for the purpose of tracking.  What I believe what needs to happen is web browsers need to start moving away from the &#8220;cookie manager&#8221; interfaces that are now a decade+ old and move towards a &#8220;my data management&#8221; interface that lets users view and delete more than just cookies.  It needs to encompass all the storage methods listed above as supported by the browser.  Hooks should also exist so that plug-ins that have data storage (like Flash) can also be dealt with using the same UI.</p>
<p>Additionally it needs to be possible to control retention policies per website.  For example I should be able to let Google storage persist indefinitely, Facebook for 2 weeks, and Yahoo for the length of my browser session should I wish.</p>
<p>My personal preference would be for a website to denote the longest storage time for any object on a webpage in the UI.  Clicking on it would give a breakdown of all hostnames that makeup the page, what they are storing and let the user select their own policy.  With 2 clicks I could then control my privacy on a granular level.  For example visiting <a href="http://www.safepasswd.com">SafePasswd.com</a> would give me a [6] in the UI.  Clicking would show me a panel this:</p>
<pre>
+------------------------------------------------------------------------------+
| My Data Settings for SafePasswd.com:                                         |
|                                                                              |
|  Host                        Longest Requested Lifespan    Your Choice       |
|                                                                              |
| *safepasswd.com              2 years                       [site default]    |
| googleads.g.doubleclick.net  6 years                       [browser session] |
|                                                                              |
|                                                                              |
|                                                       (Done)  (Cancel)       |
+------------------------------------------------------------------------------+
</pre>
<p>I could then override googleads.g.doubleclick.net to be for the browser session via the drop down if that&#8217;s what I wanted.  I could optionally forbid it from saving anything if that&#8217;s what I wanted.  I could optionally click-through for more detail or view the data to help me make my decision.  Perhaps this would also be a good place for P3P like data to be available.  One of the notable failures of P3P that impeded usage was it was never easy to view so it never caught on.</p>
<p>The browser would then remember I forbid googleads.g.doubleclick.net from storing data beyond my browser session.  This would apply to googleads.g.doubleclick.net regardless of what website it was used on.</p>
<p>This model works better than the &#8220;click to confirm cookie&#8221; model that only a handful of people on earth ever had the patience for.  It provides easy access to control and view information with minimal click-throughs.</p>
<p>It also makes a web page much more transparent to an end-user who could then easily see who they are interacting with when they visit one webpage with several ads, widgets, social media integration points etc.</p>
<p>One click to view data policies, two clicks to customize, three to save.</p>
<p>HTML5 is not a risk here.  The web moving to HTML5 is like going from the lawless land to a civilized society where structure and order rule.
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/?p=4817#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2010/10/7e6ff02.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2010/10/11/on-html5-and-the-future-of-privacy/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>About HTML5 Boilerplate</title>
		<link>http://robert.accettura.com/blog/2010/09/28/about-html5-boilerplate/</link>
		<comments>http://robert.accettura.com/blog/2010/09/28/about-html5-boilerplate/#comments</comments>
		<pubDate>Wed, 29 Sep 2010 03:05:23 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[html5 boilerplate]]></category>
		<category><![CDATA[web browsers]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/?p=4719</guid>
		<description><![CDATA[I wanted to take a few minutes to discuss HTML5 Boilerplate, a template that&#8217;s rapidly going around the web development community. I&#8217;ve had a few email threads and chats about this recently and thought I&#8217;d just put all my thoughts &#8230; <a href="http://robert.accettura.com/blog/2010/09/28/about-html5-boilerplate/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I wanted to take a few minutes to discuss <a href="http://html5boilerplate.com/">HTML5 Boilerplate</a>, a template that&#8217;s rapidly going around the web development community.  I&#8217;ve had a few email threads and chats about this recently and thought I&#8217;d just put all my thoughts together in one place now.</p>
<p>I&#8217;ll start by saying it&#8217;s not a bad template.  It&#8217;s actually quite good and encompasses many best practices as well as incorporates fixes for many common problems (clearfix, pngfix).  What I&#8217;d like to make note of is that it&#8217;s not really bringing you HTML5 and lots of what it does has nothing to do with HTML5.</p>
<h3>Not Really HTML5</h3>
<p>For starters you&#8217;re not really getting HTML5.  HTML5 Boilerplate uses JavaScript library called <a href="http://www.modernizr.com/">Modernizr</a>.  As their website explains:</p>
<blockquote cite="http://www.modernizr.com/"><p>
Modernizr does not add missing functionality to browsers; instead, it detects native availability of features and offers you a way to maintain a fine level of control over your site regardless of a browser’s capabilities.
</p></blockquote>
<p>It also lets you apply styles to the new semantic HTML5 elements like <code>&lt;header/&gt;</code>, <code>&lt;footer/&gt;</code> <code>&lt;section/&gt;</code>.  </p>
<p>What don&#8217;t you get?  Well for starters you&#8217;re missing <code>&lt;canvas/&gt;</code> and <code>&lt;video/&gt;</code>.  Other than tag elements you&#8217;re also missing things like <a href="http://www.w3.org/TR/geolocation-API/">Gelocation</a>, <a href="http://dev.w3.org/html5/spec/dnd.html">Drag&#038;Drop</a>, <a href="http://dev.w3.org/html5/webstorage">web storage</a>, <a href="http://dev.w3.org/html5/html4-differences">MathML</a>, <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting-1.html#attr-script-async">async</a> attribute on <code>&lt;script/&gt;</code> to name a few.  <a href="http://dev.w3.org/html5/html4-differences">SVG</a>?</p>
<p>Pretty much all the headliners in the HTML5 spec aren&#8217;t included.  Some like <code>&lt;canvas/&gt;</code> could be helped by way of <a href="http://code.google.com/p/explorercanvas/">explorercanvas</a>, but that&#8217;s not in there by default.</p>
<p>HTML5 Boilerplate also makes reference to things like Access-Control which still doesn&#8217;t work in older browsers.  They also suggest setting mimetypes for HTML5 video.  This isn&#8217;t by any means bad, but hardly makes <code>&lt;video/&gt;</code> useful to everyone.  Browsers are still pretty fragmented between webm, ogg, and h.264 (mp4).  Then you have older versions that support none of these.</p>
<p>Using gzip on ttf,otf,eot files seems to be a good idea.  WOFF however are compressed and correctly excluded.</p>
<h3>WTF Does This Have To Do With HTML5?</h3>
<p>There are lots of things that I would consider best-practices, but would hardly consider to be HTML5.  For example pngfix for IE6, <code>.clearfix</code>, <code>apple-touch-icon</code>, console.log wrapper being the most obvious.</p>
<p>Setting far-future cache times are good, and disabling Etag is a good idea, assuming you rename the file every time it updates.  But what does this have to do with HTML5?  Is this even practical for everyone?</p>
<p>Then there is some interesting css work like inline print block.  There are also a couple of nice usability fixes that I like.  Regardless, they are just good design and UX.  Not HTML5.</p>
<p>As for the graceful degradation and mobile optimization&#8230; that&#8217;s design and css.  There is no reason why any HTML4 or XHTML site couldn&#8217;t do that today.  Most choose not to do so in favor of serving different content (including ads) to different devices.</p>
<p>Options -MultiViews&#8230; grumble.  I&#8217;m not particularly fond of it, but again if it works for you, I wouldn&#8217;t push you away from it.</p>
<p>Removing www&#8230; I hate this one.  In my experience the only people who insist upon this have never dealt with websites with high volume and had the requirement of using a CDN by way of a CNAME in front of your site  (your domain must be an A record).  What is the real benefit here other than some sort of URL ascetics?  I&#8217;ll let you in on a little secret: The IP address for this blog is hardly maximizing feng shui.</p>
<h3>Best Practices != HTML5</h3>
<p>Many of these things are best practices.  Some of these depend on your application.  Most of these aren&#8217;t HTML5.</p>
<p>Lets just clarify that HTML5 is not about disabling MultiViews getting rid of the Etag header and being able to style <code>&lt;section/&gt;</code> elements.  HTML5 is more than that.</p>
<p>Your ability to use HTML5 still depends on widespread adoption of modern browsers like the latest and upcoming versions of Firefox, Chrome, Safari, Opera, and even IE 9.</p>
<p>Again, HTML5 Boilerplate is not a bad starting point. My point is you&#8217;re not really getting as much as it initially sounds like.  It&#8217;s a bunch of fixes you likely already have in your toolkit already assembled.  If that&#8217;s helpful: great.  But don&#8217;t think your missing out on a new era of the Internet by not adopting it.  Most good web developers have done these things for a long time now.
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/?p=4719#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2010/09/da2bd66.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2010/09/28/about-html5-boilerplate/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Steve Jobs: Thoughts On Flash</title>
		<link>http://robert.accettura.com/blog/2010/04/29/steve-jobs-thoughts-on-flash/</link>
		<comments>http://robert.accettura.com/blog/2010/04/29/steve-jobs-thoughts-on-flash/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 01:13:45 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[DRM]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[steve-jobs]]></category>
		<category><![CDATA[WebKit]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/?p=3857</guid>
		<description><![CDATA[Apple today published a letter from Steve Jobs aptly title &#8220;Thoughts on Flash&#8220;. What&#8217;s interesting isn&#8217;t so much what he said, but what he alluded to. This letter is about Flash, but it&#8217;s also about the future if the iPhone &#8230; <a href="http://robert.accettura.com/blog/2010/04/29/steve-jobs-thoughts-on-flash/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Apple today published a letter from Steve Jobs aptly title &#8220;<a href="http://www.apple.com/hotnews/thoughts-on-flash/">Thoughts on Flash</a>&#8220;.  What&#8217;s interesting isn&#8217;t so much what he said, but what he alluded to.  This letter is about Flash, but it&#8217;s also about the future if the iPhone platform strategy.  It also alludes to the future importance of WebKit and the open web.   Lets walk through this.  From his points:</p>
<h3>First, there’s &#8220;Open&#8221;.</h3>
<p>Steve is right.  Flash isn&#8217;t really &#8220;open&#8221;.  The iPhone isn&#8217;t either by any means.  In fact it&#8217;s the most restricted computing platform in the world as far as I know.  What he did note is that the iPhone uses WebKit and by proxy the web is the most open platform on the planet.  That&#8217;s very noteworthy.</p>
<h3>Second, there’s the “full web”.</h3>
<p>Flash video itself isn&#8217;t that great by todays standards.  That&#8217;s why sites like YouTube are serving HD video in H.264 rather than VP6.  H.264, VP8 and Theora are the future.  If all 3 or just one will survive remains to be seen.  Regardless any of them can be played outside of Flash.  The dependency on Flash to build a player is going away more and more each day.</p>
<p>Regarding games, this is a silly point.  Almost all Flash games need a keyboard or mouse to work.  They would never work with a touch screen.  Nor would they scale to fit the screen.  They would need to be significantly reworked/rewritten.</p>
<p>This is yet more alluding to WebKit and HTML5 where there are solutions already in place.</p>
<h3>Third, there’s reliability, security and performance.</h3>
<p>It&#8217;s pretty hard to dispute the reliability of Flash.  It&#8217;s by far the driving force behind things like out of process plugins (OOPP) in Firefox among other browsers.  It&#8217;s also been subject to lots of security vulnerabilities.</p>
<h3>Fourth, there’s battery life.</h3>
<p>The <a href="http://blogs.wsj.com/digits/2010/04/29/live-blogging-the-journals-interview-with-adobe-ceo/">WSJ quotes</a> Adobe&#8217;s Shantanu Narayen as saying the claims of Flash being battery draining are &#8220;patently false&#8221; but if you look at a CPU monitor while browsing a page with Flash, you can see the load increase quite a bit.  Blocking flash on your browser does speed things up and keep your system cooler.  I&#8217;m very suspect that Adobe has solved this in cell phones when they don&#8217;t even seem to have it under control in Windows.</p>
<h3>Fifth, there’s Touch.</h3>
<p>I already mentioned that mouse/keyboard interfaces just don&#8217;t work on the iPhone.  No need to rehash that.</p>
<h3>Sixth, the most important reason.</h3>
<p>That&#8217;s actually a vague header.  The reason is that they don&#8217;t want a third-party sitting between the iPhone API&#8217;s and developers.  If that happens, developers are limited to what that third-party decides to implement.  At the very most developers on the Flash platform get whatever is supported on all Flash platform (greatest common denominator).</p>
<p>That leaves Apple in a stupid position.  They could implement killer features in the iPhone and create amazing API&#8217;s to take advantage of the features.  But if Adobe doesn&#8217;t see a way to support things across platforms, or just doesn&#8217;t see the cost/benefit of implementing that feature, developers can&#8217;t use it.  That marginalizes the product for Apple as well as developers.</p>
<h3>Conclusion</h3>
<p>I found this very interesting that he closed it like this:</p>
<blockquote><p>
New open standards created in the mobile era, such as HTML5, will win on mobile devices (and PCs too). Perhaps Adobe should focus more on creating great HTML5 tools for the future, and less on criticizing Apple for leaving the past behind.
</p></blockquote>
<p>In February of 2007 Steve Jobs wrote another <a href="http://www.apple.com/hotnews/thoughtsonmusic/">letter on DRM</a>.  It&#8217;s noteworthy because in January 2009 Apple launched the ability to buy non-DRM protected music.  The letter was really a hint at where things were going.  He&#8217;s repeating the PR strategy that he used then, make no mistake of it.</p>
<p>I have a feeling the day will come where the App Store is deprecated in favor of promoting HTML5 based Applications either directly off the web or packed similar to how Dashboard Widgets are done now on Mac OS X.  The App Store will be around for quite some time, but it will eventually morph.  </p>
<p>That is why WebKit is so important to Apple.  They want to abstract their OS to the point where they can provide very high level hooks into features they want developers to be able to use.  The current iPhone App SDK was a solution created by Apple as a way to let developers put applications on the iPhone as an afterthought.  The moderation is so that they can keep their security record intact and could shut down a malicious app before trouble becomes rampant.  That puts them in the position where they can either approve all content and be viewed as sleazy by more conservative folks, or they can let everything go and accept that reputation.  They obviously made their decision.  Developers and some geeks hate it, but 99% of the rest of the world doesn&#8217;t even know about the process.  Nobody wants to know how sausage is made.</p>
<p>The App Store will likely morph to feature Dashboard Widget like applications (not to different from Palm&#8217;s WebOS).  Apple will still be able to cash in via that distribution point since they can use DRM giving them the only way to actually sell a protected application.  You can view them online via you&#8217;re browser.</p>
<p>That&#8217;s my prediction.  The day will come when the iPhone SDK that we know today will be deprecated.  WebKit and HTML5 aren&#8217;t there today, but the day will come when they will be the tier 1 development platform for the iPhone.  Steve Jobs is just laying the groundwork today.</p>
<p>For desktops, other platforms and browsers it&#8217;s worth noting that there&#8217;s a lot to gain here.
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/?p=3857#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2010/04/f269cb7.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2010/04/29/steve-jobs-thoughts-on-flash/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Google Goes HTML5</title>
		<link>http://robert.accettura.com/blog/2009/12/04/google-goes-html5/</link>
		<comments>http://robert.accettura.com/blog/2009/12/04/google-goes-html5/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 17:11:57 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[google-gears]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[web-standards]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/?p=3141</guid>
		<description><![CDATA[I just noticed that Google is now serving it&#8217;s homepage with an HTML5 doctype: &#60; !doctype html&#62; I suspect this might have changed when they launched that new fade effect. I also noticed they are doing so when using the &#8230; <a href="http://robert.accettura.com/blog/2009/12/04/google-goes-html5/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I just noticed that <a href="http://www.google.com">Google</a> is now serving it&#8217;s homepage with an HTML5 doctype:</p>
<pre>

&lt; !doctype html&gt;
</pre>
<p>I suspect this might have changed when they launched that new fade effect.  I also noticed they are doing so when using the new <a href="http://www.youtube.com/feather_beta">YouTube &#8220;Feather&#8221; beta</a>.  This shouldn&#8217;t be too surprising considering their involvement in the HTML5 specs and developing a web browser and announcing it&#8217;s <a href="http://robert.accettura.com/blog/2009/12/01/google-is-moving-away-from-google-gears/">moving away from Google Gears</a>.</p>
<p>Of course the pages don&#8217;t validate, and don&#8217;t really take advantage of much HTML5 features (that I&#8217;ve seen at least).  But it&#8217;s a step in the right direction.  With modern browsers like Firefox, Chrome, Safari becoming more popular it&#8217;s slowly becoming a reality.
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/?p=3141#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2009/12/92a08bf.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2009/12/04/google-goes-html5/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

