<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0"><channel><title>thebeebs</title><link>http://blogs.msdn.com/b/thebeebs/</link><description>I collect information and write tutorials about projects I’m working on a web technologies that interest me.</description><dc:language>en-US</dc:language><generator>Telligent Community 5.6.583.21163 (Build: 5.6.583.21163)</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Thebeebs" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="thebeebs" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><title>Is Pinterest’s HTML5 app short-changing users?</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/02/21/is-pinterest-s-html5-app-short-changing-users.aspx</link><pubDate>Tue, 21 Feb 2012 16:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10270580</guid><dc:creator>thebeebs</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10270580</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10270580</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/02/21/is-pinterest-s-html5-app-short-changing-users.aspx#comments</comments><description>&lt;p&gt;It seems you virtually can’t move online without running into an article on &lt;a href="http://ubelly.com/2011/04/pinterest-design-inspiration-in-a-new-way/"&gt;Pinterest&lt;/a&gt;. As a platform, it’s certainly captured people’s (or at least the blogosphere’s) imagination. Core to the attraction is just how easy it makes sharing the stuff we all find every day on the web.&lt;/p&gt;  &lt;p&gt;To its credit, Pinterest has taken &lt;a href="http://blogs.msdn.com/b/thebeebs/archive/2012/01/11/html5-in-2012-the-year-of-mobile-first.aspx"&gt;a decidedly mobile first approach&lt;/a&gt; to developing the site – they understand that people find stuff on the move and want to share it instantly. They have a smart IOS app which gives all the functionality of the site and makes good use of the limited screen real estate. But at the same time they admit that they are lagging behind in developing a similar app for other platforms.&lt;/p&gt;  &lt;p&gt;So, in &lt;a href="http://blog.pinterest.com/post/10144144538/pinterest-mobile"&gt;a post on the Pinterest blog&lt;/a&gt;, they’ve recently announced &lt;a href="http://m.pinterest.com/"&gt;a new HTML5 mobile version of the site&lt;/a&gt; which delivers a fair amount of the features most users need:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;What we’re launching today is a streamlined experience for iOS and Android. You can view pins and boards, look at profiles, follow people and of course, repin all the things you find. In the coming weeks, we’ll be adding the ability to search and browse by category, edit pins, and create new boards. Support for other touch based devices like Windows Phone 7 and Blackberry will be coming soon. Of course, we’ll be fixing bugs as we find them as well.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;All well and good. Until that is you take a look at the comments on the post. This, apparently, is not what users want – not at all e.g:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;A mobile version is not the same as an app. An Android App is definitely needed.&lt;/em&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The question, of course, is why?&lt;/p&gt;  &lt;p&gt;From where I’m standing there are a number of issues:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;These days, good enough just isn’t good enough for many users – not when it’s so easy to see what they’re missing out in comparison to a native app&lt;/li&gt;    &lt;li&gt;There is still a perception that web apps are second class citizens – a lingering hangover from the days of WAP&lt;/li&gt;    &lt;li&gt;Companies seem to think that HTML5 is the &lt;a href="http://blogs.msdn.com/b/thebeebs/archive/2012/01/25/is-html5-cheaper-to-develop-with.aspx"&gt;cheap alternative to developing a native app&lt;/a&gt; – this leads to them assigning too little budget and making some unavoidable compromises&lt;/li&gt;    &lt;li&gt;And, for their part, developers typically have less experience developing apps in-browser&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;It doesn’t have to be this way. The work that the likes of the &lt;a href="http://apps.ft.com/ftwebapp/"&gt;FT&lt;/a&gt; and &lt;a href="http://lanyrd.com/mobile/"&gt;Lanyard &lt;/a&gt;have done on their HTML5 apps is outstanding. They deliver an utterly comparable experience to a native app. So it’s certainly possible.&lt;/p&gt;  &lt;p&gt;Of course, Pinterest’s effort is a work in progress. As they put in their post, more features are coming. So it remains to be seen whether they can deliver and turn the criticism on its head. If they can, they’ll gain an easy to update app that runs across multiple devices. If not, they may find their time in the sun comes to a premature end.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10270580" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/lDwAsMCRMds" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/article/">article</category></item><item><title>Overlaying data on a video</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/02/21/overlaying-data-on-a-video.aspx</link><pubDate>Tue, 21 Feb 2012 16:07:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10270553</guid><dc:creator>thebeebs</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10270553</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10270553</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/02/21/overlaying-data-on-a-video.aspx#comments</comments><description>&lt;p&gt;I got asked by &lt;a href="https://twitter.com/#!/socialtechno"&gt;Gordon Rae&lt;/a&gt; on twitter today:&lt;/p&gt;  &lt;blockquote class="twitter-tweet" data-in-reply-to="171972756261453825"&gt;   &lt;p&gt;@&lt;a href="https://twitter.com/thebeebs"&gt;thebeebs&lt;/a&gt; Martin, can you recommend a good tutorial for overlaying data on video in HTML5 ?&lt;/p&gt; — Gordon Rae (@socialtechno) &lt;a href="https://twitter.com/socialtechno/status/171976267657256960" data-datetime="2012-02-21T15:15:12+00:00"&gt;February 21, 2012&lt;/a&gt;&lt;/blockquote&gt; &lt;script src="http://blogs.msdn.com//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;  &lt;p&gt;Firstly beware that just because a browser supports HTML5 video it might not be capable of overlays… this is true particularly on mobile devices. This is because to save battery many HTML5 capable mobile browsers pass the video playing over to the phones native player. These players are external to the web page and so can’t display DOM elements over the video.&lt;/p&gt;  &lt;p&gt;On most desktop browsers, tablets and a small selection of phones it is possible to place content over the top of the video element.&lt;/p&gt;  &lt;p&gt;In general most people want to synchronise DOM elements to appear and disappear at certain points during the video. This can be achieved in JavaScript by creating a loop that polls the current position of the video. When the video reaches a certain position the developer fires events. These events could hide or show content or perhaps change a textual element on the screen.&lt;/p&gt;  &lt;p&gt;If you don’t fancy writing your own framework to handle this you could use &lt;a href="http://popcornjs.org/popcorn-101"&gt;Popcorn.js&lt;/a&gt;&amp;#160; there is a great tutorial on the framework over on &lt;a href="http://net.tutsplus.com/articles/news/a-look-at-popcorn/"&gt;net tuts&lt;/a&gt; which shows how easy it is to synchronise video and your content.&lt;/p&gt;  &lt;p&gt;If you are just looking to add subtitles to videos then a player like leanback supports the track element (by using a JavaScript Polyfil since no current browsers support the feature natively)&amp;#160; &lt;a title="http://www.leanbackplayer.com/example_subtitles.html" href="http://www.leanbackplayer.com/example_subtitles.html"&gt;http://www.leanbackplayer.com/example_subtitles.html&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10270553" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/9I56GnuH2_Y" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/html5at5/">html5at5</category></item><item><title>Gradients in Internet Explorer</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/02/20/gradients-in-internet-explorer.aspx</link><pubDate>Mon, 20 Feb 2012 17:39:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10269834</guid><dc:creator>thebeebs</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10269834</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10269834</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/02/20/gradients-in-internet-explorer.aspx#comments</comments><description>&lt;p&gt;Last week at the &lt;a href="http://thedigitalbarn.co.uk/"&gt;digital barn&lt;/a&gt; I gave a talk called “The Way the web should be” in it I talked about the importance of Web Standards in the development of IE. In a follow up blog post &lt;a href="http://www.twitter.com/devolute"&gt;Ian Parr&lt;/a&gt; made an interesting point:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;One point that I think MS people sometimes miss is that it’s one thing having comparable features in browsers, but it’s another thing all-together ensuring that these features can be implemented consistently. I think a great example of this is implementing a linear gradient with opacity using CSS3. It’s great that you can now do this in CSS but if you look at the difference between doing this in Firefox and Webkit (with a nice tidy rgba value) and IE9 (with a confusing 8-digit hex code… thing) then it shows there is still one way for IE and one way for everyone else.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I understand Ian’s frustration on this one, and just wanted to share my own views on this.&lt;/p&gt;  &lt;p&gt;It’s worth saying straight out of the gate, our implementation of linear gradients in IE10 is experimental and does not necessarily reflect what will appear in the final version of the browser. This is indicated by the vendor prefix –ms that is applied to the attribute. We put the vendor prefix for one of 2 reasons, we recognise that our implementation is not complete or we think the specification is likely to change.&lt;/p&gt;  &lt;p&gt;Secondly as far as I am aware you can happily use RGBA values for transparency of linear gradients &lt;a href="http://lab.thebeebs.co.uk/gradients/"&gt;as this quick demo shows&lt;/a&gt; (works, in IE10 and latest versions of FF,Chrome, Opera and Safari). There has &lt;a href="http://lists.w3.org/Archives/Public/www-style/2011Jun/0639.html"&gt;been some discussion&lt;/a&gt; around the specifics of over on the W3C mailing list but as far as we are aware platform preview 4 currently supports linear gradients in the same way WebKit, Opera and Mozilla does.&lt;/p&gt;  &lt;p&gt;I completely&amp;#160; agree with Ian with Ian's sentiment, however, and have said &lt;a href="http://ubelly.com/2011/03/twitter-qa-from-state-of-the-browser/"&gt;many times before&lt;/a&gt; “a bad implementation is worse than no implementation” Implementing stuff which wasn’t ready or properly thought out was the exact thing we did wrong with IE6…. And we are still paying for it 11 years later. &lt;/p&gt;  &lt;p&gt;If you want to play around with CSS3 Gradients the IE team have put together this rather nice &lt;a href="http://ie.microsoft.com/testdrive/Graphics/CSSGradientBackgroundMaker/Default.html"&gt;CSS3 gradient maker&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10269834" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/4QK32VXgIg8" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/html5at5/">html5at5</category></item><item><title>Are you developing for all browsers or just your favourite?</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/02/20/are-you-developing-for-all-browsers-or-just-your-favourite.aspx</link><pubDate>Mon, 20 Feb 2012 12:33:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10269697</guid><dc:creator>thebeebs</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10269697</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10269697</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/02/20/are-you-developing-for-all-browsers-or-just-your-favourite.aspx#comments</comments><description>&lt;p&gt;The choice of browsers today is wider than ever before. And, for the most part, if you develop for one modern browser, your site will pretty much work on all the others (albeit with a little tweaking here and there). It’s pretty amazing, and this browser interoperability is down to the great work standards bodies and standards advocates have been doing since the beginning of the web.&lt;/p&gt;  &lt;p&gt; However, there is one area that is causing some concern amongst standards advocates and that is – vendor prefixes.&lt;/p&gt;  &lt;p&gt;If you want some background, Bruce Lawson has &lt;a href="http://www.brucelawson.co.uk/2012/on-the-vendor-prefixes-problem/"&gt;a pretty comprehensive post&lt;/a&gt; on the subject as does &lt;a href="http://www.ubelly.com/2012/02/vendor-prefixes-the-good-the-bad-and-the-ugly/"&gt;Peter Gasston over on Ubelly&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Essentially for more experimental features, each vendor uses its own version of the code and prefixes it with an identifier (e.g. -ms-linear-gradient, –moz-linear-gradient, –webkit-linear-gradient). This prefix demonstrates that it is an experimental interpretation of the specification (linear-gradient). As such, it’ll be ignored by other browser vendors.&lt;/p&gt;  &lt;p&gt;However, &lt;a href="http://blogs.msdn.com/b/thebeebs/archive/2012/02/06/turning-our-noses-up-at-browser-sniffing.aspx"&gt;as with browser sniffing&lt;/a&gt;, this can have unintended results. Developers often use the experimental code released by an individual browser, but because it’s&amp;#160; not implemented by all browsers at that point in time they only implement one browsers interpretation. &lt;/p&gt;  &lt;p&gt;WebKit is often first out of the gate with a specification, and so many developers find themselves implementing WebKit first. Due to release timings and pressure to put sites live, it’s often the case that developers don’t get the chance to enable the experimental features for other browsers.&lt;/p&gt;  &lt;p&gt;This means that while the site may look perfect on one browser, it can look broken on another (even though that browser is perfectly capable of displaying the element as the developer intended).&lt;/p&gt;  &lt;p&gt;The question is, what to do about it. There are two sides to that. 1. What can browser vendors do and 2, What can developers do&lt;/p&gt;  &lt;p&gt;In the case of browser vendors there have been a number of suggestions:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;It’s been suggested that -webkit vendor prefixes could be adopted by the other browsers&lt;/li&gt;    &lt;li&gt;Likewise, some have advocated a move to –beta or –experimental instead to create a single cross-browser prefix for experimental code&lt;/li&gt;    &lt;li&gt;Or all browsers could accept any prefix which would achieve the same effect&lt;/li&gt;    &lt;li&gt;Alternatively, the answer could simply lie in getting developers to fix or update their code as Daniel Glazman has suggested&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;What I’m doing as a developer:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;With production websites I try to avoid using vendor prefixes that have only been implemented by one browser vendor. &lt;/li&gt;    &lt;li&gt;If I am going to pass my code over to someone else… I will try to avoid vendor prefixes, because as the implementations change I won’t be able to go back and fix my code.&lt;/li&gt;    &lt;li&gt;If I am using a vendor prefix I will, where possible, place it in a separate CSS file. I use a bundler that combines them at build into a single CSS file. This is helpful because it means all of my experimental code is in one single file, separate from the standard CSS.&lt;/li&gt;    &lt;li&gt;I use all of the vendor prefixes, for each feature. Even if the particular vendor doesn't have an implementation of that feature.&lt;/li&gt;    &lt;li&gt;I use the standard un-prefixed version of the feature, even if the feature hasn’t been standardised yet.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The real answer, long term, is for us in the browser community to work together to solve the issue. It’s not a quick fix, sure. But, we’ve already taken the first steps and I’m hopeful we’ll deliver something that’s fully in line with the open web.&lt;/p&gt;  &lt;p&gt;Until then we all need to do whatever we can to ensure sites are coded for every browser, not just the developer’s favourite.&lt;/p&gt;  &lt;h2&gt;Further reading&lt;/h2&gt;  &lt;p&gt;There are a whole bunch of posts around vendor prefixes. In addition to those mentioned above, check out:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href="http://christianheilmann.com/2012/02/09/now-vendor-prefixes-have-become-a-problem-want-to-help-fix-it/"&gt;Now vendor prefixes have become a problem, want to help fix it?&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://robert.ocallahan.org/2012/02/alternatives-to-supporting-webkit.html"&gt;Alternatives to supporting -webkit prefixes in other engines&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.glazman.org/weblog/dotclear/index.php?post/2012/02/09/CALL-FOR-ACTION%3A-THE-OPEN-WEB-NEEDS-YOU-NOW"&gt;Call for action: the open web needs you *now*&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://felipe.wordpress.com/2012/02/02/a-proposal-to-drop-browser-vendor-prefixes/"&gt;A proposal to drop browser vendor prefixes&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://news.cnet.com/8301-30685_3-57373764-264/w3c-co-chair-apple-google-power-causing-open-web-crisis/"&gt;W3C co-chair: Apple, Google power causing Open Web crisis&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.webmonkey.com/2012/02/webkit-isnt-breaking-the-web-you-are/"&gt;WebKit isn’t breaking the web. You are&lt;/a&gt;&lt;/li&gt; &lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10269697" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/XX3SFpea_08" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/article/">article</category></item><item><title>Using App Cache</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/02/17/using-app-cache.aspx</link><pubDate>Fri, 17 Feb 2012 17:01:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10269099</guid><dc:creator>thebeebs</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10269099</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10269099</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/02/17/using-app-cache.aspx#comments</comments><description>&lt;p&gt;There are many new features in HTML5 but in think that &lt;a href="http://www.w3.org/TR/html5/offline.html"&gt;App Cache&lt;/a&gt; is potentially one of the most important. App Cache allows you to create a manifest file that details all of the files your application uses offline. When you visit your website with no internet connection the files that you list will be available to your application.&lt;/p&gt;  &lt;p&gt;Over on the IE blog they have a great write up of how they used App cache to build an offline &lt;a href="http://blogs.msdn.com/b/ie/archive/2011/09/27/building-offline-experiences-with-html5-appcache-and-indexeddb.aspx"&gt;recipe book&lt;/a&gt; it details how they used app cache and how you can use it in your applications too.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10269099" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/S5Be71vZtGg" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/html5at5/">html5at5</category></item><item><title>8 things you should know before building an HTML5 app</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/02/15/8-things-you-should-know-before-building-an-html5-app.aspx</link><pubDate>Wed, 15 Feb 2012 08:01:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10266550</guid><dc:creator>thebeebs</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10266550</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10266550</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/02/15/8-things-you-should-know-before-building-an-html5-app.aspx#comments</comments><description>&lt;p&gt;A few days ago, &lt;a href="http://www.twitter.com/sethporges"&gt;Seth Porges&lt;/a&gt; put up an interesting post on Mashable: &lt;a href="http://mashable.com/2012/02/02/how-to-make-app/"&gt;8 Things You Should Know Before Building a Mobile App&lt;/a&gt;. While, as the name implies, Seth’s post focused on native apps, it got me thinking – how does his 8 questions relate to creating an HTML5 app? So here goes...&lt;/p&gt;  &lt;p&gt;&lt;b&gt;1. What does it cost to make an app?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Overall, with HTML5 the costs will be broadly similar to a native app. However, you may find your people costs come down as it’s generally easier to find HTML developers than those for native apps. Plus, the resulting application will work across multiple devices – with some customisation – which could bring your total development costs down further. I wrote a more in-depth summary of my opinions &lt;a href="http://blogs.msdn.com/b/thebeebs/archive/2012/01/25/is-html5-cheaper-to-develop-with.aspx"&gt;in a blog post&lt;/a&gt; a few weeks ago.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;2. What should you charge for your app?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;It is certainly more difficult to charge for an HTML5 app. But then again, go ask most Android developers whether they’re seeing revenues from their efforts (alternatively, &lt;a href="http://www.bbc.co.uk/news/technology-16066262"&gt;take a look at this article&lt;/a&gt;). As with Android, the solution will probably involve either an ad-supported or freemium model.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;3. When will you get paid?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;This very much depends on the model you adopt (see above) but you probably don’t want to hold your breath if you expect to be paid just for download.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;4. How do you write your iTunes description?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The simple, flippant answer is: &lt;i&gt;you don’t&lt;/i&gt;. But this, of course raises a wider issue of how you get your app in front of people. There are now a burgeoning number of app stores such as Intel’s &lt;a href="http://www.appup.com/index"&gt;AppUp Center&lt;/a&gt;, &lt;a href="http://www.zeewe.com/zeewe/web/apps/"&gt;ZeeWe&lt;/a&gt; and &lt;a href="http://openappmkt.com/"&gt;OpenAppMkt&lt;/a&gt; among others. But certainly, you’ll need to give careful consideration to how you market your app and create the necessary buzz and recommendations. The upside of course is that you won’t have to give 30% of your revenues to Apple or demand that users jailbreak their phones.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;5. What’s the best way to beta test?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The good news here is that pretty much anyone with a browser can test your app. All you need to do is make it available to them. If you don’t have a test team on hand then there are numerous companies online who will test your mobile sites across numerous devices for relatively small fees. As I haven’t used any of these online services I can’t recommend any but if you have a favourite do let us know in the comments.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;6. What happens when you get featured on iTunes?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Well, again, you won’t. Although you may get featured if you go to one of the HTML5 app stores listed above. Of course the real question here is about scale – if &lt;a href="http://twitter.com/ladygaga"&gt;Lady Gaga&lt;/a&gt; tweets about your app, will you be able to cope? So it pays to ensure you’re hosted somewhere that will deal with hundreds, thousands or millions of downloads. A cloud solution such as &lt;a href="http://www.windowsazure.com/"&gt;Azure&lt;/a&gt; or &lt;a href="http://aws.amazon.com/ec2/"&gt;Amazon&lt;/a&gt; should be part of your launch plans.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;7. How do you get press?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Fortunately, just now, simply developing in HTML5 has a certain newsworthy aspect about it. You’re already a bigger fish in a smaller sea. It won’t last forever of course, but now is the time to strike while the iron’s hot.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;8. How do you avoid the spam?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;This is probably not an issue you’ll face just yet. Spammers are far more focused on IOS developers.&lt;/p&gt;  &lt;p&gt;So those are my eight. How about you? If you’ve built an HTML5 app, what do you wish you knew back then that you know now?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10266550" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/wZ0xiy8qcZA" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/article/">article</category></item><item><title>A look at the new CSS3 units of measure</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/02/13/a-look-at-the-new-css3-units-of-measure.aspx</link><pubDate>Mon, 13 Feb 2012 17:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10266542</guid><dc:creator>thebeebs</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10266542</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10266542</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/02/13/a-look-at-the-new-css3-units-of-measure.aspx#comments</comments><description>&lt;p&gt;So if you have been developing for any length of time then you are probably familiar with ‘em’, ‘%’and ‘px’ as units of measurements in CSS. As part of the CSS3 specification there are a few new&amp;#160; units of measurement that I think are worth casting an eye over.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;‘&lt;a href="http://www.w3.org/TR/css3-values/#ex-unit"&gt;&lt;code&gt;ex&lt;/code&gt;&lt;/a&gt;’ This represents the height of a lowercase character in the elements font, it’s sometimes referred to as the x-height because in many cases it is equal to the height of the lower case x, it resents about half size of a font’s height. The usefulness of this measurement is questioned in this &lt;a href="http://www.google.co.uk/url?sa=t&amp;amp;rct=j&amp;amp;q=&amp;amp;esrc=s&amp;amp;frm=1&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CCYQFjAA&amp;amp;url=http%3A%2F%2Fsbpoley.home.xs4all.nl%2Fwebmatters%2Femex.html&amp;amp;ei=UrBCT778BMiy0QWOv_GPDw&amp;amp;usg=AFQjCNEuGBG-7Mm0rCXVHvborgVw4Xd3mA&amp;amp;sig2=KhwXT6abySoXf4XX8T8V7A"&gt;blog post&lt;/a&gt;.&lt;/li&gt;    &lt;li&gt;‘&lt;a href="http://www.w3.org/TR/css3-values/#ch-unit"&gt;&lt;code&gt;ch&lt;/code&gt;&lt;/a&gt;’ width of the &amp;quot;0&amp;quot; glyph in the element's font. At first this might not appear to be that useful, but in monospace fonts it can be used to accurately measure text. Here is a real world use &lt;a href="http://lea.verou.me/2012/02/simpler-css-typing-animation-with-the-ch-unit/"&gt;for this measurement&lt;/a&gt;.&lt;/li&gt;    &lt;li&gt;‘&lt;a href="http://www.w3.org/TR/css3-values/#rem-unit"&gt;&lt;code&gt;rem&lt;/code&gt;&lt;/a&gt;’ font size of the root element. In practical terms the root element is the HTML element. This way you can set a font size on the HTML element and then use a rem to size a font relative to that element anywhere in the document. There is a nice &lt;a href="http://snook.ca/archives/html_and_css/font-size-with-rem"&gt;blog post here&lt;/a&gt; detailing it’s real world use.&lt;/li&gt;    &lt;li&gt;‘&lt;a href="http://www.w3.org/TR/css3-values/#vw-unit"&gt;&lt;code&gt;vw&lt;/code&gt;&lt;/a&gt;’ viewport's width – You can resize elements based upon the width of the viewport (the rectangular viewing region of the browser) that is currently viewing the website.&amp;#160; It’s use is &lt;a href="http://snook.ca/archives/html_and_css/vm-vh-units"&gt;discussed here&lt;/a&gt;.&lt;/li&gt;    &lt;li&gt;‘&lt;a href="http://www.w3.org/TR/css3-values/#vh-unit"&gt;&lt;code&gt;vh&lt;/code&gt;&lt;/a&gt;’ viewport's height&amp;#160; - You can resize elements based upon the height of the viewport that is currently viewing the website. It’s use is &lt;a href="http://snook.ca/archives/html_and_css/vm-vh-units"&gt;discussed here&lt;/a&gt;.&lt;/li&gt;    &lt;li&gt;‘&lt;a href="http://www.w3.org/TR/css3-values/#vm-unit"&gt;&lt;code&gt;vm&lt;/code&gt;&lt;/a&gt;’ minimum of the viewport's height and width – This tells you what is smaller out of either vw or vh. In the specification there is currently an issue which asks if this is still required. Since a developer could simply use the new &lt;a href="http://www.w3.org/TR/css3-values/#calc"&gt;min function&lt;/a&gt; instead. e.g min(1vh, 1vw); &lt;/li&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10266542" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/JIPl68irQ-E" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/html5at5/">html5at5</category></item><item><title>Like apps? Like Facebook?</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/02/13/like-apps-like-facebook.aspx</link><pubDate>Mon, 13 Feb 2012 08:04:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10266551</guid><dc:creator>thebeebs</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10266551</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10266551</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/02/13/like-apps-like-facebook.aspx#comments</comments><description>&lt;p&gt;How did you find the mobile apps you use the most? I’m guessing that some of you came across them on a blog or in a mag somewhere (10 Apps Every Developer Should Own). You might have found others browsing through an app store of whatever flavour. But, if you’re anything like me, you’ll have found quite a few simply through the recommendations of your friends (both real and virtual).&lt;/p&gt;  &lt;p&gt;Considering how many thousands of apps there are, they can be surprisingly tricky to find. In my experience, the search function of most app stores leaves something to be desired (and I’m being kind here). And even though most stores feature user reviews, it can still be hard to distinguish the reality between the ‘This is the best app EVER!!!’ reviews and the ‘This is total rubbish, I want my 69p back or I’m going to sue!!!’ ones.&lt;/p&gt;  &lt;p&gt;So what about Facebook as a platform for finding (and distributing) new apps? &lt;a href="http://techcrunch.com/2012/02/05/news-feed-app-bookmarks/"&gt;Techcrunch&lt;/a&gt; recently pointed to a new feature Facebook are trying out – placing links to third-party apps at the top of its mobile newsfeed instead of hiding them down the bottom. This, of course, follows on from the &lt;a href="http://techcrunch.com/2011/10/10/one-app-to-rule/"&gt;launch last October&lt;/a&gt; of its mobile app platform (which offers the company 30% of the revenues generated by in-app purchases).&lt;/p&gt;  &lt;p&gt;So is this the answer for developers? Put your app on Facebook, run a bit of promotion and let the social world &lt;b&gt;Like&lt;/b&gt; it to stardom? It’s an appealing idea.&lt;/p&gt;  &lt;p&gt;However, as Techcrunch points out, Facebook’s app platform hasn’t exactly been a roaring success so far. So is it destined to go the same way as their previous Facebook Marketplace idea? Or could we see the same stellar performance as social gaming?&lt;/p&gt;  &lt;p&gt;Putting my developer hat on, the question for me is: Will Facebook give my apps access to a larger audience than they’d get elsewhere? Certainly the user numbers are there but what about engagement? And crucially, can they harness the recommendations that are lacking on other platforms?&lt;/p&gt;  &lt;p&gt;If they manage this, they could become a serious contender for app distribution. But I’m not holding my breath just yet.&lt;/p&gt;  &lt;p&gt;What about you? What would you need to see on Facebook before you’d commit to putting your apps on there?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10266551" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/JXu6Qj6Fw7A" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/article/">article</category></item><item><title>10 myths holding HTML5 back</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/02/08/10-myths-holding-html5-back.aspx</link><pubDate>Wed, 08 Feb 2012 08:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10263778</guid><dc:creator>thebeebs</dc:creator><slash:comments>5</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10263778</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10263778</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/02/08/10-myths-holding-html5-back.aspx#comments</comments><description>&lt;p&gt;While the momentum is certainly with HTML5, for some of us progress can’t happen fast enough. Yet, annoyingly, all too often we find ourselves facing the same old questions and challenges – ones that really have no basis in reality. So in this post, I want to focus on the 10 myths that I have to put down most often. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Myth 1: HTML5 is a Flash-killer&lt;/b&gt; &lt;/p&gt;  &lt;p&gt;It’s not. There are some things that are simply better done in Flash or Silverlight (&lt;a href="http://blogs.msdn.com/b/thebeebs/archive/2011/12/04/five-things-you-can-t-do-with-html5-yet.aspx"&gt;see my earlier post&lt;/a&gt; for details). And it’s not just this, for the foreseeable future there will also be issues simply in finding people with the right skills (at the right price) to develop in HTML5. So while HTML5 will certainly dent the use of Flash, we shouldn’t be digging its grave just yet. The myth holds back HTML5 because it causes unnecessary tension between flash developers and HTML5 developers. The HTML5 movement would benefit from the skills, expertise and creative flair that exists in the Flash community.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Myth 2: Using HTML5 as an Umbrella term is bad.&lt;/b&gt; &lt;/p&gt;  &lt;p&gt;When most people say HTML5 they mean: HTML5, JavaScript, CSS3 and related specifications. Using the wrong language is almost guaranteed to polarize any group of developers. But you know what? Outside of developers, no one cares. So while I agree that if it’s a developer-to-developer conversation, we should try to be specific, we should cut everyone else a break. Because it’s more important that the world has confidence in moving to these new standards rather than getting distracted by developer infighting over semantics.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Myth 3: HTML5 is the next revolution&lt;/b&gt; &lt;/p&gt;  &lt;p&gt;Hand on heart, there’s virtually nothing that can be done in HTML5 that couldn’t be done before. Sure, HTML5 can do it better and IMHO more elegantly but it is better to see it in terms of the latest evolution in the overall web revolution. For one thing, this is more accurate and for another, it’s less scary. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Myth 4: HTML5 doesn’t work in IE&lt;/b&gt; &lt;/p&gt;  &lt;p&gt;Now, you’d expect me to take issue with this one. The truth is that IE9 supports the &lt;a href="http://msdn.microsoft.com/en-gb/ie/ff468705"&gt;HTML5 features that can be used today&lt;/a&gt; and supports them well. IE10 &lt;a href="http://msdn.microsoft.com/library/hh673549.aspx"&gt;supports practically the whole specification&lt;/a&gt; and there is more to come before final release.&amp;#160; In fact IE8 supports a number of features too such as localStorage. With a little bit of care you can create elegant fall backs for older versions of IE. While of course I have a vested interest here, the point is a wider one. Because IE still has so much of the world browser market, this myth gets used as an excuse not to develop in HTML5. The reality is really quite different. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Myth 5: HTML5 won’t be ready until 2022&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Well, no, 2022 was a &lt;a href="http://www.techrepublic.com/blog/programming-and-development/html-5-editor-ian-hickson-discusses-features-pain-points-adoption-rate-and-more/718"&gt;date mentioned in an article back in 2008&lt;/a&gt; but the date for HTML5 to reach &lt;a href="http://en.wikipedia.org/wiki/W3C_recommendation"&gt;W3C Recommendation level&lt;/a&gt; is &lt;a href="http://www.w3.org/2007/03/HTML-WG-charter.html"&gt;2014&lt;/a&gt;.&amp;#160; So does that mean you can’t use HTML5 till 2014? No… This is just the date where there should be 2 browsers with 100% interoperable implementations of the specification. Remy sharp put’s this into perspective &lt;a href="http://html5doctor.com/2022-or-when-will-html-5-be-ready/"&gt;nicely in this article&lt;/a&gt; when he states that CSS 2.1 didn’t become a candidate recommendation until 2009… since Remy's article it went back to working draft in 2010 and then became a W3C Recommendation on 7 June 2011. Did Facebook, Google, YouTube [enter you favourite Site here] wait till 2011 before they started using CSS 2.1? No. Likewise with HTML5 you don’t need to wait until W3C Recommendation. With the current widespread browser support, why wait? &lt;/p&gt;  &lt;p&gt;What’s really important is the user. Can they get a better experience with HTML5? If the answer’s yes, that’s good enough for me. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Myth 6: HTML5 will make websites more/less accessible&lt;/b&gt; &lt;/p&gt;  &lt;p&gt;Fundamentally, it’s developers who make sites accessible. It’s their empathy with users that delivers an accessible site. And that’s not dependent on HTML5. Yet, perversely, this can be used as an excuse to wait. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Myth 7: It’s not possible to develop decent games&lt;/b&gt; &lt;/p&gt;  &lt;p&gt;May I refer you to &lt;a href="http://blogs.msdn.com/b/thebeebs/archive/2012/01/10/cut-the-rope-now-in-html5.aspx"&gt;my post about Cut the Rope&lt;/a&gt;. Seriously, the issue here is that if a game is designed and built in HTML5, it is altogether possible to deliver a really great experience. The issues come when a game is simply ported from somewhere else. Are there better gaming platforms? Sure… Does that make HTML5 a bad gaming platform? No.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Myth 8: HTML5 is the answer to write once, run everywhere&lt;/b&gt; &lt;/p&gt;  &lt;p&gt;Well, it certainly gets us closer. But a better description would be that HTML5 enables us to ‘write once, customise everywhere’. It provides a solid platform to develop from but not a universal panacea that makes all the differences between browsers and devices magically disappear. Touting HTML5 as a panacea creates division between developers and the resultant arguments hold us back from implementing HTML5 today.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Myth 9: There are no tools for HTML5&lt;/b&gt; &lt;/p&gt;  &lt;p&gt;Certainly there’s a lack of major WYSIWYG editors (though they are coming). But this needn’t be a deal breaker. There are masses of code editors available and, at the end of the day, that’s really all you need. My editor of choice is &lt;a href="http://www.microsoft.com/visualstudio/en-gb"&gt;Visual Studio&lt;/a&gt;, a tool I’ve been using for the past 8 years. If you have an editor that works well with JavaScript and HTML, you’re good to go. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Myth 10: HTML5 isn't ready for prime time&lt;/b&gt; &lt;/p&gt;  &lt;p&gt;Right now, most HTML development is simply basic old JavaScript and HTML (i.e. the web stuff that’s worked in browsers for years). If you’re smart you can start mixing in some new HTML5 features for browsers that support it and create web applications that rival native applications. Take a look at &lt;a href="http://www.readwriteweb.com/mobile/2012/01/how-lanyrd-uses-html5-for-a-gr.php"&gt;the new lanyard mobile application&lt;/a&gt; as a great example of this. Seriously prime time. &lt;/p&gt;  &lt;p&gt;Ultimately, the issue with all these myths is that they can act as an unnecessary brake on development and acceptance. And while some issues certainly do exist, let’s focus on the real challenges rather than phantom ones. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10263778" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/1SmQpD2t_g4" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/article/">article</category></item><item><title>Why Don't you need to close tags in HTML5?</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/02/06/why-don-t-you-need-to-self-close-tags-in-html5.aspx</link><pubDate>Mon, 06 Feb 2012 17:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10263725</guid><dc:creator>thebeebs</dc:creator><slash:comments>3</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10263725</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10263725</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/02/06/why-don-t-you-need-to-self-close-tags-in-html5.aspx#comments</comments><description>&lt;p&gt;HTML5 is a much more forgiving when it comes to Mark-up than XHTML. With XHTML you needed to make sure that each opening HTML tag had it’s own closing tag. So you would always close an image tag like this:&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:cc03afa0-e864-48b3-accd-6fe95efc69a2" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: html;"&gt;&amp;lt;img alt="A pretty car" src="image.jpg" /&amp;gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;If you forgot to close the tag, like this:&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:1ae70f72-413f-42bc-8abc-056fd9937927" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: html;"&gt;&amp;lt;img alt="A pretty car" src="image.jpg" &amp;gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;And you tried to validate the document then you would end up with an error like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-93-metablogapi/0702.image_5F00_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="An error message from the W3C Validator" border="0" alt="An error message from the W3C Validator" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-93-metablogapi/8637.image_5F00_thumb.png" width="684" height="106" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;However, try the same thing with the &lt;a href="http://validator.w3.org"&gt;W3C HTML5&lt;/a&gt; validator and you will discover that it' doesn't have an issue with it.&lt;/p&gt;

