<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://denster.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fdenster.spaces.live.com%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>Denny Lee's Windows Live Space</title><description>SQL, Analysis Services, Data Mining, Data Warehousing, and Medical Informatics</description><link>http://denster.spaces.live.com/</link><language>en-US</language><pubDate>Sat, 16 Aug 2008 04:21:23 GMT</pubDate><lastBuildDate>Sat, 16 Aug 2008 04:21:23 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><live:identity><live:id>1323305814572094295</live:id><live:alias>denster</live:alias></live:identity><image><title>Denny Lee's Windows Live Space</title><url>http://byfiles.storage.live.com/y1pnBPxW_D7DqxOiB4_ilOId7l1OgzKZyBSfvWzASSb_XFjM1DR1YpYDTUcd0zy0LI0</url><link>http://denster.spaces.live.com/</link></image><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>Reporting Services Performance and Scalability Technical Notes</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1523.entry</link><description>&lt;div&gt;Over the next few months, I will be publishing a series of technical notes on &lt;a href="http://sqlcat.com"&gt;sqlcat.com&lt;/a&gt; that provide guidance on how to build and deploy large scale SQL Server Reporting Services environments.  This series provides general guidance on how to set up, implement, and optimize an enterprise scale-out architecture for your SQL Server Reporting Services (SSRS) environment; these notes provide guidance for both SQL Server 2005 and 2008 Reporting Services. &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align=left&gt;&lt;strong&gt;&lt;a href="http://sqlcat.com/technicalnotes/archive/2008/06/05/reporting-services-scale-out-architecture.aspx"&gt;Reporting Services Scale-Out Architecture&lt;/a&gt;: &lt;/strong&gt;The focus of this technical note is the Reporting Services scale-out architecture, which is referenced throughout this technical note series.&lt;/div&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align=left&gt;&lt;b&gt;&lt;a href="http://sqlcat.com/technicalnotes/archive/2008/06/26/report-server-catalog-best-practices.aspx"&gt;&lt;font color="#800080"&gt;Report Catalog Best Practices&lt;/font&gt;&lt;/a&gt;&lt;/b&gt;: Provides guidance and best practices on the report server catalogs—the underlying databases that provide metadata (parameters, snapshots, history, etc.) used by Reporting Services to provide your reports. &lt;/div&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align=left&gt;&lt;b&gt;SSRS Scale-Out Deployment Best Practices &lt;i&gt;[link provided when published]&lt;/i&gt;&lt;/b&gt;: Provides guidance and best practices on deployment details for scaling out your Reporting Services environment including configurations and the use of File System snapshots. &lt;/div&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align=left&gt;&lt;b&gt;SSRS Performance Optimization Configurations &lt;i&gt;[link provided when published]&lt;/i&gt;&lt;/b&gt;: Provides guidance and best practices on using specific Reporting Services features and configurations to optimize the performance of your Reporting Services environment. &lt;/div&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align=left&gt;&lt;b&gt;SSRS Troubleshooting Tips &lt;i&gt;[link provided when published]&lt;/i&gt;&lt;/b&gt;: Provides various troubleshooting tips that are helpful to better understand issues that may occur within your Reporting Services environment&lt;/div&gt;&lt;/ul&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+Reporting+Services+Performance+and+Scalability+Technical+Notes&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=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><category>Reporting Services</category><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1523.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1523.entry</guid><pubDate>Tue, 01 Jul 2008 09:15:29 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1523/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1523.entry#comment</wfw:comment><dcterms:modified>2008-07-01T09:15:29Z</dcterms:modified></item><item><title>Great Data Mining resource</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1492.entry</link><description>&lt;div&gt;To learn more information about  Data Mining, check out the Rafal Lukawiecki's TechNet Spotlight at: &lt;a href="http://www.microsoft.com/emea/spotlight/event.aspx?id=99"&gt;http://www.microsoft.com/emea/spotlight/event.aspx?id=99&lt;/a&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Data Mining and Business Intelligence for Enterprises &lt;br&gt;&lt;/strong&gt;In this one-day seminar, Rafal Lukawiecki aims to show IT Professionals how data mining can be used in IT infrastructure to support real business scenarios demystifying the perception that Data Mining is complex, untested or only for specialists. This has become possible since Microsoft has taken the technology to new levels making it accessible to all. In four easy-to-understand yet packed with practical information sessions you will learn about what Data Mining and Business Intelligence can do for you, how to deploy and manage it, how to use it, and how to make it available to other parts of your IT environment.&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.microsoft.com/emea/spotlight/sessionh.aspx?videoid=865"&gt;Introduction to Data Mining&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.microsoft.com/emea/spotlight/sessionh.aspx?videoid=866"&gt;Working with Data Mining&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.microsoft.com/emea/spotlight/sessionh.aspx?videoid=867"&gt;Using Data Mining with your IT Systems (Part 1)&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.microsoft.com/emea/spotlight/sessionh.aspx?videoid=868"&gt;Using Data Mining with your IT Systems (Part 2)&lt;/a&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Enjoy!&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+Great+Data+Mining+resource&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=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><category>Analysis Services</category><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1492.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1492.entry</guid><pubDate>Mon, 02 Jun 2008 17:40:26 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1492/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1492.entry#comment</wfw:comment><dcterms:modified>2008-06-02T17:40:26Z</dcterms:modified></item><item><title>Analysis Services Distinct Count Optimization</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1461.entry</link><description>&lt;div&gt;Finally, after about 7 months of analysis, customer validation, and just general randomization - I have finally propped up the Analysis Services Distinct Count Optimization whitepaper which is available here: &lt;a href="http://sqlcat.com/whitepapers/archive/2008/04/17/analysis-services-distinct-count-optimization.aspx"&gt;http://sqlcat.com/whitepapers/archive/2008/04/17/analysis-services-distinct-count-optimization.aspx&lt;/a&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;u&gt;&lt;em&gt;Quick summary of this whitepaper:&lt;/em&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div&gt;Distinct count (such as unique visitor counts on a Web site) calculations provide valuable information but come with a number of performance challenges. This white paper describes tests that were performed to determine how best to optimize these calculations and includes best practices based on the test results.&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=1323305814572094295&amp;page=RSS%3a+Analysis+Services+Distinct+Count+Optimization&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=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><category>Analysis Services</category><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1461.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1461.entry</guid><pubDate>Thu, 17 Apr 2008 22:15:59 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1461/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1461.entry#comment</wfw:comment><dcterms:modified>2008-04-17T22:15:59Z</dcterms:modified></item><item><title>Introducing SQLCAT.com</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1445.entry</link><description>&lt;div&gt;
&lt;p&gt;The SQL Customer Advisory Team has put the final touches on the site &lt;a href="http://sqlcat.com/"&gt;&lt;u&gt;&lt;font color="#800080"&gt;http://sqlcat.com/&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; which is our new hub for all things that are part of the SQLCAT!  Our new site is a portal to all SQLCAT resources including:
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Top 10 Lists&lt;/em&gt;: Summary list of Best Practices and Recommendations 
&lt;li&gt;&lt;em&gt;Technical Notes&lt;/em&gt;: Deep level technical short papers 
&lt;li&gt;&lt;em&gt;Technical Spotlights&lt;/em&gt;: Technical end-to-end customer case studies 
&lt;li&gt;&lt;strong&gt;Searchable&lt;/strong&gt; and &lt;strong&gt;Tagger&lt;/strong&gt; friendly; post comments and provide feedback! 
&lt;li&gt;Search all of our &lt;em&gt;SQLCAT Best Practices Whitepapers &lt;/em&gt;
&lt;li&gt;Easily find our SQLCAT Blogs and other materials&lt;/ul&gt;
&lt;p&gt;The site is regularly updated with deep technical information on enterprise SQL implementations.
&lt;p&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+Introducing+SQLCAT.com&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=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><category>SQL</category><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1445.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1445.entry</guid><pubDate>Sun, 03 Feb 2008 21:22:15 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1445/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1445.entry#comment</wfw:comment><dcterms:modified>2008-02-03T21:22:15Z</dcterms:modified></item><item><title>SQL 2008 Case Study on Auditing, DMF, Encryption, Performance, Resource Governor, and Reporting Services</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1433.entry</link><description>&lt;div&gt;One of the first case studies for SQL Server 2008 was developed by Caregroup Healthcare Group using various features of SQL Server 2008 for their 2TB patient information system.  The case study goes into their use of Advanced Data Auditing, Transparent Data Encryption, Declarative Management Framework, Performance Data Collection, Resource Governor, and Reporting Services to provide a high performance Patient Billing and Lab Results database.  For more information, please refer to the &lt;a href="http://www.microsoft.com/casestudies/casestudy.aspx?casestudyid=4000001003"&gt;Caregroup SQL Server 2008 case study&lt;/a&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=1323305814572094295&amp;page=RSS%3a+SQL+2008+Case+Study+on+Auditing%2c+DMF%2c+Encryption%2c+Performance%2c+Resource+Governor%2c+and+Reporting+Services&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=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><category>SQL</category><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1433.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1433.entry</guid><pubDate>Tue, 11 Dec 2007 22:36:09 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1433/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1433.entry#comment</wfw:comment><dcterms:modified>2007-12-11T22:36:09Z</dcterms:modified></item><item><title>Correction to our PASS Reporting Services Slides</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1422.entry</link><description>&lt;div&gt;As some of you may or may not know, Lukasz Pawlowski and I had presented the deck &lt;a href="https://www.sqlpass.org/summit/Pages/default.aspx"&gt;Building &amp;amp; Deploying Large Scale SSRS farms using Lessons Learned from Customer Deployments (DBA-416-M)&lt;/a&gt; at the 2007 SQL PASS conference.  In one of our slides, I had indicated inexplictly that &amp;quot;RS runs only on x64 only&amp;quot;.  I must have been guilty of copying/pasting from some other slides because RS 2005 indeed does work on IA64 (there are many customers that can attest to that).  In general, x64 is a more common deployment for RS because it is often less expensive (and IA64 being reserved for SQL).  Saying this, yes, RS2005 does work on IA64.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;If you want to know more information about Reporting Services, please don't forget to head to Lukasz's excellent blog &lt;a href="http://blogs.msdn.com/lukaszp/"&gt;Musings on Reporting Services and Notification Services&lt;/a&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=1323305814572094295&amp;page=RSS%3a+Correction+to+our+PASS+Reporting+Services+Slides&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=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><category>Reporting Services</category><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1422.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1422.entry</guid><pubDate>Thu, 08 Nov 2007 07:38:30 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1422/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1422.entry#comment</wfw:comment><dcterms:modified>2007-11-08T07:39:49Z</dcterms:modified></item><item><title>Analysis Services: For Distinct Count measure NULL = 0</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1419.entry</link><description>&lt;p&gt;If you are to look at the table of values where you want to do a distinct count on the ID column 
&lt;table cellspacing=0 cellpadding=2 width=200 border=1&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign=top width=99&gt;&lt;strong&gt;ID&lt;/strong&gt; 
&lt;td valign=top width=99&gt;&lt;strong&gt;ColA&lt;/strong&gt; 
&lt;tr&gt;
&lt;td valign=top width=99&gt;NULL 
&lt;td valign=top width=99&gt;blah 
&lt;tr&gt;
&lt;td valign=top width=99&gt;NULL 
&lt;td valign=top width=99&gt;blah 
&lt;tr&gt;
&lt;td valign=top width=99&gt;0 
&lt;td valign=top width=99&gt;blah 
&lt;tr&gt;
&lt;td valign=top width=99&gt;3 
&lt;td valign=top width=99&gt;blah 
&lt;tr&gt;
&lt;td valign=top width=99&gt;1 
&lt;td valign=top width=99&gt;blah 
&lt;tr&gt;
&lt;td valign=top width=99&gt;1 
&lt;td valign=top width=99&gt;blah 
&lt;tr&gt;
&lt;td valign=top width=99&gt;2 
&lt;td valign=top width=99&gt;blah 
&lt;tr&gt;
&lt;td valign=top width=99&gt;2 
&lt;td valign=top width=99&gt;blah&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Within SQL, you will get a value of 4 in which there are four distinct values, 0, 1, 2, 3 and NULL is not counted. 
&lt;p&gt;But within Analysis Services, if you were to put a distinct count measure on top of the ID column, you would also get a value of 4 for four distinct values, but those distinct values are 1, 2, 3, and 0.  In this situation, NULL and 0 are the same value.  This is a little bit more apparent if your table had the values of 
&lt;table cellspacing=0 cellpadding=2 width=200 border=1&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign=top width=99&gt;&lt;strong&gt;ID&lt;/strong&gt; 
&lt;td valign=top width=99&gt;&lt;strong&gt;ColA&lt;/strong&gt; 
&lt;tr&gt;
&lt;td valign=top width=99&gt;1 
&lt;td valign=top width=99&gt;blah 
&lt;tr&gt;
&lt;td valign=top width=99&gt;2 
&lt;td valign=top width=99&gt;blah 
&lt;tr&gt;
&lt;td valign=top width=99&gt;2 
&lt;td valign=top width=99&gt;blah 
&lt;tr&gt;
&lt;td valign=top width=99&gt;3 
&lt;td valign=top width=99&gt;blah 
&lt;tr&gt;
&lt;td valign=top width=99&gt;NULL 
&lt;td valign=top width=99&gt;blah&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Within SQL, you will get a value of 3 (distinct values of 1, 2, and 3) but within AS, you will get a value of 4 (distinct values of 1, 2, 3, and NULL or 0).  There are various philosophical reasons why this is happening ranging from the fact that there are actually quite a few definitions for what NULL is (I really don't want to get into that) and within AS we're looking at things from a multi-dimensional point of view (i.e. from the dimension members) hence the exclusion of a NULL value implies exclusion of the rows.  Regardless of the philosophical point of view on this, one should just be aware of this when working with their distinct count measures. 
&lt;p&gt;Oh note, thanks to John Lam for reminding me that if you turn on the NullProcessing property it will preserve the NULL value - i.e. the first table will have 5 distinct values of 0, 1, 2, 3, and NULL.
&lt;p&gt; &lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+Analysis+Services%3a+For+Distinct+Count+measure+NULL+%3d+0&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=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><category>Analysis Services</category><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1419.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1419.entry</guid><pubDate>Fri, 02 Nov 2007 07:07:55 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1419/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1419.entry#comment</wfw:comment><dcterms:modified>2007-11-10T04:59:27Z</dcterms:modified></item><item><title>CMU/MSR Mindswap on Privacy</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1413.entry</link><description>&lt;div&gt;As some of you may have noticed in some of my more recent blog postings, I have started writing about my interest in the field of privacy.  With all that is going on these days with tonnes of information floating on the web and the ability to join disparate data sources together to reveal interesting patterns (or individuals) - it will become imperative that we find ways to guarantee privacy of the individual if we are ever to find interesting patterns within our data.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;The example that I had used with my &lt;a href="http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1402.entry"&gt;most recent blog on the subject of privacy and Channel 8 interview&lt;/a&gt; was that of data mining in medical research.  In this specific example, I had noted that I had performed data mining (using Analysis Services of course) against phenotypic (i.e. not genetic) information of Asthmatic patients.  An interesting tid bit I like quoting from this research is that if an asthmatic patient misses their regular scheduled appointments, s/he may have 2x times greater chance of suffering from an asthmatic adverse event (death, hospitalization, ER visit).  Now, to give context, the number of adverse events were quite small to begin with and the subsequent analysis can explain that this most likely has to do with the fact that people who didn't skip their visits were typically more proactive to their health instead of reactive (i.e. would not wait until they were really sick before getting a checkup or visit to prevent their asthma from getting worse).  &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;One of the issues that I had while I was doing this analysis was that of the issues revolving around privacy.  I (rightly so) had to go through a lot of hoops in order to make sure that I had the data within a safe environment and the analysis I was doing would not reveal who an individual was from the medical records.  Saying this, the &lt;a href="http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1397.entry"&gt;Analyzing Data while Protecting Privacy - A Case Study&lt;/a&gt; blog is one of the various postings that I have written (and will continue to write) on the subject.   &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;em&gt;But what it comes down to is these theme&lt;/em&gt;: It will not be possible for us to perform interesting analytics (e.g. data mining, machine learning, etc.) to help patients (e.g. build a concept of prognostics) unless we can guarantee the privacy of the patient. &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Saying this, what does this have to do CMU/MSR Mindswap on Privacy as per the title of this blog?  Well, if you refer to the linked blogs, you'll notice that the concepts of differential privacy (also termed in the blog as privacy preserving data analysis) are based on the research from MSR (Microsoft Research).  As well, you may notice that I reference some examples of privacy from Latanya Sweeney whom is from CMU (Carnagie Mellon University).  Last week, the Center for Computational Thinking at CMU had setup a mindswap event which combines some of the top researchers from both institutions to get together and swap information on the advancing field of research into privacy.  You can find out more information by referring to the link with powerpoint slide references at: &lt;a href="http://www.cs.cmu.edu/~CompThink/mindswaps/index.html"&gt;CMU/MSR Mindswap on Privacy&lt;/a&gt;.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+CMU%2fMSR+Mindswap+on+Privacy&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=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><category>Medical Informatics</category><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1413.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1413.entry</guid><pubDate>Tue, 23 Oct 2007 00:59:46 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1413/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1413.entry#comment</wfw:comment><dcterms:modified>2007-10-23T00:59:46Z</dcterms:modified></item><item><title>Scalable Shared Databases</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1412.entry</link><description>&lt;div&gt;There have been some questions that have come to my attention concerning the concept of Scalable Shared Databases and comparing it within the context of Oracle RAC.    If you want to read the SSD vs. Oracle RAC comparison, you can refer to the link &lt;a href="http://www.microsoft.com/sql/prodinfo/compare/oracle/rac.mspx"&gt;Comparing SQL Server 2005 and Oracle RAC&lt;/a&gt;.  As well, you can also refer to the SQL Server Books Online content on the subject of &lt;a href="http://msdn2.microsoft.com/en-us/library/ms345584.aspx"&gt;Scalable Shared Databases&lt;/a&gt; on the subject.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Saying this, the purpose of Scalable Shared Databases is to make use of SAN technology in order to allow you to attach a &lt;u&gt;single&lt;/u&gt; read-only database to &lt;u&gt;multiple&lt;/u&gt; server instances so that way you can have scale out many concurrent queries of your SQL database to the aforementioned &lt;u&gt;multiple&lt;/u&gt; server instances.    We have versions of this approach for Analysis Services one specific to using SANs (&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=7ac8e03d-bf1f-4733-93e0-bc0f6e567608&amp;amp;displaylang=en"&gt;Scale-Out Querying with Analysis Services using SAN Snapshots&lt;/a&gt;) and one not specific to the use of SANs (&lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/scoqryas.mspx"&gt;Scale-Out Querying with Analysis Services&lt;/a&gt;).  Saying this, you could always rename the concept of Scalable Shared Databases as &lt;em&gt;Scale-Out Querying with SQL Server&lt;/em&gt;.  &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;But I digress, extracted directly from the technical (hence most important) link is the &lt;a href="http://support.microsoft.com/kb/910378"&gt;&lt;strong&gt;Scalable Shared Databases are supported by SQL Server 2005&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;from Microsoft Support:&lt;/div&gt;
&lt;blockquote dir=ltr style="margin-right:0px"&gt;
&lt;div&gt;&lt;strong&gt;Scalable shared databases&lt;br&gt;&lt;/strong&gt;Scalable shared databases let you attach a read-only reporting database to multiple server instances over a storage area network (SAN). A reporting database is a read-only database that is built from one or more production databases that are used exclusively for reporting purposes. To be made into a scalable shared database, a reporting database must reside on one or more dedicated read-only volumes. The primary purpose of these read-only volumes is to host the reporting database or a coordinated set of reporting databases. These volumes are known as reporting volumes. &lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;strong&gt;Benefits&lt;br&gt;&lt;/strong&gt;Scalable shared databases offer the following benefits: • Provide workload scale-out of reporting databases by using commodity servers. A scalable shared database is a cost-effective way of making read-only data marts or data warehouses available to multiple server instances for reporting purposes, such as running queries or using SQL Server 2005 Reporting Services.  &lt;br&gt;• Provide workload isolation. Each server uses its own memory, CPU, and tempdb database.  &lt;br&gt;• Guarantee the same view of reporting data from all servers if all the server instances are configured identically. For example, all servers would use a single collation. &lt;/div&gt;
&lt;div&gt;Note Optionally, you can update the reporting database on a second reporting volume. For more information, see the &amp;quot;Maximize the availability of a scalable shared database&amp;quot; section. &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Restrictions&lt;br&gt;&lt;/strong&gt;The following restrictions exist for a scalable shared database: • The database must be on a read-only volume. &lt;br&gt;• The data files can be accessed over an SAN.  &lt;br&gt;• Scalable shared databases are supported only on Microsoft Windows Server 2003 Service Pack 1 (SP1) or a later version of Windows Server 2003. &lt;/div&gt;&lt;/blockquote&gt;
&lt;div&gt;For the technical details, please refer to &lt;a href="http://support.microsoft.com/kb/910378"&gt;&lt;strong&gt;Scalable Shared Databases are supported by SQL Server 2005&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+Scalable+Shared+Databases&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=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><category>SQL</category><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1412.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1412.entry</guid><pubDate>Mon, 22 Oct 2007 23:50:16 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1412/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1412.entry#comment</wfw:comment><dcterms:modified>2007-10-22T23:50:16Z</dcterms:modified></item><item><title>Using ByAttribute or ByTable Processing Group Property with Analysis Services 2005</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1411.entry</link><description>&lt;div&gt;For any of you whom are considering using the ByTable (vs. ByAttribute) Processing Group property, I've propped up a blog called &lt;a href="http://blogs.msdn.com/sqlcat/archive/2007/10/19/using-byattribute-or-bytable-processing-group-property-with-analysis-services-2005.aspx"&gt;Using ByAttribute or ByTable Processing Group Property with Analysis Services 2005&lt;/a&gt; with help from Richard Tkachuk, Akshai Mirchandani, and Eric Jacobsen.  Basically, while using ByTable can at times be helpful, you really need to be careful on how you use it.  Read the blog for more info, eh?!  &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=1323305814572094295&amp;page=RSS%3a+Using+ByAttribute+or+ByTable+Processing+Group+Property+with+Analysis+Services+2005&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=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><category>Analysis Services</category><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1411.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1411.entry</guid><pubDate>Fri, 19 Oct 2007 20:30:16 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1411/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1411.entry#comment</wfw:comment><dcterms:modified>2007-10-19T20:30:16Z</dcterms:modified></item><item><title>Incorrect Impersonation Information may crash or hang Analysis Services</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1410.entry</link><description>&lt;div&gt;&lt;span style="font-size:12pt;color:blue;font-family:'Calibri','sans-serif'"&gt;
&lt;p style="margin:0in 0in 0pt"&gt;&lt;span lang=EN style=""&gt;&lt;font color="#000000"&gt;If you are processing your AS cube using impersonation mode, if you incorrectly place the impersonation information as MYDOMAIN/UserName instead of MYDOMAIN\UserName, you may crash or hang Analysis Services.  A quick cursory examination noted that with Sybase and DB2 relational data sources, AS ended up crashing.  If SQL Server or Oracle is your relational data source, then the processing is exceedingly slow to the point where the server was hanging; in the end eventually failing.&lt;/font&gt;&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt"&gt;&lt;span lang=EN style=""&gt;&lt;font color="#000000"&gt;&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0in 0in 0pt"&gt;&lt;span lang=EN style=""&gt;&lt;span lang=EN style=""&gt;&lt;font color="#000000"&gt;Thanks to &lt;a href="http://csjohnlam.spaces.live.com/"&gt;John Lam&lt;/a&gt;, &lt;a href="mailto:nick@birke.ws"&gt;Nicholas Birke&lt;/a&gt;&lt;/font&gt;&lt;font color="#000000"&gt;, and &lt;a href="mailto:msweiz1998@yahoo.com"&gt;Wei Zhang&lt;/a&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p style="margin:0in 0in 0pt"&gt;&lt;span lang=EN style=""&gt;&lt;span lang=EN style=""&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;p style="margin:0in 0in 0pt"&gt;&lt;span lang=EN style=""&gt;&lt;span lang=EN style=""&gt;&lt;font color="#000000"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+Incorrect+Impersonation+Information+may+crash+or+hang+Analysis+Services&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=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><category>Analysis Services</category><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1410.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1410.entry</guid><pubDate>Fri, 12 Oct 2007 16:48:12 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1410/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1410.entry#comment</wfw:comment><dcterms:modified>2007-10-12T16:48:12Z</dcterms:modified></item><item><title>Precision Considerations for Analysis Services Users Whitepaper now available</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1409.entry</link><description>&lt;div&gt;
&lt;p&gt;For those of you whom want to know a little more about precision considerations for Analysis Services users, please check out this recently released whitepaper at &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=bae8beec-9892-4ecd-a9db-292254895f9c&amp;amp;displaylang=en"&gt;&lt;u&gt;&lt;font color="#800080"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=bae8beec-9892-4ecd-a9db-292254895f9c&amp;amp;displaylang=en&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;.
&lt;p&gt;&lt;span&gt;This white paper covers accuracy and precision considerations in SQL Server 2005 Analysis Services. For example, it is possible to query Analysis Services with similar queries and obtain two different answers. While this appears to be a bug, it actually is due to the fact that Analysis Services caches query results and the imprecision that is associated with approximate data types. This white paper discusses how these issues manifest themselves, why they occur, and best practices to minimize their effect.&lt;/span&gt;
&lt;p&gt;&lt;span&gt;Authors: Denny Lee and Eric Jacobsen&lt;/span&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+Precision+Considerations+for+Analysis+Services+Users+Whitepaper+now+available&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=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><category>Analysis Services</category><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1409.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1409.entry</guid><pubDate>Tue, 09 Oct 2007 21:42:41 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1409/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1409.entry#comment</wfw:comment><dcterms:modified>2007-10-09T21:42:41Z</dcterms:modified></item><item><title>Data Mining applied to Medical Research</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1402.entry</link><description>&lt;div&gt;As a follow up to my blog below concerning analyzing medical data and privacy, check out my channel8.msdn.com interview concerning the application of data mining to medical research and the reason why privacy is so important.&lt;/div&gt;
&lt;div&gt;&lt;a href="http://channel8.msdn.com/Posts/Denny-Lee-from-SQL-CAT-Data-Mining-applied-to-medical-research/"&gt;http://channel8.msdn.com/Posts/Denny-Lee-from-SQL-CAT-Data-Mining-applied-to-medical-research/&lt;/a&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=1323305814572094295&amp;page=RSS%3a+Data+Mining+applied+to+Medical+Research&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=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><category>Medical Informatics</category><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1402.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1402.entry</guid><pubDate>Fri, 28 Sep 2007 18:46:20 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1402/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1402.entry#comment</wfw:comment><dcterms:modified>2007-09-28T18:46:20Z</dcterms:modified></item><item><title>Analyzing Data while Protecting Privacy - A Case Study</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1397.entry</link><description>&lt;p&gt;&lt;b&gt;Abstract&lt;/b&gt; 
&lt;p&gt;Analysis and sharing of aggregate data (e.g., number of users whose favorite color is blue) is crucial to understanding patterns of the population being studied. The problem is that even summary data can expose the individuals who make up this information. Therefore, we are studying the use of privacy preserving data analysis techniques that will protect the individual and allow analysts to understand general trends. We believe that while there are unique perturbations of the data with these techniques, analysts will be able to use the data and protect the users at the same time. The case study involves applying these algorithms to MSN reporting data. One group focused on event usage (e.g., number of page views on Moneycentral.com) while another group focused on usage data (e.g., the number and frequency of users who use MSN Messenger). After four months of analysis, the first group did not like the effects of privacy preserving data analysis. In contract, the second group is prepared to use this type of reporting in production. Further discussions and inquiries revealed that the first group had perceived data trust issues that conflicted with use of the algorithms. But, the second group had no trust issues with the data and was very familiar with privacy issues, hence the successful outcome. Therefore, if users trust the data it is possible to use this privacy preserving algorithm to allow the analysis of data while protecting privacy. 
&lt;p&gt;  
&lt;h4&gt;Introduction&lt;/h4&gt;
&lt;p&gt;Based on an analysis of the 1990 US Census, 87% of the United States population is uniquely identifiable by the three attributes of zip code, date of birth, and gender [1]. Latanya Sweeney’s breakthrough research with the Governor William Weld case clearly depicts that the masking or hiding of publicly available information does not adequately protect the privacy of an individual. Sweeney was able to obtain masked medical data from the Group Insurance Commission of Massachusetts whom is responsible for state employees’ health insurance. The masked medical data contained only non-identifiable information such as ethnicity, visit date, diagnosis, procedure, medication, total charge, zip code, date of birth, and gender. For a cost of $20, Sweeney then obtained the publicly available Cambridge, MA voter list. Referring to the Venn diagram below, each circle graphically represents the two data sources and by itself reveals little information. The masked medical data on the left provides only medical information where only gender, date of birth, and zip code were identified. The voter list on the right provides personal information but limited only to voting information, address, date of birth, and gender. But recall that 87% of the US population is uniquely identifiable by only the three attributes of zip code, date of birth, and gender. In the case of the Massachusetts governor, there were only six people in Cambridge, MA whom had the same date of birth and only three of them were men. Of the men remaining, he was the only person to live in his particular zip code. Through these two pieces of information joined only by gender, date of birth, and zip code; Sweeney was able to identify and reveal the medical records of then Governor William Weld. 
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pM9VpOrA-PmfOUQkkf5EOorrNoAJ88_uc4UCjkNPvfDhMsweXvKeAqV0BNgvFilQTI0ZfwEGlfUVeqoEawHDy_xBjyIS8x_N-?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=231 alt=image src="http://by1.storage.msn.com/y1pM9VpOrA-PmeO0mTVFF0n9m4F8wD5mRr-vxJNbTOj_MA71Ly-iu3r8TILH90dB-aKEPK0ZY9sWtwJpYiSer4i_fyWRc3aPzy_?PARTNER=WRITER" width=480 border=0&gt;&lt;/a&gt; 
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Figure 1:&lt;/strong&gt; Unmasking of masked medical data&lt;/em&gt; 
&lt;p&gt;As one can see, this particular scenario stresses the inadequacies of ensuring privacy by masking medical data; it will require us to change our perceptions of what data privacy really entails. It takes only a small amount of information to reveal the individual underneath the data. 
&lt;p&gt;Many current privacy solutions involve the concept of masking the data such that personally identifiable information remains hidden. Regulatory bodies such as HIPAA provide very explicit instructions on what information can and cannot be revealed in different scenarios [2]. Businesses such as Microsoft® provide detailed statements (e.g., “Microsoft Online Privacy Statement”) detailing the personal information collected, uses of the information, and the choice to opt-out [3]. Academic institutions, such as Oregon Health &amp;amp; Science University, have requirements in addition to HIPAA standards staging the permitted uses and disclosures associated with protected health information [4]. Yet, as one can see from the William Weld case, the masking and explicit statements of use and disclosures may not necessarily insure privacy. There are many other masking solutions and/or perturbations of data as can be seen in J.C. Cannon and A. Cavoukian’s book “Privacy: What Developers and IT Professionals Should Know” [5]. But the potential weakness of these approaches is that the solutions may end up being too complicated to implement or that the modification of data will result in changing the meaning of the data. This latter point is especially important because of its affect on analysis and research. If statistical analysis ranging from mean/median to advanced data mining techniques result in inconsistent values, the results and conclusions based on these statistics may be incorrect. 
&lt;p&gt;How is it then possible to protect an individual’s privacy in a relatively simple manner while ensuring consistent statistical analysis for research purposes? This is the purpose of “Privacy Preserving Data Analysis” which is based on the work of Microsoft Research (MSR) researchers Cynthia Dwork and Frank McSherry (as well as S Chawla, K Talwar, A Blum, K Nissim, and A Smith) [6, 7, 8]. The basic premise of their research is that the addition of noise based on the exponential distribution to the data will be able to protect the individuals underneath the aggregate data. Recall that to attack aggregate data, one need only to ask enough questions to drill down to a specific individual with very distinct attributes. In the Governor Weld case, the first question would be the number of people who had his date of birth (answer is 6). The next question is number of those people who were male (answer is 3). The final question is the number of those people who lived in his 5-digit zip code (answer is 1). In this example, it required only three questions for the author, Sweeney, to drill down to Governor Weld and his medical records [6]. But, if we were to add exponential noise (some integer value between –∞ to +∞) to the consistently change the above values, it would be impossible to drill down to this one person. For example, if the noise values to be applied to these questions were that of (-2, +1, +6), then the results of the above questions would be: 
&lt;p&gt;  
&lt;table style="border-right:medium none;border-top:medium none;margin-left:54.9pt;border-left:medium none;border-bottom:medium none;border-collapse:collapse" cellspacing=0 cellpadding=0 border=1&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:black 1pt solid;padding-left:5.4pt;background:black;padding-bottom:0in;border-left:black 1pt solid;width:152.25pt;padding-top:0in;border-bottom:black 1pt solid" valign=top width=203&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="color:white"&gt;Question&lt;/span&gt;&lt;/b&gt; 
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:black 1pt solid;padding-left:5.4pt;background:black;padding-bottom:0in;border-left:medium none;width:77.25pt;padding-top:0in;border-bottom:black 1pt solid" valign=top width=103&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="color:white"&gt;Original Answer&lt;/span&gt;&lt;/b&gt; 
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:black 1pt solid;padding-left:5.4pt;background:black;padding-bottom:0in;border-left:medium none;width:76.5pt;padding-top:0in;border-bottom:black 1pt solid" valign=top width=102&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="color:white"&gt;Noise Values&lt;/span&gt;&lt;/b&gt; 
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:black 1pt solid;padding-left:5.4pt;background:black;padding-bottom:0in;border-left:medium none;width:76.5pt;padding-top:0in;border-bottom:black 1pt solid" valign=top width=102&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="color:white"&gt;PPH-applied Answer&lt;/span&gt;&lt;/b&gt; 
&lt;tr&gt;
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:medium none;padding-left:5.4pt;padding-bottom:0in;border-left:black 1pt solid;width:152.25pt;padding-top:0in;border-bottom:black 1pt solid" valign=top width=203&gt;
&lt;p&gt;How many users with Governor Weld’s date of birth 
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:medium none;padding-left:5.4pt;padding-bottom:0in;border-left:medium none;width:77.25pt;padding-top:0in;border-bottom:black 1pt solid" valign=top width=103&gt;
&lt;p&gt;6 
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:medium none;padding-left:5.4pt;padding-bottom:0in;border-left:medium none;width:76.5pt;padding-top:0in;border-bottom:black 1pt solid" valign=top width=102&gt;
&lt;p&gt;-2 
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:medium none;padding-left:5.4pt;padding-bottom:0in;border-left:medium none;width:76.5pt;padding-top:0in;border-bottom:black 1pt solid" valign=top width=102&gt;
&lt;p&gt;4 
&lt;tr&gt;
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:medium none;padding-left:5.4pt;padding-bottom:0in;border-left:black 1pt solid;width:152.25pt;padding-top:0in;border-bottom:black 1pt solid" valign=top width=203&gt;
&lt;p&gt;How many of those users are male 
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:medium none;padding-left:5.4pt;padding-bottom:0in;border-left:medium none;width:77.25pt;padding-top:0in;border-bottom:black 1pt solid" valign=top width=103&gt;
&lt;p&gt;3 
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:medium none;padding-left:5.4pt;padding-bottom:0in;border-left:medium none;width:76.5pt;padding-top:0in;border-bottom:black 1pt solid" valign=top width=102&gt;
&lt;p&gt;+1 
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:medium none;padding-left:5.4pt;padding-bottom:0in;border-left:medium none;width:76.5pt;padding-top:0in;border-bottom:black 1pt solid" valign=top width=102&gt;
&lt;p&gt;4 
&lt;tr&gt;
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:medium none;padding-left:5.4pt;padding-bottom:0in;border-left:black 1pt solid;width:152.25pt;padding-top:0in;border-bottom:black 1pt solid" valign=top width=203&gt;
&lt;p&gt;How many of those users are in Governor Weld’s Zip Code 
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:medium none;padding-left:5.4pt;padding-bottom:0in;border-left:medium none;width:77.25pt;padding-top:0in;border-bottom:black 1pt solid" valign=top width=103&gt;
&lt;p&gt;1 
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:medium none;padding-left:5.4pt;padding-bottom:0in;border-left:medium none;width:76.5pt;padding-top:0in;border-bottom:black 1pt solid" valign=top width=102&gt;
&lt;p&gt;+6 
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:medium none;padding-left:5.4pt;padding-bottom:0in;border-left:medium none;width:76.5pt;padding-top:0in;border-bottom:black 1pt solid" valign=top width=102&gt;
&lt;p&gt;7&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;When looking at the PPH-applied answers, the additional noise has made it impossible to drill down to the single individual, therefore the data is “privacy preserving”. In this particular example, the noise is too large but in the methods section we describe how to better calibrate the noise. Ultimately, the key is to add enough noise to the system so that the answer changes but the overall statistics do not. To prevent attacks to the noise algorithm itself, more noise needs to be added as more questions are asked. The background section of this paper provides more details on how this works. The efficacy of this methodology is not in question for this case study as this has already been amply researched and verified. Therefore, the purpose of this case study is to determine the applicability of this noise algorithm in an actual reporting environment. 
&lt;p&gt;&lt;b&gt;Background&lt;/b&gt; 
&lt;p&gt;The privacy preserving data analysis concepts involve the addition of noise to the data in order to protect the individuals underneath the data. This case study involved the use of the privacy preserving histogram (PPH), which uses exponentially-distributed noise (the algorithm is better described in the methods section). These concepts are based on the research in “Practical Privacy: The SuLQ Framework” [7]. The next few background sections describe both the sanitization concept and the privacy mechanism theorem associated with it. 
&lt;p&gt;  
&lt;h5&gt;Sanitization Concept&lt;/h5&gt;
&lt;p&gt;To protect the individuals comprising the data, we will mask these individuals within the data by creating a sanitization point between the user interface and the data. 
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pM9VpOrA-PmdxPrGQt18C5zxPuPxfcQKDsgqczPoqmOp46JjqtHY3XiRjDxsx3NXn4BSpThjdXwH-pfCN1vwc567itjm-CG0M?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=130 alt="clip_image004" src="http://by1.storage.msn.com/y1pM9VpOrA-Pmf0gVq_SPQqMsTzPnSmjYV30ASKi8GP5WX3x3g5W0mjwQNDgvy7_tIrvH14RXlHsGIrFsrexnl58mu248ifAxzp?PARTNER=WRITER" width=510 border=0&gt;&lt;/a&gt; 
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Figure 2:&lt;/strong&gt; Sanitization Concept&lt;/em&gt; 
&lt;p&gt;The left green shape on the left represents the database while the right-most circle represents the answer or result set provided to the user interface. The middle section is the interactive sanitizer, defined К, where it introduces random noise to produce uncertainty, hence privacy. Note the magnitude of the noise is given by the theorem: 
&lt;p&gt;&lt;i&gt;If many queries f&lt;/i&gt;&lt;i&gt;&lt;sub&gt;1&lt;/sub&gt;&lt;/i&gt;&lt;i&gt;, f&lt;/i&gt;&lt;i&gt;&lt;sub&gt;2&lt;/sub&gt;&lt;/i&gt;&lt;i&gt;, … are to be made, noise proportional to &lt;/i&gt;&lt;i&gt;Σ­&lt;/i&gt;&lt;i&gt;&lt;sub&gt;i&lt;/sub&gt;&lt;/i&gt;&lt;i&gt;Δ&lt;/i&gt;&lt;i&gt;f&lt;sub&gt;i&lt;/sub&gt; suffices. For many sequences, we can often use less noise than &lt;/i&gt;&lt;i&gt;Σ­&lt;/i&gt;&lt;i&gt;&lt;sub&gt;i&lt;/sub&gt;&lt;/i&gt;&lt;i&gt;Δ&lt;/i&gt;&lt;i&gt;f&lt;sub&gt;i&lt;/sub&gt; . Note that &lt;/i&gt;&lt;i&gt;Δ&lt;/i&gt;&lt;i&gt; Histogram = 1, independent of number of cells&lt;/i&gt; 
&lt;p&gt;The sanitizer requires the creation of a carefully detailed algorithm and will be discussed in more detail in the differential privacy section below. A safe answer on the amount of noise to apply is that of standard deviation equal to the total number of queries. If the number of queries is not known, then the standard deviation can be proportional to the square of the queries asked so far. As for the noise itself, it should be newly seeded each time a query is applied. 
&lt;p&gt;By doing this, this algorithm will be able to address all attacks. Consequently, for each person, the increase in probability of the individual being attacked (or anyone else for that matter) due to the contribution of their data is nominal. The example given is foiled for two reasons: a) the addition of noise will (formally) complicate the polynomial reconstruction and b) the number of queries is limited by the degree of privacy guaranteed, and N is generally going to be way too many queries. 
&lt;p&gt;Mathematically, at this sanitization point, the PPH will apply of a little bit of noise within each cell of the histogram. Descriptively, if one’s result set from the database is a report with a set of rows and columns, for each value within each row and column cell a small bit of error is added to the original number. Provided that the sanitization point can limit the number of questions being asked and/or add more noise as more questions are being asked, then the PPH can guarantee the privacy of the individuals that make up these aggregates. 
&lt;p&gt;  
&lt;h5&gt;Differential Privacy&lt;/h5&gt;
&lt;p&gt;Our privacy mechanism, &lt;i&gt;К&lt;/i&gt;, gives &lt;i&gt;ε&lt;/i&gt;&lt;i&gt;-differential privacy&lt;/i&gt; for all transcripts &lt;i&gt;t&lt;/i&gt;, all databases &lt;i&gt;DB&lt;/i&gt;, and all data items (rows in the &lt;i&gt;DB&lt;/i&gt;) &lt;i&gt;Me&lt;/i&gt;, the ratio 
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pM9VpOrA-PmcgT4zMvzuKO9Cm_6I5iwXu9cxySfD97J2h7RnrUwUQHeqXOQAF-2xWD-FHOr7pp8_zI32LHdVSA_A214CsnTCf?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=193 alt="clip_image006" src="http://by1.storage.msn.com/y1pM9VpOrA-PmfoylMw4fkBMUGdqY1eySSAc3RZ3NQ1pRbTFpoOj9JV3-oWbOXc_qNqo-hC3jGSIU0C0j9i4AnW8FOAqw0raXA4?PARTNER=WRITER" width=466 border=0&gt;&lt;/a&gt; 
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Figure 3:&lt;/strong&gt; Differential Privacy Formulae&lt;/em&gt; 
&lt;p&gt;The differential privacy theorem is a simple mathematical formula that describes the fact that nothing more can be learned about an individual when her information is &lt;u&gt;in the DB&lt;/u&gt; (&lt;i&gt;DB+Me&lt;/i&gt;) than when it is &lt;u&gt;not in the DB&lt;/u&gt; (&lt;i&gt;DB-Me&lt;/i&gt;). This is important from the context of joining one set of data that is &lt;u&gt;in the DB&lt;/u&gt; (e.g., the masked medical data) with another set of data that is &lt;u&gt;not in the DB&lt;/u&gt; (e.g., Cambridge, MA voter list). If there is no noticeable difference between &lt;i&gt;f(DB-Me)&lt;/i&gt; and &lt;i&gt;f(DB+Me)&lt;/i&gt; then there is no perceptible risk by joining the two data sets together. Therefore, to achieve this differential privacy, we will need to add scaled symmetric noise &lt;i&gt;∝&lt;/i&gt;&lt;i&gt; exp(-|x|&lt;/i&gt;&lt;i&gt; &lt;/i&gt;&lt;i&gt;ε&lt;/i&gt;&lt;i&gt;/ &lt;/i&gt;&lt;i&gt;Δ&lt;/i&gt;&lt;i&gt;f)&lt;/i&gt;. 
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pM9VpOrA-PmeocAX2CpbIu1vmZfOGK_uDc3nr0VaReOYRYUL9u_Kqeiid3o55Qahx5tfXL_l5kUN_RuudBkBjvV-Wo7kpQUQV?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=172 alt="clip_image008" src="http://by1.storage.msn.com/y1pM9VpOrA-PmeWJdfYgEchCXDkZh7_4Qv7FjS359zBMohTvmwm7CxlPQVzb0UzBaJdJhq-cCiRb4BhSUooX6ugjdprquLF3DCv?PARTNER=WRITER" width=483 border=0&gt;&lt;/a&gt; 
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Figure 4:&lt;/strong&gt; Noise depends on sensitivity&lt;/em&gt; 
&lt;p&gt;Note that possible responses, &lt;i&gt;R&lt;/i&gt;, is defined as &lt;i&gt;R = &lt;/i&gt;&lt;i&gt;Δ&lt;/i&gt;&lt;i&gt;f / &lt;/i&gt;&lt;i&gt;ε&lt;/i&gt;. The black line represents the &lt;i&gt;f(DB-Me)&lt;/i&gt; while the red line represents the &lt;i&gt;f(DB+Me)&lt;/i&gt;. This means that increasing the value of &lt;i&gt;R&lt;/i&gt; will flatten the curve; the flatter the curve the more privacy is provided. The flatter curve means that no response is much more likely in one case in comparison to other. 
&lt;p&gt;The question that is incurred then is what difference must noise obscure or how much can &lt;i&gt;f(DB+Me)&lt;/i&gt; exceed &lt;i&gt;f(DB-Me)&lt;/i&gt;. This goes back to the above noted formula of differential privacy: 
&lt;p&gt;&lt;b&gt;&lt;i&gt;D&lt;/i&gt;&lt;/b&gt;&lt;i&gt; f = max&lt;sub&gt;DB, Me&lt;/sub&gt; |f(DB+Me) – f(DB-Me)|&lt;/i&gt; 
&lt;p&gt;where the noise depends on the sensitivity of the system. 
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pM9VpOrA-Pmd8o-PGdLUfTlhGcW2sUW2u8h2sdmOkzrFrkViCaJI0FweVLVTvKViwQ8zYdDu_N4swjbnJTApVH2I3AI56ICJZ?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=170 alt=image src="http://by1.storage.msn.com/y1pM9VpOrA-Pmctky-VKyYKRybWyPeC9m_Ln4sZi6-CoBbh39zhNXgG2FmCcXvkdSQfqvSQJXn6pcKNhUKXHzBH7Z5UehoGVtqi?PARTNER=WRITER" width=494 border=0&gt;&lt;/a&gt; 
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Figure 5:&lt;/strong&gt; Example of noise and sensitivity&lt;/em&gt; 
&lt;p&gt;Basically, this example shows the real value is &lt;i&gt;f(DB-Me) = 104&lt;/i&gt; while the added noise value of &lt;i&gt;f(DB+Me) = 105.2&lt;/i&gt;. The statistical difference between these two values seems insignificant, but this depends on the sensitivity of one’s statistics. If you have highly sensitive data where a 1.2 difference results in a $1.2 billion sale price, then any change to the data is unacceptable. While if your data is relatively insensitive (and most data analyses are), this slight error of difference is well within an acceptable error margin. A key presumption of this design is that one will need to calibrate the noise to ε &lt;u&gt;and&lt;/u&gt; the number of queries. More explicitly to this latter point, as the number of queries increase, the more noise will need to be added in order to insure that the noise algorithm itself can counter an attack. The vast majority of analytical queries do not require a substantial increase in noise due to the relatively low number of questions asked. As seen below, noise is independent of the database size so privacy is insured but accuracy varies; the larger the database the higher the accuracy. 
&lt;p&gt;  
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pM9VpOrA-PmeOHZpCVFJzdtktXNJvbUpG8IztRbK5Vz2pFFVJRFml_GILETnGZZ-P2hKR4191rSjKpJh6CXFXZbHbdn2osbkF?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=455 alt=image src="http://by1.storage.msn.com/y1pM9VpOrA-PmctLeJurKncBFl5tGOyEAgNCuyY7JI8YunkdyEyrWDwSbjVdzDGAhbRdjmTqCsCa5tq6vFe7Y2ldgmnE6o3Jeh9?PARTNER=WRITER" width=474 border=0&gt;&lt;/a&gt; 
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Figure 6: &lt;/strong&gt;Effect of noise&lt;/em&gt; 
&lt;p&gt;  
&lt;h5&gt;Case Study Data&lt;/h5&gt;
&lt;p&gt;This case study used MSN visitor data where the privacy preserving noise algorithms were applied to the data to determine reporting efficacy. MSN data has 550 million Passport users (as of February 2006) that contain visitor self-reported data such as gender, birth date, occupation, country, and zip code. The web traffic data associated with MSN also has additional attributes including IP address, pages viewed, page view duration, browser, and operating system. MSN uses this data to provide customizable experiences of their users and to better understand how visitors are using the various services. But at the same time, there are various major privacy issues including identity theft, fraud, and/or bad press (e.g., AOL released search engine queries that ended up revealing their users). If user expectations are not satisfied, customers will no longer trust the services provided. As data is accumulated, it becomes easier to segment the population and potentially identify individual users without directly using personally identifiable information. Hence, there was an interest within MSN to use the MSR research to determine the latter’s applicability for all reporting. 
&lt;p&gt;  
&lt;h4&gt;Methods&lt;/h4&gt;
&lt;p&gt;We have devised a way to mask the individuals within the aggregate data using the privacy preserving histogram without losing the meaning of the data. To test the applicability of this technique within a reporting environment, we used MSN visitor data and had two different analytics groups analyze this data. The “Sampled Users Web Analytics” group is a set of users who want to understand what MSN web sites people are using (e.g. the MSN home page, Moneycentral, MSN Autos, etc.). The “Customer Churn analytics” group is a set of users who are trying to better understand how customers are using the features of MSN (e.g. Messenger, Search, Hotmail, etc.). Considerable amount of time was spent with both groups to determine the reporting features and the metrics they wanted. Upon determination, an Analysis Services database was also created so customers could easily pivot through all of the information and perform ad-hoc queries. Once they were happy with the reports, the PPH was introduced so they could view the reports and provide feedback on the issues between the original reports and the reports with PPH applied. 
&lt;p&gt;  
&lt;h5&gt;User Groups&lt;/h5&gt;
&lt;p&gt;&lt;i&gt;Sampled Users Web Analytics Group&lt;/i&gt; 
&lt;p&gt;To provide the reports that this group desired, we built a new reporting solution based on an existing web analytics solution. Upon loading the data into a SQL Server 2005 database for filtering and transformation, an Analysis Services 2005 cube (OLAP cube) was built. It provided the analysts with the ability to view the data from multiple dimensions using a custom web UI. Multiple iterations had occurred with this group to determine the exact reports they would like to view (by what event, demographics, time period, etc.). In this particular case, the reporting was specific for the Channel, Search, and Money teams. 
&lt;p&gt;&lt;i&gt;Customer Churn Analysis Group&lt;/i&gt; 
&lt;p&gt;To provide the reports that this group desired, we built a brand new reporting solution. The customers were familiar with this data because it was built on an existing targeted marketing system. Similar to the “Sampled Users Web Analytics Group”; a SQL Server 2005 database was created to initially filter and transform the data. Upon processing completion, an OLAP cube and a custom web UI was built on this data to provide the reporting interface. This new reporting system allowed the analyst to understand how MSN services (Messenger, Mail, Search, Spaces, etc.) were being used. Multiple iterations were also performed with this customer group insuring they had received the data they desired. A key difference between the groups is while the first group was able to use legacy reporting systems; the second group did not have access to any reporting. Within a few weeks of their request to us, these customers had received a working beta version that they could use and provide feedback. 
&lt;p&gt;  
&lt;p&gt;&lt;u&gt;&lt;/u&gt;
&lt;h5&gt;PPH: Generating the Noise&lt;/h5&gt;
&lt;p&gt;In both types of reporting solutions (and for that matter, many reporting solutions), we are primarily concerned with counts and summations. Specifically, these reporting systems involve unique visitor counts, event transaction counts, and page view summations. As we are dealing with discrete data, instead of continuous data, the basic PPH algorithm to implement is: 
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pM9VpOrA-Pmeeijbn62Bmfu_1by6qCC7I3hxgoD-A6z93D3cbDOtgtoCt0jK-pGmpTHRu1kh7GcflSIWdDl0Jfm6Pbwxdyzkr?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=18 alt="clip_image002" src="http://by1.storage.msn.com/y1pM9VpOrA-PmetmSE0zXYtCtIK3gDiU9jed-8aXNV0FV7oAPSDHncUNroSl1k-S4ee4EI28yuYPR6j9s16RuvFsxDJ7Ge_VMKu?PARTNER=WRITER" width=240 border=0&gt;&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;where 
&lt;table cellspacing=0 cellpadding=2 width=502 border=0&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign=top width=100&gt;&lt;span style="top:3pt"&gt;&lt;a href="http://by1.storage.msn.com/y1pM9VpOrA-Pmd5xoZdMqgTG1TR80bvvU8Vpg4IEcMd8mEyDPlVS70J3AMbqBMZ-GvVVUpldLOWAGjCmfa2EnKwei4M7Qw7kYmp?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=17 alt="clip_image002" src="http://by1.storage.msn.com/y1pM9VpOrA-PmeGibNu41_CghmIFZrFgA8DW6syxPStjUIdM5aiFPEV0lh8zEJ_KNO6RHAN1n65MHAShfc0ZTZJWYKsqdsfbC-4?PARTNER=WRITER" width=37 border=0&gt;&lt;/a&gt;&lt;/span&gt; 
&lt;td valign=top width=400&gt;This is a pseudo-random number generator (RNG) such as &lt;i&gt;SRAND&lt;br&gt;&lt;/i&gt;
&lt;tr&gt;
&lt;td valign=top width=100&gt;&lt;i&gt;&lt;span style="font-family:'Cambria Math','serif'"&gt;R&lt;/span&gt;&lt;/i&gt; 
&lt;td valign=top width=400&gt;
&lt;p&gt;This is a magnitude of the noise to be applied to the system.  The larger the number, the more error is added.  More error means more privacy but could skew the meaning of the numbers if the value is too high. 
&lt;tr&gt;
&lt;td valign=top width=100&gt;&lt;i&gt;Seed for A&lt;/i&gt; 
&lt;td valign=top width=400&gt;
&lt;p&gt;This is the seed that is used generate an array of numbers where A is the original query. 
&lt;tr&gt;
&lt;td valign=top width=100&gt;&lt;i&gt;n­­&lt;sub&gt;1&lt;/sub&gt;, n&lt;sub&gt;2&lt;/sub&gt;, …&lt;/i&gt; 
&lt;td valign=top width=400&gt;An array of numbers that will alter the counts, in effect adding noise.&lt;br&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The routine, &lt;span style="top:3pt"&gt;&lt;a href="http://by1.storage.msn.com/y1pM9VpOrA-PmegDgHuEQzXsuP9McJkqWw8fkqIR_-yhZXK92Jry9s6qJRS93tA3zZtffffTFlijLzmGr0wAsJ9MSipEqsPJ3KS?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=17 alt="clip_image002" src="http://by1.storage.msn.com/y1pM9VpOrA-PmcVw855-bWF84bRi5ez8yuPRio6xIWREWZIXs-75t_zlJiKfqJWG028H5M-zX-o5goPihr4dfmi-b8lokXI0Uez?PARTNER=WRITER" width=37 border=0&gt;&lt;/a&gt;&lt;/span&gt;, is based on the property that for any interval &lt;span style="top:3pt"&gt;&lt;a href="http://by1.storage.msn.com/y1pM9VpOrA-PmcXPDstyceuWQVM-vvowxCuGAPrJAuZa1ePItUxtXeJMWZcWHmE8cMywpefFghrn-0aBojaXFAuVQfwHFGMCm6e?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=17 alt="clip_image004" src="http://by1.storage.msn.com/y1pM9VpOrA-Pmch_6ESJZ_21njsmdHYuQPzDchQ8QwMUMvMbRQFph69IggX7jMpOiJf5Tc0ULgutB6ckePKrSoq9iCc7JHzk17V?PARTNER=WRITER" width=31 border=0&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;of the density function 
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pM9VpOrA-PmftwGj-CDlSmVRUAhWbdu5C2vkGhxVY8YorO9aXJ9bKYdE1OSzWF4LmbxXYwCXPVUBYLKP40HjXKKTvwFr5gn8b?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=29 alt="clip_image006" src="http://by1.storage.msn.com/y1pM9VpOrA-PmfhzacovV_B4prAIORVCvFmYfRzvudBCQ4W-4OFXXIdAUiMxVscClW8jfl-Vf5KeHD0SoEVPJy9ZLh_BVKjy__G?PARTNER=WRITER" width=88 border=0&gt;&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;we can analytically find the point &lt;i&gt;y&lt;/i&gt; such that &lt;a href="http://by1.storage.msn.com/y1pM9VpOrA-PmdD_nVlUaehPp--ybhLrLq2VvK7sUBrbjoZNjQshPK4nxNn0rrZQVNIeQ6zhKohSPFaoDexaFnzoMumebdKjY-V?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=17 alt="clip_image027" src="http://by1.storage.msn.com/y1pM9VpOrA-PmeyIs9OX_UeNGvTaURQ8ArMWTN08Mzw6NIFsblXeIinhuIbTewVwQHC5SAbjAZ4cql_6T-ngKIgqOCsmSljnsqk?PARTNER=WRITER" width=124 border=0&gt;&lt;/a&gt;. A single random bit can tell us on which side of &lt;i&gt;y&lt;/i&gt; our sample should be drawn, and we can recursively apply the technique to the appropriate subinterval (i.e.: either one of &lt;a href="http://by1.storage.msn.com/y1pM9VpOrA-PmfzEoN666kk56-CyotwedthDRjcUylIdpS8xn7T32j9MJ6upFZsEbN4w4TssjLQXvhb4vLXCFQzj_OlQ_OOAk6H?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=17 alt="clip_image029" src="http://by1.storage.msn.com/y1pM9VpOrA-PmcW7AEVCWJgsr-ESLDGazDqc9tx4vhK_-a47kI5y9X_zXbFSd7tMaAib8dqD9H2WpcJ-QClxintdpx79Q2Mb3re?PARTNER=WRITER" width=32 border=0&gt;&lt;/a&gt; or &lt;a href="http://by1.storage.msn.com/y1pM9VpOrA-PmfBDC1hQk-QA-Ftm2BcBhTmZU7jplT5__wDbylv473JP_QaPfMDN6OSw3m8JgUVwXzc8ZwVQ-eO55fpUuAu6FgW?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=17 alt="clip_image031" src="http://by1.storage.msn.com/y1pM9VpOrA-PmcaQcl5iuORc-eR0nChAonFXyCCJSOPGg5hKejcoJzrnYjY6r77dujCxBot-9YqjNlz-Sxi5KuuqNmLw_9opFuE?PARTNER=WRITER" width=32 border=0&gt;&lt;/a&gt;). 
&lt;p&gt;To generate the noise, the RNG will create a stream of numbers, for example: 
&lt;p&gt;0 0 1 1 1 … 1 0 0 0 0 1 
&lt;p&gt;The resulting exponential distribution translation of this stream is: 
&lt;p&gt;- . 2 + 1 … + . . . . 6 
&lt;p&gt;Recall that the point of the PPH is to generate noise that will be applied to the result set data. The generation of noise uses the above RNG (there is no such thing as a true random number generator in mathematics), to create the stream of 0s and 1s. We then take the stream of numbers and translate it into the noise. For example, if you look at the right most set of numbers (starting after the …) within the array, you’ll notice 1, then 5 0s, then 1 again. The first 1 denotes a positive value (vs. negative), the 5 0s represent a count of 5, and the final 1 represents the full stop. Hence, these seven values represent a positive 5 count + 1 count with full stop equaling +6. For a code example, please refer to the Appendix. 
&lt;p&gt;  
&lt;h5&gt;Effect on Data&lt;/h5&gt;
&lt;p&gt;This stream of numbers is then applied directly to the results. Recall, that the stream of noise values was -2, +1, …, +6 and the original values are that of A = 36, B = 22, …, N = 102. 
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pM9VpOrA-Pmciv8FBy0SljSw_7wxafu8bdOnNPF2Tv62XH153QL0NMzD9Wr3U-xOHxh63d66rgzTqBm3krdYx2j7WKCrNivwp?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=181 alt="clip_image033" src="http://by1.storage.msn.com/y1pM9VpOrA-PmeWH48RaM9pPQ-BrWJ3jbGzRa5xn4AQAWgCliQWhdGe3pb_QNbYWi1LSIQC0cSZ8NZYgyC0GXdlhA5vY8MwyLwH?PARTNER=WRITER" width=286 border=0&gt;&lt;/a&gt; 
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Figure 7:&lt;/strong&gt; Effect of noise&lt;/em&gt; 
&lt;p&gt;The noise added to the system provides a new result of A = 34, B = 23, …, N = 108. By adding this noise to the system, it is not possible for one to drill down to a value of 1, which would expose a single individual (e.g., A = 1). After all, if you are able to drill down to one individual, even through what is perceived as non-identifiable attributes (e.g., birth date, zip code, and gender); it becomes possible to identify this individual. But the additional noise will never allow you to get down to a single individual of any attributes (or combination thereof). If the numeric answer to your question represents a single individual (e.g., A = 1), one is not sure if this truly represents an individual or if this is due to the noise applied. 
&lt;p&gt;An issue of concern is if we apply too much noise (e.g., +1000) then we risk changing the meaning of the data completely. If too little noise (e.g., +0, +1, -0, -1, etc.) is applied we risk not protecting the data very well. Hence, we followed the safe rule that the magnitude of the noise applied to the RNG is the standard deviation of the total number of queries. In our case, the total number of queries per user ranged from 90 to 110 queries. Therefore, the standard deviation was 10 and the magnitude applied to the RNG, &lt;i&gt;R&lt;/i&gt;, is 10. We limited the number of questions asked of the system otherwise it would have become possible to break the noise pattern. Since the noise generated by the RNG requires some seed value (i.e., a starting point), if you ask enough questions it becomes mathematically possible to determine how the RNG is generating its values. Once this is determined, it becomes possible to reverse engineer the system and determine the original set of values. Hence the importance of either limiting the number of questions asked (e.g., a hundred questions) or adding more noise to the system as more questions are being asked thus preventing an attack of this nature. 
&lt;p&gt;  
&lt;h4&gt;Results&lt;/h4&gt;
&lt;p&gt;The effect on the customer data by the application of noise is reflected in the tables below. In Figure 8, the left and right tables are two of the same queries executed a few seconds of each other with the PPH noise applied. 
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pM9VpOrA-Pmf2FFxB58XHmUU2tEYTP0zpNM-y0hnlTWll9aZDQ0hPiKhCzQBQ-F2F5ZjaEoaneulpg48pxHdxtAacV9si9sjZ?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=261 alt="clip_image035" src="http://by1.storage.msn.com/y1pM9VpOrA-PmdlpIEfOrYTVhDpSvmG8vNGM3lOkV0g5rkhuOpQbEzre2ZqyOYR853t4QK5vqGyn1qFJlRVIGPqzeu8UDwib7kS?PARTNER=WRITER" width=687 border=0&gt;&lt;/a&gt; 
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Figure 8: &lt;/strong&gt;Effect on data&lt;/em&gt; 
&lt;p&gt;For example, reviewing the country Afghanistan, the “Unknown” value is 121561 in one case and 121599 in another. Because of this random exponentially distributed noise, we do not know what is the “real” value. The visual effect to this data is minimal, as depicted in the image below. 
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pM9VpOrA-PmfeRvU4hUXMQYskwKLm-teoQjd-PNsdK_BTOaV7aGp3kMGOBRusEKqzOLgU7Kj--z3AMO5evp4fuvAMKvdO5mBj?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=412 alt="clip_image037" src="http://by1.storage.msn.com/y1pM9VpOrA-Pmf7_NjBQpY1FZTQcMVXbakj887KPApOy9W8vbVdoYVlu5zQm0F4nMmOHfR1hLNxHzoFP2C452f3SYLEBmfFdLuD?PARTNER=WRITER" width=573 border=0&gt;&lt;/a&gt; 
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Figure 9:&lt;/strong&gt; Graphical Effect on data&lt;/em&gt; 
&lt;p&gt;&lt;em&gt;&lt;/em&gt;  
&lt;h5&gt;Sample Users Web Analytics Group&lt;/h5&gt;
&lt;p&gt;We first received feedback from the “Sample Users Web Analytics Group” which wanted to understand what visitors were using on the MSN.com and Windows Live web sites. The concept of PPH was introduced to this group after building a new reporting solution on an existing web analytics solution specific to their business requirements. As well, an Analysis Services database was built for this new reporting solution to allow the group the ability to view the data from multiple dimensions – something that they had desired for quite some time. 
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pM9VpOrA-PmfR1hxnrNQr7IwtzKEW2cwUH_Gj-dQtmQZhc01tEtkHt1JXOCmkvb4ORa_PRE7xtQ91ZewjAdt4QPwq8QonLQdm?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=263 alt=image src="http://by1.storage.msn.com/y1pM9VpOrA-Pmc3CCO4vXPio189SWA8GbicxTTJLDeXvOVewkdvWmaZ2kS_tRF7dog2s5IEF6hLgvpP9_YDQi-BMsjp1DQjz83K?PARTNER=WRITER" width=346 border=0&gt;&lt;/a&gt; 
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Figure 10:&lt;/strong&gt; Totaling issues for Sample Users Web Analytics Group&lt;/em&gt; 
&lt;p&gt;Unfortunately, the resulting feedback was negative; the basic problem was that this group could not accept any amount of error in their data. For example, an initial query provided the number of visitors per country, where the total US visitors was 202. A subsequent query against the data which broke out the same US visitors by gender would result in a total that was 203. While it could be understood that the added noise to the system could explain these differences, this group insisted that these numbers had to match at all times. Note, it did not matter that these numbers were not used for financial reconciliation and was only to be used for analysis purposes. 
&lt;p&gt;From further discussions with this group, it appeared that they had been utilizing reporting systems that had perceived accuracy issues. It is this perception that resulted in the groups’ negative feedback to additional noise being added to the resulting data. 
&lt;p&gt;  
&lt;h5&gt;Customer Churn Analysis Group&lt;/h5&gt;
&lt;p&gt;Based on this feedback, we were originally a little disheartened about the prospects of applying this type of privacy functionality into reporting systems. But after some conversations with other analysts (including members in the healthcare field), it appeared that they did not have issues with the effects of the additional noise to insure individual privacy. 
&lt;p&gt;Therefore, we proceeded with the next case study group: the Customer Churn Analysis group. Upon determining the group’s reporting requirements, an Analysis Services database was built based on an existing targeted marketing system. Like the first group, there were multiple iterations of this database so the analysts were better able to understand how MSN services such as Messenger, Mail, Search, and Spaces were being used. The major difference between these two groups was that the “Customer Churn Analysis Group” never had access to reporting data before. To their surprise, within a few weeks of their initial request they were able to interact, validate, and provide feedback on a working reporting solution. Most importantly, they were able to analyze and re-analyze the data to determine the precision and accuracy of the data. 
&lt;p&gt;To our delight, once we had introduced PPH into their churn reports (with the additional noise being seen in the result set), they were satisfied with the results. It even got to the point where when the customers were viewing the reports, they had forgotten that a privacy algorithm was applied – even though the numbers in the reports were changing (due to the additional noise) and the statement “Privacy Preserving Histogram Applied” was applied directly into the reports. Based on conversations and surveys, it was very apparent that the collaborative effort between us and the customer led to the customer trusting the data – this is a key difference in comparison to the first group. And because of this trust, the small amount of error introduced into the system to ensure customer privacy was well within a tolerable error margin. It also helped that this group is a direct marketing group; so they were more familiar with the concept of customer privacy. 
&lt;p&gt;  
&lt;h4&gt;Discussion&lt;/h4&gt;
&lt;p&gt;Ultimately, it was very important to develop trust of the data to accept the application of the privacy preserving histogram. That is, if customers trust and understand the data, the side effects of the privacy preserving histogram algorithm are well within a tolerable error margin. Customers who regularly deal with personally identifiable information are more interested in this concept and more willing to accept the additional noise. More continued analysis will be required to insure that its applicability is not just limited to these types of reporting scenarios, but the case study does provide us with enough positive feedback for further future analysis. 
&lt;p&gt;  
&lt;h4&gt;References&lt;/h4&gt;
&lt;p&gt;[1]. Sweeney L. k-anonymity: a model for protecting privacy. International Journal on Uncertainty, Fuzziness and Knowledge-based Systems, 2002: 10 (5), pp. 557-570. 
&lt;p&gt;[2] US Department of Health and Human Services (Office for Civil Rights), HIPAA Administrative Simplification [Regulated Text]. February 16, 2006. Available from: &lt;a href="http://www.hhs.gov/ocr/AdminSimpRegText.pdf"&gt;http://www.hhs.gov/ocr/AdminSimpRegText.pdf&lt;/a&gt; 
&lt;p&gt;[3] MSN, Microsoft Online Privacy Notice. C2007. Available from: &lt;a href="http://privacy.microsoft.com/"&gt;http://privacy.microsoft.com/&lt;/a&gt; 
&lt;p&gt;[4] OHSU Healthcare System (Administrative Policy Manual), Permitted Uses &amp;amp; Disclosures of Protected Health Information (ADM 04.22). April 14, 2004. Available from: &lt;a href="http://www.ohsu.edu/cc/hipaa/docs/04-22.shtml"&gt;http://www.ohsu.edu/cc/hipaa/docs/04-22.shtml&lt;/a&gt; 
&lt;p&gt;[5]. Cannon JC, Cavoukian A. Privacy: What Developers and IT Professionals Should Know. Boston, MA. Addison-Wesley Professional. 2004. 
&lt;p&gt;[6]. Dwork C, McSherry F, Nissim K, Smith A. Calibrating Noise to Sensitivity in Private Data Analysis. The Third Theory of Cryptography Conference (TTC 2006); 2006 March 4-7; New York, NY: International Association for Cryptologic Research; 2006. pp. 265-284. 
&lt;p&gt;[7]. Blum A, Dwork C, McSherry F, Nissim K. Practical Privacy: The SuLQ Framework. The 24th Symposium on Principles of Database Systems (PODS 2005); 2005 June 13-16; Baltimore, MD: Association for Computing Memory; 2005. pp. 128-138. 
&lt;p&gt;[8]. Chawla S, Dwork C, McSherry F, Talwar K. On the Utility of Privacy-Preserving Histograms [link on the internet]. The 21st Conference on Uncertainty in Artificial Intelligence (UAI 2005); 2005 July 26-29; Edinburgh, Scotland: Association for Uncertainty in Artificial Intelligence; 2005. &lt;a href="http://research.microsoft.com/research/sv/DatabasePrivacy/cdmt.pdf"&gt;http://research.microsoft.com/research/sv/DatabasePrivacy/cdmt.pdf&lt;/a&gt; 
&lt;p&gt;[9]. HIMSS Privacy and Security Toolkit [homepage on the internet]. Chicago, IL. C2007. Available from: &lt;a href="http://www.himss.org/ASP/privacySecurityTree.asp?faid=78&amp;amp;tid=4"&gt;http://www.himss.org/ASP/privacySecurityTree.asp?faid=78&amp;amp;tid=4&lt;/a&gt; 
&lt;p&gt;  
&lt;h4&gt;&lt;b&gt;Appendix&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;u&gt;Code Example&lt;/u&gt;&lt;span style="font-size:10pt;color:blue;font-family:'Courier New'"&gt;#include&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt; &lt;span style="color:#a31515"&gt;&amp;quot;stdio.h&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;color:blue;font-family:'Courier New'"&gt;#include&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt; &lt;span style="color:#a31515"&gt;&amp;quot;stdlib.h&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;color:blue;font-family:'Courier New'"&gt;#include&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt; &lt;span style="color:#a31515"&gt;&amp;quot;string.h&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;color:blue;font-family:'Courier New'"&gt;#include&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt; &lt;span style="color:#a31515"&gt;&amp;quot;math.h&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;color:blue;font-family:'Courier New'"&gt;#include&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt; &lt;span style="color:#a31515"&gt;&amp;quot;time.h&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;color:#a31515;font-family:'Courier New'"&gt; &lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;color:green;font-family:'Courier New'"&gt;/* The following routine is based on the happy property that for any interval [x,z] of the density function &lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;color:green;font-family:'Courier New'"&gt; &lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;color:green;font-family:'Courier New'"&gt;&lt;span&gt;            &lt;/span&gt;p(x) ~= exp(-|x|/R)&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;color:green;font-family:'Courier New'"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;color:green;font-family:'Courier New'"&gt;we can analytically find the point y such that p([x,y]) = p([y,z]). A single random bit can tell us on which side of y our sample should be drawn, and we can recursively apply the technique to the appropriate subinterval (ie: either one of [x,y] or [y,z]). */&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;color:green;font-family:'Courier New'"&gt; &lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;color:green;font-family:'Courier New'"&gt;/* The way we get at random bits */&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;color:green;font-family:'Courier New'"&gt;/* This can be extended/altered for an arbitrary pseodorandom generator */&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;color:blue;font-family:'Courier New'"&gt;int&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt; randombit() {&lt;span style="color:blue"&gt;return&lt;/span&gt;(rand()%2);}&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt; &lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;color:green;font-family:'Courier New'"&gt;/* Produces integer valued noise */&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;color:blue;font-family:'Courier New'"&gt;int&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt; intnoise(&lt;span style="color:blue"&gt;double&lt;/span&gt; R)&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;{&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;      &lt;/span&gt;&lt;span style="color:blue"&gt;double&lt;/span&gt; tally = 0.0;&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;color:green;font-family:'Courier New'"&gt;//&lt;span&gt;    &lt;/span&gt;double tally = 0.5 - R * log((exp(1.0/R) + 1.0)/2.0);&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;      &lt;/span&gt;&lt;span style="color:green"&gt;// stage 1: flip a lot of coins&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;      &lt;/span&gt;&lt;span style="color:blue"&gt;while&lt;/span&gt; (randombit() != 0)&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;            &lt;/span&gt;tally += R * log(1.0/2.0);&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt; &lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;      &lt;/span&gt;&lt;span style="color:green"&gt;// stage 2: now sample from this interval&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;      &lt;/span&gt;&lt;span style="color:blue"&gt;double&lt;/span&gt; x = R * log(1.0/2.0);&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;      &lt;/span&gt;&lt;span style="color:green"&gt;// loop until the integer part is fixed&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;      &lt;/span&gt;&lt;span style="color:blue"&gt;while&lt;/span&gt; (round(tally) != round(tally+x))&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;      &lt;/span&gt;{&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;            &lt;/span&gt;&lt;span style="color:blue"&gt;double&lt;/span&gt; midpoint = R * log((1.0 + exp(x/R))/2.0);&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;            &lt;/span&gt;&lt;span style="color:green"&gt;// grab one random bit.&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;            &lt;/span&gt;&lt;span style="color:blue"&gt;if&lt;/span&gt; (randombit())&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;            &lt;/span&gt;{&lt;span&gt;     &lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;                  &lt;/span&gt;tally += midpoint;&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;                  &lt;/span&gt;x = x - midpoint;&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;            &lt;/span&gt;}&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;            &lt;/span&gt;&lt;span style="color:blue"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;                  &lt;/span&gt;x = midpoint;&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;      &lt;/span&gt;}&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;      &lt;/span&gt;&lt;span style="color:blue"&gt;return&lt;/span&gt;(randombit() ? round(tally) : -round(tally));&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;}&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt; &lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;color:green;font-family:'Courier New'"&gt;/* First argument is the magnitude R of the noise. Second parameter is number of trials to conduct. */&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;color:blue;font-family:'Courier New'"&gt;int&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt; main(&lt;span style="color:blue"&gt;int&lt;/span&gt; argc, &lt;span style="color:blue"&gt;char&lt;/span&gt;** argv)&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;{&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;      &lt;/span&gt;srand(time(NULL));&lt;span&gt;      &lt;/span&gt;&lt;span style="color:green"&gt;// sets random seed to a &amp;quot;random&amp;quot; value. This&lt;/span&gt;&lt;/span&gt;&lt;br&gt;
&lt;p style="margin:0in 0in 0pt 2.5in;line-height:normal"&gt;&lt;span style="font-size:10pt;color:green;font-family:'Courier New'"&gt;&lt;span&gt; &lt;/span&gt;should be done carefully, but ok for testing.&lt;/span&gt; 
&lt;p style="margin:0in 0in 0pt 2.5in;line-height:normal"&gt;&lt;span style="font-size:10pt;color:green;font-family:'Courier New'"&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span style="color:blue"&gt;for&lt;/span&gt; (&lt;span style="color:blue"&gt;int&lt;/span&gt; i = 0; i &amp;lt; atoi(argv[2]); i++)&lt;/span&gt;&lt;br&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;&lt;span&gt;            &lt;/span&gt;printf(&lt;span style="color:#a31515"&gt;&amp;quot;noise: %03d\n&amp;quot;&lt;/span&gt;, intnoise(atof(argv[1])));&lt;/span&gt;&lt;br&gt;
&lt;p&gt;&lt;span style="font-size:10pt;font-family:'Courier New'"&gt;}&lt;/span&gt;&lt;br&gt;
&lt;p&gt; &lt;br&gt;
&lt;p&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+Analyzing+Data+while+Protecting+Privacy+-+A+Case+Study&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=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><category>Medical Informatics</category><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1397.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1397.entry</guid><pubDate>Mon, 24 Sep 2007 22:51:48 GMT</pubDate><slash:comments>2</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1397/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1397.entry#comment</wfw:comment><dcterms:modified>2007-09-24T22:52:02Z</dcterms:modified></item><item><title>SQLCAT tracks at 2007 SQL PASS</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1350.entry</link><description>&lt;div&gt;As you may already know from Brian Moran's SQL Server Magazine article &amp;quot;&lt;a href="http://www.sqlmag.com/Article/ArticleID/96978/sql_server_96978.html"&gt;SQLCAT to Offer Six Sessions at PASS&lt;/a&gt;&amp;quot;, the SQLCAT team will be providing &lt;a href="https://www.sqlpass.org/summit/Lists/2007 Summit Sessions/SQL CAT Sessions.aspx"&gt;6 SQLCAT tracks at the 2007 SQLPASS event&lt;/a&gt; in Denver this year.   As of today's schedule, below are the SQLCAT tracks schedule:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;u&gt;Wednesday, September 19th 9:45am-11:00am&lt;br&gt;&lt;/u&gt;DBA-410-M&lt;br&gt;&lt;strong&gt;Designing for Petabyte using Lession Learned from Customer Experiences&lt;br&gt;&lt;/strong&gt;Lubor Kollar, Microsoft; Kevin Cox, Microsoft&lt;br&gt;Korbel 1C/1D&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;u&gt;Wednesday, September 19th 1:30pm-2:45pm&lt;/u&gt;&lt;br&gt;DBA-411-M&lt;br&gt;&lt;strong&gt;Building High Performance Microsoft SQL Systems Using Lessons Learned From Customer Deployments&lt;/strong&gt;&lt;br&gt;Michael Thomassy, Microsoft; Burzin Patel, Microsoft&lt;br&gt;Korbel 2A/2B&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;u&gt;Thursday, September 20th 9:45am-11:00am&lt;br&gt;&lt;/u&gt;DBA-412-M&lt;br&gt;&lt;strong&gt;ISV Configuration &amp;amp; Implementation using Lessons Learned from Customer Deployments&lt;br&gt;&lt;/strong&gt;Juergen Thomas, Microsoft; Mike Ruthruff, Microsoft&lt;br&gt;Korbel 1A/1B&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;u&gt;Thursday, September 20th 1:30pm-2:45pm&lt;br&gt;&lt;/u&gt;DBA-413-M&lt;br&gt;&lt;strong&gt;Building Highly Available Microsoft SQL Server implementations using Lessons Learned from Customer Deployments&lt;/strong&gt;&lt;br&gt;Prem Mehra, Microsoft; Lindsey Allen, Microsoft; Sanjay Mishra, Microsoft&lt;br&gt;Korbel 2A/2B&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;u&gt;Friday, September 21st 9:45am-11:00am&lt;br&gt;&lt;/u&gt;DBA-416-M&lt;br&gt;&lt;strong&gt;Building &amp;amp; Deploying Large Scale SSRS farms using Lessons Learned from Customer Deployments&lt;/strong&gt;&lt;br&gt;Denny Lee, Microsoft; Lukasz Pawlowski, Microsoft&lt;br&gt;107/109&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;u&gt;Friday, September 21st 1:00pm-2:15pm&lt;br&gt;&lt;/u&gt;DBA-415-M&lt;br&gt;&lt;strong&gt;Building &amp;amp; Maintaining Large Cubes Using Lessons Learned from Customer Deployments&lt;/strong&gt;&lt;br&gt;Nicholas Dritsas, Microsoft; Eric Jacobson, Microsoft&lt;br&gt;108/110/112&lt;/div&gt;
&lt;div&gt;&lt;br&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+SQLCAT+tracks+at+2007+SQL+PASS&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=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><category>SQL</category><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1350.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1350.entry</guid><pubDate>Wed, 12 Sep 2007 18:53:46 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1350/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1350.entry#comment</wfw:comment><dcterms:modified>2007-09-12T18:53:46Z</dcterms:modified></item><item><title>Security Issues when Profiling Multiple Analysis Services databases</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1323.entry</link><description>&lt;p&gt;&lt;strong&gt;Problem: &lt;/strong&gt;A user with full permissions within a database cannot see any profiling events when the user has full permissions to two or more AS databases and is not a server admin.  The user will be able to trace any query related events for the first database via Profiler but he/she cannot capture any similar events for the other databases. 
&lt;p&gt;&lt;strong&gt;Reason: &lt;/strong&gt;This is a known limitation because the trace is normally a feature restricted to server Admins.  DB admins can only see the trace output whenever it is safe to assume from a security perspective that the events produced are for a specific database only.  If its not possible to guaratee events related to a single databse, then the events are not exposed to the user. 
&lt;p&gt;&lt;strong&gt;Alternative Solution&lt;/strong&gt;: An alternative solution to this problem is to go ahead to create multiple profiler traces, one for each database.  When you connect to SSAS from the Profiler, you will be able to choose to profile any of the databases that you have full admin access.  In this case, you will open up multiple profilers, one for each database and now you are profiling the AS databases desired. 
&lt;p&gt;Thanks to contributions by John Lam, Edward Melomed! 
&lt;p&gt; &lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+Security+Issues+when+Profiling+Multiple+Analysis+Services+databases&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=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><category>Analysis Services</category><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1323.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1323.entry</guid><pubDate>Thu, 02 Aug 2007 01:19:05 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1323/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1323.entry#comment</wfw:comment><dcterms:modified>2007-08-02T01:19:35Z</dcterms:modified></item><item><title>Renaming an Analysis Services 2005 cube</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1321.entry</link><description>&lt;p&gt;
&lt;p&gt;There is a question on how to rename an Analysis Services 2005 cube since you cannot do that within SSMS (you can rename a database but you cannot a cube).  If you want to rename a cube prior to its deployment, you can alter it through XMLA.  To do this: 
&lt;blockquote&gt;
&lt;p&gt;&lt;font color="#0000ff"&gt;&amp;lt;Cube ...&amp;gt;&amp;lt;ID&amp;gt;Blah&amp;lt;/ID&lt;font style="background-color:#ffff00"&gt;&amp;gt;&amp;lt;Name&amp;gt;Foo&amp;lt;/Name&amp;gt;&lt;/font&gt;...&lt;/font&gt;&lt;/blockquote&gt;
&lt;p&gt;As you can see from above, the &amp;lt;Name&amp;gt; node can be changed so that while the ID for this cube is still &amp;quot;blah&amp;quot;, now your name can be &amp;quot;Foo&amp;quot;. 
&lt;p&gt;But if you want to change the name of your cube after its already been deployed, there are an additional number of steps that will need to be performed.  First you will need to go the Olap database folder, e.g. 
&lt;blockquote&gt;
&lt;p&gt;C:\Program Files\Microsoft SQL Server\MSSQL.2\olap\Data\[Database Name].0.db&lt;/blockquote&gt;
&lt;p&gt;and then access the cube XML definition file within that folder, such as: &lt;strong&gt;[Cube Name].0.cub&lt;/strong&gt;.  The XML within this file will look like (with a cube name of “Blah”) 
&lt;blockquote&gt;
&lt;p&gt;&lt;font color="#0000ff"&gt;&amp;lt;Cube&amp;gt;&lt;font style="background-color:#ffff00"&gt;&amp;lt;Name&amp;gt;Blah&amp;lt;/Name&amp;gt;&lt;/font&gt;&amp;lt;ID&amp;gt;Blah&amp;lt;/ID&amp;gt;...&lt;/font&gt;&lt;/blockquote&gt;
&lt;p&gt;So you need only to change the name of the &amp;lt;Name&amp;gt; node (e.g. now “Foo”) to: 
&lt;blockquote&gt;
&lt;p&gt;&lt;font color="#0000ff"&gt;&amp;lt;Cube&lt;font style="background-color:#ffff00"&gt;&amp;gt;&amp;lt;Name&amp;gt;Foo&amp;lt;/Name&amp;gt;&lt;/font&gt;&amp;lt;ID&amp;gt;Blah&amp;lt;/ID&amp;gt;...&lt;/font&gt;&lt;/blockquote&gt;
&lt;p&gt;You will also need to stop/restart the AS service for it to register the new name.
&lt;p&gt; &lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+Renaming+an+Analysis+Services+2005+cube&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=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><category>Analysis Services</category><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1321.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1321.entry</guid><pubDate>Fri, 20 Jul 2007 23:36:09 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1321/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1321.entry#comment</wfw:comment><dcterms:modified>2007-07-20T23:36:55Z</dcterms:modified></item><item><title>SSAS 2005 Error Codes and Messages</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1316.entry</link><description>&lt;div&gt;Thanks to Edward Melomed and Eric Jacobsen for these quick tips!&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;In order to view the full list of error codes and messages for SQL Server Analysis Services 2005, you can open up Visual Studio and look at the resources within the msmdsrv.rll file.  A quick and handy way to view the RLL file is to use Mark Russinovich's &lt;strong&gt;Strings&lt;/strong&gt; utility from Sysinternals - you can find it at: &lt;a href="http://www.microsoft.com/technet/sysinternals/Miscellaneous/Strings.mspx"&gt;http://www.microsoft.com/technet/sysinternals/Miscellaneous/Strings.mspx&lt;/a&gt;.  Note that this RLL file has the tracedefinition90.xml file embedded inside it.&lt;/div&gt;
&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=1323305814572094295&amp;page=RSS%3a+SSAS+2005+Error+Codes+and+Messages&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=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><category>Analysis Services</category><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1316.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1316.entry</guid><pubDate>Wed, 18 Jul 2007 21:17:57 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1316/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1316.entry#comment</wfw:comment><dcterms:modified>2007-07-18T21:17:57Z</dcterms:modified></item><item><title>Analysis Services 2005 Trace Event Definitions</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1317.entry</link><description>&lt;p&gt;In the Best Practices whitepaper Analysis Services Processing Best Practices (&lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/ssaspbpr.mspx"&gt;http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/ssaspbpr.mspx&lt;/a&gt;), I had noted in the &lt;strong&gt;Troubleshooting Best Practices &amp;gt; Create a system-wide trace file&lt;/strong&gt; section that you could create a Analysis Services Processing Trace via XMLA.  &lt;em&gt;Many thanks again to Dave Wickert for providing this example&lt;/em&gt;.  
&lt;p&gt;But I had forgot to note where one can get all of the trace event definitions from.  To do this, go to the [%Olap Data Folder%]\bin\Resources\1033 folder (by default [%Olap Data Folder%] is C:\Program Files\Microsoft SQL Server\MSSQL.2\Olap) and open up the file tracedefinition90.xml.  In there, you can find all of the trace event definitions.
&lt;p&gt;&lt;br&gt; &lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+Analysis+Services+2005+Trace+Event+Definitions&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=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><category>Analysis Services</category><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1317.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1317.entry</guid><pubDate>Wed, 18 Jul 2007 07:50:33 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1317/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1317.entry#comment</wfw:comment><dcterms:modified>2007-07-20T23:37:28Z</dcterms:modified></item><item><title>Distinct Count Optimization for Analysis Services 2005</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1315.entry</link><description>&lt;div&gt;In reference to my blog on Distinct Count Optimization at &lt;a href="http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1156.entry"&gt;http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1156.entry&lt;/a&gt;, I would like to expand it slightly specifically for Analysis Services 2005.  Based on customer visits and more extensive testing, I have found that following most of the advice in my original blog entry will help improve distinct counts.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;font style="background-color:#ffff00"&gt;But, for Analysis Services 2005, it will be better to partition where the distinct value (e.g. users) are placed in the same partition&lt;/font&gt;.  This is different from Analysis Services 2000 where the partitioning strategy was to take that same distinct value and spread it across as many partitions as possible.  For AS2k5, there was significant improvement when using this new partitioning strategy.  Over the next couple of months, I'll update this blog entry when I finally get a best practices whitepaper to provide more details on this.  &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=1323305814572094295&amp;page=RSS%3a+Distinct+Count+Optimization+for+Analysis+Services+2005&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=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><category>Analysis Services</category><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1315.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1315.entry</guid><pubDate>Fri, 13 Jul 2007 23:49:56 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1315/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1315.entry#comment</wfw:comment><dcterms:modified>2007-07-20T23:38:03Z</dcterms:modified></item><item><title>Photo Album: Blog Images</title><link>http://denster.spaces.live.com/photos/cns!125D53A08EC75357!1360/</link><description>&lt;p&gt;Blog Images&lt;/p&gt;&lt;div&gt;&lt;table cellspacing="0" border="0"&gt;&lt;tr height="8"&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1360&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1361"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;1361&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1360&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1362"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;1362&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1360&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1363"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;1363&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1360&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1364"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;1364&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1360&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1365"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;1365&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1360&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1366"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;1366&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1360&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1367"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;1367&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1360&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1368"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;1368&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1360&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1369"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;1369&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1360&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1370"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;1370&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1360&amp;#47;"&gt;More Photos...&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+Photo+Album%3a+Blog+Images&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=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><guid isPermaLink="false">cns!125D53A08EC75357!1360</guid><pubDate>Mon, 24 Sep 2007 22:48:27 GMT</pubDate><msn:type>photoalbum</msn:type><live:type>photoalbum</live:type><live:typelabel>Photo album</live:typelabel><cf:itemRSS>http://denster.spaces.live.com/photos/cns!125D53A08EC75357!1360/feed.rss</cf:itemRSS><dcterms:modified>2007-09-24T22:48:27Z</dcterms:modified></item><item><title>Photo Album: Outdoor</title><link>http://denster.spaces.live.com/photos/cns!125D53A08EC75357!126/</link><description>&lt;p&gt;Outdoor&lt;/p&gt;&lt;div&gt;&lt;table cellspacing="0" border="0"&gt;&lt;tr height="8"&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;126&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;127"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;127&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Looking into Puget Sound&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;126&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;128"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;128&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Lake Serene, Mt. Index&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;126&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;130"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;130&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Methow River Rafting&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;126&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;131"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;131&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Mt. Rainier Emmons Route&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;126&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;132"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;132&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Mt. Rainier Climb w&amp;#47; Kelly Hedlund&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;126&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;133"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;133&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Mt. Rainier Climb w&amp;#47; Denny&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;126&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;134"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;134&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Mt. Rainier Near Summit Day&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;126&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;135"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;135&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Mt. Rainier Near Summt Dawn&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;126&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;136"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;136&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Mt. Rainier, Camp Schurmann view&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;126&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;137"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;137&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Mt. Rainier, Camp Schurmann Dusk&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;126&amp;#47;"&gt;More Photos...&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+Photo+Album%3a+Outdoor&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=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><guid isPermaLink="false">cns!125D53A08EC75357!126</guid><pubDate>Fri, 29 Dec 2006 21:24:41 GMT</pubDate><msn:type>photoalbum</msn:type><live:type>photoalbum</live:type><live:typelabel>Photo album</live:typelabel><cf:itemRSS>http://denster.spaces.live.com/photos/cns!125D53A08EC75357!126/feed.rss</cf:itemRSS><dcterms:modified>2006-12-29T21:24:41Z</dcterms:modified></item><item><title>Photo Album: Blog Images</title><link>http://denster.spaces.live.com/photos/cns!125D53A08EC75357!1203/</link><description>&lt;p&gt;Blog Images&lt;/p&gt;&lt;div&gt;&lt;table cellspacing="0" border="0"&gt;&lt;tr height="8"&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1203&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1204"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;1204&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1203&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1205"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;1205&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1203&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1206"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;1206&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1203&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1207"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;1207&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1203&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1208"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;1208&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1203&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;1209"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;1209&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+Photo+Album%3a+Blog+Images&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=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><guid isPermaLink="false">cns!125D53A08EC75357!1203</guid><pubDate>Wed, 27 Dec 2006 23:37:01 GMT</pubDate><msn:type>photoalbum</msn:type><live:type>photoalbum</live:type><live:typelabel>Photo album</live:typelabel><cf:itemRSS>http://denster.spaces.live.com/photos/cns!125D53A08EC75357!1203/feed.rss</cf:itemRSS><dcterms:modified>2006-12-27T23:37:01Z</dcterms:modified></item><item><title>Photo Album: Lisa &amp; Denny's Wedding</title><link>http://denster.spaces.live.com/photos/cns!125D53A08EC75357!207/</link><description>&lt;p&gt;Lisa &amp;#38; Denny&amp;#39;s Wedding&lt;/p&gt;&lt;div&gt;&lt;table cellspacing="0" border="0"&gt;&lt;tr height="8"&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;207&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;208"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;125D53A08EC75357&amp;#33;208&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Connie fixing Dave&amp;#39;s flower&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://denster.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;125D53A08EC75357&amp;#33;207&