<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" 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:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Tim</title>
    <link>http://blogs.thesitedoctor.co.uk/tim/</link>
    <description>Footprints in the snow of a warped mind</description>
    <language>en-gb</language>
    <copyright>Tim Gaunt</copyright>
    <lastBuildDate>Mon, 12 Jul 2010 19:09:58 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.2.8279.16125</generator>
    <managingEditor>timgaunt@gmail.com</managingEditor>
    <webMaster>timgaunt@gmail.com</webMaster>
    <item>
      <trackback:ping>http://blogs.thesitedoctor.co.uk/tim/Trackback.aspx?guid=213017d7-d3b5-4f9e-aeca-d71ad9e6060a</trackback:ping>
      <pingback:server>http://blogs.thesitedoctor.co.uk/tim/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.thesitedoctor.co.uk/tim/PermaLink,guid,213017d7-d3b5-4f9e-aeca-d71ad9e6060a.aspx</pingback:target>
      <dc:creator>Tim</dc:creator>
      <wfw:comment>http://blogs.thesitedoctor.co.uk/tim/CommentView,guid,213017d7-d3b5-4f9e-aeca-d71ad9e6060a.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.thesitedoctor.co.uk/tim/SyndicationService.asmx/GetEntryCommentsRss?guid=213017d7-d3b5-4f9e-aeca-d71ad9e6060a</wfw:commentRss>
      <title>Automatically add a show and hide link to any object with jQuery</title>
      <guid isPermaLink="false">http://blogs.thesitedoctor.co.uk/tim/PermaLink,guid,213017d7-d3b5-4f9e-aeca-d71ad9e6060a.aspx</guid>
      <link>http://blogs.thesitedoctor.co.uk/tim/2010/07/12/Automatically+Add+A+Show+And+Hide+Link+To+Any+Object+With+JQuery.aspx</link>
      <pubDate>Mon, 12 Jul 2010 19:09:58 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 10px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="jquery-logo_png[1]" border="0" alt="jquery-logo_png[1]" align="right" src="http://blogs.thesitedoctor.co.uk/tim/images/Automaticallyaddashowandhidelinktoanyobj_11746/jquerylogo_png1.png" width="203" height="204" /&gt;There
are plenty of tutorials around that show you how to show or hide a div with jQuery,
you can &lt;a href="http://www.google.co.uk/search?hl=en&amp;amp;q=jquery+show+hide+div+link&amp;amp;meta="&gt;find
a load on Google&lt;/a&gt; but I wanted something that was re-usable throughout our projects
so I created the addShowHideLink jQuery plugin. 
&lt;/p&gt;
&lt;p&gt;
We’ve been using it across a few projects including &lt;a title="Crisis Cover - solving the " href="http://www.crisiscover.co.uk" target="_blank" problem?="problem?" bus?="bus?" a="a" by="by" hit="hit" get="get" you="you" if="if" happens="happens" what="what"&gt;Crisis
Cover&lt;/a&gt; for a while now and it’s catered for all our needs. Let me know if there’s
any other options you want added.
&lt;/p&gt;
&lt;p&gt;
I’ve not published any of our plug-ins before so forgive me if there are some obvious
errors but I figured someone else would find it useful.
&lt;/p&gt;
&lt;h2&gt;What does it do?
&lt;/h2&gt;
&lt;p&gt;
Simple: It hides the specified object and adds a link that shows the object when clicked.
It also swaps the show text to the specified hide text automatically.
&lt;/p&gt;
&lt;h2&gt;How do I use it?
&lt;/h2&gt;
&lt;p&gt;
I’ve kept it as simple as possible but have hopefully given it enough functionality
to suit your needs.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Basic Usage&lt;/strong&gt;
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:322ece34-a0be-4ab5-880b-f64bd8c0851d" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: javascript;"&gt;$('#objectToHide').addShowHideLink();&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Used with options&lt;/strong&gt;
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:130248f9-a235-4446-8b7f-372bdd3d093e" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: javascript;"&gt;$('#objectToHide').addShowHideLink({ 
		linkClass: 'showHideLnk',
		paraClass: 'showHide',
		openClass: 'showHideOpen',
		showText: 'Show Advanced Options',
		hideText: 'Hide Advanced Options',
		linkActions: function(){
			alert('The link was clicked');
		}
	});
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h2&gt;How do I get it?
&lt;/h2&gt;
&lt;p&gt;
I’ve uploaded a more complete example to: &lt;a title="http://blogs.thesitedoctor.co.uk/tim/Plugins/addShowHideLink/" href="http://blogs.thesitedoctor.co.uk/tim/Plugins/addShowHideLink/"&gt;http://blogs.thesitedoctor.co.uk/tim/Plugins/addShowHideLink/&lt;/a&gt; so
you can get a quick idea of what it does.
&lt;/p&gt;
&lt;p&gt;
You can &lt;a href="http://blogs.thesitedoctor.co.uk/tim/files/jquery.addshowhidelink.zip"&gt;download
the plug-in here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Thanks to Trevor Morris for his &lt;a href="http://www.trovster.com/lab/plugins/skeleton/" target="_blank"&gt;jQuery
skeleton starter framework&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/tim/aggbug.ashx?id=213017d7-d3b5-4f9e-aeca-d71ad9e6060a" /&gt;</description>
      <comments>http://blogs.thesitedoctor.co.uk/tim/CommentView,guid,213017d7-d3b5-4f9e-aeca-d71ad9e6060a.aspx</comments>
      <category>JavaScript</category>
      <category>jQuery</category>
      <category>The Site Doctor</category>
      <category>Web Development</category>
    </item>
    <item>
      <trackback:ping>http://blogs.thesitedoctor.co.uk/tim/Trackback.aspx?guid=6032d67e-2a61-47cc-8b8d-1b6a9f60efd6</trackback:ping>
      <pingback:server>http://blogs.thesitedoctor.co.uk/tim/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.thesitedoctor.co.uk/tim/PermaLink,guid,6032d67e-2a61-47cc-8b8d-1b6a9f60efd6.aspx</pingback:target>
      <dc:creator>Tim</dc:creator>
      <wfw:comment>http://blogs.thesitedoctor.co.uk/tim/CommentView,guid,6032d67e-2a61-47cc-8b8d-1b6a9f60efd6.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.thesitedoctor.co.uk/tim/SyndicationService.asmx/GetEntryCommentsRss?guid=6032d67e-2a61-47cc-8b8d-1b6a9f60efd6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="display: inline" align="right" src="http://www.diaryofaninja.com/asset/blogimages/email-error-missing_c2399bc2-ad89-45be-944c-d756bee14e5d.jpg" width="200" height="159" />Simple
tip this afternoon. You may have got the following error when sending emails through
ASP.Net’s built in mail server before:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:a48ce551-36f0-4887-a68f-6c18b5822944" class="wlWriterSmartContent">
          <pre class="brush: text;">From: postmaster@YourWebserversName [mailto:postmaster@YourWebserversName] 
Sent: 25 June 2010 13:22
To: sender@sendingdomainname.com
Subject: Delivery Status Notification (Failure)

This is an automatically generated Delivery Status Notification.

Delivery to the following recipients failed.

      recipient@recievingdomainname.com

Reporting-MTA: dns;YourWebserversName
Received-From-MTA: dns;YourWebserversName
Arrival-Date: Fri, 25 Jun 2010 13:21:30 +0100

Final-Recipient: rfc822;recipient@recievingdomainname.com
Action: failed
Status: 5.5.0
Diagnostic-Code: smtp;504 &lt;YourWebserversName&gt;: Helo command rejected: need fully-qualified hostname</pre>
        </div>
        <br />
        <p>
 
</p>
        <p>
The fix is easy:
</p>
        <ol>
          <li>
Open IIS</li>
          <li>
View the properties of you Default SMTP Virtual Server</li>
          <li>
Go to the “Delivery” tab</li>
          <li>
Click the “Advanced” button (in the bottom right corner)</li>
          <li>
Under “Fully-qualified domain name” enter a domain name that points to the server</li>
          <li>
Click Ok until you’re back to IIS</li>
        </ol>
        <img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/tim/aggbug.ashx?id=6032d67e-2a61-47cc-8b8d-1b6a9f60efd6" />
      </body>
      <title>Helo command rejected: need fully-qualified hostname when sending emails</title>
      <guid isPermaLink="false">http://blogs.thesitedoctor.co.uk/tim/PermaLink,guid,6032d67e-2a61-47cc-8b8d-1b6a9f60efd6.aspx</guid>
      <link>http://blogs.thesitedoctor.co.uk/tim/2010/06/30/Helo+Command+Rejected+Need+Fullyqualified+Hostname+When+Sending+Emails.aspx</link>
      <pubDate>Wed, 30 Jun 2010 15:20:08 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img style="display: inline" align="right" src="http://www.diaryofaninja.com/asset/blogimages/email-error-missing_c2399bc2-ad89-45be-944c-d756bee14e5d.jpg" width="200" height="159"&gt;Simple
tip this afternoon. You may have got the following error when sending emails through
ASP.Net’s built in mail server before:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:a48ce551-36f0-4887-a68f-6c18b5822944" class="wlWriterSmartContent"&gt;&lt;pre class="brush: text;"&gt;From: postmaster@YourWebserversName [mailto:postmaster@YourWebserversName] 
Sent: 25 June 2010 13:22
To: sender@sendingdomainname.com
Subject: Delivery Status Notification (Failure)

This is an automatically generated Delivery Status Notification.

Delivery to the following recipients failed.

      recipient@recievingdomainname.com

Reporting-MTA: dns;YourWebserversName
Received-From-MTA: dns;YourWebserversName
Arrival-Date: Fri, 25 Jun 2010 13:21:30 +0100