&lt;p&gt;The HTML5 specification has standardised the way that browsers deal with the problem of malformed HTML5 so you don’t need to worry about it… unless of course you want to. You see, you can use XHTML5 which insists that every tag must be explicitly closed (&lt;a href="http://dev.w3.org/html5/spec/Overview.html#html-vs-xhtml"&gt;amongst other things&lt;/a&gt;). In short the issue of people not correctly closing tags was so widespread that it was considered a better approach for all the browser manufacturers to agree on how they should deal with such issues rather than fighting an up hill battle to convince everyone to write XML based mark-up.&lt;/p&gt;

&lt;p&gt;For what it is worth, I continue to close tags even though I don’t need to… it makes makes the OCD side of my personality happy. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10263725" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/SxmdGF4W3JI" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/html5at5/">html5at5</category></item><item><title>Turning up our noses at browser sniffing</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/02/06/turning-our-noses-up-at-browser-sniffing.aspx</link><pubDate>Mon, 06 Feb 2012 08:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10263775</guid><dc:creator>thebeebs</dc:creator><slash:comments>11</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10263775</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10263775</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/02/06/turning-our-noses-up-at-browser-sniffing.aspx#comments</comments><description>&lt;p&gt;Did you notice it? Well if you&amp;rsquo;re an Opera user you might. As of last week, if you go to &lt;a href="http://www.bing.com/"&gt;Bing&lt;/a&gt; using Opera, you&amp;rsquo;ll get to see the HTML5 background video in all its glory.&lt;/p&gt;
&lt;p&gt;Now, let&amp;rsquo;s be clear, it&amp;rsquo;s not as if Opera couldn&amp;rsquo;t play the video before. It just never got the chance.&lt;/p&gt;
&lt;p&gt;You see Bing used browser sniffing to determine what it thought visitors&amp;rsquo; browsers could and could not deal with. Browser Sniffing is, to my mind, a relic that should have been put to rest years ago. But, like a bad smell, it&amp;rsquo;s just hung around.&lt;/p&gt;
&lt;p&gt;The problem with browser sniffing is &amp;ndash; and I believe this is the technical term &amp;ndash; it&amp;rsquo;s just a bit pants. With so many browsers and so many user agent strings (not to mention browsers pretending to be other browsers) you simply can&amp;rsquo;t guarantee the right result.&lt;/p&gt;
&lt;p&gt;This means you&amp;rsquo;ll tend to exclude at least a portion of your audience (probably unnecessarily as most browsers deal with most code just fine &amp;ndash; as in the Bing example with Opera).&lt;/p&gt;
&lt;p&gt;The solution to Browser Sniffing? Feature detection&amp;hellip; Rather than guessing at what the browser is capable of, you use JavaScript to test the browser. In general this is far more accurate and delivers far better results.&lt;/p&gt;
&lt;p&gt;To learn more about feature detection &amp;ndash; and particularly how to write a feature detection tests in JavaScript &amp;ndash; &lt;a href="http://blogs.msdn.com/b/thebeebs/archive/2012/01/25/how-to-write-a-feature-detection-script-in-javascript.aspx"&gt;check out my earlier post&lt;/a&gt;. And to see a demo in action, take a look at &lt;a href="http://www.youtube.com/watch?v=wDRpFd7Ns_k"&gt;the tutorial video I created&lt;/a&gt; with &lt;a href="http://www.ubelly.com/"&gt;Ubelly&lt;/a&gt; detailing how Sky News used feature detection in a proof of concept project I worked on last year.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10263775" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/yQP6Tru9w50" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/article/">article</category></item><item><title>Learning HTML5 &amp; CSS3</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/01/31/learning-html5-amp-css3.aspx</link><pubDate>Tue, 31 Jan 2012 10:02:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10260927</guid><dc:creator>thebeebs</dc:creator><slash:comments>9</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10260927</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10260927</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/01/31/learning-html5-amp-css3.aspx#comments</comments><description>&lt;p&gt;How did you learn to code? &lt;/p&gt;  &lt;p&gt;I ask because a couple of recent chance encounters have got me thinking that there are some pretty big gaps in people’s knowledge of HTML5 and CSS3.&lt;/p&gt;  &lt;p&gt;For example, I was chatting to a student who approached me at an event last Saturday. He asked me where he could go to learn HTML5. I suggested a few books and started explaining how HTML5 differs from HTML4. He interrupted and said, &amp;quot;Sorry you don't understand… I have no idea about HTML 4 either.&amp;quot;&lt;/p&gt;  &lt;p&gt;Is it me or is there a real problem here? After all, the guy was enthusiastic, he wanted to learn but was struggling to find the right resources for him. The problem seems to be that too many of the current books and sites assume that you’re simply moving up from an earlier version. So they spend a lot of time putting HTML5 into context by making exactly the same mistake as I did – explaining how it was different from HTML4 (or 3 for that matter). &lt;/p&gt;  &lt;p&gt;When I started web development back in the late 90's (when dinosaurs ruled the world) I remember starting with &lt;a href="http://webmonkey.com/"&gt;WebMonkey.com&lt;/a&gt;. Then I moved on to learn DHTML from &lt;a href="http://dhtmlcentral.com/"&gt;DHTMLcentral.com&lt;/a&gt;. And then on to &lt;a href="http://4guysfromrolla.com/"&gt;4guysfromrolla.com&lt;/a&gt; to learn server-side programming.&lt;/p&gt;  &lt;p&gt;Is there a modern day equivalent? A resource that guides people from complete beginner to web developer. Or do we simply expect all new developers to find their own way?&lt;/p&gt;  &lt;p&gt;What site, book, course etc would you recommend to people that are just beginning in web design and development?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10260927" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/JTGI-xGAulk" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/article/">article</category></item><item><title>The Curse of Quirks</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/01/31/quirks-mode.aspx</link><pubDate>Tue, 31 Jan 2012 08:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10260928</guid><dc:creator>thebeebs</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10260928</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10260928</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/01/31/quirks-mode.aspx#comments</comments><description>&lt;p&gt;&amp;lt;rant&amp;gt;&lt;/p&gt;  &lt;p&gt;At the danger of causing my &lt;a href="http://www.klout.com/"&gt;Klout&lt;/a&gt; score irreparable damage, I want to spend this post using their site to highlight a mistake I’ve seen three times in the last week. &lt;/p&gt;  &lt;p&gt;The problem? In a word: &lt;a href="http://en.wikipedia.org/wiki/Quirks_mode"&gt;Quirks&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I &lt;a href="http://dl.dropbox.com/u/10303465/pics/klout.png"&gt;went to Klout.com&lt;/a&gt; in IE and rather than seeing the nice, clean, well-structured design they intend, you’ll see a hodgepodge of mangled DIVS and misaligned blocks of colours. Not pretty.&lt;/p&gt;  &lt;p&gt;The cause? The developer has placed something before the DOCTYPE of the page. This makes IE assume there is no DOCTYPE and switch to Quirks mode. &lt;/p&gt;  &lt;p&gt;You can check to see if a website has had this particular variant of fresh hell heaped upon it by pressing F12 and checking the document mode. If it has been set to Quirks then something is wrong.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Beating quirks is simple&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;There’s no real rocket surgery here. The 3 most common causes behind the Quirks I see on a regular basis are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The developer has placed a verification comment above the DOCTYPE. (Services often ask developers to place a comment with a particular code in their web page so that the site can verify that they are the owner of the site before allowing access to the service. &lt;b&gt;Remember if you are doing this add the verification inside the head tag.)&lt;/b&gt;&lt;/li&gt;    &lt;li&gt;The developer added comments about the source code before the DOCTYPE. The solution is to simply move the comments below the DOCTYPE.&lt;/li&gt;    &lt;li&gt;Or, as Klout did, the developer added a body tag before the DOCTYPE. Weirdly, if you change the user agent string to Chrome it serves up content that’s not malformed (ie the body tag doesn’t appear before the DOCTYPE). This leads me to think they’re doing some form of browser sniffing. (&lt;a href="http://www.sitepoint.com/why-browser-sniffing-stinks/"&gt;Browser Sniffing&lt;/a&gt; is another pet hate of mine as it makes problems like these even harder to pin down.)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;3 simple rules&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Always use a DOCTYPE&lt;/li&gt;    &lt;li&gt;&lt;b&gt;Never&lt;/b&gt; place any content before the DOCTYPE declaration&lt;/li&gt;    &lt;li&gt;Check you sites regularly in the &lt;a href="http://validator.w3.org/"&gt;W3C validator&lt;/a&gt;. Even if you are not looking to get valid HTML, at least you’ll know the issues and can then make an informed decision as to whether you want to fix them&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;lt;/rant&amp;gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10260928" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/9ajoLzk9TmY" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/article/">article</category></item><item><title>I want to use Canvas but need to support IE8</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/01/27/i-want-to-use-canvas-but-need-to-support-ie8.aspx</link><pubDate>Fri, 27 Jan 2012 17:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10253922</guid><dc:creator>thebeebs</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10253922</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10253922</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/01/27/i-want-to-use-canvas-but-need-to-support-ie8.aspx#comments</comments><description>&lt;p&gt;Ok so you have a great idea for how you’re going to use Canvas in your next application… problem is you still have tons of visitors that use IE8 (which doesn't support the Canvas element). Not to worry, all is not lost. In many instances you can use something like &lt;a title="http://flashcanvas.net/" href="http://flashcanvas.net/"&gt;FlashCanvas&lt;/a&gt;. This is what us HTML5 junkies like to refer to as a polyfil or fall-back. Fundamentally a rather smart person has implemented the HTML5 Canvas API using some JS and Flash Wizardry so that you can get your canvas code working in versions of internet Explorer that don’t support canvas.&lt;/p&gt;  &lt;p&gt;It’s has it’s &lt;a href="http://flashcanvas.net/docs/issues"&gt;limitations of course&lt;/a&gt;, and you may need to modify your code in some instances to get things working, but if you are looking for a quick and simple solution and you are not doing anything too crazy or intensive then this polyfil might be the answer to your prayers.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10253922" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/O8nGwyeIDW8" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/html5at5/">html5at5</category></item><item><title>How to build Mobile websites</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/01/26/how-to-build-mobile-websites.aspx</link><pubDate>Thu, 26 Jan 2012 16:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10253921</guid><dc:creator>thebeebs</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10253921</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10253921</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/01/26/how-to-build-mobile-websites.aspx#comments</comments><description>&lt;p&gt;With the explosion of &lt;a href="http://blogs.msdn.com/b/thebeebs/archive/2012/01/18/so-many-devices-so-little-time.aspx"&gt;devices that access websites&lt;/a&gt;, it's becoming more important that your website works well on mobile devices. I found the process of learning how to create websites that worked on mobile devices confusing so I created the list below to help anyone that is new to this field of web development. As always if you have any good links to tutorials on any of the 5 topics below please comment and I’ll update the post accordingly. &lt;/p&gt;  &lt;h2&gt;The Viewport Meta Tag &lt;/h2&gt;  &lt;p&gt;By using the viewport tag you can tell some mobile browsers how to scale and zoom your website. You can often improve the default reading experience of your website just by adding the following meta tag:&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:800ca68a-8487-4c47-851a-07e77bb1f92b" class="class"&gt;   &lt;pre class="brush: html;"&gt;&amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1&amp;quot;&amp;gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;This article from Gil Think &lt;a href="http://www.codeproject.com/Articles/230556/Using-The-Viewport-Meta-Tag"&gt;explains the Tag&lt;/a&gt; in a very straight forward way. &lt;/p&gt;

