<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.ericappel.net/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:idx="urn:atom-extension:indexing" xmlns:media="http://search.yahoo.com/mrss/" xmlns:gr="http://www.google.com/schemas/reader/atom/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" idx:index="no" gr:dir="ltr"><!--
Content-type: Preventing XSRF in IE.

--><generator uri="http://www.google.com/reader">Google Reader</generator><id>tag:google.com,2005:reader/user/15142900390351290994/state/com.google/broadcast</id><title>EricAppel's shared items in Google Reader</title><gr:continuation>CM2ozavM258C</gr:continuation><author><name>EricAppel</name></author><updated>2010-03-10T22:54:10Z</updated><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.ericappel.net/EricAppelsGoogleReaderSharedItems" /><feedburner:info uri="ericappelsgooglereadershareditems" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gr:crawl-timestamp-msec="1268261650863"><id gr:original-id="91d46819-8472-40ad-a661-2c78acb4018c:9975841">tag:google.com,2005:reader/item/c562fb6438a56423</id><category term="MIX" scheme="http://blogs.msdn.com/mswanson/archive/tags/MIX/default.aspx" /><title type="html">MIX10 Surprise Room Upgrades</title><published>2010-03-09T22:53:00Z</published><updated>2010-03-09T22:53:00Z</updated><link rel="alternate" href="http://feeds.ericappel.net/~r/EricAppelsGoogleReaderSharedItems/~3/cBH1MfCcYmU/mix10-surprise-room-upgrades.aspx" type="text/html" /><summary xml:base="http://blogs.msdn.com/mswanson/default.aspx" type="html">&lt;p&gt;When we host a big event, the destination city usually rolls out the proverbial red carpet because of the additional business we bring to the area. This red carpet treatment often extends to the visitors bureau, the convention center, and the nearby hotels. The deal almost always involves committing to a certain number of hotel rooms that we expect to fill. This is called our “room block,” and for &lt;a href="http://live.visitmix.com/"&gt;MIX10&lt;/a&gt;, we sold out our room block awhile ago. As a thank you for our business, the hotel provides us with some nice room upgrades.&lt;/p&gt;
&lt;p&gt;In past years, we’ve given the upgrades to members of the team who put in countless hours to ensure that we deliver the best event possible. We never told them in advance, and they were always surprised when they checked-in to their room. It was a fun way to show appreciation for a job well done.&lt;/p&gt;
&lt;p&gt;As someone who’s been upgraded (to rooms that have more square footage than my house…and no, I’m not kidding), it’s absolutely exciting to open the door to discover such a palatial spread. The problem is, most of us are so busy running the actual event that we never spend any time in the hotel room. And other than sleeping, I don’t spend much time in the room at all.&lt;/p&gt;
&lt;p&gt;What a waste.&lt;/p&gt;
&lt;p&gt;So, starting last year, we decided to randomly give the room upgrades to our attendees. Many attendees travel to Las Vegas with their significant others, and what better surprise than to land after a long flight and check-in to a huge and luxurious room. Plus, it’s just plain fun!&lt;/p&gt;
&lt;p&gt;For MIX10, we’ve randomly selected 22 attendees who will each receive a &lt;strong&gt;complimentary &lt;/strong&gt;upgrade. That means that their room rate won’t change, and these lucky people will get to enjoy the spoils of an amazing space!&lt;/p&gt;
&lt;p&gt;Here are some &lt;a href="http://www.mandalaybay.com/accommodations/goldCollection.aspx"&gt;specifications and photos&lt;/a&gt; of the upgraded rooms:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 x Media Suite – this suite is 2,170 square feet (bigger than some houses), includes 1 1/2 baths, a separate parlor, a 65” plasma HDTV (+ a few others), imported stone floors, and more. If you’re the lucky person who gets this upgrade, it’s almost mandatory that you throw a party. :-) &lt;br&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px" title="Media Suite" border="0" alt="Media Suite" src="http://www.mikeswanson.com/blog/images/Media%20Suite.jpg" width="832" height="135"&gt; &lt;br&gt;&lt;/li&gt;
&lt;li&gt;1 x Vista Suite – this suite is 1,705 square feet, has a 180-degree view of the strip and mountains, includes a separate parlor, living room, dining room, and bar area, has 1 1/2 baths, a 50” LCD High Definition TV, imported stone floors, and more. Be sure to right-click on the door and select “Run as Administrator” for UAC-free living during your stay. &lt;br&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px" title="Vista Suite" border="0" alt="Vista Suite" src="http://www.mikeswanson.com/blog/images/Vista%20Suite.jpg" width="832" height="135"&gt; &lt;br&gt;&lt;/li&gt;
&lt;li&gt;5 x X2 Suite – still huge at 1,450 square feet, with 2 bedrooms, separate parlor and living areas, a view of the strip/beach/pool/mountains, 2 bathrooms, a 42” High Definition Plasma TV, a separate parlor, and more. &lt;br&gt; &lt;/li&gt;
&lt;li&gt;5 x Spa Suite - 610 square feet, with views of the beach/pool/mountains, a 42” High Definition Plasma TV, and more. &lt;br&gt; &lt;/li&gt;
&lt;li&gt;10 x Great Room Suite - 765 square feet, with views of strip/mountains, a “unique playpen couch” (sounds very Vegas to me), and more.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;We’ve already selected the lucky attendees, and they’ll be informed via e-mail within the next few days. If you end up in one of these suites, please take some photos and share them on &lt;a href="http://www.flickr.com/"&gt;Flickr&lt;/a&gt; or &lt;a href="http://twitter.com/"&gt;Twitter&lt;/a&gt;. We’ll all be jealous.&lt;/p&gt;
&lt;p&gt;Good luck, and I’ll see you in Vegas!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9975841" width="1" height="1"&gt;</summary><author><name>mswanson</name></author><source gr:stream-id="feed/http://blogs.msdn.com/mswanson/rss.aspx"><id>tag:google.com,2005:reader/feed/http://blogs.msdn.com/mswanson/rss.aspx</id><title type="html">Mike Swanson&amp;#39;s Blog</title><link rel="alternate" href="http://blogs.msdn.com/mswanson/default.aspx" type="text/html" /></source><feedburner:origLink>http://blogs.msdn.com/mswanson/archive/2010/03/09/mix10-surprise-room-upgrades.aspx</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1268162318987"><id gr:original-id="http://www.hanselman.com/blog/PermaLink.aspx?guid=9469e127-5dc3-46ba-b0cc-d96f26ea37a8">tag:google.com,2005:reader/item/54aeee8ca6d10714</id><category term="VS2010" /><category term="Windows Client" /><category term="WPF" /><title type="html">WPF and Text Blurriness, now with complete Clarity</title><published>2010-03-09T06:23:09Z</published><updated>2010-03-09T06:23:09Z</updated><link rel="alternate" href="http://feeds.ericappel.net/~r/EricAppelsGoogleReaderSharedItems/~3/QZZAGHse99A/WPFAndTextBlurrinessNowWithCompleteClarity.aspx" type="text/html" /><summary xml:base="http://www.hanselman.com/blog/" type="html">&lt;div&gt;&lt;p&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/WPFandTextBlurrinessnowcompleteClarity_13624/shanselman%20-%20Evernote%20_2.png"&gt;&lt;img style="border-right-width:0px;margin:0px 0px 5px 10px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px" title="shanselman - Evernote " border="0" alt="shanselman - Evernote " align="right" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/WPFandTextBlurrinessnowcompleteClarity_13624/shanselman%20-%20Evernote%20_thumb.png" width="320" height="256"&gt;&lt;/a&gt;The #1 complaint I hear about WPF (Windows Presentation Foundation) is that many fonts end up looking &amp;quot;blurry.&amp;quot; It&amp;#39;s a darned shame because really great applications like &lt;a href="http://www.evernote.com"&gt;Evernote&lt;/a&gt; get criticized because of this one issue*. &lt;/p&gt;  &lt;p&gt;The blurriness happens on .NET 3.5 and below because &lt;a href="http://msdn.microsoft.com/en-us/library/aa970908.aspx"&gt;WPF&amp;#39;s graphics system is &amp;quot;device independent&amp;quot;&lt;/a&gt; so rendering happens independent of resolution. It makes apps DPI-aware for free and scales them nicely. Unfortunately MOST people are running on 96dpi screens and that's where you'd expect clarity. You can get around this 90% of the time today using &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.uielement.snapstodevicepixels.aspx"&gt;SnapsToDevicePixels&lt;/a&gt; when appropriate, but it wasn't automatic and it's subtle.&lt;/p&gt;  &lt;p&gt;The good news is that with .NET 4 this is totally fixed. You can see with with the .NET 4 RC (Release Candidate) and VS2010, which uses WPF for much of its own rendering. Additionally, a check-in in a recent milestone makes things even clearer with light text on a dark background.&lt;/p&gt;  &lt;p&gt;From the WPF Text Blog:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&amp;quot;With this fixed, WPF is not technically pixel perfect with GDI text rendering, but the difference is indiscernible to the naked eye.&amp;quot;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;So how indiscernible? &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;UPDATE: &lt;/font&gt;A little confusion about this in the comments. Folks feel very strongly about this stuff, understandably. Just like color blindness, some people are sensitive to this stuff and others &amp;quot;can&amp;#39;t see it.&amp;quot; One person in the blogs didn&amp;#39;t like go for &amp;quot;indiscernible&amp;quot; and showed a screenshot. Here&amp;#39;s the deal. &lt;em&gt;If you are running VS2010 RC, you don't have this fix. &lt;/em&gt;This will be in the RTM. Here's a 100% screenshot, followed by the zoomed in version. The takeaway is this. If you didn't like the rendering before, you will now. This is/was some subtle stuff, but it's indiscernible in the RTM, so be happy! I took the screenshot from a daily build, not the actual RTM, which hasn't happened yet.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:0px 0px 5px;display:inline;border-top:0px;border-right:0px" title="image" border="0" alt="image" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/WPFandTextBlurrinessnowcompleteClarity_13624/image_17b20538-0f9e-4b1e-8db9-31238c678afb.png" width="300" height="46"&gt; &lt;/p&gt;  &lt;p&gt;Blown up:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:0px 0px 5px;display:inline;border-top:0px;border-right:0px" title="image" border="0" alt="image" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/WPFandTextBlurrinessnowcompleteClarity_13624/image_bf45a2b3-8929-43ef-ae9a-d2390d8e5250.png" width="598" height="86"&gt; &lt;/p&gt;  &lt;p&gt;Click on these side-by-side images from the &lt;a href="http://blogs.msdn.com/text/archive/2010/03/05/additional-wpf-text-clarity-improvements.aspx"&gt;WPF Text Blog&lt;/a&gt; to enlarge and compare. VS2008 with GDI rendering is on the left and VS2010 (a post RC-build) with this fix is on the right. Of course, the release of .NET 4 will have this fix.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/WPFandTextBlurrinessnowcompleteClarity_13624/DarkTheme_2.png"&gt;&lt;img style="border-right-width:0px;margin:0px 0px 5px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px" title="White Background" border="0" alt="White Background" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/WPFandTextBlurrinessnowcompleteClarity_13624/DarkTheme_thumb.png" width="450" height="360"&gt;&lt;/a&gt; &lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/WPFandTextBlurrinessnowcompleteClarity_13624/LightTheme_2.png"&gt;&lt;img style="border-right-width:0px;margin:0px 0px 5px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px" title="Dark Background" border="0" alt="Dark Background" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/WPFandTextBlurrinessnowcompleteClarity_13624/LightTheme_thumb.png" width="450" height="360"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In the comments on the &lt;a href="http://blogs.msdn.com/text/archive/2010/03/05/additional-wpf-text-clarity-improvements.aspx"&gt;WPF Text Blog&lt;/a&gt;, &lt;strong&gt;Rick Brewster&lt;/strong&gt;, the author of &lt;a href="http://www.getpaint.net"&gt;Paint.NET&lt;/a&gt; suggests that we can really analyze these images using an &lt;strong&gt;XOR &lt;/strong&gt;in Paint.NET.&lt;/p&gt;  &lt;p&gt;I've done just that here, taking the dark text on a white background and XORing it. Then, for visibility, I've &lt;strong&gt;inverted the result. &lt;/strong&gt;This shows just the differences in pixels between the two rendering paths. Can't see much? That's the point.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px 0px 5px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px" title="XOR and Inverted Text between the GDI and WPF rendering paths in VS2010 and .NET 4 WPF" border="0" alt="XOR and Inverted Text between the GDI and WPF rendering paths in VS2010 and .NET 4 WPF" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/WPFandTextBlurrinessnowcompleteClarity_13624/image_d4320a0c-7c24-4ec6-8576-e61c951e16e0.png" width="399" height="521"&gt; &lt;/p&gt;  &lt;p&gt;To quote from the WPF Blog comments: &lt;em&gt;&amp;quot;If you can’t tell a difference between the screenshots of VS2008 and VS2010, then you should not be able to tell the difference between GDI and another WPF app.&amp;quot;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Also, note that this applies to all WPF apps on .NET 4. It's a general fix that's not VS2010 specific. Enjoy. I'll be happy when this is out and everyone's using it, including my favorite WPF app, Evernote.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;* I don't know anyone at Evernote, I'm just a fan and I read the comments on their blog. I speak only for me on this issue.&lt;/em&gt;&lt;/p&gt;&lt;br&gt;&lt;hr&gt;© 2010 Scott Hanselman. All rights reserved. &lt;br&gt;&lt;/div&gt;&lt;p&gt;&lt;iframe src="http://feedads.g.doubleclick.net/~ah/f/abrdk7uet7v0ksr8p75hfrs71g/300/250?ca=1&amp;amp;fh=280#http%3A%2F%2Fwww.hanselman.com%2Fblog%2FWPFAndTextBlurrinessNowWithCompleteClarity.aspx" width="100%" height="280" frameborder="0" scrolling="no" marginwidth="0" marginheight="0"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ScottHanselman?a=o9yplwwPKnw:CB4W-GSYgko:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottHanselman?i=o9yplwwPKnw:CB4W-GSYgko:D7DqB2pKExk" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottHanselman?a=o9yplwwPKnw:CB4W-GSYgko:MjquXQBfoPI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottHanselman?d=MjquXQBfoPI" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottHanselman?a=o9yplwwPKnw:CB4W-GSYgko:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottHanselman?i=o9yplwwPKnw:CB4W-GSYgko:V_sGLiPBpWU" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottHanselman?a=o9yplwwPKnw:CB4W-GSYgko:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottHanselman?i=o9yplwwPKnw:CB4W-GSYgko:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottHanselman?a=o9yplwwPKnw:CB4W-GSYgko:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottHanselman?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottHanselman?a=o9yplwwPKnw:CB4W-GSYgko:5M_9TJJRyfI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottHanselman?d=5M_9TJJRyfI" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ScottHanselman/~4/o9yplwwPKnw" height="1" width="1"&gt;</summary><author><name>Scott Hanselman</name></author><gr:likingUser>02885689306869970756</gr:likingUser><gr:likingUser>01584437036112865481</gr:likingUser><gr:likingUser>06481967001458180742</gr:likingUser><gr:likingUser>14247039669177923064</gr:likingUser><gr:likingUser>14425779617056305365</gr:likingUser><gr:likingUser>02265052492972624150</gr:likingUser><gr:likingUser>07346601965667380366</gr:likingUser><gr:likingUser>17679841456708521908</gr:likingUser><gr:likingUser>10242967940754908037</gr:likingUser><gr:likingUser>00742713948702314861</gr:likingUser><gr:likingUser>02883272166145080790</gr:likingUser><gr:likingUser>04783438659533041617</gr:likingUser><gr:likingUser>07247561755328478258</gr:likingUser><gr:likingUser>14827116960949054454</gr:likingUser><gr:likingUser>05692499203542089482</gr:likingUser><gr:likingUser>15618290120664685523</gr:likingUser><gr:likingUser>11067853532291698348</gr:likingUser><gr:likingUser>11870941234204551385</gr:likingUser><gr:likingUser>00501272374341249090</gr:likingUser><gr:likingUser>18317231967482322035</gr:likingUser><gr:likingUser>16413046933040593892</gr:likingUser><gr:likingUser>15633972447160271622</gr:likingUser><source gr:stream-id="feed/http://feeds.feedburner.com/ScottHanselman"><id>tag:google.com,2005:reader/feed/http://feeds.feedburner.com/ScottHanselman</id><title type="html">Scott Hanselman&amp;#39;s Computer Zen</title><link rel="alternate" href="http://www.hanselman.com/blog/" type="text/html" /></source><feedburner:origLink>http://feedproxy.google.com/~r/ScottHanselman/~3/o9yplwwPKnw/WPFAndTextBlurrinessNowWithCompleteClarity.aspx</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1268074024002"><id gr:original-id="http://net.tutsplus.com/?p=9472">tag:google.com,2005:reader/item/0cecc2a16c83a2dc</id><category term="JavaScript &amp; AJAX" /><category term="javascript library features" /><category term="jQuery" /><category term="jquery gems" /><category term="jquery hidden features" /><title type="html">Uncovering jQuery’s Hidden Features</title><published>2010-03-08T16:15:53Z</published><updated>2010-03-08T16:15:53Z</updated><link rel="alternate" href="http://feeds.ericappel.net/~r/EricAppelsGoogleReaderSharedItems/~3/LhEuCMphwJk/" type="text/html" /><content xml:base="http://net.tutsplus.com/" type="html">&lt;p&gt;jQuery is not always as it appears. There&amp;#39;s a lot of cool stuff going on under the surface, and there are many methods just waiting to be discovered, and many potential usages of jQuery&amp;#39;s API that you may not have considered before. In this article I&amp;#39;ll be taking you through a few of the not-so-obvious things I&amp;#39;ve discovered about jQuery.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span&gt;1. &lt;/span&gt;Understand jQuery!&lt;/h2&gt;
&lt;p&gt;When you call &lt;em&gt;&amp;#39;jQuery&amp;#39;&lt;/em&gt; what happens?&lt;/p&gt;
&lt;p&gt;The jQuery function itself is very simple:&lt;/p&gt;
&lt;pre name="code"&gt;
jQuery = function (selector, context) {
    // The jQuery object is actually just the init constructor &amp;#39;enhanced&amp;#39;
    return new jQuery.fn.init(selector, context);
};
&lt;/pre&gt;
&lt;p&gt;Under its skin, the jQuery function (commonly referred to as the &amp;quot;wrapper&amp;quot; function) simply returns an instantiated jQuery object — i.e. an instance of the &lt;em&gt;&amp;#39;jQuery.fn.init&amp;#39;&lt;/em&gt; constructor.&lt;/p&gt;
&lt;p&gt;This is useful to know; with this information we know that each time we call &lt;em&gt;&amp;#39;jQuery&amp;#39;&lt;/em&gt; we&amp;#39;re actually creating a totally unique object with a set of properties. jQuery is clever in that it gives you an object that can be treated as an array. Each of your elements (all together, commonly known as the &amp;quot;collection&amp;quot;) is referenced within the object under a numerical index, just like within an array. And jQuery also gives this object a &lt;em&gt;&amp;#39;length&amp;#39;&lt;/em&gt; property, just as you would expect from an array. This opens up a world of possibilities. For one, it means that we can borrow some functionality from &lt;em&gt;&amp;#39;Array.prototype&amp;#39;&lt;/em&gt;. jQuery&amp;#39;s &lt;em&gt;&amp;#39;slice&amp;#39;&lt;/em&gt; method is a good example of this — modified from the source:&lt;/p&gt;
&lt;pre name="code"&gt;
/* ... jQuery.fn.extend({ ... */
slice: function() {
    return this.pushStack(
        Array.prototype.slice.apply( this, arguments ),
        &amp;quot;slice&amp;quot;,
        Array.prototype.slice.call(&lt;wbr&gt;arguments).join(&amp;quot;,&amp;quot;)
    );
},
/* ... */
&lt;/pre&gt;
&lt;p&gt;The native &lt;em&gt;&amp;#39;slice&amp;#39;&lt;/em&gt; method doesn&amp;#39;t care that &lt;em&gt;&amp;#39;this&amp;#39;&lt;/em&gt; is not a real array– it&amp;#39;ll be fine with anything that&amp;#39;s got a &lt;em&gt;&amp;#39;length&amp;#39;&lt;/em&gt; property and &lt;em&gt;[0]&lt;/em&gt;, &lt;em&gt;[1]&lt;/em&gt;, &lt;em&gt;[2]&lt;/em&gt; etc.&lt;/p&gt;
&lt;p&gt;There are some other interesting properties within this jQuery object — &lt;em&gt;&amp;#39;.selector&amp;#39;&lt;/em&gt; and &lt;em&gt;&amp;#39;.context&amp;#39;&lt;/em&gt; will, most of the time, reflect the arguments that you pass into &lt;em&gt;&amp;#39;jQuery(…)&amp;#39;&lt;/em&gt;. &lt;/p&gt;
&lt;pre name="code"&gt;
var jqObject = jQuery(&amp;#39;a&amp;#39;);
jqObject.selector; // =&amp;gt; &amp;quot;a&amp;quot;&lt;/pre&gt;
&lt;p&gt;One thing that&amp;#39;s important to note is that jQuery will sometimes give you new jQuery objects to work with. If you run a method that changes the collection in some way, such as &lt;em&gt;&amp;#39;.parents()&amp;#39;&lt;/em&gt;, then jQuery won&amp;#39;t modify the current object; it&amp;#39;ll simply pass you a brand new one:&lt;/p&gt;
&lt;pre name="code"&gt;
var originalObject = jQuery(&amp;#39;a&amp;#39;);
var anotherObject = originalObject.parents();

originalObject === anotherObject; // =&amp;gt; false
&lt;/pre&gt;
&lt;p&gt;All methods that appear to mutate the collection in some way return a brand new jQuery object — you can still access the old object though, via &lt;em&gt;&amp;#39;.end()&amp;#39;&lt;/em&gt;, or more verbosely, via &lt;em&gt;&amp;#39;.prevObject&amp;#39;&lt;/em&gt;.&lt;/p&gt;
&lt;h2&gt;&lt;span&gt;2. &lt;/span&gt;Bread-and-butter Element Creation&lt;/h2&gt;
&lt;p&gt;Central to jQuery&amp;#39;s DOM capabilities, is its element creation syntax. 1.4 brought with it an entirely new way to create your elements quickly and succinctly. E.g.&lt;/p&gt;
&lt;pre name="code"&gt;
var myDiv = jQuery(&amp;#39;&amp;lt;div/&amp;gt;&amp;#39;, {
    id: &amp;#39;my-new-element&amp;#39;,
    class: &amp;#39;foo&amp;#39;,
    css: {
        color: &amp;#39;red&amp;#39;,
        backgrondColor: &amp;#39;#FFF&amp;#39;,
        border: &amp;#39;1px solid #CCC&amp;#39;
    },
    click: function() {
        alert(&amp;#39;Clicked!&amp;#39;);
    },
    html: jQuery(&amp;#39;&amp;lt;a/&amp;gt;&amp;#39;, {
        href: &amp;#39;#&amp;#39;,
        click: function() {
            // do something
            return false;
        }
    })
});
&lt;/pre&gt;
&lt;p&gt;As of 1.4 you can pass a second argument to the jQuery function when you&amp;#39;re creating an element — the object you pass will, for the most part, act as if you were passing it to &lt;em&gt;&amp;#39;.attr(…)&amp;#39;&lt;/em&gt;. However, jQuery will map some of the properties to its own methods, for example, the &lt;em&gt;&amp;#39;click&amp;#39;&lt;/em&gt; property maps to jQuery&amp;#39;s &lt;em&gt;&amp;#39;click&amp;#39;&lt;/em&gt; method (which binds an event handler for the &lt;em&gt;&amp;#39;click&amp;#39;&lt;/em&gt; event) and &lt;em&gt;&amp;#39;css&amp;#39;&lt;/em&gt; maps to jQuery&amp;#39;s &lt;em&gt;&amp;#39;css&amp;#39;&lt;/em&gt; method etc.&lt;/p&gt;
&lt;p&gt;To check out what properties map to jQuery&amp;#39;s methods, open your console and type &lt;em&gt;&amp;#39;jQuery.attrFn&amp;#39;&lt;/em&gt;.&lt;/p&gt;
&lt;h2&gt;&lt;span&gt;3. &lt;/span&gt;Serialize your Inputs&lt;/h2&gt;
&lt;p&gt;jQuery provides a method that you can use to serialize all of the inputs within one or more forms. This is useful when submitting data via XHR (&amp;quot;Ajax&amp;quot;). It&amp;#39;s been in jQuery for a long time but it&amp;#39;s not often talked about and so many developers don&amp;#39;t realise it&amp;#39;s there. Submitting an entire form via Ajax, using jQuery, couldn&amp;#39;t be simpler:&lt;/p&gt;
&lt;pre name="code"&gt;
var myForm = $(&amp;#39;#my-form&amp;#39;);
jQuery.post(&amp;#39;submit.php&amp;#39;, myForm.serialize(), function(){
    alert(&amp;#39;Data has been sent!&amp;#39;);
});
&lt;/pre&gt;
&lt;p&gt;jQuery also provides the &lt;em&gt;&amp;#39;serializeArray&amp;#39;&lt;/em&gt; method, which is designed to be used with multiple forms, and the &lt;em&gt;&amp;#39;param&amp;#39;&lt;/em&gt; helper function (under the jQuery namespace) which takes a regular  object and returns a query string, e.g.&lt;/p&gt;
&lt;pre name="code"&gt;
var data = {
    name: &amp;#39;Joe&amp;#39;,
    age: 44,
    profession: &amp;#39;Web Developer&amp;#39;
};

jQuery.param(data); // =&amp;gt; &amp;quot;name=Joe&amp;amp;age=44&amp;amp;profession=&lt;wbr&gt;Web+Developer&amp;quot;
&lt;/pre&gt;
&lt;h2&gt;&lt;span&gt;4. &lt;/span&gt;Animate Anything&lt;/h2&gt;
&lt;p&gt;jQuery&amp;#39;s &lt;em&gt;&amp;#39;animate&amp;#39;&lt;/em&gt; method is probably the most flexible of jQuery&amp;#39;s methods. It can be used to animate pretty much anything, not just CSS properties, and not just DOM elements. This is how you would normally use &lt;em&gt;&amp;#39;animate&amp;#39;&lt;/em&gt;:&lt;/p&gt;
&lt;pre name="code"&gt;
jQuery(&amp;#39;#box&amp;#39;).animate({
    left: 300,
    top: 300
});
&lt;/pre&gt;
&lt;p&gt;When you specify a property to animate (e.g. &lt;em&gt;&amp;#39;top&amp;#39;&lt;/em&gt;) jQuery checks to see if you&amp;#39;re animating something with a style property (&lt;em&gt;&amp;#39;element.style&amp;#39;&lt;/em&gt;), and it checks if the specified property (&lt;em&gt;&amp;#39;top&amp;#39;&lt;/em&gt;) is defined under &lt;em&gt;&amp;#39;style&amp;#39;&lt;/em&gt; — if it&amp;#39;s not then jQuery simply updates &lt;em&gt;&amp;#39;top&amp;#39;&lt;/em&gt; on the element itself. Here&amp;#39;s an example:&lt;/p&gt;
&lt;pre name="code"&gt;
jQuery(&amp;#39;#box&amp;#39;).animate({
    top: 123,
    foo: 456
});
&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;&amp;#39;top&amp;#39;&lt;/em&gt; is a valid CSS property, so jQuery will update &lt;em&gt;&amp;#39;element.style.top&amp;#39;&lt;/em&gt;, but &lt;em&gt;&amp;#39;foo&amp;#39;&lt;/em&gt; is &lt;strong&gt;not&lt;/strong&gt; a valid CSS property, so jQuery will simply update &lt;em&gt;&amp;#39;element.foo&amp;#39;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;We can use this to our advantage. Let&amp;#39;s say, for example, that you want to animate a square on a canvas. First let&amp;#39;s define a simple constructor and a &lt;em&gt;&amp;#39;draw&amp;#39;&lt;/em&gt; method that&amp;#39;ll be called on every step of the animation:&lt;/p&gt;
&lt;pre name="code"&gt;
function Square(cnvs, width, height, color) {

    this.x = 0;
    this.y = 0;
    this.width = width;
    this.height = height;
    this.color = color;

    this.cHeight = cnvs.height;
    this.cWidth = cnvs.width;
    this.cntxt = cnvs.getContext(&amp;#39;2d&amp;#39;);

}

Square.prototype.draw = function() {

    this.cntxt.clearRect(0, 0, this.cWidth, this.cHeight);
    this.cntxt.fillStyle = this.color;
    this.cntxt.fillRect(this.x, this.y, this.width, this.height);

};
&lt;/pre&gt;
&lt;p&gt;We&amp;#39;ve created our &amp;#39;Square&amp;#39; constructor, and one of its methods. Creating a canvas and then animating it couldn&amp;#39;t be simpler:&lt;/p&gt;
&lt;pre name="code"&gt;
// Create a &amp;lt;canvas/&amp;gt; element
var canvas = $(&amp;#39;&amp;lt;canvas/&amp;gt;&amp;#39;).appendTo(&amp;#39;body&amp;#39;&lt;wbr&gt;)[0];
canvas.height = 400;
canvas.width = 600;

// Instantiate Square
var square = new Square(canvas, 70, 70, &amp;#39;rgb(255,0,0)&amp;#39;);

jQuery(square).animate({
    x: 300,
    y: 200
}, {
    // &amp;#39;draw&amp;#39; should be called on every step
    // of the animation:
    step: jQuery.proxy(square, &amp;#39;draw&amp;#39;),
    duration: 1000
});
&lt;/pre&gt;
&lt;p&gt;This is a very simple effect, but it does clearly demonstrate the possibilities. You can see it in action here: &lt;a href="http://jsbin.com/ocida"&gt;http://jsbin.com/ocida&lt;/a&gt; (this will only work in browsers that support the HTML5 canvas)&lt;/p&gt;
&lt;h2&gt;&lt;span&gt;5. &lt;/span&gt;jQuery.ajax Returns the XHR Object&lt;/h2&gt;
&lt;p&gt;jQuery&amp;#39;s Ajax utility functions (&lt;em&gt;&amp;#39;jQuery.ajax&amp;#39;&lt;/em&gt;, &lt;em&gt;&amp;#39;jQuery.get&amp;#39;&lt;/em&gt;, &lt;em&gt;&amp;#39;jQuery.post&amp;#39;&lt;/em&gt;) all return an &lt;em&gt;&amp;#39;XMLHttpRequest&amp;#39;&lt;/em&gt; object which you can use to perform subsequent operations on any request. For example:&lt;/p&gt;
&lt;pre name="code"&gt;
var curRequest;

jQuery(&amp;#39;button.makeRequest&amp;#39;).&lt;wbr&gt;click(function(){
    curRequest = jQuery.get(&amp;#39;foo.php&amp;#39;, function(response){
        alert(&amp;#39;Data: &amp;#39; + response.responseText);
    });
});

jQuery(&amp;#39;button.cancelRequest&amp;#39;)&lt;wbr&gt;.click(function(){
    if (curRequest) {
        curRequest.abort(); // abort() is a method of XMLHttpRequest
    }
});
&lt;/pre&gt;
&lt;p&gt;Here we&amp;#39;re making a request whenever the &lt;em&gt;&amp;#39;makeRequest&amp;#39;&lt;/em&gt; button is clicked — and we&amp;#39;re cancelling the active request if the user clicks the &lt;em&gt;&amp;#39;cancelRequest&amp;#39;&lt;/em&gt; button. &lt;/p&gt;
&lt;p&gt;Another potential usage is for synchronous requests:&lt;/p&gt;
&lt;pre name="code"&gt;
var myRequest = jQuery.ajax({
    url: &amp;#39;foo.txt&amp;#39;,
    async: false
});

console.log(myRequest.&lt;wbr&gt;responseText);
&lt;/pre&gt;
&lt;p&gt;Read more about the &lt;em&gt;&lt;a href="https://developer.mozilla.org/en/XMLHttpRequest"&gt;&amp;#39;XMLHttpRequest&amp;#39;&lt;/a&gt;&lt;/em&gt; object and also be sure to check out &lt;a href="http://api.jquery.com/category/ajax/"&gt;jQuery&amp;#39;s Ajax utilities&lt;/a&gt;. &lt;/p&gt;
&lt;h2&gt;&lt;span&gt;6. &lt;/span&gt;Custom Queues&lt;/h2&gt;
&lt;p&gt;jQuery has a built-in queuing mechanism that&amp;#39;s used by all of its animation methods (all of which use &lt;em&gt;&amp;#39;animate()&amp;#39;&lt;/em&gt; really). This queuing can be illustrated easily with a simple animation:&lt;/p&gt;
&lt;pre name="code"&gt;
jQuery(&amp;#39;a&amp;#39;).hover(function(){
    jQuery(this).animate({&lt;wbr&gt;paddingLeft:&amp;#39;+=15px&amp;#39;});
}, function(){
    jQuery(this).animate({&lt;wbr&gt;paddingLeft:&amp;#39;-=15px&amp;#39;});
});
&lt;/pre&gt;
&lt;p&gt;Quickly hovering over a bunch of anchors and then hovering over them again will cause the animations to queue up and occur one at a time — I&amp;#39;m sure many of you have witnessed this queuing effect before. If not, check it out here: &lt;a href="http://jsbin.com/aqaku"&gt;&lt;strong&gt;http://jsbin.com/aqaku&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &lt;em&gt;&amp;#39;queue&amp;#39;&lt;/em&gt; method is similar to the well-known &lt;em&gt;&amp;#39;each&amp;#39;&lt;/em&gt; method in how it&amp;#39;s called. You pass a function, which will eventually be called for each of the elements in the collection:&lt;/p&gt;
&lt;pre name="code"&gt;
jQuery(&amp;#39;a&amp;#39;).queue(function(){
    jQuery(this).addClass(&amp;#39;all-&lt;wbr&gt;done&amp;#39;).dequeue();
});
&lt;/pre&gt;
&lt;p&gt;Passing just a function to &lt;em&gt;&amp;#39;queue&amp;#39;&lt;/em&gt; will cause that function to be added to the default &lt;em&gt;&amp;#39;fx&amp;#39;&lt;/em&gt; queue, i.e. the queue used by all animations done by jQuery. Therefore, this function will not be called until all current animations occurring on  each element in the collection (in this case, all anchors) have completed.&lt;/p&gt;
&lt;p&gt;Notice that we&amp;#39;re adding a class of &lt;em&gt;&amp;#39;all-done&amp;#39;&lt;/em&gt; in the function above. As outlined, this class will only be added when all current animations are complete. We&amp;#39;re also calling the &lt;em&gt;&amp;#39;dequeue&amp;#39;&lt;/em&gt; method. &lt;strong&gt;This is very important&lt;/strong&gt;, as it will allow jQuery to continue with the queue (i.e. it lets jQuery know that you&amp;#39;re finished with whatever you&amp;#39;re doing). jQuery 1.4 provides another way of continuing the queue; instead of calling &lt;em&gt;&amp;#39;dequeue&amp;#39;&lt;/em&gt;, simply call the first argument passed to your function:&lt;/p&gt;
&lt;pre name="code"&gt;
jQuery(&amp;#39;a&amp;#39;).queue(function(&lt;wbr&gt;nextItemInQueue){
    // Continue queue:
    nextItemInQueue();
});
&lt;/pre&gt;
&lt;p&gt;This does exactly the same, although it&amp;#39;s slightly more useful in that it can be called anywhere within your function, even within a mess of closures (that typically destroy the &lt;em&gt;&amp;#39;this&amp;#39;&lt;/em&gt; keyword). Of course, pre-jQuery-1.4 you could just save a reference to &lt;em&gt;&amp;#39;this&amp;#39;&lt;/em&gt;, but that would get a bit tiresome.&lt;/p&gt;
&lt;p&gt;To add a function to a custom queue, simply pass your custom queue&amp;#39;s name as the first argument and the function as the second:&lt;/p&gt;
&lt;pre name="code"&gt;
jQuery(&amp;#39;a&amp;#39;).queue(&amp;#39;&lt;wbr&gt;customQueueName&amp;#39;, function(){
    // Do stuff
    jQuery(this).dequeue(&amp;#39;&lt;wbr&gt;customQueueName&amp;#39;);
});
&lt;/pre&gt;
&lt;p&gt;Notice that, since we&amp;#39;re not using the default &lt;em&gt;&amp;#39;fx&amp;#39;&lt;/em&gt; queue, we also have to pass our queue&amp;#39;s name to the &lt;em&gt;&amp;#39;dequeue&amp;#39;&lt;/em&gt; method, in order to allow jQuery to continue with our custom queue.&lt;/p&gt;
&lt;p&gt;Read more about  &lt;a href="http://api.jquery.com/queue"&gt;&lt;em&gt;&amp;#39;queue&amp;#39;&lt;/em&gt;&lt;/a&gt;, &lt;a href="http://api.jquery.com/dequeue/"&gt;&lt;em&gt;&amp;#39;dequeue&amp;#39;&lt;/em&gt;&lt;/a&gt; and &lt;a href="http://api.jquery.com/jQuery.queue/"&gt;&lt;em&gt;&amp;#39;jQuery.queue&amp;#39;&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;&lt;span&gt;7. &lt;/span&gt;Event Namespacing&lt;/h2&gt;
&lt;p&gt;jQuery provides a way for you to namespace events, which can be very useful when authoring plugins and third-party components. If needed, the user of your plugin can effectively disable your plugin by unbinding all event handlers that it&amp;#39;s registered.&lt;/p&gt;
&lt;p&gt;To add a namespace when registering an event handler, simply suffix the event name with a period and then your unique namespace (e.g. &lt;em&gt;&amp;#39;&lt;span&gt;.fooPlugin&lt;/span&gt;&amp;#39;&lt;/em&gt;):&lt;/p&gt;
&lt;pre name="code"&gt;
jQuery.fn.foo = function() {

    this.bind(&amp;#39;click.fooPlugin&amp;#39;, function() {
        // do stuff
    });

    this.bind(&amp;#39;mouseover.&lt;wbr&gt;fooPlugin&amp;#39;, function() {
        // do stuff
    });

    return this;
};

// Use the plugin:
jQuery(&amp;#39;a&amp;#39;).foo();

// Destroy its event handlers:
jQuery(&amp;#39;a&amp;#39;).unbind(&amp;#39;.&lt;wbr&gt;fooPlugin&amp;#39;);
&lt;/pre&gt;
&lt;p&gt;Passing just the namespace to &lt;em&gt;&amp;#39;unbind&amp;#39;&lt;/em&gt; will unbind all event handlers with that namespace.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;So which ones did I miss? Any helpful features that you feel jQuery doesn’t document well enough? Let’s discuss in the comments!&lt;/p&gt;
&lt;p&gt;&lt;iframe src="http://feedads.g.doubleclick.net/~ah/f/8olmjno1k05rb1som1frr6u854/300/250?ca=1&amp;amp;fh=280#http%3A%2F%2Fnet.tutsplus.com%2Ftutorials%2Fjavascript-ajax%2Funcovering-jquerys-hidden-features%2F" width="100%" height="280" frameborder="0" scrolling="no" marginwidth="0" marginheight="0"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/~ff/nettuts?a=sNBgElc3bIw:PpZLTeBKIec:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nettuts?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nettuts?a=sNBgElc3bIw:PpZLTeBKIec:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nettuts?i=sNBgElc3bIw:PpZLTeBKIec:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nettuts?a=sNBgElc3bIw:PpZLTeBKIec:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nettuts?i=sNBgElc3bIw:PpZLTeBKIec:V_sGLiPBpWU" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nettuts?a=sNBgElc3bIw:PpZLTeBKIec:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nettuts?i=sNBgElc3bIw:PpZLTeBKIec:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nettuts?a=sNBgElc3bIw:PpZLTeBKIec:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nettuts?d=TzevzKxY174" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nettuts/~4/sNBgElc3bIw" height="1" width="1"&gt;</content><author><name>James Padolsey</name></author><gr:likingUser>17279426870283839355</gr:likingUser><gr:likingUser>03821300619331120602</gr:likingUser><gr:likingUser>13587985847209488520</gr:likingUser><gr:likingUser>08324016905050090673</gr:likingUser><gr:likingUser>09513604172585024060</gr:likingUser><gr:likingUser>06112595525641375862</gr:likingUser><gr:likingUser>11183987042885638691</gr:likingUser><gr:likingUser>16002802316939065748</gr:likingUser><gr:likingUser>18413991821024136595</gr:likingUser><gr:likingUser>13456616995620280602</gr:likingUser><gr:likingUser>08306621016354335099</gr:likingUser><gr:likingUser>17486847492051287356</gr:likingUser><gr:likingUser>03655759070555913155</gr:likingUser><gr:likingUser>14300015041541770268</gr:likingUser><gr:likingUser>17700988909534729186</gr:likingUser><gr:likingUser>11477494088602297230</gr:likingUser><gr:likingUser>03328317379275094873</gr:likingUser><gr:likingUser>13663724426439595715</gr:likingUser><gr:likingUser>13896594954952448422</gr:likingUser><gr:likingUser>16726967358670646374</gr:likingUser><gr:likingUser>08122639083635599036</gr:likingUser><gr:likingUser>00153691372169253948</gr:likingUser><gr:likingUser>10960185219083789398</gr:likingUser><gr:likingUser>16379917719117804085</gr:likingUser><gr:likingUser>16378210110367158257</gr:likingUser><gr:likingUser>04239191227533645847</gr:likingUser><gr:likingUser>12271724237529192812</gr:likingUser><gr:likingUser>16500897162056430000</gr:likingUser><gr:likingUser>14261226687169365124</gr:likingUser><gr:likingUser>18400977548717983950</gr:likingUser><gr:likingUser>03020522199988970127</gr:likingUser><gr:likingUser>09776629474925409674</gr:likingUser><gr:likingUser>10722138436868541314</gr:likingUser><gr:likingUser>13788278960358577519</gr:likingUser><gr:likingUser>06395705196385909122</gr:likingUser><gr:likingUser>18343676128922251020</gr:likingUser><source gr:stream-id="feed/http://feeds.feedburner.com/nettuts"><id>tag:google.com,2005:reader/feed/http://feeds.feedburner.com/nettuts</id><title type="html">Nettuts+</title><link rel="alternate" href="http://net.tutsplus.com" type="text/html" /></source><feedburner:origLink>http://feedproxy.google.com/~r/nettuts/~3/sNBgElc3bIw/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1267811396089"><id gr:original-id="91d46819-8472-40ad-a661-2c78acb4018c:9973256">tag:google.com,2005:reader/item/019ee35373e6e16b</id><category term="Developer Division" scheme="http://blogs.msdn.com/somasegar/archive/tags/Developer+Division/default.aspx" /><category term="Visual Studio" scheme="http://blogs.msdn.com/somasegar/archive/tags/Visual+Studio/default.aspx" /><category term="Visual Studio Team System" scheme="http://blogs.msdn.com/somasegar/archive/tags/Visual+Studio+Team+System/default.aspx" /><title type="html">Beta of VS Team Explorer with Cross Platform Support</title><published>2010-03-05T05:35:00Z</published><updated>2010-03-05T05:35:00Z</updated><link rel="alternate" href="http://feeds.ericappel.net/~r/EricAppelsGoogleReaderSharedItems/~3/en56K7yQVmE/beta-of-vs-team-explorer-with-cross-platform-support.aspx" type="text/html" /><summary xml:base="http://blogs.msdn.com/somasegar/default.aspx" type="html">&lt;p style="margin:0in 0in 0pt"&gt;&lt;span style="font-size:10pt"&gt;Last November, I &lt;/span&gt;&lt;a href="http://blogs.msdn.com/somasegar/archive/2009/11/09/teamprise-enabling-tfs-collaboration-across-heterogeneous-platforms.aspx"&gt;&lt;span style="font-size:10pt"&gt;&lt;font color="#0000ff"&gt;posted about our acquisition&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:10pt"&gt; of the assets of &lt;/span&gt;&lt;a href="http://www.teamprise.com/"&gt;&lt;span style="font-size:10pt"&gt;&lt;font color="#0000ff"&gt;Teamprise&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:10pt"&gt;, a partner who provides access to Team Foundation Server from Eclipse and non-Windows platforms.  &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt"&gt;&lt;span style="font-size:10pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt"&gt;&lt;span style="font-size:10pt"&gt;The Teamprise products have been very popular with TFS customers who were developing applications across Microsoft and non-Microsoft platforms.  Often customers want to standardize on a single enterprise-wide solution for Application Lifecycle Management because of the cost savings and increased transparency this provides. The Teamprise technology is key in enabling cross platform TFS access.&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt"&gt;&lt;span style="font-size:10pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt"&gt;&lt;span style="font-size:10pt"&gt;Since welcoming the Teamprise technology and the development team into Microsoft, we’ve been hard at work introducing the essential features of TFS 2010 and working towards a high quality release.  &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt"&gt;&lt;span style="font-size:10pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt"&gt;&lt;span style="font-size:10pt"&gt;Today we are announcing a broadly available beta of Microsoft Visual Studio Team Explorer 2010.  This release includes the Team Foundation Server Plugin for Eclipse as well as the Team Foundation Server Cross Platform Command Line Client.  It works on Windows, Mac, Linux, and multiple flavors of UNIX, providing access to the same source control, work item tracking, build automation, and reporting features that Visual Studio customers have benefitted from.&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt"&gt;&lt;span style="font-size:10pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt"&gt;&lt;span style="color:black;font-size:10pt"&gt;Below, you can see a TFS user story work item in Eclipse.&lt;span&gt;  &lt;/span&gt;The story’s implementation is described by a set of child tasks that are linked to that story.  It also shows the Pending Changes view with two source files checked out, the Team Explorer view with a set of work item queries organized into folders and the Eclipse import wizard connecting to TFS to import Java source into the Package Explorer.&lt;/span&gt;&lt;span style="font-size:10pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt"&gt;&lt;span style="font-size:10pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt"&gt;&lt;span style="font-size:10pt"&gt;&lt;a title="Team Explorer" href="http://public.blu.livefilestore.com/y1pjIjEy-pGczCKuVZ--GAKHckKqv_MLC5PY71PunRPQ4X9pO7sb4zrwwo1oDNY3phKdvo0h4gi_6HCQKf86bm3ig/TeamExplorer.jpg"&gt;&lt;img style="width:597px;height:344px" title="Team Explorer" border="0" alt="Team Explorer" src="http://public.blu.livefilestore.com/y1pnEWuhRETEuxYGV8jTtCz3CaUU9dBqKuONEigdF4vkBSo-yEfs8E3C7wMahip5rLba4nIGMK4JJTvPOmOd9FIkA/TeamExplorerSmall.jpg" width="597" height="344"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt"&gt;&lt;span style="font-size:10pt"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:10pt"&gt;You can download the beta of Microsoft Visual Studio Team Explorer 2010 &lt;/span&gt;&lt;span style="font-size:11pt"&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=3c9454e0-523a-4ee1-b436-5c6fc2110b34"&gt;&lt;span style="font-size:10pt"&gt;&lt;font color="#0000ff"&gt;here&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="color:black;font-size:10pt"&gt;&lt;span&gt;, and as always you can provide feedback through &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11pt"&gt;&lt;a href="https://connect.microsoft.com/site1043"&gt;&lt;span style="font-size:10pt"&gt;&lt;font color="#0000ff"&gt;the Microsoft Connect site.&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:11pt"&gt;&lt;span style="font-size:10pt"&gt;Namaste!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9973256" width="1" height="1"&gt;</summary><author><name>Somasegar</name></author><source gr:stream-id="feed/http://blogs.msdn.com/somasegar/rss.aspx"><id>tag:google.com,2005:reader/feed/http://blogs.msdn.com/somasegar/rss.aspx</id><title type="html">Somasegar&amp;#39;s WebLog</title><link rel="alternate" href="http://blogs.msdn.com/somasegar/default.aspx" type="text/html" /></source><feedburner:origLink>http://blogs.msdn.com/somasegar/archive/2010/03/04/beta-of-vs-team-explorer-with-cross-platform-support.aspx</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1267779510340"><id gr:original-id="91d46819-8472-40ad-a661-2c78acb4018c:9973201">tag:google.com,2005:reader/item/67eaac5ab22694d2</id><title type="html">Different Means Better with the new Windows Phone Developer Experience</title><published>2010-03-05T01:30:00Z</published><updated>2010-03-05T01:30:00Z</updated><link rel="alternate" href="http://feeds.ericappel.net/~r/EricAppelsGoogleReaderSharedItems/~3/r-q398T_cnk/different-means-better-with-the-new-windows-phone-developer-experience.aspx" type="text/html" /><summary xml:base="http://blogs.msdn.com/ckindel/default.aspx" type="html">&lt;p&gt;In just over a week we (finally!) get to pull the cover off of the Windows Phone application &amp;amp; game developer experience at &lt;a href="http://live.visitmix.com/"&gt;MIX10&lt;/a&gt;. There, through keynotes and more than 12 technical sessions over 3 days, we will “tell all” about the &lt;u&gt;what&lt;/u&gt; and &lt;u&gt;how&lt;/u&gt; of the new developer platform for Windows Phones. &lt;/p&gt;  &lt;p&gt;Today, I get to talk about the &lt;u&gt;why&lt;/u&gt;. My &lt;a href="http://blogs.msdn.com/ckindel/archive/2010/02/22/focus-focus-focus.aspx"&gt;previous post on focus&lt;/a&gt; hinted at this, but today I get to be even more explicit. In fact, I’m literally down in San Francisco and talking with a few industry watchers about our platform strategy and thought I’d invite you all to the conversation as well.&lt;/p&gt;  &lt;p&gt;In addition to the update I’ll share below, we’ll be taking questions via Twitter at &lt;a href="http://twitter.com/wp7dev"&gt;@WP7dev&lt;/a&gt; (use #wp7dev as well) starting at 6PM PST tonight.&lt;/p&gt;  &lt;p&gt;In our announcement of &lt;a href="http://www.windowsphone7series.com/"&gt;Windows Phone 7 Series at Mobile World Congress&lt;/a&gt; on February 15 you saw just how different Windows Phone 7 Series is. It’s &lt;b&gt;different&lt;/b&gt; from what we’ve done in the phone space before and it’s &lt;b&gt;different&lt;/b&gt; from other phones. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ckindel/WindowsLiveWriter/DifferentMeansBetterwiththenewWindowsPho_DE36/phones%5B1%5D_5.png"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/ckindel/WindowsLiveWriter/DifferentMeansBetterwiththenewWindowsPho_DE36/phones%5B1%5D_thumb.png" style="border:0px none;display:block;float:none;margin-left:auto;margin-right:auto" title="phones[1]" alt="phones[1]" border="0" width="425" height="156"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Different&lt;/b&gt; is often good. Especially when it’s &lt;b&gt;different&lt;/b&gt; for good reasons. Windows Phone 7 Series is &lt;b&gt;different&lt;/b&gt; because we reset everything we were doing to focus on end user experience. This extends &lt;u&gt;directly&lt;/u&gt; to the developer platform.&lt;/p&gt;  &lt;p&gt;Developers, designers, and producers of applications, games, and content these days are demanding that we be &lt;b&gt;different&lt;/b&gt; as well. Over the last year we’ve had face to face conversations with 100s of developers all over the world about what we should do with Windows Phone 7 Series. We heard they want:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;to create truly compelling apps and games users will love. &lt;/li&gt;    &lt;li&gt;to get more done with better tool productivity and platform capabilities. &lt;/li&gt;    &lt;li&gt;greater opportunity; not just on the phone but across the PC, web, and TV/game console. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Microsoft had to change its strategy to accommodate what developers have been asking for. Specifically developers told us to&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;focus on the end user experience and take more responsibility for delivering integrated end user experiences. &lt;/li&gt;    &lt;li&gt;invest more deeply in the developer platform and developer experience. &lt;/li&gt;    &lt;li&gt;drive a standardized hardware platform creating a simpler ecosystem and a larger, consistent, opportunity. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The Windows Phone 7 Series developer platform is as &lt;b&gt;different&lt;/b&gt; as the new user experience. It’s fresh. It’s pure. And it’s powerful.&lt;/p&gt;  &lt;p&gt;We took the feedback we gathered from developers, looked at the full potential of Windows Phone 7 Series and landed on 3 basic goals for the platform we’re delivering;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Enable end users to be able to personalize their phone experience through a large library of innovative, compelling, games and applications. &lt;/li&gt;    &lt;li&gt;Enable developers to profit. &lt;/li&gt;    &lt;li&gt;Advance the “3 screen plus cloud” vision &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;The first one is pretty obvious: A key value proposition for Windows Phone is &lt;u&gt;personal&lt;/u&gt;. We believe consumers will use games and applications to make their phone experience &lt;u&gt;their own&lt;/u&gt;. &lt;/p&gt;  &lt;p&gt;(Did you notice we always talk about applications &lt;u&gt;and&lt;/u&gt; games? A little factoid I heard today: According eMarketer, the number of people playing games on the phone has more than doubled in recent years;340M people will play games on the phone in 2010 up from 155M in 2007).&lt;/p&gt;  &lt;p&gt;But what do we mean by “profit” in the second goal? When we talk with developers we hear them talk about three different “currencies”: making money, learning, and recognition. Some developers are in it for the money. They are either literally being paid to write code or they are writing code with the hope it will generate coin. &lt;/p&gt;  &lt;p&gt;Other developers tell us they are interested in advancing their knowledge – love of the game. They love learning about computers, programming, games, social connections, etc… So they build software to learn. They profit by being smarter.&lt;/p&gt;  &lt;p&gt;Other developers are clearly motivated by pride. Maybe there’s a bit of money and learning involved, but to these developers being noticed or recognized as doing wickedly epic sh*t is top of the list for how they measure profit.&lt;/p&gt;  &lt;p&gt;We think all three “currencies” are valid and important and we are explicitly trying to build the platform and developer experience to support “profit” in each.&lt;/p&gt;  &lt;p&gt;The last goal really points to our long term strategy. We hear from people that they want to be able to experience software no matter what screen they are using. The phone, the PC, or the TV. Combine this concept with “&lt;a href="http://www.microsoft.com/softwareplusservices/"&gt;Software+Service&lt;/a&gt;” and it’s pretty obvious what “3 screens + cloud” means.&lt;/p&gt;  &lt;p&gt;I mentioned in &lt;a href="http://blogs.msdn.com/ckindel/archive/2010/02/22/focus-focus-focus.aspx"&gt;my last post&lt;/a&gt; that one of our principles was “to build upon the shoulders of giants; where possible &lt;i&gt;integrate&lt;/i&gt; instead of &lt;i&gt;create&lt;/i&gt;.” It won’t come as a surprise to many to learn that the Windows Phone 7 developer experience builds upon the following GIANTS (among others):&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;.&lt;a href="http://www.microsoft.com/NET/"&gt;NET&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://silverlight.net/"&gt;Silverlight&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://creators.xna.com/en-US/"&gt;XNA platform&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Microsoft’s developer tools &lt;/li&gt;    &lt;li&gt;Web 2.0 standards &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Different&lt;/b&gt; often means change. A quick glance at &lt;a href="https://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&amp;amp;field-keywords=managing+change&amp;amp;x=0&amp;amp;y=0"&gt;Amazon.com&lt;/a&gt; shows me there are literally hundreds of current books on how to manage change in organizations. We all know change can be hard. It’s hard even when you know there’s tremendous upside. &lt;/p&gt;  &lt;p&gt;For us, the cost of going from good to great is a clean break from the past. To enable the fantastic user experiences you’ve seen in the &lt;a href="http://channel9.msdn.com/posts/LauraFoy/First-Look-Windows-Phone-7-Series-Hands-on-Demo/"&gt;Windows Phone 7 Series demos&lt;/a&gt; so far we’ve had to break from the past. To deliver what developers expect in the developer platform we’ve had to change how phone apps were written. One result of this is previous Windows mobile applications will not run on Windows Phone 7 Series.&lt;/p&gt;  &lt;p&gt;To be clear, we will continue to work with our partners to deliver new devices based on Windows Mobile 6.5 and will support those products for many years to come, so it’s not as though one line ends as soon as the other begins.&lt;/p&gt;  &lt;p&gt;The expertise and familiarity with our tools is not lost. If you are a .NET developer today your skills and much of your code will move forward. If you are Silverlight or XNA developer today you’re gonna be really happy. New developers to the platform will find a cohesive, well designed API set with super productive tools.&lt;/p&gt;  &lt;p&gt;At MIX you will find out that it’s never been easier, more fun, or more rewarding to create beautiful &amp;amp; compelling phone experiences. Windows Phone 7 Series is a &lt;b&gt;different&lt;/b&gt; kind of phone and the development platform offers a different kind of opportunity. Our mission is to help developers go after the next generation of mobile customers with an amazing set of tools and technologies. Developers will be able to bring new kinds of content to more screens and markets faster.&lt;/p&gt;  &lt;p&gt;See you there.&lt;/p&gt;  &lt;p&gt;P.S. If you like blogs, I suggest you follow these guys as well; they are all part of the extended team of people at Microsoft who are helping to deliver the new platform. &lt;/p&gt;  &lt;p&gt;Andre Vrignaud: &lt;a href="http://www.ozymandias.com"&gt;www.ozymandias.com&lt;/a&gt; / @&lt;a href="http://twitter.com/ozymandias"&gt;ozymandias&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Christian Schormann: &lt;u&gt;&lt;a href="http://electricbeach.org/?page_id=2"&gt;electricbeach.org&lt;/a&gt;&lt;/u&gt; / @&lt;a href="http://twitter.com/cschormann"&gt;&lt;span style="font-size:11pt"&gt;cschormann&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Shawn Hargreaves: &lt;a href="http://blogs.msdn.com/shawnhar"&gt;blogs.msdn.com/shawnhar&lt;/a&gt; / @&lt;a href="http://twitter.com/shawnhargreaves"&gt;shawnhargreaves&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Todd Brix: &lt;u&gt;&lt;a href="http://windowsteamblog.com/blogs/windowsphone/default.aspx"&gt;windowsteamblog.com/blogs/windowsphone&lt;/a&gt;&lt;/u&gt;  / @&lt;a href="http://twitter.com/toddbrix"&gt;toddbrix&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Anand Iyer: &lt;a href="http://www.artificialignorance.net/blog"&gt;www.artificialignorance.net/blog&lt;/a&gt; / @&lt;a href="http://twitter.com/ai"&gt;ai&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Michael Klucher: &lt;a href="http://klucher.com"&gt;klucher.com&lt;/a&gt; / @&lt;a href="http://twitter.com/mklucher"&gt;mklucher&lt;/a&gt;&lt;/p&gt;&lt;p&gt; [Edit: 9:16PM PST 3/4/2010 - Fixed Christian&amp;#39;s twitter handle] &lt;br&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9973201" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/ckindel/~4/aYJ-lQxXKtk" height="1" width="1"&gt;</summary><author><name>ckindel</name></author><gr:likingUser>18158899507117698729</gr:likingUser><gr:likingUser>16820007008568411625</gr:likingUser><gr:likingUser>02885298312319616028</gr:likingUser><gr:likingUser>05921653529454389165</gr:likingUser><gr:likingUser>07362789980113813009</gr:likingUser><source gr:stream-id="feed/http://feeds.feedburner.com/ckindel"><id>tag:google.com,2005:reader/feed/http://feeds.feedburner.com/ckindel</id><title type="html">Charlie Kindel on Windows Phone Development</title><link rel="alternate" href="http://blogs.msdn.com/ckindel/default.aspx" type="text/html" /></source><feedburner:origLink>http://feedproxy.google.com/~r/ckindel/~3/aYJ-lQxXKtk/different-means-better-with-the-new-windows-phone-developer-experience.aspx</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1267638997660"><id gr:original-id="http://encosia.com/?p=971">tag:google.com,2005:reader/item/e42e037d29a661d0</id><category term="AJAX" /><category term="ASMX Mistakes and Misconceptions" /><category term="ASP.NET" /><title type="html">ASMX and JSON – Common mistakes and misconceptions</title><published>2010-03-03T09:02:37Z</published><updated>2010-03-03T09:02:37Z</updated><link rel="alternate" href="http://feeds.ericappel.net/~r/EricAppelsGoogleReaderSharedItems/~3/cYcsiGUCRyQ/" type="text/html" /><content xml:base="http://encosia.com/" type="html">&lt;p&gt;While we were recording &lt;a href="http://tekpub.com/view/jquery/5"&gt;episode 5 of Mastering jQuery&lt;/a&gt;, I found myself running down a lengthy list of misconceptions and potential pitfalls when it comes to using ASMX services for AJAX callbacks. After years of fielding questions revolving around that topic, I suppose I’ve developed a decent handle on the issues most often encountered.&lt;/p&gt;
&lt;p&gt;To preemptively surface some of that commonly requested information, I’m going to publish a series of relatively short posts, each describing one mistake or misconception that I’ve seen come up frequently.&lt;/p&gt;
&lt;p&gt;To get started, I want to cover one of the most fundamental of these misconceptions:  That ASMX services can’t return JSON.&lt;/p&gt;
&lt;h3&gt;Misconception: ASMX services are limited to XML&lt;/h3&gt;
&lt;p&gt;One of the most stubbornly persistent misconceptions about ASMX services is the rumor that they are limited to returning XML. With that notion mind, many developers understandably avoid them for client-side AJAX callbacks. When every byte counts, raw JSON is always preferable to the bloat of XML.&lt;/p&gt;
&lt;p&gt;However, the introduction of &lt;strong&gt;ASP.NET AJAX removed that XML limitation&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In any ASP.NET 2.0+ AJAX enabled site, one of ASP.NET AJAX’s additions is something called the &lt;strong&gt;ScriptService&lt;/strong&gt;. When a ScriptService is called in the correct manner, it automatically returns its result serialized as JSON instead of XML.&lt;/p&gt;
&lt;p&gt;In fact, these &lt;a href="http://encosia.com/2009/04/07/using-complex-types-to-make-calling-services-less-complex/"&gt;ASMX ScriptServices even accept their parameters as JSON&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;The ASP.NET AJAX “ScriptService”&lt;/h3&gt;
&lt;p&gt;If you’ve created an ASMX service in the past few years, you’ve probably seen this blurb at the beginning of the default template:&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt;&lt;span style="color:#008080;font-style:italic"&gt;// To allow this Web Service to be called from script, &lt;/span&gt;
&lt;span style="color:#008080;font-style:italic"&gt;//   using ASP.NET AJAX, uncomment the following line. &lt;/span&gt;
&lt;span style="color:#008080;font-style:italic"&gt;// [System.Web.Script.Services.ScriptService] &lt;/span&gt;
&lt;span style="color:#0600FF"&gt;public&lt;/span&gt; &lt;span style="color:#FF0000"&gt;class&lt;/span&gt; WebService &lt;span style="color:#008000"&gt;:&lt;/span&gt; &lt;span style="color:#000000"&gt;System.&lt;span style="color:#0000FF"&gt;Web&lt;/span&gt;.&lt;span style="color:#0000FF"&gt;Services&lt;/span&gt;&lt;/span&gt;.&lt;span style="color:#0000FF"&gt;WebService&lt;/span&gt; &lt;span style="color:#000000"&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Since it never explicitly mentions JSON &lt;em&gt;and&lt;/em&gt; implies a tight coupling with ASP.NET AJAX, it’s easy to understand why the ScriptService’s true power sometimes goes unnoticed. Thankfully, that attribute does much more than simply expose ASP.NET AJAX specific functionality.&lt;/p&gt;
&lt;p&gt;In fact, &lt;strong&gt;the ScriptService attribute enables all of an ASMX service’s methods to respond with raw JSON&lt;/strong&gt; if they are requested correctly. For example, these ScriptServices can easily &lt;a href="http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/"&gt;send and receive JSON in conjunction with a third party library&lt;/a&gt;, without a ScriptManager or MicrosoftAjax.js anywhere to be seen.&lt;/p&gt;
&lt;h3&gt;Two simple requirements&lt;/h3&gt;
&lt;p&gt;As I alluded to earlier, the one stipulation is that &lt;strong&gt;these ScriptServices only return JSON serialized results if they are requested properly&lt;/strong&gt;. Otherwise, even a service marked with the attribute will return XML instead of JSON. I can only assume that’s part of the reason for the misconception that ASMX services cannot respond with JSON.&lt;/p&gt;
&lt;p&gt;Scott Guthrie has a great post on &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/04/04/json-hijacking-and-how-asp-net-ajax-1-0-mitigates-these-attacks.aspx"&gt;the specific requirements for coercing JSON out of ScriptServices&lt;/a&gt;. To summarize that, requests to the service methods must meet two requirements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Content-Type&lt;/strong&gt; – The HTTP request &lt;em&gt;must&lt;/em&gt; declare a content-type of application/json. This informs the ScriptService that it will receive its parameters as JSON and that it should respond in kind.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HTTP Method&lt;/strong&gt; – By default, the HTTP request must be a POST request. It &lt;em&gt;is&lt;/em&gt; possible to circumvent this requirement, but &lt;a href="http://haacked.com/archive/2009/06/25/json-hijacking.aspx"&gt;it is advisable to stick with HTTP POST requests when dealing with JSON&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That’s it.&lt;/p&gt;
&lt;p&gt;As long as those two requirements are satisfied, anything from low-level XMLHttpRequest code, to third-party libraries like jQuery, to ASP.NET AJAX itself can easily retrieve JSON serialized data from ASMX services.&lt;/p&gt;
&lt;p&gt;&lt;p&gt;###&lt;/p&gt;

&lt;p&gt;Originally posted at &lt;a href="http://encosia.com"&gt;Encosia&lt;/a&gt;.  If you're reading this elsewhere, come on over and see the original.&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://encosia.com/2010/03/03/asmx-and-json-common-mistakes-and-misconceptions/"&gt;ASMX and JSON – Common mistakes and misconceptions&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;
&lt;a href="http://feeds.encosia.com/~ff/Encosia?a=04bPIUSgr70:bL6rw5F1HYs:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Encosia?i=04bPIUSgr70:bL6rw5F1HYs:D7DqB2pKExk" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.encosia.com/~ff/Encosia?a=04bPIUSgr70:bL6rw5F1HYs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Encosia?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.encosia.com/~ff/Encosia?a=04bPIUSgr70:bL6rw5F1HYs:aWKiLpGymzw"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Encosia?d=aWKiLpGymzw" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.encosia.com/~ff/Encosia?a=04bPIUSgr70:bL6rw5F1HYs:30RXbuXOgYA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Encosia?d=30RXbuXOgYA" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.encosia.com/~ff/Encosia?a=04bPIUSgr70:bL6rw5F1HYs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Encosia?i=04bPIUSgr70:bL6rw5F1HYs:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.encosia.com/~ff/Encosia?a=04bPIUSgr70:bL6rw5F1HYs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Encosia?i=04bPIUSgr70:bL6rw5F1HYs:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Encosia/~4/04bPIUSgr70" height="1" width="1"&gt;</content><author><name>Dave Ward</name></author><gr:likingUser>17279426870283839355</gr:likingUser><gr:likingUser>11199828247701990930</gr:likingUser><gr:likingUser>05163123731033850239</gr:likingUser><gr:likingUser>13659463864430149651</gr:likingUser><gr:likingUser>01913316744858752967</gr:likingUser><gr:likingUser>01816360955994609875</gr:likingUser><source gr:stream-id="feed/http://feeds.encosia.com/Encosia"><id>tag:google.com,2005:reader/feed/http://feeds.encosia.com/Encosia</id><title type="html">Encosia</title><link rel="alternate" href="http://encosia.com" type="text/html" /></source><feedburner:origLink>http://feeds.encosia.com/~r/Encosia/~3/04bPIUSgr70/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1267514970681"><id gr:original-id="http://www.scottkelby.com/blog/?p=8824">tag:google.com,2005:reader/item/3606f5339a118157</id><category term="Photography" /><title type="html">Matt has found THE Portfolio/Photographer’s Site Layout!</title><published>2010-03-02T05:57:26Z</published><updated>2010-03-02T05:57:26Z</updated><link rel="alternate" href="http://feeds.ericappel.net/~r/EricAppelsGoogleReaderSharedItems/~3/HDtQJErClu0/8824" type="text/html" /><content xml:base="http://www.scottkelby.com/blog" type="html">&lt;p&gt;&lt;a href="http://www.scottkelby.com/blog/wp-content/uploads/2010/03/skisite.jpg"&gt;&lt;img title="skisite" src="http://www.scottkelby.com/blog/wp-content/uploads/2010/03/skisite.jpg" alt="skisite" width="516" height="328"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;My good friend, and &lt;a href="http://www.kelbytv.com/dtowntv"&gt;D-Town TV&lt;/a&gt; co-host &lt;strong&gt;Matt Kloskowski &lt;/strong&gt;has been working on a portfolio site for his photography, and when he came in and showed it to me last week, I was just like, “Dude—that’s the portfolio site everybody wants!”&lt;/p&gt;
&lt;p&gt;He had been keeping his eye out for a while for an easily up-datable, flexible, inexpensive solution, but this is actually more than that , and I think he just totally nailed it!. I think it really compliments his photography, and at the same time, it makes you want to look around and see what else is there (and there’s lot of stuff there). Take a moment and check out Matt’s fantastic photography, and &lt;a href="http://www.mattkloskowski.com"&gt;his very cool new site. &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; &lt;em&gt;Matt is in Dubai right now, teaching at the Gulf Photo conference, but I’m doing to send him a text to let me know that I ran this post, and hopefully if he gets a chance he can answer some of your questions about his site.&lt;/em&gt;&lt;/p&gt;</content><author><name>Scott</name></author><gr:likingUser>15480039735292194297</gr:likingUser><gr:likingUser>01051349889311963799</gr:likingUser><gr:likingUser>10325321723097742002</gr:likingUser><gr:likingUser>01520062768162896921</gr:likingUser><gr:likingUser>01433443375693507649</gr:likingUser><gr:likingUser>13396142533253136434</gr:likingUser><gr:likingUser>11946386960251496279</gr:likingUser><gr:likingUser>18343676128922251020</gr:likingUser><gr:likingUser>01816360955994609875</gr:likingUser><gr:likingUser>09100198872767719216</gr:likingUser><gr:likingUser>16217989887260635266</gr:likingUser><source gr:stream-id="feed/http://www.scottkelby.com/blog/feed"><id>tag:google.com,2005:reader/feed/http://www.scottkelby.com/blog/feed</id><title type="html">Scott Kelby&amp;#39;s Photoshop Insider Blog » Photoshop &amp;amp; Digital Photography Techniques, Tutorials, Books, Reviews &amp;amp; More</title><link rel="alternate" href="http://www.scottkelby.com/blog" type="text/html" /></source><feedburner:origLink>http://www.scottkelby.com/blog/2010/archives/8824</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1267465355832"><id gr:original-id="http://www.istartedsomething.com/?p=4036">tag:google.com,2005:reader/item/6e037d0c4ea51e8b</id><category term="blog" /><title type="html">Geosense for Windows: location, location, location</title><published>2010-03-01T06:38:18Z</published><updated>2010-03-01T06:38:18Z</updated><link rel="alternate" href="http://feeds.ericappel.net/~r/EricAppelsGoogleReaderSharedItems/~3/WsX4sqF6Vl4/" type="text/html" /><content xml:base="http://www.istartedsomething.com/" type="html">&lt;p style="text-align:center"&gt;&lt;img src="http://www.istartedsomething.com/wp-content/uploads/2010/03/geosense.jpg" alt="" title="geosense"&gt;&lt;/p&gt;
&lt;p&gt;Unless you’ve been living under a rock without any GPS reception, you might have heard of &lt;a href="http://gigaom.com/2009/04/27/iphone-is-boosting-demand-for-location-based-services/"&gt;location-based applications&lt;/a&gt;. From the fun to the useful, letting software know where you are in the world is a powerful way to make information more relevant, but why should smartphones have all the fun?&lt;/p&gt;
&lt;p&gt;Half a year ago, &lt;a href="http://www.mozilla.com/en-US/firefox/geolocation/"&gt;Firefox 3.5 introduced support for geolocation&lt;/a&gt;, a feature allowed the browser to pinpoint the location of the computer using WiFi triangulation. After personally witnessing how well it worked (it located my home, in fact, my room in the house where I use the computer), I started bugging my partner in crime, &lt;a href="http://www.withinwindows.com/"&gt;Rafael Rivera&lt;/a&gt;, to port this feature to the platform-level, where it belongs.&lt;/p&gt;
&lt;p&gt;As a matter of fact, Windows 7, like most other current generation OSes, has a &lt;a href="http://msdn.microsoft.com/en-us/library/dd318936%28VS.85%29.aspx"&gt;built-in location platform and API&lt;/a&gt; that allow third-party developers to build native application that are location-aware. However unlike other OSes, specifically OS X, Microsoft made the fatal flaw of not &lt;a href="http://cocoawithlove.com/2009/09/whereismymac-snow-leopard-corelocation.html"&gt;integrating a default geolocation provider&lt;/a&gt;, thus developers could not take advantage of this until Windows 7 PCs started shipping with GPS sensors, which hasn’t happened yet. &lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.istartedsomething.com/wp-content/uploads/2010/03/geosenselogo.jpg" alt="" title="geosenselogo" style="float:right;margin-left:15px"&gt;Instead of waiting for OEMs to pick up the ball, Rafael and I are offering an alternative.&lt;/p&gt;
&lt;p&gt;Over the past several weeks, we (&lt;a href="http://www.withinwindows.com/2010/03/01/geosense-the-first-really-really-cool-windows-sensor/"&gt;Rafael did most of the work&lt;/a&gt;, I shouted at him) built &lt;a href="http://www.geosenseforwindows.com/"&gt;Geosense for Windows&lt;/a&gt;, a Windows 7 sensor driver that connects the location platform with geolocation service providers who include but is not limited to Google Location Services. These geolocation providers work by matching and triangulating known cell towers and wireless access points in its database to estimate a latitude and longitude, with remarkable accuracy and scope.&lt;/p&gt;
&lt;p&gt;Today we are releasing Geosense for Windows for free. We believe by offering this tool for free will help enable the most possible Windows 7 PCs to be location-aware, and in turn add incentive for third-party developers to take advantage of the Windows 7 location APIs and make their applications stand out.&lt;/p&gt;
&lt;p&gt;That’s enough talk from me, &lt;a href="http://www.geosenseforwindows.com/"&gt;now go get the bits&lt;/a&gt;.&lt;/p&gt;
&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/~ff/istartedsomething?a=enUl3Ly64Lw:m0dneoeAN3w:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/istartedsomething?i=enUl3Ly64Lw:m0dneoeAN3w:D7DqB2pKExk" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/istartedsomething?a=enUl3Ly64Lw:m0dneoeAN3w:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/istartedsomething?i=enUl3Ly64Lw:m0dneoeAN3w:V_sGLiPBpWU" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/istartedsomething?a=enUl3Ly64Lw:m0dneoeAN3w:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/istartedsomething?i=enUl3Ly64Lw:m0dneoeAN3w:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/istartedsomething?a=enUl3Ly64Lw:m0dneoeAN3w:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/istartedsomething?d=qj6IDK7rITs" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/istartedsomething?a=enUl3Ly64Lw:m0dneoeAN3w:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/istartedsomething?i=enUl3Ly64Lw:m0dneoeAN3w:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/istartedsomething?a=enUl3Ly64Lw:m0dneoeAN3w:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/istartedsomething?d=7Q72WNTAKBA" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/istartedsomething?a=enUl3Ly64Lw:m0dneoeAN3w:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/istartedsomething?d=cGdyc7Q-1BI" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/istartedsomething/~4/enUl3Ly64Lw" height="1" width="1"&gt;</content><author><name>Long Zheng</name></author><gr:likingUser>03405805811085537276</gr:likingUser><gr:likingUser>10622267668276303534</gr:likingUser><gr:likingUser>03733284853512338611</gr:likingUser><gr:likingUser>02294761165631714922</gr:likingUser><gr:likingUser>02885298312319616028</gr:likingUser><gr:likingUser>15218633955327620808</gr:likingUser><gr:likingUser>00109946945841338007</gr:likingUser><gr:likingUser>07560931533148168364</gr:likingUser><gr:likingUser>16950801946615166653</gr:likingUser><gr:likingUser>06795237462162910091</gr:likingUser><gr:likingUser>05921653529454389165</gr:likingUser><gr:likingUser>01463086754225766827</gr:likingUser><gr:likingUser>11870941234204551385</gr:likingUser><gr:likingUser>02910314866089511188</gr:likingUser><gr:likingUser>07476732026107928770</gr:likingUser><gr:likingUser>07368371703850781990</gr:likingUser><gr:likingUser>16935322041668034773</gr:likingUser><source gr:stream-id="feed/http://www.istartedsomething.com/feed/"><id>tag:google.com,2005:reader/feed/http://www.istartedsomething.com/feed/</id><title type="html">istartedsomething</title><link rel="alternate" href="http://www.istartedsomething.com" type="text/html" /></source><feedburner:origLink>http://feedproxy.google.com/~r/istartedsomething/~3/enUl3Ly64Lw/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1267381750228"><id gr:original-id="http://www.jeff.wilcox.name/2010/02/codesigning101/">tag:google.com,2005:reader/item/d082c74313e25ddb</id><category term="C#" /><category term="Infrastructure" /><category term="Software Development" /><category term="Technology" /><category term="Windows" /><title type="html">Getting started with code signing for under $100</title><published>2010-02-28T05:33:47Z</published><updated>2010-02-28T05:33:47Z</updated><link rel="alternate" href="http://feeds.ericappel.net/~r/EricAppelsGoogleReaderSharedItems/~3/4u59M_cD5aU/" type="text/html" /><content xml:base="http://www.jeff.wilcox.name/" type="html">&lt;p&gt;I recently jumped in and acquired an Authenticode code signing certificate &amp;amp; key pair. It’s great being able to sign my .NET executables, installers, and even Visual Studio 2010 extensions.&lt;/p&gt;
&lt;p&gt;I’m documenting my efforts here in the hope that others would be able to follow the relatively straightforward process – there’s not much magic other than learning to export and work with the certificate mechanisms inside Windows. But I know a lot of devs see it as a black magic art, and really it’s just about time, money, and some quick learning.&lt;/p&gt;
&lt;h4&gt;Which dialog would you click ‘Yes’ on?&lt;/h4&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="FakeFirefox" border="0" alt="FakeFirefox" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/FakeFirefox.png" width="498" height="295"&gt;&lt;/p&gt;
&lt;p&gt;Windows 7 is leaps and bounds ahead of Vista in terms of usability. The improved User Account Control experience is nice. I think that a lot of people are finally becoming more wary of unsigned software, especially installers.&lt;/p&gt;
&lt;p&gt;With the net full of stories of mirror servers becoming compromised, or people blinding clicking yes on many dialogs, the assurance of the dialog without the scary orange warning banner is the one I think every software developer would like to offer their customers. It’s the professional thing to do.&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="UacFirefox" border="0" alt="UacFirefox" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/UacFirefox.png" width="498" height="295"&gt; &lt;/p&gt;
&lt;p&gt;So here we are, from start (no cert) to finish (signing a .NET app). It only took about two days to go through the identity verification process, but the time was well worth it – and the rest is easy given the nice signing tools in Windows and Visual Studio.&lt;/p&gt;
&lt;p&gt;We’ll be getting a certificate &amp;amp; private key through a trusted root certificate authority (CA) provider, not test signing or self-signing. If you’ve ever purchased an SSL certificate for your web servers, similar process.&lt;/p&gt;
&lt;p&gt;For a list of current program members, see &lt;a href="http://support.microsoft.com/kb/931125"&gt;this download&lt;/a&gt; on the Microsoft site – there are hundreds of businesses and governments in the program.&lt;/p&gt;
&lt;p&gt;Some corporate IT departments will have their own internal CA, so although those companies can sign apps for internal use, using them on machines without that CA cert installed will yield the un-trusted publisher dialog.&lt;/p&gt;
&lt;h4&gt;What is Authenticode?&lt;/h4&gt;
&lt;p&gt;Authenticode is the name for the code signing system on Windows. There are &lt;a href="http://msdn.microsoft.com/en-us/library/ms537364(VS.85).aspx"&gt;many tools from Microsoft&lt;/a&gt; that are core to code signing and ship in the Windows SDK.&lt;/p&gt;
&lt;p&gt;Code signing certificates have an expiration date, but as long as a timestamp server is used when signing, signed apps can still be used and verified. Certificates can also be revoked if ever compromised.&lt;/p&gt;
&lt;p&gt;For good measure, here’s a short Wikipedia page on &lt;a href="http://en.wikipedia.org/wiki/Code_signing"&gt;code signing&lt;/a&gt;, and the MSDN document “&lt;a href="http://msdn.microsoft.com/en-us/library/ms537361(VS.85).aspx"&gt;Introduction to Code Signing&lt;/a&gt;”.&lt;/p&gt;
&lt;h4&gt;What code signing is not&lt;/h4&gt;
&lt;p&gt;Signing is only a way of proving that some person or company is who they say they are. It doesn’t tell you whether there’s a nice person, or in any way validate functionality of an app.&lt;/p&gt;
&lt;p&gt;Also, .NET projects have a “Signing” tab, but this is actually a feature called &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc163583.aspx"&gt;Strong Naming&lt;/a&gt;, and is different. Most commercial software products using .NET will be both strong named, &lt;em&gt;plus&lt;/em&gt; be code signed.&lt;/p&gt;
&lt;h4&gt;What all can you use your $99/year key for?&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Signing Windows executables&lt;/li&gt;
&lt;li&gt;.NET programs, class libraries, ClickOnce apps&lt;/li&gt;
&lt;li&gt;.MSI installer files&lt;/li&gt;
&lt;li&gt;Adobe AIR apps&lt;/li&gt;
&lt;li&gt;Java JARs&lt;/li&gt;
&lt;li&gt;Microsoft Office/VBA macros&lt;/li&gt;
&lt;li&gt;Mozilla objects and extensions&lt;/li&gt;
&lt;li&gt;Signing Visual Studio extension packages (.vsix files), although SignTool doesn’t directly support this (no SIP module)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Note that only Verisign offers code signing certificates for Windows device drivers through a special program for kernel-mode code signing.&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;How does Microsoft do code signing?&lt;/h4&gt;
&lt;p&gt;Obviously the Microsoft corporate keys are extremely secure and private. All signing is performed through a set of intricate systems that accept builds, check conditions, scan for viruses, and who knows what else… and eventually provide the signed binaries.&lt;/p&gt;
&lt;p&gt;It’s pretty much a black box to us as engineers, but it works for hundreds of thousands of files.&lt;/p&gt;
&lt;p&gt;As a dev, I’ve had more than my share of wild Friday nights trying to get code strong named and signed: there’s a big process and it revolves around a lot of people, smart cards, and it eventually works out.&lt;/p&gt;
&lt;h2&gt;Step-by-step guide to purchasing a certificate&lt;/h2&gt;
&lt;p&gt;Here’s my experience with getting a certificate. Different certification companies may have different processes, but in general you can be sure that you will need to do a lot to provide proof and authenticity of your name/company.&lt;/p&gt;
&lt;p&gt;You can purchase a personal certificate (independent developer, professional geek) quicker than a corporate certificate given the different proof requirements.&lt;/p&gt;
&lt;p&gt;Since the name/company name is what will be shown in the publisher field, you obviously wouldn’t want to get a personal certificate for company use. Also, be aware that the address you provide to a signing company will be embedded inside the certificate.&lt;/p&gt;
&lt;p&gt;I purchased my code signing cert through &lt;a href="https://secure.ksoftware.net/code_signing.html"&gt;K Software&lt;/a&gt;, which is an official reseller of &lt;a href="http://www.comodo.com/"&gt;Comodo&lt;/a&gt; certificates, a popular Level 2 CA whose certificates are part of the root CA program on computers everywhere. The certificate costs $99 per year. I’ve heard of other companies sometimes offering specials as low as $65 a year, and others such as Verisign asking $499 a year.&lt;/p&gt;
&lt;p&gt;Since there is some pain in the process (producing copious amounts of evidence) and waiting for that to be validated, you may want to consider purchasing a multi-year certificate and skip having to renew yearly.&lt;/p&gt;
&lt;p&gt;You must use Windows and either Internet Explorer or Firefox to make the initial request. After the entire process is complete and the certificate is issued (days later), you will need to use the same computer and browser to complete the process. You will then export the certificate and private key to a file so you can store it safely somewhere.&lt;/p&gt;
&lt;h4&gt;What proof will be required&lt;/h4&gt;
&lt;p&gt;This is a partial list, the authentication process may require other documents. Most verification can be done through fax, mail, or even email.&lt;/p&gt;
&lt;p&gt;If you’ve ever purchased an SSL certificate, it’s almost the same exact process.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Your own domain name:&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;The domain’s WHOIS records must match the information you provide in your order.&lt;/li&gt;
&lt;li&gt;If you use Private Registration services, you’ll need proof from the private registration company that you own the domain and your address matches. This can be a pain.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Corporate entities:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Articles of Incorporation&lt;/li&gt;
&lt;li&gt;Business License&lt;/li&gt;
&lt;li&gt;Other documentation such as DUNS details&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Individuals:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Driver’s license or passport&lt;/li&gt;
&lt;li&gt;Recent utility statements with matching data&lt;/li&gt;
&lt;li&gt;Phone statement with matching information, name, and phone number where final phone verification will be performed&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This information will be asked for after you order and pay for the service. It is performed by the CA (Comodo in my case), &lt;em&gt;not&lt;/em&gt; by the company or reseller you buy the service from.&lt;/p&gt;
&lt;p&gt;For the remainder of this section, everything will be specific to Comodo. I found them helpful, quick and responsive, and professional, so I would definitely recommend their service. It is a great value when purchased through a reseller.&lt;/p&gt;
&lt;h4&gt;Step 1: Register with the CA to track your validation tickets and receive support&lt;/h4&gt;
&lt;p&gt;You’ll need to do this with an email address at your domain name. You register with the same email you’ll use in the next step.&lt;/p&gt;
&lt;p&gt;If you don’t usually receive mail at your domain, you should be able to easily setup mail forwarding to your normal mail address. On a Windows server, &lt;a href="http://www.smartertools.com/SmarterMail/Free-Windows-Mail-Server.aspx"&gt;SmarterMail Free&lt;/a&gt; sets up in minutes and is great for this.&lt;/p&gt;
&lt;p&gt;Simply create an account at Comodo Support for this: &lt;a title="https://support.comodo.com/index.php?_m=core&amp;amp;_a=register" href="https://support.comodo.com/index.php?_m=core&amp;amp;_a=register"&gt;https://support.comodo.com/index.php?_m=core&amp;amp;_a=register&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Step 2: Submit basic data and purchase&lt;/h4&gt;
&lt;p&gt;Start at the K Software site, which is a reseller of Comodo’s: &lt;a title="https://secure.ksoftware.net/code_signing.html" href="https://secure.ksoftware.net/code_signing.html"&gt;https://secure.ksoftware.net/code_signing.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Current prices are $99 US for one year, $198 for 2 years, and so on.&lt;/p&gt;
&lt;p&gt;After navigating to the page, click Buy Now. Internet Explorer will pop up a message that the site is attempting to perform a digital certificate operation. Click Yes.&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="WebAccessConfirmation" border="0" alt="WebAccessConfirmation" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/WebAccessConfirmation.png" width="528" height="291"&gt; &lt;/p&gt;
&lt;p&gt;On the order form page, you will submit your details, including address, email, etc. The email address needs to be an email address on your domain name that can be verified, &lt;em&gt;not&lt;/em&gt; a Hotmail or Google Mail address. Note that this information will be embedded inside the final issued certificate.&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="OrderForm" border="0" alt="OrderForm" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/OrderForm.png" width="685" height="419"&gt; &lt;/p&gt;
&lt;p&gt;Important values at the end of the page:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CSP should be Microsoft Enhanced Cryptographic Provider v1.0 (the default)&lt;/li&gt;
&lt;li&gt;Key size: 2048 is fine for most people&lt;/li&gt;
&lt;li&gt;Exportable: definitely – if you don’t check this, you can’t get a PKCS 12 (.pfx on Windows) file to use for signing, and would have to do all signing on that machine&lt;/li&gt;
&lt;li&gt;User protected: Leave this unchecked&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After clicking Submit Order, you’ll go to a payment page. I used PayPal and was done in seconds.&lt;/p&gt;
&lt;h4&gt;Step Three: You’ll be contacted&lt;/h4&gt;
&lt;p&gt;At this point you’re done with the K Software order. You will be contacted via e-mail from Comodo, and they’ll step you through what verification they need at that time, and how to submit it.&lt;/p&gt;
&lt;p&gt;In my case I had to go through several rounds of verification, including sending a recent phone bill.&lt;/p&gt;
&lt;p&gt;I ran into some hiccups because the domain name I used for the e-mail address, though owned by me, is hard to prove: my WHOIS data all says ‘Domains By Proxy’, which is the provider of private registration services for GoDaddy. I had to find a way to provide proof that I own the domain.&lt;/p&gt;
&lt;p&gt;The final verification step is when they eventually call your phone number. After that call, they’ll issue the certificate approval, and you’ll receive a final e-mail about 20 minutes later to go pick up the certs.&lt;/p&gt;
&lt;p&gt;This step took me 1.5 business days including waiting time.&lt;/p&gt;
&lt;h4&gt;Step Four: Pick up your key&lt;/h4&gt;
&lt;p&gt;On the same computer you started the operation on, and same browser, click on the link provided in the e-mail Comodo sent when the key was ready.&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="KSoftwarePickup" border="0" alt="KSoftwarePickup" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/KSoftwarePickup.png" width="685" height="531"&gt; &lt;/p&gt;
&lt;p&gt;On this page, you’ll again receive a notification about a certificate operation. That’s fine. At this point you now have the key stored in your browser certificate system.&lt;/p&gt;
&lt;h4&gt;Step Five: Export your key&lt;/h4&gt;
&lt;p&gt;This step is for Internet Explorer users. If you’re using Mozilla Firefox, &lt;a href="http://blog.ksoftware.net/2009/10/exporting-your-code-signing-certificate-to-a-pfx-file-from-firefox/"&gt;here’s some other instructions&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In IE now, click Tools | Internet Options. Click on the Content tab, and then the Certificates button:&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="InternetOptions" border="0" alt="InternetOptions" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/InternetOptions.png" width="455" height="573"&gt; &lt;/p&gt;
&lt;p&gt;Within the Personal (first) tab of the Certificates dialog, click on the new certificate issued by UTN-USERFirst-Object (this is one of the many Comodo level 2 CAs in the Windows root CA program):&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="Certificates" border="0" alt="Certificates" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/Certificates.png" width="551" height="509"&gt; &lt;/p&gt;
&lt;p&gt;Then click ‘Export…’. In the Certificate Export Wizard, read the useless text and click Next.&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="ExportWizardStart" border="0" alt="ExportWizardStart" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/ExportWizardStart.png" width="545" height="498"&gt; &lt;/p&gt;
&lt;p&gt;Select the option ‘Yes’ for exporting the private key along with the certificate.&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="ExportPrivateKeyPlease" border="0" alt="ExportPrivateKeyPlease" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/ExportPrivateKeyPlease.png" width="545" height="498"&gt; &lt;/p&gt;
&lt;p&gt;Next, you pick the file format. Only PFX/PKCS #12 should be available. I checked both ‘Include all certificates in the certification path if possible’ and ‘Export all extended properties’, though to be honest I haven’t a clue whether this is needed.&lt;/p&gt;
&lt;p&gt;I wouldn’t recommend clicking the delete private key option, I like knowing that on this particular machine I can still re-export the cert as needed in the future.&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="ExportTypeAndOptions" border="0" alt="ExportTypeAndOptions" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/ExportTypeAndOptions.png" width="545" height="498"&gt; &lt;/p&gt;
&lt;p&gt;Now, come up with a password to protect the file. You will need to use this password when using tools such as SignTool.exe, or setting up an automated code signing process of your own.&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="ExportKeyPasswordDialog" border="0" alt="ExportKeyPasswordDialog" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/ExportKeyPasswordDialog.png" width="545" height="498"&gt; &lt;/p&gt;
&lt;p&gt;Finally, pick where you want your .PFX file stored.&lt;/p&gt;
&lt;h4&gt;Step Six: Protect your key&lt;/h4&gt;
&lt;p&gt;Although code signing certificates have a mechanism through the CA to revoke keys, &lt;strong&gt;you do not ever want to have to do this.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Take precautions. It is your duty to protect your key. Many people find ways to store this information through smart card or other physical security mechanisms.&lt;/p&gt;
&lt;p&gt;As an individual, it’s pretty easy for me: Only I know the password, I have the file securely stored, and I don’t need to worry about sharing it with others.&lt;/p&gt;
&lt;p&gt;Business entities and groups will have more trouble coming up with the appropriate processes and systems for this. Ideally some sort of automated system should be used to perform the code signing, with alternative authentication; providing the key file and a password is not the best method.&lt;/p&gt;
&lt;h4&gt;Import Wizard Note&lt;/h4&gt;
&lt;p&gt;To manually sign on another machine, you’ll want to double-click on the .pfx file. An import wizard will open up that will allow you to install the cert and private key on your machine.&lt;/p&gt;
&lt;p&gt;For manual signing you typically select from your private certificate store on the machine, instead of using the .pfx file directly. For automated signing, you probably will use the .pfx.&lt;/p&gt;
&lt;h2&gt;How to sign your apps and libraries&lt;/h2&gt;
&lt;p&gt;Now the fun part. Armed with your new code signing certificate and private key, you’re ready to go SignTool.exe’ing.&lt;/p&gt;
&lt;p&gt;SignTool is included with the Windows 6.0 and 7.0A SDKs, and you’ll have it in your path if you have Visual Studio 2008 or 2010 installed and are using the associated Visual Studio Command Prompt.&lt;/p&gt;
&lt;p&gt;You can create scripts to sign quickly using command line parameters, or even write .NET apps using types in the System.Security.Cryptography.X509Certificates namespace.&lt;/p&gt;
&lt;p&gt;It’s easiest to get started by manually signing, using the Digital Signature Wizard. From a Visual Studio 2008 Command Prompt, for instance, run:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;signtool.exe signwizard&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This will popup the wizard that will walk you through.&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="Digital Signature Wizard" border="0" alt="Digital Signature Wizard" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/DigitalSignatureWizard.png" width="545" height="431"&gt;&lt;/p&gt;
&lt;p&gt;Select the file you want to sign:&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="Digital Signature Wizard (3)" border="0" alt="Digital Signature Wizard (3)" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/DigitalSignatureWizard3.png" width="545" height="431"&gt;&lt;/p&gt;
&lt;p&gt;The ‘Typical’ option will let you pick from the certificate store on your machine. You don’t actually select the previously-exported .PFX file when manually signing.&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="Digital Signature Wizard (4)" border="0" alt="Digital Signature Wizard (4)" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/DigitalSignatureWizard4.png" width="545" height="431"&gt;&lt;/p&gt;
&lt;p&gt;Here I click ‘Select from Store…’:&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="Digital Signature Wizard (5)" border="0" alt="Digital Signature Wizard (5)" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/DigitalSignatureWizard5.png" width="545" height="431"&gt;&lt;/p&gt;
&lt;p&gt;Which pops up a Windows dialog listing available code signing certificates.&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="SelectACertificate" border="0" alt="SelectACertificate" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/SelectACertificate.png" width="471" height="266"&gt; &lt;/p&gt;
&lt;p&gt;Here I can verify the goods:&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="Digital Signature Wizard (6)" border="0" alt="Digital Signature Wizard (6)" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/DigitalSignatureWizard6.png" width="545" height="431"&gt;&lt;/p&gt;
&lt;p&gt;On the next wizard page, you can optionally offer more information here as appropriate.&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="Digital Signature Wizard (7)" border="0" alt="Digital Signature Wizard (7)" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/DigitalSignatureWizard7.png" width="545" height="431"&gt; &lt;/p&gt;
&lt;p&gt;The last optional, but highly recommended step, is to use the timestamp server provided by the CA. This is a service that authenticates when the data (your app) was signed.&lt;/p&gt;
&lt;p&gt;This means that your app will continue to be valid, even after the certificate expires, as long as the cert is not revoked.&lt;/p&gt;
&lt;p&gt;For Comodo, their timestamping server is: &lt;a title="http://timestamp.comodoca.com/authenticode" href="http://timestamp.comodoca.com/authenticode"&gt;http://timestamp.comodoca.com/authenticode&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="Digital Signature Wizard (8)" border="0" alt="Digital Signature Wizard (8)" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/DigitalSignatureWizard8.png" width="545" height="431"&gt;&lt;/p&gt;
&lt;p&gt;Click Next and you’ll see the summary of what signing is to take place.&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="Digital Signature Wizard (9)" border="0" alt="Digital Signature Wizard (9)" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/DigitalSignatureWizard9.png" width="545" height="431"&gt;&lt;/p&gt;
&lt;p&gt;After clicking Finish, the dialog will go away, and pretty soon you should receive a success/failure message.&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="Digital Signature Wizard (10)" border="0" alt="Digital Signature Wizard (10)" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/DigitalSignatureWizard10.png" width="440" height="203"&gt;&lt;/p&gt;
&lt;h4&gt;CodeSign.exe Parameters&lt;/h4&gt;
&lt;p&gt;You can also code sign in scripts and the command line using arguments. For instance, here’s a sample made-up signing argument list. You can specify any number of files to sign as the final arguments.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;signtool.exe sign /f PathToKeysAndCert.Pfx /p “MySuperSecretPasswordToUseThePfxFile” /v /t http://timestamp.comodoca.com/authenticode “C:\MyFileToSign.exe”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For all the parameters, type ‘signtool sign /?’&lt;/p&gt;
&lt;h4&gt;That’s it!&lt;/h4&gt;
&lt;p&gt;You can use a variety of tools to check that the signing works fine, including just examining the file in the Windows explorer.&lt;/p&gt;
&lt;p&gt;Authenticode-signed executables, MSIs and libraries will have a ‘Digital Signatures’ tab in the properties window (though not irregular file types, such as Adobe AIR files).&lt;/p&gt;
&lt;p&gt;Here’s the .exe I signed:&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="FileProperties" border="0" alt="FileProperties" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/FileProperties.png" width="451" height="565"&gt;    &lt;/p&gt;
&lt;p&gt;And that’s it! &lt;strong&gt;Ship it!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Your customers will have that extra level of confidence when using your application. At some point, the more more professional software developers and software companies code sign, the more likely customers will be able to make proper security decisions about their computers… and the real benefit of the crisp user account control user interface comes to light.&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="VerifiedPublisher" border="0" alt="VerifiedPublisher" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/VerifiedPublisher.png" width="498" height="295"&gt; &lt;/p&gt;
&lt;p&gt;Hope this helps. Let me know how your experiences with code signing go.&lt;/p&gt;



Share and Enjoy:


	&lt;a rel="nofollow" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;url=http%3A%2F%2Fwww.jeff.wilcox.name%2F2010%2F02%2Fcodesigning101%2F&amp;amp;title=Getting%20started%20with%20code%20signing%20for%20under%20%24100" title="Live"&gt;&lt;img src="http://www.jeff.wilcox.name/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live"&gt;&lt;/a&gt;
	&lt;a rel="nofollow" href="http://digg.com/submit?phase=2&amp;amp;url=http%3A%2F%2Fwww.jeff.wilcox.name%2F2010%2F02%2Fcodesigning101%2F&amp;amp;title=Getting%20started%20with%20code%20signing%20for%20under%20%24100&amp;amp;bodytext=I%20recently%20documented%20the%20steps%20to%20%22code%20signing%20101%22%3A%20acquiring%20a%20trusted%20cert%2Fkey%20pair%2C%20the%20process%2C%20and%20then%20signing%20an%20app." title="Digg"&gt;&lt;img src="http://www.jeff.wilcox.name/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg"&gt;&lt;/a&gt;
	&lt;a rel="nofollow" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fwww.jeff.wilcox.name%2F2010%2F02%2Fcodesigning101%2F&amp;amp;title=Getting%20started%20with%20code%20signing%20for%20under%20%24100" title="DotNetKicks"&gt;&lt;img src="http://www.jeff.wilcox.name/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks"&gt;&lt;/a&gt;
	&lt;a rel="nofollow" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.jeff.wilcox.name%2F2010%2F02%2Fcodesigning101%2F" title="Technorati"&gt;&lt;img src="http://www.jeff.wilcox.name/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati"&gt;&lt;/a&gt;
	&lt;a rel="nofollow" href="http://delicious.com/post?url=http%3A%2F%2Fwww.jeff.wilcox.name%2F2010%2F02%2Fcodesigning101%2F&amp;amp;title=Getting%20started%20with%20code%20signing%20for%20under%20%24100&amp;amp;notes=I%20recently%20documented%20the%20steps%20to%20%22code%20signing%20101%22%3A%20acquiring%20a%20trusted%20cert%2Fkey%20pair%2C%20the%20process%2C%20and%20then%20signing%20an%20app." title="del.icio.us"&gt;&lt;img src="http://www.jeff.wilcox.name/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us"&gt;&lt;/a&gt;
	&lt;a rel="nofollow" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.jeff.wilcox.name%2F2010%2F02%2Fcodesigning101%2F&amp;amp;t=Getting%20started%20with%20code%20signing%20for%20under%20%24100" title="Facebook"&gt;&lt;img src="http://www.jeff.wilcox.name/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook"&gt;&lt;/a&gt;
	&lt;a rel="nofollow" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.jeff.wilcox.name%2F2010%2F02%2Fcodesigning101%2F&amp;amp;partner=sociable" title="Print"&gt;&lt;img src="http://www.jeff.wilcox.name/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print"&gt;&lt;/a&gt;
	&lt;a rel="nofollow" href="http://www.google.com/bookmarks/mark?op=edit&amp;amp;bkmk=http%3A%2F%2Fwww.jeff.wilcox.name%2F2010%2F02%2Fcodesigning101%2F&amp;amp;title=Getting%20started%20with%20code%20signing%20for%20under%20%24100&amp;amp;annotation=I%20recently%20documented%20the%20steps%20to%20%22code%20signing%20101%22%3A%20acquiring%20a%20trusted%20cert%2Fkey%20pair%2C%20the%20process%2C%20and%20then%20signing%20an%20app." title="Google Bookmarks"&gt;&lt;img src="http://www.jeff.wilcox.name/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks"&gt;&lt;/a&gt;


&lt;br&gt;&lt;br&gt;</content><author><name>Jeff Wilcox</name></author><gr:likingUser>14498379568402370676</gr:likingUser><gr:likingUser>14796092263408986158</gr:likingUser><gr:likingUser>09149511234336644264</gr:likingUser><gr:likingUser>16642592300015416503</gr:likingUser><gr:likingUser>05614508396400022420</gr:likingUser><gr:likingUser>15595427887981777413</gr:likingUser><gr:likingUser>11870941234204551385</gr:likingUser><gr:likingUser>12674322754534694019</gr:likingUser><source gr:stream-id="feed/http://feeds.feedburner.com/JeffWilcox"><id>tag:google.com,2005:reader/feed/http://feeds.feedburner.com/JeffWilcox</id><title type="html">Jeff Wilcox</title><link rel="alternate" href="http://www.jeff.wilcox.name" type="text/html" /></source><feedburner:origLink>http://www.jeff.wilcox.name/2010/02/codesigning101/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1266949637260"><id gr:original-id="http://www.lightroomkillertips.com/?p=2039">tag:google.com,2005:reader/item/89d4eae5049a3853</id><category term="Presets" /><title type="html">Preset – Warm and Fuzzy Effect</title><published>2010-02-23T12:56:25Z</published><updated>2010-02-23T12:56:25Z</updated><link rel="alternate" href="http://feeds.ericappel.net/~r/EricAppelsGoogleReaderSharedItems/~3/MIsKht3mqqU/" type="text/html" /><link rel="enclosure" href="http://feedproxy.google.com/~r/AdobeLightroomKillerTips/~5/0T1iK5B91LE/mattswarmfuzzy.zip" type="application/zip" length="841" /><media:group><media:content url="http://feedproxy.google.com/~r/AdobeLightroomKillerTips/~5/0T1iK5B91LE/mattswarmfuzzy.zip" /></media:group><content xml:base="http://lightroomkillertips.com/" type="html">&lt;p&gt;&lt;img src="http://lightroomkillertips.com/files/2007/10/preset1.jpg"&gt;Hey folks. I’ll be heading out to teach at &lt;a href="http://www.gulfphotoplus.com/"&gt;Gulf Photo Plus in Dubai&lt;/a&gt; later this week (by the way, if you have any “must shoot” places out there please let me know).&lt;/p&gt;
&lt;p&gt;Anyway, I wanted to make sure I got another preset in before I left. I called this one “Warm and Fuzzy” because that’s what it kinda looks like. Its got a warming quality to it as well as a fuzzy/soft look (from negative clarity). I’ve tweaked the Exposure setting up a bit as a default, because a glowing feel is part of the effect. If you don’t like it (or want more of it depending on your photo) then remember to go in and change the Exposure settings to your liking. Let me know what you think.&lt;/p&gt;
&lt;p&gt;To install:&lt;br&gt;
1) Unzip the preset zip file on to your desktop&lt;br&gt;
2) Go to the Develop module. NOTE: YOU MUST BE THE DEVELOP MODULE&lt;br&gt;
3) Go to the Presets panel on the left. Right click anywhere in it and choose Import.&lt;br&gt;
4) Select the .lrtemplate files you unzipped in Step 1 and click Import NOTE: DO NOT IMPORT THE ZIP FILE&lt;/p&gt;
&lt;p&gt;• &lt;a href="http://lightroomkillertips.com/files/2010/02/mattswarmfuzzy.zip"&gt;Click here to download the preset.&lt;/a&gt;&lt;br&gt;
• &lt;a href="http://lightroomkillertips.com/files/2010/02/warmfuzzypreview.jpg"&gt;Click here to see a sample of the preset.&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AdobeLightroomKillerTips?a=K1f9UwORwxM:__CxppRc-1A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdobeLightroomKillerTips?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AdobeLightroomKillerTips?a=K1f9UwORwxM:__CxppRc-1A:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdobeLightroomKillerTips?i=K1f9UwORwxM:__CxppRc-1A:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AdobeLightroomKillerTips/~4/K1f9UwORwxM" height="1" width="1"&gt;</content><author><name>jgilbert@photoshopuser.com (Matt Kloskowski)</name></author><gr:likingUser>07085696622639249837</gr:likingUser><gr:likingUser>09098942182171249632</gr:likingUser><gr:likingUser>08438291842442841082</gr:likingUser><gr:likingUser>08827844011724425098</gr:likingUser><gr:likingUser>01049419666065144838</gr:likingUser><gr:likingUser>18228433417329555191</gr:likingUser><gr:likingUser>11191453074849716869</gr:likingUser><gr:likingUser>18392451672690036780</gr:likingUser><gr:likingUser>02623567576090287764</gr:likingUser><gr:likingUser>16319990666168826778</gr:likingUser><gr:likingUser>05072512087183844204</gr:likingUser><source gr:stream-id="feed/http://feeds.feedburner.com/adobelightroomkillertips"><id>tag:google.com,2005:reader/feed/http://feeds.feedburner.com/adobelightroomkillertips</id><title type="html">Adobe Photoshop Lightroom Killer Tips</title><link rel="alternate" href="http://lightroomkillertips.com" type="text/html" /></source><feedburner:origLink>http://feedproxy.google.com/~r/AdobeLightroomKillerTips/~3/K1f9UwORwxM/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1266047074805"><id gr:original-id="http://www.codinghorror.com/blog/2010/01/cultivate-teams-not-ideas.html">tag:google.com,2005:reader/item/49dee2137579cfab</id><title type="html">Cultivate Teams, Not Ideas</title><published>2010-01-25T20:00:00Z</published><updated>2010-01-25T20:00:00Z</updated><link rel="alternate" href="http://feeds.ericappel.net/~r/EricAppelsGoogleReaderSharedItems/~3/94JeYLSNI2k/cultivate-teams-not-ideas.html" type="text/html" /><summary xml:base="http://www.codinghorror.com/blog/" type="html">&lt;p&gt;	

    
How much is a good idea worth? According to Derek Sivers, &lt;a href="http://sivers.org/multiply"&gt;not much&lt;/a&gt;:
&lt;p&gt;
&lt;blockquote&gt;
It&amp;#39;s so funny when I hear people being so protective of ideas. (People who want me to sign an NDA to tell me the simplest idea.) To me, &lt;b&gt;ideas are worth nothing unless executed&lt;/b&gt;. They are just a multiplier. Execution is worth millions.
&lt;p&gt;
To make a business, you need to multiply the two. The most brilliant idea, with no execution, is worth $20. The most brilliant idea takes great execution to be worth $20,000,000. That&amp;#39;s why I don&amp;#39;t want to hear people&amp;#39;s ideas. I&amp;#39;m not interested until I see their execution.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;
I was reminded of Mr. Sivers article when &lt;a href="http://groups.google.com/group/barcampla/browse_thread/thread/4b4091eaf6fb6743?pli=1"&gt;this email&lt;/a&gt; made the rounds earlier this month:
&lt;p&gt;
&lt;blockquote&gt;
I feel that this story is important to tell you because Kickstarter.com copied us.  I tried for 4 years to get people to take Fundable seriously, traveling across the country, even giving a presentation to FBFund, Facebook&amp;#39;s fund to stimulate development of new apps.  It was a series of rejections for 4 years.  I really felt that I presented myself professionally in every business situation and I dressed appropriately and practiced my presentations.  That was not 
enough. The idiots wanted us to show them charts with massive profits and widespread public acceptance so that they didn&amp;#39;t have to take any risks. 
&lt;p&gt;
All it took was 5 super-connected people at Kickstarter (especially Andy Baio) to take a concept we worked hard to refine, tweak it with Amazon Payments, and then take credit.  You could say that that&amp;#39;s capitalism, but I still think you should acknowledge people that you take inspiration from.  I do.  I owe the concept of Fundable to many things, including living in cooperative student housing and studying Political Science at Michigan.  Rational choice theory, tragedy of the commons, and collective action are a few political science concepts that are relevant to Fundable. 
&lt;p&gt;
Yes, Fundable had some technical and customer service problems. That&amp;#39;s because we had no money to revise it.  I had plans to scrap the entire CMS and start from scratch with a new design.  We were just so burned out that motivation was hard to come by.  What was the point if we weren&amp;#39;t making enough money to live on after 4 years? 
&lt;/p&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;
The disconnect between idea and execution here is so vast it&amp;#39;s hard to understand why the author himself can&amp;#39;t see it.
&lt;p&gt;
I wouldn&amp;#39;t call ideas &lt;i&gt;worthless&lt;/i&gt;, per se, but it&amp;#39;s clear that ideas alone are a hollow sort of currency. Success is rarely determined by the quality of your ideas. But it &lt;i&gt;is&lt;/i&gt; frequently determined by the quality of your execution. So instead of worrying about whether the Next Big Idea you&amp;#39;re all working on is sufficiently brilliant, &lt;b&gt;worry about how well you&amp;#39;re executing.&lt;/b&gt;
&lt;p&gt;
The criticism that all you need is &amp;quot;super-connected people&amp;quot; to be successful was also leveled at Stack Overflow. In an email to me last year, Andy Baio -- ironically, the very person being cited in the email -- said:
&lt;p&gt;
&lt;blockquote&gt;
I very much enjoyed &lt;a href="http://www.codinghorror.com/blog/archives/001284.html"&gt;the Hacker News conversation about cloning the site in a weekend&lt;/a&gt;.  My favorite comments were from the people that believe Stack Overflow is only successful because of the Cult of Atwood &amp;amp; Spolsky. Amazing.
&lt;/blockquote&gt;
&lt;p&gt;
I don&amp;#39;t care how internet famous you are; &lt;i&gt;nobody&lt;/i&gt; gets a pass on execution. Sure, you may have a few more eyeballs at the beginning, but if you don&amp;#39;t build something useful, the world will eventually just shrug its collective shoulders and move along to more useful things. 
&lt;p&gt;
One of my all time favorite software quotes is &lt;a href="http://daringfireball.net/2007/08/c4_1_in_a_nut"&gt;from Wil Shipley&lt;/a&gt;:
&lt;p&gt;
&lt;blockquote&gt;
This is all your app is: a collection of tiny details.
&lt;/blockquote&gt;
&lt;p&gt;
&lt;b&gt;In software development, execution is staying on top of all the tiny details that make up your app.&lt;/b&gt; If you&amp;#39;re not constantly obsessing over every aspect of your application, relentlessly polishing and improving every little part of it -- no matter how trivial -- you&amp;#39;re not executing. At least, not well.
&lt;p&gt;
And unless you work alone, which is a rarity these days, your ability to stay on top of the collection of tiny details that makes up your app will hinge entirely on whether or not you can build a great team. They are the building block of any successful endeavor. This talk by &lt;a href="http://en.wikipedia.org/wiki/Edwin_Catmull"&gt;Ed Catmull&lt;/a&gt; is almost exclusively focused on how Pixar learned, through trial and error, to build teams that can &lt;i&gt;execute&lt;/i&gt;.
&lt;p&gt;
&lt;a href="http://www.youtube.com/watch?v=k2h2lvhzMDc"&gt;&lt;img alt="Ed Catmull talk at Stanford" border="0" height="382" src="http://codinghorror.typepad.com/.a/6a0120a85dcdae970b0120a86e262f970b-pi" width="500"&gt;&lt;/a&gt;
&lt;p&gt;
It&amp;#39;s a fascinating talk, full of some great insights, and you should &lt;a href="http://www.youtube.com/watch?v=k2h2lvhzMDc"&gt;watch the whole thing&lt;/a&gt;. In it, Mr. Catmull amplifies Mr. Sivers&amp;#39; sentiment:
&lt;p&gt;
&lt;blockquote&gt;
If you give a good idea to a mediocre group, they&amp;#39;ll screw it up. &lt;b&gt;If you give a mediocre idea to a good group, they&amp;#39;ll fix it.&lt;/b&gt; Or they&amp;#39;ll throw it away and come up with something else.
&lt;/blockquote&gt;
&lt;p&gt;
Execution isn&amp;#39;t merely a multiplier. It&amp;#39;s far more powerful. How your team executes has the power to transform your idea from gold into lead, or from lead into gold. That&amp;#39;s why, when building Stack Overflow, I was so fortunate to not only &lt;a href="http://www.codinghorror.com/blog/archives/001101.html"&gt;work with Joel Spolsky&lt;/a&gt;, but also to cherry-pick two of the best developers I had ever worked with in my previous jobs and drag them along with me. Kicking and screaming if necessary.
&lt;p&gt;
If I had to point to &lt;b&gt;the one thing that made our project successful&lt;/b&gt;, it was not the idea behind it, our internet fame, the tools we chose, or the funding we had (precious little, for the record).
&lt;p&gt;
It was our team.
&lt;p&gt;
The value of my advice is debatable. But you would do well to heed the advice of Mr. Sivers and Mr. Catmull. If you want to be successful, stop worrying about the great ideas, and concentrate on cultivating great teams.
  
 
&lt;p&gt;
&lt;table&gt; 
&lt;tr&gt;&lt;td&gt; 
[advertisement] &lt;a href="http://www.atlassian.com/software/jira/?s_kwcid=codinghorror&amp;amp;utm_source=codinghorror&amp;amp;utm_medium=referral&amp;amp;utm_campaign=footer_link&amp;amp;utm_content=jira4_from_10" rel="nofollow"&gt;JIRA 4&lt;/a&gt; - Simplify issue tracking for everyone involved. &lt;a href="http://www.atlassian.com/software/jira/?s_kwcid=codinghorror&amp;amp;utm_source=codinghorror&amp;amp;utm_medium=referral&amp;amp;utm_campaign=footer_link&amp;amp;utm_content=jira4_from_10" rel="nofollow"&gt;Get started&lt;/a&gt; from $10 for 10 users.
&lt;/td&gt;&lt;/tr&gt; 
&lt;/table&gt;
&lt;p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</summary><author gr:unknown-author="true"><name>(author unknown)</name></author><gr:likingUser>04899013159235253315</gr:likingUser><gr:likingUser>17935362554208829901</gr:likingUser><gr:likingUser>02835844759991984192</gr:likingUser><gr:likingUser>03225309278272315700</gr:likingUser><gr:likingUser>00676917858212023598</gr:likingUser><gr:likingUser>05329517304802915906</gr:likingUser><gr:likingUser>12735437351274195657</gr:likingUser><gr:likingUser>00501227080015666174</gr:likingUser><gr:likingUser>12912579156415481593</gr:likingUser><gr:likingUser>14000097621646410948</gr:likingUser><gr:likingUser>00576954976885219067</gr:likingUser><gr:likingUser>03125077878995903760</gr:likingUser><gr:likingUser>18189921603246437019</gr:likingUser><gr:likingUser>03545964666694920486</gr:likingUser><gr:likingUser>18434435393760545518</gr:likingUser><gr:likingUser>10069178430339300968</gr:likingUser><gr:likingUser>12038388690633680328</gr:likingUser><gr:likingUser>08367308299952869034</gr:likingUser><gr:likingUser>11261385487187159348</gr:likingUser><gr:likingUser>12384537324804724659</gr:likingUser><gr:likingUser>10219827383817904845</gr:likingUser><gr:likingUser>09776117602384378645</gr:likingUser><gr:likingUser>04901342132103560357</gr:likingUser><gr:likingUser>06364656128500501353</gr:likingUser><gr:likingUser>14947185478219149596</gr:likingUser><gr:likingUser>02779091290545059499</gr:likingUser><source gr:stream-id="feed/http://www.codinghorror.com/blog/index.xml"><id>tag:google.com,2005:reader/feed/http://www.codinghorror.com/blog/index.xml</id><title type="html">Coding Horror</title><link rel="alternate" href="http://www.codinghorror.com/blog/" type="text/html" /></source><feedburner:origLink>http://www.codinghorror.com/blog/2010/01/cultivate-teams-not-ideas.html</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1265928900978"><id gr:original-id="http://www.smashingmagazine.com/?p=30334">tag:google.com,2005:reader/item/4a3ce6403c8ea22a</id><category term="Design" scheme="http://www.smashingmagazine.com" /><category term="ie" scheme="http://www.smashingmagazine.com" /><category term="ie6" scheme="http://www.smashingmagazine.com" /><category term="internet explorer" scheme="http://www.smashingmagazine.com" /><title type="html">The Life, Times (and Death?) of Internet Explorer 6 (Comic Strip)</title><published>2010-02-11T21:39:04Z</published><updated>2010-02-11T21:59:33Z</updated><link rel="alternate" href="http://feeds.ericappel.net/~r/EricAppelsGoogleReaderSharedItems/~3/LHYL-5U5eko/" type="text/html" /><link rel="replies" href="http://www.smashingmagazine.com/2010/02/11/the-life-times-and-death-of-internet-explorer-6-comic-strip/#comments" type="text/html" /><link rel="replies" href="http://www.smashingmagazine.com/2010/02/11/the-life-times-and-death-of-internet-explorer-6-comic-strip/feed/atom/" type="application/atom+xml" /><content xml:base="http://www.smashingmagazine.com/2010/02/11/the-life-times-and-death-of-internet-explorer-6-comic-strip/" xml:lang="en" type="html">&lt;table width="650"&gt;&lt;tr&gt;&lt;td width="650"&gt;&lt;div style="width:650px"&gt; &lt;img src="http://creatives.commindo-media.de/static/smashing-magazine-advertisement.gif" alt="Smashing-magazine-advertisement in The Life, Times (and Death?) of Internet Explorer 6 (Comic Strip)" border="0"&gt;&lt;br&gt; &lt;a href="http://creatives.commindo-media.de/www/delivery/ck.php?zoneid=56"&gt;&lt;img src="http://creatives.commindo-media.de/www/delivery/avw.php?zoneid=56" border="0" alt=" in The Life, Times (and Death?) of Internet Explorer 6 (Comic Strip)"&gt;&lt;/a&gt; &lt;a href="http://creatives.commindo-media.de/www/delivery/ck.php?zoneid=63"&gt;&lt;img src="http://creatives.commindo-media.de/www/delivery/avw.php?zoneid=63" border="0" alt=" in The Life, Times (and Death?) of Internet Explorer 6 (Comic Strip)"&gt;&lt;/a&gt; &lt;a href="http://creatives.commindo-media.de/www/delivery/ck.php?zoneid=64"&gt;&lt;img src="http://creatives.commindo-media.de/www/delivery/avw.php?zoneid=64" border="0" alt=" in The Life, Times (and Death?) of Internet Explorer 6 (Comic Strip)"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;In recent years Internet Explorer 6 has become the browser web designers love to hate. Security issues, JavaScript errors and inexplicable CSS rendering quirks have made it the brunt of many jokes. With IE6 in its twilight and big companies like Google &lt;a href="http://googleenterprise.blogspot.com/2010/01/modern-browsers-for-modern-applications.html"&gt;dropping support&lt;/a&gt;, it seems like a good time to take a fond look back at our old foe. In this post we’re looking at what Internet Explorer 6 used to be and why its image changed over the years. You can also &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/02/ie6-comic-strip.jpg"&gt;see the comic in a larger version&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Do we need to review our projects in Internet Explorer 6? Can we stop supporting IE6? If not, how do we handle those users who are still using IE6? And if yes, how can we prompt IE6 users to upgrade? Or how do we convince those who don’t allow their employees to get rid of the legacy browser to upgrade? What do you think? We are looking forward to your opinions in the comments to this post!&lt;/p&gt;&lt;p&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/02/ie6-comic-strip.jpg"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/02/ie6_one.jpg" width="600" height="800" alt="Ie6 One in The Life, Times (and Death?) of Internet Explorer 6 (Comic Strip)"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/02/ie6-comic-strip.jpg"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/02/ie6_two.jpg" width="600" height="908" alt="Ie6 Two in The Life, Times (and Death?) of Internet Explorer 6 (Comic Strip)"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/02/ie6-comic-strip.jpg"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/02/ie6_three.jpg" width="600" height="664" alt="Ie6 Three in The Life, Times (and Death?) of Internet Explorer 6 (Comic Strip)"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/02/ie6-comic-strip.jpg"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/02/ie6_four.jpg" width="600" height="811" alt="Ie6 Four in The Life, Times (and Death?) of Internet Explorer 6 (Comic Strip)"&gt;&lt;/a&gt;&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&lt;small&gt;© Brad Colbow for &lt;a href="http://www.smashingmagazine.com"&gt;Smashing Magazine&lt;/a&gt;, 2010. | &lt;a href="http://www.smashingmagazine.com/2010/02/11/the-life-times-and-death-of-internet-explorer-6-comic-strip/"&gt;Permalink&lt;/a&gt; | &lt;a href="http://www.smashingmagazine.com/2010/02/11/the-life-times-and-death-of-internet-explorer-6-comic-strip/#comments"&gt;275 comments&lt;/a&gt; | &lt;a title="Bookmark in del.icio.us" href="http://del.icio.us/post?url=http://www.smashingmagazine.com/2010/02/11/the-life-times-and-death-of-internet-explorer-6-comic-strip/&amp;amp;title=The%20Life,%20Times%20(and%20Death?)%20of%20Internet%20Explorer%206%20(Comic%20Strip)"&gt;Add to del.icio.us&lt;/a&gt; | &lt;a title="Bookmark in Digg" href="http://digg.com/submit?phase=2&amp;amp;url=http://www.smashingmagazine.com/2010/02/11/the-life-times-and-death-of-internet-explorer-6-comic-strip/"&gt;Digg this&lt;/a&gt; | &lt;a title="Stumble on StumbleUpon" href="http://www.stumbleupon.com/submit?url=http://www.smashingmagazine.com/2010/02/11/the-life-times-and-death-of-internet-explorer-6-comic-strip/"&gt;Stumble on StumbleUpon!&lt;/a&gt; | &lt;a title="Tweet us!" href="http://twitter.com/home?status=@tweetmeme%20@smashingmag%20Reading%20&amp;#39;The%20Life,%20Times%20(and%20Death?)%20of%20Internet%20Explorer%206%20(Comic%20Strip)&amp;#39;%20http://www.smashingmagazine.com/2010/02/11/the-life-times-and-death-of-internet-explorer-6-comic-strip/"&gt;Tweet it!&lt;/a&gt; | &lt;a title="Bookmark in Reddit" href="http://reddit.com/submit?url=http://www.smashingmagazine.com/2010/02/11/the-life-times-and-death-of-internet-explorer-6-comic-strip/"&gt;Submit to Reddit&lt;/a&gt; | &lt;a href="http://forum.smashingmagazine.com/"&gt;Forum Smashing Magazine&lt;/a&gt;&lt;br&gt; Post tags: &lt;a href="http://www.smashingmagazine.com/tag/ie/" rel="tag"&gt;ie&lt;/a&gt;, &lt;a href="http://www.smashingmagazine.com/tag/ie6/" rel="tag"&gt;ie6&lt;/a&gt;, &lt;a href="http://www.smashingmagazine.com/tag/internet-explorer/" rel="tag"&gt;internet explorer&lt;/a&gt;&lt;br&gt; &lt;/small&gt;&lt;/p&gt;</content><author><name>Brad Colbow</name></author><gr:likingUser>08660255080411867307</gr:likingUser><gr:likingUser>13345519443336942279</gr:likingUser><gr:likingUser>05149236681907135124</gr:likingUser><gr:likingUser>01631561733662965249</gr:likingUser><gr:likingUser>02340456458655951748</gr:likingUser><gr:likingUser>05954924196419289162</gr:likingUser><gr:likingUser>01910014005524009734</gr:likingUser><gr:likingUser>04943395934687663651</gr:likingUser><gr:likingUser>07832509504498904365</gr:likingUser><gr:likingUser>16384794715979677487</gr:likingUser><gr:likingUser>08714242421528437948</gr:likingUser><gr:likingUser>05318289176841749369</gr:likingUser><gr:likingUser>07451657441792601962</gr:likingUser><gr:likingUser>15219555450801861135</gr:likingUser><gr:likingUser>09475345442561712663</gr:likingUser><gr:likingUser>00605849846618369059</gr:likingUser><gr:likingUser>13398010293373355654</gr:likingUser><gr:likingUser>04166135756348139044</gr:likingUser><gr:likingUser>01329134616336071024</gr:likingUser><gr:likingUser>09984963959699096517</gr:likingUser><gr:likingUser>07313925046776300908</gr:likingUser><gr:likingUser>13025210890114855702</gr:likingUser><gr:likingUser>07184912362295067259</gr:likingUser><gr:likingUser>03246249179893254717</gr:likingUser><gr:likingUser>17958476922914891438</gr:likingUser><gr:likingUser>17509793385755911183</gr:likingUser><gr:likingUser>15300015835143915691</gr:likingUser><gr:likingUser>02848039997193907980</gr:likingUser><gr:likingUser>07565800530710360205</gr:likingUser><gr:likingUser>02159724386855737619</gr:likingUser><gr:likingUser>15274297538600797713</gr:likingUser><gr:likingUser>07446919639257805309</gr:likingUser><gr:likingUser>05614769034359825682</gr:likingUser><gr:likingUser>10620724541932277191</gr:likingUser><gr:likingUser>02129466237718027693</gr:likingUser><gr:likingUser>01735640199225728661</gr:likingUser><gr:likingUser>05470724167621193967</gr:likingUser><gr:likingUser>02241891462935511918</gr:likingUser><gr:likingUser>15506535027894697035</gr:likingUser><gr:likingUser>14980643366774258882</gr:likingUser><gr:likingUser>12114555731183460161</gr:likingUser><gr:likingUser>06264467227526473803</gr:likingUser><source gr:stream-id="feed/http://www.smashingmagazine.com/feed/"><id>tag:google.com,2005:reader/feed/http://www.smashingmagazine.com/feed/</id><title type="html">Smashing Magazine Feed</title><link rel="alternate" href="http://www.smashingmagazine.com/" type="text/html" /></source><feedburner:origLink>http://www.smashingmagazine.com/2010/02/11/the-life-times-and-death-of-internet-explorer-6-comic-strip/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1265880238778"><id gr:original-id="91d46819-8472-40ad-a661-2c78acb4018c:9961783">tag:google.com,2005:reader/item/0b51e931ad49bbab</id><title type="html">Visual Studio 2010 clean application level web.config</title><published>2010-02-11T07:19:03Z</published><updated>2010-02-11T07:19:03Z</updated><link rel="alternate" href="http://feeds.ericappel.net/~r/EricAppelsGoogleReaderSharedItems/~3/UpL_HjlzKIQ/visual-studio-2010-clean-application-level-web-config.aspx" type="text/html" /><summary xml:base="http://blogs.msdn.com/webdevtools/default.aspx" type="html">&lt;p&gt;This post introduces you to a small improvement that has been made in Visual Studio 2010 &amp;amp; .NET 4 to reduce the size of the ASP.NET application level web.config&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3.0 and 3.5 web.config&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;As ASP.NET technology evolved, the application level Web.config had new things added to it. Since the earlier frameworks were using the same set of machine level configuration files, incremental feature that was added subsequent to the 2.0 release resulted in additional config settings included in the file.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;.NET 4 web.config&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;With .NET 4, the web.config is tremendously reduced in size to improve the simplicity  of ASP.NET&lt;/p&gt;  &lt;p&gt;The config settings have been moved down to the machine config file. This includes registers all of the ASP.NET tag sections, handlers, modules and settings for the following:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;ASP.NET AJAX &lt;/li&gt;    &lt;li&gt;ASP.NET Dynamic Data &lt;/li&gt;    &lt;li&gt;ASP.NET Routing &lt;/li&gt;    &lt;li&gt;ASP.NET Chart Control &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You can look at the trimmed down web.config by creating a .Net 4 'ASP.NET Empty Web Application' in Visual Studio 2010.&lt;/p&gt;  &lt;p&gt;Following is the web.config file for .NET 4 C# 'ASP.NET Empty Web Application':&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;a href="http://blogs.msdn.com/blogfiles/webdevtools/WindowsLiveWriter/VisualStudio2010cleanweb.config_13513/image_2.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;border-top:0px;border-right:0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/webdevtools/WindowsLiveWriter/VisualStudio2010cleanweb.config_13513/image_thumb.png" width="644" height="229"&gt;&lt;/a&gt;     &lt;br&gt;&lt;/p&gt;  &lt;p&gt;The config file above has settings to tell ASP.NET to enable debugging by default for the application and provides the version of .NET framework to use.(Please read the post &lt;a title="http://blogs.msdn.com/webdevtools/archive/2009/09/30/visual-studio-2010-property-grid-filtering.aspx" href="http://blogs.msdn.com/webdevtools/archive/2009/09/30/visual-studio-2010-property-grid-filtering.aspx"&gt;http://blogs.msdn.com/webdevtools/archive/2009/09/30/visual-studio-2010-property-grid-filtering.aspx&lt;/a&gt; to find out why targetFramework version attribute should &lt;u&gt;not&lt;/u&gt; be updated manually)&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Hope this helps,&lt;/p&gt;  &lt;p&gt;Deepak Verma | &lt;a href="http://blogs.msdn.com/webdevtools/"&gt;Visual Web Developer&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9961783" width="1" height="1"&gt;</summary><author><name>WebDevTools</name></author><source gr:stream-id="feed/http://blogs.msdn.com/webdevtools/rss.aspx"><id>tag:google.com,2005:reader/feed/http://blogs.msdn.com/webdevtools/rss.aspx</id><title type="html">Visual Web Developer Team Blog</title><link rel="alternate" href="http://blogs.msdn.com/webdevtools/default.aspx" type="text/html" /></source><feedburner:origLink>http://blogs.msdn.com/webdevtools/archive/2010/02/10/visual-studio-2010-clean-application-level-web-config.aspx</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1265857995200"><id gr:original-id="http://www.jeff.wilcox.name/2010/02/silverlight-snippets/">tag:google.com,2005:reader/item/3926b6c8a5037a10</id><category term="C#" /><category term="Silverlight" /><category term="Silverlight Toolkit" /><title type="html">Helpful Silverlight Snippets</title><published>2010-02-10T21:56:33Z</published><updated>2010-02-10T21:56:33Z</updated><link rel="alternate" href="http://feeds.ericappel.net/~r/EricAppelsGoogleReaderSharedItems/~3/JTZTGCyMpVc/" type="text/html" /><content xml:base="http://www.jeff.wilcox.name/" type="html">&lt;p&gt;Here are a few of the Visual Studio C# code snippets that we use on the Silverlight team when building controls and apps.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/Snippets.zip"&gt;Download a zip&lt;/a&gt; (7 KB) of them all and extract them into your Snippets folder, which is in your Documents folder: &lt;strong&gt;Documents\Visual Studio 2010\Code Snippets\Visual C#\My Code Snippets\&lt;/strong&gt;. These also work with Visual Studio 2008.&lt;/p&gt;
&lt;h3&gt;To use a snippet&lt;/h3&gt;
&lt;p&gt;Inside the code editor, start typing the name of the snippet (such as dp, for a standard dependency property declaration section with a change handler). You should see it in the Intellisense drop-down.&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="ISDropdown" border="0" alt="ISDropdown" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/ISDropdown.png" width="685" height="253"&gt; &lt;/p&gt;
&lt;p&gt;Press tab to accept the value.&lt;/p&gt;
&lt;p&gt;If there are editing helpers for the snippet, use tab to move through the fields as you fill them out.&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" title="ISCompletion" border="0" alt="ISCompletion" src="http://www.jeff.wilcox.name/wp-content/uploads/2010/02/ISCompletion.png" width="509" height="229"&gt; &lt;/p&gt;
&lt;p&gt;Press Enter when you are finished. This should drop you right into the triple-slash comment field to fill that out.&lt;/p&gt;
&lt;h3&gt;Included snippets&lt;/h3&gt;
&lt;table border="0" cellspacing="0" cellpadding="2" width="680"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign="top" width="183"&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;/td&gt;
&lt;td valign="top" width="497"&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="183"&gt;dp&lt;/td&gt;
&lt;td valign="top" width="497"&gt;A standard dependency property with a property changed handler&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="183"&gt;dp_attached&lt;/td&gt;
&lt;td valign="top" width="497"&gt;An attached property declaration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="183"&gt;dp_nohandler&lt;/td&gt;
&lt;td valign="top" width="497"&gt;A dependency property without a change handler&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="183"&gt;dp_value&lt;/td&gt;
&lt;td valign="top" width="497"&gt;A value type dependency property with change handler&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="183"&gt;dp_value_nohandler&lt;/td&gt;
&lt;td valign="top" width="497"&gt;A value type dependency property without a change handler&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="183"&gt;inot&lt;/td&gt;
&lt;td valign="top" width="497"&gt;An INotifyPropertyChanged implementation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="183"&gt;test&lt;/td&gt;
&lt;td valign="top" width="497"&gt;A simple unit test method, descriptive comment, and description attribute&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="183"&gt;testa&lt;/td&gt;
&lt;td valign="top" width="497"&gt;An asynchronous unit test method&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Hope this helps.&lt;/p&gt;



Share and Enjoy:


	&lt;a rel="nofollow" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;url=http%3A%2F%2Fwww.jeff.wilcox.name%2F2010%2F02%2Fsilverlight-snippets%2F&amp;amp;title=Helpful%20Silverlight%20Snippets" title="Live"&gt;&lt;img src="http://www.jeff.wilcox.name/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live"&gt;&lt;/a&gt;
	&lt;a rel="nofollow" href="http://digg.com/submit?phase=2&amp;amp;url=http%3A%2F%2Fwww.jeff.wilcox.name%2F2010%2F02%2Fsilverlight-snippets%2F&amp;amp;title=Helpful%20Silverlight%20Snippets&amp;amp;bodytext=Here%20are%20a%20few%20of%20the%20Visual%20Studio%20C%23%20code%20snippets%20that%20we%20use%20on%20the%20Silverlight%20team%20when%20building%20controls%20and%20apps.%20%20Download%20a%20zip%20%287%20KB%29%20of%20them%20all%20and%20extract%20them%20into%20your%20Snippets%20folder%2C%20which%20is%20in%20your%20Documents%20folder%3A%20Documents%5CVisu" title="Digg"&gt;&lt;img src="http://www.jeff.wilcox.name/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg"&gt;&lt;/a&gt;
	&lt;a rel="nofollow" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fwww.jeff.wilcox.name%2F2010%2F02%2Fsilverlight-snippets%2F&amp;amp;title=Helpful%20Silverlight%20Snippets" title="DotNetKicks"&gt;&lt;img src="http://www.jeff.wilcox.name/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks"&gt;&lt;/a&gt;
	&lt;a rel="nofollow" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.jeff.wilcox.name%2F2010%2F02%2Fsilverlight-snippets%2F" title="Technorati"&gt;&lt;img src="http://www.jeff.wilcox.name/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati"&gt;&lt;/a&gt;
	&lt;a rel="nofollow" href="http://delicious.com/post?url=http%3A%2F%2Fwww.jeff.wilcox.name%2F2010%2F02%2Fsilverlight-snippets%2F&amp;amp;title=Helpful%20Silverlight%20Snippets&amp;amp;notes=Here%20are%20a%20few%20of%20the%20Visual%20Studio%20C%23%20code%20snippets%20that%20we%20use%20on%20the%20Silverlight%20team%20when%20building%20controls%20and%20apps.%20%20Download%20a%20zip%20%287%20KB%29%20of%20them%20all%20and%20extract%20them%20into%20your%20Snippets%20folder%2C%20which%20is%20in%20your%20Documents%20folder%3A%20Documents%5CVisu" title="del.icio.us"&gt;&lt;img src="http://www.jeff.wilcox.name/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us"&gt;&lt;/a&gt;
	&lt;a rel="nofollow" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.jeff.wilcox.name%2F2010%2F02%2Fsilverlight-snippets%2F&amp;amp;t=Helpful%20Silverlight%20Snippets" title="Facebook"&gt;&lt;img src="http://www.jeff.wilcox.name/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook"&gt;&lt;/a&gt;
	&lt;a rel="nofollow" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.jeff.wilcox.name%2F2010%2F02%2Fsilverlight-snippets%2F&amp;amp;partner=sociable" title="Print"&gt;&lt;img src="http://www.jeff.wilcox.name/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print"&gt;&lt;/a&gt;
	&lt;a rel="nofollow" href="http://www.google.com/bookmarks/mark?op=edit&amp;amp;bkmk=http%3A%2F%2Fwww.jeff.wilcox.name%2F2010%2F02%2Fsilverlight-snippets%2F&amp;amp;title=Helpful%20Silverlight%20Snippets&amp;amp;annotation=Here%20are%20a%20few%20of%20the%20Visual%20Studio%20C%23%20code%20snippets%20that%20we%20use%20on%20the%20Silverlight%20team%20when%20building%20controls%20and%20apps.%20%20Download%20a%20zip%20%287%20KB%29%20of%20them%20all%20and%20extract%20them%20into%20your%20Snippets%20folder%2C%20which%20is%20in%20your%20Documents%20folder%3A%20Documents%5CVisu" title="Google Bookmarks"&gt;&lt;img src="http://www.jeff.wilcox.name/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks"&gt;&lt;/a&gt;


&lt;br&gt;&lt;br&gt;</content><author><name>Jeff Wilcox</name></author><gr:likingUser>04659467978832689563</gr:likingUser><gr:likingUser>14232974821388201095</gr:likingUser><source gr:stream-id="feed/http://feeds.feedburner.com/JeffWilcox"><id>tag:google.com,2005:reader/feed/http://feeds.feedburner.com/JeffWilcox</id><title type="html">Jeff Wilcox</title><link rel="alternate" href="http://www.jeff.wilcox.name" type="text/html" /></source><feedburner:origLink>http://www.jeff.wilcox.name/2010/02/silverlight-snippets/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1265836753260"><id gr:original-id="http://timheuer.com/blog/archive/2010/02/10/extending-silverlight-media-framework.aspx">tag:google.com,2005:reader/item/1790d90ebaa48f4a</id><category term="developer" /><category term="media" /><category term="ria" /><category term="silverlight" /><category term="web" /><category term="tech stuff" /><title type="html">Using Silverlight Media Framework for simple playback</title><published>2010-02-10T18:09:06Z</published><updated>2010-02-10T18:09:06Z</updated><link rel="alternate" href="http://feeds.ericappel.net/~r/EricAppelsGoogleReaderSharedItems/~3/FGN39Vo4trw/extending-silverlight-media-framework.aspx" type="text/html" /><summary xml:base="http://timheuer.com/blog/Default.aspx" type="html">&lt;p&gt;If you aren’t aware of the&lt;strong&gt; &lt;/strong&gt;&lt;a href="http://smf.codeplex.com"&gt;&lt;strong&gt;Silverlight Media Framework&lt;/strong&gt;&lt;/a&gt;, you should take a look.  This is a media playback framework for Silverlight that is based off of a lot of best practices from such implementations as the NBC Olympics, Sunday Night Football and others.  &lt;/p&gt;
&lt;p&gt;&lt;img style="margin:0px auto;display:block;float:none" title="" alt="Silverlight Media Framework screenshot" src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=smf&amp;amp;DownloadId=93357"&gt;&lt;/p&gt;
&lt;p&gt;It has a lot of features built-in to the framework such as:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Logging &lt;/li&gt;
    &lt;li&gt;DVR-style features &lt;/li&gt;
    &lt;li&gt;Fast forward &lt;/li&gt;
    &lt;li&gt;Slow motion &lt;/li&gt;
    &lt;li&gt;Media Markers &lt;/li&gt;
    &lt;li&gt;etc &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Basic stuff plus some great included features and extensibility points.&lt;/p&gt;
&lt;h2&gt;Missing Features – Part 1&lt;/h2&gt;
&lt;p&gt;What I didn’t like in v1 was two things: it was only for Smooth Streaming and it was a framework versus just a XAP I could use in a web application.  After some successful complaining :-) and an opportunity to get into a milestone build, the progressive download feature was added which enabled non-Smooth Streaming people to use it.&lt;/p&gt;
&lt;p&gt;I’m wanting to standardize on what our teams are providing for best practices, so I’ve started using this player.  &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;NOTE: Does &lt;a href="http://slvideoplayer.codeplex.com"&gt;SL Video Player&lt;/a&gt; still live?  Yes, and it has VERY basic features.  It is super small and simple, but may not be for everyone’s liking.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So I started to solve the other problem, primarily for my use, of having essentially a stand-alone player using this framework.  &lt;/p&gt;
&lt;h2&gt;Extending the Silverlight Media Framework&lt;/h2&gt;
&lt;p&gt;You see, the SMF itself is essentially a set of controls…but not an ‘app’ itself that you can just consume the binary.  What I did was basically create a new &lt;a href="http://silverlight.net"&gt;Silverlight&lt;/a&gt; application myself with one simple element: Player.  This way I could implement what I needed for my use.  The first thing I wanted was to have a simple XAP that I’d be able to load parameters in…very much like we did for SL Video Player on codeplex.  To make essentially the player have a flexible use model.  I could host the player anywhere and just feed it media to play.&lt;/p&gt;
&lt;p&gt;I used the &lt;a href="http://silverlight.net/learn/videos/all/using-startup-parameters-with-silverlight/"&gt;InitParams feature&lt;/a&gt; of the Silverlight plugin model to enable me to pass in parameters to the application.  I wanted a simple parameter ‘media’ that basically was a URI to my media.  For most of my needs this would be a progressive download situation.  I added the simple feature using InitParams, and passed that URI to the MediaElement of the player framework.  All was well.&lt;/p&gt;
&lt;h2&gt;Missing Features – Part 2&lt;/h2&gt;
&lt;p&gt;I then realized two features that I love about the Expression Encoder templates: AutoLoad and ThumbnailImage.  These two features are pretty much essential for a bandwidth saving playback experience.  AutoLoad basically disables the media from starting to be fetched until the user clicks play.  The ThumbnailImage enables a static screenshot view to be displayed until a media frame could be captured.  These two features work well together.&lt;/p&gt;
&lt;p&gt;The AutoLoad (cueing) was critical for me.  I didn’t want media to start downloading until the user said so.  This saves me bandwidth as well as doesn’t annoy the user if there is a ton of media on one page (which might not be a good UX to begin with, but I digress).&lt;/p&gt;
&lt;p&gt;I saw an event &lt;em&gt;PlayControlClicked&lt;/em&gt; in the framework that I felt I could tap into.  I figured I’d just wire up to that event and set the MediaElement.Source when the user clicked that.  FAIL.  The problem was that the play control in the current framework isn’t even enabled until the media source is set.  This defeated my whole purpose.&lt;/p&gt;
&lt;p&gt;After some spelunking in the source – did I mention that SMF is Open Source? – I found the culprit functions.  Disabling them made everything work but it just didn’t feel right.  Luckily one of the developers of the framework, &lt;a href="http://twitter.com/sundriedcoder"&gt;Kevin&lt;/a&gt; from &lt;a href="http://www.vertigo.com"&gt;Vertigo&lt;/a&gt;, and I start chatting (virtually of course, after all nobody ‘talks’ anymore for real right?).  I told him of my findings and hacks and he educated me that I didn’t even need to mess with the source, but could accomplish my needs by subclassing the Player.  Kevin sent me some sample code for what he called a DeferredSource, which is what I wanted.&lt;/p&gt;
&lt;p&gt;After some quick tests, I realized that I should keep all scenarios enabled:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Deferred loading (AutoLoad=false) &lt;/li&gt;
    &lt;li&gt;Normal progressive playback (AutoLoad=true) &lt;/li&gt;
    &lt;li&gt;Windows Streaming &lt;/li&gt;
    &lt;li&gt;IIS Smooth Streaming &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I modified Kevin’s source a bit and got everything working.  Now I have 3 parameters: &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;media – the URI of the stream, IIS Smooth Streaming manifest, or media file for progressive download &lt;/li&gt;
    &lt;li&gt;autoload – used really only for progressive download, would enable/disable cueing of the video upon load &lt;/li&gt;
    &lt;li&gt;ss – to specify if the URI indicated in ‘media’ is an IIS Smooth Streaming implementation &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With this done I can now do something as simple as:&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre&gt;&lt;span&gt;   1:&lt;/span&gt; &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;object&lt;/span&gt; &lt;span&gt;data&lt;/span&gt;&lt;span&gt;="data:application/x-silverlight-2,"&lt;/span&gt; &lt;span&gt;type&lt;/span&gt;&lt;span&gt;="application/x-silverlight-2"&lt;/span&gt; &lt;span&gt;width&lt;/span&gt;&lt;span&gt;="320"&lt;/span&gt; &lt;span&gt;height&lt;/span&gt;&lt;span&gt;="240"&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;span&gt;   2:&lt;/span&gt;   &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;param&lt;/span&gt; &lt;span&gt;name&lt;/span&gt;&lt;span&gt;="source"&lt;/span&gt; &lt;span&gt;value&lt;/span&gt;&lt;span&gt;="/ClientBin/SmfSimplePlayer.xap"&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;span&gt;   3:&lt;/span&gt;   &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;param&lt;/span&gt; &lt;span&gt;name&lt;/span&gt;&lt;span&gt;="background"&lt;/span&gt; &lt;span&gt;value&lt;/span&gt;&lt;span&gt;="white"&lt;/span&gt; &lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;span&gt;   4:&lt;/span&gt;   &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;param&lt;/span&gt; &lt;span&gt;name&lt;/span&gt;&lt;span&gt;="minRuntimeVersion"&lt;/span&gt; &lt;span&gt;value&lt;/span&gt;&lt;span&gt;="3.0.40818.0"&lt;/span&gt; &lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;span&gt;   5:&lt;/span&gt;   &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;param&lt;/span&gt; &lt;span&gt;name&lt;/span&gt;&lt;span&gt;="initParams"&lt;/span&gt; &lt;span&gt;value&lt;/span&gt;&lt;span&gt;="media=URL_TO_YOUR_VIDEO"&lt;/span&gt; &lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;span&gt;   6:&lt;/span&gt;   &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;param&lt;/span&gt; &lt;span&gt;name&lt;/span&gt;&lt;span&gt;="autoUpgrade"&lt;/span&gt; &lt;span&gt;value&lt;/span&gt;&lt;span&gt;="true"&lt;/span&gt; &lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;span&gt;   7:&lt;/span&gt;   &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;a&lt;/span&gt; &lt;span&gt;href&lt;/span&gt;&lt;span&gt;=&amp;quot;http://go.microsoft.com/fwlink/?LinkID=149156&amp;amp;v=3.0.40818.0&amp;quot;&lt;/span&gt; &lt;span&gt;style&lt;/span&gt;&lt;span&gt;="text-decoration:none"&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;span&gt;   8:&lt;/span&gt;           &lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;img&lt;/span&gt; &lt;span&gt;src&lt;/span&gt;&lt;span&gt;="http://go.microsoft.com/fwlink/?LinkId=161376"&lt;/span&gt; &lt;span&gt;alt&lt;/span&gt;&lt;span&gt;="Get Microsoft Silverlight"&lt;/span&gt; &lt;span&gt;style&lt;/span&gt;&lt;span&gt;="border-style:none"&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;span&gt;   9:&lt;/span&gt;   &lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;a&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;span&gt;  10:&lt;/span&gt; &lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;object&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Boom, done.  Now I had a player based on SMF that served my needs.&lt;/p&gt;
&lt;h2&gt;Wishlist&lt;/h2&gt;
&lt;p&gt;I still didn’t implement the ThumbnailImage in my player.  This is a wishlist item for me…it isn’t critical but nice for when AutoLoad=false so it isn’t just a blank screen!  Additionally, the one thing I have to admit I’m not wild about is the overall size.  The compiled XAP is 230K.  In contrast my SL Video Player is 16K.  Why the big size?  Well, the SMF &lt;em&gt;today&lt;/em&gt; is intended for someone who really wants to implement all the features it provides, including Smooth Streaming.  If you aren’t using Smooth Streaming, then you still have those dependencies with you…not ideal.&lt;/p&gt;
&lt;p&gt;In talking with the dev team and framework team, I know their plans for updated milestones of SMF and am pleased with the roadmap.  They have taken a lot of feedback of how mainstream uses might be implemented and will make it continue to be awesome with a bit more flexibility of taking what you need!&lt;/p&gt;
&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;If you need a solid, basic player take a look at &lt;a href="http://smf.codeplex.com"&gt;SMF&lt;/a&gt;.  There are other players out there of course, but this one is based on proven best practices in the toughest situations.  And it is only getting better.  There is a lot of room for improvement for the ‘YouTube’ style simplicity of playback for medium-low quality video playback for your personal sites showing home movies, etc. – and I know that scenario will improve, because I’m pushing for it as well.&lt;/p&gt;
&lt;p&gt;If you want to use what I’ve done here, feel free – here are the files:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href="http://storage.timheuer.com/SimpleSmfPlayerXAP.zip"&gt;Compiled XAP&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://storage.timheuer.com/SmfSimplePlayer-source.zip"&gt;Source code for my modified stand-alone player&lt;/a&gt; – note that you will need the SMF and the dependencies for that before this will compile.  This source contains only my modifications &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are also a &lt;a href="http://www.silverlight.net/learn/videos/silverlight-media-framework/"&gt;bunch of videos for working with the Silverlight Media Framework&lt;/a&gt; beyond the basics.  Be sure to check them out!&lt;/p&gt;
&lt;p&gt;Hope this helps!&lt;/p&gt;
&lt;div style="margin:0px;padding:0px;display:inline;float:none"&gt;&lt;span&gt;tags: &lt;a href="http://timheuer.com/blog/tags/silverlight/default.aspx" rel="tag"&gt;silverlight&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/ria/default.aspx" rel="tag"&gt;ria&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/xaml/default.aspx" rel="tag"&gt;xaml&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/smf/default.aspx" rel="tag"&gt;smf&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/silverlight+media+framework/default.aspx" rel="tag"&gt;silverlight media framework&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/vertigo/default.aspx" rel="tag"&gt;vertigo&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/slvideoplayer/default.aspx" rel="tag"&gt;slvideoplayer&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/codeplex/default.aspx" rel="tag"&gt;codeplex&lt;/a&gt;, &lt;a href="http://timheuer.com/blog/tags/open+source/default.aspx" rel="tag"&gt;open source&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br&gt;
&lt;div style="margin:0px;padding:0px"&gt;&lt;hr&gt;
&lt;div&gt;This work is licensed under a &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution By license.&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://timheuer.com/blog/aggbug/14707.aspx" width="1" height="1"&gt;&lt;p&gt;&lt;iframe src="http://feedads.g.doubleclick.net/~ah/f/l7l31h3s79k26t0ukufv00seg8/468/60#http%3A%2F%2Ftimheuer.com%2Fblog%2Farchive%2F2010%2F02%2F10%2Fextending-silverlight-media-framework.aspx" width="100%" height="60" frameborder="0" scrolling="no" marginwidth="0" marginheight="0"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/timheuer/~4/ZK6xkvZpAvs" height="1" width="1"&gt;</summary><author><name>Tim Heuer</name></author><gr:likingUser>04247647481372162813</gr:likingUser><source gr:stream-id="feed/http://feeds.feedburner.com/timheuer"><id>tag:google.com,2005:reader/feed/http://feeds.feedburner.com/timheuer</id><title type="html">Method ~ of ~ failed by Tim Heuer</title><link rel="alternate" href="http://timheuer.com/blog/Default.aspx" type="text/html" /></source><feedburner:origLink>http://feedproxy.google.com/~r/timheuer/~3/ZK6xkvZpAvs/extending-silverlight-media-framework.aspx</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1265760989200"><id gr:original-id="http://net.tutsplus.com/?p=9219">tag:google.com,2005:reader/item/4d27304eeb79d9f0</id><category term="Screencasts" /><category term="CSS" /><category term="css3" /><category term="font replacement" /><category term="font-face" /><category term="fontface" /><title type="html">Quick Tip: How to Work with @Font-face</title><published>2010-02-09T20:24:44Z</published><updated>2010-02-09T20:24:44Z</updated><link rel="alternate" href="http://feeds.ericappel.net/~r/EricAppelsGoogleReaderSharedItems/~3/M5jyB4YfYvE/" type="text/html" /><content xml:base="http://net.tutsplus.com/" type="html">&lt;p&gt;
Due to the fact that @font-face can be a bit overly complicated, it hasn’t caught on quite as much as it should. Once you start reading about licensing, different font formats, browser consistencies, it can potentially become more trouble than it’s worth.
&lt;/p&gt;
&lt;p&gt;But – in five minutes, I’ll try to simplify the process of working with custom fonts as much as I possibly can. Services like &lt;a href="http://www.fontsquirrel.com/"&gt;Font Squirrel&lt;/a&gt; help to make the task a cinch! &lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;a href="http://nettuts.s3.cdn.plus.org/569_fontface/fontface.zip"&gt;&lt;img src="http://net.tutsplus.com/wp-content/themes/nettuts/site_images/button_src_nm.jpg"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="http://nettuts.s3.cdn.plus.org/569_fontface/fontface/index.html"&gt;&lt;img src="http://net.tutsplus.com/wp-content/themes/nettuts/site_images/button_demo_nm.jpg"&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;div&gt;

&lt;/div&gt;
&lt;h3&gt;Final CSS &lt;/h3&gt;
&lt;pre name="code"&gt;
@font-face {
font-family: 'blok-regular';
src: url('type/Blokletters-Potlood.eot');
src: local('Blokletters Potlood Potlood'),
 local('Blokletters-Potlood'),
 url('type/Blokletters-Potlood.ttf') format('truetype');
}

@font-face {
font-family: 'blok-italic';
src: url('type/Blokletters-Balpen.eot');
src: local('Blokletters Balpen Balpen'),
 local('Blokletters-Balpen'),
 url('type/Blokletters-Balpen.ttf') format('truetype');
}

@font-face {
font-family: 'blok-heavy';
src: url('type/Blokletters-Viltstift.eot');
src: local('Blokletters Viltstift Viltstift'),
 local('Blokletters-Viltstift'),
 url('type/Blokletters-Viltstift.ttf') format('truetype');
}

h1 { font-family: blok-heavy, helvetica, arial; }
&lt;/pre&gt;
&lt;p&gt;
Notice how we’re referencing both an .eot and .ttf font? This is because, of course, Internet Explorer only uses its own format, that has yet to truly catch on. As such, we must first import that .eot file, and then move on to the different formats for Firefox, Safari, etc. &lt;strong&gt;It’s essential that you load the .eot version first. &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Next, we search for the font on the user’s computer by using the “local” attribute. If it’s unfound, only then do we pass a url that will load the font.
&lt;/p&gt;
&lt;h3&gt;Why Doesn’t IE Try to Load the TTF Fonts? &lt;/h3&gt;
&lt;p&gt;
This was definitely a concern. If Explorer can’t work with the truetype format, we don’t want to waste time trying to download the font. Luckily, because of all those local attributes, and the commas, IE won’t understand any of it. As such, it will simply skip the line all together, thus, only utilizing the .eot version.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Follow us on &lt;a href="http://www.twitter.com/nettuts"&gt;Twitter&lt;/a&gt;, or subscribe to the &lt;a href="http://feeds.feedburner.com/nettuts" title="Nettuts+ RSS Feed"&gt;Nettuts+ RSS Feed&lt;/a&gt; for the best web development tutorials on the web. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;iframe src="http://feedads.g.doubleclick.net/~ah/f/8olmjno1k05rb1som1frr6u854/300/250?ca=1&amp;amp;fh=280#http%3A%2F%2Fnet.tutsplus.com%2Fvideos%2Fscreencasts%2Fquick-tip-how-to-work-with-font-face%2F" width="100%" height="280" frameborder="0" scrolling="no" marginwidth="0" marginheight="0"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/~ff/nettuts?a=uIMfecdbFUg:920RJ_U9HiY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nettuts?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nettuts?a=uIMfecdbFUg:920RJ_U9HiY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nettuts?i=uIMfecdbFUg:920RJ_U9HiY:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nettuts?a=uIMfecdbFUg:920RJ_U9HiY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nettuts?i=uIMfecdbFUg:920RJ_U9HiY:V_sGLiPBpWU" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nettuts?a=uIMfecdbFUg:920RJ_U9HiY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nettuts?i=uIMfecdbFUg:920RJ_U9HiY:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nettuts?a=uIMfecdbFUg:920RJ_U9HiY:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nettuts?d=TzevzKxY174" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nettuts/~4/uIMfecdbFUg" height="1" width="1"&gt;</content><author><name>Jeffrey Way</name></author><gr:likingUser>05278774510161640684</gr:likingUser><gr:likingUser>13617109966543665848</gr:likingUser><gr:likingUser>07315895505277259578</gr:likingUser><gr:likingUser>09845367543211308301</gr:likingUser><gr:likingUser>09077597901753567044</gr:likingUser><gr:likingUser>02438916531647294482</gr:likingUser><gr:likingUser>17700988909534729186</gr:likingUser><gr:likingUser>11495860035219453955</gr:likingUser><gr:likingUser>14842169033447451037</gr:likingUser><gr:likingUser>11592565101312878706</gr:likingUser><gr:likingUser>13001326332658727932</gr:likingUser><gr:likingUser>08146159196987479788</gr:likingUser><gr:likingUser>18333952810110977826</gr:likingUser><gr:likingUser>10706732425910878417</gr:likingUser><gr:likingUser>03545964666694920486</gr:likingUser><gr:likingUser>04587748544218900048</gr:likingUser><gr:likingUser>05232740518081585275</gr:likingUser><gr:likingUser>14455434175034965535</gr:likingUser><gr:likingUser>14208438555815151622</gr:likingUser><gr:likingUser>03339888089253792678</gr:likingUser><gr:likingUser>03020522199988970127</gr:likingUser><source gr:stream-id="feed/http://feeds.feedburner.com/nettuts"><id>tag:google.com,2005:reader/feed/http://feeds.feedburner.com/nettuts</id><title type="html">Nettuts+</title><link rel="alternate" href="http://net.tutsplus.com" type="text/html" /></source><feedburner:origLink>http://feedproxy.google.com/~r/nettuts/~3/uIMfecdbFUg/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1265751659176"><id gr:original-id="c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7339978">tag:google.com,2005:reader/item/2ccfdb2ae080e133</id><category term="ASP.NET" scheme="http://weblogs.asp.net/scottgu/archive/tags/ASP.NET/default.aspx" /><category term="Visual Studio" scheme="http://weblogs.asp.net/scottgu/archive/tags/Visual+Studio/default.aspx" /><category term=".NET" scheme="http://weblogs.asp.net/scottgu/archive/tags/.NET/default.aspx" /><category term="Atlas" scheme="http://weblogs.asp.net/scottgu/archive/tags/Atlas/default.aspx" /><title type="html">jQuery 1.4.1 Intellisense with Visual Studio</title><published>2010-02-09T06:30:30Z</published><updated>2010-02-09T06:30:30Z</updated><link rel="alternate" href="http://feeds.ericappel.net/~r/EricAppelsGoogleReaderSharedItems/~3/BmBYGiO5DH0/jquery-1-4-1-intellisense-with-visual-studio.aspx" type="text/html" /><summary xml:base="http://weblogs.asp.net/scottgu/default.aspx" type="html">&lt;font size="2" face="arial"&gt;   &lt;p&gt;&lt;em&gt;[In addition to blogging, I am also now using Twitter for quick updates and to share links. Follow me at: &lt;/em&gt;&lt;a href="http://www.twitter.com/scottgu"&gt;twitter.com/scottgu&lt;/a&gt;&lt;em&gt;&lt;/em&gt;&lt;em&gt;]&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;A few people have emailed me recently asking about the availability of a Visual Studio –vsdoc intellisense hint file for jQuery 1.4.1.  &lt;/p&gt;    &lt;p&gt;I &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/11/21/jquery-intellisense-in-vs-2008.aspx"&gt;blogged about –vsdoc files&lt;/a&gt; in the past – they provide additional intellisense help information for Visual Studio, and enable you to get a richer intellisense experience with dynamic Javascript libraries.  If you are using VS 2008 SP1 you’ll want to &lt;a href="http://blogs.msdn.com/webdevtools/archive/2008/11/07/hotfix-to-enable-vsdoc-js-intellisense-doc-files-is-now-available.aspx"&gt;download and install this patch&lt;/a&gt; in order to have VS 2008 automatically use –vsdoc files with intellisense.  VS 2010 has support for –vsdoc files built-in.&lt;/p&gt;    &lt;p&gt;&lt;u&gt;&lt;strong&gt;jQuery 1.4.1 –vsdoc download&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;    &lt;p&gt;The good news is that you can download –vsdoc files for jQuery directly from the &lt;a href="http://docs.jquery.com/Downloading_jQuery"&gt;jQuery web-site&lt;/a&gt; (look for the “Documentation: Visual Studio” link under each major version).  &lt;a href="http://code.jquery.com/jquery-1.4.1-vsdoc.js"&gt;Here is a direct pointer&lt;/a&gt; to the recently released –vsdoc file for jQuery 1.4.1 that you can use.&lt;/p&gt;    &lt;p&gt;Hope this helps,&lt;/p&gt;    &lt;p&gt;Scott&lt;/p&gt; &lt;/font&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7339978" width="1" height="1"&gt;</summary><author><name>ScottGu</name></author><gr:likingUser>10309887133559368348</gr:likingUser><gr:likingUser>17279426870283839355</gr:likingUser><gr:likingUser>14298926834408922932</gr:likingUser><gr:likingUser>12291206315768776680</gr:likingUser><gr:likingUser>09506148348205166496</gr:likingUser><gr:likingUser>12799982373348976659</gr:likingUser><gr:likingUser>10506160750992527978</gr:likingUser><gr:likingUser>14977211294833311123</gr:likingUser><gr:likingUser>04459357931752533433</gr:likingUser><gr:likingUser>07679695795254139328</gr:likingUser><gr:likingUser>15897691948879148881</gr:likingUser><gr:likingUser>08457757297198080236</gr:likingUser><gr:likingUser>04112737835446220610</gr:likingUser><gr:likingUser>15732529351061007414</gr:likingUser><gr:likingUser>16002802316939065748</gr:likingUser><gr:likingUser>17354355081757593495</gr:likingUser><gr:likingUser>12846754463092776383</gr:likingUser><gr:likingUser>13766132353832566745</gr:likingUser><gr:likingUser>16922541974102092730</gr:likingUser><gr:likingUser>13380851769333648738</gr:likingUser><gr:likingUser>14275388442435044908</gr:likingUser><gr:likingUser>03235141843054304627</gr:likingUser><gr:likingUser>10373899759076777721</gr:likingUser><gr:likingUser>01090527177732473903</gr:likingUser><gr:likingUser>08101081264070915296</gr:likingUser><gr:likingUser>13684434189408291198</gr:likingUser><gr:likingUser>08486259117789072217</gr:likingUser><gr:likingUser>12253867106085134964</gr:likingUser><gr:likingUser>12527062515322897301</gr:likingUser><gr:likingUser>08712392542972746994</gr:likingUser><gr:likingUser>09604400963493546063</gr:likingUser><gr:likingUser>08365826596521191920</gr:likingUser><gr:likingUser>08645711475759261433</gr:likingUser><gr:likingUser>17964658497124359764</gr:likingUser><gr:likingUser>07441501171625556466</gr:likingUser><gr:likingUser>14919842138675301263</gr:likingUser><gr:likingUser>00724805899623421655</gr:likingUser><gr:likingUser>12312510339628979566</gr:likingUser><gr:likingUser>09543392838995549629</gr:likingUser><gr:likingUser>02210774433625347582</gr:likingUser><gr:likingUser>13482957486435758786</gr:likingUser><gr:likingUser>01537221756828913303</gr:likingUser><gr:likingUser>01233887755443623995</gr:likingUser><gr:likingUser>14799847426157557325</gr:likingUser><gr:likingUser>16619903595158676264</gr:likingUser><gr:likingUser>17732198691747031388</gr:likingUser><gr:likingUser>14261226687169365124</gr:likingUser><gr:likingUser>06283702883459862289</gr:likingUser><gr:likingUser>03735038931229300715</gr:likingUser><gr:likingUser>04818839100628369786</gr:likingUser><gr:likingUser>13561747176966481216</gr:likingUser><gr:likingUser>10640608875637460039</gr:likingUser><gr:likingUser>01078909911975297443</gr:likingUser><gr:likingUser>15240504377030557286</gr:likingUser><gr:likingUser>00648696838684117568</gr:likingUser><gr:likingUser>05510936146199809049</gr:likingUser><gr:likingUser>10864774215751317203</gr:likingUser><gr:likingUser>18343676128922251020</gr:likingUser><gr:likingUser>07113703849431256645</gr:likingUser><gr:likingUser>16935322041668034773</gr:likingUser><gr:likingUser>02971385870103157047</gr:likingUser><source gr:stream-id="feed/http://weblogs.asp.net/scottgu/rss.aspx"><id>tag:google.com,2005:reader/feed/http://weblogs.asp.net/scottgu/rss.aspx</id><title type="html">ScottGu&amp;#39;s Blog</title><link rel="alternate" href="http://weblogs.asp.net/scottgu/default.aspx" type="text/html" /></source><feedburner:origLink>http://weblogs.asp.net/scottgu/archive/2010/02/08/jquery-1-4-1-intellisense-with-visual-studio.aspx</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1265750164057"><id gr:original-id="tag:blogger.com,1999:blog-17412960.post-1633593029643091413">tag:google.com,2005:reader/item/c8731f9894941f27</id><title type="html">Readers: Get your Buzz on</title><published>2010-02-09T19:02:00Z</published><updated>2010-02-09T19:02:27Z</updated><link rel="alternate" href="http://feeds.ericappel.net/~r/EricAppelsGoogleReaderSharedItems/~3/VeNXLCcFcyA/readers-get-your-buzz-on.html" type="text/html" /><content xml:base="http://googlereader.blogspot.com/" type="html">&lt;p&gt;We know that many people like Reader because it makes it so easy to share interesting stuff with a wide group of friends. That's why, over the past year, we've added a number of features to help you share the content you find most interesting: &lt;a href="http://googlereader.blogspot.com/2009/03/google-reader-is-your-new-watercooler.html"&gt;comments&lt;/a&gt;, &lt;a href="http://googlereader.blogspot.com/2009/07/following-liking-and-people-searching.html"&gt;following, people search, liking&lt;/a&gt;, and "&lt;a href="http://googlereader.blogspot.com/2009/08/flurry-of-features-for-feed-readers.html"&gt;send to.&lt;/a&gt;"

&lt;p&gt;However, even with all these great features, sharing has been mostly limited to the subset of your friends who use Google Reader. While many people use Reader, we know that even more use Gmail. That's why today, we're thrilled to announce that with the &lt;a href="http://gmailblog.blogspot.com/2010/02/google-buzz-in-gmail.html"&gt;launch of Google Buzz&lt;/a&gt;, the &lt;a href="http://pillarboxpost.wordpress.com/2010/01/29/looking-into-the-past/"&gt;awesome&lt;/a&gt; &lt;a href="http://joannecasey.blogspot.com/2010/02/how-to-store-and-organise-cats.html"&gt;items&lt;/a&gt; &lt;a href="http://www.engadget.com/2010/02/06/eco-shocker-turbine-light-concept-uses-wind-to-light-highways/"&gt;you&lt;/a&gt; &lt;a href="http://www.waze.com/blog/the-19-most-complex-and-dangerous-roads-in-the-world/"&gt;share&lt;/a&gt; in Reader can also be shared with all your friends who use Gmail with Google Buzz.&lt;/p&gt;

&lt;p style="text-align:center"&gt;
&lt;a href="http://2.bp.blogspot.com/_QriD2y6VZ-Y/S3D8yzG0DaI/AAAAAAAAHCY/LR3OxI5NYyg/s1600-h/buzz-reader.png"&gt;&lt;img border="0" height="392" src="http://2.bp.blogspot.com/_QriD2y6VZ-Y/S3D8yzG0DaI/AAAAAAAAHCY/LR3OxI5NYyg/s400/buzz-reader.png" width="400" alt="" title="CSBC &amp;gt;&amp;gt; Dolphins"&gt;&lt;/a&gt;&lt;br&gt;
&lt;span style="color:#666;font-style:italic"&gt;A shared item in Reader (background) and Buzz (foreground)&lt;/span&gt;
&lt;/p&gt;

&lt;p&gt;Getting started with Google Buzz is easy. Just head over to Gmail and you'll be able to link up your Google Reader account with just a few clicks. Then, anything you share in Reader will automatically be posted to Buzz. Comments are even shared between both products, so you can view and participate in the conversation wherever you'd prefer.&lt;/p&gt;

&lt;p&gt;And don't worry, you don't have another list of friends or followers to manage. The people you follow in Reader are the same people you follow in Buzz – those you've already chosen to follow in Reader, plus the people you email and chat with the most in Gmail.&lt;/p&gt;

&lt;p&gt;Check out the video below, explaining everything you can do with Google Buzz!&lt;/p&gt;

&lt;p style="text-align:center"&gt;&lt;embed src="http://www.youtube.com/v/yi50KlsCBio&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;hd=1" allowScriptAccess="never" allowFullScreen="true" width="480" height="295" wmode="transparent" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/p&gt;

&lt;p&gt;Head to our &lt;a href="http://www.google.com/support/reader/bin/answer.py?hl=en&amp;amp;answer=83000"&gt;help center&lt;/a&gt; for more details about the Buzz integration in Reader, or leave us feedback in &lt;a href="http://www.google.com/support/forum/p/reader"&gt;our forum&lt;/a&gt;, &lt;a href="http://twitter.com/googlereader"&gt;on Twitter&lt;/a&gt; or even using &lt;a href="https://mail.google.com/mail/#buzz/search/%23googlereader"&gt;Buzz itself&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;P.S. Keep in mind that Google Buzz is rolling out gradually, it might be a few days before you get it for your account.&lt;/p&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/17412960-1633593029643091413?l=googlereader.blogspot.com" alt=""&gt;&lt;/div&gt;&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/dtKx?a=dBHc0CQ2dMI:KzwCdOZ5rE0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/dtKx?i=dBHc0CQ2dMI:KzwCdOZ5rE0:V_sGLiPBpWU" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/dtKx/~4/dBHc0CQ2dMI" height="1" width="1"&gt;&lt;/p&gt;</content><author><name>Mihai Parparita</name></author><gr:likingUser>15858608039322285505</gr:likingUser><gr:likingUser>02955686121905988538</gr:likingUser><gr:likingUser>05970971203529985488</gr:likingUser><gr:likingUser>06644952483012064948</gr:likingUser><gr:likingUser>02438731866835478013</gr:likingUser><gr:likingUser>02274618823973324727</gr:likingUser><gr:likingUser>11987535382958485300</gr:likingUser><gr:likingUser>09128911619843750165</gr:likingUser><gr:likingUser>14648814721876304223</gr:likingUser><gr:likingUser>09225792983377770702</gr:likingUser><gr:likingUser>12610159215944925910</gr:likingUser><gr:likingUser>17015188689670670471</gr:likingUser><gr:likingUser>00451470333538167256</gr:likingUser><gr:likingUser>03889220464101359232</gr:likingUser><gr:likingUser>17629036694197496353</gr:likingUser><gr:likingUser>08624678999930436097</gr:likingUser><gr:likingUser>00848136325390225577</gr:likingUser><gr:likingUser>07405778022858722385</gr:likingUser><gr:likingUser>15835440548890645348</gr:likingUser><gr:likingUser>15337610026860069247</gr:likingUser><gr:likingUser>02654107647890414234</gr:likingUser><gr:likingUser>04046198794680588297</gr:likingUser><gr:likingUser>12500273773961387583</gr:likingUser><gr:likingUser>00067630075742384115</gr:likingUser><gr:likingUser>16259219637744929956</gr:likingUser><gr:likingUser>12440292219283836735</gr:likingUser><gr:likingUser>15256436114172907964</gr:likingUser><gr:likingUser>01044318616112475736</gr:likingUser><gr:likingUser>12999466221181650263</gr:likingUser><gr:likingUser>06157501981069861963</gr:likingUser><gr:likingUser>01332192142485742266</gr:likingUser><gr:likingUser>16673077109090760871</gr:likingUser><gr:likingUser>16397708710238144934</gr:likingUser><gr:likingUser>12210956635460207525</gr:likingUser><gr:likingUser>02205325645786122786</gr:likingUser><gr:likingUser>05614457940214209057</gr:likingUser><gr:likingUser>14340909024050762366</gr:likingUser><gr:likingUser>18220599815216060165</gr:likingUser><gr:likingUser>14396553061043622018</gr:likingUser><gr:likingUser>04370737217761461909</gr:likingUser><gr:likingUser>04876173668831119066</gr:likingUser><gr:likingUser>17917669631006186641</gr:likingUser><gr:likingUser>08435851813940518693</gr:likingUser><gr:likingUser>06806820086982579129</gr:likingUser><gr:likingUser>13742756767274179987</gr:likingUser><gr:likingUser>04843769103165249088</gr:likingUser><gr:likingUser>05954924196419289162</gr:likingUser><gr:likingUser>10790112903116327519</gr:likingUser><gr:likingUser>02762925780014206669</gr:likingUser><gr:likingUser>13400082647183333980</gr:likingUser><gr:likingUser>17852351097942617006</gr:likingUser><gr:likingUser>11580807580514879590</gr:likingUser><gr:likingUser>03537279839030073637</gr:likingUser><gr:likingUser>07838337566371938848</gr:likingUser><gr:likingUser>09415821318242054459</gr:likingUser><gr:likingUser>03506979255397830379</gr:likingUser><gr:likingUser>08764991675978146535</gr:likingUser><gr:likingUser>17518124910909542205</gr:likingUser><gr:likingUser>01040998762119282392</gr:likingUser><gr:likingUser>05307036168038621869</gr:likingUser><gr:likingUser>02643945518437778899</gr:likingUser><gr:likingUser>09098942182171249632</gr:likingUser><gr:likingUser>06003443881508867542</gr:likingUser><gr:likingUser>12228076684823975737</gr:likingUser><gr:likingUser>18094696276303256128</gr:likingUser><gr:likingUser>07919125212026674705</gr:likingUser><gr:likingUser>16607099671804703286</gr:likingUser><gr:likingUser>04491534779760436136</gr:likingUser><gr:likingUser>17379080138041887580</gr:likingUser><gr:likingUser>00831346312121085406</gr:likingUser><gr:likingUser>06464391528071377381</gr:likingUser><gr:likingUser>00667369926163341745</gr:likingUser><gr:likingUser>05161383076468092274</gr:likingUser><gr:likingUser>09034493494524543066</gr:likingUser><gr:likingUser>05258996823467127454</gr:likingUser><gr:likingUser>12996006324666661986</gr:likingUser><gr:likingUser>18310171581056390926</gr:likingUser><gr:likingUser>16833008999767082347</gr:likingUser><gr:likingUser>09109325449936973888</gr:likingUser><gr:likingUser>06932923496663617832</gr:likingUser><gr:likingUser>09556099084421364964</gr:likingUser><gr:likingUser>06760677493181820058</gr:likingUser><gr:likingUser>13735350689927502934</gr:likingUser><gr:likingUser>04935820229977878362</gr:likingUser><gr:likingUser>13236389836239072361</gr:likingUser><gr:likingUser>13875437742439771956</gr:likingUser><gr:likingUser>04814367684124350937</gr:likingUser><gr:likingUser>04393173737596822805</gr:likingUser><gr:likingUser>17529526994415247175</gr:likingUser><gr:likingUser>15762344867373651404</gr:likingUser><gr:likingUser>14006302525169145131</gr:likingUser><gr:likingUser>18415829495891028128</gr:likingUser><gr:likingUser>13833360481684227530</gr:likingUser><gr:likingUser>12991290327438162578</gr:likingUser><gr:likingUser>12326234784313821810</gr:likingUser><gr:likingUser>16155029348380204271</gr:likingUser><gr:likingUser>10232150028841052063</gr:likingUser><gr:likingUser>07350871961492070449</gr:likingUser><gr:likingUser>00400877584366970999</gr:likingUser><gr:likingUser>01431840472738613166</gr:likingUser><source gr:stream-id="feed/http://googlereader.blogspot.com/atom.xml"><id>tag:google.com,2005:reader/feed/http://googlereader.blogspot.com/atom.xml</id><title type="html">Official Google Reader Blog</title><link rel="alternate" href="http://googlereader.blogspot.com/" type="text/html" /></source><feedburner:origLink>http://feedproxy.google.com/~r/blogspot/dtKx/~3/dBHc0CQ2dMI/readers-get-your-buzz-on.html</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1265611230647"><id gr:original-id="c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7338516">tag:google.com,2005:reader/item/fe8f3bcd07166f9c</id><category term="ASP.NET" scheme="http://weblogs.asp.net/scottgu/archive/tags/ASP.NET/default.aspx" /><category term="Visual Studio" scheme="http://weblogs.asp.net/scottgu/archive/tags/Visual+Studio/default.aspx" /><category term=".NET" scheme="http://weblogs.asp.net/scottgu/archive/tags/.NET/default.aspx" /><title type="html">Built-in Charting Controls (VS 2010 and .NET 4 Series)</title><published>2010-02-08T05:54:52Z</published><updated>2010-02-08T05:54:52Z</updated><link rel="alternate" href="http://feeds.ericappel.net/~r/EricAppelsGoogleReaderSharedItems/~3/u5lffiaAQzY/built-in-charting-controls-vs-2010-and-net-4-series.aspx" type="text/html" /><summary xml:base="http://weblogs.asp.net/scottgu/default.aspx" type="html">&lt;font size="2" face="arial"&gt;   &lt;p&gt;[&lt;em&gt;In addition to blogging, I am also now using Twitter for quick updates and to share links. Follow me at: &lt;/em&gt;&lt;a href="http://www.twitter.com/scottgu"&gt;twitter.com/scottgu&lt;/a&gt;]&lt;/p&gt;    &lt;p&gt;This is the fifteenth in &lt;a href="http://weblogs.asp.net/scottgu/archive/2009/08/25/vs-2010-and-net-4-series.aspx"&gt;a series of blog posts&lt;/a&gt; I’m doing on the upcoming VS 2010 and .NET 4 release.  Today’s post covers a nice addition to ASP.NET and Windows Forms with .NET 4 - built-in charting control support.&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;ASP.NET and Windows Forms Charting Controls&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;A little over 14 months ago &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/11/24/new-asp-net-charting-control-lt-asp-chart-runat-quot-server-quot-gt.aspx"&gt;I blogged&lt;/a&gt; about how Microsoft was making available &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/11/24/new-asp-net-charting-control-lt-asp-chart-runat-quot-server-quot-gt.aspx"&gt;a free download of charting controls&lt;/a&gt; for both ASP.NET 3.5 and Windows Forms 3.5.  &lt;/p&gt;    &lt;p&gt;You can &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c&amp;amp;DisplayLang=en"&gt;download&lt;/a&gt; and use these runtime controls for free within your web and client applications today.  You can also &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=1D69CE13-E1E5-4315-825C-F14D33A303E9&amp;amp;displaylang=en"&gt;download VS 2008 tooling support&lt;/a&gt; for them.  They provide a rich set of charting capabilities that is easy to use.  To get a sense of what all you can do with them, I recommend &lt;a href="http://code.msdn.microsoft.com/mschart/Release/ProjectReleases.aspx?ReleaseId=1591"&gt;downloading the ASP.NET and Windows Forms sample projects&lt;/a&gt; which provide more than 200 samples within them.  Below is a screen-shot of some pie and doughnut chart samples from the ASP.NET sample application:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_14A80EFD.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_3F33CA0D.png" width="771" height="483"&gt;&lt;/a&gt; &lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Charting Controls Now Built-into .NET 4&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;With .NET 3.5 you had to separately download the chart controls and add them into your application.  With .NET 4 these controls are now built-into ASP.NET 4 and Windows Forms 4 – which means you can immediately take advantage of them out of the box (no separate download or registration required).  &lt;/p&gt;    &lt;p&gt;Within ASP.NET 4 applications you’ll find that there is now a new built-in &amp;lt;asp:chart&amp;gt; control within the “Data” tab of the Toolbox:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_7DEE9938.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px" title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_07D38AA4.png" width="209" height="345"&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;You can use this control without having to register or wire-up any configuration file entries.  All of the charting control configuration is now pre-registered with ASP.NET 4 (meaning nothing has to be added to an application’s web.config file for them to work).  This enables you to maintain &lt;a href="http://weblogs.asp.net/scottgu/archive/2009/08/25/clean-web-config-files-vs-2010-and-net-4-0-series.aspx"&gt;very clean and minimal Web.config files&lt;/a&gt;.&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Learning more about the &amp;lt;asp:chart&amp;gt; control&lt;/u&gt;&lt;/h3&gt;    &lt;p&gt;Scott Mitchell has written a great series of articles on the &lt;a href="http://www.4guysfromrolla.com"&gt;www.4guysfromrolla.com&lt;/a&gt; site on how to take advantage of the &amp;lt;asp:chart&amp;gt; control: &lt;/p&gt;    &lt;ol&gt;     &lt;li&gt;&lt;a href="http://www.4guysfromrolla.com/articles/072209-1.aspx"&gt;Getting Started&lt;/a&gt; - walks through getting started using the Chart Controls, from version requirements to downloading and installing the Chart Controls, to displaying a simple chart in an ASP.NET page. &lt;/li&gt;      &lt;li&gt;&lt;a href="http://www.4guysfromrolla.com/articles/072909-1.aspx"&gt;Plotting Chart Data&lt;/a&gt; - examines the multitude of ways by which data can be plotted on a chart, from databinding to manually adding the points one at a time. &lt;/li&gt;      &lt;li&gt;&lt;a href="http://www.4guysfromrolla.com/articles/081909-1.aspx"&gt;Rendering the Chart&lt;/a&gt; - the Chart Controls offer a variety of ways to render the chart data into an image. This article explores these options. &lt;/li&gt;      &lt;li&gt;&lt;a href="http://www.4guysfromrolla.com/articles/092309-1.aspx"&gt;Sorting and Filtering Chart Data&lt;/a&gt; - this article shows how to programmatically sort and filter the chart's data prior to display. &lt;/li&gt;      &lt;li&gt;&lt;a href="http://www.4guysfromrolla.com/articles/093009-1.aspx"&gt;Programmatically Generating Chart Images&lt;/a&gt; - learn how to programmatically create and alter the chart image file. &lt;/li&gt;      &lt;li&gt;&lt;a href="http://www.4guysfromrolla.com/articles/102809-1.aspx"&gt;Creating Drill Down Reports&lt;/a&gt; - see how to build drill down reports using the Chart control. &lt;/li&gt;      &lt;li&gt;&lt;a href="http://www.4guysfromrolla.com/articles/111809-1.aspx"&gt;Adding Statistical Formulas&lt;/a&gt; - learn how to add statistical formulas, such as mean, median, variance, and forecasts, to your charts. &lt;/li&gt;      &lt;li&gt;&lt;a href="http://www.4guysfromrolla.com/articles/121609-1.aspx"&gt;Enhancing Charts With Ajax&lt;/a&gt; - improve the user experience for dynamic and interactive charts using Ajax. &lt;/li&gt;      &lt;li&gt;&lt;a href="http://www.4guysfromrolla.com/articles/021010-1.aspx"&gt;Serializing Chart Data&lt;/a&gt; - see how to persist a chart's data and appearance to a persistent store.&lt;/li&gt;   &lt;/ol&gt;    &lt;p&gt;His articles are written using .NET 3.5 and the separate ASP.NET charting controls download – but all of the concepts and syntax work out of the box exactly the same with ASP.NET 4.&lt;/p&gt;    &lt;p&gt;Michael Ceranski has also written a blog post demonstrating &lt;a href="http://www.codecapers.com/post/Build-a-Dashboard-With-Microsoft-Chart-Controls.aspx"&gt;how to use the ASP.NET Chart control within an ASP.NET MVC application&lt;/a&gt;.  I’m hoping someone will create some nice ASP.NET MVC Html.Chart() helper methods soon that will make this even easier to do in the future.&lt;/p&gt;    &lt;p&gt;Hope this helps,&lt;/p&gt;    &lt;p&gt;Scott&lt;/p&gt; &lt;/font&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7338516" width="1" height="1"&gt;</summary><author><name>ScottGu</name></author><gr:likingUser>10309887133559368348</gr:likingUser><gr:likingUser>17279426870283839355</gr:likingUser><gr:likingUser>00349923678007780278</gr:likingUser><gr:likingUser>01852235597230985832</gr:likingUser><gr:likingUser>08427097977751126564</gr:likingUser><gr:likingUser>07973620331145683860</gr:likingUser><gr:likingUser>05109357712449655650</gr:likingUser><gr:likingUser>14711819254102419811</gr:likingUser><gr:likingUser>11218026139464319719</gr:likingUser><gr:likingUser>00623233618112133787</gr:likingUser><gr:likingUser>02717826839698415230</gr:likingUser><gr:likingUser>15086286868618880163</gr:likingUser><gr:likingUser>08614667491275899234</gr:likingUser><gr:likingUser>04459357931752533433</gr:likingUser><gr:likingUser>15897691948879148881</gr:likingUser><gr:likingUser>14230141221746186649</gr:likingUser><gr:likingUser>11557265923295503683</gr:likingUser><gr:likingUser>15878947812609034467</gr:likingUser><gr:likingUser>16002802316939065748</gr:likingUser><gr:likingUser>02073931606577577684</gr:likingUser><gr:likingUser>13766132353832566745</gr:likingUser><gr:likingUser>16922541974102092730</gr:likingUser><gr:likingUser>03449090585738063031</gr:likingUser><gr:likingUser>13456616995620280602</gr:likingUser><gr:likingUser>08917625262809329629</gr:likingUser><gr:likingUser>16757623000383160068</gr:likingUser><gr:likingUser>01522667555880430660</gr:likingUser><gr:likingUser>01090527177732473903</gr:likingUser><gr:likingUser>04292237857619242221</gr:likingUser><gr:likingUser>16716557904205785744</gr:likingUser><gr:likingUser>08536384567462259885</gr:likingUser><gr:likingUser>10056092657341408429</gr:likingUser><gr:likingUser>08365826596521191920</gr:likingUser><gr:likingUser>04315485523633724055</gr:likingUser><gr:likingUser>03388678489689001354</gr:likingUser><gr:likingUser>03102850062080352538</gr:likingUser><gr:likingUser>02310101272540334693</gr:likingUser><gr:likingUser>02800979329047749538</gr:likingUser><gr:likingUser>14835627415282604021</gr:likingUser><gr:likingUser>00742713948702314861</gr:likingUser><gr:likingUser>06396451786580225640</gr:likingUser><gr:likingUser>16330981327709240274</gr:likingUser><gr:likingUser>12787320273503445786</gr:likingUser><gr:likingUser>01917424822765277901</gr:likingUser><gr:likingUser>14919842138675301263</gr:likingUser><gr:likingUser>09543392838995549629</gr:likingUser><gr:likingUser>05400176637679967733</gr:likingUser><gr:likingUser>11626715477789759286</gr:likingUser><gr:likingUser>15672468047185108792</gr:likingUser><gr:likingUser>01233887755443623995</gr:likingUser><gr:likingUser>08919462868832053661</gr:likingUser><gr:likingUser>14799847426157557325</gr:likingUser><gr:likingUser>03189109805845390108</gr:likingUser><gr:likingUser>14261226687169365124</gr:likingUser><gr:likingUser>14474904128812204909</gr:likingUser><gr:likingUser>16701184055688078192</gr:likingUser><gr:likingUser>08221036579558509505</gr:likingUser><gr:likingUser>15088000192345130230</gr:likingUser><gr:likingUser>14621066292540280181</gr:likingUser><gr:likingUser>16413046933040593892</gr:likingUser><gr:likingUser>01078909911975297443</gr:likingUser><gr:likingUser>01444915250940505658</gr:likingUser><gr:likingUser>04137742721905861238</gr:likingUser><gr:likingUser>12758228311189399456</gr:likingUser><gr:likingUser>02074489473206560662</gr:likingUser><gr:likingUser>04364054918703653003</gr:likingUser><gr:likingUser>14325379451770802477</gr:likingUser><gr:likingUser>18343676128922251020</gr:likingUser><gr:likingUser>15717373346714991375</gr:likingUser><gr:likingUser>12338608284917447157</gr:likingUser><gr:likingUser>01624100574306365468</gr:likingUser><gr:likingUser>11261171537580430336</gr:likingUser><gr:likingUser>02971385870103157047</gr:likingUser><gr:likingUser>00461672296143446432</gr:likingUser><source gr:stream-id="feed/http://weblogs.asp.net/scottgu/rss.aspx"><id>tag:google.com,2005:reader/feed/http://weblogs.asp.net/scottgu/rss.aspx</id><title type="html">ScottGu&amp;#39;s Blog</title><link rel="alternate" href="http://weblogs.asp.net/scottgu/default.aspx" type="text/html" /></source><feedburner:origLink>http://weblogs.asp.net/scottgu/archive/2010/02/07/built-in-charting-controls-vs-2010-and-net-4-series.aspx</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1265386838161"><id gr:original-id="c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7335253">tag:google.com,2005:reader/item/b1216780dea007b7</id><category term="ASP.NET" scheme="http://weblogs.asp.net/scottgu/archive/tags/ASP.NET/default.aspx" /><category term=".NET" scheme="http://weblogs.asp.net/scottgu/archive/tags/.NET/default.aspx" /><category term="Community News" scheme="http://weblogs.asp.net/scottgu/archive/tags/Community+News/default.aspx" /><category term="MVC" scheme="http://weblogs.asp.net/scottgu/archive/tags/MVC/default.aspx" /><title type="html">ASP.NET MVC 2 (Release Candidate 2) Now Available</title><published>2010-02-05T08:44:26Z</published><updated>2010-02-05T08:44:26Z</updated><link rel="alternate" href="http://feeds.ericappel.net/~r/EricAppelsGoogleReaderSharedItems/~3/rQzZd87DEs0/asp-net-mvc-2-release-candidate-2-now-available.aspx" type="text/html" /><summary xml:base="http://weblogs.asp.net/scottgu/default.aspx" type="html">&lt;font size="2" face="arial"&gt;   &lt;p&gt;&lt;em&gt;[In addition to blogging, I am also now using Twitter for quick updates and to share links. Follow me at: &lt;/em&gt;&lt;a href="http://www.twitter.com/scottgu"&gt;twitter.com/scottgu&lt;/a&gt;&lt;em&gt;]&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;Earlier this evening the ASP.NET team shipped ASP.NET MVC (Release Candidate 2) for VS 2008/.NET 3.5.  You can download it &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7aba081a-19b9-44c4-a247-3882c8f749e3&amp;amp;displaylang=en"&gt;here&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;The RC2 release of ASP.NET MVC 2 is a follow-up to the first ASP.NET MVC 2 RC build that we shipped in December.  It includes a bunch of bug fixes, performance work, and some final API and behavior additions/changes.  Below are a few of the changes between the RC1 and RC2 release (read the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7aba081a-19b9-44c4-a247-3882c8f749e3&amp;amp;displaylang=en"&gt;release notes&lt;/a&gt; for even more details):&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;The new &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx"&gt;ASP.NET MVC 2 validation&lt;/a&gt; feature now performs model-validation instead of input-validation (this means that when you use model binding all model properties are validated instead of just validations on changed values of a model).  This behavior change was based on extensive feedback from the community.&lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;The new &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/01/10/asp-net-mvc-2-strongly-typed-html-helpers.aspx"&gt;strongly-typed HTML input helpers&lt;/a&gt; now support lambda expressions which reference array or collection indexes.  This means you can now write code like &lt;em&gt;Html.EditorFor(m=&amp;gt;m.Orders[i])&lt;/em&gt; and have it correctly output an HTML &amp;lt;input&amp;gt; element whose “name” attribute contains the index (e.g. Orders[0] for the first element), and whose “value” contains the appropriate value.&lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;The new templated Html.EditorFor() and Html.DisplayFor() helper methods now auto-scaffold simple properties (and do not render complex sub-properties by default).  This makes it easier to generate automatic scaffolded forms.  I’ll be covering this support in a future blog post.&lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;The “id” attribute of client-script validation message elements is now cleaner.  With RC1 they had a &lt;em&gt;form0_&lt;/em&gt; prefix.  Now the id value is simply the input form element name postfixed with a validationMessage string (e.g. &lt;em&gt;unitPrice_validationMessage&lt;/em&gt;). &lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;The Html.ValidationSummary() helper method now takes an optional boolean parameter which enables you to control whether only model-level validation messages are rendered by it, or whether property level validation messages are rendered as well.  This provides you with more UI customization options for how validation messages are displayed within your UI.&lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;The AccountController class created with the default ASP.NET MVC Web Application project template is cleaner.&lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;Visual Studio now includes scaffolding support for Delete action methods within Controllers, as well as Delete views (I always found it odd that the default T4 templates didn’t support this before).&lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;jQuery 1.4.1 is now included by default with new ASP.NET MVC 2 projects, along with a –vsdoc file that provides Visual Studio documentation intellisense for it.&lt;/li&gt;   &lt;/ul&gt;    &lt;ul&gt;     &lt;li&gt;The RC2 release has some significant performance tuning improvements (for example: the lambda based strongly-typed HTML helpers are now much faster).&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;Today’s RC2 release only work with VS 2008 and .NET 3.5.  We’ll shortly be releasing the VS 2010 RC (which will be available for everyone to download). It will include ASP. NET MVC 2 support built-in (no separate download required).&lt;/p&gt;    &lt;p&gt;Hope this helps,&lt;/p&gt;    &lt;p&gt;Scott &lt;/p&gt;    &lt;p&gt;P.S. The source code for the ASP.NET MVC RC2 release (along with a MVC futures library that goes with it) can be downloaded &lt;a href="http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=39978"&gt;here&lt;/a&gt;. You can learn even more about ASP.NET MVC 2 by reading the &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/01/10/asp-net-mvc-2.aspx"&gt;ASP.NET MVC 2 blog series&lt;/a&gt; I’m working on.&lt;/p&gt; &lt;/font&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7335253" width="1" height="1"&gt;</summary><author><name>ScottGu</name></author><gr:likingUser>10309887133559368348</gr:likingUser><gr:likingUser>14298926834408922932</gr:likingUser><gr:likingUser>09781118193493905779</gr:likingUser><gr:likingUser>08314234498124954361</gr:likingUser><gr:likingUser>15274783359877012242</gr:likingUser><gr:likingUser>17244327991739461530</gr:likingUser><gr:likingUser>06673555102045736795</gr:likingUser><gr:likingUser>03502105852178613269</gr:likingUser><gr:likingUser>03406630769001936107</gr:likingUser><gr:likingUser>14230141221746186649</gr:likingUser><gr:likingUser>00394364864108812594</gr:likingUser><gr:likingUser>16002802316939065748</gr:likingUser><gr:likingUser>14247039669177923064</gr:likingUser><gr:likingUser>11279274765662511594</gr:likingUser><gr:likingUser>16716557904205785744</gr:likingUser><gr:likingUser>15329844857582202524</gr:likingUser><gr:likingUser>08365826596521191920</gr:likingUser><gr:likingUser>14210500916889982619</gr:likingUser><gr:likingUser>09543392838995549629</gr:likingUser><gr:likingUser>02210774433625347582</gr:likingUser><gr:likingUser>05400176637679967733</gr:likingUser><gr:likingUser>01233887755443623995</gr:likingUser><gr:likingUser>08933199316533331536</gr:likingUser><gr:likingUser>03189109805845390108</gr:likingUser><gr:likingUser>06283702883459862289</gr:likingUser><gr:likingUser>08221036579558509505</gr:likingUser><gr:likingUser>15081740430062808120</gr:likingUser><gr:likingUser>01585503786485790904</gr:likingUser><gr:likingUser>05163123731033850239</gr:likingUser><gr:likingUser>01078909911975297443</gr:likingUser><gr:likingUser>14164218460153381463</gr:likingUser><gr:likingUser>04916226592920978643</gr:likingUser><gr:likingUser>18394520051154723415</gr:likingUser><gr:likingUser>10186649026562681018</gr:likingUser><gr:likingUser>15717373346714991375</gr:likingUser><gr:likingUser>02317288365193188868</gr:likingUser><gr:likingUser>03292758868659266469</gr:likingUser><gr:likingUser>07113703849431256645</gr:likingUser><gr:likingUser>16657789510663194227</gr:likingUser><gr:likingUser>11261171537580430336</gr:likingUser><gr:likingUser>02971385870103157047</gr:likingUser><source gr:stream-id="feed/http://weblogs.asp.net/scottgu/rss.aspx"><id>tag:google.com,2005:reader/feed/http://weblogs.asp.net/scottgu/rss.aspx</id><title type="html">ScottGu&amp;#39;s Blog</title><link rel="alternate" href="http://weblogs.asp.net/scottgu/default.aspx" type="text/html" /></source><feedburner:origLink>http://weblogs.asp.net/scottgu/archive/2010/02/05/asp-net-mvc-2-release-candidate-2-now-available.aspx</feedburner:origLink></entry></feed>
