<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>A View Inside My Head</title><link>http://jasonfollas.com/blog/Default.aspx</link><description>Jason's Random Thoughts of Interest</description><language>en-US</language><image><link>http://jasonfollas.com/blog/Default.aspx</link><url>http://jasonfollas.com/blog/images/RSS2Image.gif</url><title>A View Inside My Head</title><width>77</width><height>60</height></image><copyright>Jason Follas</copyright><managingEditor>jason@jasonfollas.com</managingEditor><generator>Subtext Version 2.0.0.43</generator><geo:lat>41.501902</geo:lat><geo:long>-83.736853</geo:long><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/AViewInsideMyHead" type="application/rss+xml" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>The Lounge</title><link>http://feedproxy.google.com/~r/AViewInsideMyHead/~3/-ItcuD1mizk/the-lounge.aspx</link><category>Me!</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Follas</dc:creator><pubDate>Wed, 01 Jul 2009 02:35:14 PDT</pubDate><guid isPermaLink="false">http://jasonfollas.com/blog/archive/2009/07/01/the-lounge.aspx</guid><description>&lt;p&gt;Those of you who visit my blog's website will notice a new type of ad in the sidebar, replacing the AdSense skyscraper that was there previously.  I'm proud to be associated with the list of other .NET developers who are all part of &lt;a target="_blank" href="http://theloungenet.com"&gt;The Lounge&lt;/a&gt;'s &lt;a target="_blank" href="http://theloungenet.com/rooms/DOTNETSP"&gt;.NET Small Publishers Room&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://jasonfollas.com/blog/aggbug/70.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AViewInsideMyHead?a=-ItcuD1mizk:MMYOo0cyPYI:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AViewInsideMyHead?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AViewInsideMyHead?a=-ItcuD1mizk:MMYOo0cyPYI:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AViewInsideMyHead?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AViewInsideMyHead?a=-ItcuD1mizk:MMYOo0cyPYI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AViewInsideMyHead?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AViewInsideMyHead?a=-ItcuD1mizk:MMYOo0cyPYI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AViewInsideMyHead?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AViewInsideMyHead?a=-ItcuD1mizk:MMYOo0cyPYI:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AViewInsideMyHead?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AViewInsideMyHead/~4/-ItcuD1mizk" height="1" width="1"/&gt;</description><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://jasonfollas.com/blog/comments/70.aspx</wfw:comment><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://jasonfollas.com/blog/comments/commentRss/70.aspx</wfw:commentRss><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://jasonfollas.com/blog/services/trackbacks/70.aspx</trackback:ping><feedburner:origLink>http://jasonfollas.com/blog/archive/2009/07/01/the-lounge.aspx</feedburner:origLink></item><item><title>Speaking at Microsoft SQL Server User Group in Columbus, June 5</title><link>http://feedproxy.google.com/~r/AViewInsideMyHead/~3/dWC7htkvvVQ/speaking-at-microsoft-sql-server-user-group-in-columbus-june.aspx</link><category>SQL</category><category>Me!</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Follas</dc:creator><pubDate>Wed, 20 May 2009 08:00:05 PDT</pubDate><guid isPermaLink="false">http://jasonfollas.com/blog/archive/2009/05/20/speaking-at-microsoft-sql-server-user-group-in-columbus-june.aspx</guid><description>&lt;p&gt;&lt;font face="Arial"&gt;On June 5th, I'll be in Columbus (Ohio) speaking to the &lt;a target="_blank" href="https://www.resultdata.com/training/schedule/register.aspx?id=198020"&gt;Microsoft SQL Server User Group&lt;/a&gt; (Result Data) about using the XML data type in SQL Server.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;strong&gt;XML Capabilities of SQL Server 2008&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Jason Follas, Microsoft MVP for SQL Server, will lead a discussion on the XML capabilities of SQL Server 2008.  XML-based data is very prevalent in today's data world to the point that every database developer should know how to work with XML. Middle-tier translation of XML into relational data may be inflexible, and often leads to a loss of fidelity over time. One solution is to move the XML handling into the database itself in order to improve overall integration. SQL Server 2008 provides powerful XML processing features that allow easy access to data stored within XML without sacrificing any of the original fidelity.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;strong&gt;Partitioning in SQL Server 2008&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Andy Thissen, Database Administrator at BMW Financial Services, will lead a discussion of the use of partitioning in SQL Server 2008. &lt;br /&gt;
 &lt;br /&gt;
