<?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>Windows 7 Insider &#187; admin</title>
	<atom:link href="http://win7insider.com/author/admin/feed/" rel="self" type="application/rss+xml" />
	<link>http://win7insider.com</link>
	<description>Information &#38; Tips About Windows 7</description>
	<lastBuildDate>Sun, 05 Feb 2012 08:45:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>CSS3 3D Transforms in IE10</title>
		<link>http://win7insider.com/2012/02/05/css3-3d-transforms-in-ie10/</link>
		<comments>http://win7insider.com/2012/02/05/css3-3d-transforms-in-ie10/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 08:45:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://win7insider.com/2012/02/05/css3-3d-transforms-in-ie10/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>CSS3 features make it easier to build rich and immersive Web experiences. A <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2011/11/21/adding-personality-with-css3-transitions-and-animations.aspx"><br />
    recent post</a> described how Web developers add personality to their sites with<br />
    CSS3 Transitions and Animations. <a rel="nofollow" target="_blank" href="http://www.w3.org/TR/css3-3d-transforms/"><br />
        CSS3 3D Transforms</a> add another dimension (literally) for developers to enhance<br />
    their sites. For example, the Windows 8 Metro style Start page uses subtle 3D transforms<br />
    to highlight pressed tiles, as shown below.</p>
<p>
    <img alt="Internet Explorer 10 tile shown not pressed (left) and pressed (right)" src="http://ieblog.members.winisp.net/images/20120202-ct-image3.png" /><br />
    Internet Explorer 10 tile shown not pressed (left) and pressed (right)</p>
<h2>Adding a 3rd Dimension to CSS Transforms</h2>
<p>Like CSS3 2D Transforms, 3D Transforms provides functions and values for the CSS<br />
    <code>transform</code> and <code>transform-origin</code> properties that apply geometric<br />
    transformations operations to HTML elements. CSS 3D Transforms extends the transforms<br />
    functions to enable 3D transforms. The <code>rotate()</code>,<code> scale()</code>,<br />
    <code>translate()</code>, <code>skew()</code>, and <code>matrix()</code> transform<br />
    functions are expanded to encompass the 3D space with a z-coordinate parameter—or<br />
    in the case of <code>matrix3d()</code>, an extra 10 parameters—and by spawning additional<br />
    transform functions, for example, <code>rotateZ()</code> and <code>scaleZ()</code>.</p>
<p>A new <code>perspective</code> transform function gives transformed elements depth<br />
    by making distant points appear smaller.</p>
<p>CSS3 3D Transforms also adds a few new CSS properties. In addition to the <code>transform</code> and <code>transform-origin</code> properties, IE10 supports vendor-prefixed <code>perspective</code>,<br />
    <code>perspective-origin</code>, <code>backface-visibility</code>, and the <code>flat</code> value of <code>transform-style</code>.</p>
<p><b>Note:</b> The markup examples in this post all use unprefixed properties as defined in the W3C standard. However, at this time all browsers that implement these features do so with vendor-specific prefixes. Please remember to add your browser’s prefix to the example markup when experimenting.</p>
<h2>Perspective</h2>
<p>The <code>perspective</code> transform function is important for 3D transforms. It<br />
    sets the viewer’s position and maps the viewable content onto a viewing pyramid,<br />
    which it subsequently projects onto a 2D viewing plane. Without specifying perspective,<br />
    all points in z-space are flattened onto the same 2D plane and there is no perception<br />
    of depth in the resulting transform. For some transforms, such as the translation<br />
    along the Z-axis shown below, the perspective transform function is essential for<br />
    visibly seeing any effect from the transform.</p>