Final-Recipient: rfc822;recipient@recievingdomainname.com
Action: failed
Status: 5.5.0
Diagnostic-Code: smtp;504 &amp;lt;YourWebserversName&amp;gt;: Helo command rejected: need fully-qualified hostname&lt;/pre&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
The fix is easy:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Open IIS&lt;/li&gt;
&lt;li&gt;
View the properties of you Default SMTP Virtual Server&lt;/li&gt;
&lt;li&gt;
Go to the “Delivery” tab&lt;/li&gt;
&lt;li&gt;
Click the “Advanced” button (in the bottom right corner)&lt;/li&gt;
&lt;li&gt;
Under “Fully-qualified domain name” enter a domain name that points to the server&lt;/li&gt;
&lt;li&gt;
Click Ok until you’re back to IIS&lt;/li&gt;
&lt;/ol&gt;
&lt;img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/tim/aggbug.ashx?id=6032d67e-2a61-47cc-8b8d-1b6a9f60efd6" /&gt;</description>
      <comments>http://blogs.thesitedoctor.co.uk/tim/CommentView,guid,6032d67e-2a61-47cc-8b8d-1b6a9f60efd6.aspx</comments>
      <category>ASP.Net</category>
      <category>IIS</category>
      <category>The Site Doctor</category>
    </item>
    <item>
      <trackback:ping>http://blogs.thesitedoctor.co.uk/tim/Trackback.aspx?guid=646bc72f-3ad7-42c4-904b-dc18c1eff695</trackback:ping>
      <pingback:server>http://blogs.thesitedoctor.co.uk/tim/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.thesitedoctor.co.uk/tim/PermaLink,guid,646bc72f-3ad7-42c4-904b-dc18c1eff695.aspx</pingback:target>
      <dc:creator>Tim</dc:creator>
      <wfw:comment>http://blogs.thesitedoctor.co.uk/tim/CommentView,guid,646bc72f-3ad7-42c4-904b-dc18c1eff695.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.thesitedoctor.co.uk/tim/SyndicationService.asmx/GetEntryCommentsRss?guid=646bc72f-3ad7-42c4-904b-dc18c1eff695</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="powershell2xa4[1]" border="0" alt="powershell2xa4[1]" align="right" src="http://blogs.thesitedoctor.co.uk/tim/images/SetUmbracoFolderPermissionswithPowershel_C08E/powershell2xa41.jpg" width="260" height="208" /> If
you're not configuring Umbraco through a web installer, you've had your installs in
place for years and never checked the permissions or whoever set the permissions up
was lazy and gave IIS write access to the entire folder, there will come a time when
you want to restrict modify access to just those user(s) who should have access.
</p>
        <p>
You can find a (pretty) complete <a href="http://umbraco.org/documentation/books/important-files-and-folder-structure/permissions">list
of the files/folders that the Umbraco install should have access to here</a> but assigning
them across 101 different installs is a 
<abbr title="Pain In The Ass">
PITA
</abbr>
. Thanks to a <a href="http://www.powershell.nu/2009/02/13/set-folder-permissions-using-a-powershell-script/">helpful
PowerShell script to set folder permissions from PowerShell.nu</a> you can easily
automate the process.
</p>
        <p>
For those of you not familiar with PowerShell (like me) complete instructions are
below. For the rest, here's the command: 
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:6204aace-8f3a-49eb-928d-e0c33f5a299b" class="wlWriterEditableSmartContent">
          <pre class="brush: powershell;">Get-ChildItem -path ##PATH TO YOUR INSTALL## 
| Where { $_.name -eq "Bin" -or $_.name -eq "Config" -or $_.name -eq "Css" -or $_.name -eq "Data" -or $_.name -eq "Masterpages" -or $_.name -eq "Media" -or $_.name -eq "Scripts" -or $_.name -eq "Umbraco" -or $_.name -eq "Umbraco_client" -or $_.name -eq "UserControls" -or $_.name -eq "Xslt" } 
| ForEach {./SetFolderPermission.ps1 -path $_.Fullname -Access "NETWORK SERVICE" -Permission Modify}
</pre>
        </div>
        <p>
 
</p>
        <p>
          <strong>Instructions:</strong>
        </p>
        <ol>
          <li>
Save the <a href="http://blogs.thesitedoctor.co.uk/tim/files/setfolderpermission.ps1.txt">SetFolderPermission.ps1
script</a> to your server 
</li>
          <li>
Open your PowerShell console (I think it's installed by default if not, you can <a href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx">download
PowerShell here</a>) 
</li>
          <li>
Copy the above PowerShell command into notepad 
</li>
          <li>
Update "##PATH TO YOUR INSTALL##" to your Umbraco install 
</li>
          <li>
If your IIS install doesn't use NETWORK SERVICE as the default user, update it to
your user 
</li>
          <li>
Make sure it's all on a single line 
</li>
          <li>
Copy/Paste/Run in PowerShell 
</li>
        </ol>
        <p>
          <strong>Bonus</strong>
        </p>
        <p>
If you're uber lazy and just have a web folder of Umbraco installs you can set the
path to the folder of Umbraco installs and use:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:759a61db-2bc9-456c-9e1b-240acdea1c26" class="wlWriterEditableSmartContent">
          <pre class="brush: text;">Get-ChildItem -path ##PATH TO YOUR FOLDER## -recurse
| Where { $_.name -eq "Bin" -or $_.name -eq "Config" -or $_.name -eq "Css" -or $_.name -eq "Data" -or $_.name -eq "Masterpages" -or $_.name -eq "Media" -or $_.name -eq "Scripts" -or $_.name -eq "Umbraco" -or $_.name -eq "Umbraco_client" -or $_.name -eq "UserControls" -or $_.name -eq "Xslt" } 
| ForEach {./SetFolderPermission.ps1 -path $_.Fullname -Access "NETWORK SERVICE" -Permission Modify}
</pre>
        </div>
        <p>
 
</p>
        <p>
I've not tried this mind you and can't recommend it but hey, it's there if you want
it ;)
</p>
        <img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/tim/aggbug.ashx?id=646bc72f-3ad7-42c4-904b-dc18c1eff695" />
      </body>
      <title>Set Umbraco Folder Permissions with Powershell</title>
      <guid isPermaLink="false">http://blogs.thesitedoctor.co.uk/tim/PermaLink,guid,646bc72f-3ad7-42c4-904b-dc18c1eff695.aspx</guid>
      <link>http://blogs.thesitedoctor.co.uk/tim/2010/06/17/Set+Umbraco+Folder+Permissions+With+Powershell.aspx</link>
      <pubDate>Thu, 17 Jun 2010 13:47:22 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="powershell2xa4[1]" border="0" alt="powershell2xa4[1]" align="right" src="http://blogs.thesitedoctor.co.uk/tim/images/SetUmbracoFolderPermissionswithPowershel_C08E/powershell2xa41.jpg" width="260" height="208" /&gt; If
you're not configuring Umbraco through a web installer, you've had your installs in
place for years and never checked the permissions or whoever set the permissions up
was lazy and gave IIS write access to the entire folder, there will come a time when
you want to restrict modify access to just those user(s) who should have access.
&lt;/p&gt;
&lt;p&gt;
You can find a (pretty) complete &lt;a href="http://umbraco.org/documentation/books/important-files-and-folder-structure/permissions"&gt;list
of the files/folders that the Umbraco install should have access to here&lt;/a&gt; but assigning
them across 101 different installs is a 
&lt;abbr title="Pain In The Ass"&gt;
PITA
&lt;/abbr&gt;
. Thanks to a &lt;a href="http://www.powershell.nu/2009/02/13/set-folder-permissions-using-a-powershell-script/"&gt;helpful
PowerShell script to set folder permissions from PowerShell.nu&lt;/a&gt; you can easily
automate the process.
&lt;/p&gt;
&lt;p&gt;
For those of you not familiar with PowerShell (like me) complete instructions are
below. For the rest, here's the command: 
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:6204aace-8f3a-49eb-928d-e0c33f5a299b" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: powershell;"&gt;Get-ChildItem -path ##PATH TO YOUR INSTALL## 
| Where { $_.name -eq "Bin" -or $_.name -eq "Config" -or $_.name -eq "Css" -or $_.name -eq "Data" -or $_.name -eq "Masterpages" -or $_.name -eq "Media" -or $_.name -eq "Scripts" -or $_.name -eq "Umbraco" -or $_.name -eq "Umbraco_client" -or $_.name -eq "UserControls" -or $_.name -eq "Xslt" } 
| ForEach {./SetFolderPermission.ps1 -path $_.Fullname -Access "NETWORK SERVICE" -Permission Modify}
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Instructions:&lt;/strong&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Save the &lt;a href="http://blogs.thesitedoctor.co.uk/tim/files/setfolderpermission.ps1.txt"&gt;SetFolderPermission.ps1
script&lt;/a&gt; to your server 
&lt;/li&gt;
&lt;li&gt;
Open your PowerShell console (I think it's installed by default if not, you can &lt;a href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx"&gt;download
PowerShell here&lt;/a&gt;) 
&lt;/li&gt;
&lt;li&gt;
Copy the above PowerShell command into notepad 
&lt;/li&gt;
&lt;li&gt;
Update "##PATH TO YOUR INSTALL##" to your Umbraco install 
&lt;/li&gt;
&lt;li&gt;
If your IIS install doesn't use NETWORK SERVICE as the default user, update it to
your user 
&lt;/li&gt;
&lt;li&gt;
Make sure it's all on a single line 
&lt;/li&gt;
&lt;li&gt;
Copy/Paste/Run in PowerShell 
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;strong&gt;Bonus&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you're uber lazy and just have a web folder of Umbraco installs you can set the
path to the folder of Umbraco installs and use:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:759a61db-2bc9-456c-9e1b-240acdea1c26" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: text;"&gt;Get-ChildItem -path ##PATH TO YOUR FOLDER## -recurse
| Where { $_.name -eq "Bin" -or $_.name -eq "Config" -or $_.name -eq "Css" -or $_.name -eq "Data" -or $_.name -eq "Masterpages" -or $_.name -eq "Media" -or $_.name -eq "Scripts" -or $_.name -eq "Umbraco" -or $_.name -eq "Umbraco_client" -or $_.name -eq "UserControls" -or $_.name -eq "Xslt" } 
| ForEach {./SetFolderPermission.ps1 -path $_.Fullname -Access "NETWORK SERVICE" -Permission Modify}
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
I've not tried this mind you and can't recommend it but hey, it's there if you want
it ;)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/tim/aggbug.ashx?id=646bc72f-3ad7-42c4-904b-dc18c1eff695" /&gt;</description>
      <comments>http://blogs.thesitedoctor.co.uk/tim/CommentView,guid,646bc72f-3ad7-42c4-904b-dc18c1eff695.aspx</comments>
      <category>ASP.Net</category>
      <category>Hosting</category>
      <category>IIS</category>
      <category>PowerShell</category>
      <category>Server Maintenance</category>
      <category>Server Management</category>
      <category>Umbraco</category>
      <category>Web Development</category>
    </item>
    <item>
      <trackback:ping>http://blogs.thesitedoctor.co.uk/tim/Trackback.aspx?guid=17ee1d35-c1fc-49c3-8efd-f9b1d98082a8</trackback:ping>
      <pingback:server>http://blogs.thesitedoctor.co.uk/tim/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.thesitedoctor.co.uk/tim/PermaLink,guid,17ee1d35-c1fc-49c3-8efd-f9b1d98082a8.aspx</pingback:target>
      <dc:creator>Tim</dc:creator>
      <wfw:comment>http://blogs.thesitedoctor.co.uk/tim/CommentView,guid,17ee1d35-c1fc-49c3-8efd-f9b1d98082a8.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.thesitedoctor.co.uk/tim/SyndicationService.asmx/GetEntryCommentsRss?guid=17ee1d35-c1fc-49c3-8efd-f9b1d98082a8</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This is a great little tip that <a href="http://justbeyondthebridge.co.uk/" target="_blank">Andy