&lt;h2&gt;Media Queries&lt;/h2&gt;

&lt;p&gt;Media Queries allow you to serve different CSS rules depending on the way your site is being viewed. For example if your site is being viewed on a mobile phone you can write CSS specifically for a screen with a 320px screen width. &lt;/p&gt;

&lt;p&gt;The great thing about Media Queries is that you can tailor your main site to look great across various screen resolutions and widths. This article from my &lt;a href="https://twitter.com/katriendg"&gt;counter part in Belgium&lt;/a&gt; does a good job of explaining &lt;a href="http://msdn.microsoft.com/en-us/magazine/hh653584.aspx"&gt;Media Queries&lt;/a&gt; and responsive design.&lt;/p&gt;

&lt;h2&gt;Touch Events&lt;/h2&gt;

&lt;p&gt;Touch is tricky as there are a number of different implementations, Ted Johnson shares a &lt;a href="http://blogs.msdn.com/b/ie/archive/2011/10/19/handling-multi-touch-and-mouse-input-in-all-browsers.aspx"&gt;technique for handling touch events across Android, iOS and IE10&lt;/a&gt; over on the IEBlog. &lt;/p&gt;

&lt;p&gt;On the Clarity consulting's blog &lt;a href="http://blogs.claritycon.com/design/2011/07/25/building-a-touch-friendly-html5-site/"&gt;they discuss touch more generally&lt;/a&gt; along with some sample code that I found really useful. &lt;/p&gt;