<p>In the examples below <span><br />
</span>&nbsp;is the original, untransformed element and <span></span>&nbsp;is the transformed element</p>
<table>
<tr>
<td><img alt="Example of transform: perspective(500px) translate(0px, 0px, -300px);" src="http://ieblog.members.winisp.net/images/20120202-ct-image4.png" /></td>
<td>&nbsp;</td>
<td><img alt="Example of transform: translate(0px, 0px, -300px);" src="http://ieblog.members.winisp.net/images/20120202-ct-image5.png" /></td>
</tr>
<tr>
<td><code>transform: perspective(500px) <span>translate(0px, 0px, -300px);</span></code></td>
<td>&nbsp;</td>
<td><code>transform: <span>translate(0px, 0px, -300px);</span></code></td>
</tr>
<tr>
<td colspan="3">&nbsp;</td>
</tr>
<tr>
<td><img alt="transform: perspective(500px) rotateY(30deg);" src="http://ieblog.members.winisp.net/images/20120202-ct-image6.png" /></td>
<td>&nbsp;</td>
<td><img alt="Example of transform: rotateY(30deg);" src="http://ieblog.members.winisp.net/images/20120202-ct-image7.png" /></td>
</tr>
<tr>
<td><code>transform: perspective(500px) <span>rotateY(30deg);</span></code></td>
<td>&nbsp;</td>
<td><code>transform: rotateY(30deg);</code></td>
</tr>
</table>
<p>A shortcut for adding the perspective transform to several elements is to use the <code>perspective</code> property on their parent element(s). The <code>perspective</code> property applies the perspective transform to each of its child elements:</p>
<p><img alt="Example of two divs transformed by the same parent perspective property." src="http://ieblog.members.winisp.net/images/20120202-ct-image8.png" /></p>
<p><code>
<div>
<p><span>#parent</span> {</p>
<p><span>perspective</span>: <span>500px</span>;</p>
<p>}</p>
<p>&nbsp;</p>
<p><span>#div1</span> {</p>
<p><span>position</span>: <span>absolute</span>;</p>
<p><span>transform-origin</span>: <span>0px</span> <span>0px</span>;</p>
<p><span>transform</span>: <span>rotateY(30deg)</span>;</p>
<p>}</p>
<p>&nbsp;</p>
<p><span>#div2</span> {</p>
<p><span>position</span>: <span>absolute</span>;</p>
<p><span>transform-origin</span>: <span>0px</span> <span>0px</span>;</p>
<p><span>transform</span>: <span>rotateY(30deg)</span> <span>translate(220px)</span>;</p>
<p>}</p>
</div>
<p></code></p>
<p>The <code>perspective-origin</code> property can also be used in conjunction with <code>perspective</code> to shift the viewpoint away from the center of the element:</p>
<p><img alt="Illustration of the perspective-depth property." src="http://ieblog.members.winisp.net/images/20120202-ct-image9.png" /></p>
<p>Below, you can see that shifting the perspective origin to the left makes the content to the right of the original perspective origin appear farther away.</p>
<p><img alt="Example of two divs transformed by the same parent perspective-depth property." src="http://ieblog.members.winisp.net/images/20120202-ct-image10.png" /></p>
<p><code>
<div>
<p><span>#parent</span> {</p>
<p><span>perspective</span>: <span>500px</span>;</p>
<p><span>perspective-origin</span>: <span>-300px</span> <span>0px</span>;</p>
<p>}</p>
</div>
<p></code></p>
<h2>backface-visibility</h2>
<p>The <code>backface-visibility</code> property is useful for hiding the backface of content. By default, the backface is visible and the transformed content can be seen even when flipped. But when <code>backface-visibility</code> is set to <code>hidden</code>, content is hidden when the element is rotated such that the front side is no longer visible. This can be useful if you want to simulate an object with multiple sides, such as the card used in the example below. By setting <code>backface-visibility</code> to <code>hidden</code>, it’s easy to ensure that only the front-facing sides are visible.</p>
<p>CSS markup:</p>
<p><code>
<div>
<p><span>.card</span>, <span>.card</span> <span>div</span> {</p>
<p><span>position</span>: <span>absolute</span>;</p>
<p><span>width</span>: <span>102px</span>;</p>
<p><span>height</span>: <span>143px</span>;</p>
<p>}</p>
<p>&nbsp;</p>
<p><span>.card</span> <span>div:nth-child(1)</span> {</p>
<p><span>background-image</span>: <span>url(&#39;redback.png&#39;)</span>;</p>
<p>}</p>
<p>&nbsp;</p>
<p><span>.card</span> <span>div:nth-child(2)</span> {</p>
<p><span>background-image</span>: <span>url(&#39;8clubs.png&#39;)</span>;</p>
<p><span>backface-visibility</span>: <span>hidden</span>;</p>
<p>}</p>
</div>
<p></code></p>
<p>HTML markup for one card:</p>
<p><code>
<div>
<p><span>&lt;</span><span>div</span> <span>class</span><span>=&quot;card&quot;&gt;&lt;</span><span>div</span><span>&gt;&lt;/</span><span>div</span><span>&gt;&lt;</span><span>div</span><span>&gt;&lt;/</span><span>div</span><span>&gt;&lt;/</span><span>div</span><span>&gt;</span></p>
</div>
<p></code></p>
<p>Creating six cards as defined above and giving each a <code>style="transform: rotateY(<i>n</i>deg)"</code> property with a different rotation value <code><i>n</i></code>, results in this:</p>
<table>
<tr>
<td colspan="6"><img alt="Sequence of 6 cards rotating from front to back." src="http://ieblog.members.winisp.net/images/20120202-cardflip.png" /></td>
</tr>
<tr>
<td>rotateY(0deg);</td>
<td>rotateY(36deg);</td>
<td>rotateY(72deg);</td>
<td>rotateY(108deg);</td>
<td>rotateY(144deg);</td>
<td>rotateY(180deg);</td>
</tr>
</table>
<p>What’s happening in this example is that when there’s no rotation, you see the second <code>div</code>, the 8 of clubs&mdash;because it’s the one on top in drawing order. As we apply a rotation to the card and pass 90 degrees, the <code>backface-visibility: hidden;</code> property of the second <code>div</code> causes it to become invisible thereby exposing the first <code>div</code>, the card back.</p>
<h2>3D Transforms with Animations and Transitions</h2>
<p>Best of all, you can even use 3D transforms in conjunction with CSS transitions and<br />
    animations. If you are using IE10 or another browser that supports CSS3 Animations of CSS3 3D<br />
    Transforms, try this <a rel="nofollow" target="_blank" href="http://ieblog.members.winisp.net/images/20120202-scrollText.html">example of scrolling<br />
        text</a>, built by animating the <code>transform</code> property.</p>
<p>This is the CSS markup that achieves the effect shown in screen shots below.</p>
<p><code>
<div>
<p><span>#parentDiv</span> {</p>
<p><span>perspective</span>: <span>500px</span>;</p>
<p><span>perspective-origin</span>: <span>150px</span> <span>500px</span>;</p>
<p>}</p>
<p>&nbsp;</p>
<p><span>#div1</span> {</p>
<p><span>transform-origin</span>: <span>150px</span> <span>500px</span>;</p>
<p><span>animation</span>: <span>scrollText</span> <span>200s</span> <span>linear</span> <span>infinite</span>;</p>
<p>}</p>
<p>&nbsp;</p>
<p><span>@keyframes</span> scrollText {</p>
<p>0% { <span>transform</span>: <span>rotateX(45deg)</span> <span>translateY(500px)</span>; }</p>
<p>100% { <span>transform</span>: <span>rotateX(45deg)</span> <span>translateY(-8300px)</span>; }</p>
<p>}</p>
</div>
<p></code></p>
<p><img style="margin-right:5%" alt="Early frame from the demo that animates scrolling text with 3D transforms." src="http://ieblog.members.winisp.net/images/20120202-ct-image13.png" /> <img alt="Later frame from the demo that animates scrolling text with 3D transforms." src="http://ieblog.members.winisp.net/images/20120202-ct-image14.png" /></p>
<h2>Try It Today</h2>
<p>Try this out in IE10 on the <a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/windows/br229518">Windows Developer Preview</a>. The test drive demo <a rel="nofollow" target="_blank" href="http://ie.microsoft.com/testdrive/Graphics/hands-on-css3/hands-on_3d-transforms.htm">Hands On: 3D Transforms</a> can help visualize the possibilities that CSS 3D Transforms enables.</p>
<p>We’d love to see your creations!</p>
<p>—Jennifer Yu, Program Manager, Internet Explorer Graphics</p>
<div></div>
<p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=10263341" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://win7insider.com/2012/02/05/css3-3d-transforms-in-ie10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Sites and a Plug-in Free Web</title>
		<link>http://win7insider.com/2012/02/05/web-sites-and-a-plug-in-free-web/</link>
		<comments>http://win7insider.com/2012/02/05/web-sites-and-a-plug-in-free-web/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 08:45:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://win7insider.com/2012/02/05/web-sites-and-a-plug-in-free-web/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>The transition to a plug-in free Web is happening today. Any site that uses plug-ins<br />
    needs to understand what their customers experience when browsing plug-in free.<br />
    Lots of Web browsing today happens on devices that simply don’t support plug-ins.<br />
    Even browsers that do support plug-ins offer many ways to run plug-in free.