Higgs</a> shared with me a couple of months ago while we were developing <a title="Crisis Cover - a system to look after your client's mission critical information in the event that you're not longer around" href="http://www.crisiscover.co.uk/?utm_source=The%2BSite%20Doctor&amp;utm_medium=Blog&amp;utm_campaign=Tim's">Crisis
Cover</a>. If you write jQuery that hides the div when the user has JavaScript enabled,
you can avoid the divs all being shown while the page loads by simply adding a class
to the body of the page using jQuery and hide it using CSS like so:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:c187ef10-5877-4c20-b14b-90993dec3304" class="wlWriterEditableSmartContent">
          <pre class="brush: html">&lt;html&gt;
&lt;head&gt;&lt;/head&gt;
&lt;!-- Reference to jQuery here --&gt;
&lt;body&gt;
&lt;!-- This should be the first bit of code and don't wait until the page has loaded --&gt;
&lt;script type="text/javascript"&gt;$('body').addClass('js');&lt;/script&gt;
&lt;!-- The rest of your code here --&gt;
&lt;div class="jsHide"&gt;
	&lt;p&gt;This paragraph is hidden if the user has JavaScript enabled.&lt;/p&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
        </div>
        <p>
 
</p>
        <p>
Then you just need to add the css:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:6744ca21-fd04-4cfe-b318-1032aac56f2b" class="wlWriterEditableSmartContent">
          <pre class="brush: text">.js .jsHide</pre>
        </div>
        <p>
        </p>
        <p>
Your divs will now be hidden until you show them with JavaScript. Nice, simple solution
to an ever annoying problem.
</p>
        <p>
Note: For my demo to work you'll need to include jQuery
</p>
        <p>
          <strong>Update:</strong> As pointed out by Petr below and Andy Higgs/Trevor Morris,
it would be better to target using JavaScript without jQuery and target the body for
maximum flexibility (note the space at the front in case there is already a class):
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:62756a70-d2c0-49b0-a29a-5f0a81538fb8" class="wlWriterEditableSmartContent">
          <pre class="brush: html">&lt;script type="text/javascript"&gt;document.getElementsByTagName('html')[0].className+=' js'&lt;/script&gt;</pre>
        </div>
        <img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/tim/aggbug.ashx?id=17ee1d35-c1fc-49c3-8efd-f9b1d98082a8" />
      </body>
      <title>Stop jQuery.hide() showing the elements on page load</title>
      <guid isPermaLink="false">http://blogs.thesitedoctor.co.uk/tim/PermaLink,guid,17ee1d35-c1fc-49c3-8efd-f9b1d98082a8.aspx</guid>
      <link>http://blogs.thesitedoctor.co.uk/tim/2010/04/21/Stop+JQueryhide+Showing+The+Elements+On+Page+Load.aspx</link>
      <pubDate>Wed, 21 Apr 2010 21:30:25 GMT</pubDate>
      <description>&lt;p&gt;
This is a great little tip that &lt;a href="http://justbeyondthebridge.co.uk/" target="_blank"&gt;Andy
Higgs&lt;/a&gt; shared with me a couple of months ago while we were developing &lt;a title="Crisis Cover - a system to look after your client&amp;#39;s mission critical information in the event that you&amp;#39;re not longer around" href="http://www.crisiscover.co.uk/?utm_source=The%2BSite%20Doctor&amp;amp;utm_medium=Blog&amp;amp;utm_campaign=Tim's"&gt;Crisis
Cover&lt;/a&gt;. If you write jQuery that hides the div when the user has JavaScript enabled,
you can avoid the divs all being shown while the page loads by simply adding a class
to the body of the page using jQuery and hide it using CSS like so:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:c187ef10-5877-4c20-b14b-90993dec3304" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: html"&gt;&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;&amp;lt;/head&amp;gt;
&amp;lt;!-- Reference to jQuery here --&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;!-- This should be the first bit of code and don't wait until the page has loaded --&amp;gt;
&amp;lt;script type="text/javascript"&amp;gt;$('body').addClass('js');&amp;lt;/script&amp;gt;
&amp;lt;!-- The rest of your code here --&amp;gt;
&amp;lt;div class="jsHide"&amp;gt;
	&amp;lt;p&amp;gt;This paragraph is hidden if the user has JavaScript enabled.&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Then you just need to add the css:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:6744ca21-fd04-4cfe-b318-1032aac56f2b" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: text"&gt;.js .jsHide&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Your divs will now be hidden until you show them with JavaScript. Nice, simple solution
to an ever annoying problem.
&lt;/p&gt;
&lt;p&gt;
Note: For my demo to work you'll need to include jQuery
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update:&lt;/strong&gt; As pointed out by Petr below and Andy Higgs/Trevor Morris,
it would be better to target using JavaScript without jQuery and target the body for
maximum flexibility (note the space at the front in case there is already a class):
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:62756a70-d2c0-49b0-a29a-5f0a81538fb8" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: html"&gt;&amp;lt;script type="text/javascript"&amp;gt;document.getElementsByTagName('html')[0].className+=' js'&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/tim/aggbug.ashx?id=17ee1d35-c1fc-49c3-8efd-f9b1d98082a8" /&gt;</description>
      <comments>http://blogs.thesitedoctor.co.uk/tim/CommentView,guid,17ee1d35-c1fc-49c3-8efd-f9b1d98082a8.aspx</comments>
      <category>Development</category>
      <category>JavaScript</category>
      <category>Web Development</category>
    </item>
    <item>
      <trackback:ping>http://blogs.thesitedoctor.co.uk/tim/Trackback.aspx?guid=fa16c54e-8da8-44bd-8ac3-1efeb84cd15f</trackback:ping>
      <pingback:server>http://blogs.thesitedoctor.co.uk/tim/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.thesitedoctor.co.uk/tim/PermaLink,guid,fa16c54e-8da8-44bd-8ac3-1efeb84cd15f.aspx</pingback:target>
      <dc:creator>Tim</dc:creator>
      <wfw:comment>http://blogs.thesitedoctor.co.uk/tim/CommentView,guid,fa16c54e-8da8-44bd-8ac3-1efeb84cd15f.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.thesitedoctor.co.uk/tim/SyndicationService.asmx/GetEntryCommentsRss?guid=fa16c54e-8da8-44bd-8ac3-1efeb84cd15f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
You may have come across this error once or twice while deploying your project if
you develop using Web Deployment Projects. It's usually caused when you copy and paste
a page and forget to update both the page declaration and code behind file.
</p>
        <h2>But the website builds!?!
</h2>
        <p>
You don't usually get the ILMerge error until you build the web deployment project
because when you build a website directly, it doesn't compile all the code into a
single assembly so the class names are seen as different. Part of the web deployment
process is to compile all the websites code into a single assembly hence the duplicate
references.
</p>
        <h2>What's the solution?
</h2>
        <p>
It's surprisingly simple, all you need to do is open up the offending aspx and aspx.cs
files and update two lines:
</p>
        <p>
1. In the code behind file, rename the partial class. By default Visual Studio will
name the class FolderName_Pagename which should result in a unique name
</p>
        <p>
2. The page declaration (first line of the page) in the aspx file. You have to make
sure that both the Inherits attribute and CodeBehind reference are correct.
</p>
        <p>
Tip: To avoid confusing yourself, open the files independently using the solution
browser because if you open the aspx and press F7 to switch to the code behind file
before updating the page declaration, you'll end up editing the page you copied rather
than the copy. 
</p>
        <img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/tim/aggbug.ashx?id=fa16c54e-8da8-44bd-8ac3-1efeb84cd15f" />
      </body>
      <title>Error 11: An error occurred when merging assemblies: ILMerge.Merge: ERROR!!: Duplicate type 'xyz' found in assembly 'App_Web_rh2sxhkc'. aspnet_merge</title>
      <guid isPermaLink="false">http://blogs.thesitedoctor.co.uk/tim/PermaLink,guid,fa16c54e-8da8-44bd-8ac3-1efeb84cd15f.aspx</guid>
      <link>http://blogs.thesitedoctor.co.uk/tim/2010/04/18/Error+11+An+Error+Occurred+When+Merging+Assemblies+ILMergeMerge+ERROR+Duplicate+Type+Xyz+Found+In+Assembly+AppWebrh2sxhkc+Aspnetmerge.aspx</link>
      <pubDate>Sun, 18 Apr 2010 11:47:20 GMT</pubDate>
      <description>&lt;p&gt;
You may have come across this error once or twice while deploying your project if
you develop using Web Deployment Projects. It's usually caused when you copy and paste
a page and forget to update both the page declaration and code behind file.
&lt;/p&gt;
&lt;h2&gt;But the website builds!?!
&lt;/h2&gt;
&lt;p&gt;
You don't usually get the ILMerge error until you build the web deployment project
because when you build a website directly, it doesn't compile all the code into a
single assembly so the class names are seen as different. Part of the web deployment
process is to compile all the websites code into a single assembly hence the duplicate
references.
&lt;/p&gt;
&lt;h2&gt;What's the solution?
&lt;/h2&gt;
&lt;p&gt;
It's surprisingly simple, all you need to do is open up the offending aspx and aspx.cs
files and update two lines:
&lt;/p&gt;
&lt;p&gt;
1. In the code behind file, rename the partial class. By default Visual Studio will
name the class FolderName_Pagename which should result in a unique name
&lt;/p&gt;
&lt;p&gt;
2. The page declaration (first line of the page) in the aspx file. You have to make
sure that both the Inherits attribute and CodeBehind reference are correct.
&lt;/p&gt;
&lt;p&gt;
Tip: To avoid confusing yourself, open the files independently using the solution
browser because if you open the aspx and press F7 to switch to the code behind file
before updating the page declaration, you'll end up editing the page you copied rather
than the copy. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/tim/aggbug.ashx?id=fa16c54e-8da8-44bd-8ac3-1efeb84cd15f" /&gt;</description>
      <comments>http://blogs.thesitedoctor.co.uk/tim/CommentView,guid,fa16c54e-8da8-44bd-8ac3-1efeb84cd15f.aspx</comments>
      <category>ASP.Net</category>
      <category>C#</category>
      <category>Software/Visual Studio</category>
      <category>Web Development</category>
    </item>
    <item>
      <trackback:ping>http://blogs.thesitedoctor.co.uk/tim/Trackback.aspx?guid=5ee53dd8-9ad4-4eb2-9771-80d90fa5b79a</trackback:ping>
      <pingback:server>http://blogs.thesitedoctor.co.uk/tim/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.thesitedoctor.co.uk/tim/PermaLink,guid,5ee53dd8-9ad4-4eb2-9771-80d90fa5b79a.aspx</pingback:target>
      <dc:creator>Tim</dc:creator>
      <wfw:comment>http://blogs.thesitedoctor.co.uk/tim/CommentView,guid,5ee53dd8-9ad4-4eb2-9771-80d90fa5b79a.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.thesitedoctor.co.uk/tim/SyndicationService.asmx/GetEntryCommentsRss?guid=5ee53dd8-9ad4-4eb2-9771-80d90fa5b79a</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A while ago I posted a quick one question questionnaire to gauge how much people were
