<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Speakers are Speaking in Code . . .</title><link>http://blogs.msdn.com/mollman/default.aspx</link><description>John Mollman's Dispatches from Badger Hall and Redmond</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>cleaning up older .net beta framework installations</title><link>http://blogs.msdn.com/mollman/archive/2009/11/03/cleaning-up-older-net-beta-framework-installations.aspx</link><pubDate>Tue, 03 Nov 2009 15:54:35 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9916803</guid><dc:creator>mollman</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mollman/comments/9916803.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mollman/commentrss.aspx?PostID=9916803</wfw:commentRss><description>&lt;p&gt;I’ve been working with Visual Studio 2010 betas for a while now (it’s really great) and have gone through multiple upgrades of VS and the .Net runtime over the past few months. &lt;/p&gt;  &lt;p&gt;While working on a WCF REST service this week I started seeing assembly load errors when IIS was attempting to initialize my service code. The errors in the Event Log looked something like this: “The worker process failed to pre-load .Net Runtime version v4.0.20521.” That seemed a little odd since I’m running version 4.0.21006.&amp;#160; &lt;/p&gt;  &lt;p&gt;I double checked that IIS was configured to use v.0.21006 for the Application Pool I was using. It was. Binging around didn’t lead to any quick answers so I’m posting this in hopes that it will now. &lt;/p&gt;  &lt;p&gt;Turns out that when you uninstall previous beta versions of VS or the .Net runtime some vestiges remain on your system. In my case %SystemRoot%\Microsoft.Net\Framework and %SystemRoot%\Microsoft.Net\Framework64 contained several v4.0.* subdirectories. IIS appears to have been picking the first subdirectory that matches the major.minor version and attempting to load the runtime from that location.&amp;#160; &lt;/p&gt;  &lt;p&gt;Removing the older v4.0 subdirectories (NOT v4.0.21006) cleared up the problem. &lt;/p&gt;  &lt;p&gt;Hope that helps someone else. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9916803" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mollman/archive/tags/Tips/default.aspx">Tips</category><category domain="http://blogs.msdn.com/mollman/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Managing Internal Connection Strings in SQL CLR code during testing</title><link>http://blogs.msdn.com/mollman/archive/2007/03/23/managing-internal-connection-strings-in-sql-clr-code-during-testing.aspx</link><pubDate>Fri, 23 Mar 2007 22:05:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1938759</guid><dc:creator>mollman</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mollman/comments/1938759.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mollman/commentrss.aspx?PostID=1938759</wfw:commentRss><description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;One thing that’s somewhat painful about testing/debugging SqlClr application code is managing the connection strings used for internal DB calls inside the system. SqlClr has the notion of a “context connection” connection string which uses the same connection and execution context as that under which the SqlClr code is executing. We use this a lot inside the &lt;a href="http://blogs.msdn.com/mollman/archive/2006/06/12/628239.aspx"&gt;Aggregation system&lt;/a&gt; my team developed.  &lt;p&gt;It can make testing difficult, as when you’re unit testing functionality that uses the context connection and you’re hosted not within SqlServer but within a testing framework these internal calls fail with a “context connection is only available when hosted by SqlServer” error.  &lt;p&gt;I’ve come up with an idiom for managing this in my unit tests. Maybe useful to others as well, so here it is.  &lt;p&gt;I have a utility class with a&amp;nbsp;static constructor&amp;nbsp;which figures out if we’re hosted by SqlServer by inspecting the &lt;a href="http://msdn2.microsoft.com/en-us/library/microsoft.sqlserver.server.sqlcontext.isavailable.aspx"&gt;SqlContext.IsAvailable property&lt;/a&gt; and sets a connection string property appropriately. If we’re not hosted by SqlServer the utility class checks the ConfigurationManager for settings stored in AppSettings in our app.config file and uses those.  &lt;p&gt;Here’s the relevant code:  &lt;p&gt;&lt;font face="Courier New"&gt;#region Constructors&lt;br&gt;/// &amp;lt;summary&amp;gt;&lt;br&gt;/// Sets up the internal connection string used by the system.&lt;/font&gt;&lt;font face="Courier New"&gt; &lt;br&gt;/// &amp;lt;/summary&amp;gt;&lt;br&gt;static Utility()&lt;br&gt;{&lt;br&gt;&amp;nbsp; if (SqlContext.IsAvailable)&lt;br&gt;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; internalConnectionString = "context connection=true";&lt;br&gt;&amp;nbsp; }&lt;br&gt;&amp;nbsp; else&lt;br&gt;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SqlConnectionStringBuilder sqlSb = new SqlConnectionStringBuilder(); &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #if DEBUG&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlSb.Pooling = false;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endif&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlSb.DataSource = ConfigurationManager.AppSettings["DBServer"];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlSb.InitialCatalog = ConfigurationManager.AppSettings["Database"];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlSb.IntegratedSecurity = true;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; internalConnectionString = sqlSb.ToString();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception e)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// log&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;internalConnectionString = "context connection=true";&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp; }&lt;br&gt;} &lt;/font&gt; &lt;p&gt;&lt;font face="Courier New"&gt;#endregion &lt;/font&gt; &lt;p&gt;&lt;font face="Courier New"&gt;#region Properties&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;br&gt;&lt;/font&gt; &lt;p&gt;&lt;font face="Courier New"&gt;/// &amp;lt;summary&amp;gt;&lt;br&gt;/// Connection String used for DB calls within the system. &lt;br&gt;/// If hosted by SqlServer this will be a context connection, &lt;br&gt;/// otherwise we assume this is a test run and use a trusted connection&lt;br&gt;/// string with database and server as configured in app.config. &lt;br&gt;/// &amp;lt;/summary&amp;gt;&lt;/font&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;public static string InternalConnectionString&lt;br&gt;{&lt;br&gt;&amp;nbsp; get { return internalConnectionString; }&lt;br&gt;} &lt;/font&gt; &lt;p&gt;&lt;font face="Courier New"&gt;#endregion&lt;/font&gt;  &lt;p&gt;Then in the SqlClr code we get the connection string like so:  &lt;p&gt;&lt;font face="Courier New"&gt;using (SqlConnection conn = new SqlConnection(Utility.InternalConnectionString))&lt;/font&gt;; &lt;p&gt; &lt;p&gt;Now&amp;nbsp;our unit tests&amp;nbsp;can operate outside of the SqlServer context. This isn't always appropriate or neccessary, but for our project it's both.  &lt;p&gt;Some caveats/weirdness:  &lt;ol&gt; &lt;li&gt;When hosted in SqlServer you don’t usually have access to config files (or the file system as we know it) so I rename and copy the app.config for my unit test assembly to the output directory and rename it so it looks like the config file for the SqlClr assembly. This is only useful for testing, and the config file that appears to be for the SqlClr code isn’t actually deployed to SqlServer.&amp;nbsp;&lt;br&gt; &lt;li&gt;I wouldn’t ordinarily read config settings in a static .cctor, but in SqlClr you can’t write to static members unless they’re readonly which complicates things somewhat.&amp;nbsp;&lt;br&gt; &lt;li&gt;When debugging SqlClr you want to use a trusted connection when possible, so that’s what we do for test scenario here. This assumes whatever security context the tests are using has necessary permissions on the database.&amp;nbsp;&lt;br&gt; &lt;li&gt;SqlContext.IsAvailable can return false for reasons other than that your code isn't hosted in SqlServer. I haven’t fully explored all the potential failure cases here yet.&amp;nbsp;We protect our system against this in the SqlServer hosted case by defaulting to a context connection if any exception is caught when attempting to initialize the test connection string.  &lt;li&gt;VS won't let you add a reference to the System.Configuration.dll assembly using the normal Add Reference context menu for SqlClr projects. Apparently this assembly was added to the "blessed assemblies" list for SqlServer hosted code late in the game and VS hasn't yet caught up. You'll need to manually edit your .csproj file and add&amp;nbsp; the reference manually like so:  &lt;p&gt;&lt;font face="Courier New"&gt;&amp;nbsp; &amp;lt;ItemGroup&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . . .&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Reference Include="System.Configuration" /&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;/ItemGroup&amp;gt;&lt;/font&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1938759" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mollman/archive/tags/Tips/default.aspx">Tips</category><category domain="http://blogs.msdn.com/mollman/archive/tags/SQL+Server+2005/default.aspx">SQL Server 2005</category></item><item><title>Making Friends in the CLR</title><link>http://blogs.msdn.com/mollman/archive/2006/10/13/making-friends-in-the-clr.aspx</link><pubDate>Fri, 13 Oct 2006 20:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:822603</guid><dc:creator>mollman</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mollman/comments/822603.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mollman/commentrss.aspx?PostID=822603</wfw:commentRss><description>&lt;P&gt;My boss and I were lamenting the lack of the "friend" declaration in the CLR languages like C# this week. &lt;/P&gt;
&lt;P&gt;We're working on tightening up the Publishing API for the MTPS system (the publishing system behind &lt;A class="" href="http://msdn2.microsoft.com/" mce_href="http://msdn2.microsoft.com"&gt;msdn2.microsoft.com)&lt;/A&gt; and wanted to be able to restrict access to some utility library methods so that only the core of the system could use them but not external clients. "What we need," I said "is C++'s 'friend' declaration. Too bad we don't have that for managed code." &lt;/P&gt;
&lt;P&gt;Turns out we &lt;EM&gt;do&lt;/EM&gt; have such functionality. Even better, maybe. &lt;/P&gt;
&lt;P&gt;Using the [assembly:InternalsVisibleTo] attribute introduced in .NET 2.0&amp;nbsp;allows to to &lt;A class="" href="http://msdn2.microsoft.com/en-us/library/0tke9fxk.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/0tke9fxk.aspx"&gt;declare another assembly a "friend,"&lt;/A&gt; meaning that all members declared with internal visibility can be accessed from the friend assembly. Pretty neat. It solved our problem quite well. I'm not sure how I missed this when&amp;nbsp;.NET &amp;nbsp;2.0 came out, but I did. &lt;/P&gt;
&lt;P&gt;Note that there are some &lt;A class="" href="http://msdn2.microsoft.com/en-us/library/heyd8kky.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/heyd8kky.aspx"&gt;important security caveats&lt;/A&gt; to keep in mind when using this attribute. &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=822603" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mollman/archive/tags/C_2300_+Language/default.aspx">C# Language</category><category domain="http://blogs.msdn.com/mollman/archive/tags/Tips/default.aspx">Tips</category></item><item><title>Doc Watson: Nicest Man in Show Business?</title><link>http://blogs.msdn.com/mollman/archive/2006/07/20/673026.aspx</link><pubDate>Thu, 20 Jul 2006 20:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:673026</guid><dc:creator>mollman</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mollman/comments/673026.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mollman/commentrss.aspx?PostID=673026</wfw:commentRss><description>&lt;P&gt;Went with the family to see &lt;A href="http://en.wikipedia.org/wiki/Doc_Watson"&gt;Doc Watson &lt;/A&gt;play at the Woodland Park Zoo last night. The zoo hosts &lt;A href="http://www.zoo.org/zootunes"&gt;concerts &lt;/A&gt;featuring some pretty great mid-level touring bands every summer on the &lt;A href="http://local.live.com/default.aspx?v=2&amp;amp;cp=rybft64t3p2f&amp;amp;style=o&amp;amp;lvl=2&amp;amp;scene=3692707"&gt;North&amp;nbsp;Meadow&lt;/A&gt;, and, since we live a block away,&amp;nbsp;we go to most every show. It's a really kid-friendly scene; I think my son Søren was 4 days old when he saw his first show there (Suzanne Vega). Watson was great, as always, and the kids loved dancing to the familiar music. &lt;/P&gt;
&lt;P&gt;At one point Watson&amp;nbsp;fielded a request from the audience with what must be the most polite refusal since Bartleby worked as a scrivener. I'm paraphrasing: &lt;/P&gt;
&lt;P&gt;"Well ma'am, thank you for making a request, but I've played that song about 3500 times with Merle, and probably 4000 times since. If it's alright with you I'd prefer not to play it tonight." Jeff Tweedy he ain't. &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=673026" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mollman/archive/tags/Fun/default.aspx">Fun</category><category domain="http://blogs.msdn.com/mollman/archive/tags/Music/default.aspx">Music</category><category domain="http://blogs.msdn.com/mollman/archive/tags/Personal/default.aspx">Personal</category></item><item><title>Microsoft to Supply ECUs for Formula One (Sort Of)</title><link>http://blogs.msdn.com/mollman/archive/2006/07/06/658134.aspx</link><pubDate>Thu, 06 Jul 2006 20:54:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:658134</guid><dc:creator>mollman</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mollman/comments/658134.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mollman/commentrss.aspx?PostID=658134</wfw:commentRss><description>I'm on my annual F1-oriented vacation and travelled to Indianapolis for the USGP again.&amp;nbsp; I'm a big fan of Kimi Raikkonen, so the USGP was a real dissapointment. We have great seats at turn one, which is where Juan Pablo Montoya took out Raikkonen (his McLaren teammate) on the first lap. &lt;br&gt;&lt;br&gt;Interesting to see that Autosport is &lt;a href="http://www.autosport.com/news/report.php/id/53006"&gt;reporting&lt;/a&gt; that the FIA has chosen "Microsoft MES" as the official supplier of ECUs for Formula One starting in 2008. Exactly what/who is MES is subject to debate in the F1 press at this point, but Autosport sources report that it's McLaren Electronic Systems; a subsidiary of McLaren International reportedly unrelated to the McLaren Mercedes F1 team. &lt;br&gt;&lt;br&gt;Where and how Microsoft fits into this I have no idea, but if anyone involved is reading this: can I come work for you? I'll move to Woking, no worries! &lt;br&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=658134" width="1" height="1"&gt;</description></item><item><title>WSJ on Craigslist</title><link>http://blogs.msdn.com/mollman/archive/2006/06/19/639504.aspx</link><pubDate>Mon, 19 Jun 2006 23:27:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:639504</guid><dc:creator>mollman</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mollman/comments/639504.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mollman/commentrss.aspx?PostID=639504</wfw:commentRss><description>&lt;P&gt;File under "Goliath interviews David, Remains Incredulous."&lt;/P&gt;
&lt;P&gt;Saturday's Wall Street Journal has an&amp;nbsp;&lt;A href="http://online.wsj.com/public/article/SB115049840863382886-9QyN65ef6meo_D2UlLOxAdRmbN0_20070616.html?mod=rss_free"&gt;interview &lt;/A&gt;with Craigslist CEO Jim Buckmaster. Brian Carney, the interviewer, seems distinctly ill-at-ease with the notion that Craigslist isn't terribly interested in maximizing revenue. &lt;/P&gt;
&lt;P&gt;From the interview: "If Craigslist does what its users ask of it, and Craigslist doesn't need or seem to want all the ad revenue it declines to collect, maybe we, as end-users, should ask them to post some banner ads and give us the money instead." &lt;/P&gt;
&lt;P&gt;Is leaving money on the table really such an affront? &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=639504" width="1" height="1"&gt;</description></item><item><title>MTPS ContentServices and MSDNMan</title><link>http://blogs.msdn.com/mollman/archive/2006/06/13/629972.aspx</link><pubDate>Tue, 13 Jun 2006 23:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:629972</guid><dc:creator>mollman</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mollman/comments/629972.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mollman/commentrss.aspx?PostID=629972</wfw:commentRss><description>&lt;P&gt;&lt;A href="http://pluralsight.com/blogs/craig/"&gt;Craig Andera &lt;/A&gt;has been working with my team on a set of web services exposing &lt;A href="http://msdn2.microsoft.com"&gt;MSDN2 &lt;/A&gt;content hosted by MTPS (our content publishing and rendering system) to SOAP clients. &lt;/P&gt;
&lt;P&gt;Yesterday at TechNet they pulled the wraps off and &lt;A href="http://pluralsight.com/blogs/craig/archive/2006/06/12/27273.aspx"&gt;announced the public&amp;nbsp;availability &lt;/A&gt;of &lt;A href="http://services.msdn.microsoft.com/ContentServices/ContentService.asmx"&gt;these services&lt;/A&gt;. I think this is a pretty big deal; we're opening up the corpus of MSDN's developer documentation to clients outside of our control and I'm confident that usage scenarios we've never imagined will emerge as folks play around with these services. &lt;/P&gt;
&lt;P&gt;Craig developed a reference implemenation of a client for these services of particular (peculiar?) interest to those of us who've dwelt in the *NIX world and still cling to the command line: &lt;A href="http://pluralsight.com/blogs/craig/archive/2006/06/12/27288.aspx"&gt;msdnman&lt;/A&gt;. No, it's not a superhero -- it's a command line documentation engine that displays MSDN&amp;nbsp;docs fetched from the&amp;nbsp;Content Services. Craig has&lt;A href="http://wangdera.com/msdnman/"&gt; made&amp;nbsp;the source code available&lt;/A&gt; and it provides an excellent example for those interested in writing clients which consume these services. &lt;/P&gt;
&lt;P&gt;I've been helping out a little around the periphery of this project and have learned more about&amp;nbsp; XML esoterica than I ever thought possible. Now when&amp;nbsp;I'm asked about REST I'll have a more reasonable answer than "no thanks, I gave it up when my second child was born."&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=629972" width="1" height="1"&gt;</description></item><item><title>MSDN Aggregation System Article</title><link>http://blogs.msdn.com/mollman/archive/2006/06/12/628239.aspx</link><pubDate>Mon, 12 Jun 2006 17:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:628239</guid><dc:creator>mollman</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mollman/comments/628239.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mollman/commentrss.aspx?PostID=628239</wfw:commentRss><description>&lt;P&gt;An&amp;nbsp;article I wrote for MSDN Magazine covering the metadata aggregation system my team developed has been&amp;nbsp;published. Online version at &lt;A href="http://msdn.microsoft.com/msdnmag/issues/06/07/InsideMSDN/default.aspx"&gt;http://msdn.microsoft.com/msdnmag/issues/06/07/InsideMSDN/default.aspx&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;This article builds on the&lt;A href="http://blogs.msdn.com/mollman/archive/2006/02/02/523483.aspx"&gt; talk &lt;/A&gt;I gave at VSLive in Febrary. &lt;/P&gt;
&lt;P&gt;Release of upgraded Related Articles&amp;nbsp;functionality based on this system on &lt;A href="http://msdn2.microsoft.com"&gt;MSDN2&lt;/A&gt; &amp;nbsp;is planned for later this month. &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=628239" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mollman/archive/tags/SQL+Server+2005/default.aspx">SQL Server 2005</category><category domain="http://blogs.msdn.com/mollman/archive/tags/Talks+and+Papers/default.aspx">Talks and Papers</category></item><item><title>Jeff Tweedy at the Moore</title><link>http://blogs.msdn.com/mollman/archive/2006/02/03/524535.aspx</link><pubDate>Sat, 04 Feb 2006 02:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:524535</guid><dc:creator>mollman</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mollman/comments/524535.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mollman/commentrss.aspx?PostID=524535</wfw:commentRss><description>&lt;p&gt;It's been a Wilco-oriented week. &lt;/p&gt;
&lt;p&gt;Followed up Monday's Nels Cline show with a Jeff&amp;nbsp; Tweedy solo show last night. As an added bonus Wilco's drummer Glenn Kotche opened and sat in for a few songs with Tweedy. &lt;/p&gt;
&lt;p&gt;Now you might be thinking A drummer opened? By himself? What was it, a 45 minute drum solo? Well, sort of. It was drums and temple bells and hoses rubbed on snares and hubcaps being whacked with egg beaters and all manner of wierdness and it was amazingly melodic. &lt;/p&gt;
&lt;p&gt;Tweedy was great and played both acoustic-friendly fare like &lt;em&gt;Acuff Rose&lt;/em&gt; and some usually heavily electrified stuff like &lt;em&gt;Shot in the Arm&lt;/em&gt; and &lt;em&gt;I'm the Man Who Loves You&lt;/em&gt; that were amazingly good in their solo acoustic arrangements. &lt;/p&gt;
&lt;p&gt;One thing Larry and I both lamented a bit was that Tweedy's renown for "baiting" his audiences seems to bring out the people interested in participating by trying to be obnoxious enough for Tweedy to notice them and tell them to shut up. It's&amp;nbsp;a strange notariety,&amp;nbsp;but maybe there are people bragging to their friends that "Jeff Tweedy called&amp;nbsp;me the snaggle toothed voice of the abyss last&amp;nbsp;night"! Tweedy was good natured about it,&amp;nbsp;and used it as therapy I guess, but it must get pretty old. &lt;/p&gt;
&lt;p&gt;Oh, and Tweedy's growin' a beard (Bob Dylan's 50th?)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://wilcobase.com/event.php?event_key=910"&gt;Here's the setlist.&lt;/a&gt; &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=524535" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mollman/archive/tags/Music/default.aspx">Music</category><category domain="http://blogs.msdn.com/mollman/archive/tags/Personal/default.aspx">Personal</category></item><item><title>VSLive Talk Resources</title><link>http://blogs.msdn.com/mollman/archive/2006/02/02/523483.aspx</link><pubDate>Thu, 02 Feb 2006 21:58:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:523483</guid><dc:creator>mollman</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mollman/comments/523483.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mollman/commentrss.aspx?PostID=523483</wfw:commentRss><description>&lt;p&gt;I promised to post links to some of the resources I mentioned in my talk at VSLive this week. Here they are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://mollman.members.winisp.net/vslive2006/VSLive_2006_SFO_john_mollman.ppt"&gt;Presentation deck &lt;/a&gt;(.ppt)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mollman.members.winisp.net/vslive2006/VSLive_2006_SFO_john_mollman.htm"&gt;Presentation deck &lt;/a&gt;(.htm)&lt;/li&gt;
&lt;li&gt;Chris Brumme's &lt;a HREF="/cbrumme/archive/2004/02/21/77595.aspx"&gt;blog post &lt;/a&gt;on SQL Server's hosting of the CLR&lt;/li&gt;
&lt;li&gt;MSDN2 docs on&lt;a href="http://msdn2.microsoft.com/en-us/library/ms165050.aspx"&gt; SQL CLR debugging &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms166100.aspx"&gt;Service Broker Dev Center &lt;/a&gt;on MSDN2&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;I'm awaiting legal clearance to post the code I used in the demo, and will post as soon as it's granted. &lt;/p&gt;
&lt;p&gt;If you attended my talk and have questions or feedback, feel free to get in touch via the email link above. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=523483" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mollman/archive/tags/SQL+Server+2005/default.aspx">SQL Server 2005</category><category domain="http://blogs.msdn.com/mollman/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/mollman/archive/tags/Talks+and+Papers/default.aspx">Talks and Papers</category></item><item><title>Back from VSLive</title><link>http://blogs.msdn.com/mollman/archive/2006/02/02/523394.aspx</link><pubDate>Thu, 02 Feb 2006 20:22:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:523394</guid><dc:creator>mollman</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mollman/comments/523394.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mollman/commentrss.aspx?PostID=523394</wfw:commentRss><description>&lt;p&gt;I've been pretty lax about posting of late (new baby, you see), but I just returned from giving a talk at VSLive in San Francisco and have several posts in the pipeline. Après ceci, le déluge. &lt;/p&gt;
&lt;p&gt;I gave a &lt;a href="http://www.ftponline.com/conferences/vslive/2006/sf/sql-sessions.aspx#usingsql"&gt;talk&lt;/a&gt; on my team's use of SQL CLR integration and Service Broker in a system we built. For those of you who attended; thanks, and I'll post my deck as promised and try to get the demo code people requested up as well. It was a bit of a challenge distilling our fairly large and complex system into concepts I could demo in an hour, but I think I managed to pare it down reasonably well. &lt;/p&gt;
&lt;p&gt;&lt;a HREF="/mdurso"&gt;Mark&lt;/a&gt; gave a great (and very well attended) talk on his rendering framework, and &lt;a href="http://spaces.msn.com/larryj/"&gt;Larry &lt;/a&gt;and &lt;a href="http://andyoakley.com/blog/"&gt;Andy &lt;/a&gt;gave a terrific keynote address covering some of the new stuff our group is doing for MSDN and TechNet. &lt;/p&gt;
&lt;p&gt;I had a lot of work to do on my presentation while we were down there (it was still pretty lame when we stepped off the plane), but managed to get out and have some fun too.&lt;a href="http://spaces.msn.com/larryj/"&gt; &lt;/a&gt;We caught &lt;a href="http://www.nelscline.com/"&gt;Nels Cline &lt;/a&gt;at Yoshi's in Oakland on Monday where he was doing&lt;a href="http://www.andrewhilljazz.com/"&gt; Andrew Hill &lt;/a&gt;compositions with a very eclectic band (coronet, accordion, baritone sax/clarinet, standup bass, trap drums). It was fascinating&amp;nbsp;the way the various instruments picked up parts of the melody&amp;nbsp;and watching Cline leading the band. Cline is Wilco's guitar player these days, which is how I know of him. Larry &lt;a href="http://spaces.msn.com/larryj/blog/cns!ED575A41D548081C!801.entry"&gt;scooped me&amp;nbsp;with this review&lt;/a&gt;. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;We also drove up to &lt;a href="http://www.nps.gov/muwo/"&gt;Muir Woods &lt;/a&gt;and had a nice dinner in Sausalito at a waterfront place with an incredible view from Muir Headlands to the city to Berkeley. &lt;/p&gt;
&lt;p&gt;Much fun. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=523394" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mollman/archive/tags/SQL+Server+2005/default.aspx">SQL Server 2005</category><category domain="http://blogs.msdn.com/mollman/archive/tags/Talks+and+Papers/default.aspx">Talks and Papers</category></item><item><title>Honeynet Project Paper on Phishing Techniques</title><link>http://blogs.msdn.com/mollman/archive/2005/05/24/421464.aspx</link><pubDate>Tue, 24 May 2005 21:07:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:421464</guid><dc:creator>mollman</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mollman/comments/421464.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mollman/commentrss.aspx?PostID=421464</wfw:commentRss><description>&lt;P&gt;Another interesting paper from the&lt;A href="http://www.honeynet.org"&gt; Honeynet Project&lt;/A&gt;. This one relates their discoveries about the tools and techniques &lt;A href="http://en.wikipedia.org/wiki/Phishing"&gt;Phishers &lt;/A&gt;use to turn compromised servers&amp;nbsp;into phishing support sites. Pretty scary how well organized these people are. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.honeynet.org/papers/phishing/"&gt;http://www.honeynet.org/papers/phishing/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Via &lt;A href="http://it.slashdot.org/article.pl?sid=05/05/24/1442241"&gt;/.&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=421464" width="1" height="1"&gt;</description></item><item><title>Gridswarms</title><link>http://blogs.msdn.com/mollman/archive/2005/05/17/418702.aspx</link><pubDate>Tue, 17 May 2005 19:13:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:418702</guid><dc:creator>mollman</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mollman/comments/418702.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mollman/commentrss.aspx?PostID=418702</wfw:commentRss><description>&lt;P&gt;"Imagine a large group of small unmanned autonomous aerial vehicles that can fly with the agility of a flock of starlings in a city square at dusk. Imagine linking their onboard computers together across a short-range, high-bandwidth wireless network and configuring them to form an enormous distributed parallel computer."&lt;/P&gt;
&lt;P&gt;&lt;A href="http://gridswarms.essex.ac.uk/index.html"&gt;http://gridswarms.essex.ac.uk/index.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;via&lt;A href="http://hardware.slashdot.org/article.pl?sid=05/05/17/0157247"&gt; /.&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;One step closer to Stephenson's &lt;A href="http://www.amazon.com/exec/obidos/tg/detail/-/0553380966/002-5013883-5201619?v=glance"&gt;Diamond Age&lt;/A&gt;, I guess. Watch for them hovering over a&amp;nbsp;burbclave in your franchulate soon&amp;nbsp; . . .&lt;/P&gt;
&lt;P&gt;&lt;A href="http://hardware.slashdot.org/article.pl?sid=05/05/17/0157247"&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=418702" width="1" height="1"&gt;</description></item><item><title>vier vrijheid</title><link>http://blogs.msdn.com/mollman/archive/2005/05/04/414736.aspx</link><pubDate>Wed, 04 May 2005 23:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:414736</guid><dc:creator>mollman</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mollman/comments/414736.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mollman/commentrss.aspx?PostID=414736</wfw:commentRss><description>&lt;P&gt;5 May is the 60th anniversary of the liberation of the Netherlands from German occupation. The Dutch hold a Liberation Festival every May 4th &amp;amp; 5th to celebrate Freedom and to&amp;nbsp;"&lt;SPAN&gt;reflect on the current meaning of freedom, democracy and justice."&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;These are three terms which are so blunted by jingoistic overuse that I find the idea of spending time in contemplation of their meanings, especially in the historical context of the horrors of the Second World War, terrifically laudable. &lt;/P&gt;
&lt;P&gt;If you happen to be in Holland, there's a whole passel of great music to see as part of the Liberation Festival. Bettie Serveert plays 3 shows (in one day!) (14.20 - 15.10 Leeuwarden,&amp;nbsp; 18.30 - 19.30 Groningen, 23.00 - 24.00 Zwolle) on the 5th, and the Drive By Truckers are in Haarlem. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=414736" width="1" height="1"&gt;</description></item><item><title>Changes to VS Mapping of CLR Objects to Yukon Data Types under Whidbey Beta2</title><link>http://blogs.msdn.com/mollman/archive/2005/04/19/409647.aspx</link><pubDate>Tue, 19 Apr 2005 18:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:409647</guid><dc:creator>mollman</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mollman/comments/409647.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mollman/commentrss.aspx?PostID=409647</wfw:commentRss><description>&lt;p&gt;&lt;font face="Arial" size="2"&gt;I'm working on a project that makes
extensive use of Yukon's CLR integration. This makes things that have
traditionally been difficult to do in T-SQL (like string manipulation)
a whole lot easier. If you aren't familiar with the basics of SQLCLR
integration, MSDN has several good overviews. Pablo Castro's &lt;a href="http://msdn.microsoft.com/sql/default.aspx?pull=/library/en-us/dnsql90/html/mandataaccess.asp"&gt;new article &lt;/a&gt;is a great place to start and covers some of the changes in Beta 2. &amp;nbsp;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial" size="2"&gt;Visual Studio does a great job of hiding
the gory details of deploying .Net assemblies and mapping CLR data
types to SQL data types behind a simple "deploy" button. Sometimes it
does such a great job that you take what it's doing for granted and get
bit. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial" size="2"&gt;I got so bit yesterday while working on
migrating a prototype from Whidbey PD7 to Beta 2. I have a simple
SqlFunction that takes a string (containing XML data), does a
Regex.Replace, and returns the modifies string. Worked fine under PD7,
but under Beta 2 I started seeing unexpected end of input Exceptions
from the downstream XML parser. Stepping through the SqlFunction in the
debugger I found that the input param string was being truncated to
4000 characters. Hmm. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial" size="2"&gt;Turns out that under Beta 2 Visual
Studio's "auto-registration" of CLR objects (the mapping of CLR data
types to SQL data types when you deploy a SQLCLR &amp;nbsp;assembly) has
changed. Under previous builds any &lt;font face="Courier New"&gt;string &lt;/font&gt;or &lt;font face="Courier New"&gt;char[]&lt;/font&gt; params were mapped to &lt;font face="Courier New"&gt;nvarchar(max)&lt;/font&gt; in the Yukon world. Under Beta 2 the mappings have changed, presumably for efficiency reasons. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial" size="2"&gt;The new mappings are as follows:&lt;/font&gt;&lt;/p&gt;&lt;pre&gt;&lt;font size="2"&gt;String&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NVarchar(4000)&lt;br&gt;SQLString&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NVarchar(4000)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;Char[]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NVarchar(4000)&lt;br&gt;SQLChars&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NVarchar(MAX)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;&lt;font size="2"&gt;Byte[]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Varbinary(8000)&lt;br&gt;SQLBinary&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Varbinary(8000)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;SQLBytes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Varbinary(MAX)&lt;br&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;&lt;font face="Arial" size="2"&gt;What this means is that when you want to
pass string data that may be &amp;gt; 4000 characters long into (or out of)
a SQLCLR function or SPROC you need to specify the params as &lt;font face="Courier New"&gt;SQLChars&lt;/font&gt; rather than &lt;font face="Courier New"&gt;string&lt;/font&gt;.&amp;nbsp; Similar changes have been made&amp;nbsp;for varbinary data. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial" size="2"&gt;As an aside: it's pretty amazing to be
able to step pretty much effortlessly from CLR code into a T-SQL SPROC
and then into SQLCLR code and out again from within the Visual Studio
debugger. &lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=409647" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mollman/archive/tags/Tips/default.aspx">Tips</category></item></channel></rss>