<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>TheRuntime.com</title><link>http://theruntime.com/blogs/MainFeed.aspx</link><description>A technology focused blog</description><generator>Subtext Version 2.5.1.19</generator><item><title>Banishing Shadows in eConnect</title><link>http://theruntime.com/blogs/jacob/archive/2010/08/19/Banishing-Shadows-in-eConnect.aspx</link><pubDate>Fri, 20 Aug 2010 00:05:27 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/jacob/archive/2010/08/19/Banishing-Shadows-in-eConnect.aspx</guid><wfw:comment>http://theruntime.com/blogs/jacob/comments/2845.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jacob/comments/commentRss/2845.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jacob/archive/2010/08/19/Banishing-Shadows-in-eConnect.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/jacob/services/trackbacks/2845.aspx</trackback:ping><source url="http://theruntime.com/blogs/jacob/rss.aspx">Banishing Shadows in eConnect</source><description>&lt;p&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px 0px 0px 10px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" class="wlDisabledImage" title="Flashlight" border="0" alt="Flashlight" align="right" width="320" height="212" src="http://theruntime.com/blogs/images/theruntime_com/blogs/jacob/WindowsLiveWriter/71deb7cd7ea2_E856/Flashlight_f79410f3-7253-4955-acf4-c5beddaa1875.jpg" /&gt;While I prefer working through GP Web Services, sometimes the functionality you want/need simply isn’t there. Many people drop from Web Services directly to table access, but I prefer seeing if I can’t get what I need through eConnect instead. Generally speaking, I can.&lt;/p&gt;
&lt;p&gt;Unfortunately, the eConnect SDK documentation is sparse and only really useful for simple cases. Raw schema files and cryptic explanations are par for the course and this can be frustrating.&lt;/p&gt;
&lt;h2&gt;Pulling a Customer Card&lt;/h2&gt;
&lt;p&gt;So, I’m working on an application that requires that I take a Universal Locator Id and walk that back to the customer I need to ship something to. For reasons buried in the depths of time, the UL is stored on the COMMENT2 field of the Customer Card. Since GP Web Services doesn’t expose COMMENT2 in its search criteria, I dropped back to eConnect.&lt;/p&gt;
&lt;p&gt;Simple right? I mean, the request document has a “WhereClause” element for just that purpose so how hard can it be? Here’s the documentation:&lt;/p&gt;
&lt;div class="contentPlaceHolder"&gt;
&lt;div class="content"&gt;
&lt;div class="topicContainer"&gt;
&lt;div class="topic" xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;div id="mainSection" xmlns=""&gt;
&lt;table border="1" cellspacing="0" cellpadding="5"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="82"&gt;
            &lt;p class="TableText"&gt;WhereClause&lt;/p&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="45"&gt;
            &lt;p class="TableText"&gt;&lt;strong&gt;&lt;strong class="Bold"&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="38"&gt;
            &lt;p class="TableText"&gt;1000&lt;/p&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="30"&gt;
            &lt;p class="TableText"&gt;N&lt;/p&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="53"&gt;
            &lt;p class="TableText"&gt;&amp;lt;blank&amp;gt;&lt;/p&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="403"&gt;
            &lt;p class="TableText"&gt;Allows users to pass in a custom "where clause" built from columns of the parent table of the requested document type.&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;p&gt;So I cranked up my eConnect library project and came up with the following code:&lt;/p&gt;