&lt;h2&gt;Mobile Frameworks&lt;/h2&gt;

&lt;p&gt;There are a number of frameworks that can help you build web applications for mobile. Whilst many of these frameworks are commonly used to create standalone applications, rather than enhancing existing websites, familiarising yourself with how they deal with screen resolutions and touch can teach you how to build better websites that work well on mobile. &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;jQuery Mobile - &lt;a href="http://jquerymobile.com"&gt;http://jquerymobile.com&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;MooTools Mobile - &lt;a href="http://mootools.net/forge/p/mobile"&gt;http://mootools.net/forge/p/mobile&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;M-Project - &lt;a href="http://www.the-m-project.org"&gt;http://www.the-m-project.org&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;Sencha Touch - &lt;a href="http://www.sencha.com/products/touch"&gt;http://www.sencha.com/products/touch&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;jQTouch - &lt;a href="http://jqtouch.com"&gt;http://jqtouch.com&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;NimbleKit - &lt;a href="http://www.nimblekit.com/index.php"&gt;http://www.nimblekit.com/index.php&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Differences between IE for the desktop and IE for Mobile&lt;/h2&gt;

&lt;p&gt;If you want to know what the differences are between IE9 on the desktop and IE9 on mobile I wrote a &lt;a href="http://www.ubelly.com/2011/11/the-differences-between-ie9-on-the-desktop-and-ie9-on-wp7/"&gt;post a few months ago that lists them all out&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10253921" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/MnOkYhtRzwo" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/html5at5/">html5at5</category></item><item><title>How to write a feature detection script in JavaScript</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/01/25/how-to-write-a-feature-detection-script-in-javascript.aspx</link><pubDate>Wed, 25 Jan 2012 18:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10253920</guid><dc:creator>thebeebs</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10253920</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10253920</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/01/25/how-to-write-a-feature-detection-script-in-javascript.aspx#comments</comments><description>&lt;p&gt;When I use a HTML5 feature in my website I will often test the browser that is visiting to see if it is capable of using the feature. If it is not capable I will Fall-back to something that the browser is a capable of supporting. In practice, I use &lt;a href="http://www.modernizr.com/"&gt;modernizr&lt;/a&gt; for this purpose, however, there maybe instances where you want to write your own tests.&lt;/p&gt;  &lt;p&gt;In most instances writing these feature detection tests is quite straight forward.&lt;/p&gt;  &lt;p&gt;The example below tests to see if a browser is capable of supporting HTML5 Audio. &lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:e57cbf75-1201-4844-b714-06fd1605ac81" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: javascript;"&gt;return !!document.createElement('audio').canPlayType;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;If the browser is able to create the audio element and the canPlayType property is true, this test will return true. If the browser is unable to create the audio element the test will fail.&lt;/p&gt;