charging for the "average" Umbraco install. This was partially to settle an internal
debate but also for an post I've not had time to post yet so in the meantime I'll
post the results.
</p>
        <p>
Having a quick look at the results you'll see that 64% of the people that answered
(around 100) charge £2,500 or less for a "standard" install with a whopping 96% of
people charging less than £10,000. I'll explain how this can be used for pricing your
Umbraco packages soon!
</p>
        <span id="preserve2064e043928a44f99bab180a9d52b3fa" class="wlWriterPreserve">
          <script src="http://spreadsheets.google.com/gpub?url=http%3A%2F%2Fi333u1dvihprfqnlo1om7p0tagd98dfc.spreadsheets.gmodules.com%2Fgadgets%2Fifr%3Fup__table_query_url%3Dhttp%253A%252F%252Fspreadsheets.google.com%252Ftq%253Frange%253DA1%25253AB4%2526headers%253D0%2526key%253D0AluIiYWH3c9tdDkzWGZVVTBXZ0tmbkRlLUdPeWItb1E%2526gid%253D1%2526pub%253D1%26up__table_query_refresh_interval%3D0%26up__tq_orientation%3Dc%26up_ct%3DDoughnut3D%26up_c%3D%26up_sc%3D%26up_bani%3D1%26up_bvon%3D1%26up_blon%3D1%26up_bton%3D1%26up_bsap%3D1%26up_bspt%3D1%26up_bsl%3D1%26up__pr%3D%26up__psd%3Dnull%26up_pfx%3D%26up_sfx%3D%26up_bfn%3D0%26up_bsv%3D0%26up_d%3D0%26up__ptc%3Dnull%26up_f%3DVerdana%26up_fs%3D9%26up_setsl%3D0%26url%3Dhttp%253A%252F%252Ffusioncharts.googlecode.com%252Fsvn%252Ftrunk%252FFusionChartsPie.xml&amp;height=345&amp;width=592">
          </script>
          <div style="padding-bottom: 0px !important; padding-left: 0px !important; width: 592px !important; padding-right: 0px !important; padding-top: 0px !important">
            <iframe style="border-bottom: #bbb 1px solid; border-left: #bbb 1px solid; border-top: #bbb 1px solid; border-right: #bbb 1px solid" height="345" marginheight="0" src="http://i333u1dvihprfqnlo1om7p0tagd98dfc.spreadsheets.gmodules.com/gadgets/ifr?up__table_query_url=http%3A%2F%2Fspreadsheets.google.com%2Ftq%3Frange%3DA1%253AB4%26headers%3D0%26key%3D0AluIiYWH3c9tdDkzWGZVVTBXZ0tmbkRlLUdPeWItb1E%26gid%3D1%26pub%3D1&amp;up__table_query_refresh_interval=0&amp;up__tq_orientation=c&amp;up_ct=Doughnut3D&amp;up_c&amp;up_sc&amp;up_bani=1&amp;up_bvon=1&amp;up_blon=1&amp;up_bton=1&amp;up_bsap=1&amp;up_bspt=1&amp;up_bsl=1&amp;up__pr&amp;up__psd=null&amp;up_pfx&amp;up_sfx&amp;up_bfn=0&amp;up_bsv=0&amp;up_d=0&amp;up__ptc=null&amp;up_f=Verdana&amp;up_fs=9&amp;up_setsl=0&amp;url=http%3A%2F%2Ffusioncharts.googlecode.com%2Fsvn%2Ftrunk%2FFusionChartsPie.xml" frameborder="no" width="592" marginwidth="0" scrolling="no">
            </iframe>
            <div style="text-align: right !important; background-color: #fff !important; width: 594px !important">
              <a style="border-bottom-style: none !important; padding-bottom: 0px !important; border-right-style: none !important; padding-left: 0px !important; padding-right: 0px !important; border-top-style: none !important; border-left-style: none !important; text-decoration: none !important; padding-top: 0px !important" href="http://docs.google.com/support/bin/answer.py?answer=99488&amp;topic=15165" target="_blank">
                <img style="padding-bottom: 0px !important; border-right-width: 0px; margin: 0px; padding-left: 0px !important; padding-right: 0px !important; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px !important" alt="" src="http://www.google.com/images/spreadsheets/gadgets/smallLogo.gif" />
              </a>
            </div>
          </div>
        </span>
        <img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/tim/aggbug.ashx?id=5ee53dd8-9ad4-4eb2-9771-80d90fa5b79a" />
      </body>
      <title>The Umbraco 1 question questionnaire results</title>
      <guid isPermaLink="false">http://blogs.thesitedoctor.co.uk/tim/PermaLink,guid,5ee53dd8-9ad4-4eb2-9771-80d90fa5b79a.aspx</guid>
      <link>http://blogs.thesitedoctor.co.uk/tim/2010/04/14/The+Umbraco+1+Question+Questionnaire+Results.aspx</link>
      <pubDate>Wed, 14 Apr 2010 18:18:47 GMT</pubDate>
      <description>&lt;p&gt;
A while ago I posted a quick one question questionnaire to gauge how much people were
charging for the "average" Umbraco install. This was partially to settle an internal
debate but also for an post I've not had time to post yet so in the meantime I'll
post the results.
&lt;/p&gt;
&lt;p&gt;
Having a quick look at the results you'll see that 64% of the people that answered
(around 100) charge £2,500 or less for a "standard" install with a whopping 96% of
people charging less than £10,000. I'll explain how this can be used for pricing your
Umbraco packages soon!
&lt;/p&gt;
&lt;span id="preserve2064e043928a44f99bab180a9d52b3fa" class="wlWriterPreserve"&gt;&lt;script src="http://spreadsheets.google.com/gpub?url=http%3A%2F%2Fi333u1dvihprfqnlo1om7p0tagd98dfc.spreadsheets.gmodules.com%2Fgadgets%2Fifr%3Fup__table_query_url%3Dhttp%253A%252F%252Fspreadsheets.google.com%252Ftq%253Frange%253DA1%25253AB4%2526headers%253D0%2526key%253D0AluIiYWH3c9tdDkzWGZVVTBXZ0tmbkRlLUdPeWItb1E%2526gid%253D1%2526pub%253D1%26up__table_query_refresh_interval%3D0%26up__tq_orientation%3Dc%26up_ct%3DDoughnut3D%26up_c%3D%26up_sc%3D%26up_bani%3D1%26up_bvon%3D1%26up_blon%3D1%26up_bton%3D1%26up_bsap%3D1%26up_bspt%3D1%26up_bsl%3D1%26up__pr%3D%26up__psd%3Dnull%26up_pfx%3D%26up_sfx%3D%26up_bfn%3D0%26up_bsv%3D0%26up_d%3D0%26up__ptc%3Dnull%26up_f%3DVerdana%26up_fs%3D9%26up_setsl%3D0%26url%3Dhttp%253A%252F%252Ffusioncharts.googlecode.com%252Fsvn%252Ftrunk%252FFusionChartsPie.xml&amp;amp;height=345&amp;amp;width=592"&gt;&lt;/script&gt;
&lt;div style="padding-bottom: 0px !important; padding-left: 0px !important; width: 592px !important; padding-right: 0px !important; padding-top: 0px !important"&gt;
&lt;iframe style="border-bottom: #bbb 1px solid; border-left: #bbb 1px solid; border-top: #bbb 1px solid; border-right: #bbb 1px solid" height="345" marginheight="0" src="http://i333u1dvihprfqnlo1om7p0tagd98dfc.spreadsheets.gmodules.com/gadgets/ifr?up__table_query_url=http%3A%2F%2Fspreadsheets.google.com%2Ftq%3Frange%3DA1%253AB4%26headers%3D0%26key%3D0AluIiYWH3c9tdDkzWGZVVTBXZ0tmbkRlLUdPeWItb1E%26gid%3D1%26pub%3D1&amp;amp;up__table_query_refresh_interval=0&amp;amp;up__tq_orientation=c&amp;amp;up_ct=Doughnut3D&amp;amp;up_c&amp;amp;up_sc&amp;amp;up_bani=1&amp;amp;up_bvon=1&amp;amp;up_blon=1&amp;amp;up_bton=1&amp;amp;up_bsap=1&amp;amp;up_bspt=1&amp;amp;up_bsl=1&amp;amp;up__pr&amp;amp;up__psd=null&amp;amp;up_pfx&amp;amp;up_sfx&amp;amp;up_bfn=0&amp;amp;up_bsv=0&amp;amp;up_d=0&amp;amp;up__ptc=null&amp;amp;up_f=Verdana&amp;amp;up_fs=9&amp;amp;up_setsl=0&amp;amp;url=http%3A%2F%2Ffusioncharts.googlecode.com%2Fsvn%2Ftrunk%2FFusionChartsPie.xml" frameborder="no" width="592" marginwidth="0" scrolling="no"&gt;
&lt;/iframe&gt;
&lt;div style="text-align: right !important; background-color: #fff !important; width: 594px !important"&gt;&lt;a style="border-bottom-style: none !important; padding-bottom: 0px !important; border-right-style: none !important; padding-left: 0px !important; padding-right: 0px !important; border-top-style: none !important; border-left-style: none !important; text-decoration: none !important; padding-top: 0px !important" href="http://docs.google.com/support/bin/answer.py?answer=99488&amp;amp;topic=15165" target="_blank"&gt;&lt;img style="padding-bottom: 0px !important; border-right-width: 0px; margin: 0px; padding-left: 0px !important; padding-right: 0px !important; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px !important" alt="" src="http://www.google.com/images/spreadsheets/gadgets/smallLogo.gif" /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/span&gt;&lt;img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/tim/aggbug.ashx?id=5ee53dd8-9ad4-4eb2-9771-80d90fa5b79a" /&gt;</description>
      <comments>http://blogs.thesitedoctor.co.uk/tim/CommentView,guid,5ee53dd8-9ad4-4eb2-9771-80d90fa5b79a.aspx</comments>
      <category>Business</category>
      <category>Umbraco</category>
    </item>
    <item>
      <trackback:ping>http://blogs.thesitedoctor.co.uk/tim/Trackback.aspx?guid=d4042ffa-0131-44e3-8058-949207fdddb2</trackback:ping>
      <pingback:server>http://blogs.thesitedoctor.co.uk/tim/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.thesitedoctor.co.uk/tim/PermaLink,guid,d4042ffa-0131-44e3-8058-949207fdddb2.aspx</pingback:target>
      <dc:creator>Tim</dc:creator>
      <wfw:comment>http://blogs.thesitedoctor.co.uk/tim/CommentView,guid,d4042ffa-0131-44e3-8058-949207fdddb2.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.thesitedoctor.co.uk/tim/SyndicationService.asmx/GetEntryCommentsRss?guid=d4042ffa-0131-44e3-8058-949207fdddb2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://blogs.thesitedoctor.co.uk/tim/content/binary/WindowsLiveWriter/NewTwitterSEOspamscam_1225D/twitter-scam%5B1%5D_2.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="twitter-scam[1]" border="0" alt="twitter-scam[1]" align="right" src="http://blogs.thesitedoctor.co.uk/tim/content/binary/WindowsLiveWriter/NewTwitterSEOspamscam_1225D/twitter-scam%5B1%5D_thumb.jpg" width="154" height="117" />
          </a> I