</p>
<p>Metro style IE runs plug-in free to improve battery life as well as security, reliability,<br />
    and privacy for consumers. <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/b8/archive/2011/09/14/metro-style-browsing-and-plug-in-free-html5.aspx"><br />
        Previously,</a> we wrote about how we use IE’s Compatibility View List to make<br />
    sure sites that have a plug-in free experience for other browsers provide that same<br />
    experience to IE10 users. This post describes a way for sites that continue to rely<br />
    on plug-ins to provide consumers browsing with Metro style IE the best possible<br />
    experience. </p>
<p>Developers with sites that need plug-ins can use an HTTP header or <code>meta</code> tag to signal<br />
    Metro style Internet Explorer to prompt the user.</p>
<h4>HTTP Header</h4>
<p><code></p>
<div>
<p>X-UA-Compatible: requiresActiveX=true</p>
</p></div>
<p></code></p>
<h4>META Tag</h4>
<p><code></p>
<div>
<p><span>&lt;</span><span>meta</span><br />
            <span>http-equiv</span><span>=&quot;X-UA-Compatible&quot;</span><br />
            <span>content</span><span>=&quot;requiresActiveX=true&quot;</span><br />
            <span>/&gt;</span></p>
</p></div>
<p></code></p>
<p>Metro style IE10 detects these flags, and provides the consumer a one-touch option<br />
    to switch to IE10 on the desktop:</p>
<p>
    <img style="border:1px solid black" alt="Screen shot of a fictional video site showing a prompt that reads &quot;The site uses add-ons that require Internet Explorer on the desktop.&quot; Three action buttons are offered: Open, Don't show again for this site, and Close." src="http://ieblog.members.winisp.net/images/20120131-mtapifw-image1.png" /></p>
<p>In addition to respecting these <code>X-UA-Compatible</code> flags specified by the<br />
    developer, the Compatibility View List can also specify a site that needs to run<br />
    in the desktop.</p>
<p>This mechanism provides a short-term mitigation. The desktop browsing experience<br />
    and most plug-ins were not designed for smaller screens, battery constraints, and<br />
    no mouse. Providing an easy way to the Windows desktop is the last resort when no<br />
    comparable plug-in free fallback content exists.</p>
<p>A plug-in free Web benefits consumers and developers and we all take part in the<br />
    transition. IE10 makes it easy to provide the best possible experience while you<br />
    migrate your site.</p>
<p>—John Hrvatin, Program Manager Lead, Internet Explorer</p>
<div></div>
<p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=10262339" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://win7insider.com/2012/02/05/web-sites-and-a-plug-in-free-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating Files through BlobBuilder</title>
		<link>http://win7insider.com/2012/02/05/creating-files-through-blobbuilder/</link>
		<comments>http://win7insider.com/2012/02/05/creating-files-through-blobbuilder/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 08:45:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://win7insider.com/2012/02/05/creating-files-through-blobbuilder/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>As Web sites transition more and more into Web applications, working with files in meaningful ways is becoming increasingly<br />
	important. Starting with Platform Preview 2, IE10 includes support for the <a rel="nofollow" target="_blank" href="http://www.w3.org/TR/FileAPI/">File API</a>,<br />
	enabling developers to read and slice files on the client. Platform Preview 4 adds support for <a rel="nofollow" target="_blank" href="http://dev.w3.org/2009/dap/file-system/file-writer.html"><br />
		BlobBuilder</a>, a way for developers to create <i>new</i> files. IE10 also has two new methods that allow the user to save<br />
	blobs to their computer, enabling great end-to-end experiences when working with client-resident data.</p>
<p>Over on the <a rel="nofollow" target="_blank" href="http://ie.microsoft.com/testdrive/">IE Test Drive</a>, we have a fun <a rel="nofollow" target="_blank" href="http://ie.microsoft.com/testdrive/HTML5/BlobBuilder/">piano<br />
	demo</a> showing off BlobBuilder and File API capabilities. When you press notes on the piano, the site constructs two files:<br />
	an mp3 music file and an SVG file of the musical score. You can see how the size of both files change each time you press a note.<br />
	Press the play button to listen to your song, or download either the music file or the SVG score file by pressing the links<br />
	just above the piano keys. In the rest of this blog post I’ll go through how the demo works, focusing on the capabilities<br />
	of BlobBuilder and File API. </p>
<p>
	<img alt="Screen shot of the BlobBuilder piano-playing Test Drive demo." src="http://ieblog.members.winisp.net/images/20120127-cftb-image1.jpg" /></p>
<h2>BlobBuilder Capabilities</h2>
<p>BlobBuilder, like the name implies, is a way to build blobs on the client. The main method to do this is <code>append</code>. The <code>append</code> function accepts<br />
	three data types: </p>
<ul>
<li>Blob objects</li>
<li>Plain text</li>
<li>Array Buffers </li>
</ul>
<p>The piano demo creates the mp3 file by appending blobs together, using one blob for each note. The demo creates the SVG file<br />
	of the musical score by appending text that contains the SVG source. </p>
<p><code>getBlob</code> is another method available on the BlobBuilder object which returns a blob object containing all the<br />
	items previously appended. Here is a very simple example that uses BlobBuilder to create a text file: </p>
<p><code></p>
<div>
<p><span>// The BlobBuilder constructor is prefixed in all browsers.<br />
		</span></p>
<p><span>// Use MSBlobBuilder in IE, MozBlobBuilder in Firefox, and<br />
			WebKitBlobBuilder in WebKit-based browsers.</span></p>
<p><span>var</span> bb = <span>new</span> MSBlobBuilder();</p>
<p>&nbsp;</p>
<p>bb.append(<span>&quot;Hello World!&quot;</span>);</p>
<p><span>var</span> blob1 = bb.getBlob(<span>&quot;text/plain&quot;</span>);</p>
</p></div>
<p></code></p>
<p>One thing to note about the <code>getBlob</code> method is that when you call <code>getBlob</code> in IE10 and Firefox, it will clear out the contents<br />
	of the BlobBuilder object, so the next time you call append it will be as if you were appending into a new BlobBuilder object.<br />
	WebKit does not currently clear out the contents of the BlobBuilder after calling <code>getBlob</code>. Consider this example: </p>