&lt;p&gt;Mark Pilgrim has a great resource that shows you how to test almost any&amp;#160; &lt;a href="http://diveintohtml5.info/everything.html"&gt;HTML5 feature&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To use the code above I might create my own little library and call it myTests. I add the property audio and assign a self executing function (this basically means that the function runs as soon as it is created) and then the returned value is saved into the variable audio. &lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:f96478ce-1a92-482c-a752-0bb4001e8acf" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: javascript;"&gt;  var myTests = {
            audio: (function () {
                return !!document.createElement('audio').canPlayType;
            }())
        }&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;To test audio I can then just call&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:94894d18-0cd2-4f70-9c6c-f9c21b80f0b8" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: javascript;"&gt;myTests.audio&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;So for example the following code would use my test when the browser loads:&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:3fa0add9-61aa-4a06-8ecb-a36119b52c75" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: javascript;"&gt; window.onload = function () {
            if (myTests.audio) {
                alert("Your browser supports Audio")
            }
            else {
                alert("Your browser dosen't support Audio")
            }
        }&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;a class="downloadLink" href="http://lab.thebeebs.co.uk/featuredetection/audio.html"&gt;&lt;span&gt;Demo&lt;/span&gt; view here &lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;What if I want to use Modernizr and my own custom tests?&lt;/h2&gt;