&lt;pre style="FONT-FAMILY: consolas"&gt;&lt;span style="COLOR: blue"&gt;private&lt;/span&gt; &lt;span style="COLOR: #2b91af"&gt;RQeConnectOutType&lt;/span&gt; getRequest(&lt;span style="COLOR: blue"&gt;string&lt;/span&gt; CustomerUL)&lt;br /&gt;{&lt;br /&gt;	&lt;span style="COLOR: #2b91af"&gt;eConnectOut&lt;/span&gt; outDoc = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: #2b91af"&gt;eConnectOut&lt;/span&gt;()&lt;br /&gt;	{&lt;br /&gt;		DOCTYPE = &lt;span style="COLOR: #a31515"&gt;"Customer"&lt;/span&gt;,&lt;br /&gt;		OUTPUTTYPE = 1,&lt;br /&gt;		INDEX1FROM = &lt;span style="COLOR: #a31515"&gt;"A001"&lt;/span&gt;,&lt;br /&gt;		INDEX1TO = &lt;span style="COLOR: #a31515"&gt;"Z001"&lt;/span&gt;,&lt;br /&gt;		WhereClause = &lt;span style="COLOR: blue"&gt;string&lt;/span&gt;.Format(&lt;span style="COLOR: #a31515"&gt;"COMMENT2 = '{0}'"&lt;/span&gt;, CustomerUL)&lt;br /&gt;	};&lt;br /&gt;	&lt;span style="COLOR: #2b91af"&gt;RQeConnectOutType&lt;/span&gt; outType = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: #2b91af"&gt;RQeConnectOutType&lt;/span&gt;()&lt;br /&gt;	{&lt;br /&gt;		eConnectOut = outDoc&lt;br /&gt;	};&lt;br /&gt;	&lt;span style="COLOR: blue"&gt;return&lt;/span&gt; outType;&lt;br /&gt;}&lt;/pre&gt;
&lt;p&gt;The only problem is, this returns &lt;strong&gt;every&lt;/strong&gt; customer record. All the time. And it does so for every alternative expression I could think of. Questioning my assumptions on this to get it to work was an exercise in futility.&lt;/p&gt;
&lt;p&gt;And no amount of search-fu helped me find a satisfactory answer to getting this to work. As far as the internet is concerned, everybody who tries this either gives up or doesn’t have to be told how to get it working.&lt;/p&gt;
&lt;h2&gt;Getting it to Work&lt;/h2&gt;
&lt;p&gt;Well, I eventually got it to work, and I thought I’d share so the next schmuck who goes through this doesn’t have to suffer through the despair I did to get there (at least, not if their search engine of choice can point him here).&lt;/p&gt;
&lt;p&gt;The key to this working is to tell eConnect that you don’t want to work from the “shadow” tables. What’s a shadow table, you ask? Well, I can’t be certain, but I &lt;em&gt;think&lt;/em&gt; that it refers to the e_Connect_Out table stuck in your database by eConnect. This table has summary records that you might want to work with in eConnect, with details on where to get the full record. I can’t tell you for certain because the SDK documentation doesn’t actually &lt;em&gt;have&lt;/em&gt; a section explaining shadow tables.&lt;/p&gt;
&lt;p&gt;The problem is that when working with the shadow tables, things that aren’t in an index field aren’t really available for filtering purposes. Thus, my WhereClause referring to COMMENT2 doesn’t do a thing because the shadow table doesn’t know from COMMENT2. The fix for this is to use the woefully misnamed element “FORLIST”. Here’s what the documentation says:&lt;/p&gt;
&lt;table border="1" cellspacing="0" cellpadding="5"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="45"&gt;
            &lt;p class="TableText"&gt;FORLIST&lt;/p&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="25"&gt;
            &lt;p class="TableText"&gt;&lt;strong&gt;&lt;strong class="Bold"&gt;&lt;strong&gt;i4&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="21"&gt;
            &lt;p class="TableText"&gt;4&lt;/p&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="26"&gt;
            &lt;p class="TableText"&gt;N&lt;/p&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="37"&gt;
            &lt;p class="TableText"&gt;0&lt;/p&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="497"&gt;
            &lt;p class="TableText"&gt;0=Return items from the shadow table. Use ACTION to specify the type of returned data.&lt;/p&gt;
            &lt;p class="TableText"&gt;1=Returns a list of items directly from the actual tables; does not use shadow tables&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Well, hoodyhoo! That’s exactly what I needed (though I didn’t know it until I tried it). So here’s the code that actually works:&lt;/p&gt;
&lt;pre style="FONT-FAMILY: consolas"&gt;&lt;span style="COLOR: blue"&gt;private&lt;/span&gt; &lt;span style="COLOR: #2b91af"&gt;RQeConnectOutType&lt;/span&gt; getRequest(&lt;span style="COLOR: blue"&gt;string&lt;/span&gt; CustomerUL)&lt;br /&gt;{&lt;br /&gt;	&lt;span style="COLOR: #2b91af"&gt;eConnectOut&lt;/span&gt; outDoc = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: #2b91af"&gt;eConnectOut&lt;/span&gt;()&lt;br /&gt;	{&lt;br /&gt;		DOCTYPE = &lt;span style="COLOR: #a31515"&gt;"Customer"&lt;/span&gt;,&lt;br /&gt;		OUTPUTTYPE = 1,&lt;br /&gt;		&lt;strong&gt;FORLIST = 1,&lt;br /&gt;&lt;/strong&gt;		INDEX1FROM = &lt;span style="COLOR: #a31515"&gt;"A001"&lt;/span&gt;,&lt;br /&gt;		INDEX1TO = &lt;span style="COLOR: #a31515"&gt;"Z001"&lt;/span&gt;,&lt;br /&gt;		WhereClause = &lt;span style="COLOR: blue"&gt;string&lt;/span&gt;.Format(&lt;span style="COLOR: #a31515"&gt;"COMMENT2 = '{0}'"&lt;/span&gt;, CustomerUL)&lt;br /&gt;	};&lt;br /&gt;	&lt;span style="COLOR: #2b91af"&gt;RQeConnectOutType&lt;/span&gt; outType = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: #2b91af"&gt;RQeConnectOutType&lt;/span&gt;()&lt;br /&gt;	{&lt;br /&gt;		eConnectOut = outDoc&lt;br /&gt;	};&lt;br /&gt;	&lt;span style="COLOR: blue"&gt;return&lt;/span&gt; outType;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;I’ve bolded the only change. Not only does this work, but it works &lt;em&gt;fast&lt;/em&gt;. So now you know. If you want your filter to work in the WhereClause and it just won’t take, try pointing it at the real tables. I know that “FORLIST” is the obvious place to do this, but I thought I’d point it out, anyway (in case I forget).&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jacob/aggbug/2845.aspx" width="1" height="1" /&gt;</description><dc:creator>Jacob</dc:creator></item><item><title>Updating Sales Invoices With Dynamics GP Web Services</title><link>http://theruntime.com/blogs/jacob/archive/2010/08/10/Updating-Sales-Invoices-With-Dynamics-GP-Web-Services.aspx</link><pubDate>Tue, 10 Aug 2010 22:05:44 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/jacob/archive/2010/08/10/Updating-Sales-Invoices-With-Dynamics-GP-Web-Services.aspx</guid><wfw:comment>http://theruntime.com/blogs/jacob/comments/2844.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jacob/comments/commentRss/2844.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jacob/archive/2010/08/10/Updating-Sales-Invoices-With-Dynamics-GP-Web-Services.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/jacob/services/trackbacks/2844.aspx</trackback:ping><source url="http://theruntime.com/blogs/jacob/rss.aspx">Updating Sales Invoices With Dynamics GP Web Services</source><description>&lt;p&gt;&lt;img style="MARGIN: 0px 0px 0px 15px; DISPLAY: inline" class="wlDisabledImage" title="DuctTapeRoad" alt="Duct tape road fix." align="right" width="284" height="423" src="http://theruntime.com/blogs/images/theruntime_com/blogs/jacob/WindowsLiveWriter/0579ea1a780e_CAAB/DuctTapeRoad_3.jpg" /&gt;As you may have figured out from past posts, I like working with Dynamics GP Web Services when building integrations that involve our business systems. That isn’t to say that there aren’t rough spots occasionally. My latest wrestling match with it involved updating Sales Invoices. Since I couldn’t find information on this issue at all, I thought I’d post my struggle and solution for others in the same situation in future to find.&lt;/p&gt;
&lt;h2&gt;The Setup&lt;/h2&gt;
&lt;p&gt;We have multiple bins configured on our sales invoices so that we can coordinate our warehouse folks and get orders shipped quickly. That means that for each line on the invoice, inventory can come from one or more bins (if needed) to fulfill the order. Since GP isn’t very flexible in its automatic bin assignment, we have an addin that we run to allocate bins. I programmed the addin.&lt;/p&gt;
&lt;p&gt;Sending a sales document through GP Web Services with multiple bins attached to each line item was impossible to do on Sales &lt;strong&gt;Orders&lt;/strong&gt; because of a bug in the update procs that I found a couple months ago (where the bins simply aren’t updated). As a result, we have to wait until an invoice is created for the document to be able to assign bins through the web services. A pain, but not a huge deal, really.&lt;/p&gt;
&lt;h2&gt;The Specs&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Dynamics version&lt;/strong&gt;: 10.00.1368 &lt;br clear="all" /&gt;
&lt;strong&gt;SQL Server version&lt;/strong&gt;: 2005 &lt;br clear="all" /&gt;
&lt;strong&gt;Visual Studio&lt;/strong&gt;: 2010 (10.0.30319.1) &lt;br clear="all" /&gt;
&lt;strong&gt;Target Framework&lt;/strong&gt;: .Net Framework 3.5 &lt;br clear="all" /&gt;
&lt;strong&gt;Transport&lt;/strong&gt;: WCF using basicHttpBinding&lt;/p&gt;
&lt;h2&gt;The Problem&lt;/h2&gt;
&lt;p&gt;The thing is, I was having trouble making my bin allocation re-entrant. It could be that you might want to run bin allocation twice on a batch of invoices if, say, you had shortages in the available bins on one or two orders but were able to move things around a bit to make it work. It seems reasonable. Then, too, we found that another process that was updating shipping dates on invoice batches was causing problems, as well.&lt;/p&gt;
&lt;p&gt;A little experimentation showed that updating an invoice through the web services that already had multiple bins allocated caused Dynamics GP to lose track of the allocations entirely. Fortunately, it did so in such a way that the inventory wasn’t messed up—i.e. it reverted back to the bins they had come from. Unfortunately, I could find no way to allow my bin allocations to be re-entrant and/or for my batch date change application to touch my Sales Invoices without bad things happening.&lt;/p&gt;
&lt;p&gt;I found that even if you sent an absolutely unaltered invoice back to GP in a web services update operation, it’d lose bin allocations if they existed—whether your update included those bin allocations or not.&lt;/p&gt;
&lt;h2&gt;The Solution&lt;/h2&gt;
&lt;p&gt;I finally got a wacky idea that turns out to work a dream. It’s less than ideal, but hey, it works without having to drop down to eConnect or anything even less friendly. The trick is to fake Dynamics out with a superfluous update if you have an order with bins already allocated. Here’s the code:&lt;/p&gt;
&lt;pre style="FONT-FAMILY: consolas"&gt;&lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: #2b91af"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="COLOR: #2b91af"&gt;CustValidationItem&lt;/span&gt;&amp;gt; CommitSalesInvoice()&lt;br /&gt;{&lt;br /&gt;	OnCommitting();&lt;br /&gt;	GPService.&lt;span style="COLOR: #2b91af"&gt;SalesInvoice&lt;/span&gt; si = originalSalesDocument &lt;span style="COLOR: blue"&gt;as&lt;/span&gt; GPService.&lt;span style="COLOR: #2b91af"&gt;SalesInvoice&lt;/span&gt;;&lt;br /&gt;	&lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (si == &lt;span style="COLOR: blue"&gt;null&lt;/span&gt;)&lt;br /&gt;	{&lt;br /&gt;		si = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; GPService.&lt;span style="COLOR: #2b91af"&gt;SalesInvoice&lt;/span&gt;();&lt;br /&gt;	}&lt;br /&gt;	&lt;span style="COLOR: blue"&gt;else&lt;/span&gt;&lt;br /&gt;	{&lt;br /&gt;		&lt;span style="COLOR: blue"&gt;int&lt;/span&gt; allocatedCount = si.Lines.Count(l =&amp;gt; l.QuantityFulfilled.Value &amp;gt; 0M);&lt;br /&gt;		&lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (allocatedCount == si.Lines.Count())&lt;br /&gt;		{&lt;br /&gt;			fakeoutUpdate(si);&lt;br /&gt;		}&lt;br /&gt;	}&lt;/pre&gt;
&lt;p&gt;In this code, originalSalesDocument is completely untouched and exactly the invoice as read from the web service earlier. If you were to break after fakeoutUpdate() is called, the invoice would have no bins allocated for any of the line items.&lt;/p&gt;
&lt;p&gt;Note that I have a potential bug in there if an invoice is ever partially allocated (because then allocatedCount would be less than the total number of lines), but I’m considering that a feature for now (because it will de-allocate all bin allocations on that invoice and send up red flags throughout our system).&lt;/p&gt;
&lt;p&gt;And just to put all the cards on the table, here’s fakeoutUpdate in its entirety:&lt;/p&gt;
&lt;pre style="FONT-FAMILY: consolas"&gt;&lt;span style="COLOR: blue"&gt;private&lt;/span&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; fakeoutUpdate(GPService.&lt;span style="COLOR: #2b91af"&gt;SalesInvoice&lt;/span&gt; invoice)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="COLOR: green"&gt;// If bins are already allocated, the next update deletes the allocation regardless of what is sent. &lt;/span&gt;&lt;br /&gt;    &lt;span style="COLOR: green"&gt;// This update is to de-allocate the order while preserving the bins we know about already so they'll &lt;/span&gt;&lt;br /&gt;    &lt;span style="COLOR: green"&gt;// save properly later in the process.&lt;/span&gt;&lt;br /&gt;    &lt;span style="COLOR: #2b91af"&gt;GPManager&lt;/span&gt;.Service.UpdateSalesInvoice(invoice, &lt;span style="COLOR: #2b91af"&gt;GPManager&lt;/span&gt;.GetContext(), UpdateSalesPolicy);&lt;br /&gt;}&lt;/pre&gt;
&lt;p&gt;There’s another potential bug if you get another user updating the same sales invoice from a different machine between the time the fake is run and the actual update. Fortunately, the total time between the two updates is literally microseconds. Indeed, our order processor says that there is no noticeable difference in the time it takes to commit updates between the new process and the old one. Subjective, I know, but good enough.&lt;/p&gt;
&lt;h2&gt;The Takeaway&lt;/h2&gt;
&lt;p&gt;I find it odd that such simple and universal bugs have made it into the release of the product. It speaks poorly of the testing done at Dynamics headquarters. These aren’t bugs that should have been able to slip through a minimally competent QA process. It’s clear that nobody tested updating invoices in a multiple bin scenario. At least, not in a way that checked that the bin allocations survive the update.&lt;/p&gt;
&lt;p&gt;I also find the lack of information out there disturbing. It makes me feel like I’m the only developer using Dynamics GP Web Services for anything beyond the most basic functions. I know that can’t be true, but you couldn’t prove it by the amount of chatter on the interwebs. I’ve noticed before that business line developers are under-represented out here and this reinforces that feeling. The only Dynamics blogs I’ve been stumbled across seem to be vendors and/or supply channel/party line outlets. These blogs talk enough about the abomination that is Dexterity, but almost none at all about alternatives like eConnect or GP Web Services.&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jacob/aggbug/2844.aspx" width="1" height="1" /&gt;</description><dc:creator>Jacob</dc:creator></item><item><title>Saving Windows XP "My Network Places" to a Text File</title><link>http://theruntime.com/blogs/thomasswilliams/archive/2010/05/13/saving-windows-xp-my-network-places-to-a-text-file.aspx</link><pubDate>Thu, 13 May 2010 02:52:39 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/thomasswilliams/archive/2010/05/13/saving-windows-xp-my-network-places-to-a-text-file.aspx</guid><wfw:comment>http://theruntime.com/blogs/thomasswilliams/comments/2839.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/thomasswilliams/comments/commentRss/2839.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/thomasswilliams/archive/2010/05/13/saving-windows-xp-my-network-places-to-a-text-file.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/thomasswilliams/services/trackbacks/2839.aspx</trackback:ping><source url="http://theruntime.com/blogs/thomasswilliams/rss.aspx">Saving Windows XP "My Network Places" to a Text File</source><description>&lt;p&gt;I like the "My Network Places" functionality in Windows XP. The way I use Windows Explorer is to have mapped drives for high-use locations. "My Network Places" becomes a psuedo-"favourites" - linking to, for example, a folder where a third-party extract is dropped, or a shared folder from another department, or a folder used for backups but rarely accessed.&lt;/p&gt;
&lt;p&gt;With that in mind I thought it would be handy to keep a copy of the UNC paths contained in "Network Places". There's a few tools that will allow you to print folder contents ("Network Places" is stored in the "NetHood" folder in your user profile) but that only resulted in the names, not the UNC paths.&lt;/p&gt;
&lt;p&gt;Here's the VBScript I ended up cobbling together to save "My Network Places" to a text file, enumerating each item and getting the name as well as the UNC path. I hope this helps if, like me, you've ever considered just taking a screenshot of Windows Explorer to keep track of your network places:&lt;/p&gt;
&lt;p style="color: darkorange; font-weight: bold;"&gt;Special Note: This works perfectly on my PC, however I can't take any responsibility for it working anywhere else. It's just a quick script that did the job for me, not a fully debugged application.&lt;/p&gt;
&lt;div style="font-family: monospace; color: rgb(0, 0, 102); border: 1px solid rgb(208, 208, 208); background-color: rgb(240, 240, 240);" class="vb"&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;' ------------------------------------------------------------------------------&lt;br /&gt;
&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;' Writes all folders/links in "My Network Places" on Windows XP to a text file &lt;br /&gt;
&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;' Thomas Williams 13-May-2010 &lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 128, 0);"&gt;' adapted from &lt;a title="Linkification: http://www.tek-tips.com/viewthread.cfm?qid=1309939&amp;amp;page=9" href="http://www.tek-tips.com/viewthread.cfm?qid=1309939&amp;amp;page=9" class="linkification-ext"&gt;http://www.tek-tips.com/viewthread.cfm?qid=1309939&amp;amp;page=9&lt;/a&gt; and &lt;br /&gt;
&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;' &lt;a title="Linkification: http://blogs.technet.com/heyscriptingguy/archive/2005/05/09/how-can-i-create-a-shortcut-in-my-network-places.aspx" href="http://blogs.technet.com/heyscriptingguy/archive/2005/05/09/how-can-i-create-a-shortcut-in-my-network-places.aspx" class="linkification-ext"&gt;http://blogs.technet.com/heyscriptingguy/archive/2005/05/09/how-can-i-create-a-shortcut-in-my-network-places.aspx&lt;/a&gt; and &lt;br /&gt;
&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;' &lt;a title="Linkification: http://msdn.microsoft.com/en-us/library/bb774004%28v=VS.85%29.aspx" href="http://msdn.microsoft.com/en-us/library/bb774004%28v=VS.85%29.aspx" class="linkification-ext"&gt;http://msdn.microsoft.com/en-us/library/bb774004%28v=VS.85%29.aspx&lt;/a&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;' ------------------------------------------------------------------------------ &lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 0, 128);"&gt;Const&lt;/span&gt; NETHOOD = &amp;amp;H13&amp;amp; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 0, 128);"&gt;Set&lt;/span&gt; objShell = CreateObject&lt;span class="br0"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"Shell.Application"&lt;/span&gt;&lt;span class="br0"&gt;)&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 0, 128);"&gt;Set&lt;/span&gt; objFSO = CreateObject&lt;span class="br0"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"Scripting.FileSystemObject"&lt;/span&gt;&lt;span class="br0"&gt;)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 128, 0);"&gt;' file to write to (overwrite without prompting) &lt;br /&gt;
&lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;Set&lt;/span&gt; outputFile = objFSO.CreateTextFile&lt;span class="br0"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"C:\Network Places List.txt"&lt;/span&gt;, &lt;span style="color: rgb(0, 0, 128);"&gt;True&lt;/span&gt;&lt;span class="br0"&gt;)&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 128, 0);"&gt;' get the NetHood folder on Windows XP for the current logged in user &lt;br /&gt;
&lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;Set&lt;/span&gt; objFolder = objShell.Namespace&lt;span class="br0"&gt;(&lt;/span&gt;NETHOOD&lt;span class="br0"&gt;)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 128, 0);"&gt;' loop through all items in NetHood folder &lt;br /&gt;
&lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;For&lt;/span&gt; &lt;span style="color: rgb(0, 0, 128);"&gt;Each&lt;/span&gt; objItem &lt;span style="color: rgb(0, 0, 128);"&gt;in&lt;/span&gt; objFolder.Items &lt;br /&gt;
    &lt;span style="color: rgb(0, 128, 0);"&gt;' if the item is a link e.g. not "Entire Network" &lt;br /&gt;