Agenda&lt;br /&gt;
 &lt;br /&gt;
12:45    Check-In&lt;br /&gt;
1:15       Introduction &amp;amp; Announcements&lt;br /&gt;
1:30       XML Capabilities of SQL Server 2008&lt;br /&gt;
2:30       BREAK&lt;br /&gt;
2:45       Partitioning in SQL Server 2008&lt;br /&gt;
3:30       Q&amp;amp;A&lt;br /&gt;
3:45       Raffle – Door Prize &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;a href="https://www.resultdata.com/training/schedule/register.aspx?id=198020"&gt;https://www.resultdata.com/training/schedule/register.aspx?id=198020&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://jasonfollas.com/blog/aggbug/69.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AViewInsideMyHead?a=dWC7htkvvVQ:UMXHfhD9Snw:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AViewInsideMyHead?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AViewInsideMyHead?a=dWC7htkvvVQ:UMXHfhD9Snw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AViewInsideMyHead?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AViewInsideMyHead?a=dWC7htkvvVQ:UMXHfhD9Snw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AViewInsideMyHead?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AViewInsideMyHead?a=dWC7htkvvVQ:UMXHfhD9Snw:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AViewInsideMyHead?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AViewInsideMyHead/~4/dWC7htkvvVQ" height="1" width="1"/&gt;</description><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://jasonfollas.com/blog/comments/69.aspx</wfw:comment><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://jasonfollas.com/blog/comments/commentRss/69.aspx</wfw:commentRss><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://jasonfollas.com/blog/services/trackbacks/69.aspx</trackback:ping><feedburner:origLink>http://jasonfollas.com/blog/archive/2009/05/20/speaking-at-microsoft-sql-server-user-group-in-columbus-june.aspx</feedburner:origLink></item><item><title>Microsoft Solver Foundation</title><link>http://feedproxy.google.com/~r/AViewInsideMyHead/~3/ws_nN2WAgG4/microsoft-solver-foundation.aspx</link><category>.NET</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Follas</dc:creator><pubDate>Sat, 04 Apr 2009 04:53:21 PDT</pubDate><guid isPermaLink="false">http://jasonfollas.com/blog/archive/2009/04/04/microsoft-solver-foundation.aspx</guid><description>&lt;p&gt;&lt;strong&gt;Warning: Only 3 people who read this may actually understand it.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This morning, after actually considering what the effort might be to port lp_solve from C over to .NET, I stumbled upon this:&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;a href="http://code.msdn.microsoft.com/solverfoundation"&gt;http://code.msdn.microsoft.com/solverfoundation&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;About 4-5 years ago, I worked on a project that used a Frankenstein'ed "lp_solve 2.0-ported-to-Java-then-ported-to-C#" solver, which was great because it was free and it was a completely managed solution (no native components).  What I was doing wasn't particularly that heavy of a problem, but still required a solver to quickly and reliably minimize a cost given a bunch of user-provided constraints.&lt;/p&gt;
&lt;p&gt;Solver Foundation appears to satisfy both of these "requirements" (i.e., being Free and being completely managed).&lt;/p&gt;
&lt;p&gt;Now, if I can build a Silverlight 2.0+ app that is able to use MSF, then I essentially get infinite scaleout of my optimizer without requiring infinite server infrastructure.  &amp;lt;evil laugh&amp;gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://jasonfollas.com/blog/aggbug/68.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AViewInsideMyHead?a=ws_nN2WAgG4:ljslQwlWX38:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AViewInsideMyHead?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AViewInsideMyHead?a=ws_nN2WAgG4:ljslQwlWX38:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AViewInsideMyHead?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AViewInsideMyHead?a=ws_nN2WAgG4:ljslQwlWX38:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AViewInsideMyHead?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AViewInsideMyHead?a=ws_nN2WAgG4:ljslQwlWX38:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AViewInsideMyHead?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AViewInsideMyHead/~4/ws_nN2WAgG4" height="1" width="1"/&gt;</description><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://jasonfollas.com/blog/comments/68.aspx</wfw:comment><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://jasonfollas.com/blog/comments/commentRss/68.aspx</wfw:commentRss><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://jasonfollas.com/blog/services/trackbacks/68.aspx</trackback:ping><feedburner:origLink>http://jasonfollas.com/blog/archive/2009/04/04/microsoft-solver-foundation.aspx</feedburner:origLink></item><item><title>For Jeff: Spatial Querying</title><link>http://feedproxy.google.com/~r/AViewInsideMyHead/~3/eHAQJF6PiaQ/for-jeff-spatial-querying.aspx</link><category>SQL</category><category>Spatial</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Follas</dc:creator><pubDate>Wed, 04 Mar 2009 15:08:55 PST</pubDate><guid isPermaLink="false">http://jasonfollas.com/blog/archive/2009/03/04/for-jeff-spatial-querying.aspx</guid><description>&lt;p&gt;A quick sample of usage as requested by my friend &lt;a href="http://www.mcwherter.net/blog/"&gt;Jeff McWherter&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;Querying for all data in a table where the "zip code polygon" is within 20 miles of a geocode point (must convert 20 miles to meters in the predicate)::&lt;/p&gt;
&lt;pre class="sql" name="code"&gt;select * 
from dbo.fe_2007_us_zcta500 
where Boundary.STDistance('POINT(-79.8884595930576 43.2609696686268)') &amp;lt; (20 * 1609.344) &lt;/pre&gt;
&lt;img src="http://jasonfollas.com/blog/aggbug/67.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AViewInsideMyHead?a=eHAQJF6PiaQ:AbVpUvfgqgY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AViewInsideMyHead?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AViewInsideMyHead?a=eHAQJF6PiaQ:AbVpUvfgqgY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AViewInsideMyHead?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AViewInsideMyHead?a=eHAQJF6PiaQ:AbVpUvfgqgY:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AViewInsideMyHead?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AViewInsideMyHead/~4/eHAQJF6PiaQ" height="1" width="1"/&gt;</description><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://jasonfollas.com/blog/comments/67.aspx</wfw:comment><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://jasonfollas.com/blog/comments/commentRss/67.aspx</wfw:commentRss><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://jasonfollas.com/blog/services/trackbacks/67.aspx</trackback:ping><feedburner:origLink>http://jasonfollas.com/blog/archive/2009/03/04/for-jeff-spatial-querying.aspx</feedburner:origLink></item><item><title>How To Force SSRS To Use Latest Data</title><link>http://feedproxy.google.com/~r/AViewInsideMyHead/~3/0V0E11dGO-c/how-to-force-ssrs-to-use-latest-data.aspx</link><category>Articles</category><category>SQL</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Follas</dc:creator><pubDate>Wed, 25 Feb 2009 11:02:27 PST</pubDate><guid isPermaLink="false">http://jasonfollas.com/blog/archive/2009/02/25/how-to-force-ssrs-to-use-latest-data.aspx</guid><description>&lt;p&gt;SQL Server Reporting Services is great in the fact that it comes with a handful of different rendering (export) formats out of the box.  If a particular report is intended to be paginated and printed, then from my web applications, I will often link to the report with a parameter instructing the render format to be PDF - this way, the user is never taken to the report viewer (they just get an Open/Save As dialog for the PDF itself).&lt;/p&gt;
&lt;p&gt;The URL for such a link may resemble the following:&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;http://server/ReportServer?/path/reportname&amp;amp;rs:Command=Render&amp;amp;rc:LinkTarget=_blank&amp;amp;&lt;strong&gt;&lt;u&gt;rs:Format=PDF&lt;/u&gt;&lt;/strong&gt;&amp;amp;SomeParameterValue=1&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;There are other interesting things that you can do with the rs:Format parameter.  For instance, say that you create a tiny report that only contains a chart.  Why not have this report rendered as an image, and then you can show this chart on your website (i.e., no extra charting component would be necessary on your web server).  Simply specify the URL to your report in an IMG tag's SRC property, and include the following parameters in that URL:&lt;/p&gt;
&lt;p&gt;rs:Format=IMAGE&amp;amp;rc:OutputFormat=PNG   (or GIF, or JPG, etc)&lt;/p&gt;
&lt;p&gt;One problem with not going through the default web-based report viewer, though: the report server likes to cache the output for your browser session.  Therefore, if the underlying data changes, re-running these reports will not show the updated information unless you close your browser and hit the page again.&lt;/p&gt;
&lt;p&gt;After a bit of headscratching and searching on the Internet, I found an easy solution that can be used to always force the reports to query the database.  Simply include the following parameter in your report's URL:&lt;/p&gt;
&lt;p&gt;rs:ClearSession=true&lt;/p&gt;
&lt;p&gt;Of course, you will take more of a hit on your database (because the report will always requery its datasets).  But, perhaps in your solution, you can selectively use this parameter if the user wants to force a refresh of a report that is automatically rendered to PDF or an image - that's a design decision that you'll have to make.  &lt;/p&gt;
&lt;p&gt;I'm just happy that a mechanism exists to get around the default behavior!&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;font face="Arial" /&gt;&lt;/p&gt;&lt;img src="http://jasonfollas.com/blog/aggbug/66.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AViewInsideMyHead?a=rfpdbN2a"&gt;&lt;img src="http://feeds.feedburner.com/~f/AViewInsideMyHead?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AViewInsideMyHead?a=dL5m63CR"&gt;&lt;img src="http://feeds.feedburner.com/~f/AViewInsideMyHead?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AViewInsideMyHead?a=tPtjedHe"&gt;&lt;img src="http://feeds.feedburner.com/~f/AViewInsideMyHead?d=131" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AViewInsideMyHead/~4/0V0E11dGO-c" height="1" width="1"/&gt;</description><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://jasonfollas.com/blog/comments/66.aspx</wfw:comment><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://jasonfollas.com/blog/comments/commentRss/66.aspx</wfw:commentRss><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://jasonfollas.com/blog/services/trackbacks/66.aspx</trackback:ping><feedburner:origLink>http://jasonfollas.com/blog/archive/2009/02/25/how-to-force-ssrs-to-use-latest-data.aspx</feedburner:origLink></item><item><title>Name Twin?!!</title><link>http://feedproxy.google.com/~r/AViewInsideMyHead/~3/G4cv2mXFZ4A/name-twin.aspx</link><category>Me!</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Follas</dc:creator><pubDate>Tue, 24 Feb 2009 04:18:36 PST</pubDate><guid isPermaLink="false">http://jasonfollas.com/blog/archive/2009/02/24/name-twin.aspx</guid><description>&lt;p&gt;My surname is relatively unique, and in all my life, I have never known of another "Jason Follas".  Well, that changed today when I got a vanity alert from Google that "Jason Follas is on Facebook".  &lt;/p&gt;
&lt;p&gt;I am on Facebook, but it seems that there's another from the New Zealand clan of Follases (there's quite a few of "us" down under)!  I'm going to befriend him for the novelty aspect.  :-)&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://jasonfollas.com/blog/images/jasonfollas_com/blog/9/o_AnotherMe.png"&gt;&lt;img alt="Another Me" border="0" src="http://jasonfollas.com/blog/images/jasonfollas_com/blog/9/o_AnotherMe_smaller.png" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://jasonfollas.com/blog/aggbug/65.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AViewInsideMyHead?a=L3SlQPIs"&gt;&lt;img src="http://feeds.feedburner.com/~f/AViewInsideMyHead?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AViewInsideMyHead?a=WqmVHd0q"&gt;&lt;img src="http://feeds.feedburner.com/~f/AViewInsideMyHead?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AViewInsideMyHead?a=Fra1euce"&gt;&lt;img src="http://feeds.feedburner.com/~f/AViewInsideMyHead?d=131" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AViewInsideMyHead/~4/G4cv2mXFZ4A" height="1" width="1"/&gt;</description><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://jasonfollas.com/blog/comments/65.aspx</wfw:comment><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://jasonfollas.com/blog/comments/commentRss/65.aspx</wfw:commentRss><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://jasonfollas.com/blog/services/trackbacks/65.aspx</trackback:ping><feedburner:origLink>http://jasonfollas.com/blog/archive/2009/02/24/name-twin.aspx</feedburner:origLink></item><item><title>Enterprise ASP.NET Application Performance Tip</title><link>http://feedproxy.google.com/~r/AViewInsideMyHead/~3/wYy6oIfASi0/enterprise-asp.net-application-performance-tip.aspx</link><category>Articles</category><category>.NET</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Follas</dc:creator><pubDate>Mon, 23 Feb 2009 11:15:00 PST</pubDate><guid isPermaLink="false">http://jasonfollas.com/blog/archive/2009/02/23/enterprise-asp.net-application-performance-tip.aspx</guid><description>&lt;p&gt;&lt;a target="_blank" href="http://www.theregion.com/"&gt;Microsoft Regional Director&lt;/a&gt; (and friend) &lt;a target="_blank" href="http://stevesmithblog.com/"&gt;Steven Smith&lt;/a&gt; has a great talk about ASP.NET performance tips - I've seen the presentation probably a handful of times already, and always seem to walk away with something new to try that I didn't quite "grok" previously.  &lt;/p&gt;
&lt;p&gt;But, here's one additional tip that I can offer that is easily overlooked, yet very important for enterprise development.&lt;/p&gt;
&lt;p&gt;Enterprise web applications (at least in my world) tend to use Integrated Security in order to provide Single Sign-On capability (i.e., automatically authenticating the user according to their Active Directory credentials).  As such, Anonymous access to the web application is usually disabled directly in the metabase using the IIS MMC.  But, with sites that use a lot of small images, there's a serious performance hit that you take when Anonymous access is disabled!&lt;/p&gt;
&lt;p&gt;A web browser will always try to submit a request anonymously.  In the case that I described where Anonymous access is disabled, the web server will generate a 403 response (and include a list of possible ways that the client can authenticate itself).  The web browser will then either prompt the user for credentials, or in the case of using Internet Explorer in the Intranet Zone with an application protected by Integrated Security, will automatically provide a response to the NTLM challenge.  The point being that it takes two separate requests for each resource (not to mention a higher computational cost, since there's a challenge/response included).  Multiply this by however many little images your page might have, and your load time increases significantly.&lt;/p&gt;
&lt;p&gt;Just today, I was asked to diagnose a load-time issue for a 3rd party web application that my client uses.  The site looks nice because it uses little images all over the place - to the effect of hundreds per page!  But, the price of these aesthetics was really aweful load times, especially over a VPN connection.&lt;/p&gt;
&lt;p&gt;For images and other resources that do not necessarily need authentication, you can get an immediate performance improvement by enabling Anonymous access to the resource directories/files themselves (leaving Anonymous access disabled for the rest of the application).  &lt;/p&gt;&lt;img src="http://jasonfollas.com/blog/aggbug/64.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AViewInsideMyHead?a=qenVBDG4"&gt;&lt;img src="http://feeds.feedburner.com/~f/AViewInsideMyHead?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AViewInsideMyHead?a=SWyrPZZ7"&gt;&lt;img src="http://feeds.feedburner.com/~f/AViewInsideMyHead?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AViewInsideMyHead?a=KjkYmY3k"&gt;&lt;img src="http://feeds.feedburner.com/~f/AViewInsideMyHead?d=131" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AViewInsideMyHead/~4/wYy6oIfASi0" height="1" width="1"/&gt;</description><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://jasonfollas.com/blog/comments/64.aspx</wfw:comment><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://jasonfollas.com/blog/comments/commentRss/64.aspx</wfw:commentRss><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://jasonfollas.com/blog/services/trackbacks/64.aspx</trackback:ping><feedburner:origLink>http://jasonfollas.com/blog/archive/2009/02/23/enterprise-asp.net-application-performance-tip.aspx</feedburner:origLink></item><item><title>Knowledge++ [4]</title><link>http://feedproxy.google.com/~r/AViewInsideMyHead/~3/mrQstI5Wbjw/knowledge-4.aspx</link><category>SQL</category><category>Spatial</category><category>Knowledge++</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Follas</dc:creator><pubDate>Sat, 21 Feb 2009 18:45:26 PST</pubDate><guid isPermaLink="false">http://jasonfollas.com/blog/archive/2009/02/21/knowledge-4.aspx</guid><description>&lt;p&gt;I recently developed a spatially-aware .NET application that did not use SQL Server 2008 as the backend (this enterprise was still on SS2005, but we needed the spatial support in the application today).  While the application worked properly on my laptop, it was a huge failboat when deployed to the server environment.&lt;/p&gt;
&lt;p&gt;I had previously posted that you can get the Microsoft.SqlServer.Types library from MS Downloads, but it turns out that this alone is not sufficient to allow your application to run.  You also need to ensure that the SQL Server 2008 Native Client is also installed (regardless of whether you're accessing a SS2008 instance or not). &lt;em&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Update!&lt;/font&gt; &lt;/strong&gt;You actually don't... read below.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Both the Types library and the Native Client can be downloaded from the following:&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=228de03f-3b5a-428a-923f-58a033d316e1&amp;amp;DisplayLang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=228de03f-3b5a-428a-923f-58a033d316e1&amp;amp;DisplayLang=en&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;My discovery source: &lt;font face="Arial"&gt;&lt;a href="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=355402&amp;amp;wa=wsignin1.0"&gt;https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=355402&amp;amp;wa=wsignin1.0&lt;/a&gt;&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE: &lt;/strong&gt;Per &lt;a href="http://blogs.msdn.com/isaac/default.aspx"&gt;Isaac Kunen&lt;/a&gt; (in this blog post's comments as well as offline discussion), the missing component from the Types library is simply an updated version of the C Runtime.  The fix of using the Native Client is a hack in this case because its MSI actually installs the updated CRT (which the MSI for the Types library should have done also - it's a goof that MS Downloads hasn't been updated with an updated version of the Types API after the above Connect feedback was answered...&lt;/p&gt;
&lt;p&gt;The Microsoft Visual C++ 2008 redistributable by itself can be downloaded from:&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&amp;amp;displaylang=en&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://jasonfollas.com/blog/aggbug/63.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AViewInsideMyHead?a=AGI9BUG2"&gt;&lt;img src="http://feeds.feedburner.com/~f/AViewInsideMyHead?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AViewInsideMyHead?a=K937U15A"&gt;&lt;img src="http://feeds.feedburner.com/~f/AViewInsideMyHead?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AViewInsideMyHead?a=fipNYbOE"&gt;&lt;img src="http://feeds.feedburner.com/~f/AViewInsideMyHead?d=131" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AViewInsideMyHead/~4/mrQstI5Wbjw" height="1" width="1"/&gt;</description><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://jasonfollas.com/blog/comments/63.aspx</wfw:comment><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://jasonfollas.com/blog/comments/commentRss/63.aspx</wfw:commentRss><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://jasonfollas.com/blog/services/trackbacks/63.aspx</trackback:ping><feedburner:origLink>http://jasonfollas.com/blog/archive/2009/02/21/knowledge-4.aspx</feedburner:origLink></item><item><title>Knowledge++ [3]</title><link>http://feedproxy.google.com/~r/AViewInsideMyHead/~3/8eYsoYtInvA/knowledge-3.aspx</link><category>SQL</category><category>Spatial</category><category>Knowledge++</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Follas</dc:creator><pubDate>Thu, 29 Jan 2009 06:32:28 PST</pubDate><guid isPermaLink="false">http://jasonfollas.com/blog/archive/2009/01/29/knowledge-3.aspx</guid><description>&lt;p&gt;When you write a query that SELECTs a SQL Server 2008 Spatial type, the returned result is a binary value.  Without closely examining the bytes, I just assumed that this was WKB (Well-Known Binary).&lt;/p&gt;
&lt;p&gt;Well, as it turns out, the bytes that are returned are simply a serialized version of the .NET object (the UDT has a Write() method that it calls internally to serialize the object in binary).  This is NOT directly compatible with WKB.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;My discovery source: &lt;font face="Arial"&gt;&lt;a href="http://social.msdn.microsoft.com/Forums/en-US/sqlspatial/thread/40ee9466-d7bf-4340-b295-53217ae5128e"&gt;http://social.msdn.microsoft.com/Forums/en-US/sqlspatial/thread/40ee9466-d7bf-4340-b295-53217ae5128e&lt;/a&gt;&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;
&lt;img src="http://jasonfollas.com/blog/aggbug/62.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AViewInsideMyHead?a=jp63lHGL"&gt;&lt;img src="http://feeds.feedburner.com/~f/AViewInsideMyHead?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AViewInsideMyHead?a=VC2bByIZ"&gt;&lt;img src="http://feeds.feedburner.com/~f/AViewInsideMyHead?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AViewInsideMyHead?a=EPOT3pYK"&gt;&lt;img src="http://feeds.feedburner.com/~f/AViewInsideMyHead?d=131" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AViewInsideMyHead/~4/8eYsoYtInvA" height="1" width="1"/&gt;</description><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://jasonfollas.com/blog/comments/62.aspx</wfw:comment><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://jasonfollas.com/blog/comments/commentRss/62.aspx</wfw:commentRss><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://jasonfollas.com/blog/services/trackbacks/62.aspx</trackback:ping><feedburner:origLink>http://jasonfollas.com/blog/archive/2009/01/29/knowledge-3.aspx</feedburner:origLink></item><item><title>Knowledge++ [2]</title><link>http://feedproxy.google.com/~r/AViewInsideMyHead/~3/LA_61T1NU44/knowledge-2.aspx</link><category>Knowledge++</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Follas</dc:creator><pubDate>Thu, 15 Jan 2009 21:00:00 PST</pubDate><guid isPermaLink="false">http://jasonfollas.com/blog/archive/2009/01/16/knowledge-2.aspx</guid><description>&lt;p&gt;During one of the many discussions at CodeMash, I brought up the fact that deep beneath the city of Detroit (some 1200 feet below the surface) exists a very large salt mine that spans some 1500 acres and contains over 100 miles of roadways connecting a series of large excavated rooms.  This salt deposit, formed hundreds of millions of years ago when a great salty sea evaporated, actually extends under most of Michigan and lower Ontario, as well as parts of Ohio and New York.  A large operation in Cleveland, for instance, mines salt from equal depths below Lake Erie.&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;em&gt;My discovery sources: &lt;/em&gt;&lt;a href="http://www.detroitsalt.com/home.htm"&gt;&lt;em&gt;http://www.detroitsalt.com/home.htm&lt;/em&gt;&lt;/a&gt; &lt;em&gt;, &lt;font face="Arial"&gt;&lt;a href="http://www.saltinstitute.org/mich-1.html"&gt;http://www.saltinstitute.org/mich-1.html&lt;/a&gt;&lt;/font&gt;&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://jasonfollas.com/blog/aggbug/61.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/AViewInsideMyHead?a=aIpLgtyJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/AViewInsideMyHead?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AViewInsideMyHead?a=kfPYN8Eb"&gt;&lt;img src="http://feeds.feedburner.com/~f/AViewInsideMyHead?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/AViewInsideMyHead?a=WTR5ZoWN"&gt;&lt;img src="http://feeds.feedburner.com/~f/AViewInsideMyHead?d=131" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AViewInsideMyHead/~4/LA_61T1NU44" height="1" width="1"/&gt;</description><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://jasonfollas.com/blog/comments/61.aspx</wfw:comment><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://jasonfollas.com/blog/comments/commentRss/61.aspx</wfw:commentRss><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://jasonfollas.com/blog/services/trackbacks/61.aspx</trackback:ping><feedburner:origLink>http://jasonfollas.com/blog/archive/2009/01/16/knowledge-2.aspx</feedburner:origLink></item></channel></rss>