&lt;p&gt;Modernizr has a rather nice feature that allows you to add custom tests to the library.&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:973f4678-6e77-47a2-a78f-12b2fdaa0000" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: javascript;"&gt;Modernizr.addTest("myAudioTest", function(){  
	 return !!document.createElement('audio').canPlayType;
});
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;You can then just call it like this (note that even though we added the test name in capitals Modernizr lowercases the property name) :&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:4efd64e2-3808-4eee-b974-6c82098e37bf" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: javascript;"&gt;Modernizr.myaudiotest&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;So the demo above would look like this:&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:957ca45b-81d8-4722-a755-26ca05b62881" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: javascript;"&gt;window.onload = function () {
            if (Modernizr.myaudiotest) {
                alert("Your browser supports Audio")
            }
            else {
                alert("Your browser dosen't support Audio")
            }
        }&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;a class="downloadLink" href="http://lab.thebeebs.co.uk/featuredetection/audioTest.html"&gt;&lt;span&gt;Demo&lt;/span&gt; view here &lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10253920" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/kKBO_j88l8Q" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/html5at5/">html5at5</category></item><item><title>Is HTML5 cheaper to develop with?</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/01/25/is-html5-cheaper-to-develop-with.aspx</link><pubDate>Wed, 25 Jan 2012 07:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10258899</guid><dc:creator>thebeebs</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10258899</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10258899</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/01/25/is-html5-cheaper-to-develop-with.aspx#comments</comments><description>&lt;p&gt;There is an argument for HTML5 that runs: because it can run across multiple devices, HTML5 can help you slash the costs of developing new apps. Now, rather than dealing with the time and cost of developing native apps, you can simply write once and deploy everywhere (near as damn it).&lt;/p&gt;  &lt;p&gt;Now, I’d dearly love to simply agree with this. But, as with so many things in tech, the reality is not quite so clear cut.&lt;/p&gt;  &lt;p&gt;Over on &lt;a href="http://mmitii.wordpress.com/2012/01/09/types-of-app-business-models/"&gt;his blog&lt;/a&gt;, my boss has been talking about the reasons why people build applications. This leads me to think, the motivation for building an app and the skill set of its current developers will ultimately determine if HTML5 is a less expensive option.&lt;/p&gt;  &lt;p&gt;But, of course, the cost argument is a powerful one. So let’s look at four ways in which HTML5 &lt;u&gt;may&lt;/u&gt; save you money:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;HTML and JavaScript developers are available in abundance. While the best people are always in demand, it should be easier to find talent from such a large pool. And because there are more of them, there’s less of a specialist premium on their hourly rates (if you don't know what a specialist premium is, go ask a COBOL developer). &lt;/li&gt;    &lt;li&gt;Solutions to common issues are often widely shared among developers. This means you can solve problems faster (and therefore more cheaply). The JavaScript and HTML5 world is massive, so you’re often just a &lt;a href="http://www.bing.com/?cc=gb"&gt;Bing&lt;/a&gt; search away from a solution to a problem – other search engines are available ;). Plus with great sites like &lt;a href="http://stackoverflow.com/"&gt;Stack Overflow&lt;/a&gt;, JavaScript is one of the most documented languages in the world.&lt;/li&gt;    &lt;li&gt;HTML5 and JavaScript development requires no specific hardware, you can develop on pretty much any OS you want. Compare this to the challenge of being, say, a Microsoft or Linux shop and wanting to dev for IOS. In this case, you’re going to have to invest in some Mac hardware since you can't virtualise Mac OS legally.&lt;/li&gt;    &lt;li&gt;Finally, as I suggested above, if your codebase is HTML and JavaScript, there’s a good chance you’ll have great code reuse across platforms. Of course, let’s not kid ourselves, you will have to make modifications to go across all platforms but at least you won’t have to start from scratch. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;So is HTML5 the cheap option? In the final analysis, the answer is: Yes. No. Maybe. It depends. Not the most satisfying I know but probably the closest to the truth.&lt;/p&gt;  &lt;p&gt;I'd love to know what you think. &lt;/p&gt;  &lt;p&gt;Are you being pushed to HTML5 for cost reasons? &lt;/p&gt;  &lt;p&gt;Are you happily going that way anyway? &lt;/p&gt;  &lt;p&gt;Do you think cost is irrelevant? &lt;/p&gt;  &lt;p&gt;Let me know.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10258899" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/0FkPaL6OKpI" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/article/">article</category></item><item><title>Using HTML5 to Jump to the search box using autofocus</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/01/23/using-html5-to-jump-to-the-search-box-using-autofocus.aspx</link><pubDate>Mon, 23 Jan 2012 17:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10253918</guid><dc:creator>thebeebs</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10253918</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10253918</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/01/23/using-html5-to-jump-to-the-search-box-using-autofocus.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://dev.w3.org/html5/spec/Overview.html#autofocusing-a-form-control"&gt;Autofocus&lt;/a&gt; is a HTML5 attribute that you add to input elements, which cause the browser to automatically focus on the input element when the page loads. Google and every other search engine have been doing this since the dawn of time (slight exaggeration) with JavaScript but now you can do it with some simple markup.&lt;/p&gt;
