<?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>winJade &#187; Development</title>
	<atom:link href="http://winjade.net/category/dev/feed/" rel="self" type="application/rss+xml" />
	<link>http://winjade.net</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sun, 27 Jun 2010 23:47:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Seesmic for Windows: a rundown with Loic (Updated)</title>
		<link>http://winjade.net/2009/11/loic-seesmic-pdc/</link>
		<comments>http://winjade.net/2009/11/loic-seesmic-pdc/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 03:29:34 +0000</pubDate>
		<dc:creator>Bryant Zadegan</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[absolutely awesome]]></category>
		<category><![CDATA[Aero]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[dwm]]></category>
		<category><![CDATA[Interview]]></category>
		<category><![CDATA[Loic Le Meur]]></category>
		<category><![CDATA[PDC]]></category>
		<category><![CDATA[PDC 2009]]></category>
		<category><![CDATA[Seesmic]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://winjade.net/2009/11/loic-seesmic-pdc/</guid>
		<description><![CDATA[Update: Part 2 has been added after the jump.Update 2: added the link to last year&#8217;s Sensor Platform interview with Dan Polivy (as noted in part 2).This interview was recorded on Tuesday, November 17, 2009.
As the first of my interviews from PDC, I noticed that Loic Le Muer was quick to familiarize himself with me [...]]]></description>
			<content:encoded><![CDATA[<p><em><strong>Update:</strong> Part 2 has been added after the jump.<br /><strong>Update 2:</strong> added the link to last year&#8217;s Sensor Platform interview with Dan Polivy (as noted in part 2).<br />This interview was recorded on Tuesday, November 17, 2009.</em></p>
<p>As the first of my interviews from PDC, I noticed that Loic Le Muer was quick to familiarize himself with me as a part of the interview. This fact coupled with his persistent praise for the Seesmic devs who worked on Seesmic for Windows have led me to believe that Seesmic might actually be one of the better small software companies in existence. </p>
<p>Loic demonstrated Seesmic for Windows at PDC 2009 during Tuesday’s keynote. The obvious difference between Seesmic for Windows and Seesmic Desktop (the AIR version) is that the Windows client is native and written on top of the .net CLR. The plus sides to this include far better performance figures, a more Windows-integrated UI, and a lower tendency to leak handles (and fill my ram). The only downside to this is that it’s Windows-only… well, until you realize that moving .net code from a Windows native environment to Silverlight is actually not nearly as bad as writing another app from scratch.</p>
<p>My interview with Loic takes a browse through Seesmic for Windows v. Seesmic Desktop. I also decided to run through Silverlight Seesmic with Loic during our quick block of time, and while the Silverlight version still requires some polish before going live, the Windows preview version is solid enough for everyone to take a look.</p>
<p><em>Both parts of the interview can be found below the read link. Blame YouTube for forcing me to split a 13 minute video.<br />My thanks goes to Andrew Lyle from <a href="http://www.neowin.net" target="_blank">neowin</a> for manning the camera.</em></p>
<p>  <span id="more-1280"></span>
<p style="text-align:center;"><object width="500" height="315"><param name="movie" value="http://www.youtube.com/v/DCjgHBlN9rQ&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0x234900&amp;color2=0x4e9e00&amp;hd=1&amp;border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/DCjgHBlN9rQ&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0x234900&amp;color2=0x4e9e00&amp;hd=1&amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="315"></embed></object></p>
<p style="text-align:center;"><object width="500" height="315"><param name="movie" value="http://www.youtube.com/v/0GjGawjGZyI&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0x234900&amp;color2=0x4e9e00&amp;hd=1&amp;border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/0GjGawjGZyI&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0x234900&amp;color2=0x4e9e00&amp;hd=1&amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="315"></embed></object></p>
<p style="text-align:center;">The interview with Dan Polivy from PDC 2008 can be found <a href = "http://winjade.net/2008/11/windows-7-sensors-framework-interview-from-pdc/" target = "_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://winjade.net/2009/11/loic-seesmic-pdc/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>What not to do with UX design</title>
		<link>http://winjade.net/2009/08/what-not-to-do-with-ux-design/</link>
		<comments>http://winjade.net/2009/08/what-not-to-do-with-ux-design/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 16:01:58 +0000</pubDate>
		<dc:creator>Bryant Zadegan</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Tips/Tricks/Hacks]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[annoying]]></category>
		<category><![CDATA[dev fail]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[not awesome]]></category>
		<category><![CDATA[rude]]></category>
		<category><![CDATA[Sun Microsystems]]></category>
		<category><![CDATA[UAC]]></category>

		<guid isPermaLink="false">http://www.aeroxp.org/2009/08/what-not-to-do-with-ux-design/</guid>
		<description><![CDATA[Once upon a time, a Microsoft employee said that UAC was designed to annoy people, thus encouraging people (and systems administrators) to bug application developers and get those developers to fix their use of resources in Windows. Well, it seems that one company actually went backwards, making its application more annoying than it used to [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-bottom: 0px; border-left: 0px; margin: 10px auto; display: block; float: none; border-top: 0px; border-right: 0px" title="Java Automatic Update consent prompt" border="0" alt="Java Automatic Update consent prompt" src="http://winjade.net/wp-content/uploads/2009/08/javastupid.png" width="500" height="238" />Once upon a time, a Microsoft employee said that UAC was designed to annoy people, thus encouraging people (and systems administrators) to bug application developers and get those developers to fix their use of resources in Windows. Well, it seems that one company actually went <em>backwards</em>, making its application more annoying than it used to be.</p>
<p>Of course, I’m talking about Java.</p>
<p>I figured I would turn Java into an example of what <em>not</em> to do when designing something for Windows before uninstalling it. Since Sun Microsystems clearly has no idea how to develop for Windows Vista, I’m going to direct them to <a href="http://msdn.microsoft.com/en-us/library/aa905330.aspx" target="_blank">this wonderful page</a>.</p>
<p>I highlighted the single switch present in the command which indicates the problem: “-auto”. <strong>UAC prompts should never be automatically launched without informing the user prior to launching one.</strong> It’s very plain and very simple, and when developers start writing applications which throw consent prompts without any obvious reason as to why, they’re clearly doing something wrong.</p>
<p>Worse yet, Java Automatic Update decides to tell me <em>after I click Cancel</em> that it wants to update.</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Java Update bubble" border="0" alt="Java Update bubble" src="http://winjade.net/wp-content/uploads/2009/08/javastupid2.png" width="296" height="268" /> </p>
<p>This bubble should be thrown first, <em>followed by</em> launching the consent prompt should the user decide to update. Doing it the other way around is <em>mindblowingly stupid. </em>It’s not exactly an easy thing to screw up, either, so I’m chalking this one up either to developers not knowing what they’re doing or developers testing UAC out for the heck of it to see how many people obey random UAC prompts.</p>
<p>If you’re seeing this, I <strong>highly</strong> encourage you to click Cancel. Better yet, go ahead and uninstall Java. That’s what I did.</p>
<p>Now if you’ll excuse me, I’ll be going off to celebrate my birthday away from random UAC prompts.</p>
]]></content:encoded>
			<wfw:commentRss>http://winjade.net/2009/08/what-not-to-do-with-ux-design/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Expression Studio 3 and DreamSpark: when?</title>
		<link>http://winjade.net/2009/07/expression-studio-3-dreamspark/</link>
		<comments>http://winjade.net/2009/07/expression-studio-3-dreamspark/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 14:02:00 +0000</pubDate>
		<dc:creator>Bryant Zadegan</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[absolutely awesome]]></category>
		<category><![CDATA[Channel 8]]></category>
		<category><![CDATA[Developers]]></category>
		<category><![CDATA[DreamSpark]]></category>
		<category><![CDATA[Expression]]></category>
		<category><![CDATA[Expression Studio 3]]></category>
		<category><![CDATA[FREE!]]></category>
		<category><![CDATA[students]]></category>
		<category><![CDATA[What's Next]]></category>

		<guid isPermaLink="false">http://www.aeroxp.org/2009/07/expression-studio-3-dreamspark/</guid>
		<description><![CDATA[DreamSpark is one of those relatively-awesome-yet-equally-as-known initiatives from Microsoft. Yeah, plenty of people know about it, especially many up-and-coming developers who happen to be the intended audience, but there are also others who could easily benefit. I always manage to run into an IT or CS student who has no idea about DreamSpark until I [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="expression3dreamspark" border="0" alt="expression3dreamspark" align="right" src="http://winjade.net/wp-content/uploads/2009/07/expression3dreamspark2.png" width="350" height="315" /><a href="http://www.dreamspark.com" target="_blank">DreamSpark</a> is one of those relatively-awesome-yet-equally-as-known initiatives from Microsoft. Yeah, plenty of people know about it, especially many up-and-coming developers who happen to be the intended audience, but there are also others who could easily benefit. I always manage to run into an IT or CS student who has no idea about DreamSpark until I tell the person, and once they see it, it’s like this treasure trove of lightbulbs turns on in the person’s mind.</p>
<p>For those who don’t know, DreamSpark throws free software at students (after verifying their student-hood, of course). I previously wrote about using DreamSpark to get and use a free OS in place of Vista <a href="http://www.aeroxp.org/2009/04/the-ultimate-steal-no-really/" target="_blank">over here</a>.</p>
<p>Now, keeping the awesomeness of DreamSpark in mind, Expression 3 was only very recently released. A number of threads have popped up on the internet, with the most notable first result for me being <a href="http://channel8.msdn.com/Forums/DreamSparkDiscussion/10946-Expression-Studio-3/" target="_blank">this thread on Channel 8</a>. Coupled with requests from other students I personally know as well as faculty from schools near the DC area (thanks for reading, guys!), I figured I’d look into it. </p>
<p>There’s good news, and there’s the news which isn’t exactly bad. I’ll spill the news which isn’t exactly bad first.</p>
<p>There’s no official target date on getting Expression Studio 3 up on DreamSpark, nor will it be available in July, nor is the target timeframe a certainty or guarantee. There; that’s the news which isn’t exactly bad.</p>
<p>The good news: the target timeframe is still before the point when classes start for many of you. The word, as given by a Microsoft spokesperson, is that a “target timeframe would be [the] end of August.” </p>
<p>If you can’t wait ‘til then, go grab Expression Studio 2 from DreamSpark right now. Otherwise, show some patience, be awesome, and grab Expression Studio 3 once it drops for you guys <em>for free</em> in a month. Cheers to dreamers at Channel 8 for holding out, and I’ll have an update for people once a specific date has been settled upon.</p>
]]></content:encoded>
			<wfw:commentRss>http://winjade.net/2009/07/expression-studio-3-dreamspark/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>MSN.com not running Microsoft&#8217;s latest and greatest?</title>
		<link>http://winjade.net/2009/04/msn-not-running-microsofts-latest-and-greatest/</link>
		<comments>http://winjade.net/2009/04/msn-not-running-microsofts-latest-and-greatest/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 04:00:20 +0000</pubDate>
		<dc:creator>Devin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[Inconsistently surprising]]></category>
		<category><![CDATA[MSN]]></category>
		<category><![CDATA[servers]]></category>
		<category><![CDATA[Unsurprisingly inconsistent]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[windows server]]></category>

		<guid isPermaLink="false">http://www.aeroxp.org/?p=938</guid>
		<description><![CDATA[This topic is way too technical and/or boring to be an April Fool&#8217;s joke. Sorry. ~Devin
While researching to make sure my computer wouldn&#8217;t explode at exactly 12:00AM on Wednesday, I happened to see on that site that to check a server&#8217;s time, you can look up HTTP information via telnet (Note: This will only work [...]]]></description>
			<content:encoded><![CDATA[<p><em>This topic is way too technical and/or boring to be an April Fool&#8217;s joke. Sorry. ~Devin</em></p>
<p>While researching to make sure my computer wouldn&#8217;t <a href="http://www.f-secure.com/weblog/archives/00001641.html" target="_blank">explode</a> at exactly 12:00AM on Wednesday, I happened to see on that site that to check a server&#8217;s time, you can look up HTTP information via telnet (<strong>Note: </strong>This will only work on computers running Windows XP or below. Windows Vista and Windows 7 do not include telnet by default).</p>
<p>While examining these headers, I happened to see something very interesting with the site I tried: the very popular MSN.com.</p>
<p><a href="http://winjade.net/wp-content/uploads/2009/03/iis6-msn.png"><img class="aligncenter size-full wp-image-940" src="http://winjade.net/wp-content/uploads/2009/03/iis6-msn.png" alt="" width="500" height="252" /></a></p>
<p>Check after the break for an analysis along with other targets.<br />
<span id="more-938"></span></p>
<p>It would appear from looking at the information provided there that MSN is running on IIS 6.0 and that page was built with ASP.NET 1.1. Both of those relate to &#8220;2003&#8243; versions of Microsoft systems &#8211; IIS 6.0 included with Windows Server 2003. ASP.NET was launched at the same time. That means that it appears that MSN.com &#8211; the number 6 site on the web according to <a href="http://www.alexa.com/siteinfo/msn.com">Alexa</a> &#8211; is running on software that&#8217;s now quite outdated. It seems very odd that they would be running such an important site on software that old, especially considering that the MSN landing page has been updated, in rather significant ways, many times since 2003!</p>
<h2>But wait, there&#8217;s more</h2>
<p>Seeing that site was running on old server software, I decided to see what was up with other Microsoft sites. Rather than mess around with telnet (remember, I&#8217;m a child of the GUI &#8211; DOS is something I only rarely interacted with in my early computing years), I decided to use the extention Firebug for Mozilla Firefox to extract all the juicy information I wanted from my headers.</p>
<p>Just to make sure I wasn&#8217;t crazy, I stopped by Bink.nu since they advertise that they themselves are running IIS 7.0 and ASP.NET 3.5 (correlating to Windows Server 2008). Sure enough, Bink is running IIS 7.0. It reports that the ASP.NET version is only 2.0, but <s>I&#8217;m willing to say that&#8217;s just an error in that header</s> it&#8217;s because .net 3.5 is just .net 2.0 with WinFX bits bolted on. <em>[Props to Benjamin for the reminder. ~Bryant]</em></p>
<p>LiveSide reported the same bites of information as Bink.nu, which makes sense once you consider that their back-ends are very similar (both sites are powered by Community Server).</p>
<p>I then decided to check other Microsoft sites. First up, Microsoft.com &#8211; the company&#8217;s homepage. Again, Firebug reported the ASP.NET version was version 2.0. The real shocker, though, was in the server line. It is reported that Microsoft.com is running on IIS 7.5. This version of Microsoft&#8217;s web server is to be included in Windows 7 (<em>Home Premium and above</em>) and Windows Server 2008 R2. That&#8217;s right, software that hasn&#8217;t been released yet. That is quite a leap of faith to be running your whole corporate main site on prerelease software. It&#8217;s also quite a difference from what MSN reports. The servers for &#8220;Windows.com&#8221; will also report the same information. <b>Update: Microsoft did clarify the move to IIS 7.5 in Early February. You can read this <a href="http://blogs.iis.net/windowsserver/archive/2009/02/09/microsoft-com-now-running-windows-server-2008-r2-beta.aspx" target="_blank">here</a>. ~Bryant</b></p>
<p>MSDN reports that it is running IIS 7.0, which is a bit more reasonable and also the least surprising. Truthfully, it&#8217;s what I expected to see running everywhere here in April 2009. Finally, Live Search refused to give up it&#8217;s server info, just informing me that it was powered by ASP.NET (no surprises there).</p>
<p>What can we see from these seemingly random version numbers? We can see just how complex Microsoft&#8217;s web servers are. They range from the nearly outdated (especially for a company that develops web server software) to the bleeding-edge software that isn&#8217;t even released yet and many things in between. At the very least, this gives an insight both into the different requirements for the many pages at Microsoft as well as the different practices between different teams of developers. One would probably bounce between at least five or six different web server versions (major versions, not minor revisions like the 2.2.<em>11</em> of Apache) each day in your daily web travels. As long as it serves up your pages and isn&#8217;t riddled with more holes than swiss cheese&#8230; that&#8217;s the main idea isn&#8217;t it?</p>
<h2>In case you&#8217;re interested&#8230;</h2>
<p>Apple.com runs on Apache as well: version 2.2.8. Mac OS X Server 10.5 says that it includes Apache 2.2, so it would be a pretty solid guess to say that Apple.com is powered by an Xserve.</p>
]]></content:encoded>
			<wfw:commentRss>http://winjade.net/2009/04/msn-not-running-microsofts-latest-and-greatest/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>WPF Magnifier Scaling kinda returns from the dead?</title>
		<link>http://winjade.net/2009/02/wpf-magnifier-scaling-kinda-returns-from-the-dead/</link>
		<comments>http://winjade.net/2009/02/wpf-magnifier-scaling-kinda-returns-from-the-dead/#comments</comments>
		<pubDate>Sat, 21 Feb 2009 16:39:53 +0000</pubDate>
		<dc:creator>Bryant Zadegan</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[blu]]></category>
		<category><![CDATA[dev fail]]></category>
		<category><![CDATA[Developers]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[vectors]]></category>
		<category><![CDATA[What went wrong?]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://www.aeroxp.org/?p=897</guid>
		<description><![CDATA[
This post was originally supposed to be about why blu is faster with WPF, hence the tweet in the image, but after some digging, an equally unusual happening supplanted my original purpose for this post. If you decide to download blu, feel free to follow me as well; blu is a fine application if you [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://winjade.net/wp-content/uploads/2009/02/blucomparoalpha.png" target="_blank"><img style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" title="blucomparo-alpha" src="http://winjade.net/wp-content/uploads/2009/02/blucomparoalpha-thumb.png" border="0" alt="blucomparo-alpha" width="640" height="417" /></a></p>
<p><em>This post was originally supposed to be about why <a href="http://thirteen23.com/experiences/desktop/blu/#" target="_blank">blu</a> is faster with WPF, hence the tweet in the image, but after some digging, an equally unusual happening supplanted my original purpose for this post. If you decide to download blu, <a href="http://twitter.com/conhopper" target="_blank">feel free to follow me as well</a>; blu is a fine application if you don’t mind the occasional <a title="Blu crash" href="http://winjade.net/wp-content/uploads/2009/02/blu-not-responding-3.png" target="_blank">random crashing</a>.</em></p>
<p>When Vista was being developed, the ability to magnify WPF vector graphics was included as an accessibility feature: vectors scaled in the magnifier on a WPF app would be easier to see and read, thus making this feature highly beneficial for those with diminishing sight. However, down the road, the WPF guys decided to scratch this feature in SP1.</p>
<p>Now, before I start, it’s best to know what vector graphics are. Outside the usual jokes about vectors thrown around during the Longhorn days when Aero Diamond managed to be a very persistent rumor, not many people actually understand the benefits of vector graphics over raster images (or, for that matter, what a vector graphic <em>even is</em>).</p>
<ul>
<li><strong>Raster images</strong> are built pixel-by-pixel stacked like brickwork to generate an image. Because of this, raster images aren’t any good once you start zooming in and seeing the individual pixels. Generally, raster images are great for photographs simply because there’s far too much detail to be captured through points and lines, which brings us to vectors.</li>
<li><strong>Vector graphics</strong>, on the other hand, are built using a series of points connected together by way of instructions for various types of lines. Along with fill, effect, and other instructions generally used to make things look pretty, that’s really all a vector graphic is. Because of this, vector graphics are great for web graphics and other computer-generated things which don’t require photographic precision (Corporate logos are a great example).  Thanks to the fact that vector graphics are rendered upon request, they’re infinitely scalable; all you’re doing when scaling a vector graphic is scaling the math behind the scenes.</li>
</ul>
<p>Here’s the thing: <a href="http://blogs.msdn.com/greg_schechter/archive/2008/05/12/gpu-accelerated-custom-effects-for-wpf.aspx#8501940" target="_blank">this feature was supposedly nixed from Vista SP1</a>, but before I found out about this, I tried scaling blu in the magnifier. The text <em>scaled just fine</em>, while the rest of the app did not (though this second bit could just be due to how blu was designed). I tested this out in Windows 7 and found that vector scaling in the magnifier was <a title="Windows 7 Zoom Fail" href="http://winjade.net/wp-content/uploads/2009/02/zoomfail1.png" target="_blank">also kept out of Windows 7</a>, as you can see by the fact that the text in blu is not magnified in Windows 7&#8217;s magnifier.</p>
<p>Well, if you take a look at the leading image at the top of this post, you’ll clearly see that vector scaling works in Vista SP1 at least with text (the unmagnified app is to the left).</p>
<p>Anyone have any ideas? I should note that I <strong>am</strong> on Vista SP1, and I do have .net 3.5 installed.</p>
]]></content:encoded>
			<wfw:commentRss>http://winjade.net/2009/02/wpf-magnifier-scaling-kinda-returns-from-the-dead/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>A lesson on infinite loops</title>
		<link>http://winjade.net/2009/01/lesson-on-infinite-loops/</link>
		<comments>http://winjade.net/2009/01/lesson-on-infinite-loops/#comments</comments>
		<pubDate>Sat, 03 Jan 2009 20:57:35 +0000</pubDate>
		<dc:creator>Bryant Zadegan</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[dev fail]]></category>
		<category><![CDATA[in depth]]></category>
		<category><![CDATA[Infinite Loop]]></category>
		<category><![CDATA[Zune 30]]></category>

		<guid isPermaLink="false">http://www.aeroxp.org/?p=756</guid>
		<description><![CDATA[
pre {
    font-size: medium;
    }

&#160;
&#160;
Yesterday, I took a look at the varying perspectives taken with regards to the Zune 30 debacle. Today, I’ll take a look at what exactly led the Zune 30s to freeze. If you’d like to see the code for the entire driver, click here.
Below the [...]]]></description>
			<content:encoded><![CDATA[<style  TYPE="text/css">
pre {
    font-size: medium;
    }
</style>
<p>&#160;<img style="border-top-width: 0px; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; display: block; border-right-width: 0px" title="quality assurance baby" border="0" alt="quality assurance baby" src="http://winjade.net/wp-content/uploads/2009/01/qualityassurancebaby1.png" width="640" height="480" /></p>
<p>&#160;</p>
<p>Yesterday, <a href="http://www.aeroxp.org/2009/01/zune-30-bug-overinflated/" target="_blank">I took a look</a> at the varying perspectives taken with regards to the Zune 30 debacle. Today, I’ll take a look at what exactly led the Zune 30s to freeze. If you’d like to see the code for the entire driver, <a href="http://pastie.org/349916">click here</a>.</p>
<p>Below the fold lies a sufficiently sized code sample with everything you’ll need to understand what happened with the Zune 30 bug.</p>
<p><script type="text/javascript">
digg_url = 'http://www.aeroxp.org/2009/01/lesson-on-infinite-loops/';
</script><br />
<script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script> </p>
<p> <span id="more-756"></span>
</p>
<p>Relevant code is non-gray code:</p>
<blockquote><pre><font color="#ff00ff"><font color="#000000">#</font>define</font> <font color="#000080">ORIGINYEAR</font> <font color="#ff0000">1980</font> <font color="#000000">
<font color="#008000">BOOL</font> ConvertDays(<font color="#008000">UINT32</font> days<font color="#808080">, SYSTEMTIME* lpTime</font>)
{
    <font color="#008000">int</font> <font color="#808080">dayofweek, month,</font> year;
    <font color="#808080">UINT8 *month_tab;</font>

    <font color="#808080">//Calculate current day of the week
    dayofweek = GetDayOfWeek(days);</font>

    year = <font color="#000080">ORIGINYEAR</font>;

    <font color="#800000">while</font> (days &gt; <font color="#ff0000">365</font>)
    {
        <font color="#800000">if</font> (IsLeapYear(year))
        {
            <font color="#800000">if</font> (days &gt; <font color="#ff0000">366</font>)
            {
                days -= <font color="#ff0000">366</font>;
                year += <font color="#ff0000">1</font>;
            }
        }
        <font color="#800000">else</font>
        {
            days -= <font color="#ff0000">365</font>;
            year += <font color="#ff0000">1</font>;
        }
    }

<font color="#808080">    // Determine whether it is a leap year
    month_tab = (UINT8 *)((IsLeapYear(year))? monthtable_leap : monthtable);

    for (month=0; month&lt;12; month++)
    {
        if (days &lt;= month_tab[month])
            break;
        days -= month_tab[month];
    }

    month += 1;

    lpTime-&gt;wDay = days;
    lpTime-&gt;wDayOfWeek = dayofweek;
    lpTime-&gt;wMonth = month;
    lpTime-&gt;wYear = year;

    return TRUE;
</font>}</font></pre>
</blockquote>
<p>So what’s the purpose of the while loop? To put it simply, it’s designed to get the number of years from the number of days since 1980 as well as a remainder of days out of the current year. Well, let’s look at how the code plays out in my confusingly simple <em>While Loop in Plain English™</em>. Keep in mind that you’re <em>never </em>supposed to retry the loop without committing some sort of action which will ultimately exit the loop:</p>
<ol>
<li>year is set to ORIGINYEAR. Since ORIGINYEAR is 1980, any addition to year is added on top of 1980. This is fine because the hardware is passing the number of days since January 1, 1980. </li>
<li>Is the number of days greater than 365? If so, proceed. Otherwise, skip to number 6. </li>
<li>Is the current year a leap year? If so, proceed. Otherwise, subtract 365 from the number of days, add 1 to the number of years, and skip to number 5. </li>
<li>Is the number of days greater than 366? If so, subtract 366 from the number of days, add 1 to the number of years, and proceed. </li>
<li>retry number 2. </li>
<li>…</li>
<li>Profit? </li>
</ol>
<p>The problem lies in the fact that there is one case which can never escape the loop. If it’s a leap year, the number 366 will stay within the loop forever because 366 will never be greater than 366, but 366 will also always be greater than 365. 366 days will pass through, in our Plain English While Loop, without having any action committed upon it.</p>
<p>There’s a very quick solution to this: Since 366 is a valid remainder of days in a leap year (December 31 is the 366th day in a leap year), 366 can technically exit the loop without any problems. All we need to do is add a way to exit the loop when the number of days is 366. Let’s see how things go with this new breakpoint:</p>
<ol>
<li>year is set to ORIGINYEAR. Since ORIGINYEAR is 1980, any addition to year is added on top of 1980. This is fine because the hardware is passing the number of days since January 1, 1980. </li>
<li>Is the number of days greater than 365? If so, proceed. Otherwise, skip to number 6. </li>
<li>Is the current year a leap year? If so, proceed. Otherwise, subtract 365 from the number of days, add 1 to the number of years, and skip to number 5. </li>
<li>Is the number of days greater than 366? If so, subtract 366 from the number of days, add 1 to the number of years, and proceed. Otherwise, skip to number 6. </li>
<li>retry number 2. </li>
<li>…</li>
<li>Profit!</li>
</ol>
<p>Thanks to the break (represented by “Otherwise, skip to number 6”), 366 days can escape the loop properly. This would lead to the end result for December 31, 2008 being years == 2008 and days == 366.</p>
<p>This is what the break would look in the while loop:</p>
<blockquote>
<pre><font color="#000000">    <font color="#800000">while</font> (days &gt; <font color="#ff0000">365</font>)
    {
        <font color="#800000">if</font> (IsLeapYear(year))
        {
            <font color="#800000">if</font> (days &gt; <font color="#ff0000">366</font>)
            {
                days -= <font color="#ff0000">366</font>;
                year += <font color="#ff0000">1</font>;
            }
            <font color="#800000">else</font>
            {
                <font color="#800000">break;</font>
            }
        }
        <font color="#800000">else</font>
        {
            days -= <font color="#ff0000">365</font>;
            year += <font color="#ff0000">1</font>;
        }
    }
</font></pre>
</blockquote>
<p>Clarifying one quick thing: A number of people on outlets such as Digg suggested that changing “<font color="#800000">if</font> (days &gt; <font color="#ff0000">366</font>)” to “<font color="#800000">if</font> (days &gt;= <font color="#ff0000">366</font>)”:</p>
<p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; display: inline; border-right-width: 0px" title="QAdigg" border="0" alt="QAdigg" src="http://winjade.net/wp-content/uploads/2009/01/qadigg.png" width="660" height="158" /></p>
<p>The problem with doing this is that the end result, upon hitting “<font color="#800000">if</font> (days &gt;= <font color="#ff0000">366</font>)” with the value 366, one would end up with the year going up by one and the operation “<font color="#ff0000">366 –</font>= <font color="#ff0000">366</font>” playing out. End result: December 31 of the leap year is suddenly January 0 of the following year.</p>
<p>&#160;</p>
<p><strong>Extra credit:</strong> This loop can be fixed such that the loop’s condition is based on the year’s status as a leap year. The change needed is simple:</p>
<blockquote>
<pre><font color="#000000">    <font color="#800000">while</font> (days &gt; (IsLeapYear(year) ? <font color="#ff0000">366</font> : <font color="#ff0000">365</font>))
    <font color="#008080">//The above line basically says “Is it a leap year? Check days against 366.
    //Otherwise, check it against 365”</font>
    {
        <font color="#800000">if</font> (IsLeapYear(year))
        {
            days -= <font color="#ff0000">366</font>;
            year += <font color="#ff0000">1</font>;
            <font color="#008080">/*You’ll notice we no longer need a break. The loop condition now
             *checks the days properly. Because the loop properly checks
             *whether days is greater than 365 or 366, the second days &gt; 366
             *check is no longer needed. */</font>
        }
        <font color="#800000">else</font>
        {
            days -= <font color="#ff0000">365</font>;
            year += <font color="#ff0000">1</font>;
        }
    }
</font></pre>
</blockquote>
<p>&#160;</p>
<p>However, if this change is made, IsLeapYear() is now being called twice. This is inefficient, especially on small devices (like the devices which would be using this driver). In order to reduce the number of times IsLeapYear() is being called, it would be best to store the value of IsLeapYear() in a variable.</p>
<blockquote>
<pre><font color="#000000">    <font color="#008000">int</font> leap = IsLeapYear(year);
    <font color="#008080">//leap is determined before the loop begins.
    //In this case, it would be true (1980 is a leap year)</font>
    <font color="#800000">while</font> (days &gt; (leap ? <font color="#ff0000">366</font> : <font color="#ff0000">365</font>))
    {
        <font color="#800000">if</font> (leap)
        {
            days -= <font color="#ff0000">366</font>;
            year += <font color="#ff0000">1</font>;
        }
        <font color="#800000">else</font>
        {
            days -= <font color="#ff0000">365</font>;
            year += <font color="#ff0000">1</font>;
        }
        leap = IsLeapYear(year);
        <font color="#008080">//leap is determined again now that the year has changed.</font>
    }
</font></pre>
</blockquote>
<p>This can actually be reduced even further. If you look at how the if/else statement is operating, you can see that it’s basically saying “If it’s a leap year, subtract 366. Otherwise, subtract 365,” which is similar to the while loop’s condition!</p>
<blockquote>
<pre><font color="#000000">    <font color="#008000">int</font> leap = IsLeapYear(year);
    <font color="#800000">while</font> (days &gt; (leap ? <font color="#ff0000">366</font> : <font color="#ff0000">365</font>))
    {
        days -= (leap ? <font color="#ff0000">366</font> : <font color="#ff0000">365</font>);
        <font color="#008080">//days is equal to days - 366 if it's a leap year,
        //                 days - 365 if it isn't.</font>
        year += <font color="#ff0000">1</font>;
        leap = IsLeapYear(year);
    }
</font></pre>
</blockquote>
<p>If you wanted to reduce the number of times (leap ? <font color="#ff0000">366</font> : <font color="#ff0000">365</font>) is checked, you could do this instead:</p>
<blockquote>
<pre><font color="#000000">    <font color="#008000">int</font> daysThisYear = (IsLeapYear(year) ? <font color="#ff0000">366</font> : <font color="#ff0000">365</font>);
    <font color="#008080">//The number of days in the current year is now calculated instead. </font>
    <font color="#800000">while</font> (days &gt; daysThisYear)
    {
        days -= daysThisYear;
        year += <font color="#ff0000">1</font>;
        daysThisYear = (IsLeapYear(year) ? <font color="#ff0000">366</font> : <font color="#ff0000">365</font>);
    }
</font></pre>
</blockquote>
<p>It’s questionable whether or not this code is any better than the original solution with the break, but this would be the “proper” way to do it (instead of using an arbitrary break in your code). It’s also easier to understand if you know C.</p>
<p>The irony in all of this is that this specific driver is used in multiple Windows CE devices, not just the Zune. This is why quality assurance is so necessary.</p>
<p><strong>There are three morals here: </strong></p>
<ol>
<li><strong>Test every condition which could happen in every single loop in your code </strong>(though, as Matt Boehm points out in the comments, this might be a <a href = "http://www.aeroxp.org/2009/01/lesson-on-infinite-loops/#comment-831">tad bit hard</a>). </li>
<li><strong>Don’t visit Digg for programming advice. What you’ll hear is questionable at best</strong> </li>
<li><strong>Make your code easy to read for other developers.</strong> </li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://winjade.net/2009/01/lesson-on-infinite-loops/feed/</wfw:commentRss>
		<slash:comments>157</slash:comments>
		</item>
		<item>
		<title>What is Oxite? Not what you think.</title>
		<link>http://winjade.net/2008/12/what-is-oxite/</link>
		<comments>http://winjade.net/2008/12/what-is-oxite/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 14:44:00 +0000</pubDate>
		<dc:creator>Bryant Zadegan</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[codeplex]]></category>
		<category><![CDATA[Developers]]></category>
		<category><![CDATA[MIX]]></category>
		<category><![CDATA[Not what you think]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[Oxite]]></category>

		<guid isPermaLink="false">http://www.aeroxp.org/2008/12/what-is-oxite/</guid>
		<description><![CDATA[
The wide world that is the internet may have successfully convinced you that Microsoft just released this wonderful, mystical new blogging front-end for use on ASP.NET servers (Windows hosting, for those of you who just grab shared plans and run with them rather than learning nitty gritty details). There’s a problem with this interpretation of [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-right: 0px; border-top: 0px; margin: 20px; border-left: 0px; border-bottom: 0px; display: inline" title="oxite logo" src="http://winjade.net/wp-content/uploads/2008/12/oxite.png" border="0" alt="oxite logo" width="160" height="105" align="left" /></p>
<p>The wide world that is the internet may have successfully convinced you that Microsoft just released this wonderful, mystical new blogging front-end for use on ASP.NET servers (Windows hosting, for those of you who just grab shared plans and run with them rather than learning nitty gritty details). There’s a problem with this interpretation of what Oxite is, and the fault lies with those who nearly emulated a recent Saturday Night Live Short with the Oxite announcement. To be fair, part of the fault lay with the MIX Labs description of Oxite, but that has since been mostly corrected. <strong><em>Update: </em></strong><em>or not. MIX Online still calls it &#8220;an open source, standards compliant, and highly extensible content management platform that can run anything from blogs to big web sites.&#8221;<br />
</em></p>
<p>What is Oxite? First of all, it’s <em><strong>not</strong></em> a competitor to Wordpress, MovableType, Drupal, or any other completed blogging front end or CMS. It’s not meant to be any of those. It’s meant to be a code sample, a foundation, a building block for those looking to <em>create</em> something like Wordpress for their own sites. According to Jeff Sandquist of Channel 8, 9, 10, and MIX Online fame, “it is a developer sample. period.”</p>
<p>On the other hand, these guys didn’t just toss it up there for no reason at all. Oxite was made public in order to encourage developers to do something with it. The only example that’s online right now is the site for <a href="http://visitmix.com/" target="_blank">MIX Online</a>, though this could change once developers begin using Oxite as a base to build their own Microsoft-centric blogging/content platforms.</p>
<p>Basically, if you hate Community Server (who doesn&#8217;t?) and have some spare time and ASP.NET knowledge on your hands, Oxite might be just what you need. Even if it isn’t something you’ve had in mind, it’s a perfect base for a hobby project.</p>
<p>If you haven’t been keeping up with the news about Oxite, you can pick up the code sample at <a href="http://www.codeplex.com/oxite/" target="_blank">codeplex</a> and you can see the MIX Online implementation of Oxite live. The single biggest benefit to Oxite is that, unlike Community Server which costs tons to implement and even more to maintain, building a solution atop Oxite costs far less in the long run for business and is far more safely extensible for everyone.</p>
<p><em>AeroXperience may host a contest for developers willing to work some magic with Oxite down the road, though this depends on the level of interest.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://winjade.net/2008/12/what-is-oxite/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Windows 7 Sensors Framework interview from PDC</title>
		<link>http://winjade.net/2008/11/windows-7-sensors-framework-interview-from-pdc/</link>
		<comments>http://winjade.net/2008/11/windows-7-sensors-framework-interview-from-pdc/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 03:07:33 +0000</pubDate>
		<dc:creator>Bryant Zadegan</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Exclusive]]></category>
		<category><![CDATA[Interviews]]></category>
		<category><![CDATA[PDC]]></category>
		<category><![CDATA[Polivy]]></category>
		<category><![CDATA[Sensors]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://www.aeroxp.org/2008/11/windows-7-sensors-framework-interview-from-pdc/</guid>
		<description><![CDATA[
During my time at PDC, I managed to speak with many people knowledgeable about various aspects of Windows 7. One of these people was Dan Polivy, a lead on the team behind the new Windows 7 sensors framework which was mentioned a number of times during the old days when Windows 7 speculation was rampant. [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-top-width: 0px; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; display: block; border-right-width: 0px" title="boardscreen" src="http://winjade.net/wp-content/uploads/2008/11/boardscreen.png" border="0" alt="boardscreen" /></p>
<p>During my time at PDC, I managed to speak with many people knowledgeable about various aspects of Windows 7. One of these people was Dan Polivy, a lead on the team behind the new Windows 7 sensors framework which was mentioned a number of times during the old days when Windows 7 speculation was rampant. Dan and I carried an informative interview regarding a number of functions of the Windows 7 sensors framework, including topics such as how easy it might be for a user to receive sensor data from sensors which are plugged into the framework as well as what one could do with various forms of sensor data, such as locational input from WiFi triangulation and GPS signals.</p>
<p>If you’re a developer, watching this video would be a <em>wise</em> decision; we’re doing something special for those who watch, so stay tuned.</p>
<p>You can catch 720p and 1080p download links as well as an embedded version (via Vimeo) after the break. All videos are x264/MP3 in AVI containers.</p>
<p><strong>Update (Sunday, Nov. 8, 2008):</strong> If you have yet to see the interview, a&#8230; &#8220;reasonably good incentive&#8221; embedded within the video is now live.</p>
<p><span id="more-629"></span></p>
<p>If you like what you see, please donate through our subscriber portal. You can see the list of benefits, as well as how to subscribe, <a href="http://www.aeroxp.org/subscribe/" target="_blank">over here</a>.</p>
<ul style="padding-left: 30px;">
<li>720p: <a href="http://mirror.longhornlive.net/pdc2008/AeroXperience_PDC2008_Sensors_720p.avi" target="_blank">Download</a></li>
<li>1080p: <a href="http://mirror.longhornlive.net/pdc2008/AeroXperience_PDC2008_Sensors_1080p.avi" target="_blank">Download</a></li>
</ul>
<p>Feel free to watch the Vimeo version (it would be nice to our bandwidth if you did!):</p>
<p align="center"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="360" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=2157150&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="640" height="360" src="http://vimeo.com/moogaloop.swf?clip_id=2157150&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://winjade.net/2008/11/windows-7-sensors-framework-interview-from-pdc/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
<enclosure url="http://mirror.longhornlive.net/pdc2008/AeroXperience_PDC2008_Sensors_720p.avi" length="228454400" type="video/x-msvideo" />
<enclosure url="http://mirror.longhornlive.net/pdc2008/AeroXperience_PDC2008_Sensors_1080p.avi" length="534697984" type="video/x-msvideo" />
		</item>
		<item>
		<title>The Mike Nash Roundtable</title>
		<link>http://winjade.net/2008/10/the-mike-nash-roundtable/</link>
		<comments>http://winjade.net/2008/10/the-mike-nash-roundtable/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 15:17:20 +0000</pubDate>
		<dc:creator>Bryant Zadegan</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[Beta 1]]></category>
		<category><![CDATA[Developers]]></category>
		<category><![CDATA[Mike Nash Rules the World]]></category>
		<category><![CDATA[PDC]]></category>
		<category><![CDATA[PDC 2008]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://www.aeroxp.org/?p=601</guid>
		<description><![CDATA[ For those wondering, Mike Nash is (according to his business card) the “Corporate Vice President” for “Windows Product Management.”
Mike held a small roundtable for a number of pressies. He gave a quick rundown of things you all basically already know, so I took the time to ask a few questions which kept you guys [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-right: 0px; border-top: 0px; margin-left: 0px; border-left: 0px; margin-right: 0px; border-bottom: 0px; display: inline" title="nash" border="0" alt="nash" align="right" src="http://winjade.net/wp-content/uploads/2008/10/nash-thumb.png" width="240" height="226" /> For those wondering, Mike Nash is (according to his business card) the “Corporate Vice President” for “Windows Product Management.”</p>
<p>Mike held a small roundtable for a number of pressies. He gave a quick rundown of things you all basically already know, so I took the time to ask a few questions which kept you guys in mind. The questions I asked:</p>
<ul>
<li>What’s the difference between “API Complete” (build 6801) is and “Feature Complete” (Beta 1)?</li>
<li>Why were lots of code samples and features being shown off for the Superbar at PDC when developers can’t develop for it? (Rafael’s extension of my API v. Feature Complete question)</li>
<li>Why were the sensor demonstrations missing from the Windows 7 keynote today?</li>
</ul>
<p>The answers to these questions can be found in the true-to-life* transcript after the break.</p>
<p> <span id="more-601"></span>
<p>*Given that this is a transcript, it may be wrought with grammatical errors, but this is exactly how the chat went down.</p>
<blockquote><p><strong>Bryant:</strong> I had a question which I had myself but my colleague Rafael phrased it much better than I did, and it kinda ties into your note about how the build given to developers here at PDC this week is “API Complete” whereas the builds you were… whereas beta 1 is going to be “Feature Complete” or at least that’s the attempt… my own question is: what’s the difference between “API Complete” and “Feature Complete”? More specifically, Rafael’s question is, um, he noted that there are a lot of sessions at PDC talking about the superbar, and <em>developing</em> for the superbar, and one session that he went to had a lot of code samples being shown, but he also took note that developers can’t even develop for it because the superbar isn’t even in the build. </p>
<p><strong>Mike: </strong>So the question really is, first of all, “What’s the difference between ‘API Complete’ and ‘Feature Complete’, and what is a developer to do who wants to write software that takes advantage of features that aren’t in the current ‘M3’ build.” So API complete, um, says that all the interfaces that developers are gonna code to… are in the product, and the third milestone of Windows 7 always had the goal of being API complete, which means&#160; we’re not going to add any more APIs subsequently. Feature complete means that all the functions that are gonna be part of Windows 7 are in that build, and our beta, which will ship early next year [<em>in time for CES</em>], will be Feature Complete. The real – One of the hard questions we had… which we faced, is “<em>Well</em>, do we give everyb—do we only demo the API Complete release even though we have been working since September when we cut M3, do we demo more than the M3 build” and the answer is “aaah! We only have these developers together that often. It’d seem like kind-of a shame to not show them everything we had,” which then begged the question “Well why don’t you just give them the build that Steven used on stage?” which was the stuff from last Friday. The answer is “Well, in order to stabilize that, we woulda had to start stabilizing it back in August to be done in September (which is kinda what we did), so we couldn’t give you something from last Friday at this scale, or at the same time, it’d seem like a shame to not show you everything that we had. So what you see here is that optimization. Is it perfect? <em>No.</em> I think the other thing—hey well I could tell anybody anything til it’s all the way done. The problem there is, you don’t give the ecosystem the chance to get going. So, you are here a little bit watching the sausage being made in the sense that you’re watching us have this dialog with our partners to make sure that they are ready so that when we get to beta, there’s some momentum for Windows 7, and then certainly as we get towards general availability for Windows 7, there’s a healthy set of things that take advantage of Windows 7 that are out there.</p>
<p><strong>Bryant:</strong> So, I guess tying back into the API Complete v. Feature Complete stuff, could a developer develop for the superbar in 6801?</p>
<p><strong>Mike</strong>: Certain aspects of it, yes; certain aspects of it, no.</p>
<p><strong>Bryant</strong>: Okay.</p>
<p><strong>Mike:</strong> and some of that is sorta enough work to do between now and then that when the beta comes out they can get, you know, have all those features be there.</p>
<p><strong>Bryant:</strong> Okay, thanks.</p>
<p><strong>Mike:</strong> Great question.</p>
<p><strong>Bryant: </strong>A few more questions, I guess, but… in the keynote that I saw today, there was one thing that was notably absent, and that was the sensor demos which were later discussed in the expo hall. Are you guys saving the sensor demonstrations &#8212; like the accelerometer demos, the touch demos and such… well not the touch demos so much but mostly just sensor work) &#8212; but are you saving that more for… WinHEC?</p>
<p><strong>Mike: </strong>If I told you, I’d have to kill you.</p>
<p><strong>Some other pressie:</strong> Cool!</p>
<p><strong>Mike: </strong>Okay, here’s the challenge. Today was the first time that we talked about Windows 7 in any scale, and I’d say, again, sorta the… how advanced this thing is – this phase, we’re further along than we’ve been at least in a long time. How much do people know? We’ve held a lot more back than ever, so today was like “WOW; lot to talk about and not a lot of time,” and we had to be sorta choiceful about what we talked about.</p>
<p><strong>Bryant:</strong> Yeah.</p>
<p><strong>Mike</strong>: Next week we have WinHEC – things that are about sorta the core of Windows 7 by default happened here. Things that are more… developer oriented… happened here. Things that are more hardware oriented, without being specific, you could expect to be in a convention center not unlike this one in a town with the same zipcode.</p>
<p><em>[laughter]</em></p>
<p><strong>Mike: </strong>Yeah, in about a week.</p>
</blockquote>
<p>Summary:</p>
<ul>
<li>What is API Complete v. Feature Complete? API Complete has the developer bits ready for the developers to work with, even if some of them are dead-ends for now. Feature Complete expands on this by making all of the APIs functional.</li>
<li>Why were code samples and such being shown off for the Superbar? Developers will be able to code for it anyway, but they’ll have enough to work with between now and Beta 1 that once Beta 1 hits the scene, they’ll have a good amount of code that doesn’t require functional awareness actually prepared.</li>
<li>Why were the sensor bits missing from the Windows 7 keynote? Because it’s more relevant to WinHEC, but there’s a session on that which I’ll be covering today, so it’s all good.</li>
</ul>
<p>There you have it. I’ll be covering today’s sensor demonstration at 10:30 today. I look forward to bringing you what I see.</p>
]]></content:encoded>
			<wfw:commentRss>http://winjade.net/2008/10/the-mike-nash-roundtable/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Silverlight 2 Up for Download October 14</title>
		<link>http://winjade.net/2008/10/silverlight-2-download-oct14/</link>
		<comments>http://winjade.net/2008/10/silverlight-2-download-oct14/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 17:50:40 +0000</pubDate>
		<dc:creator>Bryant Zadegan</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[absolutely awesome]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[DRM]]></category>
		<category><![CDATA[Release]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Silverlight 2]]></category>

		<guid isPermaLink="false">http://www.aeroxp.org/2008/10/silverlight-2-up-for-download-tomorrow-morning/</guid>
		<description><![CDATA[ Scott Guthrie and Brian Goldfarb held a conference call in the morning (Pacific time) and used their time to discuss the launch of Silverlight 2. I took part in the web conference and jotted down some quick things which are worth noting, though here are some worthy facts which you can take a quick [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-right: 0px; border-top: 0px; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px; display: block" title="silverlightlogo" src="http://winjade.net/wp-content/uploads/2008/10/silverlightlogo-thumb.jpg" border="0" alt="silverlightlogo" width="442" height="493" /> Scott Guthrie and Brian Goldfarb held a conference call in the morning (Pacific time) and used their time to discuss the launch of Silverlight 2. I took part in the web conference and jotted down some quick things which are worth noting, though here are some worthy facts which you can take a quick gander at right now:</p>
<ul>
<li>Anyone on Silverlight 1 or Silverlight 2 Beta will be <strong>automatically upgraded</strong> to Silverlight 2.0 (as written in the EULA). I asked Scott if Windows Server Update Services can <strong>block </strong>Silverlight from auto-upgrading on a business network. Answer: <strong>Yes.</strong></li>
<li>Changes from RC0 are limited in scope, basically bug fixes and minor UI tweaks to some of the controls.</li>
<li>Content <strong>can be DRM’d</strong>, which makes sense given Blockbuster’s willingness to embrace Silverlight as a platform.</li>
<li><strong>Eclipse IDE support!</strong></li>
</ul>
<p>To download Silverlight 2, simply head <a href="http://www.microsoft.com/silverlight" target="_blank">here</a>. Catch more tidbits of Silverlight 2 goodness after the break.</p>
<p><span id="more-429"></span></p>
<p>Usage and Deployment Statistics:</p>
<ul>
<li>One in Four customers, according to Microsoft, have access to a machine with Silverlight.</li>
<li>NBCOlympics.com boosted United States Silverlight deployment by 30%.</li>
<li>Silverlight 1 was used primarily to seed adoption by deploying a plugin with (comparatively) basic media support. Silverlight 2 will be deployed on top of these guys to bring the seeds up to date.</li>
<li>Silverlight 2.0 will be roughly the same size as previous beta builds: <strong>4.5MB, roughly a 10 second install time on a clean machine.</strong></li>
</ul>
<p>Third Party Statistics and Notes:</p>
<ul>
<li>NBCOlympics.com had 70 million viewers in two weeks. Video quality was at 1.5MBit/s</li>
<li>Average time spent per user on NBCOlympics.com: <strong>27 minutes</strong>, which is nuts!</li>
<li>Companies which have Silverlight 2 plans today or will have something soon: CBS College Sports Network, Hard Rock Cafe, Toyota, AOL Mail Live (as discussed at MIX), Yahoo Japan, Blockbuster</li>
<li>Example: Blockbuster’s implementation would be used for buying/renting films.</li>
</ul>
<p>Expansion:</p>
<ul>
<li>Google Chrome deployment was a pain on earlier releases. The most recent Chrome dev release for Windows has the blocking issue fixed, so <strong>Silverlight should now work with Chrome</strong> without any issues. Thanks, Google!</li>
<li>Apple does not want any browser extensions (e.g. Flash, Silverlight) on the iPhone at this time. Surprise!</li>
<li><strong>Android</strong>, on the other hand, is a route which Microsoft is actively investigating. Given Android’s open nature, <strong>expect a release here</strong> at some point.</li>
<li>No word on whether Silverlight will come bundled with Windows 7 (or if that’s even legal, for that matter). More at PDC.</li>
<li>Symbian has Silverlight on it thanks to an agreement between Nokia and Microsoft. This was announced back at MIX but will likely be reinforced as Microsoft tries to broaden Silverlight’s exposure to more platforms.</li>
<li>Scott mentioned private testing with other manufacturers, and while he declined to mention any besides Nokia, Apple, and the Android OS teams, his “private testing” note fits well with what I’ve heard from sources regarding <strong>discussions between RIM and Microsoft for Silverlight integration</strong> on the next series of smartphones after the current (9000) series. This is separate from any rumored RIM/Microsoft buyout plans, of which I’ve got no word.</li>
</ul>
<p>Development Support and Technical Data:</p>
<ul>
<li><strong>Eclipse!</strong> <a title="http://www.eclipse4sl.org/" href="http://www.eclipse4sl.org/">http://www.eclipse4sl.org/</a></li>
<li>Visual Studio support will be there, both via Visual Studio 2008 and Visual Web Developer 2008 Express Edition.</li>
<li>Expression Studio 2 will also have full Silverlight 2 development support via service pack later this month.</li>
<li>“Powerful” built-in controls:  DataGrid, ListBox, Slider, ScrollViewer, Calendar controls, Deep View, etc.</li>
<li>The usual <strong>cross-platform support</strong> will still exist on <strong>Mac, Windows, and Linux (via Moonlight)</strong></li>
<li>.NET framework language support will be boosted to a ridiculous level: Examples: Visual Basic, C#, JavaScript, IronPython and IronRuby.</li>
<li>Silverlight 2 will have its own <strong>in-house .NET framework</strong>, so .NET won’t be required on the machine beforehand. This is part of the 4.5MB download.</li>
<li><strong>DRM support. <img src='http://winjade.net/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </strong></li>
<li>Advertiser support, data reporting, SEO, and the like.</li>
<li>Full Screen keyboard usage is better than before but still limited in an effort to block spoofing attacks. Keys popular for gaming will be allowed, but the full gamut of keyboard strokes will not be accessible in full-screen mode.</li>
</ul>
<p>Remember to <a href="http://www.microsoft.com/silverlight" target="_blank">download Silverlight 2</a> on October 14 if you don’t already have a previous version of Silverlight installed.</p>
]]></content:encoded>
			<wfw:commentRss>http://winjade.net/2008/10/silverlight-2-download-oct14/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