came across a really interesting method of spamming Twitter on Friday, presumably
for SEO benefits but it was intriguing so I thought I'd share. I came across it on
a Twitter account that was setup under one of our client's name: <a href="http://twitter.com/RomanOriginals" target="_blank">@RomanOriginals</a>. 
</p>
        <p>
We're currently in the process of claiming it from the spammer so here's a screenshot
of how it looked when we found it:
</p>
        <p>
 <a href="http://blogs.thesitedoctor.co.uk/tim/content/binary/WindowsLiveWriter/NewTwitterSEOspamscam_1225D/RomanOriginalsTwitterScam%5B1%5D_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="RomanOriginalsTwitterScam[1]" border="0" alt="RomanOriginalsTwitterScam[1]" src="http://blogs.thesitedoctor.co.uk/tim/content/binary/WindowsLiveWriter/NewTwitterSEOspamscam_1225D/RomanOriginalsTwitterScam%5B1%5D_thumb.png" width="244" height="235" /></a></p>
        <h2>So what's the scam and why's it interesting? 
</h2>
        <p>
From what we can see, winslim.com has signed up to one of our client's regular email
shots and is harvesting links from it. When an email goes out, they then tweet the
subject line (this is usually less than 140 chars), "shorten" your url and throw it
onto a twitter stream registered under the company's feed.
</p>
        <p>