<p><code></p>
<div>
<p><span>var</span> bb = <span>new</span> MSBlobBuilder();</p>
<p>bb.append(<span>&quot;Hello World!&quot;</span>);</p>
<p><span>var</span> blob1 = bb.getBlob(<span>&quot;text/plain&quot;</span>);</p>
<p>bb.append(<span>&quot;BlobBuilder is great&quot;</span>);</p>
<p><span>var</span> blob2 = bb.getBlob(<span>&quot;text/plain&quot;</span>);</p>
</p></div>
<p></code></p>
<p>In all browsers, blob1 will contain the text “<code>Hello World!</code>”. However, blob2 will be different. In IE10 and Firefox,<br />
	blob2 will contain the text “<code>BlobBuilder is great</code>” while in WebKit-based browsers it will contain the text “<code>Hello World!BlobBuilder<br />
		is great</code>”. This discrepancy is still <a rel="nofollow" target="_blank" href="http://lists.w3.org/Archives/Public/public-webapps/2011AprJun/0215.html"><br />
			under discussion</a> in the Web Applications working group. </p>
<h2>Getting Blobs via XHR</h2>
<p>The File API makes it easy to access files selected by the user, something I demonstrated in the <a rel="nofollow" target="_blank" href="http://ie.microsoft.com/testdrive/Graphics/MagneticPoetry/Default.html"><br />
	Magnetic Poetry</a> demo. This is great when you want to incorporate the users own data into your site. However, in the<br />
	piano demo, I needed the note files to be built into the demo. When you want to work with blobs but you want to supply the<br />
	data, you can use XHR. </p>
<p>New to IE10 is the XHR <code>responseType</code> property. The <code>responseType</code> property supports four values: <code>blob</code>, <code>array buffer</code>, <code>text</code>, and<br />
	<code>document</code>. In the piano demo’s initialization method &#8211; <code>getBlobs()</code> &#8211; you’ll see the following: </p>