&lt;p&gt;&lt;a class="downloadLink" href="http://lab.thebeebs.co.uk/placeholder/autofocus.html"&gt;&lt;span&gt;Demo&lt;/span&gt; view here &lt;/a&gt;&lt;a class="downloadLink" href="https://github.com/amiel/html5support"&gt;&lt;span&gt;Source&lt;/span&gt; on GitHub &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Of course the autofocus attribute tag is not supported by every browser, but a &lt;a href="https://github.com/amiel/html5support"&gt;great polyfill&lt;/a&gt; created by &lt;a href="https://github.com/amiel"&gt;Amiel Martin&lt;/a&gt; exists which uses JavaScript to add support to unsupported browsers.&lt;/p&gt;
&lt;p&gt;You just need to add the scripts to your document:&lt;/p&gt;
&lt;div style="margin: 0px; display: inline; float: none; padding: 0px;" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:1d90cd03-9625-476d-9df4-35c366cf0fa7" class="wlWriterSmartContent"&gt;
&lt;pre class="brush: html;"&gt;&amp;lt;script src="http://blogs.msdn.com/scripts/jquery-1.5.1-vsdoc.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src="html5support.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Add a some script to initialise the library&lt;/p&gt;
&lt;div style="margin: 0px; display: inline; float: none; padding: 0px;" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:22792cf9-5f0e-4608-a70a-98fd83492692" class="wlWriterSmartContent"&gt;
&lt;pre class="brush: javascript;"&gt;$(document).ready(function () {           
	$.autofocus();       
});&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;You will then autofocus on elements with the attribute, such as:&lt;/p&gt;
&lt;div style="margin: 0px; display: inline; float: none; padding: 0px;" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:eb84c7ed-da0a-49d2-8cff-257e83a51910" class="wlWriterSmartContent"&gt;
&lt;pre class="brush: html;"&gt; &amp;lt;input autofocus type="text" name="search" /&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10253918" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/GyYO_p6p6uA" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/html5at5/">html5at5</category></item><item><title>Will HTML5 be the death of PDF magazines?</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/01/23/will-html5-be-the-death-of-pdf-magazines.aspx</link><pubDate>Mon, 23 Jan 2012 07:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10258900</guid><dc:creator>thebeebs</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10258900</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10258900</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/01/23/will-html5-be-the-death-of-pdf-magazines.aspx#comments</comments><description>&lt;p&gt;Do you still read magazines? Newspapers? If so, are they printed publications or have you gone digital?&lt;/p&gt;  &lt;p&gt;With the wild popularity of the iPad and the predicted stampede for the Kindle Fire (not to mention all the other tablets hitting the market) there has been a headlong rush by many publishers to get onto these new devices and do it fast. &lt;/p&gt;  &lt;p&gt;So far, most seem to have gone the PDF route. It’s easy to understand why. They’re probably already developing their print publications in InDesign so it’s a relatively easy step to output a version to PDF. Plus Adobe have done a pretty good job of helping publishers add some nice bells and whistles (check out &lt;a href="http://itunes.apple.com/gb/app/wired-magazine-uk/id400701660?mt=8"&gt;Wired’s iPad edition&lt;/a&gt; to see what I mean).&lt;/p&gt;  &lt;p&gt;But PDF isn’t the only option. And some would say – myself included – that it isn’t the best option either. Of course, you won’t be surprised to hear me claim that HTML5 offers significant advantages over PDF. &lt;/p&gt;  &lt;p&gt;So here are four reasons why I think HTML5 trumps PDF for digital magazines:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;A major advantage is file size. An HTML5-based publication will come in at something between a tenth and a fifth of the size of a PDF one. So this means less waiting for users and less space taken up on their devices.&lt;/li&gt;    &lt;li&gt;Text can remain live (rather than simply rendering as an image) so you can zoom in as much as you like with no pixilation (it also means you can select, copy and paste text should you want).&lt;/li&gt;    &lt;li&gt;Because the text is live, you can search it too.&lt;/li&gt;    &lt;li&gt;And then there’s the whole cross-platform thing. Sure you can scale a PDF to different screen sizes but that just makes everything bigger or smaller. With HTML you can scale in a more intuitive way that’ll preserve text sizes for easy reading (no matter how small your screen).&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;It’ll be really interesting to see how this market develops. While the iPad is the runaway leader at the moment, the Kindle Fire could mount a pretty serious challenge with access to all of Amazon’s content (and &lt;a href="http://www.amazon.com/gp/feature.html?ie=UTF8&amp;amp;docId=1000719641"&gt;it’s own dedicated magazine store&lt;/a&gt;). &lt;/p&gt;  &lt;p&gt;The new&lt;a href="http://www.amazon.com/gp/feature.html?docId=1000729511"&gt; KF8 &lt;/a&gt;format on the Fire supports both HTML5 and CSS3 – some 150 formatting styles if Amazon is to be believed (&lt;a href="http://www.amazon.com/gp/feature.html/ref=amb_link_357613442_1?ie=UTF8&amp;amp;docId=1000729901&amp;amp;pf_rd_m=ATVPDKIKX0DER&amp;amp;pf_rd_s=center-5&amp;amp;pf_rd_r=0FM19Z5A31PS9HFFZX35&amp;amp;pf_rd_t=1401&amp;amp;pf_rd_p=1321300302&amp;amp;pf_rd_i=1000729511"&gt;full list here&lt;/a&gt;). This means publishers can take full advantage and produce some serious eye candy without file-bloat. &lt;/p&gt;  &lt;p&gt;So will HTML5 be the death of PDF magazines? In truth, it’ll probably be a mixed bag while everyone finds their feet. But in the long run, my money is on HTML5.&lt;/p&gt;  &lt;p&gt;What do you think?&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Further reading&lt;/b&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;InterfaceLab has a good article (although it is over a year old): &lt;a href="http://interfacelab.com/is-this-really-the-future-of-magazines-or-why-didnt-they-just-use-html-5/"&gt;Is this really the future of magazines or why didn’t they just use html 5?&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;The Guardian has a good round up of Apple Newsstand which covers some of the issues around PDFs: &lt;a href="http://www.guardian.co.uk/technology/2011/oct/24/apple-newsstand"&gt;Apple Newsstand: can it crack the news market?&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Elliot Jay Stocks has a good post on his blog (unless you’re from Adobe that is): &lt;a href="http://elliotjaystocks.com/blog/adobes-digital-publishing-mistake/"&gt;Adobe's digital publishing mistake&lt;/a&gt; – the comments are particularly interesting&lt;/li&gt; &lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10258900" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/P1eMU1ZMssU" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/article/">article</category></item><item><title>Do I need to use WIA-ARIA with HTML5?</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/01/20/do-i-need-to-use-aria-with-html5.aspx</link><pubDate>Fri, 20 Jan 2012 17:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10253917</guid><dc:creator>thebeebs</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10253917</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10253917</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/01/20/do-i-need-to-use-aria-with-html5.aspx#comments</comments><description>&lt;p&gt;Accessibility for Rich Intranet Applications (&lt;a href="http://www.w3.org/TR/wai-aria-primer/"&gt;WIA-ARIA&lt;/a&gt;) is a specification that makes it easier for people using screen readers to navigate and use web applications. Many of the new HTML5 elements like section and article have been added to the specification along with more controls so the obvious question is… Do I need to use WIA-ARIA at all?&lt;/p&gt;  &lt;p&gt;If you want a one word answer: I’d say yes. Use HTML5 semantic elements and the built in controls but you should use WIA-ARIA where appropriate as it will improve accessibility. Combining HTML5 and and WIA-ARIA can cause issues, many of which &lt;a href="http://www.accessibleculture.org/articles/2011/04/html5-aria-2011/"&gt;this blog&lt;/a&gt; discusses however in most situations you are going to be improving accessibility by spending a little time applying ARIA support.&lt;/p&gt;  &lt;p&gt;If your doctype is HTML5 then ARIA will validate using the &lt;a href="http://validator.w3.org/"&gt;W3C validation service&lt;/a&gt;&amp;#160; as &lt;a href="http://validator.w3.org/check?uri=http%3A%2F%2Flab.thebeebs.co.uk%2Faria%2F&amp;amp;charset=%28detect+automatically%29&amp;amp;doctype=Inline&amp;amp;group=0"&gt;this example shows&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;To dive deeper into the subject I’d suggest reading the following articles on the subject:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;     &lt;a href="http://zufelt.ca/blog/are-you-confused-html5-and-wai-aria-yet"&gt;Are you confused by HTML5 and WAI-ARIA Yet?&lt;/a&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;a href="http://msdn.microsoft.com/en-us/scriptjunkie/hh204741.aspx"&gt;HTML5 and Accessibility&lt;/a&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;a href="http://www.karlgroves.com/2011/12/24/confusion-over-html5-wai-aria/"&gt;Confusion over HTML5 and WAI-ARIA&lt;/a&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;a href="http://en.wikipedia.org/wiki/WAI-ARIA"&gt;Wikipedia on WAI-ARIA&lt;/a&gt;   &lt;/li&gt; &lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10253917" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/KP5Lb0qboZI" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/html5at5/">html5at5</category></item><item><title>Making forms easier to fill out using placeholder text</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/01/19/making-forms-easier-to-fill-out-using-placeholder-text.aspx</link><pubDate>Thu, 19 Jan 2012 17:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10253916</guid><dc:creator>thebeebs</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10253916</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10253916</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/01/19/making-forms-easier-to-fill-out-using-placeholder-text.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://dev.w3.org/html5/spec/Overview.html#the-placeholder-attribute"&gt;Placeholder&lt;/a&gt; is a HTML5 attribute that you add to input elements, it makes it easier for users to fill out your forms.&lt;/p&gt;  &lt;p&gt;&lt;a class="downloadLink" href="http://lab.thebeebs.co.uk/placeholder/"&gt;&lt;span&gt;Demo&lt;/span&gt; view here &lt;/a&gt;&lt;a class="downloadLink" href="https://github.com/amiel/html5support"&gt;&lt;span&gt;Source&lt;/span&gt; on GitHub &lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It works for on regular input fields but also works on on password types. Of course the &lt;a href="http://www.caniuse.com/#search=placeholder"&gt;placeholder tag is not supported&lt;/a&gt; by every browser, but a &lt;a href="https://github.com/amiel/html5support"&gt;great polyfill&lt;/a&gt; created by &lt;a href="https://github.com/amiel"&gt;Amiel Martin&lt;/a&gt; exists which uses JavaScript to add support to unsupported browser.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-93-metablogapi/6330.image_5F00_4.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Placeholder Example" border="0" alt="Placeholder Example" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-93-metablogapi/1856.image_5F00_thumb_5F00_1.png" width="256" height="122" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You just need to add the scripts to your document:&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:54486c60-9203-45c5-98b9-1d75855fcdcc" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: html;"&gt;&amp;lt;script src="http://blogs.msdn.com/scripts/jquery-1.5.1-vsdoc.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src="html5support.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Add a some script to initialise the library&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:9e712f1b-c211-4448-bfee-242ffe27f44f" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: javascript;"&gt; $(document).ready(function () {
            $.placeholder();
        });&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Add some CSS to style the placeholder text &lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:7a72a990-95e2-4c66-b57d-f98e1e8e9894" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: html;"&gt;.placeholder
        {
            color: #888;
        }&lt;/pre&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10253916" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/qWyDcoy2Bhs" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/html5at5/">html5at5</category></item><item><title>Using CSS3 to make your web pages better when they are printed.</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/01/18/using-css3-to-make-your-blogs-better-when-they-are-printed.aspx</link><pubDate>Wed, 18 Jan 2012 16:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10253915</guid><dc:creator>thebeebs</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10253915</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10253915</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/01/18/using-css3-to-make-your-blogs-better-when-they-are-printed.aspx#comments</comments><description>&lt;p&gt;I recently walked past someone in the office who was reading a web article that they’d printed off. Now putting to one-side the environmental impact of printing the internet there is also another disadvantage to reading printed webpages… the hyperlinks don’t work. Wouldn’t it be nice if you could somehow add the textual link next to a hyperlink but only when a document was printed, well you can using CSS &lt;a href="http://www.w3schools.com/cssref/sel_after.asp"&gt;:after&lt;/a&gt; selector.&lt;/p&gt;  &lt;p&gt;&lt;a class="downloadLink" href="http://lab.thebeebs.co.uk/printingLinks/"&gt;&lt;span&gt;Demo&lt;/span&gt; view here &lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Firstly you will need to add a print style sheet. This is just a regular stylesheet which is only applied when the document is being printed. This requires a regular style sheet link with the attribute media=”print”.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:ec71355a-ad6e-4c86-87fd-fa5b2a579257" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: html;"&gt;&amp;lt;link href="print.css" rel="stylesheet" type="text/css" media="print" /&amp;gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Inside this style you just need to the following CSS. I tend to switch text decoration (the underlining) off of printed hyperlinks because it’s easier to see URL when they are printed without the underlining (but this is entirely optional and there are reasons why you might not want to do this)&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:b89b1906-cbef-4f86-ac71-c4a97992d9a5" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: html;"&gt;a:after
{
    content: " (" attr(href) ")";
}
a
{
    text-decoration: none;
}
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The &lt;a href="http://lab.thebeebs.co.uk/printingLinks/"&gt;demo page&lt;/a&gt; will then look like the below image when it is printed:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-93-metablogapi/5483.image_5F00_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="The resultant web page" border="0" alt="An image of the printed webpage" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-93-metablogapi/0361.image_5F00_thumb.png" width="552" height="237" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you would rather use &lt;a href="http://lab.thebeebs.co.uk/printingLinks/inline.html"&gt;inline style&lt;/a&gt; then you could write it like this:&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:b9ed7354-abd8-4672-8c87-f76ff504d54d" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: html;"&gt;&amp;lt;style&amp;gt;
        @media print
        {
            a:after
            {
                content: " (" attr(href) ")";
            }
            a
            {
                text-decoration: none;
            }        
        }
