<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://siteexperts.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fsiteexperts.spaces.live.com%2fcategory%2fLive__x1com%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Scott's "SiteExperts" Place: Live.com</title><description /><link>http://siteexperts.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&amp;_c=BlogPart&amp;partqs=catLive__x1com</link><language>en-US</language><pubDate>Thu, 28 Aug 2008 05:30:13 GMT</pubDate><lastBuildDate>Thu, 28 Aug 2008 05:30:13 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><cf:parentRSS>http://siteexperts.spaces.live.com/blog/feed.rss</cf:parentRSS><live:type>blogcategory</live:type><live:identity><live:id>-3572391539995137421</live:id><live:alias>siteexperts</live:alias></live:identity><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>What we learned building Live.com (or why are we slow)?</title><link>http://siteexperts.spaces.live.com/Blog/cns!CE6C50D25BFAAA73!4852.entry</link><description>&lt;div style="font-size:115%"&gt;
&lt;div&gt;Over the last 18 months, we have explored how to build a highly-interactive, customizable, and extensible portal. The first iteration was a simple portal on &lt;a href="http://www.start.com/"&gt;Start.com&lt;/a&gt;. We created various iterations (&lt;a href="http://www.start.com/1"&gt;start.com/1&lt;/a&gt;, &lt;a href="http://www.start.com/2"&gt;start.com/2&lt;/a&gt;, &lt;a href="http://www.start.com/3"&gt;start.com/3&lt;/a&gt;) which have evolved into the first fully extensible portal on &lt;a href="http://www.live.com/"&gt;Live.com&lt;/a&gt;. Today, from &lt;a href="http://www.live.com/"&gt;Live.com&lt;/a&gt; to the Kahuna (&lt;a href="http://www.hotmail.com/"&gt;Hotmail&lt;/a&gt;) beta to &lt;a href="http://spaces.msn.com/"&gt;MSN Spaces&lt;/a&gt;, and so-on, we are investing heavily in building very rich, interactive experiences. With these investments, we are learning a great deal on the right and wrong ways to engineer rich, interactive web-sites. &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Underneath all our Windows Live properties, we share a common framework for how we engineer our client experiences. The framework is very client-centric where we composite most of the page client-side. For example, if you were to view Live.com’s HTML, you will notice that it serves a web-page “shell” and meta-data that describes the content. This meta-data is interpreted by the Live.com application and then rendered. This approach is extraordinarily flexible as we can quickly enhance and extend the application without any heavy server lifting. However, as we have learned and is being evidenced by our customers, without care, performance degradation can quickly outweigh all other benefits.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;As you examine Live.com, and for the technically savvy, explore the underlying browser technology, it is easy to question whether we as Microsoft and the industry as a whole are pushing the browser too far.  The current crop of rich applications while cool and interactive are starting to fare poorly performance-wise against their traditional brethren. So much so that an often posed question is, where do we go from here?  And is it time to reexamine building rich applications?&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;First, let’s step back and very briefly look at the web versus traditional software. With traditional software, you would go through various design phases starting from specifications, to architecture documentation, to development, to usability testing, to testing, and eventually to ship. The entire approach had a fairly long lead time (up to years). Once released, updating the software was difficult and many times very cost prohibitive. This created a very high-bar.  The web has removed almost all those barriers. On the web, we can now experiment and develop software with near real-time feedback and very fast release cycles.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;I view the Web 2.0 phenomena as being very early in the development lifecycle. I am not prepared to dismiss any approach, pattern, or methodology as we are still in the learning phases. In the case of Windows Live, as we push the browser, we are also learning a great deal.  Examining performance specifically - when I look at Live.com today, I see incredible innovation. We are pushing the limits of extensibility (gadgets), reuse (shared frameworks across all our properties), and are taking chances to drive new user-experience standards (look at how we present search results).  On the contrary, I also see an application whose performance is starting to become painful to use. The page currently takes a long time to load, especially on the first visit.  Beyond our user’s feedback (we do read all messages), broader industry pundits are quick to throw in the towel on the entire technology.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;We are taking a different approach to this problem. We are challenging ourselves to prove that we can architect a performance driven, rich extensible experience. We are leveraging our gained knowledge shipping the many iterations of Start.com and all the beta products we are developing to improve our shared architecture and drive best patterns.  Using the current Live.com as a simple case study, below I illustrate a few of the performance-oriented technical issues that we are working on quickly addressing:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Manage your Connections Carefully&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;If you were to examine Live.com at the network level, a reasonable person would quickly conclude that we are making too many connections. We decomposed this issue as follows: First, we are hitting an IE 6 issue that causes un-cached images applied dynamically via script to download on each reference. This issue typically manifests itself on slower connections – the time when bandwidth is most at a premium.  We are baking a solution to this problem directly into our frameworks so that we pre-cache dynamically applied images before reuse. Next, every RSS feed and Gadget manifest is a unique request. This creates a web-page that is very “chatty” – an AJAX characteristic that you should work to avoid.  We will solve this by intelligently batching multiple requests into a single request (and are exploring even more efficient means for the longer-term)&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Parsing XML is Slow&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;We have also learned that merely parsing the RSS XML can be expensive in the browser. When we parse RSS, we are merely translating it into Javascript structures to be further manipulated. Since our server’s are already normalizing feeds to a standard format, instead of serving the RSS feed directly, we are going to translate the feed directly to JSON (Javascript structures). As a simple benchmark, on my fast developer machine we went from 400ms to parse 150K of RSS to 15ms to “execute” the JSON response.  &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Caching and Connection Management is Essential&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;Network bandwidth and connections are a scarce resource. Managing them is essential to providing fast experiences (especially for subsequent loads).  We are evaluating the optimal approaches for splitting resources across multiple servers to leverage as many simultaneous connections at once (the browser is limited to 2 active connections per domain).  We are also reviewing all resources to make sure they are set with appropriate expirations. In general, almost all content should have expiration, even a very short one (e.g., if the user leaves the page and hits the back button, the page should be re-rendered entirely from the cache).&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Staging the Application&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;One of the biggest challenges with a very rich web-application is deploying the code. The richer the site, the more code that is needed. In the case of Live.com today, the entire application deploys before anything renders. However, our underlying framework supports dynamic and prioritized deployment – we just were not properly leveraging it. We are now focusing leveraging this pattern so that we can “stage” the application. We will be able to deploy the minimal code necessary to retrieve content and render the page and subsequently download features in priority order (e.g., render, then get drag-drop code, then get the RSS image rotator code, etc). For features not yet in use or visible, we can deploy those last or even on demand. Staging an application is fundamental to maintaining high-degrees of perceived performance.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Server versus Client Rendering&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;Traditional web-pages are generated via the server.  Live.com and many of our properties are very client-centric where the client constructs the web-page from the user’s meta-data. In general, the first time a web-page loads, a server-generated page will almost always be faster. However, with a properly architected web application, we are discovering that our subsequent loads on a client-side generated page (especially when we stage the application) can be much faster than a server-oriented page. This occurs because our client-oriented approach is highly cacheable and loads asynchronously, even off the cache. The only content we need to download is the user’s meta-data.  The rest of the page, scripts, and behaviors are cached indefinitely.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;This summarizes a few of the performance-driven challenges we are addressing. Internally, we have developed a complete prototype that validates we can build a high-performance, scalable version of Live.com that load and run near-instantly to within seconds (on broadband).  We are working on integrating these improvements into the shipping site as quickly as possible. Over the coming weeks and months, expect to see continuous noticeable improvements.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Update: Beyond performance, the Live.com team just &lt;a href="http://spaces.msn.com/livecom/blog/cns!D4909E7F27E254E9!1234.entry"&gt;posted the goals &lt;/a&gt;for the Live.com page.  &lt;/div&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3572391539995137421&amp;page=RSS%3a+What+we+learned+building+Live.com+(or+why+are+we+slow)%3f&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=siteexperts.spaces.live.com&amp;amp;GT1=siteexperts"&gt;</description><comments>http://siteexperts.spaces.live.com/Blog/cns!CE6C50D25BFAAA73!4852.entry#comment</comments><guid isPermaLink="true">http://siteexperts.spaces.live.com/Blog/cns!CE6C50D25BFAAA73!4852.entry</guid><pubDate>Tue, 25 Apr 2006 23:29:32 GMT</pubDate><slash:comments>271</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://siteexperts.spaces.live.com/blog/cns!CE6C50D25BFAAA73!4852/comments/feed.rss</wfw:commentRss><wfw:comment>http://siteexperts.spaces.live.com/Blog/cns!CE6C50D25BFAAA73!4852.entry#comment</wfw:comment><dcterms:modified>2006-04-26T21:14:42Z</dcterms:modified></item><item><title>The Live.com team has outdone themselves...</title><link>http://siteexperts.spaces.live.com/Blog/cns!CE6C50D25BFAAA73!4294.entry</link><description>&lt;div style="font-size:115%"&gt;
&lt;div&gt;Go check out &lt;a href="http://www.live.com/"&gt;http://www.live.com&lt;/a&gt;.  &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;I expect to see more posts from the team after they get back from some much needed rest.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;The experience and features have been heavily updated. A few highlights to check out:&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Heavily updated look and feel.
&lt;li&gt;Multiple pages to help organize your content. Quickly rename and rearrange your pages (drag and drop them)
&lt;li&gt;Adding content is much easier (and again, just drag an item from the list onto your page)
&lt;li&gt;The coolest updated feature: Search (including extensible macros).  Try the infinite scroller to move through the lists, click on the drop-down to find macros to extend your search experience.
&lt;li&gt;Built in gadgets have an enhanced look and feel.&lt;/ol&gt;
&lt;p&gt;Explore. I am sure you will find more great stuff.
&lt;p&gt; 
&lt;div&gt; &lt;/div&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3572391539995137421&amp;page=RSS%3a+The+Live.com+team+has+outdone+themselves...&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=siteexperts.spaces.live.com&amp;amp;GT1=siteexperts"&gt;</description><comments>http://siteexperts.spaces.live.com/Blog/cns!CE6C50D25BFAAA73!4294.entry#comment</comments><guid isPermaLink="true">http://siteexperts.spaces.live.com/Blog/cns!CE6C50D25BFAAA73!4294.entry</guid><pubDate>Wed, 08 Mar 2006 08:10:12 GMT</pubDate><slash:comments>101</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://siteexperts.spaces.live.com/blog/cns!CE6C50D25BFAAA73!4294/comments/feed.rss</wfw:commentRss><wfw:comment>http://siteexperts.spaces.live.com/Blog/cns!CE6C50D25BFAAA73!4294.entry#comment</wfw:comment><dcterms:modified>2006-03-08T08:10:12Z</dcterms:modified></item><item><title>Other MSN/ Live Developer Developments</title><link>http://siteexperts.spaces.live.com/Blog/cns!CE6C50D25BFAAA73!3864.entry</link><description>&lt;div style="font-size:115%"&gt;
&lt;div&gt;Two more interesting links...&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Live.com&lt;/div&gt;
&lt;div&gt;Steve Rider saved me a long post by posting the&lt;a href="http://microsoftgadgets.com/forums/1813/ShowPost.aspx"&gt; long list of enhancements &lt;/a&gt;with the latest Windows Live update.   I suggest checking it out (&lt;a href="http://microsoftgadgets.com/forums/1813/ShowPost.aspx"&gt;http://microsoftgadgets.com/forums/1813/ShowPost.aspx&lt;/a&gt;)&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Also, slightly old news, but Spaces released metaweblog API support earlier this month.  You can find some details at &lt;a href="http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=30625275-9604-49e3-9314-39d27a5649fb"&gt;Dare's blog&lt;/a&gt; and there is a &lt;a href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=198&amp;amp;SiteID=1"&gt;MSDN discussion forum&lt;/a&gt; (&lt;a href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=198&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=198&amp;amp;SiteID=1&lt;/a&gt;).&lt;/div&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3572391539995137421&amp;page=RSS%3a+Other+MSN%2f+Live+Developer+Developments&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=siteexperts.spaces.live.com&amp;amp;GT1=siteexperts"&gt;</description><comments>http://siteexperts.spaces.live.com/Blog/cns!CE6C50D25BFAAA73!3864.entry#comment</comments><guid isPermaLink="true">http://siteexperts.spaces.live.com/Blog/cns!CE6C50D25BFAAA73!3864.entry</guid><pubDate>Fri, 16 Dec 2005 18:48:37 GMT</pubDate><slash:comments>31</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://siteexperts.spaces.live.com/blog/cns!CE6C50D25BFAAA73!3864/comments/feed.rss</wfw:commentRss><wfw:comment>http://siteexperts.spaces.live.com/Blog/cns!CE6C50D25BFAAA73!3864.entry#comment</wfw:comment><dcterms:modified>2005-12-16T18:51:18Z</dcterms:modified></item><item><title>www.Live.com and Opera 9 Preview Support</title><link>http://siteexperts.spaces.live.com/Blog/cns!CE6C50D25BFAAA73!3855.entry</link><description>&lt;div style="font-size:115%"&gt;
&lt;div&gt;We released an update to the Windows Live Home Page  today with a number of changes and improvements around Gadgets (&lt;a href="http://spaces.msn.com/members/sanaz/Blog/cns!1pjMasE-oWf_4mTADbVaTnXg!940.entry"&gt;See Sanaz's blog for detail&lt;/a&gt;). &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;I believe one new feature is very much worth calling out.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;The past few weeks, we have been talking to the Opera team on how to enable Live.com for Opera users (big Kudos to the Opera team for fantastic support). While not yet perfect, we have gotten much of &lt;a href="http://www.live.com/"&gt;www.Live.com&lt;/a&gt; working with the &lt;a href="http://snapshot.opera.com/"&gt;Opera 9 preview&lt;/a&gt; (we only validated against the Windows version). We are still working through some Gadget issues (e.g., the weather component does not work) but this is a big step forward.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3572391539995137421&amp;page=RSS%3a+www.Live.com+and+Opera+9+Preview+Support&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=siteexperts.spaces.live.com&amp;amp;GT1=siteexperts"&gt;</description><comments>http://siteexperts.spaces.live.com/Blog/cns!CE6C50D25BFAAA73!3855.entry#comment</comments><guid isPermaLink="true">http://siteexperts.spaces.live.com/Blog/cns!CE6C50D25BFAAA73!3855.entry</guid><pubDate>Fri, 16 Dec 2005 06:13:58 GMT</pubDate><slash:comments>46</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://siteexperts.spaces.live.com/blog/cns!CE6C50D25BFAAA73!3855/comments/feed.rss</wfw:commentRss><wfw:comment>http://siteexperts.spaces.live.com/Blog/cns!CE6C50D25BFAAA73!3855.entry#comment</wfw:comment><dcterms:modified>2005-12-19T16:42:15Z</dcterms:modified></item></channel></rss>