<?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>Running with Code</title>
	<atom:link href="http://robpaveza.net/feed" rel="self" type="application/rss+xml" />
	<link>http://robpaveza.net</link>
	<description>Like with scissors, only more dangerous</description>
	<lastBuildDate>Sat, 16 Mar 2013 06:37:43 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5</generator>
		<item>
		<title>A Loop for WinJS Promises</title>
		<link>http://robpaveza.net/a-loop-for-winjs-promises</link>
		<comments>http://robpaveza.net/a-loop-for-winjs-promises#comments</comments>
		<pubDate>Sat, 16 Mar 2013 06:37:43 +0000</pubDate>
		<dc:creator>Rob Paveza</dc:creator>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[algorithms]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[promise]]></category>
		<category><![CDATA[windows 8]]></category>
		<category><![CDATA[winjs]]></category>

		<guid isPermaLink="false">http://robpaveza.net/?p=267</guid>
		<description><![CDATA[I had a co-worker ping me from an internal mailing list recently because he was having trouble reading from a network stream. I dug this out of mothballs from Win8 Consumer Preview: This code was used for managing game state in a card-playing game app that I never finished. Usage might look like this: ‘gameplay’ [...]]]></description>
				<content:encoded><![CDATA[<p>I had a co-worker ping me from an internal mailing list recently because he was having trouble reading from a network stream.  I dug this out of mothballs from Win8 Consumer Preview:</p>
<pre class="brush: jscript; title: ; notranslate">WinJS.Class.define('Game', function() { /* constructor */ },
    { /* instance prototype */ },
    { /* static members */ 
        LoopWhileTrue: function (context, testCallback, actionReturningPromise, state) {
            /// &lt;summary&gt;Loops an action (that returns a promise) until another callback (that returns a Boolean) indicates that it should no longer continue.&lt;/summary&gt;
            return new WinJS.Promise(function (success, error) {
                function evalActContinueLoop() {
                    if (testCallback.call(context, state)) {
                        var innerPromise = actionReturningPromise.call(context, state);
                        innerPromise.then(evalActContinueLoop, function (e) {
                            error(e);
                        });
                    }
                    else {
                        success(state);
                    }
               }
                evalActContinueLoop();
            });
        }
    });
</pre>
<p>This code was used for managing game state in a card-playing game app that I never finished.  Usage might look like this:</p>
<pre class="brush: jscript; title: ; notranslate">var gameplay = Game.LoopWhileTrue(game, game.isGameInPlay, game.playHand, game.state);</pre>
<p>‘<tt>gameplay</tt>’ then became a Promise that:</p>
<ul>
<li>is fulfilled when the entire game completes (all hands have been played or a terminal score is achieved, based on the value returned by calling <tt>game.isGameInPlay(state)</tt>).</li>
<li>results in an error-fulfillment state if an internal call results in an error.</li>
<li>iteratively calls <tt>game.playHand(game.state)</tt>, passing in ‘<tt>game</tt>’ as the <tt>this</tt> pointer (important in JS) until it is fulfilled (see 1st bullet).</li>
<li>if <tt>game.playHand</tt> completes synchronously, this method could cause a stack overflow.  This can be broken with periodic use of <tt><a href="http://ie.microsoft.com/testdrive/Performance/setImmediateSorting/Default.html" target="_blank">setImmediate</a></tt>.</li>
</ul>
<p>This method can conveniently be used to emulate a for-loop or a while-loop.  It doesn't quite as well emulate a do-while-loop because it checks the terminal condition, but you could write a simple adapter method to always return true for the first call to the method.</p>
]]></content:encoded>
			<wfw:commentRss>http://robpaveza.net/a-loop-for-winjs-promises/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modern Dilbert Reader v1.3 is in the Store!</title>
		<link>http://robpaveza.net/modern-dilbert-reader-v1-3-is-in-the-store</link>
		<comments>http://robpaveza.net/modern-dilbert-reader-v1-3-is-in-the-store#comments</comments>
		<pubDate>Sat, 12 Jan 2013 02:38:59 +0000</pubDate>
		<dc:creator>Rob Paveza</dc:creator>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[dilbert]]></category>
		<category><![CDATA[windows 8]]></category>

		<guid isPermaLink="false">http://robpaveza.net/?p=263</guid>
		<description><![CDATA[I got the new Modern Dilbert Reader uploaded to the Windows App Store. It now has Favorites support as well as Offline Viewing support. Get it and enjoy!!!]]></description>
				<content:encoded><![CDATA[<p>I got the new Modern Dilbert Reader uploaded to the Windows App Store.  It now has Favorites support as well as Offline Viewing support.</p>
<p><img src="http://wscont1.apps.microsoft.com/winstore/1x/178e5583-868d-4f65-8c41-1c728f853be5/Screenshot.37714.1000005.jpg" alt="Favorites list" /></p>
<p><img src="http://wscont2.apps.microsoft.com/winstore/1x/178e5583-868d-4f65-8c41-1c728f853be5/Screenshot.37714.1000006.jpg" alt="Offline Viewing settings" /></p>
<p>Get it and enjoy!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://robpaveza.net/modern-dilbert-reader-v1-3-is-in-the-store/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shame on you, Cnet</title>
		<link>http://robpaveza.net/shame-on-you-cnet</link>
		<comments>http://robpaveza.net/shame-on-you-cnet#comments</comments>
		<pubDate>Tue, 08 Jan 2013 06:25:11 +0000</pubDate>
		<dc:creator>Rob Paveza</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[cnet]]></category>
		<category><![CDATA[junkware]]></category>
		<category><![CDATA[spyware]]></category>

		<guid isPermaLink="false">http://robpaveza.net/?p=253</guid>
		<description><![CDATA[Please be reminded that what is written on this blog is my personal opinion and not that of my employer. So today, I went to install BD Advisor from CyberLink. I was trying to play Vudu content on my 27" iMac (running Windows 8 of course), and was having inexplicable trouble with HDCP (I know [...]]]></description>
				<content:encoded><![CDATA[<p>Please be reminded that what is written on this blog is my personal opinion and not that of my employer.</p>
<p>So today, I went to install BD Advisor from CyberLink.  I was trying to play Vudu content on my 27" iMac (running Windows 8 of course), and was having inexplicable trouble with HDCP (I know that the still-relatively-modern AMD Radeon in the machine is HDCP compliant, as should be the DisplayPort-to-DVI adapter I use for my second monitor).  So, after a few forums I looked at recommended BD Advisor, I went to get it.  Bing presented a couple of options: Cyberlink's site, and Cnet's Download.com.  I went for Cnet because I figured that it was more likely to not require me to enter my email address.</p>
<p>I remember back in the day, my friend Charles and I used to surf Download.com *all the time*.  We used Download.com before it was Cnet's (which is forever ago in internet years), and even since then it was a pretty reliable repository for downloadable goodies and freeware.  Usually, that freeware was unsullied.</p>
<p>I went through the download process, but instead of getting the BD Advisor installer, I got the "CBS Downloader" or something like that.  But I let it go, not seeing another way to get the app I wanted.  And it prompted me to go through what I thought were routine license agreements.  But when I clicked Accept a couple of times, and my IE instance disappeared, I got to thinking that something might be a little fishy.  So I looked a little closer.</p>
<p>It was prompting to install junkware.</p>
<p>I know it's junkware, because the text saying that it's what it's installing is really, really small.</p>
<p><img src="http://robpaveza.net/wp-content/uploads/2013/01/InstallerScreen.png" alt="Installer Screen" width="645" height="501" class="alignnone size-full wp-image-255" /></p>
<p>Now, that might not look terribly small to you.  Trust me, on a 27" screen at 2560x1440, it's pretty small:</p>
<p><a href="http://robpaveza.net/wp-content/uploads/2013/01/InstallerFullScreen.png"><img src="http://robpaveza.net/wp-content/uploads/2013/01/InstallerFullScreen-1024x576.png" alt="Installer Full Screen" width="550" height="309" class="alignnone size-large wp-image-256" /></a></p>
<p>So, recognizing the threat once I had clicked through a couple "Accept" buttons, I fired up Programs and Features, and whatever did I see?<br />
<img src="http://robpaveza.net/wp-content/uploads/2013/01/CnetInstallerInstallsSpyware.png" alt="Cnet Installer Installs Spyware" width="805" height="282" class="alignnone size-full wp-image-254" /></p>
<p>Oh hey, look at that, things I most certainly did not intend to install on my computer!  (Wajam and Coupon Companion Plugin)</p>
<p>Even BETTER!  When I went to uninstall Coupon Companion, whatever that is, I caught it trying to install MORE spyware from its UNINSTALLER!</p>
<p><img src="http://robpaveza.net/wp-content/uploads/2013/01/CouponCompanionUninstallInstallsSpyware.png" alt="CouponCompanion Uninstall Installs Spyware" width="513" height="436" class="alignnone size-full wp-image-259" /></p>
<p>"Basic Seek, which fixes DNS errors..." no doubt by overriding your default DNS configuration and points it to something which can track your DNS requests.  That's nice.</p>
<p>Happily I was able to quickly get rid of that junkware, and I did get BD Advisor.  But look again at the installer:<br />
<img src="http://robpaveza.net/wp-content/uploads/2013/01/InstallerScreen.png" alt="Installer Screen" width="645" height="501" class="alignnone size-full wp-image-255" /></p>
<p>See how its "Decline" button makes it look as if hitting Decline will cancel it out?  I mean, you could make the argument that "Close" would do that, and therefore "Decline" wouldn't also, but given the green "go forward" button of "Accept" having a very clear opposite of "Decline," my initial reaction is, very understandably, that Decline means Stop.</p>
<p>For shame, Cnet.  I have come to expect more from you over the years.  Today, I'm very disappointed.</p>
]]></content:encoded>
			<wfw:commentRss>http://robpaveza.net/shame-on-you-cnet/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Coming Soon: Offline Comic Storage for the Modern Dilbert Reader</title>
		<link>http://robpaveza.net/coming-soon-offline-comic-storage-for-the-modern-dilbert-reader</link>
		<comments>http://robpaveza.net/coming-soon-offline-comic-storage-for-the-modern-dilbert-reader#comments</comments>
		<pubDate>Fri, 21 Dec 2012 10:50:31 +0000</pubDate>
		<dc:creator>Rob Paveza</dc:creator>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[dilbert]]></category>
		<category><![CDATA[windows 8]]></category>

		<guid isPermaLink="false">http://robpaveza.net/?p=250</guid>
		<description><![CDATA[Modern Dilbert Reader version 1.3 is in the works and is coming along very well! It's got a couple of bug fixes, but more importantly, it has two new features! The first is that it will support caching comics offline, so you can take them on the plane with you! (Yes, I'm actually planning this [...]]]></description>
				<content:encoded><![CDATA[<p>Modern Dilbert Reader version 1.3 is in the works and is coming along very well!  It's got a couple of bug fixes, but more importantly, it has two new features!  The first is that it will support caching comics offline, so you can take them on the plane with you!  (Yes, I'm actually planning this for an upcoming trip).  The second is a built-in Favorites list.  We'll leverage the strip information from the Dilbert Strip Index to provide a great rundown of the strips.</p>
<p>Keep an eye out for it soon!  It isn't submitted to the Store yet, but I'm hoping to submit it before going on my trip.  </p>
<p>Happy holidays!</p>
]]></content:encoded>
			<wfw:commentRss>http://robpaveza.net/coming-soon-offline-comic-storage-for-the-modern-dilbert-reader/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modern Dilbert Reader v1.2 Pending Certification</title>
		<link>http://robpaveza.net/modern-dilbert-reader-v1-2-pending-certification</link>
		<comments>http://robpaveza.net/modern-dilbert-reader-v1-2-pending-certification#comments</comments>
		<pubDate>Mon, 10 Dec 2012 08:44:51 +0000</pubDate>
		<dc:creator>Rob Paveza</dc:creator>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[dilbert]]></category>

		<guid isPermaLink="false">http://robpaveza.net/?p=243</guid>
		<description><![CDATA[I've updated the Modern Dilbert Reader app again. In version 1.2, there is new Live Tiles functionality, and updated date picker, and a new way to access the date picker: via the app bar. Hopefully, that will improve discoverability. One reviewer said that the date looked funny with such a large font on a big [...]]]></description>
				<content:encoded><![CDATA[<p>I've updated the Modern Dilbert Reader app again.  In version 1.2, there is new Live Tiles functionality, and updated date picker, and a new way to access the date picker: via the app bar.  Hopefully, that will improve discoverability.</p>
<p>One reviewer said that the date looked funny with such a large font on a big monitor.  I had to agree.  So, I've made the font smaller, and the month/day/year read with full names.  I've also updated the date picker to be more inline:<br />
<img src="http://robpaveza.net/wp-content/uploads/2012/12/NewDilbertTitleAndDatePicker.png" alt="" title="NewDilbertTitleAndDatePicker" width="699" height="397" class="alignnone size-full wp-image-246" /></p>
<p>I also added a button for the date picker to the bottom App Bar (right click or swipe-in from the bottom):<br />
<img src="http://robpaveza.net/wp-content/uploads/2012/12/ChooseStripInAppBar.png" alt="" title="ChooseStripInAppBar" width="527" height="173" class="alignnone size-full wp-image-244" /></p>
<p>Finally, new Live Tile functionality:<br />
<img src="http://robpaveza.net/wp-content/uploads/2012/12/LiveTile.png" alt="" title="LiveTile" width="474" height="239" class="alignnone size-full wp-image-245" /></p>
<p>I'll update the post once it gets certified and submitted to the App Store.</p>
]]></content:encoded>
			<wfw:commentRss>http://robpaveza.net/modern-dilbert-reader-v1-2-pending-certification/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modern Dilbert Reader v1.1 submitted to the Store</title>
		<link>http://robpaveza.net/modern-dilbert-reader-v1-1-submitted-to-the-store</link>
		<comments>http://robpaveza.net/modern-dilbert-reader-v1-1-submitted-to-the-store#comments</comments>
		<pubDate>Fri, 16 Nov 2012 08:22:23 +0000</pubDate>
		<dc:creator>Rob Paveza</dc:creator>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[dilbert]]></category>
		<category><![CDATA[windows 8]]></category>

		<guid isPermaLink="false">http://robpaveza.net/?p=236</guid>
		<description><![CDATA[My Dilbert app for Windows 8, the Modern Dilbert Reader, just got an update that is pending certification for the Windows Store. This change fixes a bug that a few people have periodically seen where strips lie on top of each other. It also speeds up search. Best, it uses the higher-quality images available for [...]]]></description>
				<content:encoded><![CDATA[<p>My Dilbert app for Windows 8, the <a href="http://apps.microsoft.com/webpdp/en-US/app/modern-dilbert-reader/27171e1b-ebde-4a07-b406-802a4e977663">Modern Dilbert Reader</a>, just got an update that is pending certification for the Windows Store.  This change fixes a bug that a few people have periodically seen where strips lie on top of each other.  It also speeds up search.</p>
<p>Best, it uses the higher-quality images available for the main strip display.</p>
<p>I'll note when the new version gets updated, but you can download today's version and the Store app will let you know when the new version is available.</p>
]]></content:encoded>
			<wfw:commentRss>http://robpaveza.net/modern-dilbert-reader-v1-1-submitted-to-the-store/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modern Dilbert Reader is now in the Windows 8 Store</title>
		<link>http://robpaveza.net/modern-dilbert-reader-is-now-in-the-windows-8-store</link>
		<comments>http://robpaveza.net/modern-dilbert-reader-is-now-in-the-windows-8-store#comments</comments>
		<pubDate>Fri, 09 Nov 2012 18:29:10 +0000</pubDate>
		<dc:creator>Rob Paveza</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[dilbert]]></category>
		<category><![CDATA[windows 8]]></category>

		<guid isPermaLink="false">http://robpaveza.net/?p=234</guid>
		<description><![CDATA[My Dilbert reader app has passed certification and is now in the Windows 8 app store! Check out the info about it on my blog or head directly over to the Windows Store web site. The "Modern Dilbert Reader" app is not endorsed by my employer.]]></description>
				<content:encoded><![CDATA[<p>My Dilbert reader app has passed certification and is now in the Windows 8 app store!  <a href="http://robpaveza.net/dilbert">Check out the info about it</a> on my blog or <a href="http://apps.microsoft.com/webpdp/en-US/app/modern-dilbert-reader/27171e1b-ebde-4a07-b406-802a4e977663">head directly over to the Windows Store web site</a>.</p>
<p>The "Modern Dilbert Reader" app is not endorsed by my employer.  <img src='http://robpaveza.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://robpaveza.net/modern-dilbert-reader-is-now-in-the-windows-8-store/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Week with a Surface</title>
		<link>http://robpaveza.net/a-week-with-a-surface</link>
		<comments>http://robpaveza.net/a-week-with-a-surface#comments</comments>
		<pubDate>Sat, 03 Nov 2012 03:02:38 +0000</pubDate>
		<dc:creator>Rob Paveza</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Me @ MSFT]]></category>
		<category><![CDATA[surface]]></category>
		<category><![CDATA[tablet]]></category>

		<guid isPermaLink="false">http://robpaveza.net/?p=217</guid>
		<description><![CDATA[A week ago, on October 26, Microsoft released the Surface, along with Windows 8. Because this was my first product launch (other than TypeScript, though that technically wasn't my product), well, I just couldn't help myself: I waited in line at the Bellevue Square Microsoft Store and got mine on release day. It was a [...]]]></description>
				<content:encoded><![CDATA[<p>A week ago, on October 26, Microsoft released the <a href="http://www.surface.com" target="_blank">Surface</a>, along with Windows 8.  Because this was my first product launch (other than <a href="http://robpaveza.net/announcing-typescript">TypeScript</a>, though that technically wasn't my product), well, I just couldn't help myself: I waited in line at the Bellevue Square Microsoft Store and got mine on release day.  It was a madhouse:</p>
<p><img src="https://sphotos-b.xx.fbcdn.net/hphotos-prn1/64591_10101890219152561_1398071302_n.jpg" /></p>
<p>I got a 32gb device along with a Type Cover, the thicker one with the mechanical keys.  I believe that the specs for the Type Cover say that it's 5 or 6mm thick; okay, that might be twice the thickness of the Touch Cover, but it's still tiny.</p>
<p>Not only is it awesome for taking to meetings, but I can actually get work done on it.  I can't code, of course; well, at least, not at the office, since I can't RDP to my desktop from it.  But I've spent the whole week taking it to meetings, taking notes, and writing specs.  I can't believe how snappy everything is.</p>
<p>Now, let me set the stage a little bit more.  When I started at Microsoft in April, I was assigned a <a href="http://www.lenovo.com/products/us/laptop/thinkpad/xtablet-series/?menu-id=learn&#038;ref-id=learn" target="_blank">Lenovo ThinkPad X-Series convertible tablet</a>.  It supported multi-touch, has a keyboard, an extended battery life of about 6 hours, and on day one I was able to install a daily build of Windows 8.  I've been using Windows 8 on my desktop PC (no touch) at the office since then as well, and in August when we RTM'd, I installed it onto my home iMac (of course no touch), which I previously dual-booted with OS X and Win7.  </p>
<p>I didn't really understand how cool Windows 8's touch functionality was until I got the Surface.</p>
<p>Now, this isn't to say that partner / OEM vendors don't have worthwhile devices.  I haven't played with them at this point.  I hope they're as good as the Surface, or even better, because if they're better, then, DANG.  But all that having been said - I have to give my kudos to the team behind Windows RT and the Surface.  They have done a remarkable job.</p>
<p>If you haven't experienced Windows 8 on a touch device yet, get thee to a Microsoft Store.  Try it.  The productivity losses of being completely addicted to <a href="http://www.halfbrick.com/our-games/jetpack-joyride/" target="_blank">Jetpack Joyride</a> will definitely be offset by the productivity gains of being able to flick a Word document up to scroll, and then just pointing the cursor into place on the screen rather than using the mouse.</p>
<p>And to be honest, as much as I have been thinking I might want to code on the Surface, in retrospect, I'm not sure that's true.  I have a 17" laptop and a 27" desktop screen, and I use that screen real estate judiciously when I'm coding.  </p>
<p>OK, who am I kidding?  I'll be getting a Surface Pro whenever it comes out.  But until then, I'm having a good time on this awesome tablet!</p>
<p><a href="http://robpaveza.net/wp-content/uploads/2012/11/surface.jpg"><img src="http://robpaveza.net/wp-content/uploads/2012/11/surface-1024x948.jpg" alt="Surface with Type Cover" title="Surface with Type Cover" width="550" height="509" class="alignnone size-large wp-image-219" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://robpaveza.net/a-week-with-a-surface/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Announcing TypeScript</title>
		<link>http://robpaveza.net/announcing-typescript</link>
		<comments>http://robpaveza.net/announcing-typescript#comments</comments>
		<pubDate>Mon, 01 Oct 2012 16:13:18 +0000</pubDate>
		<dc:creator>Rob Paveza</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[typescript]]></category>

		<guid isPermaLink="false">http://robpaveza.net/?p=202</guid>
		<description><![CDATA[I'm very excited to announce that my team at Microsoft has released TypeScript, a new language for application-scale JavaScript development. TypeScript cross-compiles to JavaScript, and is fully compatible with existing JavaScript code. That means that your existing JavaScript can go directly into TypeScript, unchanged, and is immediately usable. You can start by adding type annotations [...]]]></description>
				<content:encoded><![CDATA[<p>I'm very excited to announce that my team at Microsoft has released <a href="http://www.typescriptlang.org" target="_blank">TypeScript</a>, a new language for application-scale JavaScript development.  TypeScript cross-compiles to JavaScript, and is fully compatible with existing JavaScript code.  That means that your existing JavaScript can go directly into TypeScript, unchanged, and is immediately usable.</p>
<p>You can start by adding type annotations to your JavaScript, which allows your tools to give you compilation warnings and errors when you're doing something that appears to be incorrect.</p>
<p>The next step beyond annotating your code is that TypeScript exposes classes and modules.  Anders discusses in his talk (video on the TypeScript homepage) that the design of TypeScript classes and modules was heavily influenced by the current design of ES6 classes and modules, so it should continue to be familiar as the ECMAScript standard evolves.</p>
<p>Lambdas (thick arrow syntax) preserve a reference to 'this', helping to address one of the most common errors in JavaScript programming.  Class extensibility works like you expect, including super-constructor logic, which is another one of those areas of JavaScript programming that is hard to just get right.  </p>
<p>Oh - and did I mention that it's completely open-source and available for Node?</p>
<p>Check it out!  And keep an eye on my blog - I'll be talking about it as things evolve (and once I add TypeScript support to SyntaxHighlighter Evolved).  </p>
<p>And one other editorial note - I recently used TypeScript to port a C#-based low-level graphics class I wrote that decodes a raw image stream into pixels into JavaScript + Canvas.  It went off beautifully.  Check it out - I think you'll be impressed how easy it is to work with!  And in the meantime, check out <a href="http://blogs.msdn.com/b/somasegar/archive/2012/10/01/typescript-javascript-development-at-application-scale.aspx" target="_blank">Soma's blog</a> and <a href="http://channel9.msdn.com/posts/Anders-Hejlsberg-Introducing-TypeScript" target="_blank">the Channel 9 video</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://robpaveza.net/announcing-typescript/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Microspotting: A future product, or something more innocuous?</title>
		<link>http://robpaveza.net/microspotting-a-future-product-or-something-more-innocuous</link>
		<comments>http://robpaveza.net/microspotting-a-future-product-or-something-more-innocuous#comments</comments>
		<pubDate>Thu, 24 May 2012 04:11:28 +0000</pubDate>
		<dc:creator>Rob Paveza</dc:creator>
				<category><![CDATA[Living Life]]></category>
		<category><![CDATA[Me @ MSFT]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[microspotting]]></category>

		<guid isPermaLink="false">http://robpaveza.net/?p=197</guid>
		<description><![CDATA[I was driving over at Building 86 today and saw this. It's either an ad for a product I haven't seen, a road sign, or an indication that I have a really obscure sense of humor.]]></description>
				<content:encoded><![CDATA[<p>I was driving over at Building 86 today and saw this.  It's either an ad for a product I haven't seen, a road sign, or an indication that I have a really obscure sense of humor.</p>
<p><a href="http://robpaveza.net/wp-content/uploads/2012/05/2012-05-23_15-08-36_45.jpg"><img src="http://robpaveza.net/wp-content/uploads/2012/05/2012-05-23_15-08-36_45-577x1024.jpg" alt="Microsoft Median: A future product or a sign that I have a weird sense of humor?" title="Microsoft Median" width="550" height="976" class="alignnone size-large wp-image-198" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://robpaveza.net/microspotting-a-future-product-or-something-more-innocuous/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
