<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns: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/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
    <channel>
        <title>Thomas Williams Tech Blog</title>
        <link>http://theruntime.com/blogs/thomasswilliams/Default.aspx</link>
        <description>SQL Server, Reporting Services and a dash of .NET from Down Under</description>
        <language>en-AU</language>
        <copyright>Thomas Williams</copyright>
        <generator>Subtext Version 2.5.1.19</generator>
        <image>
            <title>Thomas Williams Tech Blog</title>
            <url>http://theruntime.com/blogs/images/RSS2Image.gif</url>
            <link>http://theruntime.com/blogs/thomasswilliams/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/thomasswilliams-tech" /><feedburner:info uri="thomasswilliams-tech" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license><feedburner:emailServiceId>thomasswilliams-tech</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
            <title>Studying My Masters Through Charles Sturt University</title>
            <category>Personal</category>
            <link>http://feedproxy.google.com/~r/thomasswilliams-tech/~3/r1BQMfdftxk/Studying-My-Masters-Through-Charles-Sturt-University.aspx</link>
            <description>&lt;p&gt;In March I started studying, via distance education, a &lt;a href="http://www.csu.edu.au/courses/postgraduate/systems_development/"&gt;Graduate Certificate of Systems Development with Charles Sturt University&lt;/a&gt;. The Graduate Certificate is made up of 4 units which can count towards the full Masters course (which I plan on continuing with - I figured it would be safer to aim for something achievable first, and seeing if I still liked studying enough to commit a few years to it!)&lt;/p&gt;
