<?xml version="1.0" ?>
<?xml-stylesheet type='text/xsl' href='rss.xslt' version='1.0'?>
<!--  RSS generation by CF_RSS v.1.0.0 , copyright 2005 by Tom Muck http://www.tom-muck.com/ 
information at http://www.tom-muck.com/customtags/
Generated on Wed, 15 Apr 2026 05:18:27 GMT   --> 
<rss version="0.92">
	<channel>
		<title>Tom-Muck.com</title> 
		<link>http://www.tom-muck.com</link> 
		<description>RSS Feed for http://www.tom-muck.com</description> 
		<webMaster>nobody@notavaliddomain.com</webMaster> 
		<language>en-us</language> 
		<item>
			<title>Music tidbits</title>
			<description><![CDATA[<p>Haven't posted much here lately. I wanted to post a few links here to access my music and writing.&nbsp;</p><p>&nbsp;My <a href=&quot;https://www.youtube.com/watch?v=vEvaD-nOe4s&list=PLfH0-hJxra6TSjVWfyr18lx9vYQYf5UqC&quot; target=&quot;_blank&quot; title=&quot;Tom Muck's Blues Covers&quot;>blues cover playlist is here</a>. It also includes the Robert Johnson songs I did a few years ago.&nbsp;&nbsp;</p><p>&nbsp;My <a href=&quot;https://www.youtube.com/watch?v=bdB5gnO-TaE&list=PLfH0-hJxra6QHnUiLKiIOcpvoxYAKWwd3&index=3&quot; target=&quot;_blank&quot; title=&quot;Robert Johnson Challenge&quot;>Robert Johnson Challenge is here</a>. I did all 29 Robert Johnson songs, one per week.&nbsp;</p><p>&nbsp;My <a href=&quot;https://tommuck.substack.com/&quot; target=&quot;_blank&quot; title=&quot;Tom Muck's Substack&quot;>Substack is here</a>. It includes the above material with the articles around them, and some other additional music related articles.&nbsp;&nbsp;</p><p>&nbsp;The Reverbnation link for <a href=&quot;https://www.reverbnation.com/alphadogbluesband&quot; target=&quot;_blank&quot; title=&quot;Alpha Dog Blues Band&quot;>Alpha Dog Blues Band is here</a>.&nbsp;&nbsp;</p><p>&nbsp;</p>]]></description> 
			<link>http://www.tom-muck.com/blog/index.cfm?newsid=220</link>
			<guid isPermaLink="true">http://www.tom-muck.com/blog/index.cfm?newsid=220</guid>
			<pubDate>Fri, 25 Apr 2025 17:28:17 GMT</pubDate>
		</item>
		<item>
			<title>GE Advantium Microwave oven, model number zsc2202j3ss</title>
			<description><![CDATA[<p>G.E. Monogram - Advantium Oven, model number zsc2202j3ss</p><p>We had high hopes for this oven. The $3100 price tag was hard to swallow, but if it worked and lasted it would be worth it. Unfortunately, the oven door crapped out after a couple of years and had to be manually pushed shut every time you used it. The estimate for a new door was about $1500! They couldn't replace just the spring or the hinge....stupid design. So we decided to wait. </p><p>A year went by and the entire oven crapped out and stopped working -- no lights or anything. We bought a countertop microwave to use in the meantime, knowing there was going to be a huge price tag. I called a company to service it a few weeks ago, and they were able to replace a couple of boards inside to allow it to work again, but they also said it might not last because the door is still not fixed--it CAN'T be fixed because GE no longer supplies that door. So we basically have a $4000 (after repairs) piece of junk. We also installed other GE appliances, but I'm now waiting for those to die too. If they do die, I'll bet the parts are not available anymore. The quality control is horrible and the service non-existent. I would never buy a GE appliance again, which is sad because we thought they were a good company. We purchased in Nov. 2017 and installed in April 2018, so the oven is only 6 years old, and the last two years it has been unusable. I would think for $3100 it would last a lifetime, or at least as long as we would be in this house.</p><p>Bottom line: avoid GE like the plague.</p><p>&nbsp;</p>]]></description> 
			<link>http://www.tom-muck.com/blog/index.cfm?newsid=219</link>
			<guid isPermaLink="true">http://www.tom-muck.com/blog/index.cfm?newsid=219</guid>
			<pubDate>Tue, 11 Jun 2024 14:42:11 GMT</pubDate>
		</item>
		<item>
			<title>Robert Johnson challenge</title>
			<description><![CDATA[<p>A couple weeks ago I decided to take on a Robert Johnson challenge -- learn and post one song per week until I get through all 29 songs. I know a few already, but it's an ambitious undertaking for me and not sure I'll be able to complete it, but I'm giving it an effort. The first two are <a href="https://www.youtube.com/watch?v=bdB5gnO-TaE">Kind Hearted Woman</a> and <a href="https://www.youtube.com/watch?v=8XgCAtv49Bg">I Believe I'll Dust My Broom</a>. Here is the complete list of <a href="../../music/RobertJohnson.cfm">Robert Johnson songs</a>, along with the key, tuning, and master number. I'm doing them in order of master numbers, which may or may not be the order they were recorded.</p>
<p>Update: This is the schedule I intend to follow:&nbsp;</p>
<table border="0">
  <tr />
  <tr>
    <td>Kind Hearted Woman Blues&nbsp;&nbsp;</td>
    <td align="right">1</td>
    <td>Sunday, Jul 03, 2022</td>
  </tr>
  <tr>
    <td>I Believe I'll Dust My Broom&nbsp;&nbsp;</td>
    <td align="right">2</td>
    <td>Sunday, Jul 10, 2022</td>
  </tr>
  <tr>
    <td>Sweet Home Chicago&nbsp;&nbsp;</td>
    <td align="right">3</td>
    <td>Sunday, Jul 17, 2022</td>
  </tr>
  <tr>
    <td>Ramblin' on My Mind&nbsp;&nbsp;</td>
    <td align="right">4</td>
    <td>Sunday, Jul 24, 2022</td>
  </tr>
  <tr>
    <td>When You Got a Good Friend&nbsp;&nbsp;</td>
    <td align="right">5</td>
    <td>Sunday, Jul 31, 2022</td>
  </tr>
  <tr>
    <td>Come On in My Kitchen&nbsp;&nbsp;</td>
    <td align="right">6</td>
    <td>Sunday, Aug 07, 2022</td>
  </tr>
  <tr>
    <td>Terraplane Blues&nbsp;&nbsp;</td>
    <td align="right">7</td>
    <td>Sunday, Aug 14, 2022</td>
  </tr>
  <tr>
    <td>Phonograph Blues&nbsp;&nbsp;</td>
    <td align="right">8</td>
    <td>Sunday, Aug 21, 2022</td>
  </tr>
  <tr>
    <td>32-20 Blues&nbsp;&nbsp;</td>
    <td align="right">9</td>
    <td>Sunday, Aug 28, 2022</td>
  </tr>
  <tr>
    <td>They're Red Hot&nbsp;&nbsp;</td>
    <td align="right">10</td>
    <td>Sunday, Sep 04, 2022</td>
  </tr>
  <tr>
    <td>Dead Shrimp Blues&nbsp;&nbsp;</td>
    <td align="right">11</td>
    <td>Sunday, Sep 11, 2022</td>
  </tr>
  <tr>
    <td>Cross Road Blues&nbsp;&nbsp;</td>
    <td align="right">12</td>
    <td>Sunday, Sep 18, 2022</td>
  </tr>
  <tr>
    <td>Walkin' Blues&nbsp;&nbsp;</td>
    <td align="right">13</td>
    <td>Sunday, Sep 25, 2022</td>
  </tr>
  <tr>
    <td>Last Fair Deal Gone Down&nbsp;&nbsp;</td>
    <td align="right">14</td>
    <td>Sunday, Oct 02, 2022</td>
  </tr>
  <tr>
    <td>Preaching Blues (Up Jumped the    Devil)&nbsp;&nbsp;</td>
    <td align="right">15</td>
    <td>Sunday, Oct 09, 2022</td>
  </tr>
  <tr>
    <td>If I Had Possession Over Judgment    Day&nbsp;&nbsp;</td>
    <td align="right">16</td>
    <td>Sunday, Oct 16, 2022</td>
  </tr>
  <tr>
    <td>Stones in My Passway&nbsp;&nbsp;</td>
    <td align="right">17</td>
    <td>Sunday, Oct 23, 2022</td>
  </tr>
  <tr>
    <td>I'm a Steady Rollin' Man&nbsp;&nbsp;</td>
    <td align="right">18</td>
    <td>Sunday, Oct 30, 2022</td>
  </tr>
  <tr>
    <td>From Four Till Late&nbsp;&nbsp;</td>
    <td align="right">19</td>
    <td>Sunday, Nov 06, 2022</td>
  </tr>
  <tr>
    <td>Hellhound on My Trail&nbsp;&nbsp;</td>
    <td align="right">20</td>
    <td>Sunday, Nov 13, 2022</td>
  </tr>
  <tr>
    <td>Little Queen of Spades&nbsp;&nbsp;</td>
    <td align="right">21</td>
    <td>Sunday, Nov 20, 2022</td>
  </tr>
  <tr>
    <td>Malted Milk&nbsp;&nbsp;</td>
    <td align="right">22</td>
    <td>Sunday, Nov 27, 2022</td>
  </tr>
  <tr>
    <td>Drunken Hearted Man&nbsp;&nbsp;</td>
    <td align="right">23</td>
    <td>Sunday, Dec 04, 2022</td>
  </tr>
  <tr>
    <td>Me and the Devil Blues&nbsp;&nbsp;</td>
    <td align="right">24</td>
    <td>Sunday, Dec 11, 2022</td>
  </tr>
  <tr>
    <td>Stop Breakin' Down Blues&nbsp;&nbsp;</td>
    <td align="right">25</td>
    <td>Sunday, Dec 18, 2022</td>
  </tr>
  <tr>
    <td>Traveling Riverside Blues&nbsp;&nbsp;</td>
    <td align="right">26</td>
    <td>Sunday, Dec 25, 2022</td>
  </tr>
  <tr>
    <td>Honeymoon Blues&nbsp;&nbsp;</td>
    <td align="right">27</td>
    <td>Sunday, Jan 01, 2023</td>
  </tr>
  <tr>
    <td>Love in Vain&nbsp;&nbsp;</td>
    <td align="right">28</td>
    <td>Sunday, Jan 08, 2023</td>
  </tr>
  <tr>
    <td>Milkcow's Calf Blues&nbsp;&nbsp;</td>
    <td align="right">29</td>
    <td>Sunday, Jan 15, 2023</td>
  </tr>
</table>
<p><strong>Update:</strong> A few things that I want to clear up about Robert Johnson's playing. 1) The recordings are the correct speed. There are a bunch of "slowed down" versions out there, where people insist that they sound better and that they are more accurate. This is utter hogwash. &quot;Sounding better&quot; is pure opinion. Debunked <a href="https://www.elijahwald.com/johnsonspeed.html">here</a>. 2) Johnson used his own &quot;special&quot; tunings. Several people have come up with various tunings (including an Aadd9 tuning) because they think that the songs are too hard to play if you tune to the regular &quot;standard&quot;, &quot;Spanish&quot;, or &quot;Vestapol&quot; tunings that Robert  (and all blues singers) use. Also utter hogwash. All you have to do is look at the picture of Robert with his long fingers to know that he can reach all those 7ths and other notes that apparently some folks can't play easily. If someone wants to use their own tuning, that's one thing, but don't assert that Robert used the tuning without proof. Interesting to note that some of the people pushing the speed hoax also pushed the mysterious &quot;third picture&quot; hoax and push the tuning hoax. </p>
<p>Update: cross-posted at <a href="https://tommuck.substack.com">Substack</a>.</p><p>Update 8/18/22: Currently up to 7 songs. Full list is on <a href="https://www.youtube.com/playlist?list=PLfH0-hJxra6QHnUiLKiIOcpvoxYAKWwd3">Youtube</a></p>]]></description> 
			<link>http://www.tom-muck.com/blog/index.cfm?newsid=218</link>
			<guid isPermaLink="true">http://www.tom-muck.com/blog/index.cfm?newsid=218</guid>
			<pubDate>Mon, 11 Jul 2022 15:18:02 GMT</pubDate>
		</item>
		<item>
			<title>Title Case Function for SQL</title>
			<description><![CDATA[<p>I saw a few &quot;title case&quot; functions online for SQL Server, but none of them seem to take into account the fact that minor words like &quot;the&quot;, &quot;a&quot;, &quot;and&quot; are not capitalized in a title. Most of them also use slow-running loops. This function is fast, using a built in string_split function for splitting the title into a table of words, then using COALESCE to put it back together, using some string functions to capitalize major words:</p><p>&nbsp;</p><div class="code"><p>CREATE FUNCTION fn_TitleCase (@InputString VARCHAR(4000) )</p><p>RETURNS VARCHAR(4000)</p><p>AS</p><p>BEGIN</p><p><br /></p><p>DECLARE @val VARCHAR(4000)</p><p><br /></p><p>Select @val = COALESCE(@val + ' ' +&nbsp;</p><p><span style=&quot;white-space: pre;&quot;>	</span>CASE WHEN value IN ('and','as', 'but', 'for', 'if', 'nor', 'or', 'so', 'yet','a',&nbsp;</p><p>&nbsp;'an', 'the', 'as', 'at', 'by', 'for', 'in', 'of',&nbsp;</p><p>&nbsp;'off', 'on', 'per', 'to', 'up', 'via') THEN LOWER(value)&nbsp;</p><p><span style=&quot;white-space: pre;&quot;>		</span>ELSE UPPER(LEFT(value,1))&nbsp; &nbsp;+ LOWER(RIGHT(value,len(value)-1) )&nbsp;</p><p><span style=&quot;white-space: pre;&quot;>	</span>END,&nbsp;</p><p><span style=&quot;white-space: pre;&quot;>	</span>UPPER(LEFT(value,1)) + LOWER(RIGHT(value,len(value)-1)) )</p><p>&nbsp; &nbsp; &nbsp; &nbsp; From STRING_SPLIT(@inputString, ' ');</p><p><br /></p><p>RETURN ISNULL(@val,'')</p><p>END&nbsp;</p></div><p>&nbsp;</p>]]></description> 
			<link>http://www.tom-muck.com/blog/index.cfm?newsid=217</link>
			<guid isPermaLink="true">http://www.tom-muck.com/blog/index.cfm?newsid=217</guid>
			<pubDate>Sun, 08 May 2022 05:25:53 GMT</pubDate>
		</item>
		<item>
			<title>Remodeling project from hell</title>
			<description><![CDATA[]]></description> 
			<link>http://www.tom-muck.com/blog/index.cfm?newsid=216</link>
			<guid isPermaLink="true">http://www.tom-muck.com/blog/index.cfm?newsid=216</guid>
			<pubDate>Sat, 17 Apr 2021 19:42:04 GMT</pubDate>
		</item>
		<item>
			<title>Angies List is awful</title>
			<description><![CDATA[<p>When did Angieslist become such a pile of crap? You used to be able to go on there, search for a certain type of contractor, find several to contact, then go about your business contacting them when you like. Now, you are forced to answer a series of pointless questions, don't ever see the full list, and get calls from contractors for days, even if your job is finished already. It's become a bad imitation of Homeadvisor, which is another crappy web site. It's like intentionally signing yourself up for unsolicited phone calls.</p>]]></description> 
			<link>http://www.tom-muck.com/blog/index.cfm?newsid=212</link>
			<guid isPermaLink="true">http://www.tom-muck.com/blog/index.cfm?newsid=212</guid>
			<pubDate>Tue, 21 Jan 2020 12:15:32 GMT</pubDate>
		</item>
		<item>
			<title>New server</title>
			<description><![CDATA[<p>Moved to a new server....still tweaking settings.</p>  <p>Most things seem to be working finally. Thanks to <a href=&quot;https://www.web-workers.ch/index.php/2018/03/31/how-to-install-adobe-coldfusion-9-x64-on-windows-server-2016-x64/#comment-417&quot;>Tom Huerlimann</a> for the great article on configuring ColdFusion 9 with Windows server 2016/IIS 10.</p>]]></description> 
			<link>http://www.tom-muck.com/blog/index.cfm?newsid=211</link>
			<guid isPermaLink="true">http://www.tom-muck.com/blog/index.cfm?newsid=211</guid>
			<pubDate>Tue, 29 May 2018 20:26:49 GMT</pubDate>
		</item>
		<item>
			<title>Robert Johnson Guitars</title>
			<description><![CDATA[<p>We'll never know what guitars Robert Johnson used on the recordings from 1936 and 1937, but there are various theories out there as well as a few known facts. The two known pictures of Robert Johnson show two different guitars: a studio portrait taken on Beale Street in Memphis shows him with a 1929 Gibson L1<br> <img src="/blog/images/johnson_studio.jpg" width="400" height="225" alt="Robert Johnson Gibson L-1" title="Robert Johnson Gibson L-1" width="800" height="449" border="0" /><br> This guitar may or may not have belonged to him. The self portrait with the cigarette dangling from his mouth shows what appears to be a Kalamazoo KG14, or similar Gibson-made guitar from the same period (the Carson Robison guitars made by Gibson had the same configuration).<br> <img  src="/blog/images/s-l500.jpg" alt="Robert Johnson Kalamazoo" title="Robert Johnson Kalamazoo" width="368" height="500" border="0" /><br/> The KG14 is essentially a budget model L1 or L0, with ladder bracing instead of x-bracing, and no truss rod. They sold out of mail order catalogs for about $12.75, whereas the L1 sold for about $35-50. The KG14 became available in 1936. This is a picture of my late '30s Kalamazoo: <img src="/blog/images/s-l1600.jpg" alt="Kalamazoo KG 14" class="floatleft" width="215" height="530" /></p> <p>To further complicate matters, Don Law, who supervised the sessions, stated that Johnson used a borrowed guitar for the San Antonio sessions (1936) at the Gunter Hotel.  Johnson arrived on Sunday to record, but was arrested that night and had to be bailed out of jail.  Apparently, during the arrest the guitar was not available any more (broken, confiscated, or lost), and when recording was started on Monday, November 23, the studio obtained a guitar for Johnson to use. It could be anything. Stephen LeVere, who oversaw the mastering of the Complete Recordings, postulates that the San Antonio sessions sound like a flattop whereas the Dallas sessions sound like an archtop. Johnson probably used his own guitar for the Dallas sessions. It is known that Johnson liked the Kalamazoo archtop guitars, so this is plausible, and it does sound like an archtop to my ears as well. Johnny Shines stated that Johnson liked Kalamazoo and Stella guitars, and also mentioned that both he and Johnson had Kalamazoos with f-holes (archtop) and liked archtops, so the theory holds water <a href="http://jasobrecht.com/johnny-shines-complete-living-blues-interview/">(Johnny Shines interview)</a>. </p>
<p>Johnson had some of the best acoustic guitar sounds on record, for my money, in addition to being one of the greatest players of acoustic blues, but there are 3 distinct guitar sounds among the various recordings. The only thing this proves is that Johnson's sound came from his fingers, and the guitar he used is not important. This page lists his songs, recording dates, and master numbers, among other things and is a work in progress: <a href="http://tom-muck.com/music/RobertJohnson.cfm">Robert Johnson songs</a>. Johnson recorded 59 takes of 29 songs, of which 42 takes still remain. Maybe someday others will be found, but it's likely many of the masters were destroyed during the war for the metal. <strong>Update: </strong> Among the 17 missing songs are 2nd takes of Terraplane Blues, Walkin Blues, Preachin' blues, and Hellhound on my Trail, and a third take of Milkcow's Calf Blues.</p>
<p>One thing I will say about the guitar sound, I think the Gibson L1 shape and size is perfect for blues. Every guitar I've played in this configuration, including my own Martin CEO7 and my Kalamazoo KG14, sound amazing. The best sounding guitars I've heard have been old 1920's and 1930's Gibson L1 guitars. Whether or not he used something like this is open to speculation.</p>
<p><strong>Update:</strong>The other question is, what sounds more like a Robert Johnson recording today, an 80 year old guitar with 80 year old wood (which was brand-spanking new when Robert Johnson recorded) or a brand new guitar built in a similar style to the old 30's guitars?</p>
<p><strong>Update:</strong> Here is "Kind Hearted Woman Blues" from the San Antonio sessions: <a href="https://www.youtube.com/watch?v=82yNxiF-T4A">Kind Hearted Woman Blues</a>. "Me and the Devil Blues", recorded in Dallas, uses the same tune, but you can here the difference in guitar tone. It has a more "ringing" tone, and the bass is more percussive sounding: <a href="https://www.youtube.com/watch?v=b7ZzfjRzZuk">Me and the Devil Blues</a>. Below is my Kalamazoo KG31, which may or may not be the type used by Robert on the Dallas sessions (or was it a KG21?):<img src="http://www.tom-muck.com/blog/images/s-l16001.jpg" width="270" height="400"  class="floatleft" />. The KG 31 is bigger, with a 16" lower bout, whereas the KG21 has a 14 3/4" lower bout, similar to a Gibson L1.</p>
<p><strong>Update 6/20/2019:</strong> Changed the information about Johnson's San Antonio sessions based on information in the <a href="http://www.amazon.com/exec/obidos/ASIN/1641600942/basicultradev-20">new Johnson biography</a> by Bruce Conforth and Gayle Dean Warlow. Johnson recorded all of the sessions with a borrowed studio guitar.</p>
<p><strong>Update 11/21/2020:</strong> Finally obtained a Kalamazoo KG-21 archtop <img src="http://www.tom-muck.com/blog/images/kg21.jpg" width="270" height="400"  class="floatright" />, which is likely the type of guitar that Johnson used on the Dallas recordings. He and Johnny Shines carried Kalamazoo archtops (either a KG-31 or KG-21) with them until around December 1937 when they were lost in a fire. After that, Johnson likely obtained his Kalamazoo KG-14 that is seen in the famous cigarette photo in Steele, Missouri.</p>
<p><strong>Update 8/17/2021:</strong> Annye Anderson's book about her step-brother Robert is a must-read: <a href="http://tom-muck.com/amazon.cfm?asin=0306845261">Brother Robert</a>. The cover is the most recently discovered picture of Robert with his Kalamazoo KG-14 guitar. In this more recent interview with Annye Anderson, <a href="https://anchor.fm/preston-lauterbach">interview</a>, she describes obtaining Robert's guitar. Apparently Robert's sister Carrie sent her son Louis to Greenwood to obtain it, and it was transported to Anapolis and then Churchton, MD. It was subsequently lost.</p>]]></description> 
			<link>http://www.tom-muck.com/blog/index.cfm?newsid=208</link>
			<guid isPermaLink="true">http://www.tom-muck.com/blog/index.cfm?newsid=208</guid>
			<pubDate>Sun, 17 Jul 2016 16:34:00 GMT</pubDate>
		</item>
		<item>
			<title>Spring cleaning sale</title>
			<description><![CDATA[<p>All extensions on sale 40% off. Use promo code "springcleaning".</p>
<p><strong>Update:</strong> This was an old post, but it's still at the top so I've reinstated the code for this year as well. Take 40% any purchase on the site.</p>]]></description> 
			<link>http://www.tom-muck.com/blog/index.cfm?newsid=206</link>
			<guid isPermaLink="true">http://www.tom-muck.com/blog/index.cfm?newsid=206</guid>
			<pubDate>Wed, 06 May 2015 23:51:38 GMT</pubDate>
		</item>
		<item>
			<title>Facebook</title>
			<description><![CDATA[<p>Facebook is quickly following the path of MySpace. Features designed to increase their revenue and make the site more relevant to advertisers have destroyed the usefulness of being on Facebook at all. You used to be able to "like" a page and you would then receive all updates for that page. Now, it's impossible to tell which pages have been updated in your newsfeed. You might be interested in "African Swallows", but one day you'll find yourself wondering why the African Swallow page has stopped posting, so you go to that page and find that they have been posting but you have not gotten any updates! Good strategy Facebook. Pretty soon it will be pointless to remain a member.</p>]]></description> 
			<link>http://www.tom-muck.com/blog/index.cfm?newsid=205</link>
			<guid isPermaLink="true">http://www.tom-muck.com/blog/index.cfm?newsid=205</guid>
			<pubDate>Sat, 02 May 2015 01:07:59 GMT</pubDate>
		</item>
		<item>
			<title>Delivery drivers</title>
			<description><![CDATA[<p>What is it with delivery services? Can anybody deliver a package without treating it like it's garbage? Yesterday I watched the FedEx driver throw boxes on the ground before delivering them to my house. Not just FedEx, they are all the same. Pure laziness. The UPS deliveries I've had recently have all been damaged (large bed headboard and footboard, both delivered twice and all damaged). A recent FedEx delivery of a guitar amp was jostled so hard that the chassis dislodged from the amp and was floating in the box. Postal service delivered a guitar amp that was jostled so hard that the speaker came loose from the amp and smashed the tubes in the amp. USPS also delivered to me an empty envelope that was supposed to contain a rare book, with a note that the package was damaged in delivery. I've watched our mailman put packages out at the street under the mailbox in the rain, right next to the trash cans, rather than bring the package up to the front door. The DHL driver used to throw packages at the front door. I could hear them hit the door, and he was 15 feet away. Another DHL driver clipped the front end of my car doing $3000 in damage because he cut the corner too short, THEN forgot to give me the package that he was supposed to deliver. What a bunch of bozos. If you can't do a good job, get a new line of work.</p>
<p><strong>Update:</strong> After posting this, the delivery scheduled for today from the USPS shows as "delivered" on the tracking page, but it's not here. Who has it??? USPS is the worst of the lot.</p>]]></description> 
			<link>http://www.tom-muck.com/blog/index.cfm?newsid=204</link>
			<guid isPermaLink="true">http://www.tom-muck.com/blog/index.cfm?newsid=204</guid>
			<pubDate>Wed, 29 Apr 2015 16:01:38 GMT</pubDate>
		</item>
		<item>
			<title>Tube amps</title>
			<description><![CDATA[<p>As a guitar player, to me there is nothing better than the sound of a good tube amp. Tubes have a special sound that you can't achieve with solid state components. Most of the greatest recorded guitar sounds ever were through tube amps. I'd rather play guitar through an old amp component removed from a TV or radio from the 50's than through any modern solid state amplifier. Back in the late 70's when I started playing, I had a solid state amp (because it was cheap) but I found an old Heathkit tube preamplifier with several 12AX7s in it to warm up the sound. I still remember being able to ride my bike up to Radio Shack and use their tube tester to test tubes. Those days are long gone.</p><p>With a good tube amp, you can set the amp for a good crunchy tone when pushed hard, then just back off the volume control on the guitar to play clean tones. &nbsp;For blues players who don't have the amp overdriven as much as rock players, the overdriven sound is much more subtle. A good tube amp is like an extension of the guitar--it's like playing another instrument at the same time and trying to get the best music out of both.&nbsp;</p><p>Every tube amp I've played has a &quot;sweet spot&quot; where it sounds best. Some amps have a great sound in several places. An old Marshall head was always best with everything on 10. For smaller venues when you can't reach the sweet spot, a pedal can boost the signal going into the amp to give it a slightly overdriven sound even though the volume is low. It's not quite the same as cranking the amp, though, but sometimes you don't have a choice.</p><p>Different output tubes (aka amplifier tubes, power amp tubes) have different tonal characteristics. The 6V6 tubes were used in Fender amps in the 60's and have a clean tone until pushed hard, then have a nice breakup. Depending on the amp and the circuit used, they can sound &quot;mushy&quot; when pushed too hard, like in an old Princeton, but I've recently heard a Swart Spacetone that sounds pretty darned good even when pushed to 10. One 6V6 puts out roughly 5 watts or so, and some amps have two in a push-pull circuit putting out about 10-14 watts. Fender Deluxe &quot;blackface&quot; had 2, and is one of the Holy Grail amps for guitar players.</p><p>A 6L6 is like a big brother to the 6V6, and puts out about double the output. Some amps that use the 6L6 are the old Fender Bassman, and newer EVH amps. &nbsp;Loud American amps mostly had 6L6 tubes in the old days.</p><p>EL84 tubes have a more glassy sound (some say it sounds like an ice pick) but produces a more definite mid-range &quot;crunch&quot; when pushed hard. It puts out about 6-7 watts, but a push-pull pair can put out 14-20 watts or more, depending on the circuit. The Fender Blues Junior uses EL84 tubes.</p><p>EL34 tubes are the EL84's bigger brother, and used in Marshall amps and clones. They have that great rock &quot;crunch&quot; when pushed hard, and glassy clean tones when the volume is backed off. Marshall amps were essentially clones of the Fender Bassman, only using EL34 tubes instead of 6L6 tubes, and utilizing closed back cabinets.</p><p>One tube you don't see very often is a 6973, used in some old Supro and Gretsch amps. I think this tube might have the best sound of all, but I don't own one of these amps. Yet. It sounds somewhat like a cross between the 6V6 and EL34, getting a pretty nice clean sound, but a moderate overdrive when cranked to 10, not as crunchy as an EL34, but not as mushy as a 6V6.</p><p>These days I have different tube amps for different venues.&nbsp;</p><p>For small gigs I bring my VHT Special 6; hand-wired point-to-point like the old days, but made in China. It might be the most well-made mass-produced amp out there without going to a boutique amp builder. The VHT takes a 6V6, but it can be swapped out for a 6L6, EL34, or with an adapter, an EL84. I keep an EL34 in mine, and it sounds great. It's a simple amp with no reverb or effects of any kind.&nbsp;</p><p>For slightly larger gigs I use a Bugera V22, which I picked up ridiculously cheap. It has a great natural sound, somewhere between and old Vox and a blackface Fender. It uses EL84 tubes, but sounds much less ice-picky than other EL84 amps I've played through, and more like an old-school amp.</p><p>Next is my Sligo Surfman, built by a local guy Steve Clark. It uses 6L6 tubes and puts out about 40 watts, but has a master volume for getting some breakup at lower volumes.&nbsp;</p><p>For larger blues gigs I usually bring out my Sonny Jr. &quot;Super Sonny&quot;, which is essentially a hand-wired clone of an old tweed Fender Bassman, but modified for harmonica. It sounds great with guitar too, especially with a pedal boosting the signal slightly in front of it.</p><p>I also usually carry with me a backup amp, which is a hand-build Bogen clone. Bogen built PA amplifiers in the 50s and 60s. This one has 2 6V6 tubes and sounds pretty great with guitar, even though it's not a guitar amp.&nbsp;</p><p>I also have a small practice amp, which is a Magnasync Moviola amp, taken from an old 50's/60's film editing machine, utilizing a 6AQ5 output tube. The power of the amp is not enough for a gig with other musicians, but it sounds pretty nice for recording or as a bedroom practice amp.</p><p>&nbsp;I also recently obtained a Bugera 6262, essentially a 100 watt clone of a British style (Marshall) amp that is low budget but sounds great. I will use this for rock gigs.&nbsp;</p><p>The quest for the best guitar tone continues every day. Even though I have enough amps for a lifetime, I'm always looking for the ultimate guitar sound.</p><p><br /></p><p>&nbsp;</p>]]></description> 
			<link>http://www.tom-muck.com/blog/index.cfm?newsid=203</link>
			<guid isPermaLink="true">http://www.tom-muck.com/blog/index.cfm?newsid=203</guid>
			<pubDate>Tue, 14 Apr 2015 11:37:12 GMT</pubDate>
		</item>
		<item>
			<title>Indexes</title>
			<description><![CDATA[<p>I find it amazing that most developers I know do not know how to index, or don't consider it part of their job. As a developer, the most important part of the job is indexing the database. It is not a task for the DBA or anyone else.</p>
]]></description> 
			<link>http://www.tom-muck.com/blog/index.cfm?newsid=202</link>
			<guid isPermaLink="true">http://www.tom-muck.com/blog/index.cfm?newsid=202</guid>
			<pubDate>Thu, 22 Jan 2015 15:42:15 GMT</pubDate>
		</item>
		<item>
			<title>iTunes and Media players? Do they all suck?</title>
			<description><![CDATA[<p>Any good audio players out there? I'm giving up on iTunes and Media Player. The geniuses at Apple and Microsoft have made them both unusable. I can't figure out how to do the most basic things. Where are the menus? How do you repeat a song? Play a CD? I have to use Google every time I need to do something.</p>]]></description> 
			<link>http://www.tom-muck.com/blog/index.cfm?newsid=201</link>
			<guid isPermaLink="true">http://www.tom-muck.com/blog/index.cfm?newsid=201</guid>
			<pubDate>Thu, 26 Jun 2014 18:40:59 GMT</pubDate>
		</item>
		<item>
			<title>The importance of backups</title>
			<description><![CDATA[<p>I'm currently running a 5 or 6 year old backup of my web site. Luckily, the data is current, since I'm running nightly <a href="/blog/index.cfm?newsid=193">SQL Server backups</a>, and since the site is mostly data driven, things are still mostly working. We had some construction in the house, and the server filled with dust causing one of the drives to fail -- the main data drive. Backups failed too, so I'm left with an old copy. It's possible that the problem was not the dust, but there was a LOT of dust in the machine. It's about 7 years old, so I was due for a new hard drive, but I'd rather control the circumstances myself.</p><p><strong>Update:</strong> Hard drive restored, back to normal.</p>]]></description> 
			<link>http://www.tom-muck.com/blog/index.cfm?newsid=200</link>
			<guid isPermaLink="true">http://www.tom-muck.com/blog/index.cfm?newsid=200</guid>
			<pubDate>Fri, 11 Apr 2014 12:57:42 GMT</pubDate>
		</item>
		<item>
			<title>Spring sale</title>
			<description><![CDATA[<p>Spring shopping! Use promo code "spring" at the checkout and take 30% off all products. The promo code is good until midnight PST on 6/30/2013.</p>]]></description> 
			<link>http://www.tom-muck.com/blog/index.cfm?newsid=199</link>
			<guid isPermaLink="true">http://www.tom-muck.com/blog/index.cfm?newsid=199</guid>
			<pubDate>Sun, 09 Jun 2013 13:48:47 GMT</pubDate>
		</item>
		<item>
			<title>SEO Spam</title>
			<description><![CDATA[<p>I'm really tired of getting spam from SEO companies. I seem to get about 5 or 6 a week. Why would a good SEO company need to spam? Wouldn't they rank high in web searches and get all kinds of web traffic? A spam from an SEO company indicates to me that they aren't very good at what they do.</p>]]></description> 
			<link>http://www.tom-muck.com/blog/index.cfm?newsid=196</link>
			<guid isPermaLink="true">http://www.tom-muck.com/blog/index.cfm?newsid=196</guid>
			<pubDate>Wed, 13 Jun 2012 20:40:19 GMT</pubDate>
		</item>
		<item>
			<title>Upgrades and Backups Pt. 2: Shrinking SQL Server Express Log Files</title>
			<description><![CDATA[<p><a title="SQL Server Express automated backup for ColdFusion" href="../index.cfm?newsid=193" target="_self">Part 1</a> described how to create a bare bones SQL Server automated backup plan for a SQL Express database using a ColdFusion scheduled task. I also wanted to truncate and shrink old log files on a schedule, so came up with a stored procedure to do it, cobbled together from various snippets. The new stored procedure takes in a database name as parameter, then looks up the log file name. If it's found (it should be if the db name is correct) it truncates and shrinks the file. Here's the script:</p><p class="code">USE [master]<br />GO<br /><br />SET ANSI_NULLS ON<br />GO<br />SET QUOTED_IDENTIFIER ON<br />GO<br /><br />CREATE PROCEDURE [dbo].[sp_TruncateLogs]&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @databaseName nvarchar(1024)<br />AS <br />BEGIN <br />&nbsp;SET NOCOUNT ON; <br /><br />&nbsp;DECLARE @sql NVARCHAR(1000) <br />&nbsp;DECLARE @logfilename NVARCHAR(1000)<br /><br />&nbsp;SELECT @logfilename = b.name <br />&nbsp;FROM sys.sysdatabases a&nbsp; <br />&nbsp;&nbsp;INNER JOIN sys.sysaltfiles b <br />&nbsp;&nbsp;&nbsp;ON a.dbid = b.dbid <br />&nbsp;WHERE fileid = 2 <br />&nbsp;&nbsp;AND a.name = @databaseName<br /><br />&nbsp;IF @@rowcount = 1 BEGIN<br />&nbsp;<br />&nbsp;&nbsp;SET @sql = '<br />&nbsp;&nbsp;USE ' + @databaseName + '<br />&nbsp;&nbsp;BACKUP LOG ' + @databaseName + '<br />&nbsp;&nbsp;with truncate_only<br />&nbsp;&nbsp;dbcc shrinkfile (' + @logfilename + ', 1)'<br /><br />&nbsp;&nbsp;EXECUTE sp_executesql @sql <br />&nbsp;END<br /><br />END </p><p>Next, just add it to the loop in the original ColdFusion scheduled task script:</p><p class="code">&lt;cfstoredproc datasource=&quot;master&quot; procedure=&quot;dbo.sp_TruncateLogs&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;cfprocparam cfsqltype=&quot;cf_sql_varchar&quot; value=&quot;#ListGetAt(variables.databases, variables.i)#&quot; /&gt;<br />&lt;/cfstoredproc&gt;<br /></p>]]></description> 
			<link>http://www.tom-muck.com/blog/index.cfm?newsid=195</link>
			<guid isPermaLink="true">http://www.tom-muck.com/blog/index.cfm?newsid=195</guid>
			<pubDate>Sat, 26 Feb 2011 13:21:55 GMT</pubDate>
		</item>
		<item>
			<title>Deployment Process in ColdFusion Builder</title>
			<description><![CDATA[<p>I decided to start using ColdFusion builder alongside Dreamweaver for my development. At work, we use Eclipse exclusively, but it is severely limited, and much of it doesn't work right (code hints...what the heck is hamcrestassert and why does it get inserted when I move to the next line???). I'm much more comfortable coding in Dreamweaver -- especially since the enhancements of CS4 and CS5 -- but have started liking the Ant build process and the Subversion integration of Eclipse/ColdFusion Builder. So I decided to start setting up projects in both. </p>
<p>My work environment is a lot different from the typical development workflow that I am accustomed to, so I wanted to set up an Ant build script for my local use on my laptop, and a remote FTP development server. ColdFusion Builder has most of what is needed, with the exception of a couple of Java classes for the FTP functionality (<a href="http://commons.apache.org/net/download_net.cgi" target="_blank">commons-net-*.jar</a> and <a href="http://www.java2s.com/Code/Jar/JKL/Downloadjakartaoro208jar.htm" target="_blank">jakarta-oro-*.jar</a>). Download these and add to the ColdFusion Builder (or Eclipse) plugins /lib folder for Ant, located here typically: C:\Program Files\Adobe\Adobe ColdFusion Builder\plugins\org.apache.ant_1.7.1.v20090120-1145\lib</p>
<p>I haven't found a lot of useful information for the ColdFusion developer on setting up Ant build scripts, so hopefully this will help someone. Basically, a build script is XML that contains a project tag and one or more target tags under it. You can also set up a property file that contains details about your project. This makes it easier to set up a generic build script that can be reused. Simply change the properties in the property file.</p>
<p>I'm going to assume that the project will have all the files to be deployed at the root of the project. This is not always the case, and indeed not usually the case, but changing paths is easy enough in the script. I'll add a build folder to the root of the project, and add the build.properties and build.xml files to this directory.</p>
<p>My build.properties file looks like this:</p>
<p class="code">#deploy to LOCAL server<br />
deploy.dir.local=c:/inetpub/wwwroot/mysite<br />
<br />
#deploy to DEV server<br />
deploy.dev.ftp.host=myftpsite.com<br />
deploy.dev.ftp.username=myusername<br />
deploy.dev.ftp.password=mypassword<br />
deploy.dev.ftp.basedir=/<br />
<br />
#deploy to LIVE server<br />
deploy.live.ftp.host=myliveftpsite.com<br />
deploy.live.ftp.username=myusername<br />
deploy.live.ftp.password=mypassword<br />
deploy.live.ftp.basedir=/
</p>
<p>It contains information on the local directory where I do local testing,  the FTP site where the development server resides, and the live server where the final deployment will happen. My build.xml file looks like this:</p>
<p class="code">&lt;project name=&quot;My Project&quot; basedir=&quot;../.&quot; default=&quot;deploy.local&quot;&gt;<br />
	&nbsp;&lt;!-- Load properties --&gt;<br />
	&nbsp;&lt;property file=&quot;build/build.properties&quot;/&gt;<br />
	<br />
	&nbsp;&lt;target name=&quot;deploy.local&quot; description=&quot;Deploy to local webserver&quot;&gt;&nbsp;&nbsp;<br />
	&nbsp;&nbsp;&lt;echo&gt;Copying files to local webserver...&lt;/echo&gt;<br />
	&nbsp;&nbsp;&lt;mkdir dir=&quot;${deploy.dir.local}&quot;/&gt;<br />
	&nbsp;&nbsp;&lt;copy todir=&quot;${deploy.dir.local}&quot;&gt;<br />
	&nbsp;&nbsp;&nbsp;&lt;fileset dir=&quot;.&quot;&gt;<br />
	&nbsp;&nbsp;&nbsp;  &lt;include name=&quot;**/*&quot; /&gt; <br />
	&nbsp;&nbsp;&nbsp;  &lt;exclude name=&quot;build/*&quot; /&gt; <br />
	&nbsp;&nbsp;&nbsp;&lt;/fileset&gt;<br />
	&nbsp;&nbsp;&lt;/copy&gt;&nbsp;&nbsp;<br />
	&nbsp;&lt;/target&gt;<br />	
	&nbsp;<br />
	&nbsp;&lt;target name=&quot;deploy.dev&quot; description=&quot;Release to remote dev webserver&quot;&gt;&nbsp;&nbsp;<br />
	&nbsp;&nbsp;&lt;echo&gt;Copying files to dev FTP server ${deploy.dev.ftp.host}...&lt;/echo&gt;<br />
&nbsp;&nbsp;&lt;ftp server=&quot;${deploy.dev.ftp.host}&quot;<br />
&nbsp;&nbsp;&nbsp;remotedir=&quot;${deploy.dev.ftp.basedir}&quot;<br />
&nbsp;&nbsp;&nbsp;userid=&quot;${deploy.dev.ftp.username}&quot;<br />
&nbsp;&nbsp;&nbsp;password=&quot;${deploy.dev.ftp.password}&quot;<br />
&nbsp;&nbsp;&nbsp;depends=&quot;yes&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;fileset dir=&quot;.&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;  &lt;include name=&quot;**/*&quot; /&gt; <br />
&nbsp;&nbsp;&nbsp;  &lt;exclude name=&quot;build/*&quot; /&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&lt;/fileset&gt;<br />
&nbsp;&nbsp;&lt;/ftp&gt;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&lt;/target&gt;<br />
&nbsp;<br />
&nbsp;&lt;target name=&quot;deploy.live&quot; description=&quot;Release to remote webserver&quot;&gt;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&lt;echo&gt;Copying files to live FTP server ${deploy.live.ftp.host}...&lt;/echo&gt;<br />
&nbsp;&nbsp;&lt;ftp server=&quot;${deploy.live.ftp.host}&quot;<br />
&nbsp;&nbsp;&nbsp;remotedir=&quot;${deploy.live.ftp.basedir}&quot;<br />
&nbsp;&nbsp;&nbsp;userid=&quot;${deploy.live.ftp.username}&quot;<br />
&nbsp;&nbsp;&nbsp;password=&quot;${deploy.live.ftp.password}&quot;<br />
&nbsp;&nbsp;&nbsp;depends=&quot;yes&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;fileset dir=&quot;.&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;  &lt;include name=&quot;**/*&quot; /&gt; <br />
&nbsp;&nbsp;&nbsp;  &lt;exclude name=&quot;build/*&quot; /&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&lt;/fileset&gt;<br />
&nbsp;&nbsp;&lt;/ftp&gt;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&lt;/target&gt;&nbsp;<br />
&lt;/project&gt;</p>
<p>A couple of explanations: the <em>fileset</em> tag includes the directory outside of the build directory (project root in this case), and the exclude tag excludes the build directory from the build process. You don't want these in your deployment directories. The <em>depends</em> attribute in the FTP tag allow you to exclude unchanged files from the FTP process, otherwise the build will FTP the entire project each time.</p>
<p>With these files in place, you can right-click on the build.xml file in the project and click Run As &gt; Ant Build.... This brings up the Run dialog (clicking the option  without the elipsis runs the build using the last known configuration). </p>
<p><img src="http://www.tom-muck.com/blog/images/build.jpg" alt="Ant Build Script for ColdFusion Builder" width="584" height="456" /></p>
<p>Here, you can simply check the deployment options you want to use. If you are doing only local testing, check only the deploy.local box. If you want only the dev server, check that box. You can also check any combination. Next time, you can click Run As &gt; Ant Build without the elipsis and it will just run using the last configuration. For example, if doing only local testing, check that box, so every time you hit the Run button, only local files will be deployed. The process is fast. Only changed files are deployed.</p>
<p><img src="http://www.tom-muck.com/blog/images/run.jpg" alt="Run button in ColdFusion Builder" width="200" height="60" /><br />
<em>Run button </em></p>
<p>When you run the build, the Console window will show the results of building</p>
<blockquote>
	<p style="color:blue">Buildfile: <u>C:\Documents and Settings\tmuck\Adobe ColdFusion Builder workspace\myproject\build\build.xml</u><br />
		deploy.local:<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:orange">[echo] Copying files to local webserver...</span><br />
		[copy] Copying 1 file to c:\inetpub\wwwroot\myproject<br />
		BUILD SUCCESSFUL<br />
		Total time: 407 milliseconds</p>
</blockquote>
<p>I hope that helps someone.</p>]]></description> 
			<link>http://www.tom-muck.com/blog/index.cfm?newsid=194</link>
			<guid isPermaLink="true">http://www.tom-muck.com/blog/index.cfm?newsid=194</guid>
			<pubDate>Mon, 14 Feb 2011 11:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Upgrades and Backups: Automated Backup for SQL Express</title>
			<description><![CDATA[<p>I've been lax in my blogging and my ColdFusion duties lately. I just today installed CF 9 for the first time, and I'm usually way ahead of the curve on that. Work has been super busy, and we are stuck on CF 8 at the office for the foreseeable future. So far, the upgrade has been quick and painless. Now I need to start diving into the new features. I think the main feature for me is the general performance enhancements, but I'm sure I'll get into the Office integration as well. One nice thing about upgrading is being able to try out the features as Enterpise version for a month before putting in the license key for Pro version and losing the functionality. 
</p>
<p>I was also thinking about a SQL Server upgrade. I'm running the Express version, which is perfect for most small-medium web sites. One thing it doesn't have is a way to do maintenance. I've been doing manual backups. Well, after looking at the price of a SQL Server license, I decided to look for a good automated backup. I found a backup script online at <a href="http://www.mssqltips.com/tip.asp?tip=1174" target="_blank">http://www.mssqltips.com/tip.asp?tip=1174</a> and modified it to meet my needs (made directory name a parameter)</p>
<p class="code"> CREATE PROCEDURE [dbo].[sp_BackupDatabase] <br />
	@databaseName nvarchar(1024), <br />
	@type CHAR(1) = 'F', <br />
	@directory nvarchar(1024) = 'C:\SQLBackup'<br />
	AS <br />
	BEGIN <br />
	SET NOCOUNT ON; <br />
	<br />
DECLARE @sql NVARCHAR(1000) <br />
DECLARE @currentDate NVARCHAR(20) <br />
<br />
SELECT @currentDate = REPLACE(CONVERT(VARCHAR, GETDATE(),111),'/',') + <br />
REPLACE(CONVERT(VARCHAR, GETDATE(),108),':',') <br />
<br />
IF @type = 'F' <br />
	SET @sql = 'BACKUP DATABASE ' + <br />
	@databaseName + <br />
	' TO DISK = ' + <br />
	@directory + '\' + <br />
	@databaseName + '\' + <br />
	@databaseName + '_Full_' + <br />
@currentDate + '.BAK' <br />
<br />
IF @type = 'D' <br />
	SET @sql = 'BACKUP DATABASE ' + <br />
	@databaseName + <br />
	' TO DISK = ' + <br />
	@directory + '\' +<br />
	@databaseName + '\' + <br />
	@databaseName + '_Diff_' + <br />
@currentDate + '.BAK' WITH DIFFERENTIAL' <br />
<br />
IF @type = 'L' <br />
	SET @sql = 'BACKUP LOG ' + <br />
	@databaseName + <br />
	' TO DISK = ' + <br />
	@directory + '\' +<br />
	@databaseName + '\' + <br />
	@databaseName + '_Log_' + <br />
@currentDate + '.TRN' <br />
<br />
EXECUTE sp_executesql @sql <br />
END </p>
<p>Next, I created my own stored procedure for deleting old database backups. Basically, in a "real" SQL Server, the backup task will delete backups back to a date you specify. We'll pass in the database name, type of backup, timeframe (in weeks), and the directory name. </p>
<p class="code">CREATE PROCEDURE [dbo].[sp_RemoveOldBackups] <br />
@databaseName sysname, <br />
@backupType CHAR(1) = 'F', <br />
@howlong integer = 4, <br />
@directory nvarchar(1024) = 'C:\SQLBackup'<br />
AS <br />
BEGIN <br />
SET NOCOUNT ON; <br />
DECLARE @type nchar(3)<br />
SET @type = 'BAK'<br />
if @backupType = 'L' BEGIN SET @type = 'TRN' END<br />
DECLARE @backupPath nvarchar(2048)<br />
SET @backupPath = @directory + '\' + @databaseName<br />
declare @DeleteDate nvarchar(50)<br />
declare @DeleteDateTime datetime<br />
set @DeleteDateTime = DateAdd(ww, -1 * @howlong, GetDate())<br />
set @DeleteDate = (Select Replace(Convert(nvarchar, @DeleteDateTime, 111), '/', '-') + 'T' + Convert(nvarchar, @DeleteDateTime, 108))<br />
<br />
EXECUTE master.dbo.xp_delete_file 0, @backupPath, @type, @DeleteDate,1<br />
<br />
END </p>
<p>Now, rather than use Windows scheduled tasks for this, I wanted a simple ColdFusion scheduled task. The stored procedures should be stored in the master database, so you'll need a datasource that will allow execute permissions on these two stored procedures. Finally, save the following into a ColdFusion file and store it in one of your web sites. Set the scheduled task to execute once a week.</p>
<p class="code">&lt;cftry&gt;<br />
	&lt;!--- List of databases to backup ---&gt;<br />	
	&lt;cfset variables.databases = &quot;mydatabase,Northwind,myOtherDatabase&quot; /&gt;<br />
	&lt;!--- Path to the backup folder ---&gt;
	<br />
	&lt;cfset variables.backupPath = &quot;Z:\SQLBackup&quot; /&gt;<br />
	&lt;!--- How many weeks to keep backups ---&gt;
	<br />
&lt;cfset variables.howLong = &quot;4&quot; /&gt;<br />
<br />
&lt;!--- Loop through the databases ---&gt;<br />&lt;cfloop from=&quot;1&quot; to=&quot;#ListLen(variables.databases)#&quot; index=&quot;variables.i&quot;&gt;<br />
	&nbsp;&nbsp;&lt;cftry&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;!---	First, backup the database ---&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&lt;cfstoredproc datasource=&quot;master&quot; procedure=&quot;sp_BackupDatabase&quot;&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;cfprocparam cfsqltype=&quot;cf_sql_varchar&quot; value=&quot;#ListGetAt(variables.databases, variables.i)#&quot; /&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;cfprocparam cfsqltype=&quot;cf_sql_char&quot; value=&quot;F&quot; /&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;cfprocparam cfsqltype=&quot;cf_sql_varchar&quot; value=&quot;#variables.backupPath#&quot; /&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&lt;/cfstoredproc&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--- Next,	delete the old databases ---&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&lt;cfstoredproc datasource=&quot;master&quot; procedure=&quot;sp_RemoveOldBackups&quot;&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;cfprocparam cfsqltype=&quot;cf_sql_varchar&quot; value=&quot;#ListGetAt(variables.databases, variables.i)#&quot; /&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;cfprocparam cfsqltype=&quot;cf_sql_char&quot; value=&quot;F&quot; /&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;cfprocparam cfsqltype=&quot;cf_sql_integer&quot; value=&quot;4&quot; /&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;cfprocparam cfsqltype=&quot;cf_sql_varchar&quot; value=&quot;#variables.backupPath#&quot; /&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&lt;/cfstoredproc&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&lt;cfcatch&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;cflog application=&quot;yes&quot; text=&quot;Database backup failed #now()# for #ListGetAt(variables.databases, i)#&quot; /&gt;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&lt;/cfcatch&gt;<br />
	&nbsp;&nbsp;&lt;/cftry&gt; <br />
&lt;/cfloop&gt;<br />&lt;cfcatch&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;cflog application=&quot;yes&quot; text=&quot;Database backup failed #now()# outside loop&quot; /&gt;<br />&lt;/cfcatch&gt;<br />
&lt;/cftry&gt;
</p>
<p>Obviously, this is the bare bones of a backup system. You can modify the scripts to perform differential backups to meet your needs, log file backups, and add some error handling to the stored procedures, but this is a good start.</p>
]]></description> 
			<link>http://www.tom-muck.com/blog/index.cfm?newsid=193</link>
			<guid isPermaLink="true">http://www.tom-muck.com/blog/index.cfm?newsid=193</guid>
			<pubDate>Thu, 10 Feb 2011 00:16:41 GMT</pubDate>
		</item>
	</channel>
</rss> 