<p><code></p>
<div>
<p><span>var</span> req = <span>new</span> XMLHttpRequest();</p>
<p><span>var</span> url = <span>&#39;PianoNotes/AllNotes2.mp3&#39;</span>;</p>
<p>req.open(<span>&#39;GET&#39;</span>, url, <span>false</span>);</p>
<p>req.responseType = <span>&quot;blob&quot;</span>;</p>
<p>req.onload = <span>function</span> () { <span><br />
			/* ... */</span> };</p>
<p>req.send(<span>null</span>); </p>
</p></div>
<p></code></p>
<p>One thing you may notice is that the demo only makes a single XHR request. It only downloads <a rel="nofollow" target="_blank" href="http://ie.microsoft.com/testdrive/HTML5/BlobBuilder/PianoNotes/AllNotes2.mp3"><br />
	one file</a> which contains all the notes used in the demo. However, when you press a key in the demo, only a single note<br />
	plays and the site appends only a single note to the mp3 file. To make that work, after downloading the file containing<br />
	all the notes, the site slices the file using the File API <code>slice</code> method and extracts 24 individual notes. This is a great<br />
	performance savings versus having to download 24 individual files. </p>
<h2>Creating the Music File</h2>
<p>Once I have a blob for each note in the demo, creating the mp3 file is easy. Each time you press a key I call: </p>
<p><code></p>
<div>
<p>musicBlobBuilder.append(noteBlob);</p>
</p></div>
<p></code></p>
<p>In order to update the file size, I get the blob and then get the file size.</p>
<p><code></p>
<div>
<p><span>var</span> musicBlob = musicBlobBuilder.getBlob(<span>&quot;audio/mp3&quot;</span>);</p>
<p><span>// display musicBlob.size</span></p>
</p></div>
<p></code></p>
<p>Lastly because I know that the BlobBuilder object was cleared out when I called <code>getBlob</code> I just append the blob back in:
</p>
<p><code></p>
<div>
<p>musicBlobBuilder.append(musicBlob);</p>
</p></div>
<p></code></p>
<h2>Creating the SVG File</h2>
<p>Each time you press a key in the demo, you see a note added to the musical score. The musical score is drawn by a single<br />
	SVG element contained within a div with an id of “scoreContainer.” Each time you press a key, script runs which adds a note<br />
	to the SVG element and then the SVG file is created by appending the source: </p>
<p><code></p>
<div>
<p>svgBlobBuilder.append(document.getElementById(<span>&quot;scoreContainer&quot;</span>).innerHTML);</p>
<p><span>var</span> svgBlob = svgBlobBuilder.getBlob(<span>&quot;image/svg+xml&quot;</span>);</p>
<p><span>// display svgBlob.size</span></p>
</p></div>
<p></code></p>
<p>In this case, I don’t refill the svgBlobBuilder because I want to start with a clean slate the next time the user presses<br />
	a key. </p>
<h2>Saving Files to Disk</h2>
<p>The last part of the demo is saving the files to disk. When you press the “Music File” and “Musical Score File” links on<br />
	top of the piano keys you will be able to save the file though an experience that feels just like downloading a file:
</p>
<p>
	<img alt="Notification Bar shown in IE10 in response to a call to msOpenOrSaveBlog()." src="http://ieblog.members.winisp.net/images/20120127-cftb-image2.png" /></p>
<p>Note that the notification bar is not available in the Platform Previews. Instead, a save dialog is presented. </p>
<p>Each link calls either <code>saveSong()</code> or <code>saveSheetMusic()</code>. Looking into each of these methods will reveal that they use the <code>msSaveOrOpenBlob</code><br />
	function:</p>
<p><code></p>
<div>
<p>window.navigator.msSaveOrOpenBlob(svgBlob, <span>&quot;MusicScore.svg&quot;</span>);</p>
</p></div>
<p></code></p>
<p><code>msSaveOrOpenBlob</code> and <code>msSaveBlob</code> are two methods available in IE10 which let sites ask the user to<br />
	save a blob to their computer. </p>
<p>Calling <code>msSaveOrOpenBlob</code> will provide an option on the notification bar to open the file in addition to saving<br />
	or canceling. Calling <code>msSaveBlob</code> only provides the option to save the file or cancel. Though these functions<br />
	are not yet included in any standard, we believe they are extremely useful for writing end to end scenarios with blob data<br />
	and hope that they <a rel="nofollow" target="_blank" href="http://www.w3.org/2011/11/01-webapps-minutes.html">might become</a> a standard at some point.
</p>
<p>Creating the Piano demo was a fun experience and I’m excited to see how you will use BlobBuilder. Let us know what you think!</p>
<p>—Sharon Newman, Program Manager, Internet Explorer</p>
<div></div>
<p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=10261326" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://win7insider.com/2012/02/05/creating-files-through-blobbuilder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://ie.microsoft.com/testdrive/HTML5/BlobBuilder/PianoNotes/AllNotes2.mp3" length="196846" type="audio/mpeg" />
		</item>
		<item>
		<title>Debugging IndexedDB Applications</title>
		<link>http://win7insider.com/2012/02/05/debugging-indexeddb-applications/</link>
		<comments>http://win7insider.com/2012/02/05/debugging-indexeddb-applications/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 08:45:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://win7insider.com/2012/02/05/debugging-indexeddb-applications/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/library/hh673548.aspx">IndexedDB</a> is a <a rel="nofollow" target="_blank" href="http://www.w3.org/TR/IndexedDB/"><br />
		W3C Working Draft</a> that enables JavaScript developers to store, search, and retrieve data on the user&#8217;s local client,<br />
	even when <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/ie/archive/2011/09/27/building-offline-experiences-with-html5-appcache-and-indexeddb.aspx"><br />
		Internet connectivity is disabled</a>. This blog post describes IDBExplorer, a tool we use internally to debug IndexedDB applications. IDBExplorer lets you view<br />
	database schemas, object store content, and index details. </p>
<h3>Exploring the tool with an example IndexedDB App</h3>
<p>To illustrate, I created an application that tracks my <a rel="nofollow" target="_blank" href="http://ie.microsoft.com/testdrive/HTML5/newyearslist">New<br />
	Year’s resolutions</a> using IndexedDB. It stores and accesses my resolutions locally (on the system browsing the Web page)<br />
	and lets me add or edit them. The “Done That!” button removes the selected resolution from the list and removes its internal<br />
	representation from the database.</p>
<p>
	<img alt="Partial screen shot of an application that tracks New Year’s resolutions using IndexedDB." src="http://ieblog.members.winisp.net/images/20120125-dia-image1.jpg" /></p>
<p>IndexedDB defines a <i>database</i> as a container of information. Each database contains <i>object stores</i>, which are<br />
	repositories for JavaScript objects. Each object contains attributes which can be queried using the API. If you&#8217;re familiar<br />
	with relational databases, object stores can be equated to tables and each JavaScript object in an object store represents<br />
	a record. However, the objects stored in an IndexedDB object store are treated as opaque entities. In addition, these objects<br />
	do not have to contain the same properties. </p>
<p>If a JavaScript object is analogous to a relational database record, then the properties of that object can be thought of<br />
	as columns (or fields) in a table. As a result, IndexedDB allows you to define indexes that identify object properties that<br />
	can be used to search the records in an object store. Thus, indexes allow you to traverse and search IndexedDB data using<br />
	the attribute values on a JavaScript object.</p>
<p>IndexedDB allows each Domain to have multiple databases. This <a rel="nofollow" target="_blank" href="http://ie.microsoft.com/testdrive/HTML5/newyearslist/"><br />
	example</a> uses one database: “NewYear.” The app stores my resolutions in an object store named “Resolutions” inside the<br />
	<i>NewYear</i> database. Each resolution is a JavaScript object with the following attributes:</p>
<ul>
<li><code>priorityId</code>: Separates resolutions into different priorities</li>
<li><code>name</code>: Name of the resolution</li>
<li><code>occurrenceId</code>: Tracks how frequently the action of the resolution must be performed</li>
<li><code>dueDate</code>: Completion date of the resolution</li>
<li><code>createdDate</code>: Internal date when the resolution was added to the object store</li>
<li><code>categoryId</code>: Defines the type of activity for a resolution</li>
</ul>
<p>Notice that not all attributes are visible from the application’s UI. In some cases, they are only internally used (e.g.<br />
	<code>createdDate</code>).</p>
<p>Here’s how the IDBExplorer tool displays the contents of the “Resolutions” object store:</p>
<p>
	<img alt="Partial screen shot of the IDBExplorer tool displaying the contents of the “Resolutions” object store." src="http://ieblog.members.winisp.net/images/20120125-dia-image2.png" /></p>
<p>The “Resolutions” object store also contains an index on the <code>priorityId</code> attribute named “priorityId,” which allows<br />
	the app to query objects using the <code>priorityId</code> property. The descriptions for the each <code>priorityId</code> value can<br />
	be found inside the “Priorities” object store and the descriptions for the <code>occurrenceId</code> values can be found inside<br />
	the “Occurrences” object store. Likewise, the descriptions for the <code>categoryId</code> values can be found inside the “Categories”<br />
	object store. </p>
<p>The tool uses a tree hierarchy to illustrate these relationships:</p>
<p>
	<img alt="Screen shot of the IDBExplorer tool showing there are five resolutions in the database." src="http://ieblog.members.winisp.net/images/20120125-dia-image3.png" /></p>
<p>The IDBExplorer tool shows there are five resolutions in my database (two high priority tasks, two medium priorities, and<br />
	one low priority). </p>
<p>Using the application, I can add a new resolution:</p>
<p>
	<img alt="Partial screen shot of the New Year’s Resolutions application showing adding a resolution." src="http://ieblog.members.winisp.net/images/20120125-dia-image4.jpg" /></p>
<p>The app retrieves the values for <code>Occurrence</code>, <code>Priority</code>, and <code>Category</code> fields from their respective object<br />
	stores using cursors and displays them to the user. The IDBExplorer tool lets you see how these values exist in the object<br />
	store. For example, selecting the <code>Categories</code> object store displays the available categories and their descriptions:</p>
<p>
	<img alt="Screen shot of the IDBExplorer tool showing how values exist in the object store." src="http://ieblog.members.winisp.net/images/20120125-dia-image5.png" /></p>
<p>You can update a resolution by selecting it in the “WorkOn” screen and choosing “Edit.” After making any changes, selecting<br />
	the “Update” button will commit the changes and update the values in the “Resolutions” object store.</p>
<p>
	<img alt="Partial screen shot of the New Year’s Resolutions application showing updating a resolution by selecting it in using the “WorkOn” screen." src="http://ieblog.members.winisp.net/images/20120125-dia-image6.jpg" /></p>
<h3>Using IDBExplorer in your Applications</h3>
<p>You can include the IDBExplorer tool in your Metro style app or Web site. However, we recommend you not deploy the tool with<br />
	your app. </p>
<p>To add the tool to your site, copy and unzip the content of the <a rel="nofollow" target="_blank" href="http://ie.microsoft.com/testdrive/HTML5/newyearslist/IDBExplorer.zip"><br />
	IDBExplorer package</a> into your site. Your application will need to link to the IDBExplorer.html file contained inside<br />
	the IDBExplorer folder using either an iframe element or a new window.</p>
<p>In our example, we decided to host IDBExplorer inside an iframe element. . However, for normal development we recommend hosting<br />
	this URI inside a new window. This will allow you to have a side-by-side experience when debugging your database and application<br />
	without affecting your site&#8217;s user interface. </p>
<p>When hosting IDBExplorer, you need to pass the database name using the query string. In this example, this was done using<br />
	the src attribute of the iframe element:</p>
<p><code></p>
<div>
<p><span>&lt;</span><span>iframe</span> <span><br />
			id</span><span>=&quot;debuggerId&quot;</span> <span>class</span><span>=&quot;debuggerContainer&quot;</span><br />
			<span>src</span><span>=&quot;IDBExplorer/IDBExplorer.html?name=NewYear&quot;&gt;&lt;/</span><span>iframe</span><span>&gt;</span></p>
</p></div>
<p></code></p>
<p>When planning to host this functionality in a Metro style app, remember that Metro-style apps run fullscreen. As a result,<br />
	you should navigate to this URL, rather than opening a new window (you will need to add a Back button to the IDBExplorer.html<br />
	file in order to be able to return to your application). Alternatively, you can add an iframe element and display the tool<br />
	in it.</p>
<p>Enjoy the tool and let us know what you think!</p>
<p>&mdash;Israel Hilerio, Ph.D., Principal Program Manager, Internet Explorer</p>
<div></div>
<p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=10260696" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://win7insider.com/2012/02/05/debugging-indexeddb-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It’s Time For Another PowerShell Deep Dive!</title>
		<link>http://win7insider.com/2012/01/29/it%e2%80%99s-time-for-another-powershell-deep-dive/</link>
		<comments>http://win7insider.com/2012/01/29/it%e2%80%99s-time-for-another-powershell-deep-dive/#comments</comments>
		<pubDate>Sun, 29 Jan 2012 16:42:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://win7insider.com/2012/01/29/it%e2%80%99s-time-for-another-powershell-deep-dive/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<blockquote></blockquote>
<p>&#160;</p>
<p>The PowerShell Deep Dive is going to be at <a rel="nofollow" target="_blank" href="http://www.theexpertsconference.com/us/2012/">The Experts Conference USA</a> again this year! The event is being held in San Diego, CA from April 29 &#8211; May 2.</p>
<p>Registration is currently open, but we wanted to provide some info on a few changes to the event structure.</p>
<ol>
<li>The PowerShell Deep Dive is now considered an official track at TEC. </li>
<li>The event will last the full 3 days. This is up from 1.5 days at TEC USA 2011 and 2 days at TEC Europe 2011. </li>
<li>The session format will be a combination of the past two events. There is going to be a combination of </li>
</ol>
<ul>
<ul>
<li>Full length 75 minute sessions </li>
<li>The usual 35 minute Deep Dives (this is the main focus), and </li>
<li>5 minute lightning rounds </li>
</ul>
</ul>
<p>As usual, we will be sending some folks (probably ~3) from the PowerShell Team to this Deep Dive and will be kicking the event off with a Keynote.</p>
<p><strong>Registration Info:      <br /></strong>Early bird registration runs through the end of January and is priced at $1575. To sign up:</p>
<ol>
<li>Navigate to the <a rel="nofollow" target="_blank" href="https://www.ustechsregister.com/TEC2012/RegistrationSelect.aspx">registration page</a> </li>
<li>Click “Register for TEC 2012”. </li>
<li>Fill out the form. No registration code is needed </li>
</ol>
<p><strong>Speaker Info:      <br /></strong>Good news for speakers! Since we are now an official track on TEC, speaker packages are being covered by the TEC organizers. The standard TEC speaker package includes registration, airfare and hotel. </p>
<p>Please send your session proposals for all three session types to <a rel="nofollow" target="_blank" href="mailto:TEC2012@quest.com">TEC2012@quest.com</a> before Feb 15. </p>
<p>&#160;</p>
<p>Cheers!</p>
<p>Travis Jones [MSFT]    <br />Program Manager – Windows PowerShell     <br />Microsoft Corporation</p>
<div></div>
<p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=10261052" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://win7insider.com/2012/01/29/it%e2%80%99s-time-for-another-powershell-deep-dive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Virtual PC Hotfix for AMD Bulldozer Processors</title>
		<link>http://win7insider.com/2012/01/26/windows-virtual-pc-hotfix-for-amd-bulldozer-processors/</link>
		<comments>http://win7insider.com/2012/01/26/windows-virtual-pc-hotfix-for-amd-bulldozer-processors/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 00:41:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://win7insider.com/2012/01/26/windows-virtual-pc-hotfix-for-amd-bulldozer-processors/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<div></div>
<p>We have just published a hotfix for Windows Virtual PC that addresses a compatibility problem when trying to install on an <a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Bulldozer_(microarchitecture)">AMD Bulldozer</a> system.</p>
<p>You can download it here: <a rel="nofollow" target="_blank" href="http://support.microsoft.com/kb/2519949">http://support.microsoft.com/kb/2519949</a></p>
<p>Cheers,   <br />Ben</p>
<div></div>
<p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=10258349" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://win7insider.com/2012/01/26/windows-virtual-pc-hotfix-for-amd-bulldozer-processors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hotfix: Guest may crash during live migration</title>
		<link>http://win7insider.com/2012/01/26/hotfix-guest-may-crash-during-live-migration/</link>
		<comments>http://win7insider.com/2012/01/26/hotfix-guest-may-crash-during-live-migration/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 00:41:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://win7insider.com/2012/01/26/hotfix-guest-may-crash-during-live-migration/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<div></div>
<p>We released a new hotfix for Hyper-V today.</p>
<p>This hotfix addresses an issue where virtual machines may crash (with a STOP 0&#215;000000D1, DRIVER_IRQL_NOT_LESS_OR_EQUAL error) when it is being live migrated.&#160; While this problem is relatively hard to encounter – I would encourage anyone who is using live migration to plan to deploy this hotfix in the near future, as you do not want to hit this accidentally.</p>
<p>You can download this fix directly from here: <a rel="nofollow" target="_blank" href="http://support.microsoft.com/kb/2636573">http://support.microsoft.com/kb/2636573</a></p>
<p>Alternatively, it is also being distributed through Windows Update.&#160; Unfortunately it is only available as an optional update though – so you will need to explicitly select to install it on your servers.&#160; </p>
<p>Either way, this hotfix does require that you reboot the physical server so you will need to plan the deployment of the fix appropriately for your environment.</p>
<p>Cheers,   <br />Ben</p>
<div></div>
<p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=10255327" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://win7insider.com/2012/01/26/hotfix-guest-may-crash-during-live-migration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Converting to a fixed virtual hard disk–for a Server core installation</title>
		<link>http://win7insider.com/2012/01/26/converting-to-a-fixed-virtual-hard-disk%e2%80%93for-a-server-core-installation/</link>
		<comments>http://win7insider.com/2012/01/26/converting-to-a-fixed-virtual-hard-disk%e2%80%93for-a-server-core-installation/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 00:41:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://win7insider.com/2012/01/26/converting-to-a-fixed-virtual-hard-disk%e2%80%93for-a-server-core-installation/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<div></div>
<p>My last challenge for getting all of my server virtual machines over to fixed-size virtual hard disks is moving some of my Windows Server 2008 R2 virtual machines.&#160; As a reminder, the goal here is to move a virtual machine on a large dynamically expanding virtual hard disk to a smaller fixed-size virtual hard disk. I have used the same technique as I discussed <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/virtual_pc_guy/archive/2011/12/29/converting-to-a-fixed-virtual-hard-disk-the-hard-way.aspx">here</a> – but for obvious reasons the process is quite different, as I cannot use any of the GUI tools.&#160; Here is the process I followed:</p>
<p>&#160;</p>
<ol>
<li>Login to the virtual machine using an administrative account</li>
<li>Run <strong>diskpart</strong></li>
<li>Check your disks with <strong>list disk</strong></li>
<li>Select the disk you want to shrink (disk 0 in my case – so <strong>select disk 0</strong>)</li>
<li>Check your partitions with <strong>list partition</strong></li>
<li>Select the partition you want to shrink (partition 4 in my case – so <strong>select partition 3</strong>)</li>
<li>Check how much space you can save with <strong>shrink querymax</strong></li>
<li>Shrink the partition to your desired size (in my case &#8211; <strong>shrink desired=70000</strong> – note that the value here is how much you are shrinking the partition by, not the new size of the partition)</li>
<li>Check that you are happy with the new size with <strong>list partition</strong></li>
<li>Exit diskpart with <strong>quit</strong>      <br /><a rel="nofollow" target="_blank" href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-41-22-metablogapi/1781.image_5F00_7A3C8355.png"><img border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-41-22-metablogapi/4428.image_5F00_thumb_5F00_38C1D0FC.png" width="497" height="484" /></a></li>
<li>Once you have shrunk the partition(s) use Windows Server Backup inside the virtual machine (if you have not installed this – you can do so by running <strong>start /w ocsetup WindowsServerBackup </strong>– don’t worry, this does not take up much space and does not require a reboot to install)</li>
<li>Run a full backup on a <strong>Remote shared folder</strong> and provide a file share to use for storing the back</li>
<ol>
<li>I have a share setup on my parent partition for backing up virtual machines to when I am doing this</li>
<li>The command that I used for this is: <strong>wbadmin start backup -backupTarget:&#92;&#92;Hyper-V&#92;Backups –allCritical –include:d: –VSSfull         <br /><a rel="nofollow" target="_blank" href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-41-22-metablogapi/6165.image_5F00_1CB11211.png"><img border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-41-22-metablogapi/4034.image_5F00_thumb_5F00_5870AAC4.png" width="459" height="484" /></a></strong></li>
</ol>
<li>While the backup is going you can actually jump to the next step.&#160; Creating a new fixed virtual hard disk</li>
<li>Open the <strong>New Virtual Hard Disk Wizard</strong></li>
<li>Choose to create a new fixed size virtual hard disk that is the right size for your smaller partitions</li>
<li>Once the backup is complete, and the fixed virtual hard disk is created, shutdown the virtual machine</li>
<li>Open the virtual machine settings and replace the dynamic virtual hard disks with the new fixed size virtual hard disks</li>
<li>Boot the virtual machine using a Windows Server 2008 R2 installation DVD</li>
<li>After choosing your language, choose <strong>Repair your computer</strong> (instead of clicking on <strong>Install now</strong>)&#160;&#160;&#160;&#160; </li>
<li>Then select <strong>Restore your computer using a system image that you created earlier</strong> and click <strong>Next</strong></li>
<li>Click <strong>Cancel</strong> on the warning that comes up, and then click <strong>Next</strong> followed by <strong>Advanced…</strong></li>
<li>Select <strong>Search for a system image on the network</strong>, followed by clicking <strong>Yes</strong></li>
<li>When prompted – enter the network path that you used to create the backup and click <strong>OK</strong></li>
<li>Select your backup from the table and click <strong>Next</strong></li>
<li>Select the disks you want to restore and click <strong>Next</strong>, <strong>Next</strong>, <strong>Finish</strong> and <strong>Yes</strong></li>
<li>The virtual machine will reboot automatically once the backup is restored</li>
</ol>
<p>Once this is all complete, and once you have confirmed that the virtual machine is working properly, you can delete the dynamically expanding disk and the backup.</p>
<p>Cheers,   <br />Ben</p>
<div></div>
<p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=10251599" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://win7insider.com/2012/01/26/converting-to-a-fixed-virtual-hard-disk%e2%80%93for-a-server-core-installation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Converting to a fixed virtual hard disk–the hard way</title>
		<link>http://win7insider.com/2012/01/26/converting-to-a-fixed-virtual-hard-disk%e2%80%93the-hard-way/</link>
		<comments>http://win7insider.com/2012/01/26/converting-to-a-fixed-virtual-hard-disk%e2%80%93the-hard-way/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 00:41:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://win7insider.com/2012/01/26/converting-to-a-fixed-virtual-hard-disk%e2%80%93the-hard-way/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<div></div>
<p><a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/virtual_pc_guy/archive/2011/12/28/converting-to-a-fixed-virtual-hard-disk-the-easy-way.aspx">Yesterday</a> I showed you how to easily convert a dynamically expanding virtual hard disk to a fixed size virtual hard disk.&#160; But, how do you do this if you want to keep your fixed size virtual hard disk as small as possible?&#160; Well, here is the process that I use for my Windows Server 2008 R2 virtual machines:</p>
<p>&#160;</p>
<ol>
<li>Login to the virtual machine using an administrative account</li>
<li>Open <strong>Server Manager</strong> and select the <strong>Disk Management</strong> node under the <strong>Storage</strong> node.</li>
<li>Right click on the partition that you want to shrink and select <strong>Shrink</strong></li>
<li>Select how much you want to shrink the partition by</li>
<ol>
<li>In my case I want to shrink a 250GB partition to 70GB:        <br /><a rel="nofollow" target="_blank" href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-41-22-metablogapi/3021.image_5F00_54894F68.png"><img border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-41-22-metablogapi/0880.image_5F00_thumb_5F00_20E0E30A.png" width="576" height="484" /></a></li>
</ol>
<li>Once you have shrunk the partition(s) open <strong>Windows Server Backup</strong> inside the virtual machine (if you have not installed this – you can do so by choosing to <strong>Add Features</strong> from <strong>Server Manager</strong> – don’t worry, this does not take up much space and does not require a reboot to install)</li>
<li>In <strong>Windows Server Backup</strong> select <strong>Backup Once…</strong></li>
<li>This will open the <strong>Backup Once Wizard</strong>.&#160; There is only one choice on the first page.&#160; On the second page choose <strong>Full server</strong></li>
<li>Then select to store the backup on a <strong>Remote shared folder</strong> and provide a file share to use for storing the back</li>
<ol>
<li>I have a share setup on my parent partition for backing up virtual machines to when I am doing this</li>
</ol>
<li>Complete the wizard and wait for the backup to complete:      <br /><a rel="nofollow" target="_blank" href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-41-22-metablogapi/2746.image3_5F00_79A699D4.png"><img border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-41-22-metablogapi/6558.image3_5F00_thumb_5F00_4E6202CD.png" width="579" height="484" /></a></li>
<li>While the backup is going you can actually jump to the next step.&#160; Creating a new fixed virtual hard disk</li>
<li>Open the <strong>New Virtual Hard Disk Wizard</strong></li>
<li>Choose to create a new fixed size virtual hard disk that is the right size for your smaller partitions</li>
<ol>
<li>Here I am making a 70GB virtual hard disk for my WDS server:        <br /><a rel="nofollow" target="_blank" href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-41-22-metablogapi/0285.image6_5F00_793A66DF.png"><img border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-41-22-metablogapi/6646.image6_5F00_thumb_5F00_070CACDB.png" width="644" height="471" /></a></li>
</ol>
<li>Once the backup is complete, and the fixed virtual hard disk is created, shutdown the virtual machine</li>
<li>Open the virtual machine settings and replace the dynamic virtual hard disks with the new fixed size virtual hard disks</li>
<li>Boot the virtual machine using a Windows Server 2008 R2 installation DVD</li>
<li>After choosing your language, choose <strong>Repair your computer</strong> (instead of clicking on <strong>Install now</strong>)&#160;&#160;&#160;&#160;&#160; </li>
<li>Then select <strong>Restore your computer using a system image that you created earlier</strong> and click <strong>Next</strong></li>
<li>Click <strong>Cancel</strong> on the warning that comes up, and then click <strong>Next</strong> followed by <strong>Advanced…</strong></li>
<li>Select <strong>Search for a system image on the network</strong>, followed by clicking <strong>Yes</strong></li>
<li>When prompted – enter the network path that you used to create the backup and click <strong>OK</strong></li>
<li>Select your backup from the table and click <strong>Next</strong></li>
<li>Select the disks you want to restore and click <strong>Next</strong>, <strong>Next</strong>, <strong>Finish</strong> and <strong>Yes</strong></li>
<li>The virtual machine will reboot automatically once the backup is restored</li>
</ol>
<p>Once this is all complete, and once you have confirmed that the virtual machine is working properly, you can delete the dynamically expanding disk and the backup.</p>
<p>Cheers,   <br />Ben</p>
<div></div>
<p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=10251333" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://win7insider.com/2012/01/26/converting-to-a-fixed-virtual-hard-disk%e2%80%93the-hard-way/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Converting to a fixed virtual hard disk–the easy way</title>
		<link>http://win7insider.com/2012/01/26/converting-to-a-fixed-virtual-hard-disk%e2%80%93the-easy-way/</link>
		<comments>http://win7insider.com/2012/01/26/converting-to-a-fixed-virtual-hard-disk%e2%80%93the-easy-way/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 00:41:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://win7insider.com/2012/01/26/converting-to-a-fixed-virtual-hard-disk%e2%80%93the-easy-way/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<div></div>
<p>As I discussed <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/virtual_pc_guy/archive/2011/12/27/time-for-some-server-maintenance.aspx">yesterday</a> – I have been working on converting my virtual machines from dynamic virtual hard disks to fixed virtual hard disks.&#160; There are a couple of ways that you can do this.&#160; The easiest way is to just convert the disks using Hyper-V.&#160; To do this you need to:</p>
<ol>
<li>Shutdown the virtual machine (do not put it into a saved state)</li>
<li>Open the virtual machine settings and select the virtual hard disks one at a time</li>
<li>Click the <strong>Edit</strong> button on the settings page:      <br /><a rel="nofollow" target="_blank" href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-41-22-metablogapi/7701.image_5F00_2134BD5F.png"><img border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-41-22-metablogapi/2570.image_5F00_thumb_5F00_20C88A6A.png" width="519" height="484" /></a></li>
<li>This will open the edit virtual hard disk wizard with the selected virtual hard disk.&#160; Choose the <strong>Convert</strong> option:      <br /><a rel="nofollow" target="_blank" href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-41-22-metablogapi/4667.image_5F00_6E64B6EA.png"><img border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-41-22-metablogapi/6305.image_5F00_thumb_5F00_1532CD2B.png" width="519" height="484" /></a></li>
<li>Next, enter a file name for the new fixed virtual hard disk:     <br /><a rel="nofollow" target="_blank" href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-41-22-metablogapi/0042.image_5F00_270F60F8.png"><img border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-41-22-metablogapi/4336.image_5F00_thumb_5F00_1FF02480.png" width="518" height="484" /></a></li>
<li>Wait for the virtual hard disk to be converted (this will take a while)</li>
<li>Change the virtual machine settings to point to the new, fixed, virtual hard disk</li>
<li>Boot the virtual machine</li>
<li>Once you have confirmed that everything is working properly, delete the old dynamic virtual hard disks</li>
</ol>
<p>While this process is fairly easy to follow – it has one big drawback.&#160; The fixed virtual hard disk will take up the maximum space of the dynamically expanding virtual hard disk.&#160; For some of my virtual machines I had created small dynamically virtual hard disks, so this worked well.&#160; But for some of them I had created foolishly large dynamically expanding virtual hard disks.</p>
<p>Tomorrow I will document the process that I used for these virtual machines.</p>
<p>Cheers,   <br />Ben</p>
<div></div>
<p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=10251331" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://win7insider.com/2012/01/26/converting-to-a-fixed-virtual-hard-disk%e2%80%93the-easy-way/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