&lt;/span&gt;    &lt;span style="color: rgb(0, 0, 128);"&gt;If&lt;/span&gt; objItem.IsLink &lt;span style="color: rgb(0, 0, 128);"&gt;Then&lt;/span&gt; &lt;br /&gt;
        &lt;span style="color: rgb(0, 128, 0);"&gt;' get the link/shortcut for the item &lt;br /&gt;
&lt;/span&gt;        &lt;span style="color: rgb(0, 0, 128);"&gt;Set&lt;/span&gt; objLink = objItem.GetLink &lt;br /&gt;
        &lt;span style="color: rgb(0, 128, 0);"&gt;' write to the output file, the display name of the folder, and the UNC path &lt;br /&gt;
&lt;/span&gt;        outputFile.WriteLine&lt;span class="br0"&gt;(&lt;/span&gt;objItem.Name &amp;amp; vbTab &amp;amp; objLink.Path&lt;span class="br0"&gt;)&lt;/span&gt; &lt;br /&gt;
    &lt;span style="color: rgb(0, 0, 128);"&gt;End&lt;/span&gt; &lt;span style="color: rgb(0, 0, 128);"&gt;If&lt;/span&gt; &lt;br /&gt;
    &lt;br /&gt;
&lt;span style="color: rgb(0, 0, 128);"&gt;Next&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 128, 0);"&gt;' close the output file &lt;br /&gt;
&lt;/span&gt;outputFile.&lt;span style="color: rgb(0, 0, 128);"&gt;Close&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;The tricky part was dealing with the list of items returned by &lt;a style="font-family: monospace;" href="http://msdn.microsoft.com/en-us/library/bb774085%28VS.85%29.aspx"&gt;Shell.Namespace&lt;/a&gt; and finding out how to get the link properties from a &lt;a style="font-family: monospace;" href="http://msdn.microsoft.com/en-us/library/bb787810%28v=VS.85%29.aspx"&gt;FolderItem&lt;/a&gt;...luckily I'm on first-name speaking terms with my friend the MSDN Library :-)&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tags: &lt;a rel="tag" href="http://technorati.com/tag/windows"&gt;windows&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/script"&gt;script&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/thomasswilliams/aggbug/2839.aspx" width="1" height="1" /&gt;</description><dc:creator>Thomas Williams</dc:creator></item><item><title>TampaSLUG Meeting is March 3rd, 2010(Tonight) with Greg Leonardo</title><link>http://theruntime.com/blogs/jaykimble/archive/2010/03/03/tampaslug-meeting-is-march-3rd-2010tonight-with-greg-leonardo.aspx</link><pubDate>Wed, 03 Mar 2010 14:06:40 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/jaykimble/archive/2010/03/03/tampaslug-meeting-is-march-3rd-2010tonight-with-greg-leonardo.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2838.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2838.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2010/03/03/tampaslug-meeting-is-march-3rd-2010tonight-with-greg-leonardo.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2838.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">TampaSLUG Meeting is March 3rd, 2010(Tonight) with Greg Leonardo</source><description>&lt;strong&gt;our next meeting is tonight at 7pm at the MS offices (check  out the &lt;a href="javascript:void(0);/*1265723366282*/"&gt;TampaSLUG&lt;/a&gt;  site for more info). Greg is bringing a us a talk which should coincide nicely with the talk I gave last month (even if you missed last month Greg's talk is still for those of you who want to learn).  If you have a desire to learn Silverlight, but don't know  where to begin, or simply just want to get some background in it. This  is the group and night for you! .&lt;br /&gt;
&lt;br /&gt;
Greg is really knowledgaeble about Silverlight so this night aims to be a really good evening. &lt;br /&gt;
&lt;br /&gt;
We will have pizza and soda, so plan on coming! BUT, there is one thing  you must do! Register here --&amp;gt; http://tampaslug310.eventbrite.com/&lt;br /&gt;
&lt;br /&gt;
Also as usual there will be a social afterwards which is a good place to ask the Silverlight gurus those tough questions..&lt;/strong&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2838.aspx" width="1" height="1" /&gt;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>My Firefox Tab Scope Add-On Wish List</title><link>http://theruntime.com/blogs/thomasswilliams/archive/2010/02/23/my-firefox-tab-scope-add-on-wish-list.aspx</link><pubDate>Tue, 23 Feb 2010 02:29:33 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/thomasswilliams/archive/2010/02/23/my-firefox-tab-scope-add-on-wish-list.aspx</guid><wfw:comment>http://theruntime.com/blogs/thomasswilliams/comments/2837.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/thomasswilliams/comments/commentRss/2837.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/thomasswilliams/archive/2010/02/23/my-firefox-tab-scope-add-on-wish-list.aspx#comment</comments><slash:comments>1</slash:comments><trackback:ping>http://theruntime.com/blogs/thomasswilliams/services/trackbacks/2837.aspx</trackback:ping><source url="http://theruntime.com/blogs/thomasswilliams/rss.aspx">My Firefox Tab Scope Add-On Wish List</source><description>&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4882"&gt;Tab Scope&lt;/a&gt; is a very handy Firefox add-on that shows a pop-up preview of a tab's contents when hovering over a non-selected tab...oh, a picture probably will say it better:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://picasaweb.google.com/lh/photo/GFsVVR8w_qGDMg1yB05xVg?feat=embedwebsite"&gt;&lt;img border="0" src="http://lh4.ggpht.com/_Ln7LRKt4zEw/S4M7-YmTa2I/AAAAAAAABmw/6ryMSvLuZmI/s400/tab-scope-addon.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The developers have clearly put a huge amount of work into Tab Scope over the years and have largely got it right, and in addition to a preview image, there's a couple of controls like back, forward, refresh in the pop-up itself. After using Tab Scope version 0.3 with the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/49178"&gt;fx4 theme&lt;/a&gt; for a couple of weeks, there's a few things on my wish list, however:&lt;/p&gt;
&lt;div style="padding-left: 10px; padding-right: 10px;"&gt;
&lt;p&gt;&lt;strong&gt;Left-clicking on the actual preview image does nothing:&lt;/strong&gt; it should at least act like a left-click on the tab, and switch to the tab. &lt;span style="background-color: yellow;"&gt;Wish 1: Left-clicking on a preview image should switch to the tab.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;When zooming, left-clicking on a link or button in the preview image opens the link:&lt;/strong&gt; a nice touch...that I discovered entirely by accident. I feel that the negative (e.g. hit-and-miss clicking on microscopic text) outweighs the positive (e.g. navigation from within a preview window). &lt;span style="background-color: yellow;"&gt;Wish 2: In line with wish 1 above, left-clicking on a zoomed preview image should also switch to the tab.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;When zooming, there's no horizontal scroll:&lt;/strong&gt; the zoom is not particularly useful on wide, centred designs:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://picasaweb.google.com/lh/photo/i1tV55s0gBnIghzVmQH-YQ?feat=embedwebsite"&gt;&lt;img border="0" src="http://lh6.ggpht.com/_Ln7LRKt4zEw/S4M7-q5oaeI/AAAAAAAABm0/Zq8pwy0H-vI/s400/tab-scope-addon-large.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;span style="background-color: yellow;"&gt;Wish 3: An alternative might be to zoom the entire page, like a bigger version of the non-zoomed image preview (you'd lose the ability to click on links).&lt;/span&gt;
&lt;p&gt;&lt;span style="background-color: yellow;"&gt;Wish 4: OK, I'm into overtime here because in most stories you're only granted 3 wishes. I'd love to see Tab Scope work with the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/7401"&gt;Smart Stop/Reload add-on&lt;/a&gt;, which shows the stop button when the page is still loading, and the reload button when the page has finished.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;When zooming, the vertical scroll is not easily discoverable:&lt;/strong&gt; you can see from the zoomed image above that there's no scrollbars, but if you scroll the mouse &lt;em&gt;wheel&lt;/em&gt; when hovering over the preview, the preview will scroll vertically. This is another feature I found by accident. &lt;span style="background-color: yellow;"&gt;Wish 5: make scrolling more discoverable (hmmm, I'll leave the implementation to someone with more imagination than me).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="background-color: yellow;"&gt;Wish 6: The close button should probably be in the top-right corner of the pop-up, which matches where the close button would normally be on the tab.&lt;/span&gt; This may not suit everyone's themes, though. You could go even further and specify that the back and forward buttons on the pop-up preview were styled like your theme's styles, but I think that's probably asking a bit much :-)&lt;/p&gt;
&lt;p&gt;&lt;span style="background-color: yellow;"&gt;Wish 7: My last wish is purely aesthetic - make the pop-up preview joined to the tab somehow.&lt;/span&gt; In the zooomed preview image above, it looks like the pop-up is joined to the second, active tab ("Google"), instead of the first tab ("Tab Scope").&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;OK, I'm done. What do you think? Would you use Tab Scope, and given more wishes than Aladdin, what would you improve?&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tags: &lt;a rel="tag" href="http://technorati.com/tag/firefox"&gt;firefox&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/tab+scope"&gt;tab scope&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/usability"&gt;usability&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/thomasswilliams/aggbug/2837.aspx" width="1" height="1" /&gt;</description><dc:creator>Thomas Williams</dc:creator></item><item><title>SQL Error: Cannot resolve collation conflict for DISTINCT operation</title><link>http://theruntime.com/blogs/thomasswilliams/archive/2010/02/12/sql-error-cannot-resolve-collation-conflict-for-distinct-operation.aspx</link><pubDate>Fri, 12 Feb 2010 01:17:55 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/thomasswilliams/archive/2010/02/12/sql-error-cannot-resolve-collation-conflict-for-distinct-operation.aspx</guid><wfw:comment>http://theruntime.com/blogs/thomasswilliams/comments/2836.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/thomasswilliams/comments/commentRss/2836.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/thomasswilliams/archive/2010/02/12/sql-error-cannot-resolve-collation-conflict-for-distinct-operation.aspx#comment</comments><slash:comments>2</slash:comments><trackback:ping>http://theruntime.com/blogs/thomasswilliams/services/trackbacks/2836.aspx</trackback:ping><source url="http://theruntime.com/blogs/thomasswilliams/rss.aspx">SQL Error: Cannot resolve collation conflict for DISTINCT operation</source><description>&lt;p&gt;I'd never run into this one before and am not likely to again, but the fix is pretty simple and worth posting for my own reference (and I hope it helps anyone googling for it too).&lt;/p&gt;
&lt;p&gt;The problem occurs in SQL Server 2005 or SQL Server 2008 when you try and select a &lt;code&gt;DISTINCT&lt;/code&gt; range of values from a sub-query that uses a &lt;code&gt;UNION&lt;/code&gt; or &lt;code&gt;UNION ALL&lt;/code&gt; to union two columns with different collations. The problem may occur if the collations are set differently at a database level while unioning two tables from different databases, and also at the column level within the same database. As with other "Cannot resolve collation conflict for XXX operation" errors, the fix is the same - convert the offending columns to the same collation using &lt;code&gt;COLLATE DATABASE_DEFAULT&lt;/code&gt;:&lt;/p&gt;
&lt;div class="tsql" style="font-family:monospace;color: #006; border: 1px solid #d0d0d0; background-color: #f0f0f0; font-size: 110%;"&gt;&lt;span style="color: #008080;"&gt;--Step 1: create two similar tables with columns with different collations &lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #0000FF;"&gt;DECLARE&lt;/span&gt; @temp1 &lt;span style="color: #0000FF;"&gt;TABLE&lt;/span&gt; &lt;span style="color: #808080;"&gt;(&lt;/span&gt; &lt;br /&gt;
    &lt;span style="color: #808080;"&gt;[&lt;/span&gt;Test1&lt;span style="color: #808080;"&gt;]&lt;/span&gt; &lt;span style="color: #0000FF;"&gt;NVARCHAR&lt;/span&gt;&lt;span style="color: #808080;"&gt;(&lt;/span&gt;&lt;span style="color: #000;"&gt;100&lt;/span&gt;&lt;span style="color: #808080;"&gt;)&lt;/span&gt; &lt;span style="color: #0000FF;"&gt;COLLATE&lt;/span&gt; SQL_Latin1_General_Cp1250_CS_AS &lt;br /&gt;
