<?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>a pint of javascript (and general web stuff) &#187; rant</title>
	<atom:link href="http://blog.gonchuki.com/category/rant/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.gonchuki.com</link>
	<description></description>
	<lastBuildDate>Tue, 06 Jul 2010 21:45:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Standards Compliancy is a lie (or, how all browsers have a broken border-radius)</title>
		<link>http://blog.gonchuki.com/archives/standards-compliancy-is-a-lie-or-how-all-browsers-have-a-broken-border-radius/</link>
		<comments>http://blog.gonchuki.com/archives/standards-compliancy-is-a-lie-or-how-all-browsers-have-a-broken-border-radius/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 16:56:25 +0000</pubDate>
		<dc:creator>gonchuki</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://blog.gonchuki.com/?p=170</guid>
		<description><![CDATA[Day after day we see a new release from one of the major internet browser developers boasting how they comply with web standards and how they are targeting a gazillion of experimental features that no one cares about (I bet only 3% of web developers cared to study the bible of -webkit prefixes), yet except [...]]]></description>
			<content:encoded><![CDATA[<p>Day after day we see a new release from one of the major internet browser developers boasting how they comply with web standards and how they are targeting a gazillion of experimental features that no one cares about (I bet only 3% of web developers cared to study the bible of -webkit prefixes), yet except for Firefox* all of them get border-radius completely wrong (Firefox actually has a minor annoyance but it&#039;s bearable). Can you say you are standards-compliant if you have a broken implementation?<br />
<span id="more-170"></span></p>
<h3 class="section">a little back story</h3>
<p>A few months ago, the <a href="http://blogs.msdn.com/b/ie/archive/2010/03/19/the-css-corner-about-css-corners.aspx"><acronym title="Internet Explorer">IE</acronym> Blog showcased some IE9 goodness</a> and made a call to action for better border-radius implementations. They rightfully shown how they are getting it right this time, and how most other browsers out there are broken, with Safari/Chrome (Webkit) being the worst still at the time of writing this article. But not everything in their implementation is correct, IE9 pre 3 still exhibits the same issue as the other browsers that I&#039;m presenting today.</p>
<h3 class="section">the big bug theory</h3>
<p>So what&#039;s the issue with border-radius? simple answer: the background color bleeds behind the radius when you also have a border in the same element.<br />
Let&#039;s first use a real world example of a live site that paradoxically exposes the bug: <a href="http://playground.html5rocks.com/">HTML5 Rocks Playground</a></p>
<div class="center"><img src="http://sandbox.gonchuki.com/border-radius/chrome5-firefox.png" alt="Chrome 5 vs. Firefox" /><span class="caption">Chrome 5.0.375.99 on the left, Firefox 3.6.6 on the right, Windows 7 with ATI X300</span></div>
<p><strong>See the blue garbage on the rounded corner?</strong> that&#039;s what most browsers do.</p>
<p>Now, to rule out a possible specific software/hardware combination, I went thru several test machines and browsers to see if the bug was repeatable:</p>
<div class="center showcase_img">
<img src="http://sandbox.gonchuki.com/border-radius/fx_366_winxp_ati4850.png" alt="" /><img src="http://sandbox.gonchuki.com/border-radius/chrome_5_winxp_ati4850.png" alt="" /><img src="http://sandbox.gonchuki.com/border-radius/opera_1060_winxp_ati4850.png" alt="" /><img src="http://sandbox.gonchuki.com/border-radius/chrome_5_ubuntu_vbox.png" alt="" /><img src="http://sandbox.gonchuki.com/border-radius/ie_9pre3_win7_intel.png" alt="" /><img src="http://sandbox.gonchuki.com/border-radius/chrome_6_winxp_8600.png" alt="" /><img src="http://sandbox.gonchuki.com/border-radius/chrome_6_win7_intel.png" alt="" /><img src="http://sandbox.gonchuki.com/border-radius/safari_5_winxp_ati.png" alt="" />
</div>
<p></p>
<h3 class="section">reproducing the bug</h3>
<p>So how hard is to reproduce the bug? sadly, not at all. Here&#039;s the base recipe for disaster:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #933;">3px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#999</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#f00</span><span style="color: #00AA00;">;</span>
border-radius<span style="color: #00AA00;">:</span> <span style="color: #933;">20px</span><span style="color: #00AA00;">;</span></pre></td></tr></table></div>

<style type="text/css">
div.border-radius-box {
border: 3px solid #999; background-color: #f80; float: left; width: 60px; height: 60px; margin: 0 7px;
}
div.box-2  { background-color: #0fa; -moz-border-radius: 5px;-webkit-border-radius: 5px; border-radius: 5px; }
div.box-3  { background-color: #f3a; -moz-border-radius: 10px;-webkit-border-radius: 10px; border-radius: 10px; }
div.box-4  { background-color: #1a0; -moz-border-radius: 15px;-webkit-border-radius: 15px; border-radius: 15px; }
div.box-5  { background-color: #07f;  -moz-border-radius: 20px;-webkit-border-radius: 20px; border-radius: 20px;}
div.box-6  { background-color: #f00;  -moz-border-radius: 25px;-webkit-border-radius: 25px; border-radius: 25px; }
div.box-7  { background-color: #377;  -moz-border-radius: 30px;-webkit-border-radius: 30px; border-radius: 30px; }
div.box-outer  { background-color: #999; padding: 3px; border: 0 none; }
div.box-inner  { border: 0 none; margin: 0; -moz-border-radius: 23px;-webkit-border-radius: 23px; border-radius: 23px;  }
.showcase_img img { margin: 5px 10px; border: 1px solid #ddd; }
</style>
<div class="border-radius-box"></div>
<div class="border-radius-box box-2"></div>
<div class="border-radius-box box-3"></div>
<div class="border-radius-box box-4"></div>
<div class="border-radius-box box-5"></div>
<div class="border-radius-box box-6"></div>
<div class="border-radius-box box-7"></div>
<p><br style="clear: left;" /><br />
zooming-in the issue:</p>
<div class="center"><img src="http://sandbox.gonchuki.com/border-radius/fx_366_demo.png" alt="" /><span class="caption">Firefox 3.6.6</span></div>
<p></p>
<div class="center"><img src="http://sandbox.gonchuki.com/border-radius/chrome_5_demo.png" alt="" /><span class="caption">Chrome 5</span></div>
<p></p>
<div class="center"><img src="http://sandbox.gonchuki.com/border-radius/opera_1060_demo.png" alt="" /><span class="caption">Opera 10.60</span></div>
<p></p>
<div class="center"><img src="http://sandbox.gonchuki.com/border-radius/ie_9pre3_demo.png" alt="" /><span class="caption">IE9 pre 3</span></div>
<p>given the previous example and screenshots, you might have noticed the other issue: <strong>Firefox is not actually bug-free.</strong> It has a slight issue blending the element background with the border. it&#039;s not as bad as the bleeding issue, but it&#039;s still annoying. Also from the previous set and this one, we notice how the IE9 and Opera 10.60 implementations are an order of magnitude better than what Webkit achieves.</p>
<h3 class="section">finding a work-around</h3>
<p>As you might have guessed, the only reliable work-around to date is nesting rounded elements when you need a distinctly colored border. Using padding on the outer box equal to the border-width required does the trick and works across all browsers:</p>
<div class="border-radius-box box-6 box-outer">
<div class="border-radius-box box-6 box-inner"></div>
</div>
<p>Of course it&#039;s not all fun and games, <strong>you need to specify a different border-radius for the inner box</strong> as they both have different sizes. In this case, the outer box has 25px while the inner one has 23px.<br style="clear: left;" /></p>
<p><strong>Can we stop with the pain already?</strong> How many years have passed since the first border-radius implementation and they are still getting it wrong?<br />
this is how I feel about the current state of border-radius:</p>
<div class="center"><img src="http://sandbox.gonchuki.com/border-radius/doin_it_wrong.jpg" alt="" /></div>
<p><strong>Can every browser get it right before boring us once again with their endless speech on how shiny and compliant they are?</strong> It&#039;s not <a href="http://farscape.wikia.com/wiki/Frell">frelling</a> rocket science.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.gonchuki.com/archives/standards-compliancy-is-a-lie-or-how-all-browsers-have-a-broken-border-radius/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>HTML5 vs Flash take 2: what Steve Jobs doesn&#039;t want you to know</title>
		<link>http://blog.gonchuki.com/archives/html5-vs-flash-take-2-what-steve-jobs-doesnt-want-you-to-know/</link>
		<comments>http://blog.gonchuki.com/archives/html5-vs-flash-take-2-what-steve-jobs-doesnt-want-you-to-know/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 17:30:27 +0000</pubDate>
		<dc:creator>gonchuki</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://blog.gonchuki.com/?p=134</guid>
		<description><![CDATA[Dear Steve Jobs: you don&#039;t have a clue.


Important:
This article is a follow up on 6 reasons why the &#034;HTML5 vs. Flash&#034; debate is idiotic, if you haven&#039;t read that article yet, it&#039;s strongly recommended that you do.

the sheeple herder has spoken
Today, April 29th 2010, our dearest dictator ruler decided to publish a pedantic article on [...]]]></description>
			<content:encoded><![CDATA[<p>Dear Steve Jobs: you don&#039;t have a clue.<br />
<span id="more-134"></span></p>
<div class="big_sign notice">
<h3>Important:</h3>
<p>This article is a follow up on <a href="http://blog.gonchuki.com/archives/6-reasons-why-the-html5-vs-flash-debate-is-idiotic/">6 reasons why the &#034;HTML5 vs. Flash&#034; debate is idiotic</a>, if you haven&#039;t read that article yet, it&#039;s strongly recommended that you do.</p>
</div>
<h3 class="section">the sheeple herder has spoken</h3>
<p>Today, April 29th 2010, our dearest <del datetime="2010-04-29T15:21:32+00:00">dictator</del> <abbr title="Steve Jobs">ruler</abbr> decided to publish a <a href="http://www.apple.com/hotnews/thoughts-on-flash/">pedantic article on why he won&#039;t let Flash run on their mobile devices</a>. It&#039;s a nice read if you want to take a laugh or two, but at the end if you read between lines he will just self-promote his products based on false premises. I will be analyzing his speech on this post so it&#039;s not fully required to read his article first.</p>
<h3 class="section">at first I was like&#8230;</h3>
<p>In <a href="http://blog.gonchuki.com/archives/6-reasons-why-the-html5-vs-flash-debate-is-idiotic/">my recent article</a> I made a lot of things clear so that reading the aforementioned Steve Jobs article will be easier on your feelings. Thankfully, the article also warns people about the weak arguments that HTML5 fundamentalists are trying to push, ignoring every weakness of the spec.</p>
<h3 class="section">&#8230;but then I lol&#039;d</h3>
<p>now on to the analysis:</p>
<blockquote><p>First, there&#039;s &#034;Open&#034;.</p>
<p>Adobe&#039;s Flash products are 100% proprietary. They are only available from Adobe, and Adobe has sole authority as to their future enhancement, pricing, etc. While Adobe’s Flash products are widely available, this does not mean they are open, since they are controlled entirely by Adobe and available only from Adobe. By almost any definition, Flash is a closed system.</p></blockquote>
<p>Wrong.<br />
As stated in comments of my previous article only the &#034;official&#034; Flash plugin is proprietary, however <a href="http://www.adobe.com/devnet/swf/">the specs for running .swf content are open</a> and there&#039;s even an <a href="http://github.com/tobeytailor/gordon">open source Flash Player</a> implementation using Javascript+<acronym title="Scalable Vector Graphics">SVG</acronym> and <a href="http://osflash.org/open_source_flash_projects">tons of open source tools</a> for creation and running of SWF content.<br />
As for the rest of the components, the <acronym title="Virtual Machine">VM</acronym> responsible for interpreting ActionScript is Open Source (<a href="http://www.mozilla.org/projects/tamarin/">Tamarin</a>), and even the Flex SDK goes for free and is Open Source, so <strong>there&#039;s absolutely no charge for creating SWF content</strong>. Zero, <i>gratis</i>.</p>
<p>The only thing that Adobe charges for is the Flash IDE, the one that eases creation of content, the one that <strong>no one using HTML5 technologies has yet</strong>, and might take a few years until someone creates one comparable to what the Flash IDE allows you to do.</p>
<blockquote><p>Second, there&#039;s the &#034;full web&#034;.</p>
<p>Adobe has repeatedly said that Apple mobile devices cannot access “the full web” because 75% of video on the web is in Flash. What they don’t say is that almost all this video is also available in a more modern format, H.264, and viewable on iPhones, iPods and iPads.<br />
[snip]<br />
Another Adobe claim is that Apple devices cannot play Flash games. This is true. Fortunately, there are over 50,000 games and entertainment titles on the App Store, and many of them are free. There are more games and entertainment titles available for iPhone, iPod and iPad than for any other platform in the world.
</p></blockquote>
<p>Yet H.264 is not part of HTML5, <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-June/020620.html">or is it</a>? let me clear this for you, <a href="http://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Patent_licensing">H.264 has royalty fees</a>, ones that you are paying when you buy an iProduct but don&#039;t really notice, and <strong>Apple is the only vendor opposing the adoption of Ogg Theora as a de-facto video format</strong>. <a href="http://arstechnica.com/open-source/news/2009/07/decoding-the-html-5-video-codec-debate.ars">This article from Ars Technica</a> has a very complete explanation on the points against Ogg Theora that Apple is trying to shove in the face of their users.</p>
<p>About the games, I&#039;m not keeping tabs but the number of Flash games easily dwarfs any number that Steve Jobs can throw. Even if you remove low quality games from both platforms, Flash would still be the clear winner.</p>
<blockquote><p>Third, there&#039;s reliability, security and performance.</p>
<p>Symantec recently highlighted Flash for having one of the worst security records in 2009. We also know first hand that Flash is the number one reason Macs crash. We have been working with Adobe to fix these problems, but they have persisted for several years now. We don’t want to reduce the reliability and security of our iPhones, iPods and iPads by adding Flash.</p></blockquote>
<p>Weak argument Mr. Jobs, Adobe has been working hard on Flash and the upcoming 10.1 rewrites history by fixing every problem that previous versions had on the Mac. They even try to use the most advanced rendering mode in Mac OS X, but <a href="http://www.kaourantin.net/2010/02/core-animation.html">dictatorial resolutions by Apple avoid third-party applications from accessing the fastest rendering path</a>. Does this ring a bell? oh yeah, <a href="http://www.tuaw.com/2010/04/07/apple-rejects-ipad-app-for-pinch-to-expand/">the App Store review team can reject your app for using a &#034;pinch to zoom&#034; gesture</a>.</p>
<p>Maybe it&#039;s not entirely Adobe&#039;s fault. Yes they have they part, but <strong>Apple is doing a terrible job at helping them</strong>.</p>
<blockquote><p>Fourth, there’s battery life.</p>
<p>To achieve long battery life when playing video, mobile devices must decode the video in hardware; decoding it in software uses too much power. Many of the chips used in modern mobile devices contain a decoder called H.264 – an industry standard that is used in every Blu-ray <acronym title="Digital Video Disc">DVD</acronym> player and has been adopted by Apple, Google (YouTube), Vimeo, Netflix and many other companies.</p></blockquote>
<p><strong>Flash 10.1 also uses hardware acceleration for H.264</strong>, so this argument is soon to get outdated. But even if the argument was true, isn&#039;t the end user the one responsible for deciding which content is right for them? If I want to drain my battery watching some indie video (that was not created in H.264 as it&#039;s not open) then I should be able to do it. It&#039;s my right as a customer, and as a web user.</p>
<p>There&#039;s also <a href="http://www.zingchart.com/blog/2010/04/07/zingchart-plots-to-end-the-war-between-html5-and-flash-in-web-based-charting/">a nice article that compares HTML5 and Flash performance</a> for a data graphing application. The results are not surprising: <strong>HTML5/Canvas is slower than Flash in many cases</strong>, and that translates to higher battery power usage. [<a href="http://www.craftymind.com/guimark2/">another bench here</a>, comparing mostly raw synthetic speed]</p>
<blockquote><p>Fifth, there’s Touch.</p>
<p>Flash was designed for PCs using mice, not for touch screens using fingers. For example, many Flash websites rely on “rollovers”, which <acronym title="Short for POP3, the Post Office Protocol for email">POP</acronym> up menus or other elements when the mouse arrow hovers over a specific spot. Apple’s revolutionary multi-touch interface doesn’t use a mouse, and there is no concept of a rollover. Most Flash websites will need to be rewritten to support touch-based devices. If developers need to rewrite their Flash websites, why not use modern technologies like HTML5, <acronym title="Cascading Style Sheets">CSS</acronym> and JavaScript?</p></blockquote>
<p>There have been numerous propositions on how to fix the &#034;rollover&#034; issue in Flash for touch devices, yet Steve Jobs won&#039;t acknowledge them. The Flash-to-iPhone compiler demonstrated how you can make Flash content without piggybacking on rollovers to deploy an iPhone application that seems like native.</p>
<p>But the most hilarious argument is how <strong>Steve Jobs dictates that we rewrite all the Flash content in HTML5</strong>, will he pay for it? I bet it&#039;s a no.</p>
<blockquote><p>Sixth, the most important reason.</p>
<p>Besides the fact that Flash is closed and proprietary, has major technical drawbacks, and doesn’t support touch based devices, there is an even more important reason we do not allow Flash on iPhones, iPods and iPads. We have discussed the downsides of using Flash to play video and interactive content from websites, but Adobe also wants developers to adopt Flash to create apps that run on our mobile devices.</p>
<p>We know from painful experience that letting a third party layer of software come between the platform and the developer ultimately results in sub-standard apps and hinders the enhancement and progress of the platform. If developers grow dependent on third party development libraries and tools, they can only take advantage of platform enhancements if and when the third party chooses to adopt the new features. We cannot be at the mercy of a third party deciding if and when they will make our enhancements available to our developers.</p>
<p>This becomes even worse if the third party is supplying a cross platform development tool. The third party may not adopt enhancements from one platform unless they are available on all of their supported platforms. Hence developers only have access to the lowest common denominator set of features. Again, we cannot accept an outcome where developers are blocked from using our innovations and enhancements because they are not available on our competitor’s platforms.</p></blockquote>
<p>Yet developers are at the mercy of Apple and their App Store policy, in which case <strong>if</strong> an app gets accepted,<strong> it might have taken a month to reach end users</strong>. Isn&#039;t this the same as waiting a month till the middle-ware developer adopts the new features in Apple&#039;s SDK? The end user will suffer just the same.</p>
<p>Let&#039;s be sincere, <strong>Apple doesn&#039;t care about developers</strong> (see all of the above points), they just care about making money.</p>
<h3 class="section">conclusions</h3>
<p>Apple wants your money, and native Flash in Safari won&#039;t bring them any as people would have access to an immense gallery of <strong>free content</strong>, <a href="http://kongregate.com">tons of nice games</a> that would affect the economy of their App Store.<br />
Apple also wants to kill Flash, so they won&#039;t allow you to develop native apps using Flash for arbitrary reasons. They created a closed ecosystem where your only options are to do what they say or GTFO.</p>
<p>Their &#034;open&#034; idea is to control what developers do, in what programming language, and even what APIs or <a href="http://www.tuaw.com/2010/04/07/apple-rejects-ipad-app-for-pinch-to-expand/">touch gestures they use</a>. By killing the Flash cross-compiler they are also giving the finger to Windows, so <strong>developers will still need to buy a Mac to develop for their mobile platform</strong>.</p>
<p>What comes next Steve? Wanna dictate the amount of sugar that we put to our coffees while we code?</p>
<h3 class="section">addendum</h3>
<p>some interesting arguments on different views of this same subject have been popping during the day, I will be adding these and anything interesting that comes next as they are a good complement to my thoughts on this matter.</p>
<ul>
<li><a href="http://www.adambanks.com/wordpress/thoughts-on-thoughts-on-flash/">http://www.adambanks.com/wordpress/thoughts-on-thoughts-on-flash/</a></li>
<li><a href="http://billmackin.com/2010/04/a-response-to-steve-jobs-thoughts-on-flash/">http://billmackin.com/2010/04/a-response-to-steve-jobs-thoughts-on-flash/</a></li>
<li><a href="http://jessewarden.com/2010/04/steve-jobs-on-flash-correcting-the-lies.html">http://jessewarden.com/2010/04/steve-jobs-on-flash-correcting-the-lies.html</a></li>
<li><a href="http://www.icodeflash.com/flashblog/?p=63">http://www.icodeflash.com/flashblog/?p=63</a></li>
<li><a href="http://uza.lt/blog/2010/04/my-take-html5-vs-flash/">http://uza.lt/blog/2010/04/my-take-html5-vs-flash/</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://blog.gonchuki.com/archives/html5-vs-flash-take-2-what-steve-jobs-doesnt-want-you-to-know/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>6 reasons why the &quot;HTML5 vs. Flash&quot; debate is idiotic</title>
		<link>http://blog.gonchuki.com/archives/6-reasons-why-the-html5-vs-flash-debate-is-idiotic/</link>
		<comments>http://blog.gonchuki.com/archives/6-reasons-why-the-html5-vs-flash-debate-is-idiotic/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 17:50:48 +0000</pubDate>
		<dc:creator>gonchuki</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://blog.gonchuki.com/?p=77</guid>
		<description><![CDATA[Ladies and Gentlemen, welcome to the world of the sad truth you didn&#039;t want to read. Today is the day to settle once and for all the moot debate around &#034;HTML5 vs. Flash&#034;. The vicious debate that is clogging the intertubes is utterly pointless, yet still there&#039;s a big crowd of fundamentalists that don&#039;t get [...]]]></description>
			<content:encoded><![CDATA[<p>Ladies and Gentlemen, welcome to the world of the sad truth you didn&#039;t want to read. Today is the day to settle once and for all the moot debate around &#034;HTML5 vs. Flash&#034;. The vicious debate that is clogging the intertubes is utterly pointless, yet still there&#039;s a big crowd of fundamentalists that don&#039;t get why.</p>
<p>Let&#039;s put some nails in the idiotic debate coffin.</p>
<p><span id="more-77"></span></p>
<ol>
<li>
<h4 class="subsection bad">The HTML5 spec won&#039;t be ready for consumption for at least another 2 years.</h4>
<p>You avid HTML5 advocate, do you really have any idea on the actual HTML5 roadmap? Well, it&#039;s not <a href="http://wiki.whatwg.org/wiki/FAQ#When_will_HTML5_be_finished.3F">until 2012 that it will reach Candidate status</a> (an important milestone, which like in any software determines when all features are ready and only testing and minor bugs remain), and sometime around 2022 that it will be finally settled as an official <acronym title="World Wide Web Consortium">W3C</acronym> recommendation.</p>
<p><strong>What this means:</strong> whatever code you write based on today&#039;s working draft version of the specs is not assured to work in 2012. Yes, there are lots of sections on &#034;last call for comments&#034; status, but that also means a strong argument on said sections could potentially introduce a major breaking change over any current concept code you already wrote.</p>
</li>
<li>
<h4 class="subsection bad">Flash is a mature platform, HTML5 is just in its initial implementation phase.</h4>
<p>Let&#039;s face it, like it or not browser vendors haven&#039;t yet adopted every part of the current working draft. There are sections that were sitting for over two years in the spec (more specific, the form elements) and those haven&#039;t been yet fully implemented by any vendor. Having more browsers in play also doesn&#039;t help, as even Chrome&#039;s WebKit version doesn&#039;t behave exactly the same as Safari&#039;s version in regards of HTML5 completeness (or accuracy, for that matter).</p>
<p>We have at least a good one full year before mainstream browsers implement enough of the HTML5 spec to call it a stable and usable implementation. You can <a href="http://en.wikipedia.org/wiki/Comparison_of_layout_engines_%28HTML_5%29">check over on Wikipedia</a> to see a fairly well updated list on current support for the various HTML5 components, or you can even <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/index.html">check the working draft maintained by WHATWG</a> where each point of the spec is accompanied by a tool-tip displaying the level of support provided by each major rendering engine.</p>
</li>
<li>
<h4 class="subsection bad">Flash is made by a single vendor, HTML5 sees duplicate efforts by at least 5 different companies on at least 4 different platforms.</h4>
<p>Love it or hate it, Adobe is the only single vendor responsible of developing the Flash player. Yes, it might fail miserably on Linux for some use cases or cause unexpected crashes in Mac OS X, but the behavior is consistent. This single unified implementation is what web developers are desperately looking for.</p>
<p>HTML5 doesn&#039;t bring anything new compared to current HTML4/XHTML in regards of consistency. We will still be suffering from testing our sites across different browsers, operating systems and mobile devices. <strong>HTML5 won&#039;t steal the world&#039;s smallest violin from us</strong>, we will still play it to the end of the days. Yes, consistency across vendors is getting better every day, yet you will never experience the same exact representation in every one of them (that will be the day we only have one single browser to rule them all).</p>
<p>And don&#039;t get me started about the <var>&lt;audio&gt;</var> and <var>&lt;video&gt;</var> tags issue, the h264 vs Theora (or AAC vs Vorbis) debate is like the <var>&lt;blink&gt;</var> vs <var>&lt;marquee&gt;</var> nightmare all over again. The only current solution with HTML5 is the same as with Flash: target a single platform and your creation will work flawlessly.</p>
</li>
<li>
<h4 class="subsection bad">Flash is built as a multimedia and animation platform, HTML5 is a progressive enhancement over a content centric and descriptive language</h4>
<p>In case the title is not self-explanatory, or you still don&#039;t get the point: <strong>HTML5 is *not* a gaming platform nor its design was centered around building banners or vectorial animations</strong>.</p>
<p><strong>Want to cite Canvas?</strong> moot point, there are lots of options for layer compositing and using matrix transformations on bitmaps, yet it still falls short compared to Flash. Also notable are the lack of brightness/contrast/tint operations, and the lack of a native vector animation <acronym title="Application Programming Interface">API</acronym>.<br />
<strong>Want to cite WebGL?</strong> another moot point, WebGL isn&#039;t anything but a glorified &#034;native&#034; plugin that&#039;s not different from running the <a href="http://unity3d.com/webplayer/">Unity 3D plugin</a>: a rectangular viewport embedded inside your browser that talks directly with your GPU and has nothing to do with content or information <i>per-se</i>. Writing stuff for WebGL isn&#039;t any different than writing it for a standalone OpenGL viewport.</p>
</li>
<li>
<h4 class="subsection bad">Flash is good at what Flash does, HTML5 is good at what <acronym title="HyperText Markup Language">HTML</acronym> does</h4>
<p>You get it now? It&#039;s not like Flash is bundled with an IDE resembling an animation studio for nothing, or that the only reliable way to build a good piece of <acronym title="HyperText Markup Language">HTML</acronym> code is by hand coding for arbitrary reasons. Both are strong at what they do, but you need to understand that <var>&lt;canvas&gt;</var>, <var>&lt;video&gt;</var>, <var>&lt;audio&gt;</var> and the likes are just the &#034;nice to have&#034; in HTML5 and not the core itself. Heck, <strong>HTML5 can&#039;t even access the system&#039;s camera/microphone</strong> so there&#039;s absolutely no way to develop sites like <a href="http://tinychat.com">tinychat</a> or <a href="http://justin.tv">justin.tv</a> without requiring the end-user to install additional software to be able to communicate.<br />
This issue even gets magnified in the iPhone/iPad world, where you can only distribute such kind of software via the app store. An update for your chat app could even take a month to reach your end users!</p>
<p>As much as your zealot HTML5 advocacy urges you to debate about how *this* and *that* can be replicated using HTML5, one day you will realize that even trivial tasks in Flash like adding bones to an object (LMGTFY: <a href="http://www.google.com/search?q=inverse+kinematics">Inverse Kinematics</a>) can and will take enormous amounts of effort and time using whatever raw tool the Canvas+Javascript world provides you.</p>
<p>Yet again, don&#039;t fall in the trap of citing &#034;framework X uses Canvas and has support for inverse kinematics&#034; because you are back at square zero: depending on a third party vendor to add features/fix bugs so you can work on top of it.<br />
Are you aware you are already suffering from this with the video tag? These <a href="http://jilion.com/sublime/video">two</a> <a href="http://www.projekktor.com/">examples</a> just show how the native browser implementation is so barebones that you have to build an entire wrapper around the object.</p>
</li>
<li>
<h4 class="subsection bad">The Flash vs. HTML5 argument will implode after every Flash feature is ported into an HTML5/Canvas equivalent</h4>
<p><strong>So you don&#039;t like Flash Ads?</strong> say hello to <a href="http://www.apple.com/iphone/preview-iphone-os/">iAd</a>. As annoying as before, but you can&#039;t Flash-block or Ad-Block it as it can be served from within your very own <acronym title="Document Object Model">DOM</acronym> tree. Say hello to popunders with video, sound and flying colors.<br />
<strong>Flash is not accessible?</strong> then let me know how your Canvas or WebGL piece is in any way more accessible.<br />
<strong>Flash is a closed source platform?</strong> to certain extent, all the tools you will be using to &#034;compete&#034; against Flash will ultimately seem like closed source to you. You can only hack on so many projects at once. To make it worse, the browser upgrade cycle takes a lot more time than Flash and a buggy implementation might stay on the market for even 10 or more years (o hai IE6).<br />
<strong>Flash is slow and eats CPU time?</strong> Javascript is the same, and will even be slower as you will be running those framework layers over the Javascript <acronym title="Virtual Machine">VM</acronym> instead of running it as native compiled code.</p>
</li>
</ol>
<h3 class="section">Conclusions</h3>
<p>To quickly summarize the article, <strong>you must understand that Flash and HTML5 are completely different things</strong>. They share a lot of features, yet each technology remains so unique that both will stay in the market for many years to come. Neither the <strong>one-sided push from Apple</strong> nor the fanatic zealotry of HTML5 advocates will take Flash out of the market. But if one thing is certain,<strong> the days of using Flash for trivial tasks that *do* require accessibility are over</strong>. The bad side of Flash is not the product itself, it&#039;s developers misusing it for tasks it was not intended to do.</p>
<p>Let&#039;s continue using Flash for delivering heavy animations and interactive content, and of course <strong>try to avoid it at all times when there&#039;s an usability and accessibility friendly alternative</strong> be it using current (X)<acronym title="HyperText Markup Language">HTML</acronym>+Javascript or using the new HTML5 tools as soon as they are ready. Our friends from <a href="http://mootools.net">Mootools</a>, <a href="http://jquery.com">jQuery</a> and the likes are already doing their part to eradicate Flash from what is rightfully the <acronym title="HyperText Markup Language">HTML</acronym> domain.</p>
<div class="big_sign notice">
<p class="center"><a href="http://blog.gonchuki.com/archives/html5-vs-flash-take-2-what-steve-jobs-doesnt-want-you-to-know/">A follow up of this article has been posted on April 29th 2010</a>.<br /> The comments section for this post will remain closed in favor of moving the discussion to the new article.</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.gonchuki.com/archives/6-reasons-why-the-html5-vs-flash-debate-is-idiotic/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>wordpress 2.5 &#8211; good idea, bad idea</title>
		<link>http://blog.gonchuki.com/archives/wordpress-25-good-idea-bad-idea/</link>
		<comments>http://blog.gonchuki.com/archives/wordpress-25-good-idea-bad-idea/#comments</comments>
		<pubDate>Fri, 18 Apr 2008 16:04:19 +0000</pubDate>
		<dc:creator>gonchuki</dc:creator>
				<category><![CDATA[metablogging]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://blog.gonchuki.com/?p=21</guid>
		<description><![CDATA[Blog software upgrades are becoming more frequent than real content on this blog, so I guess it&#039;s a good time for a small review on WP 2.5. Let me start by telling this will be a mix on ranting, praising and random  bashing, so get tight on your seats and let&#039;s begin.

Navigation
Good Idea
The interface [...]]]></description>
			<content:encoded><![CDATA[<p>Blog software upgrades are becoming more frequent than real content on this blog, so I guess it&#039;s a good time for a small review on WP 2.5. Let me start by telling this will be a mix on ranting, praising and random  bashing, so get tight on your seats and let&#039;s begin.<br />
<span id="more-21"></span></p>
<h3 class="section">Navigation</h3>
<h4 class="subsection good">Good Idea</h4>
<p><strong>The interface overhaul.</strong> Old WordPress admin was really boring and suffered a lot from <a href="http://www.interaction-design.org/encyclopedia/featuritis_and_creeping_featurism.html">featuritis</a>, something that all big software suffers but the normal tendency is to redesign the interface when things get out of control. That time has come, and the new interface of the admin is really pleasant to use and almost perfectly organized.</p>
<h4 class="subsection bad">Bad Idea</h4>
<p><strong>The design tab should not be primary.</strong> Blogs don&#039;t change design as frequent as one changes it&#039;s own underwear (unless you are an extreme geek stereotype that doesn&#039;t even know the meaning of the word &#034;laundry&#034;, but that&#039;s a topic for another post). Even with the upgrade to 2.5, I guess I won&#039;t be touching that tab except for curiosity. The design tab should have been left at the top right, just next to settings and plugins.</p>
<h3 class="section">Plugins</h3>
<h4 class="subsection good">Good Idea</h4>
<p><strong>You can now upgrade plugins without manually uploading files.</strong> Great move, automatic upgrade of plugins is one of the most important functionalities that were missing. For heavy loaded blogs with tons of plugins this is a bless, no more downloading of the zip just to manually re-upload the files to the host.</p>
<div class="center append_to_top"><img src="http://blog.gonchuki.com/wp-content/uploads/2008/04/cforms_plugin.png" alt="new plugin upgrade interface" /><span class="caption">the new plugin upgrade interface</span></div>
<h4 class="subsection bad">Bad Idea</h4>
<p><strong>The plugin upgrade log screen is terrible, and the interface too</strong> I can not guess how they ended with this current screen, it&#039;s completely washed out and not really useful for the average Joe. I certainly expected a lot more from <a href="http://www.happycog.com">Happy Cog</a>. Worst part is, it would only have taken 5 minutes to give it proper styles and at least look like a real log screen.</p>
<div class="center"><img src="http://blog.gonchuki.com/wp-content/uploads/2008/04/upgrade_plugin.png" alt="bad idea, good idea" /><span class="caption">bad idea, good idea</span></div>
<h4 class="subsection great">A Better Idea</h4>
<p>While we are at it, here&#039;s another short suggestion: <strong>how about using ajax?</strong> click the upgrade link, a throbber replaces the link, and then a nice &#034;success&#034; status message replaces the whole row. <em>badabing!</em> that&#039;s what I would call a friendly one click upgrade process. I mean, is there a real need for Mr. Average Joe to read the log on what is happening in the background?</p>
<div class="center append_to_top"><img src="http://blog.gonchuki.com/wp-content/uploads/2008/04/plugin_ajax.png" alt="" /><span class="caption">Mr. Average Joe would be really pleased to see this happening!</span></div>
<p></p>
<h3 class="section">Widgetized Sidebar</h3>
<h4 class="subsection good">Good Idea</h4>
<p><strong>New widgets, and a usable new interface.</strong> The widgetized sidebar was one of the worst implemented features in previous wordpress versions, and (at least to me) it was kind of useless as I always ended manually editing de sidebar.php file. All that has ended with the new interface and I give it a great welcome.</p>
<h4 class="subsection bad">Bad Idea</h4>
<p><strong>The <acronym title="Really Simple Syndication">RSS</acronym> widget still comes with broken code.</strong> All the work you do on the front end is not good if you still keep the garbage at the back end. Is there a reason for one to want to have an orange background on the <acronym title="Really Simple Syndication">RSS</acronym> icon and make it be exactly 14&#215;14?</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;img</span> <span style="color: #000066;">style</span>=<span style="color: #ff0000;">'background:orange;color:white;border:none;'</span> <span style="color: #000066;">width</span>=<span style="color: #ff0000;">'14'</span> <span style="color: #000066;">height</span>=<span style="color: #ff0000;">'14'</span> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">'$icon'</span> <span style="color: #000066;">alt</span>=<span style="color: #ff0000;">'RSS'</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span></pre></div></div>

<p>Hey Mr. WordPress, would you please let me customize my theme as I like?<br />
The outcome: I ended manually editing widgets.php (with a similarly hackish approach ^_^) to add my <a href="http://gonchuki.tumblr.com">tumblr garbage</a> to the sidebar.</p>
<h3 class="section">Final Words and Miscellanea</h3>
<p>All in all, WordPress 2.5 has been a great step forward. Other things I liked are the new option to have full text in the <acronym title="Really Simple Syndication">RSS</acronym> (I know I will have one more reader now, right? ;) ), the new compose screen is a lot cleaner, the permalink edit while creating the entry is a bless, and overall the admin interface just feels right. Let&#039;s hope however that next release comes with some more polishment as there are still lots of rough edges and they are not as complicated to solve. And let&#039;s not forget, <a href="http://blog.gonchuki.com/archives/the-perils-of-editing-a-wordpress-theme#undo">there&#039;s still no fricking undo</a>!</p>]]></content:encoded>
			<wfw:commentRss>http://blog.gonchuki.com/archives/wordpress-25-good-idea-bad-idea/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>the perils of editing a wordpress theme</title>
		<link>http://blog.gonchuki.com/archives/the-perils-of-editing-a-wordpress-theme/</link>
		<comments>http://blog.gonchuki.com/archives/the-perils-of-editing-a-wordpress-theme/#comments</comments>
		<pubDate>Mon, 30 Jul 2007 22:10:03 +0000</pubDate>
		<dc:creator>gonchuki</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://blog.gonchuki.com/archives/the-perils-of-editing-a-wordpress-theme/</guid>
		<description><![CDATA[let me tell you something: editing a wordpress theme using the wordpress interface plainly sucks.
And no, it&#039;s not a problem of being a newbie in wordpress, it&#039;s just that there&#039;s too much duplicated code revolving on the structure, at least on the default Kubrick theme that is supposed to be the one that shows off [...]]]></description>
			<content:encoded><![CDATA[<p>let me tell you something: editing a <a href="http://wordpress.org">wordpress</a> theme using the wordpress interface plainly sucks.</p>
<p>And no, it&#039;s not a problem of being a newbie in wordpress, it&#039;s just that there&#039;s too much duplicated code revolving on the structure, at least on the default Kubrick theme that is supposed to be the one that shows off most of wordpress &#034;features&#034;.<br />
<span id="more-3"></span></p>
<h3 class="section">the first challenge:</h3>
<p> adding a wrapper around the content and sidebar.<br />
This could have been easy, <em>if only I didn&#039;t have to dig through six different files and manually inject the same code on each one of them</em>. Yay for templates!<br />
Come on wordpress staff, you can do it better, i want my header, footer and basic layout on *every* page of the site *unless* I specify the contrary, it&#039;s a big let down if my &#034;templated system&#034; makes me go through every top-level page to inject two lines of code on each of them. Learn from <a href="http://www.rubyonrails.org/">Ruby-on-Rails</a>, <a href="http://cakephp.org/">CakePHP</a> or <a href="http://21degrees.com.au/products/symphony/">Symphony</a>, where you specify your top-level layout and it&#039;s used site-wide unless you direct the framework not to do it.</p>
<h3 class="section">on the second day, God created blog entries:</h3>
<p> and did it the wrong way. The same issue as with the layout, was now worsened with entries. I had to dig through five different files to *try* to unify the way entries were to be displayed on every page of my site. Appart from being tiresome it&#039;s horribly error prone, what get us to the third point&#8230;</p>
<h3 class="section" id="undo">there&#039;s no f*cking undo:</h3>
<p> if you mistakenly hit the &#034;update file&#034; button in the middle of an edit while there are still errors to fix there&#039;s no way to go back. Even worse, I was editing my <acronym title="Cascading Style Sheets">CSS</acronym> externally and copy&#038;pasting on the wordpress admin the whole stuff&#8230; all was fun and games until I accidentally overwritten the Main Index Template. Poof! all my previous edits gone without a single undo button. How hard could have been to implement an undo feature like the one in <a href="http://mail.google.com/">gmail</a>?</p>
<div class="center append_to_top"><img src="http://blog.gonchuki.com/wp-content/uploads/2007/07/wp_undo.png" alt="" /><span class="caption">now *that* is something to write home about</span></div>
<h3 class="section">the sad conclusion:</h3>
<p> after going through all of this I figured out I went with the wrong blogging software [duh!].<br />
However, it&#039;s too late to go back and start from scratch. May be next time (or when free time is on my side again) I will <a href="http://www.s9y.org/">choose</a> <a href="http://www.typosphere.org/">another</a> <a href="http://www.movabletype.org/">blogging</a> <a href="http://mephistoblog.com/">software</a> <a href="http://www.textpattern.com/">suite</a>.<br />
And yes, I think the same as you: this is the saddest attempt at a first blog entry in the whole history of the blogosphere&#8230; so be it! :)</p>]]></content:encoded>
			<wfw:commentRss>http://blog.gonchuki.com/archives/the-perils-of-editing-a-wordpress-theme/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