Although it appears to be a standard URL shortening service, if you look at the request/responses
using Fiddler you will see that each one of the winslim.com links e.g. www .winslim.com/3CShT4H
(I've popped a space in there to stop it linking to them) kicks the user over to a
winslim.com product promotion page (winslim.com/winslim/SweetDeals/SweetDeals.jsp?d=d)
which then redirects the user to the original url! 
</p>
        <p>
Although unscrupelous, I still think this is a very clever method and suspect we'll
see more spammers doing it shortly so if you've not already registered your company's
official Twitter username, it's worth doing it now!
</p>
        <img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/tim/aggbug.ashx?id=d4042ffa-0131-44e3-8058-949207fdddb2" />
      </body>
      <title>New Twitter SEO spam scam -protect your twitter name even if you don’t want to use it</title>
      <guid isPermaLink="false">http://blogs.thesitedoctor.co.uk/tim/PermaLink,guid,d4042ffa-0131-44e3-8058-949207fdddb2.aspx</guid>
      <link>http://blogs.thesitedoctor.co.uk/tim/2010/03/24/New+Twitter+SEO+Spam+Scam+Protect+Your+Twitter+Name+Even+If+You+Dont+Want+To+Use+It.aspx</link>
      <pubDate>Wed, 24 Mar 2010 08:43:54 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blogs.thesitedoctor.co.uk/tim/content/binary/WindowsLiveWriter/NewTwitterSEOspamscam_1225D/twitter-scam%5B1%5D_2.jpg"&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="twitter-scam[1]" border="0" alt="twitter-scam[1]" align="right" src="http://blogs.thesitedoctor.co.uk/tim/content/binary/WindowsLiveWriter/NewTwitterSEOspamscam_1225D/twitter-scam%5B1%5D_thumb.jpg" width="154" height="117" /&gt;&lt;/a&gt; I
came across a really interesting method of spamming Twitter on Friday, presumably
for SEO benefits but it was intriguing so I thought I'd share. I came across it on
a Twitter account that was setup under one of our client's name: &lt;a href="http://twitter.com/RomanOriginals" target="_blank"&gt;@RomanOriginals&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
We're currently in the process of claiming it from the spammer so here's a screenshot
of how it looked when we found it:
&lt;/p&gt;
&lt;p&gt;
&amp;#160;&lt;a href="http://blogs.thesitedoctor.co.uk/tim/content/binary/WindowsLiveWriter/NewTwitterSEOspamscam_1225D/RomanOriginalsTwitterScam%5B1%5D_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="RomanOriginalsTwitterScam[1]" border="0" alt="RomanOriginalsTwitterScam[1]" src="http://blogs.thesitedoctor.co.uk/tim/content/binary/WindowsLiveWriter/NewTwitterSEOspamscam_1225D/RomanOriginalsTwitterScam%5B1%5D_thumb.png" width="244" height="235" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;h2&gt;So what's the scam and why's it interesting? 
&lt;/h2&gt;
&lt;p&gt;
From what we can see, winslim.com has signed up to one of our client's regular email
shots and is harvesting links from it. When an email goes out, they then tweet the
subject line (this is usually less than 140 chars), "shorten" your url and throw it
onto a twitter stream registered under the company's feed.
&lt;/p&gt;
&lt;p&gt;
Although it appears to be a standard URL shortening service, if you look at the request/responses
using Fiddler you will see that each one of the winslim.com links e.g. www .winslim.com/3CShT4H
(I've popped a space in there to stop it linking to them) kicks the user over to a
winslim.com product promotion page (winslim.com/winslim/SweetDeals/SweetDeals.jsp?d=d)
which then redirects the user to the original url! 
&lt;/p&gt;
&lt;p&gt;
Although unscrupelous, I still think this is a very clever method and suspect we'll
see more spammers doing it shortly so if you've not already registered your company's
official Twitter username, it's worth doing it now!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/tim/aggbug.ashx?id=d4042ffa-0131-44e3-8058-949207fdddb2" /&gt;</description>
      <comments>http://blogs.thesitedoctor.co.uk/tim/CommentView,guid,d4042ffa-0131-44e3-8058-949207fdddb2.aspx</comments>
      <category>Business</category>
      <category>Business/Client</category>
      <category>Social Media</category>
      <category>Social Networking</category>
      <category>Twitter</category>
    </item>
    <item>
      <trackback:ping>http://blogs.thesitedoctor.co.uk/tim/Trackback.aspx?guid=07139039-07ca-4b5a-8cc7-c9a9f62f9a32</trackback:ping>
      <pingback:server>http://blogs.thesitedoctor.co.uk/tim/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.thesitedoctor.co.uk/tim/PermaLink,guid,07139039-07ca-4b5a-8cc7-c9a9f62f9a32.aspx</pingback:target>
      <dc:creator>Tim</dc:creator>
      <wfw:comment>http://blogs.thesitedoctor.co.uk/tim/CommentView,guid,07139039-07ca-4b5a-8cc7-c9a9f62f9a32.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.thesitedoctor.co.uk/tim/SyndicationService.asmx/GetEntryCommentsRss?guid=07139039-07ca-4b5a-8cc7-c9a9f62f9a32</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Ever wanted to be able to collapse all items within Visual Studio's solution window?
This is a nifty little Visual Studio macro that I came across a few years ago and
have been using successfully in Visual Studio 2005, Visual Studio 2008 and now in
the Visual Studio 2010 RC.
</p>
        <p>
I'll overview how to install it below in case you're unsure how to do it but I have
this bound to the key combination Ctrl+Shift+` as ReSharper now uses my previous key
combination of Ctrl+` for it's new bookmark explorer.
</p>
        <p>
Anyway, here's the Visual Studio Solution Explorer item Collapse All macro:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:509f3fe6-631a-4dea-9434-fbeaed4328bf" class="wlWriterEditableSmartContent">
          <pre class="brush: vb">Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics
'-----------------------------------------------------------
' CollapseAll Module
'-----------------------------------------------------------
' Simple macro that fully collapses all items in the 
' Solution Explorer rather than just the top level node
'
' To make live easier, bind it to a keyboard setting such
' as Ctrl+Shift+` which by default has no bindings (Ctrl+` is
' now used by Resharper
'
' Tested and works with:
' Visual Studio 2005
' Visual Studio 2008
' Visual Studio 2010
'
' Originally from: http://bit.ly/bmRu3W
'-----------------------------------------------------------
Public Module CollapseAll

    Sub CollapseTree()
        ' Get the the Solution Explorer tree
        Dim solutionExplorer As UIHierarchy
        solutionExplorer = DTE.Windows.Item(Constants.vsext_wk_SProjectWindow).Object()

        ' Check if there is any open solution
        If (solutionExplorer.UIHierarchyItems.Count = 0) Then
            Return
        End If

        ' Get the top node (the name of the solution)
        Dim rootNode As UIHierarchyItem = solutionExplorer.UIHierarchyItems.Item(1)
        rootNode.DTE.SuppressUI = True

        ' Collapse each project node
        Collapse(rootNode, solutionExplorer)

        ' Select the solution node, or else when you click 
        ' on the solution window
        ' scrollbar, it will synchronize the open document 
        ' with the tree and pop
        ' out the corresponding node which is probably not what you want.
        rootNode.Select(vsUISelectionType.vsUISelectionTypeSelect)
        rootNode.DTE.SuppressUI = False
    End Sub

    Private Sub Collapse(ByVal item As UIHierarchyItem, ByRef solutionExplorer As UIHierarchy)
        For Each innerItem As UIHierarchyItem In item.UIHierarchyItems
            If innerItem.UIHierarchyItems.Count &gt; 0 Then
                ' Re-cursive call
                Collapse(innerItem, solutionExplorer)
                ' Collapse
                If innerItem.UIHierarchyItems.Expanded Then
                    innerItem.UIHierarchyItems.Expanded = False
                    If innerItem.UIHierarchyItems.Expanded = True Then
                        ' Bug in VS 2005
                        innerItem.Select(vsUISelectionType.vsUISelectionTypeSelect)
                        solutionExplorer.DoDefaultAction()
                    End If
                End If

            End If
        Next
    End Sub
End Module</pre>
        </div>
        <p>
 
</p>
        <p>
In case you've never installed a Visual Studio macro before, here's a couple of instructions:
</p>
        <ol>
          <li>
In Visual Studio, press Alt+F11 to load up the Visual Studio Macro editor (or View
&gt; Other Windows &gt; Macro Explorer &gt; Double Click on "Module1" in "My Macros")</li>
          <li>
Either create a new module of it it's not in use, you can edit Module1 and past in
the code above</li>
          <li>
Save and close the Visual Studio Macro editor</li>
          <li>
You should be back in Visual Studio so click "Tools &gt; Options &gt; Environment
&gt; Keyboard"</li>
          <li>
In the "Show commands containing" text box, enter "CollapseTree" and the macro you
just created should be shown.</li>
          <li>
Make sure "Global" is selected in the "Use new shortcut in:" drop down list</li>
          <li>
Press Ctrl+Shift+` in the "Press shortcut keys:" text box</li>
          <li>
Click Assign</li>
          <li>
Click OK</li>
        </ol>
        <p>
You're done :)
</p>
        <img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/tim/aggbug.ashx?id=07139039-07ca-4b5a-8cc7-c9a9f62f9a32" />
      </body>
      <title>Collapse all Solution Explorer items in Visual Studio 2010</title>
      <guid isPermaLink="false">http://blogs.thesitedoctor.co.uk/tim/PermaLink,guid,07139039-07ca-4b5a-8cc7-c9a9f62f9a32.aspx</guid>
      <link>http://blogs.thesitedoctor.co.uk/tim/2010/02/27/Collapse+All+Solution+Explorer+Items+In+Visual+Studio+2010.aspx</link>
      <pubDate>Sat, 27 Feb 2010 12:22:48 GMT</pubDate>
      <description>&lt;p&gt;
Ever wanted to be able to collapse all items within Visual Studio's solution window?
This is a nifty little Visual Studio macro that I came across a few years ago and
have been using successfully in Visual Studio 2005, Visual Studio 2008 and now in
the Visual Studio 2010 RC.
&lt;/p&gt;
&lt;p&gt;
I'll overview how to install it below in case you're unsure how to do it but I have
this bound to the key combination Ctrl+Shift+` as ReSharper now uses my previous key
combination of Ctrl+` for it's new bookmark explorer.
&lt;/p&gt;
&lt;p&gt;
Anyway, here's the Visual Studio Solution Explorer item Collapse All macro:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:509f3fe6-631a-4dea-9434-fbeaed4328bf" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: vb"&gt;Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics
'-----------------------------------------------------------
' CollapseAll Module
'-----------------------------------------------------------
' Simple macro that fully collapses all items in the 
' Solution Explorer rather than just the top level node
'
' To make live easier, bind it to a keyboard setting such
' as Ctrl+Shift+` which by default has no bindings (Ctrl+` is
' now used by Resharper
'
' Tested and works with:
' Visual Studio 2005
' Visual Studio 2008
' Visual Studio 2010
'
' Originally from: http://bit.ly/bmRu3W
'-----------------------------------------------------------
Public Module CollapseAll

    Sub CollapseTree()
        ' Get the the Solution Explorer tree
        Dim solutionExplorer As UIHierarchy
        solutionExplorer = DTE.Windows.Item(Constants.vsext_wk_SProjectWindow).Object()

        ' Check if there is any open solution
        If (solutionExplorer.UIHierarchyItems.Count = 0) Then
            Return
        End If

        ' Get the top node (the name of the solution)
        Dim rootNode As UIHierarchyItem = solutionExplorer.UIHierarchyItems.Item(1)
        rootNode.DTE.SuppressUI = True

        ' Collapse each project node
        Collapse(rootNode, solutionExplorer)

        ' Select the solution node, or else when you click 
        ' on the solution window
        ' scrollbar, it will synchronize the open document 
        ' with the tree and pop
        ' out the corresponding node which is probably not what you want.
        rootNode.Select(vsUISelectionType.vsUISelectionTypeSelect)
        rootNode.DTE.SuppressUI = False
    End Sub

    Private Sub Collapse(ByVal item As UIHierarchyItem, ByRef solutionExplorer As UIHierarchy)
        For Each innerItem As UIHierarchyItem In item.UIHierarchyItems
            If innerItem.UIHierarchyItems.Count &amp;gt; 0 Then
                ' Re-cursive call
                Collapse(innerItem, solutionExplorer)
                ' Collapse
                If innerItem.UIHierarchyItems.Expanded Then
                    innerItem.UIHierarchyItems.Expanded = False
                    If innerItem.UIHierarchyItems.Expanded = True Then
                        ' Bug in VS 2005
                        innerItem.Select(vsUISelectionType.vsUISelectionTypeSelect)
                        solutionExplorer.DoDefaultAction()
                    End If
                End If

            End If
        Next
    End Sub
End Module&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
In case you've never installed a Visual Studio macro before, here's a couple of instructions:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
In Visual Studio, press Alt+F11 to load up the Visual Studio Macro editor (or View
&amp;gt; Other Windows &amp;gt; Macro Explorer &amp;gt; Double Click on "Module1" in "My Macros")&lt;/li&gt;
&lt;li&gt;
Either create a new module of it it's not in use, you can edit Module1 and past in
the code above&lt;/li&gt;
&lt;li&gt;
Save and close the Visual Studio Macro editor&lt;/li&gt;
&lt;li&gt;
You should be back in Visual Studio so click "Tools &amp;gt; Options &amp;gt; Environment
&amp;gt; Keyboard"&lt;/li&gt;
&lt;li&gt;
In the "Show commands containing" text box, enter "CollapseTree" and the macro you
just created should be shown.&lt;/li&gt;
&lt;li&gt;
Make sure "Global" is selected in the "Use new shortcut in:" drop down list&lt;/li&gt;
&lt;li&gt;
Press Ctrl+Shift+` in the "Press shortcut keys:" text box&lt;/li&gt;
&lt;li&gt;
Click Assign&lt;/li&gt;
&lt;li&gt;
Click OK&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
You're done :)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/tim/aggbug.ashx?id=07139039-07ca-4b5a-8cc7-c9a9f62f9a32" /&gt;</description>
      <comments>http://blogs.thesitedoctor.co.uk/tim/CommentView,guid,07139039-07ca-4b5a-8cc7-c9a9f62f9a32.aspx</comments>
      <category>Development</category>
      <category>Productivity</category>
      <category>Software/Visual Studio</category>
    </item>
    <item>
      <trackback:ping>http://blogs.thesitedoctor.co.uk/tim/Trackback.aspx?guid=cf028a1d-0399-4388-82ad-dacfa9a673c2</trackback:ping>
      <pingback:server>http://blogs.thesitedoctor.co.uk/tim/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.thesitedoctor.co.uk/tim/PermaLink,guid,cf028a1d-0399-4388-82ad-dacfa9a673c2.aspx</pingback:target>
      <dc:creator>Tim</dc:creator>
      <wfw:comment>http://blogs.thesitedoctor.co.uk/tim/CommentView,guid,cf028a1d-0399-4388-82ad-dacfa9a673c2.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.thesitedoctor.co.uk/tim/SyndicationService.asmx/GetEntryCommentsRss?guid=cf028a1d-0399-4388-82ad-dacfa9a673c2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
As some of my blog posts are a little out of date, I thought I would spend some time
updating the most popular ones. As I use this script on a regular basis and there
was an error with the original posting, I thought I'd update it with a "corrected"
version to get things started.
</p>
        <p>
If you want to see the original script, you can refer to <a href="http://blogs.thesitedoctor.co.uk/tim/2007/11/02/How+To+Search+Every+Table+And+Field+In+A+SQL+Server+Database.aspx">How
to search every table and field in a SQL Server Database</a>. This one's just fixed
:)
</p>
        <pre class="brush: sql;" name="code">CREATE PROC SearchAllTables
(
    @SearchStr nvarchar(100)
)
AS

BEGIN
DECLARE @SearchStr nvarchar(100)
SET @SearchStr = 'test'
    -- Copyright © 2002 Narayana Vyas Kondreddi. All rights reserved.
    -- Purpose: To search all columns of all tables for a given search string
    -- Written by: Narayana Vyas Kondreddi
    -- Site: http://vyaskn.tripod.com
    -- Tested on: SQL Server 7.0 and SQL Server 2000
    -- Date modified: 28th July 2002 22:50 GMT
    CREATE TABLE #Results (ColumnName nvarchar(370), ColumnValue nvarchar(3630))

    SET NOCOUNT ON

    DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
    SET  @TableName = ''
    SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')

    WHILE @TableName IS NOT NULL
    
    BEGIN
        SET @ColumnName = ''
        SET @TableName = 
        (
            SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
            FROM     INFORMATION_SCHEMA.TABLES
            WHERE         TABLE_TYPE = 'BASE TABLE'
                AND    QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) &gt; @TableName
                AND    OBJECTPROPERTY(
                        OBJECT_ID(
                            QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
                             ), 'IsMSShipped'
                               ) = 0
        )

        WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
            
        BEGIN
            SET @ColumnName =
            (
                SELECT MIN(QUOTENAME(COLUMN_NAME))
                FROM     INFORMATION_SCHEMA.COLUMNS
                WHERE         TABLE_SCHEMA    = PARSENAME(@TableName, 2)
                    AND    TABLE_NAME    = PARSENAME(@TableName, 1)
                    AND    DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar', 'int', 'decimal')
                    AND    QUOTENAME(COLUMN_NAME) &gt; @ColumnName
            )
    
            IF @ColumnName IS NOT NULL
            
            BEGIN
                INSERT INTO #Results
                EXEC
                (
                    'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630) FROM ' + @TableName + ' (NOLOCK) ' +
                    ' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
                )
            END
        END    
    END

    SELECT ColumnName, ColumnValue FROM #Results
END

DROP TABLE #Results</pre>
        <img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/tim/aggbug.ashx?id=cf028a1d-0399-4388-82ad-dacfa9a673c2" />
      </body>
      <title>Search every table and field in a SQL Server Database Updated</title>
      <guid isPermaLink="false">http://blogs.thesitedoctor.co.uk/tim/PermaLink,guid,cf028a1d-0399-4388-82ad-dacfa9a673c2.aspx</guid>
      <link>http://blogs.thesitedoctor.co.uk/tim/2010/02/19/Search+Every+Table+And+Field+In+A+SQL+Server+Database+Updated.aspx</link>
      <pubDate>Fri, 19 Feb 2010 12:07:28 GMT</pubDate>
      <description>&lt;p&gt;
As some of my blog posts are a little out of date, I thought I would spend some time
updating the most popular ones. As I use this script on a regular basis and there
was an error with the original posting, I thought I'd update it with a &amp;quot;corrected&amp;quot;
version to get things started.
&lt;/p&gt;
&lt;p&gt;
If you want to see the original script, you can refer to &lt;a href="http://blogs.thesitedoctor.co.uk/tim/2007/11/02/How+To+Search+Every+Table+And+Field+In+A+SQL+Server+Database.aspx"&gt;How
to search every table and field in a SQL Server Database&lt;/a&gt;. This one's just fixed
:)
&lt;/p&gt;
&lt;pre class="brush: sql;" name="code"&gt;CREATE PROC SearchAllTables
(
    @SearchStr nvarchar(100)
)
AS