&lt;span style="color: #808080;"&gt;)&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #0000FF;"&gt;DECLARE&lt;/span&gt; @temp2 &lt;span style="color: #0000FF;"&gt;TABLE&lt;/span&gt; &lt;span style="color: #808080;"&gt;(&lt;/span&gt; &lt;br /&gt;
    &lt;span style="color: #808080;"&gt;[&lt;/span&gt;Test2&lt;span style="color: #808080;"&gt;]&lt;/span&gt; &lt;span style="color: #0000FF;"&gt;NVARCHAR&lt;/span&gt;&lt;span style="color: #808080;"&gt;(&lt;/span&gt;&lt;span style="color: #000;"&gt;100&lt;/span&gt;&lt;span style="color: #808080;"&gt;)&lt;/span&gt; &lt;span style="color: #0000FF;"&gt;COLLATE&lt;/span&gt; Icelandic_CS_AS &lt;br /&gt;
&lt;span style="color: #808080;"&gt;)&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #008080;"&gt;--Step 2: put in some values &lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #0000FF;"&gt;INSERT&lt;/span&gt; &lt;span style="color: #0000FF;"&gt;INTO&lt;/span&gt; @temp1 &lt;span style="color: #0000FF;"&gt;VALUES&lt;/span&gt;&lt;span style="color: #808080;"&gt;(&lt;/span&gt;N&lt;span style="color: #FF0000;"&gt;'Falcon'&lt;/span&gt;&lt;span style="color: #808080;"&gt;)&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #0000FF;"&gt;INSERT&lt;/span&gt; &lt;span style="color: #0000FF;"&gt;INTO&lt;/span&gt; @temp1 &lt;span style="color: #0000FF;"&gt;VALUES&lt;/span&gt;&lt;span style="color: #808080;"&gt;(&lt;/span&gt;N&lt;span style="color: #FF0000;"&gt;'Eagle'&lt;/span&gt;&lt;span style="color: #808080;"&gt;)&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #0000FF;"&gt;INSERT&lt;/span&gt; &lt;span style="color: #0000FF;"&gt;INTO&lt;/span&gt; @temp1 &lt;span style="color: #0000FF;"&gt;VALUES&lt;/span&gt;&lt;span style="color: #808080;"&gt;(&lt;/span&gt;N&lt;span style="color: #FF0000;"&gt;'Tomcat'&lt;/span&gt;&lt;span style="color: #808080;"&gt;)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #0000FF;"&gt;INSERT&lt;/span&gt; &lt;span style="color: #0000FF;"&gt;INTO&lt;/span&gt; @temp2 &lt;span style="color: #0000FF;"&gt;VALUES&lt;/span&gt;&lt;span style="color: #808080;"&gt;(&lt;/span&gt;N&lt;span style="color: #FF0000;"&gt;'Mirage'&lt;/span&gt;&lt;span style="color: #808080;"&gt;)&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #0000FF;"&gt;INSERT&lt;/span&gt; &lt;span style="color: #0000FF;"&gt;INTO&lt;/span&gt; @temp2 &lt;span style="color: #0000FF;"&gt;VALUES&lt;/span&gt;&lt;span style="color: #808080;"&gt;(&lt;/span&gt;N&lt;span style="color: #FF0000;"&gt;'Viggen'&lt;/span&gt;&lt;span style="color: #808080;"&gt;)&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #0000FF;"&gt;INSERT&lt;/span&gt; &lt;span style="color: #0000FF;"&gt;INTO&lt;/span&gt; @temp2 &lt;span style="color: #0000FF;"&gt;VALUES&lt;/span&gt;&lt;span style="color: #808080;"&gt;(&lt;/span&gt;N&lt;span style="color: #FF0000;"&gt;'Harrier'&lt;/span&gt;&lt;span style="color: #808080;"&gt;)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #008080;"&gt;--Step 3: THIS WILL CAUSE A "Cannot resolve collation conflict for DISTINCT operation" ERROR &lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #008080;"&gt;--Comment the following out to run step 4 &lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #008080;"&gt;--get distinct values from both tables, joined using UNION ALL in a subquery &lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #0000FF;"&gt;SELECT&lt;/span&gt; &lt;span style="color: #0000FF;"&gt;DISTINCT&lt;/span&gt; &lt;span style="color: #808080;"&gt;[&lt;/span&gt;Test&lt;span style="color: #808080;"&gt;]&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #0000FF;"&gt;FROM&lt;/span&gt; &lt;span style="color: #808080;"&gt;(&lt;/span&gt; &lt;br /&gt;
      &lt;span style="color: #0000FF;"&gt;SELECT&lt;/span&gt; &lt;span style="color: #808080;"&gt;[&lt;/span&gt;Test&lt;span style="color: #808080;"&gt;]&lt;/span&gt; &lt;span style="color: #808080;"&gt;=&lt;/span&gt; &lt;span style="color: #808080;"&gt;[&lt;/span&gt;Test1&lt;span style="color: #808080;"&gt;]&lt;/span&gt; &lt;span style="color: #0000FF;"&gt;FROM&lt;/span&gt; @temp1 &lt;br /&gt;
      &lt;span style="color: #0000FF;"&gt;UNION&lt;/span&gt; &lt;span style="color: #808080;"&gt;ALL&lt;/span&gt; &lt;br /&gt;
      &lt;span style="color: #0000FF;"&gt;SELECT&lt;/span&gt; &lt;span style="color: #808080;"&gt;[&lt;/span&gt;Test2&lt;span style="color: #808080;"&gt;]&lt;/span&gt; &lt;span style="color: #0000FF;"&gt;FROM&lt;/span&gt; @temp2 &lt;br /&gt;
     &lt;span style="color: #808080;"&gt;)&lt;/span&gt; I &lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #008080;"&gt;--Step 4: the fix is to convert the columns to same collation using COLLATE DATABASE_DEFAULT &lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #0000FF;"&gt;SELECT&lt;/span&gt; &lt;span style="color: #0000FF;"&gt;DISTINCT&lt;/span&gt; &lt;span style="color: #808080;"&gt;[&lt;/span&gt;Test&lt;span style="color: #808080;"&gt;]&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #0000FF;"&gt;FROM&lt;/span&gt; &lt;span style="color: #808080;"&gt;(&lt;/span&gt; &lt;br /&gt;
      &lt;span style="color: #0000FF;"&gt;SELECT&lt;/span&gt; &lt;span style="color: #808080;"&gt;[&lt;/span&gt;Test&lt;span style="color: #808080;"&gt;]&lt;/span&gt; &lt;span style="color: #808080;"&gt;=&lt;/span&gt; &lt;span style="color: #808080;"&gt;[&lt;/span&gt;Test1&lt;span style="color: #808080;"&gt;]&lt;/span&gt; &lt;span style="color: #0000FF;"&gt;COLLATE&lt;/span&gt; DATABASE_DEFAULT &lt;span style="color: #0000FF;"&gt;FROM&lt;/span&gt; @temp1 &lt;br /&gt;
      &lt;span style="color: #0000FF;"&gt;UNION&lt;/span&gt; &lt;span style="color: #808080;"&gt;ALL&lt;/span&gt; &lt;br /&gt;
      &lt;span style="color: #0000FF;"&gt;SELECT&lt;/span&gt; &lt;span style="color: #808080;"&gt;[&lt;/span&gt;Test2&lt;span style="color: #808080;"&gt;]&lt;/span&gt; &lt;span style="color: #0000FF;"&gt;COLLATE&lt;/span&gt; DATABASE_DEFAULT &lt;span style="color: #0000FF;"&gt;FROM&lt;/span&gt; @temp2 &lt;br /&gt;
     &lt;span style="color: #808080;"&gt;)&lt;/span&gt; I &lt;br /&gt;
 &lt;/div&gt;