&amp;lt;/style&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10253915" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/OFqj_Ie44kI" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/html5at5/">html5at5</category></item><item><title>So many devices, so little time</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/01/18/so-many-devices-so-little-time.aspx</link><pubDate>Wed, 18 Jan 2012 09:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10257980</guid><dc:creator>thebeebs</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10257980</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10257980</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/01/18/so-many-devices-so-little-time.aspx#comments</comments><description>&lt;p&gt;It didn’t seem so at the time but not so long ago, developing for the web was actually comparatively simple. Sure there were some significant differences between browsers and some (ahem) got a pretty hard time for lagging behind. But at least there was a pretty finite range of screen sizes and PCs of broadly similar capabilities.&lt;/p&gt;  &lt;p&gt;Looking at where we are today – especially in light of all the new toys pouring out of the recent &lt;a href="http://www.cesweb.org/"&gt;CES&lt;/a&gt; exhibition – those not so distant days seem positively quaint.&lt;/p&gt;  &lt;p&gt;These days we don’t have to just worry about laptops and desktops but also netbooks and iPods, smartphones and tablets (IOS, Android and Windows) plus internet TVs to name just a few. Some are simply running a classic browser (in various guises), some are more app-focused. And who knows what’ll be next?&lt;/p&gt;  &lt;p&gt;Also, the range of stuff we’re developing has never been greater. Native apps, web apps, sites, widgets, desktop apps, SaaS. Even in my own area focused on web development, the choices are bewildering.&lt;/p&gt;  &lt;p&gt;Of course, as you’ll very well know, the issues don’t end when you ship. Keeping up to date, fixing the inevitable bugs, and guarding against your work going out of spec as devices, standards and operating systems change is the stuff of nightmares.&lt;/p&gt;  &lt;p&gt;This is where HTML5 has the potential to really come into its own. The promise of create once, deploy everywhere is tantalisingly close. It’s not there just yet and it demands compromises (but all development does that). But it’s coming.&lt;/p&gt;  &lt;p&gt;I was reading the recent &lt;a href="http://www.netbiscuits.com/mobile-metrics-report-2011"&gt;Mobile Web Metrics Report from Netbiscuits&lt;/a&gt; which has a whole section on devices’ HTML5 capabilities. The picture is one of HTML5 growing (albeit a little patchily depending on where you live) as a core supported feature of the majority of today’s devices.&lt;/p&gt;  &lt;p&gt;For example, the research found that out of the top 10 devices in the US:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Offline Web Application Support &lt;/b&gt;is the best supported HTML5 feature with 9 out of the top 10 devices supporting it &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Geolocation API and 2D Animation Rendering &lt;/b&gt;are both supported by 8 out of 10 devices &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Webstorage &lt;/b&gt;is supported by 7 out of 10 devices&lt;/p&gt;  &lt;p&gt;Sadly, in the UK, we’re not at these levels (or those seen in most of Europe and, of course, across Asia). It’s only a matter of time though.&lt;/p&gt;  &lt;p&gt;As I always try to make clear, this isn’t to say native apps are toast. If you’ve got the time and the cash, do both a native app &lt;i&gt;and&lt;/i&gt; an HTML5 web app. But, if you want maximum reach across multiple devices, right now HTML5 is a good bet.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Some further reading&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://momasolutions.com/html5-battle-mobile-fragmentation-2012/"&gt;Will HTML5 help battle mobile fragmentation in 2012?&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://mashable.com/2011/02/22/html-mobile-development/"&gt;How HTML5 Is Aiding in Cross-Platform Development&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.slideshare.net/WorkLightInc/is-html5-ready-for-mobile-crossplatform-app-development"&gt;Is HTML5 Ready for Mobile Cross-Platform App Development?&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;A good round-up of everything that came out of CES 2012 can be found on &lt;a href="http://www.theverge.com/ces"&gt;The Verge&lt;/a&gt; (and on a million other sites and blogs).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10257980" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/MAjchdnyaEM" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/article/">article</category></item><item><title>HTML5 - Not just because it’s new and shiny</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/01/16/html5-not-just-because-it-s-new-and-shiny.aspx</link><pubDate>Mon, 16 Jan 2012 13:31:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10257102</guid><dc:creator>thebeebs</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10257102</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10257102</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/01/16/html5-not-just-because-it-s-new-and-shiny.aspx#comments</comments><description>&lt;p&gt;After my giddy excitement over the &lt;a href="http://blogs.msdn.com/b/thebeebs/archive/2012/01/10/cut-the-rope-now-in-html5.aspx"&gt;Cut the Rope HTML5 game&lt;/a&gt;, Rob Ashton’s &lt;a href="http://blogs.msdn.com/b/thebeebs/archive/2012/01/10/cut-the-rope-now-in-html5.aspx#10254977"&gt;comment&lt;/a&gt; got me thinking a bit more.&lt;/p&gt;  &lt;p&gt;In some ways I take Rob’s point – using HTML5 because it’s new or shiny or cool isn’t the best of reasons for doing this kind of thing. (Although I admit, I like cool stuff as much as anyone.) &lt;/p&gt;  &lt;p&gt;To my mind, the performance of the game does illustrate what’s possible with a bit of ingenuity – and yes, I agree it must be carefully worked around. The fact that the experience is near as damn it indistinguishable from the iPad should, in some small way, show that HTML and JavaScript are capable of more than they’re sometimes given credit for. Which, to my mind, is the point of doing this – and why developers should care about it.&lt;/p&gt;  &lt;p&gt;In addition, it shows that games in particular do not need to be propped up by Flash to work. Take &lt;a href="http://chrome.angrybirds.com/"&gt;Angry Birds for Chrome&lt;/a&gt;, for example. While pretty much everything is HTML5, audio is Flash. If you’re going to do this, you might as well stick with Flash. Instead, Cut the Rope uses &lt;a href="http://www.schillmania.com/projects/soundmanager2/"&gt;SoundManager&lt;/a&gt; which uses HTML5 audio in the first instance and falls back to flash for browser &lt;a href="http://nerdplusart.com/why-is-there-flash-in-the-html5-version-of-cut-the-rope"&gt;that have trouble with doing it natively&lt;/a&gt;. If flash isn’t available, you’re not going to get locked out.&lt;/p&gt;  &lt;p&gt;That aside, where I am in violent agreement with Rob is where he says “it is a wonderful way to deploy games to a large number of uses across nearly all devices in a standard manner.” It’s this ability to extend the reach of an app that makes HTML5 such a valuable addition to the developer’s kitbag. &lt;/p&gt;  &lt;p&gt;If the tech beauty parade at CES shows anything, it’s that the proliferation of devices is in rude health. And while this feeds the soul of my inner geek, it presents a real challenge for developers. Now, HTML5 might not be the only solution but it is becoming a viable option for a growing number of these challenges.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10257102" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/5LUoUVkV4fY" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/article/">article</category></item><item><title>How you can allow a user to edit pages with HTML5</title><link>http://blogs.msdn.com/b/thebeebs/archive/2012/01/16/how-you-can-allow-user-to-edit-pages-with-html5.aspx</link><pubDate>Mon, 16 Jan 2012 10:53:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10253910</guid><dc:creator>thebeebs</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/thebeebs/rsscomments.aspx?WeblogPostID=10253910</wfw:commentRss><wfw:comment>http://blogs.msdn.com/b/thebeebs/commentapi.aspx?WeblogPostID=10253910</wfw:comment><comments>http://blogs.msdn.com/b/thebeebs/archive/2012/01/16/how-you-can-allow-user-to-edit-pages-with-html5.aspx#comments</comments><description>&lt;p&gt;When a user wants to change some information on a webpage it's often very jarring to ask them to go to another form to edit the content. Users find it difficult to understand how the changes they make on a form will effect the resultant page.&lt;/p&gt;  &lt;p&gt;Therefore it's become common practice to allow users to edit the content in place. It's easy enough to do this by switching out content areas with Form Fields however HTML5 offers us another solution called &lt;a href="http://www.w3.org/TR/html5/editing.html#contenteditable"&gt;contenteditable&lt;/a&gt;. It's not a particularly new feature, having been in IE since version 5.5 but its addition to the &lt;a href="http://www.w3.org/TR/html5/editing.html#contenteditable"&gt;HTML5 specification&lt;/a&gt; and now broad support means that you can confidently use it on your website .&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.twitter.com/jackosborne"&gt;Jack Osborne&lt;/a&gt; of HTML5 Doctor fame, gives a &lt;a href="http://html5doctor.com/the-contenteditable-attribute/"&gt;great overview&lt;/a&gt; of the feature with a number of examples including how to save the edited content.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10253910" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Thebeebs/~4/ZBZ9Y3PZQZg" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/thebeebs/archive/tags/html5at5/">html5at5</category></item></channel></rss>