BEGIN
DECLARE @SearchStr nvarchar(100)
SET @SearchStr = 'test'
    -- Copyright © 2002 Narayana Vyas Kondreddi. All rights reserved.
    -- Purpose: To search all columns of all tables for a given search string
    -- Written by: Narayana Vyas Kondreddi
    -- Site: http://vyaskn.tripod.com
    -- Tested on: SQL Server 7.0 and SQL Server 2000
    -- Date modified: 28th July 2002 22:50 GMT
    CREATE TABLE #Results (ColumnName nvarchar(370), ColumnValue nvarchar(3630))

    SET NOCOUNT ON

    DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
    SET  @TableName = ''
    SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')

    WHILE @TableName IS NOT NULL
    
    BEGIN
        SET @ColumnName = ''
        SET @TableName = 
        (
            SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
            FROM     INFORMATION_SCHEMA.TABLES
            WHERE         TABLE_TYPE = 'BASE TABLE'
                AND    QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) &amp;gt; @TableName
                AND    OBJECTPROPERTY(
                        OBJECT_ID(
                            QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
                             ), 'IsMSShipped'
                               ) = 0
        )

        WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
            
        BEGIN
            SET @ColumnName =
            (
                SELECT MIN(QUOTENAME(COLUMN_NAME))
                FROM     INFORMATION_SCHEMA.COLUMNS
                WHERE         TABLE_SCHEMA    = PARSENAME(@TableName, 2)
                    AND    TABLE_NAME    = PARSENAME(@TableName, 1)
                    AND    DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar', 'int', 'decimal')
                    AND    QUOTENAME(COLUMN_NAME) &amp;gt; @ColumnName
            )
    
            IF @ColumnName IS NOT NULL
            
            BEGIN
                INSERT INTO #Results
                EXEC
                (
                    'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630) FROM ' + @TableName + ' (NOLOCK) ' +
                    ' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
                )
            END
        END    
    END

    SELECT ColumnName, ColumnValue FROM #Results
END

DROP TABLE #Results&lt;/pre&gt;&lt;img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/tim/aggbug.ashx?id=cf028a1d-0399-4388-82ad-dacfa9a673c2" /&gt;</description>
      <comments>http://blogs.thesitedoctor.co.uk/tim/CommentView,guid,cf028a1d-0399-4388-82ad-dacfa9a673c2.aspx</comments>
      <category>SQL</category>
      <category>SQL Server</category>
      <category>Stored Procedure</category>
    </item>
    <item>
      <trackback:ping>http://blogs.thesitedoctor.co.uk/tim/Trackback.aspx?guid=409b9297-7d3e-4698-83cd-376d34bc553b</trackback:ping>
      <pingback:server>http://blogs.thesitedoctor.co.uk/tim/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.thesitedoctor.co.uk/tim/PermaLink,guid,409b9297-7d3e-4698-83cd-376d34bc553b.aspx</pingback:target>
      <dc:creator>Tim</dc:creator>
      <wfw:comment>http://blogs.thesitedoctor.co.uk/tim/CommentView,guid,409b9297-7d3e-4698-83cd-376d34bc553b.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.thesitedoctor.co.uk/tim/SyndicationService.asmx/GetEntryCommentsRss?guid=409b9297-7d3e-4698-83cd-376d34bc553b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
It's taken some time to get here and there's still more to add as I think this is
a pretty big topic but I thought I'd get started. I wanted to keep the session more
focused on the selling points of Umbraco and how people pitch Umbraco to the clients
than selling techniques which on the whole we managed to do.
</p>
        <p>
