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

<channel>
	<title>Rey Bango &#187; Microsoft</title>
	<atom:link href="http://blog.reybango.com/category/microsoft/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.reybango.com</link>
	<description>JavaScript, HTML, CSS &#38; Random Stuff...</description>
	<lastBuildDate>Mon, 09 Jan 2012 20:46:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Fix Common IE Problems: Update your Docmode for Web Standards</title>
		<link>http://blog.reybango.com/2012/01/09/fix-common-ie-problems-update-your-docmode-for-web-standards/</link>
		<comments>http://blog.reybango.com/2012/01/09/fix-common-ie-problems-update-your-docmode-for-web-standards/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 20:39:18 +0000</pubDate>
		<dc:creator>Rey Bango</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://blog.reybango.com/?p=1800</guid>
		<description><![CDATA[Document compatibility defines how a browser renders your website. The more specific you are at telling the browser what to expect, the better the experience for your users. When using web standards like HTML5, start by explicitly declaring the HTML5 document type: This markup triggers standards mode in Internet Explorer 9 and 10. And it [...]
No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Document compatibility defines how a browser renders your website.  The more specific you are at telling the browser what to expect, the better the experience for your users. When using web standards like HTML5, start by <a href="http://msdn.microsoft.com/en-us/library/cc288325(v=VS.85).aspx">explicitly declaring</a> the HTML5 document type:</p>
<pre class="brush: xml; title: ; notranslate">&lt;!DOCTYPE html&gt;</pre>
<p>This markup triggers <a href="http://msdn.microsoft.com/en-us/library/cc288325(v=VS.85).aspx">standards mode</a> in Internet Explorer 9 and 10.  And it also works well in Chrome and Firefox.  Four steps will get your site ready for many browsers and devices:</p>
<h2>Step 1: Validate that your site uses standards mode</h2>
<p>Check whether or not your site is currently in standards mode:</p>
<ol>
<li>Open the website in <a href="http://ie.microsoft.com/testdrive/Info/Downloads/Default.html">IE10 platform preview</a>.
<ul>
<li><strong>Note:</strong> You can also follow the same steps to update the docmode for IE9 only without downloading the preview.</li>
</ul>
</li>
<li>Press F12 to launch the IE Developer Tools or find it on the <em>Tools</em> menu as shown below:<br />
<a href="http://blog.reybango.com/wp-content/uploads/2012/01/dev-tool-menu-1.png"><img src="http://blog.reybango.com/wp-content/uploads/2012/01/dev-tool-menu-1.png" alt="" title="dev-tool-menu-1" width="243" height="268" class="alignleft size-full wp-image-1806" /></a></p>
<ul>
<li><strong>Note:</strong> If you’re not familiar with using the IE F12 Developer Tools to debug your webpages, please read the <a href="http://msdn.microsoft.com/en-us/library/gg589507%28v=VS.85%29.aspx">following tutorial</a>.</li>
</ul>
</li>
<li>Check if your site indicates <em>Browser Mode: IE10</em> and <em>Document Mode: IE10 standards</em> as shown in the toolbar below:<br />
<a href="http://blog.reybango.com/wp-content/uploads/2012/01/ie-dev-tools-1.png"><img src="http://blog.reybango.com/wp-content/uploads/2012/01/ie-dev-tools-1-300x39.png" alt="" title="ie-dev-tools-1" width="300" height="39" class="alignleft size-medium wp-image-1808" /></a><br />
<em>Click to Enlarge</em></li>
<li>If your site is in <em>Browser Mode: IE10</em> and <em>Document Mode: IE10 Standards</em>, <strong>you’re done!</strong>  Note if the Browser Mode and Document Mode of your site are different than above.  A common example is <em>Browser Mode = IE8</em> and <em>Document Mode = Quirks</em> which indicates that your website was designed for older versions of IE and may not be ready for web standards.<br />
<a href="http://blog.reybango.com/wp-content/uploads/2012/01/ie-dev-tools-2.png"><img src="http://blog.reybango.com/wp-content/uploads/2012/01/ie-dev-tools-2-300x42.png" alt="" title="ie-dev-tools-2" width="300" height="42" class="alignleft size-medium wp-image-1809" /></a><br />
<em>Click to Enlarge</em></li>
</ol>
<h2>Step 2: Implement docmode for web standards</h2>
<p>Force IE10 standards mode to test your website:</p>
<ol>
<li>Insert
<pre class="brush: xml; title: ; notranslate">&lt;!DOCTYPE html&gt;</pre>
<p> into your website’s HTML page</p>
<ul>
<li>Learn more about how to update your doctypes <a href="http://msdn.microsoft.com/en-us/library/cc288325(v=VS.85).aspx">here</a></li>
</ul>
</li>
<li>Reload your page in the browser and check the <em>Browser Mode</em> and <em>Document Mode</em> again using the F12 Developer Tools.  If <em>Browser Mode: IE10</em> and <em>Document Mode: IE10 standards</em> are not shown, continue below.</li>
</ol>
<h2>Step 3: Determine why your site is not in Standards Mode</h2>
<p>Most problems are related to supporting older versions of IE.  Start by ensuring your standards-based code is rendered in IE9 and 10.  Then keep your non-standards-based code for older versions of IE.</p>
<ol>
<li>My page is not in Browser Mode: IE10</p>
<ul>
<li><strong>Possible Cause:</strong> Your website may flagged in <a href="http://msdn.microsoft.com/en-us/library/dd567845(v=VS.85).aspx">Compatibility View</a> and forced into an older browser mode to ensure the site functions
<ul>
<li><strong>Resolution:</strong> Check if your site is on the list <a href="http://ie9cvlist.ie.microsoft.com/ie9CompatViewList.xml">here</a>.  Learn more about the Compatibility View list and request removal <a href="http://msdn.microsoft.com/en-us/library/dd567845(v=VS.85).aspx#removal">here</a>.</li>
</ul>
</li>
</ul>
</li>
<li>My page is not in Document Mode = IE10
<ul>
<li><strong>Possible Cause:</strong> Your website’s doctype is invalid or missing</p>
<ul>
<li><strong>Resolution:</strong> Check for a <a href="http://www.w3.org/QA/2002/04/valid-dtd-list.html">valid, well-formed doctype</a> like:</p>
<pre class="brush: xml; title: ; notranslate">&lt;!DOCTYPE html&gt;
&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot; &quot;http://www.w3.org/TR/html4/strict.dtd&quot;&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;</pre>
<p>Learn more about how to update your doctypes <a href="http://msdn.microsoft.com/en-us/library/cc288325(v=VS.85).aspx">here</a>.</li>
</ul>
</li>
<ul>
<li><strong>Possible Cause:</strong> Docmode being forced via <a href="http://msdn.microsoft.com/en-us/library/cc288325(v=vs.85).aspx">X-UA-Compatible meta tag</a></p>
<ul>
<li><strong>Resolution:</strong> Check for code similar to this in the <head> of the page.</p>
<pre class="brush: xml; title: ; notranslate">&lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=EmulateIE7&quot; &gt;
&lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=8&quot; &gt;</pre>
<p>Remove it and reload your page.  Continue testing.  Learn more about Specifying Document Compatibility Modes <a href="http://msdn.microsoft.com/en-us/library/cc288325(v=VS.85).aspx#SetMode">here</a>.</li>
</ul>
</li>
</li>
</ol>
<h2>Step 4: Resolve common IE problems when updating docmode</h2>
<p>Most problems are related to supporting older versions of IE.  Start by ensuring your standards-based code is rendered in IE9 and 10.  Then keep your non-standards-based code for older versions of IE.</p>
<ul>
<li><strong>Possible Cause:</strong> <a href="http://msdn.microsoft.com/en-us/library/ms537512%28v=vs.85%29.aspx">Conditional comments</a> support browser version-specific features </p>
<ul>
<li><strong>Resolution:</strong> Check for <a href="http://msdn.microsoft.com/en-us/library/ms537512%28v=vs.85%29.aspx">conditional comments</a> that run non-standard code.  These are often used on specific features supported by older versions of IE to allow the page to degrade gracefully.  Check for code similar to this:</p>
<pre class="brush: xml; title: ; notranslate">&lt;!--[if IE 8]&gt;

&lt;p&gt;Welcome to Internet Explorer 8.&lt;/p&gt;

&lt;![endif]--&gt;
</pre>
<p>Remove it and reload your page.  Continue testing. Learn more about Conditional Comments <a href="http://msdn.microsoft.com/en-us/library/ms537512%28v=vs.85%29.aspx">here</a>.</li>
</ul>
</li>
<li><strong>Possible Cause:</strong> <a href="http://blogs.msdn.com/b/ieinternals/archive/2011/06/30/perils-of-user-agent-sniffing-browser-mode-document-mode-compatibility-view.aspx">User agent sniffing</a> supports browser version-specific features
<ul>
<li><strong>Resolution:</strong> Check for <a href="http://blogs.msdn.com/b/ieinternals/archive/2011/06/30/perils-of-user-agent-sniffing-browser-mode-document-mode-compatibility-view.aspx">user agent sniffing</a>. These are often used to specifically target a browser based on the user agent string presented via the browser mode.  Check for code similar to this:</p>
<pre class="brush: jscript; title: ; notranslate">if (version = /MSIE (\d+\.\d+)/.exec(navigator.userAgent)) {

	isIE = true;

browserVersion = parseFloat(version[1]);
}</pre>
<p>Start by implementing <a href="http://blogs.msdn.com/b/ie/archive/2010/04/14/same-markup-writing-cross-browser-code.aspx">feature detection</a> where possible with web standards.  Learn more about User-Agent Strings <a href="http://msdn.microsoft.com/en-us/library/ms537503(v=VS.85).aspx">here</a>. The IE10 User-Agent String is located <a href="http://blogs.msdn.com/b/ie/archive/2011/04/15/the-ie10-user-agent-string.aspx">here</a>.</li>
</ul>
</li>
</ul>
<h2>Other reasons my page does not render correctly:</h2>
<ul>
<li><strong>Possible Cause:</strong> Your website may be using browser specific features that are no longer supported.  Use web standards whenever possible.</p>
<ul>
<li><strong>Resolution:</strong> Run the <a href="http://ie.microsoft.com/testdrive/HTML5/CompatInspector/Default.html">Compatibility Inspector tool</a>.</li>
</ul>
</li>
<li><strong>Possible Cause:</strong> Your website may be using 3rd party plug-ins or like Flash, Quicktime, and Silverlight that are no longer supported by the IE10 metro. Use web standards whenever possible.
<ul>
<li><strong>Resolution:</strong> Learn how to create plug-in free experiences.  A complete step-by-step guide will be available shortly.</li>
</ul>
</li>
<li><strong>Possible Cause:</strong> Your website may be loading browser version-specific CSS files:
<ul>
<li><strong>Resolution:</strong> Ensure layout is avoiding CSS hacks where possible.  Learn more about investigating CSS issues <a href="http://msdn.microsoft.com/en-us/library/gg699340(v=VS.85).aspx">here</a>.</li>
</ul>
</li>
</ul>
<p>A list of common problems is available in the <a href="http://msdn.microsoft.com/en-us/library/ff986083(v=VS.85).aspx">IE Compatibility Cookbook</a>. </p>
<p>If you’re unable to update your docmode with these resolution steps, tweet us <a href="http://twitter.com/#!/IE">@IE</a> or check the <a href="http://social.msdn.microsoft.com/Forums/en-US/iewebdevelopment/threads">Forums on MSDN</a>.</p>
<p>For further detail, try these articles:</p>
<ul>
<li><a href="http://msdn.microsoft.com/en-us/library/cc288325(v=VS.85).aspx">Defining Document Capability</a> @ MSDN</li>
<li><a href="http://msdn.microsoft.com/en-us/library/gg699340(v=VS.85).aspx">Investigating Document Mode Issues</a> @ MSDN</li>
<li><a href="http://blogs.msdn.com/b/ie/archive/2011/12/14/interoperable-html5-quirks-mode-in-ie10.aspx">Interoperable Quirks Mode in IE10</a> @ IE Blog</li>
<li><a href="http://ie.microsoft.com/testdrive/HTML5/CompatInspector/">Compatibility Inspector tool</a> @ IETestDrive.com</li>
<li><a href="http://www.w3.org/QA/Tips/Doctype">Don’t Forget to Add a Doctype</a> @ W3C.org</li>
</ul>
<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.reybango.com/2012/01/09/fix-common-ie-problems-update-your-docmode-for-web-standards/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Site Pinning: Rotating Overlay Icons for Multiple Service Notifications</title>
		<link>http://blog.reybango.com/2011/10/18/site-pinning-rotating-overlay-icons-for-multiple-service-notifications/</link>
		<comments>http://blog.reybango.com/2011/10/18/site-pinning-rotating-overlay-icons-for-multiple-service-notifications/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 13:00:11 +0000</pubDate>
		<dc:creator>Rey Bango</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://blog.reybango.com/?p=1759</guid>
		<description><![CDATA[In my last post, I went over how to use IE9′s Site Pinning API to implement overlay icons to enhance user notifications. The demo focused on how to display a numeric icon to indicate when a specific event (e.g.: messages in an inbox) had occurred. Pinned site with overlay icon It&#8217;s a really great way [...]
Related posts:<ol>
<li><a href='http://blog.reybango.com/2011/10/10/using-site-pinning-and-overlay-icons-for-enhanced-user-notifications-and-engagement/' rel='bookmark' title='Using Site Pinning and Overlay Icons for Enhanced User Notifications and Engagement'>Using Site Pinning and Overlay Icons for Enhanced User Notifications and Engagement</a> <small>I was recently doing some testing of IE9&#8242;s Site Pinning...</small></li>
</ol>

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://blog.reybango.com/2011/10/10/using-site-pinning-and-overlay-icons-for-enhanced-user-notifications-and-engagement/">last post</a>, I went over how to use <a href="http://msdn.microsoft.com/en-us/library/gg491731(v=VS.85).aspx">IE9′s Site Pinning API</a> to implement overlay icons to enhance user notifications. The demo focused on how to display a numeric icon to indicate when a specific event (e.g.: messages in an inbox) had occurred. </p>
<p><a href="http://blog.reybango.com/wp-content/uploads/2011/10/overlay-icon.png"><img src="http://blog.reybango.com/wp-content/uploads/2011/10/overlay-icon.png" alt="" title="overlay-icon" width="508" height="150" class="alignleft size-full wp-image-1710" /></a><br />
<em>Pinned site with overlay icon</em></p>
<p>It&#8217;s a really great way of letting your users know that there&#8217;s pending information for them to check into. But what happens if your site offers multiple types of notifications? With websites offering so much functionality nowadays, it&#8217;s pretty common for them to also serve up multiple types of notifications, from friend requests and event reminders to new messages and game invites.</p>
<h2>Rotating Multiple Overlays Icons</h2>
<p>The great thing about the Site Pinning API is that it&#8217;s very flexible and through some JavaScript magic, you can easily display multiple overlay icons for the various services you have. In this demo, I want to rotate through 3 different overlay icons that alert the user to pending messages, requests and actions.</p>
<p>As before, I had to flex some of my artistic talent by creating the overlay icons using <a href="http://buildmypinnedsite.com/#step_1">the x-icon editor</a>. I created 5 of each and here&#8217;s how the first three look:</p>
<p><a href="http://blog.reybango.com/wp-content/uploads/2011/10/messages-1.png"><img src="http://blog.reybango.com/wp-content/uploads/2011/10/messages-1.png" alt="" title="messages-1" width="32" height="32" class="alignleft size-full wp-image-1762" /></a><a href="http://blog.reybango.com/wp-content/uploads/2011/10/requests-1.png"><img src="http://blog.reybango.com/wp-content/uploads/2011/10/requests-1.png" alt="" title="requests-1" width="32" height="32" class="alignleft size-full wp-image-1763" /></a><a href="http://blog.reybango.com/wp-content/uploads/2011/10/actions-1.png"><img src="http://blog.reybango.com/wp-content/uploads/2011/10/actions-1.png" alt="" title="actions-1" width="32" height="32" class="alignleft size-full wp-image-1764" /></a></p>
<p>The code changed slightly from the last demo in order to accommodate multiple bits of data per fetch. While previously, I was only fetching one piece of data, in this demo, I&#8217;m returning 3, one for each notification type:</p>
<pre class="brush: jscript; title: ; notranslate"> myPin.init([{ &quot;data&quot; : [{ &quot;label&quot; : &quot;Messages&quot;, &quot;ntype&quot; : &quot;M&quot;, &quot;num&quot;: 2 }, { &quot;label&quot; : &quot;Requests&quot;, &quot;ntype&quot; : &quot;R&quot;, &quot;num&quot;: 1 }, { &quot;label&quot; : &quot;Actions&quot;, &quot;ntype&quot; : &quot;A&quot;, &quot;num&quot;: 3 }] },
		        { &quot;data&quot; : [{ &quot;label&quot; : &quot;Messages&quot;, &quot;ntype&quot; : &quot;M&quot;, &quot;num&quot;: 1 }, { &quot;label&quot; : &quot;Requests&quot;, &quot;ntype&quot; : &quot;R&quot;, &quot;num&quot;: 5 }, { &quot;label&quot; : &quot;Actions&quot;, &quot;ntype&quot; : &quot;A&quot;, &quot;num&quot;: 2 }] },
		        { &quot;data&quot; : [{ &quot;label&quot; : &quot;Messages&quot;, &quot;ntype&quot; : &quot;M&quot;, &quot;num&quot;: 5 }, { &quot;label&quot; : &quot;Requests&quot;, &quot;ntype&quot; : &quot;R&quot;, &quot;num&quot;: 1 }, { &quot;label&quot; : &quot;Actions&quot;, &quot;ntype&quot; : &quot;A&quot;, &quot;num&quot;: 4 }] }
			   ]);</pre>
<p>As a reminder, the method <em>getData()</em> <strong>simulates</strong> grabbing remote data. So if we look at the data above, we can simulate pulling back three distinct bits of data. This is why we call the method every 10 seconds using setInterval. This allows us to see how notifications might look over a period of time. </p>
<pre class="brush: jscript; title: ; notranslate">setInterval(function () { myPin.getData() }, 10000);</pre>
<p>The next thing that changed is the use of a timer to allow a slight delay while rendering the overlay icons. Using <em>setTimeout()</em> provides enough of delay so that an individual overlay icon is visible to the user before rotating on to the next icon. If we didn&#8217;t have this delay, the rotation would be way too fast to provide any useful notification. If we look at the following image, we can see what the notification will look like:</p>
<p><a href="http://blog.reybango.com/wp-content/uploads/2011/10/overlay.png"><img src="http://blog.reybango.com/wp-content/uploads/2011/10/overlay.png" alt="" title="overlay" width="332" height="150" class="alignleft size-full wp-image-1773" /></a><br />
<em>Overlay icon showing numeric notification</em></p>
<p>This is accomplished via the following code:</p>
<pre class="brush: jscript; title: ; notranslate">// Grab the current set of data...
currData = this.dataBin[this.currIndex++].data;		

/* We're going to display a new overlay every x number of seconds to display a new overlay icon so
   let's loop through the data elements for the current set of data... */
for (var i=0; i &lt; currData.length; i++ ){

	(function(idx) { setTimeout( function(){ myPin.dispOverlay( currData[idx] ); }, 1000 * idx); }( i ));					

}</pre>
<p>Here&#8217;s what&#8217;s happening. In the first line, I grab the current set of data that holds all of the notification information (messages, requests &#038; actions). That data looks like this:</p>
<pre class="brush: jscript; title: ; notranslate">[{ &quot;label&quot; : &quot;Messages&quot;, &quot;ntype&quot; : &quot;M&quot;, &quot;num&quot;: 2 },
{ &quot;label&quot; : &quot;Requests&quot;, &quot;ntype&quot; : &quot;R&quot;, &quot;num&quot;: 1 },
{ &quot;label&quot; : &quot;Actions&quot;, &quot;ntype&quot; : &quot;A&quot;, &quot;num&quot;: 3 }]</pre>
<p>I loop through each group of data and assign a timer using <em>setTimeout()</em> that will call <em>dispOverlay()</em> at ~1 second intervals. That&#8217;s the magic code that allows for the gradual icon rendering delay I mentioned before. The expected functionality is that the &#8220;messages&#8221; icon will render followed by the &#8220;requests&#8221; icon 1 second later, and then finally the &#8220;actions&#8221; icon.</p>
<p>Now, you might be wondering why I have an anonymous function wrapping the <em>setTimeout()</em>. It&#8217;s because I have a closure within setTimeout which can <a href="http://james.padolsey.com/javascript/closures-in-javascript/">cause a common scoping issue</a> in which the variable &#8216;i&#8217;, which I use to grab the current index of data, will only be updated to the last index value. James Padolsey has a <a href="http://james.padolsey.com/javascript/closures-in-javascript/">great explanation on it</a> and thanks to <a href="https://twitter.com/jdalton">John David Dalton</a> for helping me troubleshoot this.</p>
<p>The final change is in <em>dispOverlay()</em> in which I need to determine which overlay icon needs to display. Since I now have three different types of notifications, I need a conditional statement to determine the type and build the correct icon name:</p>
<pre class="brush: jscript; title: ; notranslate">if (theData.ntype == &quot;M&quot;) {
	oImg = &quot;images/messages-&quot; + theData.num + &quot;.ico&quot;;
} else if (theData.ntype == &quot;R&quot;) {
	oImg = &quot;images/requests-&quot; + theData.num + &quot;.ico&quot;;
} else if (theData.ntype == &quot;A&quot;) {
	oImg = &quot;images/actions-&quot; + theData.num + &quot;.ico&quot;;
}</pre>
<p>This checks the type and serves up the right icon based on the type and the number of notifications pending for that type.</p>
<h2>The Demo and Final Code</h2>
<p>You can check out the demo by going here in IE9:</p>
<p><a href="http://reybango.com/demos/sprotate/index.html">http://reybango.com/demos/sprotate/index.html</a></p>
<p>When the page renders, drag the tab down to your taskbar and pin it. You should see a new window appear with your newly pinned site. Next, you’ll see the overlay icons appear in the taskbar and they should begin to cycle every 10 seconds.</p>
<p>Here’s the full source code. You can also <a href="reybango.com/demos/sprotate/src/sprotate.zip">download everything here</a>. </p>
<pre class="brush: xml; title: ; notranslate">&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Pinned Site - Rotating Overlay Icons&lt;/title&gt;
&lt;link rel=&quot;shortcut icon&quot; type=&quot;image/ico&quot; href=&quot;favicon.ico&quot; /&gt;
&lt;meta name=&quot;application-name&quot; content=&quot;Pinned Site Test&quot; /&gt;
&lt;meta name=&quot;msapplication-starturl&quot; content=&quot;http://reybango.com/demos/sprotate/index.html&quot; /&gt;
&lt;meta name=&quot;msapplication-navbutton-color&quot; content=&quot;#3480C0&quot; /&gt;
&lt;meta name=&quot;msapplication-window&quot; content=&quot;width=1024;height=768&quot; /&gt;
&lt;meta name=&quot;msapplication-tooltip&quot; content=&quot;Testing the Pinned Site API&quot; /&gt;
&lt;style&gt;
body {
    background: none repeat scroll 0 0 #4492CE;
    font: 440%/1.4em 'Segoe Light',Segoe,'Segoe UI','Meiryo Regular','Meiryo',sans-serif;
    color: #EDEFF4;
}

&lt;/style&gt;

&lt;/head&gt;

&lt;body&gt;

&lt;div&gt;
&lt;h1&gt;Pinned Sites&lt;/h1&gt;
&lt;p&gt;Rotating Overlay Icons&lt;/p&gt;
&lt;/div&gt;

&lt;script&gt;

	var myData = [];

    var myPin = {

        currIndex: 0,
        dataBin: [],

        getData: function () {

			var idx = 0, currData = [], cntr = 0, theData;

            // Determines whether the current page was launched as a pinned site...
            if (window.external.msIsSiteMode()) {

				// Grab the current set of data...
				currData = this.dataBin[this.currIndex++].data;		

				/* We're going to display a new overlay every x number of seconds to display a new overlay icon so
				   let's loop through the data elements for the current set of data... */
				for (var i=0; i &lt; currData.length; i++ ){

					(function(idx) { setTimeout( function(){ myPin.dispOverlay( currData[idx] ); }, 1e3 * idx); }( i ));					

				}

				if (this.currIndex &gt; 2) { this.currIndex = 0 }

            }

        },

        dispOverlay: function (theData) {

            var oImg = &quot;&quot;;

            // Is there any data?
            if (theData) {

                // Clear any preexisting overlay icon
                window.external.msSiteModeClearIconOverlay();

				// Render the overlay icon based on the data returned...
				if (theData.ntype == &quot;M&quot;) {
					oImg = &quot;images/messages-&quot; + theData.num + &quot;.ico&quot;;
				} else if (theData.ntype == &quot;R&quot;) {
					oImg = &quot;images/requests-&quot; + theData.num + &quot;.ico&quot;;
				} else if (theData.ntype == &quot;A&quot;) {
					oImg = &quot;images/actions-&quot; + theData.num + &quot;.ico&quot;;
				}				

                // Go ahead and create the overlay image and it's label...
                this.setOverlay(oImg, theData.label);

            }

        },

        setOverlay: function (icon, desc) {

            // Sets the overlay icons...
            window.external.msSiteModeSetIconOverlay(icon, desc);
            window.external.msSiteModeActivate();

        },

        init: function (myData) {

            this.dataBin = myData;
			this.getData();

        }

    };

    // This clears out any previously set overlay icons...
    window.external.msSiteModeClearIconOverlay();

    // Run it once to kick everything off...
    myPin.init([{ &quot;data&quot; : [{ &quot;label&quot; : &quot;Messages&quot;, &quot;ntype&quot; : &quot;M&quot;, &quot;num&quot;: 2 }, { &quot;label&quot; : &quot;Requests&quot;, &quot;ntype&quot; : &quot;R&quot;, &quot;num&quot;: 1 }, { &quot;label&quot; : &quot;Actions&quot;, &quot;ntype&quot; : &quot;A&quot;, &quot;num&quot;: 3 }] },
		        { &quot;data&quot; : [{ &quot;label&quot; : &quot;Messages&quot;, &quot;ntype&quot; : &quot;M&quot;, &quot;num&quot;: 1 }, { &quot;label&quot; : &quot;Requests&quot;, &quot;ntype&quot; : &quot;R&quot;, &quot;num&quot;: 5 }, { &quot;label&quot; : &quot;Actions&quot;, &quot;ntype&quot; : &quot;A&quot;, &quot;num&quot;: 2 }] },
		        { &quot;data&quot; : [{ &quot;label&quot; : &quot;Messages&quot;, &quot;ntype&quot; : &quot;M&quot;, &quot;num&quot;: 5 }, { &quot;label&quot; : &quot;Requests&quot;, &quot;ntype&quot; : &quot;R&quot;, &quot;num&quot;: 1 }, { &quot;label&quot; : &quot;Actions&quot;, &quot;ntype&quot; : &quot;A&quot;, &quot;num&quot;: 4 }] }
			   ]);

    // This is only here because I want to simulate pulling data on a regular interval...
    setInterval(function () { myPin.getData() }, 10000);

&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Related posts:<ol>
<li><a href='http://blog.reybango.com/2011/10/10/using-site-pinning-and-overlay-icons-for-enhanced-user-notifications-and-engagement/' rel='bookmark' title='Using Site Pinning and Overlay Icons for Enhanced User Notifications and Engagement'>Using Site Pinning and Overlay Icons for Enhanced User Notifications and Engagement</a> <small>I was recently doing some testing of IE9&#8242;s Site Pinning...</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.reybango.com/2011/10/18/site-pinning-rotating-overlay-icons-for-multiple-service-notifications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Site Pinning and Overlay Icons for Enhanced User Notifications and Engagement</title>
		<link>http://blog.reybango.com/2011/10/10/using-site-pinning-and-overlay-icons-for-enhanced-user-notifications-and-engagement/</link>
		<comments>http://blog.reybango.com/2011/10/10/using-site-pinning-and-overlay-icons-for-enhanced-user-notifications-and-engagement/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 13:00:06 +0000</pubDate>
		<dc:creator>Rey Bango</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://blog.reybango.com/?p=1707</guid>
		<description><![CDATA[I was recently doing some testing of IE9&#8242;s Site Pinning API and found out about a cool bit of functionality that can enhance user notifications. If you&#8217;re not familiar with site pinning, it&#8217;s a great way to allow users to have easy and quick access to their favorite sites via the Windows taskbar. There&#8217;s a [...]
No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>I was recently doing some testing of <a href="http://msdn.microsoft.com/en-us/library/gg491731(v=VS.85).aspx">IE9&#8242;s Site Pinning API</a> and found out about a cool bit of functionality that can enhance user notifications. If you&#8217;re not familiar with site pinning, it&#8217;s a great way to allow users to have easy and quick access to their favorite sites via the Windows taskbar. There&#8217;s a really nice <a href="http://www.beautyoftheweb.com/#/productguide/clean/seamless-with-windows-7/pinned-sites">overview on Beauty of the Web</a> that explains how it works.</p>
<h2>Keeping Users Up-to-Date</h2>
<p>One of the features the API provides is the notion of notifications that can allow developers to provide alerts to end users. The functionality allows you to dynamically insert custom overlay icons that can alert users when an important bit of information is available. These overlay icons are rendered over the favicon that is pinned to the taskbar. If you look at the image below, you can see it in action:</p>
<p><img src="http://blog.reybango.com/wp-content/uploads/2011/10/pinned.png" alt="" title="pinned" width="533" height="151" class="alignleft size-full wp-image-1712" /><br />
<em>Pinned site with no overlay icon</em></p>
<p><img src="http://blog.reybango.com/wp-content/uploads/2011/10/overlay-icon.png" alt="" title="overlay-icon" width="533" height="150" class="alignleft size-full wp-image-1710" /><br />
<em>Pinned site with overlay icon</em></p>
<p>So if you think about the possibilities, any site that offers users an inbox, special deals or sends out time-sensitive alerts could use this notification capability to keep their users up-to-date and more engaged on the site. Sites like the Huffington Post have already discovered that users that pinned HuffPost <a href="http://windowsteamblog.com/ie/b/ie/archive/2011/02/17/economics-of-the-web-ie9-users-that-pin-huffington-post-spend-49-more-time-on-site.aspx">spent 49% more time on the site</a>. </p>
<p>The best part is that adding this capability is insanely easy.</p>
<h2>Setting it Up</h2>
<p>For this post, we&#8217;re not going to go into the basics of how to pin a site. If you want to learn more, here&#8217;s a GREAT resource for getting you up to speed quickly: <a href="http://buildmypinnedsite.com/">BuildMyPinnedSite.com</a>. In fact, I used that site to help get me up-to-speed on the basics and it&#8217;s well-worth visiting.</p>
<p>To add notifications, you&#8217;ll need a couple of things:</p>
<ul>
<li>A cool favicon for your site. If you don&#8217;t have one, you can use the handy <a href="http://ie.microsoft.com/testdrive/Browser/IconEditor/Default.html">web-based X-Icon Editor</a> to create one.</li>
<li>A set of overlay icons to use. The recommended size is 16&#215;16.</li>
</ul>
<p>The API is JavaScript-based and we&#8217;ll use the following methods:</p>
<p><em><a href="http://msdn.microsoft.com/en-us/library/ff976301(v=VS.85).aspx">window.external.msSiteModeClearIconOverlay()</a><br />
<a href="http://msdn.microsoft.com/en-us/library/ff976304(v=VS.85).aspx">window.external.msSiteModeSetIconOverlay()</a><br />
<a href="http://msdn.microsoft.com/en-us/library/ff976297(v=VS.85).aspx">window.external.msSiteModeActivate()</a><br />
<a href="http://msdn.microsoft.com/en-us/library/ff976296(v=VS.85).aspx">window.external.msIsSiteMode()</a></em></p>
<p>The <em>window.external.msSiteModeClearIconOverlay</em> method is used to clear out any previously set overlay icons. <em>window.external.msSiteModeSetIconOverlay</em> allows you to specify the name of the notification icon as well as a accessible description. Lastly, we&#8217;ll use <em>window.external.msSiteModeActivate</em> to flash the pinned icon to notify the user of the update. Lastly, <em>window.external.msIsSiteMode</em> will let us know if the page was launched as a pinned site, thus allowing us to better determine when to run the code.</p>
<p>For the overlay icons, I&#8217;m using five images that display numbers 1 through 5 respectively to designate the number of messages are in a user&#8217;s inbox.</p>
<h2>The Code</h2>
<p>The first thing I need to add is the reference to my favicon. Note that if you don&#8217;t add one, then the Internet Explorer&#8217;s icon will be used by default.</p>
<pre class="brush: xml; title: ; notranslate">&lt;link rel=&quot;shortcut icon&quot; type=&quot;image/ico&quot; href=&quot;favicon.ico&quot; /&gt;</pre>
<p>Next, I want to create some sample data to work with. What I want to do for my demo is to have the overlay icon dynamically change every 5 seconds to simulate a more real-world scenario. The data is a simple array containing JSON data in each element.  </p>
<pre class="brush: jscript; title: ; notranslate">myPin.init([{ &quot;num&quot;: 1, &quot;label&quot;: &quot;Label 1&quot; },
                { &quot;num&quot;: 2, &quot;label&quot;: &quot;Label 2&quot; },
                { &quot;num&quot;: 3, &quot;label&quot;: &quot;Label 3&quot; },
                { &quot;num&quot;: 4, &quot;label&quot;: &quot;Label 4&quot; },
                { &quot;num&quot;: 5, &quot;label&quot;: &quot;Label 5&quot; }
                ]);
</pre>
<p>By setting a timer, I&#8217;ll be able to pull a new set of data every 5 seconds. </p>
<pre class="brush: jscript; title: ; notranslate">setInterval(function () { myPin.getData(); }, 5000);</pre>
<p>The main thing to keep in mind is that I&#8217;m &#8220;simulating&#8221; getting data from some remote host. In reality, all that the <em>myPin.getData()</em> method does is use a running counter to grab a new set of data and render a new overlay icon:</p>
<pre class="brush: jscript; title: ; notranslate">getData: function () {
            // A function that just simulates returning a result set...
            var idx = 0;

            // Determines whether the current page was launched as a pinned site.
            if (window.external.msIsSiteMode()) {

                idx = this.currIndex++;
                this.currIndex = (this.currIndex &lt; 5) ? this.currIndex : 0;

                this.dispOverlay(this.dataBin[idx]);

            }

}</pre>
<p>As you can see, it uses the running counter var <em>currIndex</em> to determine which array element to grab and then passes the data to <em>dispOverlay()</em>. This is where we use <em>window.external.msSiteModeClearIconOverlay()</em> to clear out any previously displayed overlay icons and also generate a string for the actual icon name. You can see that the oImg var is created on the fly based on the data we&#8217;re using. </p>
<pre class="brush: jscript; title: ; notranslate">dispOverlay: function (theData) {

            var oImg = &quot;&quot;;

            // Is there any data?
            if (theData) {

                // Clear any preexisting overlay icon
                window.external.msSiteModeClearIconOverlay();

                // Create the image string...
                oImg = &quot;images/num_&quot; + theData.num + &quot;.ico&quot;;

                // Go ahead and create the overlay image and it's label...
                this.setOverlay(oImg, theData.label);

            }

}</pre>
<p>That icon name, along with the accessible label text for the icon, is passed to <em>setOverlay()</em> which sets the overlay icon via <em>window.external.msSiteModeSetIconOverlay</em> and flashes the taskbar icon using <em>window.external.msSiteModeActivate</em>.</p>
<pre class="brush: jscript; title: ; notranslate">setOverlay: function (icon, desc) {

            // Sets the overlay icons...
            window.external.msSiteModeSetIconOverlay(icon, desc);
            window.external.msSiteModeActivate();

}</pre>
<h2>Test it Out</h2>
<p>To test this out, it&#8217;s a simple matter of running your newly pinned page in Internet Explorer 9, grabbing the tab and dragging it down to your taskbar:</p>
<p><img src="http://blog.reybango.com/wp-content/uploads/2011/10/dragged-and-pinned.png" alt="" title="dragged-and-pinned" width="576" height="151" class="alignleft size-full wp-image-1731" /><br />
<em>Tab being dragged to the taskbar</em></p>
<p><img src="http://blog.reybango.com/wp-content/uploads/2011/10/pinned.png" alt="" title="pinned" width="533" height="151" class="alignleft size-full wp-image-1712" /><br />
<em>Pinned site with no overlay icon</em></p>
<p>Five seconds after the page has been pinned, the code will fire off the first notification and continue to cycle through the other icons every subsequent five seconds. </p>
<p><img src="http://blog.reybango.com/wp-content/uploads/2011/10/overlay-icon.png" alt="" title="overlay-icon" width="533" height="150" class="alignleft size-full wp-image-1710" /><br />
<em>Pinned site with overlay icon</em></p>
<p>An important thing to remember is that the <a href="http://msdn.microsoft.com/en-us/library/gg589512(v=VS.85).aspx">IE F12 Developer tools</a> are available to you to use in debugging your pinned site. So if you run into quirks, simply press the F12 key and the tools will appear.</p>
<p><a href="http://blog.reybango.com/wp-content/uploads/2011/10/ietools.png"><img src="http://blog.reybango.com/wp-content/uploads/2011/10/ietools-300x225.png" alt="" title="ietools" width="300" height="225" class="alignleft size-medium wp-image-1736" /></a></p>
<h2>The Demo and Final Code</h2>
<p>You can check out the demo I whipped up by going here in IE9:</p>
<p><a href="http://reybango.com/demos/sitepinning/index.html">http://reybango.com/demos/sitepinning/index.html</a></p>
<p>When the page renders, drag the tab down to your taskbar and pin it. You should see a new windows appear with your newly pinned site. Five seconds later, you&#8217;ll see the first overlay icon appear in the taskbar.</p>
<p>Here&#8217;s the full source code. You can also <a href="http://reybango.com/demos/sitepinning/src/pinned-sites-overlay-icons.zip">download everything here</a>. The really great part is that it isn&#8217;t a lot of code to implement this. In fact, to use the API only required 4 method calls. The bulk of the code was to simulate pulling in data. And the <a href="<a href="http://windowsteamblog.com/ie/b/ie/archive/2011/02/17/economics-of-the-web-ie9-users-that-pin-huffington-post-spend-49-more-time-on-site.aspx">&#8220;>impact on user engagement</a> is certainly worth adding in the capability.</p>
<pre class="brush: xml; title: ; notranslate">&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Pinned Site Test&lt;/title&gt;
&lt;link rel=&quot;shortcut icon&quot; type=&quot;image/ico&quot; href=&quot;favicon.ico&quot; /&gt;
&lt;meta name=&quot;application-name&quot; content=&quot;Pinned Site Test&quot; /&gt;
&lt;meta name=&quot;msapplication-starturl&quot; content=&quot;http://reybango.com/demos/sitepinning/index.html&quot; /&gt;
&lt;meta name=&quot;msapplication-navbutton-color&quot; content=&quot;#3480C0&quot; /&gt;
&lt;meta name=&quot;msapplication-window&quot; content=&quot;width=1024;height=768&quot; /&gt;
&lt;meta name=&quot;msapplication-tooltip&quot; content=&quot;Testing the Pinned Site API&quot; /&gt;
&lt;style&gt;
body {
    background: none repeat scroll 0 0 #4492CE;
    color: #EDEFF4;
}

h1 {
    float: left;
    font: 440%/1.4em 'Segoe Light',Segoe,'Segoe UI','Meiryo Regular','Meiryo',sans-serif;
    margin-left: 10px;
    position: relative;
}
&lt;/style&gt;

&lt;/head&gt;

&lt;body&gt;

&lt;h1&gt;Pinned Site Test&lt;/h1&gt;

&lt;div&gt;&lt;/div&gt;

&lt;script&gt;

    var myPin = {

        currIndex: 0,
        dataBin: [],

        getData: function () {
            // A function that just simulates returning a result set...
            var idx = 0;

            // Determines whether the current page was launched as a pinned site.
            if (window.external.msIsSiteMode()) {

                idx = this.currIndex++;
                this.currIndex = (this.currIndex &lt; 5) ? this.currIndex : 0;

                this.dispOverlay(this.dataBin[idx]);

            }

        },

        setOverlay: function (icon, desc) {

            // Sets the overlay icons...
            window.external.msSiteModeSetIconOverlay(icon, desc);
            window.external.msSiteModeActivate();

        },

        dispOverlay: function (theData) {

            var oImg = &quot;&quot;;

            // Is there any data?
            if (theData) {

                // Clear any preexisting overlay icon
                window.external.msSiteModeClearIconOverlay();

                // Create the image string...
                oImg = &quot;images/num_&quot; + theData.num + &quot;.ico&quot;;

                // Go ahead and create the overlay image and it's label...
                this.setOverlay(oImg, theData.label);

            }

        },

        init: function (myData) {

            this.dataBin = myData;

        }

    };

    // This clears out any previously set overlay icons...
    window.external.msSiteModeClearIconOverlay();

    // Run it once to kick everything off...
    myPin.init([{ &quot;num&quot;: 1, &quot;label&quot;: &quot;Label 1&quot; },
                { &quot;num&quot;: 2, &quot;label&quot;: &quot;Label 2&quot; },
                { &quot;num&quot;: 3, &quot;label&quot;: &quot;Label 3&quot; },
                { &quot;num&quot;: 4, &quot;label&quot;: &quot;Label 4&quot; },
                { &quot;num&quot;: 5, &quot;label&quot;: &quot;Label 5&quot; }
                ]);

    // This is only here because I want to simulate pulling data on a regular interval...
    setInterval(function () { myPin.getData(); }, 5000);

&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.reybango.com/2011/10/10/using-site-pinning-and-overlay-icons-for-enhanced-user-notifications-and-engagement/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>MIX11 Day 1 Recap: IE10 &amp; HTML5</title>
		<link>http://blog.reybango.com/2011/04/13/mix11-day-1-recap-ie10-html5/</link>
		<comments>http://blog.reybango.com/2011/04/13/mix11-day-1-recap-ie10-html5/#comments</comments>
		<pubDate>Wed, 13 Apr 2011 16:41:56 +0000</pubDate>
		<dc:creator>Rey Bango</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://blog.reybango.com/?p=1659</guid>
		<description><![CDATA[Day 1 at MIX11 was awesome. The vibe was excitely what I expected: awesome and exciting. And the keynte kicked it off with the big news that the next version of Internet Explorer is already in progress and that IE10 Platform Preview 1 is ready for download. Since the launch of IE9, the concern that [...]
Related posts:<ol>
<li><a href='http://blog.reybango.com/2011/03/22/my-visual-studio-2010-html5-templates-are-updated-for-jquery-1-5-1-and-modernizr-1-7/' rel='bookmark' title='My Visual Studio 2010 HTML5 Templates are Updated for jQuery 1.5.1 and Modernizr 1.7'>My Visual Studio 2010 HTML5 Templates are Updated for jQuery 1.5.1 and Modernizr 1.7</a> <small>I wanted to do a refresh of the Visual Studio...</small></li>
<li><a href='http://blog.reybango.com/2011/04/12/mix11-interviews-the-appendto-team/' rel='bookmark' title='MIX11 Interviews: The appendTo Team'>MIX11 Interviews: The appendTo Team</a> <small>Had a chance to meetup with Mike Hostetler &#038; MS...</small></li>
</ol>

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.reybango.com/wp-content/uploads/2011/04/mix.jpg" alt="" title="mix" width="200" height="266" class="alignleft size-full wp-image-1661" style="float:right;margin-right:5px;"/>Day 1 at MIX11 was awesome. The vibe was excitely what I expected: awesome and exciting. And the keynte kicked it off with the big news that the next version of Internet Explorer is already in progress and that <a href="http://ie.microsoft.com/testdrive/Info/Downloads/Default.html">IE10<br />
Platform Preview 1 is ready for download</a>. Since the launch of IE9, the concern that I&#8217;ve consistently heard from developers is that they expected to wait another 2 years before a new release of Microsoft&#8217;s browser. From the tweets I saw yesterday, it seemed like there was a collective sigh of relief to know that a new version is under way and that there&#8217;s something to play with right now. Couple that with the list of IE10 features announced like CSS3 3D Transforms &#038; Transitions, Flexbox, and ES5 Strict Mode (and more), and I genuinely feel that developers are excited to see the great progress being made by the IE team. Shoot, even Douglas Crockford is happy! He&#8217;s at MIX and I made sure to ask what he thought and he mentioned that the addition of ES5 Strict Mode made him VERY happy&#8230;and WE WANT CROCKFORD HAPPY!! <img src='http://blog.reybango.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Another really cool announcement during the keynote was that <a href="http://modernizr.com">Modernizr</a> will be shipped with the ASP.NET MVC 3 Tools update. The importance of this can&#8217;t be understated. Microsoft has millions of developers building web applications using their tools and the fact that Modernizr will be shipped in Microsoft tooling is a HUGE validation to the work done by the Modernizr team as well as the importance of HTML5 to the future of web applications.</p>
<p>HTML5 is a hot topic with a ton of sessions focusing on the specification. I&#8217;ll be presenting on HTML5 polyfills and shims tomorrow to show developers how to leverage HTML5 while still supporting sites in non-modern browsers. It&#8217;s incredibly exciting (and intimidating) to be presenting to such a large group of developer so wish me luck!!</p>
<p>Interestingly, I kept hearing people mention the <a href="http://knockoutjs.com/">Knockout.js MVC/MVVM Framework</a> for managing your code organization and providing data-binding. I hadn&#8217;t heard of it so I&#8217;m definitely going to have to check it out.</p>
<p>More to come later&#8230;.</p>
<p>#ms_mix11_w</p>
<p>Related posts:<ol>
<li><a href='http://blog.reybango.com/2011/03/22/my-visual-studio-2010-html5-templates-are-updated-for-jquery-1-5-1-and-modernizr-1-7/' rel='bookmark' title='My Visual Studio 2010 HTML5 Templates are Updated for jQuery 1.5.1 and Modernizr 1.7'>My Visual Studio 2010 HTML5 Templates are Updated for jQuery 1.5.1 and Modernizr 1.7</a> <small>I wanted to do a refresh of the Visual Studio...</small></li>
<li><a href='http://blog.reybango.com/2011/04/12/mix11-interviews-the-appendto-team/' rel='bookmark' title='MIX11 Interviews: The appendTo Team'>MIX11 Interviews: The appendTo Team</a> <small>Had a chance to meetup with Mike Hostetler &#038; MS...</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.reybango.com/2011/04/13/mix11-day-1-recap-ie10-html5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MIX11 Interviews: The appendTo Team</title>
		<link>http://blog.reybango.com/2011/04/12/mix11-interviews-the-appendto-team/</link>
		<comments>http://blog.reybango.com/2011/04/12/mix11-interviews-the-appendto-team/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 16:04:07 +0000</pubDate>
		<dc:creator>Rey Bango</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://blog.reybango.com/?p=1655</guid>
		<description><![CDATA[Had a chance to meetup with Mike Hostetler &#038; MS MVP Elijah Manor of appendTo at Microsoft MIX 2011 ad we chatted about their new framework, Amplify. Check out the inteview: #ms_mix11_w No related posts. Related posts brought to you by Yet Another Related Posts Plugin.
No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Had a chance to meetup with <a href="http://twitter.com/#!/mikehostetler">Mike Hostetler</a> &#038; MS MVP <a href="http://twitter.com/#!/elijahmanor">Elijah Manor</a> of <a href="http://appendto.com">appendTo</a> at Microsoft MIX 2011 ad we chatted about their new framework, Amplify. Check out the inteview:</p>
<p><iframe title="YouTube video player" width="640" height="390" src="http://www.youtube.com/embed/XCHwrqnHxFM" frameborder="0" allowfullscreen></iframe></p>
<p> #ms_mix11_w</p>
<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.reybango.com/2011/04/12/mix11-interviews-the-appendto-team/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Visual Studio 2010 HTML5 Templates are Updated for jQuery 1.5.1 and Modernizr 1.7</title>
		<link>http://blog.reybango.com/2011/03/22/my-visual-studio-2010-html5-templates-are-updated-for-jquery-1-5-1-and-modernizr-1-7/</link>
		<comments>http://blog.reybango.com/2011/03/22/my-visual-studio-2010-html5-templates-are-updated-for-jquery-1-5-1-and-modernizr-1-7/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 22:53:39 +0000</pubDate>
		<dc:creator>Rey Bango</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://blog.reybango.com/?p=1596</guid>
		<description><![CDATA[I wanted to do a refresh of the Visual Studio 2010 HTML5 Templates I created last September. With jQuery now at v1.5.1 and Modernizr at v1.7, it was time for an update. If you&#8217;ve already downloaded my original templates, you can simply overwrite those with the following files. If you&#8217;re new to this, then download [...]
No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>I wanted to do a refresh of the <a href="http://blog.reybango.com/2010/09/21/how-to-create-html5-website-and-page-templates-for-visual-studio-2010/">Visual Studio 2010 HTML5 Templates I created last September</a>. With jQuery now at v1.5.1 and Modernizr at v1.7, it was time for an update.</p>
<p>If you&#8217;ve already downloaded my original templates, you can simply overwrite those with the following files. If you&#8217;re new to this, then download the files and drop them into the folders I mention immediately below each file:</p>
<p><a href='http://blog.reybango.com/wp-content/uploads/2011/03/HTML5-Page-Template.zip'>HTML5 Page Template with jQuery 1.5.1 &#038; Modernizr 1.7</a></p>
<p>Drop this into “Visual Studio 2010 > Templates > ItemTemplates” folder</p>
<p><a href='http://blog.reybango.com/wp-content/uploads/2011/03/HTML5-Web-Site.zip'>HTML5 Web Site Template with jQuery 1.5.1 &#038; Modernizr 1.7</a></p>
<p>Drop this into “Visual Studio 2010 > Templates > ProjectTemplates” folder</p>
<h2>Using the Templates</h2>
<p>Once in place, all you have to do is select “File=>New Web Site” to use the new template:</p>
<p><a href="http://blog.reybango.com/wp-content/uploads/2010/09/template-choice.png"><img src="http://blog.reybango.com/wp-content/uploads/2010/09/template-choice-300x207.png" alt="" title="template-choice" class="alignleft size-medium wp-image-1371" width="300" height="207"></a></p>
<p>To create a new HTML5 web page template, you&#8217;d select “File=>New File” to choose the HTML5 Page Template</p>
<p><a href="http://blog.reybango.com/wp-content/uploads/2011/03/html5-page-template.png"><img src="http://blog.reybango.com/wp-content/uploads/2011/03/html5-page-template-300x207.png" alt="" title="html5-page-template" width="300" height="207" class="alignleft size-medium wp-image-1609" /></a></p>
<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.reybango.com/2011/03/22/my-visual-studio-2010-html5-templates-are-updated-for-jquery-1-5-1-and-modernizr-1-7/feed/</wfw:commentRss>
		<slash:comments>45</slash:comments>
		</item>
		<item>
		<title>IE6countdown.com &#8211; Pushing for IE6 to Die</title>
		<link>http://blog.reybango.com/2011/03/04/ie6countdown-com-pushing-for-ie6-to-die/</link>
		<comments>http://blog.reybango.com/2011/03/04/ie6countdown-com-pushing-for-ie6-to-die/#comments</comments>
		<pubDate>Fri, 04 Mar 2011 21:39:48 +0000</pubDate>
		<dc:creator>Rey Bango</dc:creator>
				<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://blog.reybango.com/?p=1582</guid>
		<description><![CDATA[Still not convinced that Microsoft is serious about getting Internet Explorer 6 users to upgrade? I&#8217;ve not seen too many companies that actually create a site dedicated to moving users off of their product but that&#8217;s what Microsoft is doing with the IE6 Countdown site. It&#8217;s a great initiative that helps people better understand where [...]
No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Still not convinced that Microsoft is serious about getting Internet Explorer 6 users to upgrade? I&#8217;ve not seen too many companies that actually create a site dedicated to moving users off of their product but that&#8217;s what Microsoft is doing with the <a href="http://ie6countdown.com/">IE6 Countdown site</a>.</p>
<p><a href="http://ie6countdown.com/"><img src="http://blog.reybango.com/wp-content/uploads/2011/03/map1.png" alt="" title="map" width="600" height="248" class="alignleft size-full wp-image-1587" /></a></p>
<p>It&#8217;s a great initiative that helps people better understand where the highest usage of IE6 is along with information to help users upgrade to a better, more modern version of Internet Explorer. The site also provides a <a href="http://ie6countdown.com/join-us.html">code snippet that you can include in your site</a> that will prompt IE6 users to upgrade.</p>
<p>From the looks of it, China and South Korea have the largest amount of IE6 users worldwide although the U.S. at 2.9% is still pretty high. We need to get this figure down to about 1% at which point the usage will be so small that we can focus on modern browsers.</p>
<p>Also, if you have friends who are corporate users and they feel stuck, be sure to tell them about <a href="http://ie6countdown.com/educate-others.html">the resources outlined here</a>.</p>
<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.reybango.com/2011/03/04/ie6countdown-com-pushing-for-ie6-to-die/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Want to Build Apps for Windows Phone 7? Get Free Training at Various Locations Nationwide.</title>
		<link>http://blog.reybango.com/2010/09/28/want-to-build-apps-for-windows-phone-7-get-free-training-at-various-locations-nationwide/</link>
		<comments>http://blog.reybango.com/2010/09/28/want-to-build-apps-for-windows-phone-7-get-free-training-at-various-locations-nationwide/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 13:58:57 +0000</pubDate>
		<dc:creator>Rey Bango</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://blog.reybango.com/?p=1395</guid>
		<description><![CDATA[I&#8217;m pretty excited about the new Windows Phone 7. I&#8217;ve used it several times and I have to say it is a VERY hot phone and I can&#8217;t wait to get mine. I just got word that Microsoft will be putting on events nationwide to help developers learn how to build applications for this new [...]
No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.msdnevents.com/wp7"><img src="http://blog.reybango.com/wp-content/uploads/2010/09/wp7train1.png" alt="" title="wp7train" width="250" height="147" class="alignleft size-full wp-image-1406" style="float:left; margin-right: 5px; margin-bottom: 5px;" /></a>I&#8217;m pretty excited about the new <a href="http://www.windowsphone7.com/">Windows Phone 7</a>. I&#8217;ve used it several times and I have to say it is a VERY hot phone and I can&#8217;t wait to get mine. I just got word that Microsoft will be putting on events nationwide to help developers learn how to build applications for this new platform. Here&#8217;s the deal:</p>
<blockquote><p>Experience two days of fast-paced learning and create high-demand applications with Windows Phone 7. First, you’ll go under the hood of Windows Phone 7. The next day, attend a hands-on app building workshop. Bring your best ideas and prepare to upload into the full-service Marketplace. Visit <a href="http://www.msdnevents.com/wp7">www.msdnevents.com/wp7</a>  for details.</p></blockquote>
<p>If you&#8217;re a mobile developer or considering jumping into the mobile space, this is a great opportunity to get great <strong>FREE</strong> exposure to Microsoft&#8217;s newest platform and get your apps loaded up onto the marketplace quickly.</p>
<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.reybango.com/2010/09/28/want-to-build-apps-for-windows-phone-7-get-free-training-at-various-locations-nationwide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Create HTML5 Website and Page Templates for Visual Studio 2010</title>
		<link>http://blog.reybango.com/2010/09/21/how-to-create-html5-website-and-page-templates-for-visual-studio-2010/</link>
		<comments>http://blog.reybango.com/2010/09/21/how-to-create-html5-website-and-page-templates-for-visual-studio-2010/#comments</comments>
		<pubDate>Tue, 21 Sep 2010 19:40:31 +0000</pubDate>
		<dc:creator>Rey Bango</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.reybango.com/?p=1356</guid>
		<description><![CDATA[Now that I work at Microsoft, I&#8217;m using Visual Studio 2010 as my main editor. By default, an empty web page is created with an XHTML 1.0 doctype and it&#8217;s pretty barebones. Since I&#8217;m focusing on HTML5 &#038; JavaScript development, having to constantly update the page with references to the new HTML5 doctype, jQuery, Modernizr [...]
No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Now that I work at Microsoft, I&#8217;m using Visual Studio 2010 as my main editor. By default, an empty web page is created with an XHTML 1.0 doctype and it&#8217;s pretty barebones. Since I&#8217;m focusing on HTML5 &#038; JavaScript development, having to constantly update the page with references to the new HTML5 doctype, jQuery, Modernizr and all of the other tags I use for my pages was becoming a drag. </p>
<p>Today, I noticed a <a href="http://rathersplendid.net/home/coda-clip-library-for-html5">blog post by Zander Martineau</a> in which he added a lot of HTML5 goodness to the Coda IDE in the form of clips, which is the code snippet format supported by Coda. This got me inspired to find out how to do something similar in Visual Studio, so I pinged Damian Edwards of the Visual Studio team for advice. He pointed me to the following article which explained how to create <a href="http://msdn.microsoft.com/en-us/library/tsyyf0yh.aspx">&#8220;Item Templates&#8221; in Visual Stuido</a>.</p>
<p>The gist of it is that you can take any page that you create and turn it into a re-usable template via the &#8220;File->Export Template&#8230;&#8221; wizard. It walks you through the process of choosing a specific file or entire project/website to use as a template. </p>
<h2>Adding a Page Template</h2>
<p>So here&#8217;s the basic HTML5 template I wanted to include:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!doctype html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
	&lt;meta charset=&quot;utf-8&quot; /&gt;
	&lt;title&gt;&lt;/title&gt;
	&lt;meta name=&quot;description&quot; content=&quot;&quot; /&gt;
	&lt;meta name=&quot;keywords&quot; content=&quot;&quot; /&gt;
	&lt;meta name=&quot;author&quot; content=&quot;&quot; /&gt;
	&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width; initial-scale=1.0&quot; /&gt;

    &lt;!-- !CSS --&gt;
    &lt;link href=&quot;css/html5reset.css&quot; rel=&quot;stylesheet&quot; /&gt;
    &lt;link href=&quot;css/style.css&quot; rel=&quot;stylesheet&quot; /&gt;

    &lt;!-- !Modernizr - All other JS at bottom
	&lt;script src=&quot;js/modernizr-1.5.min.js&quot;&gt;&lt;/script&gt; --&gt;

	&lt;!-- Grab Microsoft's or Google's CDN'd jQuery. fall back to local if necessary --&gt;
    &lt;!-- &lt;script src=&quot;http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt; --&gt;
	&lt;!-- &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js&quot;&gt;&lt;/script&gt; --&gt;
	&lt;script&gt;	    !window.jQuery &amp;&amp; document.write('&lt;script src=&quot;js/jquery-1.4.2.min.js&quot;&gt;&lt;\/script&gt;')&lt;/script&gt;

&lt;/head&gt;

&lt;body&gt;
	&lt;div id=&quot;container&quot;&gt;

	&lt;/div&gt;
&lt;/body&gt;

&lt;/html&gt;
</pre>
<p>After I created and saved this page, I went to &#8220;File->Export Template&#8230;&#8221; and followed these steps:</p>
<p><a href="http://blog.reybango.com/wp-content/uploads/2010/09/export-1.png"><img src="http://blog.reybango.com/wp-content/uploads/2010/09/export-1-300x236.png" alt="" title="export-1" width="300" height="236" class="alignleft size-medium wp-image-1360" /></a></p>
<p><a href="http://blog.reybango.com/wp-content/uploads/2010/09/export-2.png"><img src="http://blog.reybango.com/wp-content/uploads/2010/09/export-2-300x236.png" alt="" title="export-2" width="300" height="236" class="alignleft size-medium wp-image-1361" /></a></p>
<p><a href="http://blog.reybango.com/wp-content/uploads/2010/09/export-3.png"><img src="http://blog.reybango.com/wp-content/uploads/2010/09/export-3-300x236.png" alt="" title="export-3" width="300" height="236" class="alignleft size-medium wp-image-1362" /></a></p>
<p><a href="http://blog.reybango.com/wp-content/uploads/2010/09/export-4.png"><img src="http://blog.reybango.com/wp-content/uploads/2010/09/export-4-300x236.png" alt="" title="export-4" width="300" height="236" class="alignleft size-medium wp-image-1363" /></a></p>
<p>Now, when I select &#8220;File->New File&#8230;&#8221; to add a new item, my template is available:</p>
<p><a href="http://blog.reybango.com/wp-content/uploads/2010/09/export-5.png"><img src="http://blog.reybango.com/wp-content/uploads/2010/09/export-5-300x207.png" alt="" title="export-5" width="300" height="207" class="alignleft size-medium wp-image-1364" /></a></p>
<h2>Adding a Web Site Template</h2>
<p>Creating this page template was a huge help. I can now start with a fresh template that specifically works for my style of development but I didn&#8217;t want to stop there. I also wanted to create a skeleton that I could use as the basis for new websites and I wanted it to package all of the important files that I use from the get-go. In this case, I wanted:</p>
<ul>
<li>My HTML5 basic page template</li>
<li>jQuery</li>
<li>Modernizr</li>
<li>HTML5 Reset CSS file</li>
<li>An empty CSS file called style.css</li>
<li>A consistent folder structure for all of these</li>
</ul>
<p>The first thing I needed to do was to create a new website in Visual Studio. From there, I needed to create and/or organize all of the files that I wanted as the basis for my skeleton. Using the same Export Template wizard, I followed the following steps to create my project skeleton:</p>
<p><a href="http://blog.reybango.com/wp-content/uploads/2010/09/project-1.png"><img src="http://blog.reybango.com/wp-content/uploads/2010/09/project-1-300x236.png" alt="" title="project-1" width="300" height="236" class="alignleft size-medium wp-image-1369" /></a></p>
<p><a href="http://blog.reybango.com/wp-content/uploads/2010/09/project-2.png"><img src="http://blog.reybango.com/wp-content/uploads/2010/09/project-2-300x236.png" alt="" title="project-2" width="300" height="236" class="alignleft size-medium wp-image-1370" /></a></p>
<p>So now when I select &#8220;File=>New Web Site&#8221; I see my new template:</p>
<p><a href="http://blog.reybango.com/wp-content/uploads/2010/09/template-choice.png"><img src="http://blog.reybango.com/wp-content/uploads/2010/09/template-choice-300x207.png" alt="" title="template-choice" width="300" height="207" class="alignleft size-medium wp-image-1371" /></a></p>
<p>and when I choose that, here&#8217;s what gets loaded for my new site:</p>
<p><a href="http://blog.reybango.com/wp-content/uploads/2010/09/solution-explorer.png"><img src="http://blog.reybango.com/wp-content/uploads/2010/09/solution-explorer.png" alt="" title="solution-explorer" width="210" height="285" class="alignleft size-full wp-image-1372" /></a></p>
<h2>Download the Templates</h2>
<h3><em>Note: The templates in this article have been updated to support jQuery 1.5.1 &#038; Modernizr 1.7. <a href="http://blog.reybango.com/2011/03/22/my-visual-studio-2010-html5-templates-are-updated-for-jquery-1-5-1-and-modernizr-1-7/">Check it out here</a>.</em><br />
</h3>
<p>This is a huge time-saver for me and I want to share this. I&#8217;ve made both templates available for download so you can drop them into Visual Studio yourself. Just grab the specific file and drop the zip into the folder I specified:</p>
<p><a href='http://blog.reybango.com/wp-content/uploads/2010/09/HTML5-Page-Template.zip'>HTML5 Page Template</a></p>
<p>Drop this into &#8220;Visual Studio 2010 > Templates > ItemTemplates&#8221; folder</p>
<p><a href='http://blog.reybango.com/wp-content/uploads/2010/09/HTML5-Web-Site.zip'>HTML5 Web Site Template</a></p>
<p>Drop this into &#8220;Visual Studio 2010 > Templates > ProjectTemplates&#8221; folder</p>
<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.reybango.com/2010/09/21/how-to-create-html5-website-and-page-templates-for-visual-studio-2010/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
		<item>
		<title>How to Add Internet Explorer 9 Jump Lists to Your Site</title>
		<link>http://blog.reybango.com/2010/09/16/how-to-add-internet-explorer-9-jump-lists-to-your-site/</link>
		<comments>http://blog.reybango.com/2010/09/16/how-to-add-internet-explorer-9-jump-lists-to-your-site/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 16:26:53 +0000</pubDate>
		<dc:creator>Rey Bango</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://blog.reybango.com/?p=1318</guid>
		<description><![CDATA[With Internet Explorer 9 Beta is out, I&#8217;m poking around with some of the new features available. One of the new features called website pinning allows you to &#8220;pin&#8221; a website to your Windows 7 taskbar for easy access later. The pinning feature, in itself, isn&#8217;t really all that interesting to me because you could [...]
No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>With Internet Explorer 9 Beta is out, I&#8217;m poking around with some of the new features available. One of the new features called website <a href="http://www.beautyoftheweb.com/#/startdeveloping/pinning">pinning</a> allows you to &#8220;pin&#8221; a website to your Windows 7 taskbar for easy access later. The pinning feature, in itself, isn&#8217;t really all that interesting to me because you could create desktop shortcuts to webpages for years. What is cool, though, is the ability specify direct links to important pages from a pinned website. These are called &#8220;<a href="http://www.beautyoftheweb.com/#/productguide/clean/seamless-with-windows-7/jump-lists">Jump Lists</a>&#8221; and they provide navigation capabilities straight from a pinned website. The obvious use case for this is to allow users to immediately reach the most important pages on a site without having to open the browser, type in the web address and click on several links to get to a page.</p>
<p>The code to make jump lists available is very straightforward. A new meta tag called &#8220;msapplication-task&#8221; is available in IE9 which allows you to define the navigation for your pinned website. For example, I added the following jump list to my blog:</p>
<p><a href="http://blog.reybango.com/wp-content/uploads/2010/09/rey-pin.png"><img src="http://blog.reybango.com/wp-content/uploads/2010/09/rey-pin.png" alt="" title="rey-pin" width="263" height="274" class="alignleft size-full wp-image-1320" /></a></p>
<p>and here&#8217;s the code I added to my site to make that happen: </p>
<pre class="brush: xml; title: ; notranslate">
&lt;meta name=&quot;application-name&quot; content=&quot;Rey Bango Front-end Developer&quot;/&gt;
&lt;meta name=&quot;msapplication-tooltip&quot; content=&quot;Launch Rey Bango's Blog&quot;/&gt;
&lt;meta name=&quot;msapplication-task&quot; content=&quot;name=About;action-uri=/about/;icon-uri=/images/about.ico&quot; /&gt;
&lt;meta name=&quot;msapplication-task&quot; content=&quot;name=The Big List;action-uri=/the-big-list-of-javascript-css-and-html-development-tools-libraries-projects-and-books/;icon-uri=/images/list_links.ico&quot; /&gt;
&lt;meta name=&quot;msapplication-task&quot; content=&quot;name=jQuery Posts;action-uri=/category/jquery/;icon-uri=/images/jquery.ico&quot; /&gt;
&lt;meta name=&quot;msapplication-task&quot; content=&quot;name=Start Developing;action-uri=/category/javascript/;icon-uri=/images/script.ico&quot; /&gt;
&lt;link rel=&quot;shortcut icon&quot; href=&quot;/images/favicon.ico&quot; /&gt;
</pre>
<p>The <em>content</em> attribute allows you to specify the name, action and icon that you&#8217;d like to use for your jump list nav entry. Here&#8217;s a list of the available meta elements that you can use to format your jump lists:</p>
<style>
table, td { 
border: 1px solid #000; 
border-collapse:collapse;
line-height:140%;
margin:1px;
padding:4px
}
</style>
<table>
<tbody>
<tr>
<td>Name</td>
<td>Content</td>
</tr>
<tr>
<td>application-name</td>
<td>The name of the shortcut. If missing, the document title is used instead. </td>
</tr>
<tr>
<td>msapplication-tooltip</td>
<td>Optional text that is displayed as a tooltip when the mouse pointer hovers over the pinned site shortcut icon in the Windows Start menu or desktop. </td>
</tr>
<tr>
<td>msapplication-starturl</td>
<td>The root URL of the application. If missing, the address of the current page is used instead. Only HTTP, HTTPS, or FTP protocols are allowed. </td>
</tr>
<tr>
<td>msapplication-navbutton-color</td>
<td>The color of the <strong>Back</strong> and <strong>Forward</strong> buttons in the pinned site browser window. Any named color, or hex color value as defined by Cascading Style Sheets (CSS), Level 3 (CSS3) is valid. For more information, see <a href="http://msdn.microsoft.com/en-us/library/ms531197%28VS.85%29.aspx">Color Table</a>. If this <strong>meta</strong> element is absent, the color is based on the shortcut icon. </td>
</tr>
<tr>
<td>msapplication-window</td>
<td>The initial size of the pinned site browser window. Content sub-elements provide size as number <em>N</em>, separated by a semicolon.</p>
<ul>
<li>width=<em>N</em> (minimum 800)</li>
<li>height=<em>N</em> (minimum 600)</li>
</ul>
<p>				Note that user action overwrites this value. Windows preserves the user-generated window size when the user changes the size of the window and then closes the instance.
</td>
</tr>
</tbody>
</table>
<p>I could further customize the pinned site shortcut with start URL, initial window size, and navigation button color using the following code:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;meta name=&quot;msapplication-starturl&quot; content=&quot;http://blog.reybango.com/about/&quot;/&gt;
&lt;meta name=&quot;msapplication-window&quot; content=&quot;width=800;height=600&quot;/&gt;
&lt;meta name=&quot;msapplication-navbutton-color&quot; content=&quot;red&quot;/&gt;
</pre>
<h2>What About Other Browsers?</h2>
<p>Unfortunately, this feature is IE9-specific functionality and not available via other browsers or operating systems; only Windows. I really wish it was more portable because it&#8217;s a slick feature and I honestly don&#8217;t know if other browser makers could do something like this. Let&#8217;s see if they consider adopting this type of UX.</p>
<h2>Screencast</h2>
<p>To actually see how the pinning works and how jump lists appear, I created a screencast that explains the whole process:</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/DM-Tq-EMTVg?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/DM-Tq-EMTVg?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="480"></embed></object></p>
<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.reybango.com/2010/09/16/how-to-add-internet-explorer-9-jump-lists-to-your-site/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