&lt;p&gt;&lt;em&gt;Tags: &lt;a href="http://technorati.com/tag/sql+server" rel="tag"&gt;sql server&lt;/a&gt;, &lt;a href="http://technorati.com/tag/collation" rel="tag"&gt;collation&lt;/a&gt;, &lt;a href="http://technorati.com/tag/code" rel="tag"&gt;code&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/thomasswilliams/aggbug/2836.aspx" width="1" height="1" /&gt;</description><dc:creator>Thomas Williams</dc:creator></item><item><title>Wed, Feb 10, 2010: Basics of Building Silverlight Applications (For Business Devs)</title><link>http://theruntime.com/blogs/jaykimble/archive/2010/02/09/wed-feb-10-2010-basics-of-building-silverlight-applications-for.aspx</link><pubDate>Tue, 09 Feb 2010 13:59:56 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/jaykimble/archive/2010/02/09/wed-feb-10-2010-basics-of-building-silverlight-applications-for.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2835.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2835.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2010/02/09/wed-feb-10-2010-basics-of-building-silverlight-applications-for.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2835.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">Wed, Feb 10, 2010: Basics of Building Silverlight Applications (For Business Devs)</source><description>&lt;strong /&gt;Tomorrow, is our next meeting at 7pm at the MS offices (check out the &lt;a href="javascript:void(0);/*1265723366282*/"&gt;TampaSLUG&lt;/a&gt; site for more info). I want to stress that this is a very basic 101 type of talk. If you have a desire to learn Silverlight, but don't know where to begin, or simply just want to get some background in it. This is the group and night for you! The night will be focused on a couple topics, but it's mostly about building forms with Silverlight and binding data to those forms to make your life easier (SIlverlight is actually easier in many respects from what you are used to if you are a web developer).&lt;br /&gt;
&lt;br /&gt;
BTW, I hear its the speaker's first presentation on Silverlight so at the  very least it will be fun to see him sweat.&lt;br /&gt;
&lt;br /&gt;
We will have pizza and soda, so plan on coming! BUT, there is one thing you must do! Register here --&amp;gt; http://tampaslug0210.eventbrite.com/&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2835.aspx" width="1" height="1" /&gt;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>Tampa Silverlight UG (1/14/2010 ): Introduction to the Silverlight Workflow</title><link>http://theruntime.com/blogs/jaykimble/archive/2010/01/10/tampa-silverlight-ug-1142010--introduction-to-the-silverlight-workflow.aspx</link><pubDate>Sun, 10 Jan 2010 21:58:13 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/jaykimble/archive/2010/01/10/tampa-silverlight-ug-1142010--introduction-to-the-silverlight-workflow.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2834.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2834.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2010/01/10/tampa-silverlight-ug-1142010--introduction-to-the-silverlight-workflow.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2834.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">Tampa Silverlight UG (1/14/2010 ): Introduction to the Silverlight Workflow</source><description>&lt;p&gt;I want to blog a quick reminder to my readers the first (official) meeting of the Tampa SLUG (Silverlight User Group) is Thursday, Jan 14th, 2010 at the Microsoft offices in Tampa. We’re starting the group off with a series of topics that will be good for beginners. Here’s the info on the first topic:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Introduction to the Silverlight Workflow:&lt;/strong&gt; One of the promises of separating business logic from the display is that designers and developers can more easily work with each other to create an application. Learn about strategies to actually deliver on this promise and make your data and logic more designer friendly.&lt;/p&gt;
&lt;p&gt;This topic will be done by &lt;strong&gt;Bill Reiss&lt;/strong&gt; (Silverlight MVP). We are priviledged to have Bill --the first ever Silverlight MVP-- as a part of our group. Bill could present every month, but he won’t. He will be around to help out (as well as correct me and others who will be presenting). If you plan on coming please RSVP at &lt;a href="http://silvertb.eventbrite.com/"&gt;http://silvertb.eventbrite.com/&lt;/a&gt; so we can know how many folks are coming.&lt;/p&gt;
&lt;p&gt;You can read up more about our group here at &lt;a href="http://www.tampaslug.net"&gt;http://www.tampaslug.net&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2834.aspx" width="1" height="1" /&gt;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>Google Reader's "Explore" feature</title><link>http://theruntime.com/blogs/thomasswilliams/archive/2009/11/30/google-readers-explore-feature.aspx</link><pubDate>Mon, 30 Nov 2009 04:31:05 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/thomasswilliams/archive/2009/11/30/google-readers-explore-feature.aspx</guid><wfw:comment>http://theruntime.com/blogs/thomasswilliams/comments/2833.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/thomasswilliams/comments/commentRss/2833.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/thomasswilliams/archive/2009/11/30/google-readers-explore-feature.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/thomasswilliams/services/trackbacks/2833.aspx</trackback:ping><source url="http://theruntime.com/blogs/thomasswilliams/rss.aspx">Google Reader's "Explore" feature</source><description>&lt;p&gt;I recently discovered the new &lt;a href="http://googlereader.blogspot.com/2009/10/reading-gets-personal-with-popular.html"&gt;Google Reader "Explore" section&lt;/a&gt;, just above my subscriptions in the left-hand panel:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://picasaweb.google.com/lh/photo/QtI5aAMg0iI8E-4Gv7X7yg?feat=embedwebsite"&gt;&lt;img width="400" height="231" border="0" src="http://lh3.ggpht.com/_Ln7LRKt4zEw/SxNKGTuuP4I/AAAAAAAABfc/l49AIZywC5g/s800/google-reader-explore.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Using it like my screenshot above - not expanded - means that when I click on the "Explore" text, I get an endless, combined feed of everything Google Reader thinks I might like (there's actually been some good stuff there too) for the price of one line of text.&lt;/p&gt;
&lt;p&gt;This is much handier than viewing a list of feed titles using the old "Browse for stuff" link and having to make a decision to even click on a feed based on the title, author and number of subscribers.&lt;/p&gt;
&lt;p&gt;Well done Google for a smart, non-obtrusive way to help users find more reading.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tags: &lt;a rel="tag" href="http://technorati.com/tag/google+reader"&gt;google reader&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/ui"&gt;ui&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/design"&gt;design&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/thomasswilliams/aggbug/2833.aspx" width="1" height="1" /&gt;</description><dc:creator>Thomas Williams</dc:creator></item><item><title>TRUIX Update for Nov. 3rd! Jim ZImmerman is sick!</title><link>http://theruntime.com/blogs/jaykimble/archive/2009/11/03/truix-update-for-nov.-3rd-jim-zimmerman-is-sick.aspx</link><pubDate>Tue, 03 Nov 2009 14:20:26 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/jaykimble/archive/2009/11/03/truix-update-for-nov.-3rd-jim-zimmerman-is-sick.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2832.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2832.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2009/11/03/truix-update-for-nov.-3rd-jim-zimmerman-is-sick.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2832.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">TRUIX Update for Nov. 3rd! Jim ZImmerman is sick!</source><description>&lt;p&gt;We are not cancelling though. Greg Leonardo has graciously offered to step in and give us a talk he calls “Impromptu Sketchflow.” Should be fun. Everything else is the same (7:00pm for the speaker/Pizza at 6:30pm.. MS Offices)&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2832.aspx" width="1" height="1" /&gt;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>A very important TRUIX meeting with Jim Zimmerman on Nov. 3rd</title><link>http://theruntime.com/blogs/jaykimble/archive/2009/10/28/a-very-important-truix-meeting-with-jim-zimmerman-on-nov.aspx</link><pubDate>Thu, 29 Oct 2009 03:21:44 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/jaykimble/archive/2009/10/28/a-very-important-truix-meeting-with-jim-zimmerman-on-nov.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2831.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2831.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2009/10/28/a-very-important-truix-meeting-with-jim-zimmerman-on-nov.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2831.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">A very important TRUIX meeting with Jim Zimmerman on Nov. 3rd</source><description>&lt;p&gt;Next Tuesday, November 3rd, we have Jim Zimmerman coming in. Jim is talking about a subject that in my opinion is important to both developers and designers. Jim will be showing us how to do something that both areas of app development need to know how to do. He’s teaching us how to take a Photoshop file, slice it up into usable web graphics and then build html and CSS to create a web layout from the original file which is perfect for an ASP.NET Masterpage.&lt;/p&gt;
&lt;p&gt;You might wonder why I think this is so important. The reason is simple. In today’s world of app development, a designer who just produces graphics and little else will someday go the way of the designer. As well as a developer with no design skills is equally on its way out. We need to know something about each other’s expertise, and be able to function in the tools of the “other half.”&lt;/p&gt;
&lt;p&gt;Anyway, Pizza will hopefully arrive around 6:30-6:45pm. We will start the session at 7:00pm. &lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2831.aspx" width="1" height="1" /&gt;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>VSLive! Orlando 2009 Sessions Posted</title><link>http://theruntime.com/blogs/brianpeek/archive/2009/10/07/vslive-orlando-2009-sessions-posted.aspx</link><pubDate>Wed, 07 Oct 2009 06:56:08 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/brianpeek/archive/2009/10/07/vslive-orlando-2009-sessions-posted.aspx</guid><wfw:comment>http://theruntime.com/blogs/brianpeek/comments/2830.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/brianpeek/comments/commentRss/2830.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/brianpeek/archive/2009/10/07/vslive-orlando-2009-sessions-posted.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/brianpeek/services/trackbacks/2830.aspx</trackback:ping><source url="http://theruntime.com/blogs/brianpeek/rss.aspx">VSLive! Orlando 2009 Sessions Posted</source><description>&lt;p&gt;&lt;a href="http://vslive.com/2009/orlando/"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 10px; display: inline; border-top: 0px; border-right: 0px" title="vslive" border="0" alt="vslive" align="right" src="http://www.brianpeek.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/brian.metablogapi/1134.vslive_5F00_3D91795B.png" width="244" height="70" /&gt;&lt;/a&gt; Thanks to everyone who came out to my two VSLive sessions today.  You can find the slide decks and full source code posted in &lt;a href="http://brianpeek.com/media/g/2009/default.aspx" target="_blank"&gt;my download section&lt;/a&gt;.  Please note that in order to save some bandwidth, I didn’t include the 125MB video file I used in my examples, but you can download that separately &lt;a href="http://www.microsoft.com/windows/windowsmedia/musicandvideo/hdvideo/contentshowcase.aspx" target="_blank"&gt;here&lt;/a&gt;.  Just unzip and copy to the Media and GPUAcceleration sample directories and build the project.&lt;/p&gt;  &lt;p&gt;I welcome any and all questions, and especially comments/critiques.  As a speaker, I rarely, if ever, receive any formalized feedback from the session organizers, so I’d love to hear what those in attendance thought of my sessions.  Good or bad, &lt;a href="http://www.brianpeek.com/blog/contact.aspx" target="_blank"&gt;please send it along&lt;/a&gt;!  Thanks!&lt;/p&gt;
Cross Posted from &lt;a href="http://www.brianpeek.com/"&gt;www.brianpeek.com&lt;/a&gt;.&lt;img src="http://theruntime.com/blogs/brianpeek/aggbug/2830.aspx" width="1" height="1" /&gt;</description><dc:creator>Brian Peek</dc:creator></item><item><title>VSLive! Orlando</title><link>http://theruntime.com/blogs/brianpeek/archive/2009/10/04/vslive-orlando.aspx</link><pubDate>Sun, 04 Oct 2009 07:16:23 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/brianpeek/archive/2009/10/04/vslive-orlando.aspx</guid><wfw:comment>http://theruntime.com/blogs/brianpeek/comments/2829.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/brianpeek/comments/commentRss/2829.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/brianpeek/archive/2009/10/04/vslive-orlando.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/brianpeek/services/trackbacks/2829.aspx</trackback:ping><source url="http://theruntime.com/blogs/brianpeek/rss.aspx">VSLive! Orlando</source><description>&lt;p&gt;&lt;a href="http://vslive.com/2009/orlando/" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 10px; display: inline; border-top: 0px; border-right: 0px" title="vslive" border="0" alt="vslive" align="right" src="http://www.brianpeek.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/brian.metablogapi/2783.vslive_5F00_56F47FDE.png" width="244" height="70" /&gt;&lt;/a&gt; Anyone out there heading to &lt;a href="http://vslive.com/2009/orlando/" target="_blank"&gt;VSLive! Orlando&lt;/a&gt; this week?  I will be giving two introductory sessions on &lt;a href="http://www.silverlight.net/" target="_blank"&gt;Silverlight&lt;/a&gt; as listed below:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Getting Started with Silverlight&lt;/strong&gt;     &lt;br /&gt;Tuesday, October 6, 10:30am &lt;/p&gt;  &lt;p&gt;Microsoft Silverlight allows developers and designers to build rich cross-browser and cross-platform applications for the Web using the same tools and technologies that are familiar to .NET developers.  This session will cover the basics of Silverlight, including basic XAML, the tools that can be used to create Silverlight applications, the controls available in the Silverlight framework, and pros and cons of Silverlight vs. other web technologies, all while building a few very simple applications demonstrating the power of the framework.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Silverlight Controls and Animations&lt;/strong&gt;     &lt;br /&gt;Tuesday, October 6, 12:00pm &lt;/p&gt;  &lt;p&gt;The Microsoft Silverlight framework contains an assortment of pre-built controls that can be used directly by your applications.  Developers can also create their own custom controls to fit their requirements.  In addition, Silverlight can be used to create animations that are simple or extremely complex, from pulsing buttons to 3D movement.  This session will demonstrate how to use the most common and important controls, as well as how to create custom user controls, along with demonstrating how XAML, Visual Studio and Expression Blend can be used to create animations that will spice up any application.&lt;/p&gt;  &lt;p&gt;If anyone will be attending the conference, &lt;a href="http://brianpeek.com/blog/contact.aspx" target="_blank"&gt;let me know&lt;/a&gt; so I can say hello!&lt;/p&gt;
Cross Posted from &lt;a href="http://www.brianpeek.com/"&gt;www.brianpeek.com&lt;/a&gt;.&lt;img src="http://theruntime.com/blogs/brianpeek/aggbug/2829.aspx" width="1" height="1" /&gt;</description><dc:creator>Brian Peek</dc:creator></item><item><title>The Coding4Fun Show – Ep 3 with Rick Barraza</title><link>http://theruntime.com/blogs/brianpeek/archive/2009/09/18/the-coding4fun-show--ep-3-with-rick-barraza.aspx</link><pubDate>Fri, 18 Sep 2009 17:56:29 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/brianpeek/archive/2009/09/18/the-coding4fun-show--ep-3-with-rick-barraza.aspx</guid><wfw:comment>http://theruntime.com/blogs/brianpeek/comments/2828.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/brianpeek/comments/commentRss/2828.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/brianpeek/archive/2009/09/18/the-coding4fun-show--ep-3-with-rick-barraza.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/brianpeek/services/trackbacks/2828.aspx</trackback:ping><source url="http://theruntime.com/blogs/brianpeek/rss.aspx">The Coding4Fun Show – Ep 3 with Rick Barraza</source><description>&lt;p&gt;&lt;a href="/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/brian.metablogapi/8233.c9logo_5F00_4DE73BFB.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 10px; display: inline; border-top: 0px; border-right: 0px" title="c9logo" alt="c9logo" src="/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/brian.metablogapi/8244.c9logo_5F00_thumb_5F00_7F72A990.png" align="right" border="0" height="114" width="98" /&gt;&lt;/a&gt; The third episode of my &lt;a href="http://channel9.msdn.com/shows/Coding4FunTV/"&gt;Coding4Fun Show&lt;/a&gt;, live from Las Vegas, is now up on &lt;a href="http://channel9.msdn.com/"&gt;Channel 9&lt;/a&gt;.  In this episode I interview &lt;a href="http://www.cynergysystems.com/blogs/page/rickbarraza"&gt;Rick Barraza&lt;/a&gt; of &lt;a href="http://www.cynergysystems.com/"&gt;Cynergy Systems&lt;/a&gt;, who has put together several very unique applications and accompanying tutorials demonstrating advanced rendering techniques using Silverlight 3.  During the show, we discuss Silverlight 3, UX design, and the three demos he has created showing off advanced rendering techniques.  For more on how these amazing demos were made, check out his (currently) three part series at his blog:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.cynergysystems.com/blogs/page/rickbarraza?entry=fluid_dynamics_in_silverlight"&gt;Fluid Dynamics in Silverlight&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cynergysystems.com/blogs/page/rickbarraza?entry=advanced_render_techniques_with_writeablebitmaps"&gt;Advanced Render Techniques with WriteableBitmaps&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cynergysystems.com/blogs/page/rickbarraza?entry=rendering_vector_fields_in_silverlight"&gt;Rendering Vector Fields in Silverlight&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You should see the video below if you have &lt;a href="http://www.silverlight.net/"&gt;Silverlight&lt;/a&gt; installed, otherwise head over to the &lt;a href="http://channel9.msdn.com/shows/Coding4FunTV/The-Coding4Fun-Show-Advanced-Rendering-with-Silverlight-Rick-Barraza/"&gt;episode on Channel 9&lt;/a&gt; to watch and download in a variety of formats for offline viewing.&lt;/p&gt;
&lt;center&gt;
&lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" height="240" width="320"&gt;
&lt;param name="source" value="http://channel9.msdn.com/App_Themes/default/vp09_06_22.xap" /&gt;
&lt;param name="initParams" value="m=http://ecn.channel9.msdn.com/o9/ch9/2/6/3/2/9/4/C4FShowE3Barraza_2MB_ch9.wmv,autostart=false,autohide=true,showembed=true, thumbnail=http://ecn.channel9.msdn.com/o9/ch9/2/6/3/2/9/4/C4FShowE3Barraza_320_ch9.png, postid=492362" /&gt;
&lt;param name="background" value="#00FFFFFF" /&gt; &lt;a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"&gt; &lt;img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none" /&gt; &lt;/a&gt; 
&lt;/object&gt;
&lt;br /&gt;&lt;a href="http://channel9.msdn.com/shows/Coding4FunTV/The-Coding4Fun-Show-Advanced-Rendering-with-Silverlight-Rick-Barraza/"&gt;The Coding4Fun Show: Advanced Rendering with Silverlight, Rick Barraza&lt;/a&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/center&gt;
&lt;p&gt;A big thanks to Rick for taking a few minutes out of his vacation to chat with me.  Enjoy!&lt;/p&gt;
Cross Posted from &lt;a href="http://www.brianpeek.com/"&gt;www.brianpeek.com&lt;/a&gt;.&lt;img src="http://theruntime.com/blogs/brianpeek/aggbug/2828.aspx" width="1" height="1" /&gt;</description><dc:creator>Brian Peek</dc:creator></item><item><title>The Next TRUIX meeting is October 8th</title><link>http://theruntime.com/blogs/jaykimble/archive/2009/09/15/the-next-truix-meeting-is-october-8th.aspx</link><pubDate>Wed, 16 Sep 2009 00:09:37 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/jaykimble/archive/2009/09/15/the-next-truix-meeting-is-october-8th.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2827.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2827.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2009/09/15/the-next-truix-meeting-is-october-8th.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2827.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">The Next TRUIX meeting is October 8th</source><description>&lt;p&gt;The next TRUIX meeting is October 8th. We are still finalizing some of the details for the night, but we will definitely be continuing tutorial on building a UI (using our &lt;a href="http://www.TampaUx.net"&gt;www.TampaUx.net&lt;/a&gt; site). We also plan on bringing you some material for the Silverlight 3/Expression 3 launch.&lt;/p&gt;
&lt;p&gt;Things will get started at about 7:00pm (with doors opening up at 6:30pm). &lt;/p&gt;
&lt;p&gt;Sorry it’s taken us so long to get a next meeting (we’ve had a lot of scheduling conflicts to work through of our core team).&lt;/p&gt;
&lt;p&gt;PS. the meeting after this one will be on November 3rd and we’ll have Jim Zimmerman talking to us about a topic that is definitely in the Dev-Signer realm! Stay tuned!&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2827.aspx" width="1" height="1" /&gt;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>Blockbuster Signup WTF</title><link>http://theruntime.com/blogs/thomasswilliams/archive/2009/09/14/blockbuster-signup-wtf.aspx</link><pubDate>Mon, 14 Sep 2009 09:54:04 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/thomasswilliams/archive/2009/09/14/blockbuster-signup-wtf.aspx</guid><wfw:comment>http://theruntime.com/blogs/thomasswilliams/comments/2826.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/thomasswilliams/comments/commentRss/2826.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/thomasswilliams/archive/2009/09/14/blockbuster-signup-wtf.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/thomasswilliams/services/trackbacks/2826.aspx</trackback:ping><source url="http://theruntime.com/blogs/thomasswilliams/rss.aspx">Blockbuster Signup WTF</source><description>&lt;p&gt;I love the &lt;a href="http://thedailywtf.com/"&gt;DailyWTF blog&lt;/a&gt; and recently had a WTF moment of my own while signing up at the Blockbuster (Australia) website:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://picasaweb.google.com/lh/photo/R0USN6Wvm18pMY6gj4_5Xg?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_Ln7LRKt4zEw/Sq4O10nP45I/AAAAAAAABak/aNczwv1j4IA/s400/blockbuster-signup-wtf.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In my case the password wasn't long enough, but Blockbuster effectively "threw the book" at me and dumped all the password error text onto the screen.&lt;/p&gt;
&lt;p&gt;I read and re-read the highlighted text but it still didn't make sense, especially considering I didn't use any non-alphanumeric characters. If something should "contain at least zero" then it could also be written "should not contain" which might have come off better.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tags: &lt;a rel="tag" href="http://technorati.com/tag/wtf"&gt;wtf&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/blockbuster"&gt;blockbuster&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/design"&gt;design&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/ui"&gt;ui&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/error"&gt;error&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/thomasswilliams/aggbug/2826.aspx" width="1" height="1" /&gt;</description><dc:creator>Thomas Williams</dc:creator></item><item><title>On the Road to iTextFileResult: Getting the Results from System.Web.MVC.WebFormViewEngine</title><link>http://theruntime.com/blogs/jaykimble/archive/2009/09/10/on-the-road-to-itextfileresult-getting-the-results-from-system.web.mvc.webformviewengine.aspx</link><pubDate>Thu, 10 Sep 2009 14:27:13 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/jaykimble/archive/2009/09/10/on-the-road-to-itextfileresult-getting-the-results-from-system.web.mvc.webformviewengine.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2825.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2825.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2009/09/10/on-the-road-to-itextfileresult-getting-the-results-from-system.web.mvc.webformviewengine.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2825.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">On the Road to iTextFileResult: Getting the Results from System.Web.MVC.WebFormViewEngine</source><description>&lt;p&gt;I’m in the process of building a new ActionResult for ASP.NET MVC. This new ActionResult will allow you to transform data into a PDF, RTF, or HTML (it uses iTextSharp behind the scenes, and yes, I have a working prototype right now that isn’t all that useful yet.. and you have to know way too much in order to use it as of this time).&lt;/p&gt;
&lt;p&gt;Essentially what I want to do is use any view engine that the programmer chooses and convert the resulting html, xml, or regular string data into a file that gets pushed to the browser. All this works for all of the alternative engines, but the default engines doesn’t work… so, without further adieu&lt;/p&gt;
&lt;h4&gt;Challenge #1: WebFormViewEngine ignores the TextStream you give it&lt;/h4&gt;
&lt;p&gt;Actually this might be the only challenge here. I tried numerous solutions.. none of which worked. I finally cracked open the MVC source code and determined that I needed to inherit form their class and do some overriding… In my API I created BufferedViewPage, and BufferedViewPage&amp;lt;T&amp;gt; so I could intercept the RenderView code. Here’s a copy of my current (in progress) version of BufferedViewPage:&lt;/p&gt;
&lt;div style="BORDER-BOTTOM: silver 1px solid; TEXT-ALIGN: left; BORDER-LEFT: silver 1px solid; PADDING-BOTTOM: 4px; LINE-HEIGHT: 12pt; BACKGROUND-COLOR: #f4f4f4; MARGIN: 20px 0px 10px; PADDING-LEFT: 4px; WIDTH: 97.5%; PADDING-RIGHT: 4px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; MAX-HEIGHT: 200px; FONT-SIZE: 8pt; OVERFLOW: auto; BORDER-TOP: silver 1px solid; CURSOR: text; BORDER-RIGHT: silver 1px solid; PADDING-TOP: 4px" id="codeSnippetWrapper"&gt;
&lt;div style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px" id="codeSnippet"&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;class&lt;/span&gt; BufferedViewPage : ViewPage, IBufferWebFormView&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060" id="lnum2"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060" id="lnum3"&gt;   3:&lt;/span&gt;     &lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; TextWriter Writer { get; set; }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060" id="lnum4"&gt;   4:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060" id="lnum5"&gt;   5:&lt;/span&gt;     &lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;override&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;void&lt;/span&gt; RenderView(ViewContext viewContext)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060" id="lnum6"&gt;   6:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060" id="lnum7"&gt;   7:&lt;/span&gt;         ViewContext = viewContext;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060" id="lnum8"&gt;   8:&lt;/span&gt;         InitHelpers();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060" id="lnum9"&gt;   9:&lt;/span&gt;         &lt;span style="COLOR: #008000"&gt;// Tracing requires Page IDs to be unique.&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060" id="lnum10"&gt;  10:&lt;/span&gt;         ID = Guid.NewGuid().ToString();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060" id="lnum11"&gt;  11:&lt;/span&gt;         var wfv = viewContext.View &lt;span style="COLOR: #0000ff"&gt;as&lt;/span&gt; WebFormView;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060" id="lnum12"&gt;  12:&lt;/span&gt;         var page = (wfv!=&lt;span style="COLOR: #0000ff"&gt;null&lt;/span&gt;?wfv.ViewPath:&lt;span style="COLOR: #006080"&gt;""&lt;/span&gt;); &lt;span style="COLOR: #008000"&gt;// View should always be WebFormView&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060" id="lnum13"&gt;  13:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060" id="lnum14"&gt;  14:&lt;/span&gt;         &lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt; (viewContext.ViewData[&lt;span style="COLOR: #006080"&gt;"____writer"&lt;/span&gt;] != &lt;span style="COLOR: #0000ff"&gt;null&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060" id="lnum15"&gt;  15:&lt;/span&gt;         {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060" id="lnum16"&gt;  16:&lt;/span&gt;             Writer = viewContext.ViewData[&lt;span style="COLOR: #006080"&gt;"____writer"&lt;/span&gt;] &lt;span style="COLOR: #0000ff"&gt;as&lt;/span&gt; TextWriter;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060" id="lnum17"&gt;  17:&lt;/span&gt;         }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060" id="lnum18"&gt;  18:&lt;/span&gt;         ProcessRequest(&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; HttpContext(&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; simpleWR(page, viewContext.HttpContext, viewContext.HttpContext.Response.Output)));&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060" id="lnum19"&gt;  19:&lt;/span&gt;         &lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt; (Writer != &lt;span style="COLOR: #0000ff"&gt;null&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060" id="lnum20"&gt;  20:&lt;/span&gt;             &lt;span style="COLOR: #0000ff"&gt;this&lt;/span&gt;.Render(&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; HtmlTextWriter(Writer));&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060" id="lnum21"&gt;  21:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060" id="lnum22"&gt;  22:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: &amp;quot;Courier New&amp;quot;, courier, monospace; DIRECTION: ltr; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060" id="lnum23"&gt;  23:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;You will see that I’m injecting a new writer into the ViewData (I’ll eventuually come up with a better mechanism, but it works for now). My code for the most part copies what the standard WebFormViewPage does except that you’ll see that if the page is a WebFormView it runs Render after running ProcessRequest. I’m not sure if this is problematic or not, but it works! Before I release the actual library I will probably clean this up quite a bit (this is mainly an exercise in helping anyone who wants to use the WebFormViewEngine, but somehow capture the result and do something else with it..&lt;/p&gt;
&lt;p&gt;BTW, the part of the code here you don’t see is that before I render I make sure buffering is on and then I clear the response text after generating this (which clearing the response was about the only thing I could do.. that generated data in HttpContext.Current.Response.Output is lost to you… at least I couldn’t find a way to get at it…)&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2825.aspx" width="1" height="1" /&gt;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>JavaScript for the masses</title><link>http://theruntime.com/blogs/jaykimble/archive/2009/09/03/javascript-for-the-masses.aspx</link><pubDate>Thu, 03 Sep 2009 17:43:57 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/jaykimble/archive/2009/09/03/javascript-for-the-masses.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2824.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2824.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2009/09/03/javascript-for-the-masses.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2824.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">JavaScript for the masses</source><description>&lt;p&gt;As you may be aware &lt;a href="http://www.hanselman.com/blog/ScottHanselmans2009UltimateDeveloperAndPowerUsersToolListForWindows.aspx"&gt;Scott Hanselman’s 2009 Ultimate Developer and Power Users Tool List for Windows&lt;/a&gt; came out yesterday. If you are like me you end up pooling through the list especially the new stuff to see if there is something cool that somehow you missed.&lt;/p&gt;
&lt;p&gt;I found an item on the list that answers something I think I have been looking for (but not for me), but before I go on I need to give you some background (as usual).&lt;/p&gt;
&lt;p&gt;&lt;a href="http://new.efficientcoder.net/"&gt;Kevin D. Wolf&lt;/a&gt; (aka ByteMaster) and I have been talking over the last several months on all things Ajax. We’re both pretty deep on the topic of Ajax (Actually Kevin is deep on a number of topics), and we’re both pretty opinionated about a few things (I know you are shocked that I would say that about myself). &lt;/p&gt;
&lt;p&gt;One of the things I’ve sort of been looking for is something that makes it easy for someone to write Ajax. The new Blend Skecthflow stuff is a HUGE game changer, but if what I want to write is Ajax then after using Sketchflow I’m back to the drawing board.&lt;/p&gt;
&lt;h2&gt;Interractions in Ajax.. found!&lt;/h2&gt;
&lt;p&gt;So yesterday, I was browsing the Hanselman list and I found a side reference to a tool to watch called “&lt;a href="http://www.ixedit.com/"&gt;IxEdit&lt;/a&gt;.” All I can say is WOW! [Personal Note: Diane Leeper download this now! I think you could have some fin with this…] Their video tells it all, but I will tell you what I think is cool about it. &lt;/p&gt;
&lt;p&gt;You create a page and add references to jquery, jquery ui, and their ixEdit script as well as a few CSS. Once you do this the page launches with a movable dialog. This new dialog let’s you create Ajax/Web 2.0 (more the latter) interactions with your page all by simply playing in their GUI. Really, really cool! Now they don’t do everything, and in fact from what I saw of the tool you can’t set up to make calls back to the server (but I could see something like that being set up, and am starting to think about it). Once you are satisfied you can “save and reload” which reloads the page and applies your designed interaction (so now you can see how it worked).. something not look right simply edit the interaction to tweak it’s setting.&lt;/p&gt;
&lt;p&gt;When you are done it will help you deploy the script, so now you have designed JS code with out actually writing a line of code! Really, really cool, IMO!&lt;/p&gt;
&lt;p&gt;[I spent a couple of hours looking for pictures to fancy this up a little.. I run a UI/UX users group for crying out loud.. I need to get better at that, so sorry my post is bland.. I’ll try to follow up with something more graphically pleasing]&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2824.aspx" width="1" height="1" /&gt;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>Anyone in Vegas for C4F Show Interview?</title><link>http://theruntime.com/blogs/brianpeek/archive/2009/08/14/anyone-in-vegas-for-c4f-show-interview.aspx</link><pubDate>Fri, 14 Aug 2009 22:16:34 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/brianpeek/archive/2009/08/14/anyone-in-vegas-for-c4f-show-interview.aspx</guid><wfw:comment>http://theruntime.com/blogs/brianpeek/comments/2823.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/brianpeek/comments/commentRss/2823.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/brianpeek/archive/2009/08/14/anyone-in-vegas-for-c4f-show-interview.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/brianpeek/services/trackbacks/2823.aspx</trackback:ping><source url="http://theruntime.com/blogs/brianpeek/rss.aspx">Anyone in Vegas for C4F Show Interview?</source><description>&lt;p&gt;&lt;a href="http://www.brianpeek.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/brian.metablogapi/1682.logo_5F00_0589CF1B.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="logo" border="0" alt="logo" align="right" src="http://www.brianpeek.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/brian.metablogapi/4426.logo_5F00_thumb_5F00_65028F68.png" width="98" height="114" /&gt;&lt;/a&gt; Is there anyone in or around the Las Vegas area between September 7th and September 12th that would like to be my guest for an episode of the &lt;a href="http://channel9.msdn.com/shows/Coding4FunTV/" target="_blank"&gt;Coding4Fun Show&lt;/a&gt;?  I’ll be in the area for the week and would love to do an in-person show with anyone doing a cool project with Microsoft technologies.  If you’re interested, please &lt;a href="http://www.brianpeek.com/blog/contact.aspx"&gt;contact me&lt;/a&gt; so we can set something up.  Maybe you’ll even get a free lunch out of it.  :)  Thanks!&lt;/p&gt;
Cross Posted from &lt;a href="http://www.brianpeek.com/"&gt;www.brianpeek.com&lt;/a&gt;.&lt;img src="http://theruntime.com/blogs/brianpeek/aggbug/2823.aspx" width="1" height="1" /&gt;</description><dc:creator>Brian Peek</dc:creator></item><item><title>The Case For Renaming Controls In a Reporting Services Report</title><link>http://theruntime.com/blogs/thomasswilliams/archive/2009/07/28/the-case-for-renaming-controls-in-a-reporting-services-report.aspx</link><pubDate>Tue, 28 Jul 2009 02:54:28 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/thomasswilliams/archive/2009/07/28/the-case-for-renaming-controls-in-a-reporting-services-report.aspx</guid><wfw:comment>http://theruntime.com/blogs/thomasswilliams/comments/2821.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/thomasswilliams/comments/commentRss/2821.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/thomasswilliams/archive/2009/07/28/the-case-for-renaming-controls-in-a-reporting-services-report.aspx#comment</comments><slash:comments>3</slash:comments><trackback:ping>http://theruntime.com/blogs/thomasswilliams/services/trackbacks/2821.aspx</trackback:ping><source url="http://theruntime.com/blogs/thomasswilliams/rss.aspx">The Case For Renaming Controls In a Reporting Services Report</source><description>&lt;p&gt;Since my Access days, I've believed in renaming important* controls in reports. Now that I use Reporting Services daily, this practice still holds: ambiguous names like "Textbox1" or "Textbox112" become "ReportName" or "FinalBalance", "table1" becomes "WidgetSalesTable", and "chart1" becomes "MonthlyTrendChart".&lt;/p&gt;
&lt;p&gt;As well as better organising the report while in development and adding only a small amount of time to actually do, renaming controls is useful to me later when I'm maintaining a report as I can see which controls contain which data points.&lt;/p&gt;
&lt;p&gt;There's one further advantage to renaming controls in a Reporting Services report: because reports are stored in XML format, I can extract the static contents of a control (as long as I know it's name) either from the RDL file or from the RDL file stored as XML in the &lt;code&gt;Catalog&lt;/code&gt; table in the &lt;code&gt;ReportServer&lt;/code&gt; database.&lt;/p&gt;
&lt;p&gt;I recently needed this functionality as I wanted a list of reports with the contents of a textbox on each report body called "Purpose".&lt;/p&gt;
&lt;p&gt;This was fairly straightforward to accomplish using the XML &lt;code&gt;nodes()&lt;/code&gt; method, which is dependent on the control being sought (which is why there's no code for this blog post, sorry!)&lt;/p&gt;
&lt;p&gt;&lt;em&gt;* I don't usually rename controls that contain "meta" information, like column headers and blank cells.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tags: &lt;a rel="tag" href="http://technorati.com/tag/sql+server"&gt;sql server&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/reporting+services"&gt;reporting services&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/thomasswilliams/aggbug/2821.aspx" width="1" height="1" /&gt;</description><dc:creator>Thomas Williams</dc:creator></item><item><title>TampaUX.NET Next Meeting: 7/29 (tomorrow!) 7:00 at MS Tampa Offices!</title><link>http://theruntime.com/blogs/jaykimble/archive/2009/07/28/tampaux.net-next-meeting-729-tomorrow-700-at-ms-tampa-offices.aspx</link><pubDate>Tue, 28 Jul 2009 14:40:37 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/jaykimble/archive/2009/07/28/tampaux.net-next-meeting-729-tomorrow-700-at-ms-tampa-offices.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2822.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2822.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2009/07/28/tampaux.net-next-meeting-729-tomorrow-700-at-ms-tampa-offices.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2822.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">TampaUX.NET Next Meeting: 7/29 (tomorrow!) 7:00 at MS Tampa Offices!</source><description>&lt;h2&gt;Reinventing TUX - Our Website... and Our Identity&lt;/h2&gt;
&lt;p&gt;Big things in the wind. Besides a new location, we are making a slight URL change to &lt;acronym&gt;www.TampaUX.net&lt;/acronym&gt;. &lt;/p&gt;
&lt;p&gt;With a new web address, we decided that a new design was in order, so our next session will be all about reinventing our web site and setting it up for future development by YOU! &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Speakers: &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strike&gt;Roy Lawson&lt;/strike&gt; (Roy couldn’t make it.. it’s my fault.. we’ll get him another month)&lt;/li&gt;
    &lt;li&gt;Shawn Cady &lt;/li&gt;
    &lt;li&gt;Jay Kimble &lt;/li&gt;
    &lt;li&gt;Nikita Polyakov &lt;/li&gt;
    &lt;li&gt;Kevin Wolf &lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;NEW Location: &lt;br /&gt;
Microsoft Corporation 5426 Bay Center Suite 700 Tampa, FL 33609 &lt;a href="http://tinyurl.com/MSTPA"&gt;Map&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[A little busy today, so yes, I stole Nikita’s &lt;a href="http://geekswithblogs.net/campuskoder/archive/2009/07/28/133760.aspx"&gt;post&lt;/a&gt;]&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2822.aspx" width="1" height="1" /&gt;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>The Coding4Fun Show – Ep 2 with Arian Kulp</title><link>http://theruntime.com/blogs/brianpeek/archive/2009/07/26/the-coding4fun-show--ep-2-with-arian-kulp.aspx</link><pubDate>Mon, 27 Jul 2009 02:26:00 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/brianpeek/archive/2009/07/26/the-coding4fun-show--ep-2-with-arian-kulp.aspx</guid><wfw:comment>http://theruntime.com/blogs/brianpeek/comments/2820.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/brianpeek/comments/commentRss/2820.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/brianpeek/archive/2009/07/26/the-coding4fun-show--ep-2-with-arian-kulp.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/brianpeek/services/trackbacks/2820.aspx</trackback:ping><source url="http://theruntime.com/blogs/brianpeek/rss.aspx">The Coding4Fun Show – Ep 2 with Arian Kulp</source><description>&lt;p&gt;&lt;a href="http://channel9.msdn.com/shows/Coding4FunTV/The-Coding4Fun-Show-MEF-Utility-Runner-with-Arian-Kulp/"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="logo" border="0" alt="logo" align="right" src="http://www.brianpeek.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/brian.metablogapi/8547.logo_5F00_4B5CDE8E.png" width="98" height="114" /&gt;&lt;/a&gt; The second episode of my &lt;a href="http://channel9.msdn.com/shows/Coding4FunTV/"&gt;Coding4Fun Show&lt;/a&gt; is now up on &lt;a href="http://channel9.msdn.com/"&gt;Channel 9&lt;/a&gt;.  In this episode of the Coding4Fun Show, I interview &lt;a href="http://www.ariankulp.com/"&gt;Arian Kulp&lt;/a&gt;, creator of the &lt;a href="http://utilrunner.codeplex.com/"&gt;MEF Utility Runner&lt;/a&gt;, a unified host for system tray utility applications.  Learn a bit about MEF and how it can be leveraged to create a plugin architecture for any application, as well as how it was used to create the MEF Utility runner, and how you can write your own plugins for this application.&lt;/p&gt;  &lt;p&gt;You should see the video below if you have &lt;a href="http://www.silverlight.net/"&gt;Silverlight&lt;/a&gt; installed, otherwise head over to the &lt;a href="http://channel9.msdn.com/shows/Coding4FunTV/The-Coding4Fun-Show-MEF-Utility-Runner-with-Arian-Kulp/"&gt;episode on Channel 9&lt;/a&gt; to watch and download in a variety of formats for offline viewing.&lt;/p&gt; &lt;center&gt;&lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="320" height="240"&gt; &lt;param name="source" value="http://channel9.msdn.com/App_Themes/default/vp09_06_22.xap" /&gt; &lt;param name="initParams" value="m=http://mschnlnine.vo.llnwd.net/d1/ch9/6/5/9/0/8/4/C4FShowE2Kulp_2MB_ch9.wmv,autostart=false,autohide=true,showembed=true, thumbnail=http://mschnlnine.vo.llnwd.net/d1/ch9/6/5/9/0/8/4/C4FShowE2Kulp_large_ch9.png, postid=480956" /&gt; &lt;param name="background" value="#00FFFFFF" /&gt; &lt;a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"&gt; &lt;img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none" /&gt; &lt;/a&gt; &lt;/object&gt;    &lt;br /&gt;&lt;a href="http://channel9.msdn.com/shows/Coding4FunTV/The-Coding4Fun-Show-MEF-Utility-Runner-with-Arian-Kulp/" target="_blank"&gt;The Coding4Fun Show: MEF Utility Runner with Arian Kulp&lt;/a&gt;&lt;/center&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;
Cross Posted from &lt;a href="http://www.brianpeek.com/"&gt;www.brianpeek.com&lt;/a&gt;.&lt;img src="http://theruntime.com/blogs/brianpeek/aggbug/2820.aspx" width="1" height="1" /&gt;</description><dc:creator>Brian Peek</dc:creator></item><item><title>Reporting Services "Execution xxx cannot be found"</title><link>http://theruntime.com/blogs/thomasswilliams/archive/2009/07/24/reporting-services-execution-xxx-cannot-be-found.aspx</link><pubDate>Fri, 24 Jul 2009 03:40:50 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/thomasswilliams/archive/2009/07/24/reporting-services-execution-xxx-cannot-be-found.aspx</guid><wfw:comment>http://theruntime.com/blogs/thomasswilliams/comments/2819.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/thomasswilliams/comments/commentRss/2819.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/thomasswilliams/archive/2009/07/24/reporting-services-execution-xxx-cannot-be-found.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/thomasswilliams/services/trackbacks/2819.aspx</trackback:ping><source url="http://theruntime.com/blogs/thomasswilliams/rss.aspx">Reporting Services "Execution xxx cannot be found"</source><description>&lt;p&gt;Recently I investigated a Reporting Services problem where a user first ran a report with one parameter, then switched applications to do some work, then returned to the report and attempted to run it with a different parameter. The end result was that they received an "execution &lt;em&gt;xxx&lt;/em&gt; cannot be found (rsExecutionNotFound)" error.&lt;/p&gt;
&lt;p&gt;I too see this "execution cannot be found" error intermittently, sometimes after coming back to a report I'd run earlier and clicking "Back" or trying to expand a section on the report, and sometimes when my browser loads up tabs from a previous session.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;And The Reason Is You&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Behind the scenes, Reporting Services tracks each user's session (using an "execution" identifier) in the &lt;code&gt;ReportServerTempDB&lt;/code&gt; database, storing report snapshot data and information on selected parameters as well as report sections that are expanded. There's an article &lt;a href="http://www.databasejournal.com/features/mssql/article.php/3695721/Report-Session-Caching-in-Reporting-Services-2005.htm"&gt;"Report Session Caching in Reporting Services 2005" on Database Journal&lt;/a&gt; that explains the caching in more detail.&lt;/p&gt;
&lt;p&gt;The expiry time for the Reporting Services session is set to 10 minutes by default (note this is different to ASP.NET session and/or connection or command timeouts).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;And I Will Try, To Fix You&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Although there are multiple ways to alleviate the problem, in my case it was following the advice at &lt;a href="http://blogs.msdn.com/emilianb/archive/2009/05/28/timeouts-and-microsoft-sql-server-2005-reporting-services.aspx"&gt;Emi Baragan's blog which describes how to modify the session timeout&lt;/a&gt; using script. &lt;a href="http://blogs.msdn.com/jgalla/archive/2006/10/11/session-timeout-during-execution.aspx"&gt;John Gallardo goes into more detail where the session might expire while a user is running a report (that takes longer than 10 minutes to run)&lt;/a&gt;, which wasn't happening in my case, but is also a potential cause of the "execution cannot be found" error.&lt;/p&gt;
&lt;p&gt;John's post ends with a note that keeping sessions alive longer can cause the &lt;code&gt;ReportServerTempDB&lt;/code&gt; database to increase in size - something which I'm happy with, but will need monitoring.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tags: &lt;a href="http://technorati.com/tag/reporting+services" rel="tag"&gt;reporting services&lt;/a&gt;, &lt;a href="http://technorati.com/tag/sql+server" rel="tag"&gt;sql server&lt;/a&gt;, &lt;a href="http://technorati.com/tag/rsexecutionnotfound" rel="tag"&gt;rsexecutionnotfound&lt;/a&gt; &lt;/em&gt;&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/thomasswilliams/aggbug/2819.aspx" width="1" height="1" /&gt;</description><dc:creator>Thomas Williams</dc:creator></item><item><title>jQuery-UI visual studio intellisense (vsdoc) file</title><link>http://theruntime.com/blogs/jaykimble/archive/2009/07/20/jquery-ui-visual-studio-intellisense-vsdoc-file.aspx</link><pubDate>Mon, 20 Jul 2009 13:19:18 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/jaykimble/archive/2009/07/20/jquery-ui-visual-studio-intellisense-vsdoc-file.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2818.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2818.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2009/07/20/jquery-ui-visual-studio-intellisense-vsdoc-file.aspx#comment</comments><slash:comments>5</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2818.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">jQuery-UI visual studio intellisense (vsdoc) file</source><description>&lt;p&gt;If you’ve ever tried to use jQuery UI with Visual Studio, you’ve run into a JavaScript parse error and you lose JavaScript intellisense in Visual Studio. I wasn’t exactly sure of the issue until I read someone’s advice (who was just trying to get the datepicker working) to simply include a dummy jquery-datepicker-vsdoc.js file. So I did this for the jquery-ui.js file and lo and behold, no JavaScript parsing errors, and I had intellisense for everything EXCEPT jQuery UI.&lt;/p&gt;
&lt;p&gt;Anyway, I dug around and couldn’t find one… so I created the beginnings of one. What you get is very core level (and not an actual working file). Simply add it to your project along side your jquery-ui.js file and VS will automagically realize that when it gives you intellisense for JavaScript and you are using (or have referenced) the jquery-ui file.&lt;/p&gt;
&lt;p&gt;As I said it’s not complete. The areas that I know for sure is that it doesn’t give you any of the theming support.. actually the jquery.ui object is pretty much not there at all… I did get the effects and all the base controls intellisense working (datepicker, tabs, dialogs, etc.). It’s not perfect, but it will be a good start for someone else…&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How to Use it&lt;/strong&gt;    &lt;br /&gt;
So to use this simply add it alongside your jquery-ui.js file in visual studio and visual studio should pick up my file and use it to give you intellisense. If you are using an external JS file you’ll need to use “/// &amp;lt;reference… /&amp;gt; to reference the JS file. &lt;/p&gt;
&lt;p&gt;If I get around to it I will publish an update in the future.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div class="wlWriterEditableSmartContent" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:671d55e1-df05-4ebd-b698-7ee816b9f77c" style="margin: 0px; padding: 0px; display: inline; float: none;"&gt;
&lt;p&gt;File Attachment: &lt;a target="_blank" href="http://theruntime.com/blogs/images/theruntime_com/blogs/jaykimble/WindowsLiveWriter/jQueryUIvisualstudiointellisensevsdocfil_98FB/jquery-ui-vsdoc_1.js"&gt;jquery-ui-vsdoc.js&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2818.aspx" width="1" height="1" /&gt;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>WiimoteLib 1.8 Beta 1 Posted</title><link>http://theruntime.com/blogs/brianpeek/archive/2009/07/20/wiimotelib-1.8-beta-1-posted.aspx</link><pubDate>Mon, 20 Jul 2009 09:01:10 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/brianpeek/archive/2009/07/20/wiimotelib-1.8-beta-1-posted.aspx</guid><wfw:comment>http://theruntime.com/blogs/brianpeek/comments/2817.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/brianpeek/comments/commentRss/2817.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/brianpeek/archive/2009/07/20/wiimotelib-1.8-beta-1-posted.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/brianpeek/services/trackbacks/2817.aspx</trackback:ping><source url="http://theruntime.com/blogs/brianpeek/rss.aspx">WiimoteLib 1.8 Beta 1 Posted</source><description>&lt;p&gt;&lt;a href="http://www.amazon.com/dp/B001TOQ8NO/tag=brianpcom-20" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 10px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="right" src="http://www.brianpeek.com/blogimages/WiimoteLib1.8Beta1Posted_457F/image.png" width="165" height="124" /&gt;&lt;/a&gt; I have posted a new version of &lt;a href="http://wiimotelib.codeplex.com/" target="_blank"&gt;WiimoteLib&lt;/a&gt; as a beta for people to play around with the &lt;a href="http://www.amazon.com/dp/B001TOQ8NO/tag=brianpcom-20" target="_blank"&gt;Wii MotionPlus accessory&lt;/a&gt;.  Please note that this is not a stable release and should only be used if you wish to mess around with the MotionPlus.  Also note that only C# source code is included in this release as it is not a final build.  Here’s the change log:&lt;/p&gt;  &lt;p&gt;&lt;u&gt;v1.8.0.0&lt;/u&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Taiko Drum Master's TaTaCon drum controller supported (Dean Herbert)&lt;/li&gt;    &lt;li&gt;Bare-bones Wii MotionPlus support (wiibrew.org, testing by Tyler Tolley)&lt;/li&gt;    &lt;li&gt;WiimoteTest UI changed to add MotionPlus data&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Please note that the current version is VERY flakey and may not work at all for you.&lt;/li&gt;      &lt;li&gt;Pair your Wiimote, plug in your MotionPlus, call InitializeMotionPlus()&lt;/li&gt;      &lt;li&gt;Extensions plugged into the MotionPlus will give wacky results...not supported...yet!&lt;/li&gt;      &lt;li&gt;Internal changes to perhaps fix some threading issues&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;So remember, it’s a beta, it may not work for you, and the data you’ll get back from the accessory is just the raw data it provides.  You won’t get real orientation values.&lt;/p&gt;  &lt;p&gt;That said, head over to &lt;a href="http://wiimotelib.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=30401" target="_blank"&gt;CodePlex&lt;/a&gt; and give it a try!&lt;/p&gt;
Cross Posted from &lt;a href="http://www.brianpeek.com/"&gt;www.brianpeek.com&lt;/a&gt;.&lt;img src="http://theruntime.com/blogs/brianpeek/aggbug/2817.aspx" width="1" height="1" /&gt;</description><dc:creator>Brian Peek</dc:creator></item></channel></rss>