The first thing I stressed was that I wasn't going to teach you how to sell or selling
techniques as I've never found that hard selling works -though I'm not saying it doesn't,
I just prefer to educate the client into the most suitable solution (even if that
isn't us).
</p>
        <p>
There were a number of questions that were raised and I'll answer what I can here,
if you were at the session and I've missed something, please let me know and I'll
get it added:
</p>
        <ol>
          <li>
What are the key selling points of Umbraco 
</li>
          <li>
How do you pitch Umbraco 
</li>
          <li>
Do you tell clients it's open source (or use that as a sales point)? 
</li>
          <li>
How do you price Umbraco 
</li>
          <li>
Once you've won, what do you ask your client 
</li>
          <li>
How do you support Umbraco 
</li>
          <li>
How do you get around the question of "What happens if you get hit by a bus?" 
</li>
        </ol>
        <h2>What are the key selling points of Umbraco
</h2>
        <p>
A couple of the attendees came up with better 30second sales pitches so I'm sure they'll
post those up shortly but here's a few I remember:
</p>
        <ul>
          <li>
It's easy to use -you don't need any previous computer experience 
</li>
          <li>
You can edit any page's content yourself at any time 
</li>
          <li>
It's highly flexible and lightweight 
</li>
          <li>
It's search engine friendly 
</li>
          <li>
It's open source (this really can be a selling point at the right time) 
</li>
        </ul>
        <h2>Do you tell clients it's open source (or use that as a sales point)?
</h2>
        <p>
We do and we don't. Again it really comes down to who you're pitching Umbraco to.
Where the client has had issues with developers not releasing source etc then it's
clearly a selling point. 
</p>
        <p>
Generally we do tend to explain to clients that we will base their website on an open
source project that we then build on and customise further to suit their needs and
that by using best practice methodologies, any developer can in theory pick up the
system and continue to develop it (even if they have no experience of Umbraco).
</p>
        <h2>How do you price Umbraco
</h2>
        <p>
This question was asked in a couple of different ways throughout the session and it's
a topic in itself (see the article I wrote a while ago about pricing your work).
</p>
        <p>
If you look at Umbraco in the right way you'll see that it's actually rather easy
to price as there are a few components that you can sell either individually or together:
</p>
        <ul>
          <li>
Installation and configuration 
</li>
          <li>
Customisation 
</li>
          <li>
Hosting 
</li>
          <li>
Support 
</li>
        </ul>
        <p>
All you need to do is work out a minimum cost for each component and then that will
give you a core system cost. 
</p>
        <p>
Once you have your core Umbraco costs (don't forget to factor in your license costs)
you can then alter the costs accordingly for your client -and this has to be on a
case-by-case basis.  
</p>
        <h2>How do you pitch Umbraco
</h2>
        <p>
This is easy, there are so many selling points to Umbraco that regardless of what
the client is looking for, as long as it's CMS based, Umbraco will have some benefit
you can overview to the client.
</p>
        <p>
When pitching Umbraco, we have found educating the user as to the benefits and what
the client should be looking for in other systems. If you do this, then the majority
of the time, the rest of the competition falls by the wayside.
</p>
        <p>
If the client is a large corporate it's always worth mentioning that it offers much
of the functionality that SharePoint does but with little of the cost (or setup pain!).
</p>
        <h2>Once you've won the contract, what do you ask your client
</h2>
        <p>
The first thing to do is to get all the information you need to complete your contract
(or at least tell your client what you'll need and when). You should know what you'll
need already but we tend to ask for:
</p>
        <ul>
          <li>
Design inspiration (websites the client does and doesn't like -and why) 
</li>
          <li>
Logos and other source imagery 
</li>
          <li>
Text for the website (you'd be best to load the initial content during training but
get the client to think about it while you're developing or you'll never get there!) 
</li>
        </ul>
        <p>
Next, you'll need to make sure your paperwork is in order. Once you have agreed the
general premise of your contract, it's important that you confirm all deliverables
(what you'll be doing for the client) in a work order with the client. This avoids
an ambiguity on what you'll be delivering and when. This doesn't need to be pages
of text (though sometimes it needs to be) but avoids disagreements later.
</p>
        <p>
You should <strong>always</strong> request signed work order and deposit (we request
a minimum of 20% regardless of project spend) at a minimum before starting any work.
</p>
        <p>
Once you have the signed work order (you sign one for the client to keep and keep
one yourself), you can start thinking about the project. If it'll take longer than
a week to deliver, I recommend you provide the client with rough timescales, this
will have the added benefit of helping you focus your mind.
</p>
        <h2>How do you support Umbraco
</h2>
        <p>
This is something that Paul Sterling addressed through another session and if he doesn't
write up his notes I'll make a few notes in another post.
</p>
        <h2>How do you get around the question of "What happens if you get hit by a bus?"
</h2>
        <p>
Although this was asked a couple of times throughout the session, I avoided answering
it a little due to a conflict of interest. For the past few months we've been working
hard on a new system called <a title="Crisis Cover - Protecting your business against the unforeseen" href="http://www.crisiscover.co.uk/">Crisis
Cover</a> which has been designed to help you with this exact question.
</p>
        <p>
          <a title="Crisis Cover - Protecting your business against the unforeseen" href="http://www.crisiscover.co.uk/">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="apple-touch-icon[1]" border="0" alt="apple-touch-icon[1]" align="left" src="http://blogs.thesitedoctor.co.uk/tim/content/binary/WindowsLiveWriter/CodeGarden09OpenSpaceMinutesSpace1Howtos_130B7/apple-touch-icon%5B1%5D_c94f9aed-e4e5-4f09-b0d5-b691d2e1c62d.png" width="61" height="61" /> Crisis
Cover</a> monitors you to ensure that you're still around and if you don't respond
to a number of alerts, it will contact your clients informing there's something wrong. 
</p>
        <p>
I'll post more information about <a title="Crisis Cover - Protecting your business against the unforeseen" href="http://www.crisiscover.co.uk/">Crisis
Cover</a>, but if you're interested in getting involved with the beta, leave me your
email and I'll get one sent out.
</p>
        <h2>In Closing
</h2>
        <p>
There is a lot of information about selling and business in general in my previous
post "<a href="http://blogs.thesitedoctor.co.uk/tim/2007/01/29/Business+Startup+Advice.aspx">Business
start-up advice</a>" which if you're starting out, I really recommend you reading
as it should give you a really good start (and includes example Service Level Agreements,
Contracts and other useful documents).
</p>
        <img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/tim/aggbug.ashx?id=409b9297-7d3e-4698-83cd-376d34bc553b" />
      </body>
      <title>CodeGarden 09 Open Space Minutes - Space 1: How to sell Umbraco</title>
      <guid isPermaLink="false">http://blogs.thesitedoctor.co.uk/tim/PermaLink,guid,409b9297-7d3e-4698-83cd-376d34bc553b.aspx</guid>
      <link>http://blogs.thesitedoctor.co.uk/tim/2009/07/27/CodeGarden+09+Open+Space+Minutes+Space+1+How+To+Sell+Umbraco.aspx</link>
      <pubDate>Mon, 27 Jul 2009 21:53:28 GMT</pubDate>
      <description>&lt;p&gt;
It's taken some time to get here and there's still more to add as I think this is
a pretty big topic but I thought I'd get started. I wanted to keep the session more
focused on the selling points of Umbraco and how people pitch Umbraco to the clients
than selling techniques which on the whole we managed to do.
&lt;/p&gt;
&lt;p&gt;
The first thing I stressed was that I wasn't going to teach you how to sell or selling
techniques as I've never found that hard selling works -though I'm not saying it doesn't,
I just prefer to educate the client into the most suitable solution (even if that
isn't us).
&lt;/p&gt;
&lt;p&gt;
There were a number of questions that were raised and I'll answer what I can here,
if you were at the session and I've missed something, please let me know and I'll
get it added:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
What are the key selling points of Umbraco 
&lt;/li&gt;
&lt;li&gt;
How do you pitch Umbraco 
&lt;/li&gt;
&lt;li&gt;
Do you tell clients it's open source (or use that as a sales point)? 
&lt;/li&gt;
&lt;li&gt;
How do you price Umbraco 
&lt;/li&gt;
&lt;li&gt;
Once you've won, what do you ask your client 
&lt;/li&gt;
&lt;li&gt;
How do you support Umbraco 
&lt;/li&gt;
&lt;li&gt;
How do you get around the question of "What happens if you get hit by a bus?" 
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;What are the key selling points of Umbraco
&lt;/h2&gt;
&lt;p&gt;
A couple of the attendees came up with better 30second sales pitches so I'm sure they'll
post those up shortly but here's a few I remember:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
It's easy to use -you don't need any previous computer experience 
&lt;/li&gt;
&lt;li&gt;
You can edit any page's content yourself at any time 
&lt;/li&gt;
&lt;li&gt;
It's highly flexible and lightweight 
&lt;/li&gt;
&lt;li&gt;
It's search engine friendly 
&lt;/li&gt;
&lt;li&gt;
It's open source (this really can be a selling point at the right time) 
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Do you tell clients it's open source (or use that as a sales point)?
&lt;/h2&gt;
&lt;p&gt;
We do and we don't. Again it really comes down to who you're pitching Umbraco to.
Where the client has had issues with developers not releasing source etc then it's
clearly a selling point. 
&lt;/p&gt;
&lt;p&gt;
Generally we do tend to explain to clients that we will base their website on an open
source project that we then build on and customise further to suit their needs and
that by using best practice methodologies, any developer can in theory pick up the
system and continue to develop it (even if they have no experience of Umbraco).
&lt;/p&gt;
&lt;h2&gt;How do you price Umbraco
&lt;/h2&gt;
&lt;p&gt;
This question was asked in a couple of different ways throughout the session and it's
a topic in itself (see the article I wrote a while ago about pricing your work).
&lt;/p&gt;
&lt;p&gt;
If you look at Umbraco in the right way you'll see that it's actually rather easy
to price as there are a few components that you can sell either individually or together:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Installation and configuration 
&lt;/li&gt;
&lt;li&gt;
Customisation 
&lt;/li&gt;
&lt;li&gt;
Hosting 
&lt;/li&gt;
&lt;li&gt;
Support 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
All you need to do is work out a minimum cost for each component and then that will
give you a core system cost. 
&lt;/p&gt;
&lt;p&gt;
Once you have your core Umbraco costs (don't forget to factor in your license costs)
you can then alter the costs accordingly for your client -and this has to be on a
case-by-case basis.&amp;#160; 
&lt;/p&gt;
&lt;h2&gt;How do you pitch Umbraco
&lt;/h2&gt;
&lt;p&gt;
This is easy, there are so many selling points to Umbraco that regardless of what
the client is looking for, as long as it's CMS based, Umbraco will have some benefit
you can overview to the client.
&lt;/p&gt;
&lt;p&gt;
When pitching Umbraco, we have found educating the user as to the benefits and what
the client should be looking for in other systems. If you do this, then the majority
of the time, the rest of the competition falls by the wayside.
&lt;/p&gt;
&lt;p&gt;
If the client is a large corporate it's always worth mentioning that it offers much
of the functionality that SharePoint does but with little of the cost (or setup pain!).
&lt;/p&gt;
&lt;h2&gt;Once you've won the contract, what do you ask your client
&lt;/h2&gt;
&lt;p&gt;
The first thing to do is to get all the information you need to complete your contract
(or at least tell your client what you'll need and when). You should know what you'll
need already but we tend to ask for:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Design inspiration (websites the client does and doesn't like -and why) 
&lt;/li&gt;
&lt;li&gt;
Logos and other source imagery 
&lt;/li&gt;
&lt;li&gt;
Text for the website (you'd be best to load the initial content during training but
get the client to think about it while you're developing or you'll never get there!) 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Next, you'll need to make sure your paperwork is in order. Once you have agreed the
general premise of your contract, it's important that you confirm all deliverables
(what you'll be doing for the client) in a work order with the client. This avoids
an ambiguity on what you'll be delivering and when. This doesn't need to be pages
of text (though sometimes it needs to be) but avoids disagreements later.
&lt;/p&gt;
&lt;p&gt;
You should &lt;strong&gt;always&lt;/strong&gt; request signed work order and deposit (we request
a minimum of 20% regardless of project spend) at a minimum before starting any work.
&lt;/p&gt;
&lt;p&gt;
Once you have the signed work order (you sign one for the client to keep and keep
one yourself), you can start thinking about the project. If it'll take longer than
a week to deliver, I recommend you provide the client with rough timescales, this
will have the added benefit of helping you focus your mind.
&lt;/p&gt;
&lt;h2&gt;How do you support Umbraco
&lt;/h2&gt;
&lt;p&gt;
This is something that Paul Sterling addressed through another session and if he doesn't
write up his notes I'll make a few notes in another post.
&lt;/p&gt;
&lt;h2&gt;How do you get around the question of "What happens if you get hit by a bus?"
&lt;/h2&gt;
&lt;p&gt;
Although this was asked a couple of times throughout the session, I avoided answering
it a little due to a conflict of interest. For the past few months we've been working
hard on a new system called &lt;a title="Crisis Cover - Protecting your business against the unforeseen" href="http://www.crisiscover.co.uk/"&gt;Crisis
Cover&lt;/a&gt; which has been designed to help you with this exact question.
&lt;/p&gt;
&lt;p&gt;
&lt;a title="Crisis Cover - Protecting your business against the unforeseen" href="http://www.crisiscover.co.uk/"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="apple-touch-icon[1]" border="0" alt="apple-touch-icon[1]" align="left" src="http://blogs.thesitedoctor.co.uk/tim/content/binary/WindowsLiveWriter/CodeGarden09OpenSpaceMinutesSpace1Howtos_130B7/apple-touch-icon%5B1%5D_c94f9aed-e4e5-4f09-b0d5-b691d2e1c62d.png" width="61" height="61" /&gt; Crisis
Cover&lt;/a&gt; monitors you to ensure that you're still around and if you don't respond
to a number of alerts, it will contact your clients informing there's something wrong. 
&lt;/p&gt;
&lt;p&gt;
I'll post more information about &lt;a title="Crisis Cover - Protecting your business against the unforeseen" href="http://www.crisiscover.co.uk/"&gt;Crisis
Cover&lt;/a&gt;, but if you're interested in getting involved with the beta, leave me your
email and I'll get one sent out.
&lt;/p&gt;
&lt;h2&gt;In Closing
&lt;/h2&gt;
&lt;p&gt;
There is a lot of information about selling and business in general in my previous
post "&lt;a href="http://blogs.thesitedoctor.co.uk/tim/2007/01/29/Business+Startup+Advice.aspx"&gt;Business
start-up advice&lt;/a&gt;" which if you're starting out, I really recommend you reading
as it should give you a really good start (and includes example Service Level Agreements,
Contracts and other useful documents).
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/tim/aggbug.ashx?id=409b9297-7d3e-4698-83cd-376d34bc553b" /&gt;</description>
      <comments>http://blogs.thesitedoctor.co.uk/tim/CommentView,guid,409b9297-7d3e-4698-83cd-376d34bc553b.aspx</comments>
      <category>Business</category>
      <category>Business/Business Start-up Advice</category>
      <category>Business/Client</category>
      <category>Business/Expanding Your Business</category>
      <category>Marketing</category>
      <category>The Site Doctor</category>
      <category>Umbraco</category>
      <category>Umbraco/CodeGarden/2009</category>
      <category>Web Development</category>
    </item>
  </channel>
</rss>