&lt;p&gt;Charles Sturt University has a great reputation for its distance education, but the reason I signed up was that it works hand-in-hand with industry so you achieve the Masters and industry certification (in my case, project management).&lt;/p&gt;
&lt;p&gt;Study is waaaay different than it was when I was a full-time Uni student last century. My situation has changed too in that now I have a full-time job, a wife and three kids, and a lot more commitments. As I'm doing distance education, there's no "class" time and studying is largely self-directed. Forums are provided and some subjects have weekly webcasts (Marco's webcasts particularly were entertaining &lt;em&gt;and&lt;/em&gt; informative) but it can feel a little "here's the books and study notes, here's your assignments, we'll see you later" which can be initially daunting.&lt;/p&gt;
&lt;p&gt;I hope to blog more of my experiences - including my first two subjects, and why I'm studying project management - over the next couple of weeks.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tags: &lt;a rel="tag" href="http://technorati.com/tag/Charles+Sturt+University"&gt;Charles Sturt University&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/masters"&gt;masters&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/study"&gt;study&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/career"&gt;career&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/thomasswilliams/aggbug/2840.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=r1BQMfdftxk:RPU93NoJByc:XhI0_UKdTUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?i=r1BQMfdftxk:RPU93NoJByc:XhI0_UKdTUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=r1BQMfdftxk:RPU93NoJByc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?i=r1BQMfdftxk:RPU93NoJByc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=r1BQMfdftxk:RPU93NoJByc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thomasswilliams-tech/~4/r1BQMfdftxk" height="1" width="1"/&gt;</description>
            <dc:creator>Thomas Williams</dc:creator>
            <guid isPermaLink="false">http://theruntime.com/blogs/thomasswilliams/archive/2010/08/02/Studying-My-Masters-Through-Charles-Sturt-University.aspx</guid>
            <pubDate>Mon, 02 Aug 2010 10:06:10 GMT</pubDate>
            <comments>http://theruntime.com/blogs/thomasswilliams/archive/2010/08/02/Studying-My-Masters-Through-Charles-Sturt-University.aspx#feedback</comments>
            <wfw:commentRss>http://theruntime.com/blogs/thomasswilliams/comments/commentRss/2840.aspx</wfw:commentRss>
        <feedburner:origLink>http://theruntime.com/blogs/thomasswilliams/archive/2010/08/02/Studying-My-Masters-Through-Charles-Sturt-University.aspx</feedburner:origLink></item>
        <item>
            <title>Saving Windows XP "My Network Places" to a Text File</title>
            <category>Windows</category>
            <link>http://feedproxy.google.com/~r/thomasswilliams-tech/~3/kA9kOrIBxgw/saving-windows-xp-my-network-places-to-a-text-file.aspx</link>
            <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;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=kA9kOrIBxgw:boVxPw7P1-M:XhI0_UKdTUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?i=kA9kOrIBxgw:boVxPw7P1-M:XhI0_UKdTUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=kA9kOrIBxgw:boVxPw7P1-M:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?i=kA9kOrIBxgw:boVxPw7P1-M:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=kA9kOrIBxgw:boVxPw7P1-M:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thomasswilliams-tech/~4/kA9kOrIBxgw" height="1" width="1"/&gt;</description>
            <dc:creator>Thomas Williams</dc:creator>
            <guid isPermaLink="false">http://theruntime.com/blogs/thomasswilliams/archive/2010/05/13/saving-windows-xp-my-network-places-to-a-text-file.aspx</guid>
            <pubDate>Thu, 13 May 2010 02:52:39 GMT</pubDate>
            <comments>http://theruntime.com/blogs/thomasswilliams/archive/2010/05/13/saving-windows-xp-my-network-places-to-a-text-file.aspx#feedback</comments>
            <wfw:commentRss>http://theruntime.com/blogs/thomasswilliams/comments/commentRss/2839.aspx</wfw:commentRss>
        <feedburner:origLink>http://theruntime.com/blogs/thomasswilliams/archive/2010/05/13/saving-windows-xp-my-network-places-to-a-text-file.aspx</feedburner:origLink></item>
        <item>
            <title>My Firefox Tab Scope Add-On Wish List</title>
            <category>Web Development (inc. ASP.NET)</category>
            <category>Design</category>
            <link>http://feedproxy.google.com/~r/thomasswilliams-tech/~3/U6PzxS7WtIQ/my-firefox-tab-scope-add-on-wish-list.aspx</link>
            <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;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=U6PzxS7WtIQ:fevKgU_29VQ:XhI0_UKdTUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?i=U6PzxS7WtIQ:fevKgU_29VQ:XhI0_UKdTUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=U6PzxS7WtIQ:fevKgU_29VQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?i=U6PzxS7WtIQ:fevKgU_29VQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=U6PzxS7WtIQ:fevKgU_29VQ:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thomasswilliams-tech/~4/U6PzxS7WtIQ" height="1" width="1"/&gt;</description>
            <dc:creator>Thomas Williams</dc:creator>
            <guid isPermaLink="false">http://theruntime.com/blogs/thomasswilliams/archive/2010/02/23/my-firefox-tab-scope-add-on-wish-list.aspx</guid>
            <pubDate>Tue, 23 Feb 2010 02:29:33 GMT</pubDate>
            <comments>http://theruntime.com/blogs/thomasswilliams/archive/2010/02/23/my-firefox-tab-scope-add-on-wish-list.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://theruntime.com/blogs/thomasswilliams/comments/commentRss/2837.aspx</wfw:commentRss>
        <feedburner:origLink>http://theruntime.com/blogs/thomasswilliams/archive/2010/02/23/my-firefox-tab-scope-add-on-wish-list.aspx</feedburner:origLink></item>
        <item>
            <title>SQL Error: Cannot resolve collation conflict for DISTINCT operation</title>
            <category>SQL Server</category>
            <link>http://feedproxy.google.com/~r/thomasswilliams-tech/~3/YvR-Ep01h1k/sql-error-cannot-resolve-collation-conflict-for-distinct-operation.aspx</link>
            <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;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=YvR-Ep01h1k:KlQz7TLAMBA:XhI0_UKdTUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?i=YvR-Ep01h1k:KlQz7TLAMBA:XhI0_UKdTUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=YvR-Ep01h1k:KlQz7TLAMBA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?i=YvR-Ep01h1k:KlQz7TLAMBA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=YvR-Ep01h1k:KlQz7TLAMBA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thomasswilliams-tech/~4/YvR-Ep01h1k" height="1" width="1"/&gt;</description>
            <dc:creator>Thomas Williams</dc:creator>
            <guid isPermaLink="false">http://theruntime.com/blogs/thomasswilliams/archive/2010/02/12/sql-error-cannot-resolve-collation-conflict-for-distinct-operation.aspx</guid>
            <pubDate>Fri, 12 Feb 2010 01:17:55 GMT</pubDate>
            <comments>http://theruntime.com/blogs/thomasswilliams/archive/2010/02/12/sql-error-cannot-resolve-collation-conflict-for-distinct-operation.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://theruntime.com/blogs/thomasswilliams/comments/commentRss/2836.aspx</wfw:commentRss>
        <feedburner:origLink>http://theruntime.com/blogs/thomasswilliams/archive/2010/02/12/sql-error-cannot-resolve-collation-conflict-for-distinct-operation.aspx</feedburner:origLink></item>
        <item>
            <title>Google Reader's "Explore" feature</title>
            <category>Design</category>
            <link>http://feedproxy.google.com/~r/thomasswilliams-tech/~3/pwtZPdoEogg/google-readers-explore-feature.aspx</link>
            <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;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=pwtZPdoEogg:b2aUpIPoWZc:XhI0_UKdTUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?i=pwtZPdoEogg:b2aUpIPoWZc:XhI0_UKdTUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=pwtZPdoEogg:b2aUpIPoWZc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?i=pwtZPdoEogg:b2aUpIPoWZc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=pwtZPdoEogg:b2aUpIPoWZc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thomasswilliams-tech/~4/pwtZPdoEogg" height="1" width="1"/&gt;</description>
            <dc:creator>Thomas Williams</dc:creator>
            <guid isPermaLink="false">http://theruntime.com/blogs/thomasswilliams/archive/2009/11/30/google-readers-explore-feature.aspx</guid>
            <pubDate>Mon, 30 Nov 2009 04:31:05 GMT</pubDate>
            <comments>http://theruntime.com/blogs/thomasswilliams/archive/2009/11/30/google-readers-explore-feature.aspx#feedback</comments>
            <wfw:commentRss>http://theruntime.com/blogs/thomasswilliams/comments/commentRss/2833.aspx</wfw:commentRss>
        <feedburner:origLink>http://theruntime.com/blogs/thomasswilliams/archive/2009/11/30/google-readers-explore-feature.aspx</feedburner:origLink></item>
        <item>
            <title>Blockbuster Signup WTF</title>
            <category>Windows</category>
            <category>Design</category>
            <link>http://feedproxy.google.com/~r/thomasswilliams-tech/~3/6uPwJIj3Bc0/blockbuster-signup-wtf.aspx</link>
            <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;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=6uPwJIj3Bc0:riMK6YY1-pc:XhI0_UKdTUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?i=6uPwJIj3Bc0:riMK6YY1-pc:XhI0_UKdTUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=6uPwJIj3Bc0:riMK6YY1-pc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?i=6uPwJIj3Bc0:riMK6YY1-pc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=6uPwJIj3Bc0:riMK6YY1-pc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thomasswilliams-tech/~4/6uPwJIj3Bc0" height="1" width="1"/&gt;</description>
            <dc:creator>Thomas Williams</dc:creator>
            <guid isPermaLink="false">http://theruntime.com/blogs/thomasswilliams/archive/2009/09/14/blockbuster-signup-wtf.aspx</guid>
            <pubDate>Mon, 14 Sep 2009 09:54:04 GMT</pubDate>
            <comments>http://theruntime.com/blogs/thomasswilliams/archive/2009/09/14/blockbuster-signup-wtf.aspx#feedback</comments>
            <wfw:commentRss>http://theruntime.com/blogs/thomasswilliams/comments/commentRss/2826.aspx</wfw:commentRss>
        <feedburner:origLink>http://theruntime.com/blogs/thomasswilliams/archive/2009/09/14/blockbuster-signup-wtf.aspx</feedburner:origLink></item>
        <item>
            <title>The Case For Renaming Controls In a Reporting Services Report</title>
            <category>Reporting Services</category>
            <link>http://feedproxy.google.com/~r/thomasswilliams-tech/~3/9O3aUr8JDQ0/the-case-for-renaming-controls-in-a-reporting-services-report.aspx</link>
            <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;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=9O3aUr8JDQ0:zg3nuBM8H4A:XhI0_UKdTUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?i=9O3aUr8JDQ0:zg3nuBM8H4A:XhI0_UKdTUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=9O3aUr8JDQ0:zg3nuBM8H4A:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?i=9O3aUr8JDQ0:zg3nuBM8H4A:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=9O3aUr8JDQ0:zg3nuBM8H4A:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thomasswilliams-tech/~4/9O3aUr8JDQ0" height="1" width="1"/&gt;</description>
            <dc:creator>Thomas Williams</dc:creator>
            <guid isPermaLink="false">http://theruntime.com/blogs/thomasswilliams/archive/2009/07/28/the-case-for-renaming-controls-in-a-reporting-services-report.aspx</guid>
            <pubDate>Tue, 28 Jul 2009 02:54:28 GMT</pubDate>
            <comments>http://theruntime.com/blogs/thomasswilliams/archive/2009/07/28/the-case-for-renaming-controls-in-a-reporting-services-report.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://theruntime.com/blogs/thomasswilliams/comments/commentRss/2821.aspx</wfw:commentRss>
        <feedburner:origLink>http://theruntime.com/blogs/thomasswilliams/archive/2009/07/28/the-case-for-renaming-controls-in-a-reporting-services-report.aspx</feedburner:origLink></item>
        <item>
            <title>Reporting Services "Execution xxx cannot be found"</title>
            <category>Reporting Services</category>
            <link>http://feedproxy.google.com/~r/thomasswilliams-tech/~3/_QRtx0UQM9w/reporting-services-execution-xxx-cannot-be-found.aspx</link>
            <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;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=_QRtx0UQM9w:BZ9FkRv21ao:XhI0_UKdTUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?i=_QRtx0UQM9w:BZ9FkRv21ao:XhI0_UKdTUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=_QRtx0UQM9w:BZ9FkRv21ao:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?i=_QRtx0UQM9w:BZ9FkRv21ao:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=_QRtx0UQM9w:BZ9FkRv21ao:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thomasswilliams-tech/~4/_QRtx0UQM9w" height="1" width="1"/&gt;</description>
            <dc:creator>Thomas Williams</dc:creator>
            <guid isPermaLink="false">http://theruntime.com/blogs/thomasswilliams/archive/2009/07/24/reporting-services-execution-xxx-cannot-be-found.aspx</guid>
            <pubDate>Fri, 24 Jul 2009 03:40:50 GMT</pubDate>
            <comments>http://theruntime.com/blogs/thomasswilliams/archive/2009/07/24/reporting-services-execution-xxx-cannot-be-found.aspx#feedback</comments>
            <wfw:commentRss>http://theruntime.com/blogs/thomasswilliams/comments/commentRss/2819.aspx</wfw:commentRss>
        <feedburner:origLink>http://theruntime.com/blogs/thomasswilliams/archive/2009/07/24/reporting-services-execution-xxx-cannot-be-found.aspx</feedburner:origLink></item>
        <item>
            <title>Two Types of Developers</title>
            <category>Personal</category>
            <link>http://feedproxy.google.com/~r/thomasswilliams-tech/~3/K1Mg2FSZcqU/two-types-of-developers.aspx</link>
            <description>&lt;p&gt;Recently my boss said something like:&lt;/p&gt;
&lt;blockquote&gt;There are two types of developers - ones that are into their tools, and those that just use the tools. You don't need to be the first type to get the job done.&lt;/blockquote&gt;
&lt;p&gt;With regards to most of the programs I use, I'm the first type (and proud of it). However there's some things I have no desire to get into, and would rather just use; DOS batch files, Oracle TNSNAMES.ORA configuration, HTML help authoring, to name a few.&lt;/p&gt;
&lt;p&gt;That one little quote also touched on a tendency that I have to spend too much time fiddling and fine-tuning. Have you ever downloaded a single-use utility to get a task "just right"? Me too!&lt;/p&gt;
&lt;p&gt;Maybe there's some programs that I spend a lot of effort on, that I could afford to take a step back from and just use to get the job done.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tags: &lt;a rel="tag" href="http://technorati.com/tag/career"&gt;career&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/developers"&gt;developers&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/tools"&gt;tools&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/thomasswilliams/aggbug/2811.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=K1Mg2FSZcqU:T3m1jlpC2EI:XhI0_UKdTUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?i=K1Mg2FSZcqU:T3m1jlpC2EI:XhI0_UKdTUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=K1Mg2FSZcqU:T3m1jlpC2EI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?i=K1Mg2FSZcqU:T3m1jlpC2EI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=K1Mg2FSZcqU:T3m1jlpC2EI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thomasswilliams-tech/~4/K1Mg2FSZcqU" height="1" width="1"/&gt;</description>
            <dc:creator>Thomas Williams</dc:creator>
            <guid isPermaLink="false">http://theruntime.com/blogs/thomasswilliams/archive/2009/07/09/two-types-of-developers.aspx</guid>
            <pubDate>Thu, 09 Jul 2009 06:44:58 GMT</pubDate>
            <comments>http://theruntime.com/blogs/thomasswilliams/archive/2009/07/09/two-types-of-developers.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://theruntime.com/blogs/thomasswilliams/comments/commentRss/2811.aspx</wfw:commentRss>
        <feedburner:origLink>http://theruntime.com/blogs/thomasswilliams/archive/2009/07/09/two-types-of-developers.aspx</feedburner:origLink></item>
        <item>
            <title>Setting Focus to Control in an IFRAME using JQuery</title>
            <category>Web Development (inc. ASP.NET)</category>
            <link>http://feedproxy.google.com/~r/thomasswilliams-tech/~3/hfo3OT7clnU/setting-focus-to-control-in-an-iframe-using-jquery.aspx</link>
            <description>Had a gnarly problem this afternoon, while trying to set focus to a control in an IFRAME.  &lt;br /&gt;
&lt;br /&gt;
Using JQuery, I had created the IFRAME with the JQuery plugin &lt;a href="http://jquery.com/demo/thickbox/"&gt;ThickBox&lt;/a&gt;. ThickBox provides functionality that can simulate a modal dialog using an IFRAME, loading a page from a URL into the IFRAME (&lt;a href="http://jquery.com/demo/thickbox/#examples"&gt;check out the demo here&lt;/a&gt; - scroll down to "Inline Content"). The page loaded inside the IFRAME contained code to set the focus which was actually being called, but &lt;strong&gt;after&lt;/strong&gt; the page loaded something else was stealing the focus.  &lt;br /&gt;
&lt;br /&gt;
I began to look at the javascript code in the parent that created the IFRAME.  &lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://alexking.org/blog/2006/01/17/iframe-element-focus"&gt;I discovered to set the focus to a control in an IFRAME that has already been loaded, you need to set the focus to the IFRAME first (thanks Alex King).&lt;/a&gt; &lt;a href="http://simple.procoding.net/2008/03/21/how-to-access-iframe-in-jquery/"&gt;I also benefited from "How to access IFRAME in JQuery" over at ProCoding (thanks Taras Ilnytskyy).&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Here's the code to set focus to a control in an IFRAME using JQuery (called from the parent window, after the IFRAME has been loaded and shown):
&lt;pre class="javascript"&gt;	&lt;br /&gt;	//get the IFRAME element - note no hashes in the name, we're using browser functionality &lt;br /&gt;	var iframeRef = document.getElementById("IFRAMEID"); &lt;br /&gt;	//focus the IFRAME element &lt;br /&gt;	$(iframeRef).focus(); &lt;br /&gt;	//use JQuery to find the control in the IFRAME and set focus &lt;br /&gt;	$(iframeRef).contents().find("#CONTROLID").focus(); &lt;/pre&gt;
I hope this helps someone! &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-style: italic; font-weight: bold; color: rgb(255, 0, 0);"&gt;UPDATE: Fixed formatting.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Tags: &lt;a rel="tag" href="http://technorati.com/tag/jquery"&gt;jquery&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/javascript"&gt;javascript&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/web"&gt;web&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/iframe"&gt;iframe&lt;/a&gt;&lt;/em&gt;&lt;img src="http://theruntime.com/blogs/thomasswilliams/aggbug/2801.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=hfo3OT7clnU:X-vFE5h7lqo:XhI0_UKdTUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?i=hfo3OT7clnU:X-vFE5h7lqo:XhI0_UKdTUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=hfo3OT7clnU:X-vFE5h7lqo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?i=hfo3OT7clnU:X-vFE5h7lqo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thomasswilliams-tech?a=hfo3OT7clnU:X-vFE5h7lqo:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thomasswilliams-tech?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thomasswilliams-tech/~4/hfo3OT7clnU" height="1" width="1"/&gt;</description>
            <dc:creator>Thomas Williams</dc:creator>
            <guid isPermaLink="false">http://theruntime.com/blogs/thomasswilliams/archive/2009/05/28/setting-focus-to-control-in-an-iframe-using-jquery.aspx</guid>
            <pubDate>Thu, 28 May 2009 04:58:54 GMT</pubDate>
            <comments>http://theruntime.com/blogs/thomasswilliams/archive/2009/05/28/setting-focus-to-control-in-an-iframe-using-jquery.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://theruntime.com/blogs/thomasswilliams/comments/commentRss/2801.aspx</wfw:commentRss>
        <feedburner:origLink>http://theruntime.com/blogs/thomasswilliams/archive/2009/05/28/setting-focus-to-control-in-an-iframe-using-jquery.aspx</feedburner:origLink></item>
    </channel>
</rss>
