<?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>Ben Ward &#187; html</title>
	<atom:link href="http://benward.me/blog/tags/html/feed" rel="self" type="application/rss+xml" />
	<link>http://benward.me</link>
	<description></description>
	<lastBuildDate>Mon, 26 Jul 2010 03:23:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Concerning Flash and HTML5</title>
		<link>http://benward.me/mint/feeder/?FeederAction=clicked&amp;feed=Articles+%28RSS2%29&amp;seed=http%3A%2F%2Fbenward.me%2Fblog%2Fflash-and-html5&amp;seed_title=Concerning+Flash+and+HTML5</link>
		<comments>http://benward.me/mint/feeder/?FeederAction=clicked&amp;feed=Articles+%28RSS2%29&amp;seed=http%3A%2F%2Fbenward.me%2Fblog%2Fflash-and-html5&amp;seed_title=Concerning+Flash+and+HTML5#comments</comments>
		<pubDate>Tue, 23 Jun 2009 02:21:59 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flash killer]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[jon downdell]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[w3c]]></category>
		<category><![CDATA[whatwg]]></category>

		<guid isPermaLink="false">http://ben-ward.co.uk/?p=530</guid>
		<description><![CDATA[An overview of this whole Flash vs. HTML5 brew-ha-ha, and how really the developments concerned are just pragmatic evolution of technology butting up against a couple of short-lived, but lucrative, media opportunities.

HTML 4 supported pictures. HTML 5 supports moving pictures. It's progress.]]></description>
			<content:encoded><![CDATA[	<p>Earlier today I took a certain amount of pleasure <a href="http://micro.ben-ward.co.uk/post/128294973" title="">ripping into</a> Jon Dowdell&#8217;s disingenuous <a href="http://blogs.adobe.com/jd/2009/06/adobe_on_html5.html" title="">Adobe on <span class="caps">HTML5</span></a> post from last week. However, I happen to think that there are some useful points to be made about the relationship between Flash and <span class="caps">HTML5</span>, and how one affects the other.</p>

	<p>It doesn&#8217;t look good for Flash. But Flash isn&#8217;t going to die.</p>

	<p>Firstly, consider some background. Flash has been around for a very long time, providing a platform for games, vector graphics, animation and media playback. It offers massive market penetration, and of course there is only one Flash player, so it purports to offer a consistent experience across platforms.</p>

	<p>However, Flash comes with a number of significant downsides. Firstly, that &#8216;consistent experience across platforms&#8217; might also be written as &#8216;inconsistent experiences on every platform&#8217;. By taking most of its user interface conventions from Microsoft Windows, the experience of using Flash on a Mac is not the same as using any other app in <span class="caps">OSX</span> using native controls. Simple stuff like the behaviour of keyboard chords in text entry controls are different, the text selection colour doesn&#8217;t match the system selection; low level stuff.</p>

	<p>Similarly, the Flash plug-in itself is cited by Google and Apple as being a massive cause of crashes in their browsers, crashes that the browser maker gets the blame for, but is really caused by Flash. <a href="http://www.google.com/googlebooks/chrome/small_08.html" title="">In Google Chrome</a> and <a href="http://twitter.com/daringfireball/status/2078539734" title="">in <span class="caps">OSX </span>Snow Leopard</a>, plug-ins are sandboxed away from the main browser process. Mozilla <a href="http://crash-stats.mozilla.com/query/query?do_query=1&#38;product=Firefox&#38;version=Firefox%3A3.5b99&#38;platform=linux&#38;date=&#38;range_value=1&#38;range_unit=weeks&#38;query_search=signature&#38;query_type=contains" title="">lists</a> Flash as the biggest causes of Firefox crashes on Linux.</p>

	<p>To top it off, for all the claims of &#8216;Accessible Flash&#8217; over the past year, Flash content is still <em>only accessible on Windows</em>; on Mac <span class="caps">OSX</span>, <a href="http://bugs.adobe.com/jira/browse/FP-38" title="">Flash has no integration with VoiceOver</a>. Screen readers are only supported on Microsoft Windows through the <abbr title="Microsoft Active Accessibility"><span class="caps">MSAA</span></abbr> API.</p>

	<p>The iPhone shipped two years ago without Flash support. At the time, some said it was a &#8216;missing feature&#8217;. 24 months later, the iPhone seems to be doing just fine without Flash, and users seem very happy. Adobe have stopped making vapourous comments about having &#8216;Flash for iPhone&#8217; waiting in the wings.</p>

	<p>There are two distinct threads to a Flash vs. <span class="caps">HTML 5</span> discussion. Those are &#8216;Features&#8217; and &#8216;Philosophy&#8217;. Let&#8217;s tackle them separately.</p>

	<h2>Features</h2>

	<p><span class="caps">HTML 5</span> is gaining mind-share because of a handful of key new features that it offers: <code>&lt;video&gt;</code>, <code>&lt;audio&gt;</code> and <code>&lt;canvas&gt;</code>.</p>

	<p>The first two are quite self-explanatory, they are new elements dedicated to providing video and audio media directly in the browser, and provides a <span class="caps">DOM API</span> for controlling the media from JavaScript. Note, the idea is that the media is played back directly by the browser, not through a plug-in like Quicktime or Windows Media Player (which is how video used to work, before Flash).</p>

	<p>This affects Flash because over the past few years, perfectly timed with the rise in available bandwidth to stream audio and video, it provided a solution better than the Quicktime/Windows Media/RealPlayer mangle that came before it. Before, to embed video in pages you needed to provide multiple codecs, depend on bespoke media player UI appearing in your page (all of which was different sizes, and so would break your layout), and half the time your visitors had the wrong version of the plug-in anyway.</p>

	<p>Flash stepped in with a solution: Support for more platforms than any one of the other bespoke players, and you could design your own playback UI around it, too.</p>

	<p>Flash won video from under the feet of Apple, Microsoft and Real by building something that was better, and bypassing their squabbling over codecs.</p>

	<p>But, it&#8217;s just a better, bespoke solution. It&#8217;s still vendor dependent. Flash provided the use-case for &#8216;embedding video with author-defined playback controls&#8217;. The purpose of standardisation is to take that feature and define it, such that anyone can implement it. From there, comes <code>video</code> and <code>audio</code> in <span class="caps">HTML5</span>.</p>

	<p>Flash also provides vector drawing tools. It&#8217;s another useful use-case (graphing, interactive charts, etc.) Again, the standardisation process for <span class="caps">HTML</span> is about taking the use cases from real content on the web and defining it so many people can implement it. <code>canvas</code> (via. Apple) is the implementation for that.</p>

	<p>Three major pieces of functionality. Putting them natively into the browser responds to the needs of web developers. That&#8217;s what the standard is for. Does this mean that <span class="caps">HTML 5 </span>&#8216;kills&#8217; Flash because previously Flash-only functionality is now native? No. But it means that <em>those major use cases</em> no-longer require Flash. There&#8217;s plenty of other, less trivial functionality that Flash supports for which widespread demand does not exist. But <em>of course</em> really common features of web pages are going to be supported in Open Web technology.</p>

	<p>Additionally, you may cite <a href="http://wiki.novemberborn.net/sifr3/" title="">sifr</a> &#8212; using custom typefaces &#8212; as a use-case for Flash. That falls outside of <span class="caps">HTML5</span>, but is covered by an increasingly well supported <span class="caps">CSS3</span> feature, <a href="http://www.css3.info/preview/web-fonts-with-font-face/" title=""><code>@font-face</code></a>.</p>

	<h2>Philosophy</h2>

	<p>I&#8217;ve avoided linking Jon Dowdell here as a major source because although he titled his post &#8216;Adobe on <span class="caps">HTML5</span>&#8217;, his blog also states that his opinions do not represent his company. His post is representative of Adobe&#8217;s <em>general philosophy</em> toward the web, though.</p>

	<p>As far as Adobe are concerned, Flash is <em>part of</em> the web. It&#8217;s not just an optional, bolt-on plug-in for proprietary content. To Adobe, Flash is as much a part of the web as JavaScript or <span class="caps">CSS</span>. They regard is as a legitimate part of the stack.</p>

	<p><blockquote cite="http://blogs.adobe.com/jd/2009/06/adobe_on_html5.html">&#8220;the &#8220;HTML5&#8221; publicity helps marginalize those few who still argue that images, animation, audio/video and rich interactivity have no place on the web. Flash will be able to deliver on those heightened expectations, regardless of what each separate browser engine does.&#8221;</blockquote></p>

	<p>The second part of Adobe&#8217;s philosophy is that consistent support for functionality on the web is non-negotiable.</p>

	<p><blockquote cite="http://blogs.adobe.com/jd/2009/06/adobe_on_html5.html">&#8220;we really do need the ability to predictably deploy advanced capability across a range of device brands and browser brands&#8221;</blockquote></p>

	<p>This philosophy is wrong. One: <em>Flash is not part of the web</em>. The web <em>is</em> the Open Web and anything closed and proprietary is just riding on its back. I don&#8217;t mean that bespoke plug-ins are unwelcome or even &#8216;wrong&#8217;; they provide all sorts of useful functionality. I do mean that if you are a single-vendor creator of a proprietary, patent and license encumbered, undocumented, closed-source plug-in then you have no claim to be part of the <em>infrastructure</em> of the web. The infrastructure, from <span class="caps">TCP</span>/IP upwards, is <strong>open</strong>.</p>

	<p>The consistent support aspect also flies in the face of techniques used with every part of the Open Web stack: Graceful degradation, progressive enhancement, and the fight against the misguided demand for pixel perfection are all battles that have been fought and won since <a href="http://www.zeldman.com/dwws/" title="">Designing for Web Standards</a>.</p>

	<p>The web is about content. Everything above that is dressing (perhaps think of the web as fresh bread, <em>perfectly coated</em> in balsamic vinegar and olive oil). <strong>The fact that older browsers cannot render all the features of your page but can still provide the content to users is a feature</strong>. It&#8217;s the most important feature.</p>

	<p>The Flash philosophy is opposite. Flash is about a complete experience (singular). It&#8217;s about every detail being precisely bevelled into place for every viewer. The consequence of this approach is that it resists the availability of content. The goal of perfect consistent rendering can only be achieved through a single version of this single vendor&#8217;s bespoke plug-in. If you need a feature of Flash 10, Flash 9 users must upgrade to see <em>any</em> of your content, not just the new feature.</p>

	<p>The Flash approach is anti-content; anti-web. Adobe present the idea that Flash is a superior offering because the entire suite of features, in one big blob, is a compelling development offering. But the reason to write on the web in the first place is to make content available broadly.</p>

	<p>In recent years, through multimedia, fonts and and vector drawing, we&#8217;ve seen more and more blocks of content moved into Flash, in the absence of a robust standards-based mechanism. <span class="caps">HTML5</span> redresses that by supporting those use cases. <span class="caps">HTML4</span> supports pictures. <span class="caps">HTML5</span> supports moving pictures. <span class="caps">HTML5</span> supports what people publish on the web.</p>

	<h2>Fuss</h2>

	<p>What is the fuss about? <span class="caps">HTML5</span> doesn&#8217;t compete with Flash as a product, (you could never produce an implementable specification for so much functionality in one go). It just takes some specific, common use-cases for web <em>content</em> and supports them.</p>

	<p>Yet, people on one side are crying for the absolute death of Flash, and clearly some from Adobe are on the defensive to outright dismiss the <span class="caps">HTML5</span> effort.</p>

	<p>Critics may be motivated by any number of those negative user-experiences this article opened with, but Flash won&#8217;t die. If <span class="caps">HTML5</span> takes away one use-case that Flash fulfils, Adobe Flash will add new features that browsers don&#8217;t have. That&#8217;s what plug-ins have always done. Flash can and will iterate faster than browsers and can deploy wider all at once. That said, some of those existing use cases &#8212; namely video playback &#8212; <em>are</em> extremely lucrative for Adobe. Video took Flash from &#8216;optional&#8217; to &#8216;essential&#8217; for a certain slice of web content. The video sharing industry is dependent on Flash.</p>

	<p>Adobe will lose their exclusive grip on that. But, what did they expect? That a massively profitable industry would tie themselves to a single vendor?</p>

	<p>Flash offers only one advantage to video on the web, and I think this one will be genuinely interesting to see turned into a marketed feature. The <span class="caps">HTML5</span> method of embedding video looks like this:</p>

	<p><code>&lt;video src='http://example.org/video/foo.mp4'&gt;&lt;/video&gt;</code></p>

	<p>There&#8217;s the <span class="caps">URL</span> to your video file, right there in the <span class="caps">HTML</span> source, downloaded in raw form. What can Adobe offer publishers? Two &#8216;features&#8217; of software that run absolutely counter to the principals of the open web: <span class="caps">DRM</span> and obfuscation.</p>

	<p>That could be interesting. The survival of Adobe Flash Video online will require them to take the closed, anti-content consequence of Flash&#8217;s model, and instead embrace it as a feature for media companies that fear distribution of their content.</p>

	<p>Really, I think this whole issue is overblown. Maybe it&#8217;s all fuelled by scare-mongering from individuals Adobe, maybe it&#8217;s over-eager Open Web evangelists eager to see closed and proprietary scraped from the face of the web. In reality, it&#8217;s just the pragmatic, ongoing evolution of the web offering useful new functionality.</p>
 ]]></content:encoded>
			<wfw:commentRss>http://benward.me/mint/feeder/?FeederAction=clicked&amp;feed=Articles+%28RSS2%29&amp;seed=http%3A%2F%2Fbenward.me%2Fblog%2Fflash-and-html5&amp;seed_title=Concerning+Flash+and+HTML5/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Gmail Chat</title>
		<link>http://benward.me/mint/feeder/?FeederAction=clicked&amp;feed=Articles+%28RSS2%29&amp;seed=http%3A%2F%2Fbenward.me%2Fblog%2Fgmail-chat&amp;seed_title=Gmail+Chat</link>
		<comments>http://benward.me/mint/feeder/?FeederAction=clicked&amp;feed=Articles+%28RSS2%29&amp;seed=http%3A%2F%2Fbenward.me%2Fblog%2Fgmail-chat&amp;seed_title=Gmail+Chat#comments</comments>
		<pubDate>Sat, 11 Feb 2006 15:42:59 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[conversation-markup]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google-talk]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[tag-soup]]></category>

		<guid isPermaLink="false">http://ben-ward.co.uk/?p=308</guid>
		<description><![CDATA[Google integrates chat logging into Gmail. Produces more shite mark-up.]]></description>
			<content:encoded><![CDATA[	<p>Google are currently implementing a new feature into Gmail that allows you to chat over their Google Talk service from within your web browser. It&#8217;s a neat idea and seems to work.</p>

	<p>Furthermore, they&#8217;ve set up Gmail so that you can access and search your chat logs along with other mail. It would be easy at this point to make a point about privacy concerns and the terrifying amount of data they now store about me. Instead, I&#8217;m going to talk about mark-up.</p>

	<p>Google <em>suck</em> at <span class="caps">HTML</span>. This is a fairly well known fact. It&#8217;s a little amusing, since they recently employed <a href="http://hixie.ch">Ian Hickson</a> (who&#8217;s writing the <span class="caps">HTML5</span> spec). I guess they&#8217;ve not figured out how to implement an employee-wide hive mind just yet.</p>

	<p>I&#8217;ve currently got chat logging enabled for curiosity value. Since I keep local logs though, and since I use multiple protocols (as do my contacts), it&#8217;s not likely to be much long term use to me. Sometimes curiosity can hurt, though. Here is a 4 line conversation, as marked up by Google:</p>

<pre><code>
&lt;table cellpadding="0" cellspacing="0"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="font-size: 80%; width: 5em; color: rgb(136, 136, 136);"
          nowrap="nowrap" valign="top"&gt; 2:52 PM&amp;nbsp;&lt;/td&gt;
      &lt;td style="font-size: 80%; padding-left: 2em; text-indent: -1em;"&gt;
        &lt;span&gt;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;me&lt;/span&gt;: Ello :)
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;table cellpadding="0" cellspacing="0"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="font-size: 80%; width: 5em; color: rgb(136, 136, 136);"
          nowrap="nowrap" valign="top"&gt;2:53 PM&amp;nbsp;&lt;/td&gt;
      &lt;td style="font-size: 80%; padding-left: 2em; text-indent: -1em;"&gt;
        &lt;span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Hanni&lt;/span&gt;: hiya
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;table cellpadding="0" cellspacing="0"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="font-size: 80%; width: 5em; color: rgb(136, 136, 136);"
          nowrap="nowrap" valign="top"&gt;&amp;nbsp;&lt;/td&gt;
      &lt;td style="font-size: 80%; padding-left: 2em; text-indent: -1em;"&gt;
        &lt;span&gt;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;me&lt;/span&gt;: How's you?
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;table cellpadding="0" cellspacing="0"&gt;
  &lt;tr&gt;
    &lt;td nowrap valign="top" style="font-size:80%;width:5em;color:#888"&gt;
    &lt;/td&gt;
    &lt;td style="font-size:80%;padding-left:2em"&gt;
      &lt;span&gt;&lt;b&gt;goes to update in itunes&lt;/b&gt;&lt;/span&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</code></pre>

	<p>And here&#8217;s whats actually required to describe the same conversation (<a href="http://annevankesteren.nl/2005/10/msn-sessions">via Anne van Kesteren</a>).</p>

<pre><code>
&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;2:52 PM &lt;cite&gt;Me&lt;/cite&gt;&lt;/p&gt;
    &lt;p&gt;&lt;q&gt;Ello&lt;/q&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;2:53 PM &lt;cite&gt;Hanni&lt;/cite&gt;&lt;/p&gt;
    &lt;p&gt;&lt;q&gt;Hiya&lt;/q&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;cite&gt;Me&lt;/cite&gt;&lt;/p&gt;
    &lt;p&gt;&lt;q&gt;How's you?&lt;/q&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;cite&gt;Hanni&lt;/cite&gt;&lt;/p&gt;
    &lt;p&gt;&lt;q class="action"&gt;goes to update iTunes&lt;/q&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;
</code></pre>

	<p>To be honest, that&#8217;s not a perfect way of describing Google&#8217;s specific data and marking up conversations is a bit of a grey area (perhaps until <span class="caps">HTML5</span> specifies it properly, or a Microformat pops up for it). You could also experiment with blockquotes and definition lists.</p>

	<p>The point is, that Anne&#8217;s way is at least better. It&#8217;s clearer, uses less markup, is far more <span class="caps">CSS</span>-friendly and will degrade (not much of a consideration in Gmails tag soup, I admit). Google&#8217;s way is simply wrong. What bemuses me the most, is that from where I&#8217;m sitting it would be <strong>easier</strong> to produce the semantic mark-up than the bizarre table concoction Google is pushing.</p>
 ]]></content:encoded>
			<wfw:commentRss>http://benward.me/mint/feeder/?FeederAction=clicked&amp;feed=Articles+%28RSS2%29&amp;seed=http%3A%2F%2Fbenward.me%2Fblog%2Fgmail-chat&amp;seed_title=Gmail+Chat/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
