<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Chomper Stomping &#187; Software</title>
	<atom:link href="http://blog.chomperstomp.com/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.chomperstomp.com</link>
	<description>AJAX/JavaScript/CSS/HTML, Flash Game Development (AS 2.0/AS 3.0), iPhone App Development, Java/PHP/Python/ActionScript and other random techie tidbits I've collected</description>
	<lastBuildDate>Thu, 05 Aug 2010 01:03:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>POOF &#8211; Recursive Directory Listing in Python</title>
		<link>http://blog.chomperstomp.com/poof-recursive-directory-listing-in-python/</link>
		<comments>http://blog.chomperstomp.com/poof-recursive-directory-listing-in-python/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 01:03:04 +0000</pubDate>
		<dc:creator>Christopher McCulloh</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[programming concepts]]></category>
		<category><![CDATA[prototyping]]></category>
		<category><![CDATA[POOF]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[recursive file listing]]></category>

		<guid isPermaLink="false">http://blog.chomperstomp.com/?p=578</guid>
		<description><![CDATA[I&#8217;ve begun working on a new project, POOF (Project Orphaned Object Finder). It searches through a directory and all sub-directories to detect files that are not referenced by any other files, or not referenced by a file you target or any of that file&#8217;s targets etc. Basically, looking for unused or orphaned resources in a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve begun working on a new project, <a href="http://blog.chomperstomp.com/projects/poof-project-orphaned-object-finder/">POOF (Project Orphaned Object Finder)</a>. It searches through a directory and all sub-directories to detect files that are not referenced by any other files, or not referenced by a file you target or any of that file&#8217;s targets etc. Basically, looking for unused or orphaned resources in a project of any language (but JS/HTML/CSS to start).</p>
<p><a href="http://github.com/cmcculloh/POOF/commit/4e1c7e7d5d1b04987ccffc95bef45c6dc68bb48a">Tonight I worked on getting the directories listing recursively</a>.</p>
<p>I&#8217;m sure there&#8217;s some sort of built-in function or UNIX function I could call or something like that, but half of my goal with this project is learning Python, so, yeah. I wanted to do this one by hand.</p>
<p>General overview of my approach:</p>
<p>I made a function &#8220;listDirectories&#8221; which you pass three arguments to; directory, tabStops, path.</p>
<p>The directory is the directory you want to go to.<br />
The tabStops is how many tabStops you want to display before the directory listing.<br />
The path is the path you are coming from.</p>
<p>The function calls itself each time it encounters a subdirectory. You start the whole thing off with a hard-coded seed. The next step is to un-hard-code this seed so you can pass the seed values in from the command line, or just call the program from your current directory (which is how you will kick off the whole thing when this project is complete). Something like:</p>
<p>POOF.py -d=directory<br />
or<br />
POOF.py<br />
or<br />
POOF.py -d=directory -t=\t\t -p=C:\Projects\POOF</p>
<p>This will of course need to be ironed out because that third one looks UGLY.</p>
<p>Here&#8217;s the current iteration of the code. Keep in mind this is my first real Python program:<br />
<script src="http://gist.github.com/509052.js?file=10"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chomperstomp.com/poof-recursive-directory-listing-in-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flurl &#8211; Part 5: The Unicorn/Panda Rainbow Connection</title>
		<link>http://blog.chomperstomp.com/flurl-part-5-the-unicornpanda-rainbow-connection/</link>
		<comments>http://blog.chomperstomp.com/flurl-part-5-the-unicornpanda-rainbow-connection/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 20:53:32 +0000</pubDate>
		<dc:creator>Christopher McCulloh</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[TOTW]]></category>
		<category><![CDATA[programming concepts]]></category>
		<category><![CDATA[prototyping]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[web sites]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[How to]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.chomperstomp.com/?p=564</guid>
		<description><![CDATA[Wait, where&#8217;s parts 2 through 4? Not done yet, but I&#8217;m done with the project and I may never get around to posting those other parts and wanted to post the finished product. Again, Flurl is a little practice exercise I did. A mashup of Flickr and Qurl and no external JS libraries used (so [...]]]></description>
			<content:encoded><![CDATA[<p>Wait, where&#8217;s parts 2 through 4? Not done yet, but I&#8217;m done with the project and I may never get around to posting those other parts and wanted to post the finished product.</p>
<p>Again, Flurl is a little practice exercise I did. A mashup of Flickr and Qurl and no external JS libraries used (so I wrote my own).</p>
<p>I&#8217;m taking <a href="http://www.flickr.com/explore/panda">this photo stream</a> and sending the URLs to Qurl for shortening (using their API). This is the end result (best experienced in Chrome): <a href="http://chomperstomp.com/flurl/">The Unicorn/Panda Rainbow Connection</a> (Be careful, since the photos are completely random &#8220;popular&#8221; flickr photos, even though they purport to be &#8220;safe&#8221; there are definitely some NSFW photos now and then).</p>
<p>Some thoughts: Qurl sucks as far as response time. I had to limit my photos to five because Qurl was so darn slow responding to my requests and there is no way to do a batch request. BAD. What would I do to fix this? How about dump Qurl entirely. Flickr has their own shortening algorithm that doesn&#8217;t even require an API call. If I had to keep using Qurl? I&#8217;d go ahead and load the photos to the page for the user with the long links, then I&#8217;d make a button on the photo (or link or something) that allowed them to request a shortened URL from Qurl. They click the button/link and an AJAX request fires off grabbing the URL and giving it to them.</p>
<p>I couldn&#8217;t get the Flickr API to return only a certain number of Photos. I did everything I could find that it said I should do to get it to only return five or ten photos, but alas, it didn&#8217;t work. So I had to make a loop that just used the first five/ten photos and ignore the rest. If it weren&#8217;t for Qurl, which takes over 30 seconds most times to shorten 5 urls, I wouldn&#8217;t care how many Flickr sent back. Still weird and wasteful and if I had more time I&#8217;d look into it until I got it working.</p>
<p>When I removed Qurl from the loop, the photos returned in less than five seconds flat (awesome!). However, with Qurl the response time ranges from 30s to 90s. So AS SOON AS I get the response back I fire off another request. If the response only took 5s total, I&#8217;d put a timeout or interval or something that queried only once a minute or so. Or, better yet, I&#8217;d make it fire off the request 10 seconds before my photo scroll ended and just put the new photos above my current scroll and make the scroll seem endless (like the pandas).</p>
<p>I spent far too much time on the library. I had big plans and it turned out I wrote way more code than I ended up needing because I was doing VERY LITTLE DOM manipulation. Of course if I worked on this for another forty hours or so the library really would have paid off because it would have saved me time as my interactions got more and more complex. If I had come up with the full design before I started writing the code I would have known I wasn&#8217;t going to need much DOM interaction, but as it stands I didn&#8217;t have any idea what the page was going to look like until I was almost completely finished with the cQuery JS library.</p>
<p>Queue. Something interesting I came up with was a way of handling mutliple simultaneous AJAX requests and multiple simultaneous animations. A queue. </p>
<p>For the AJAX requests I had an AJAX queue that just held all of my requests (didn&#8217;t end up needing this, but it is there if I decide to do the Qurl thing separate from the photo retrieval). I hope to go into the AJAX queue in more detail in another post, but the reason I needed it was the callback function. I needed somewhere to put it until the request completed. </p>
<p>For the animation queue, I didn&#8217;t want to set up a whole bunch of different &#8220;set intervals&#8221; or &#8220;set timeouts&#8221; so instead I made an &#8220;animations&#8221; array and then made ONE setInterval that called a function that looped through the animation array. Each spot in the array held an &#8220;animation&#8221; Object, which had an &#8220;animate()&#8221; function. The animate function would get called on the object and be allowed to run in the proper context (with &#8220;this&#8221; functioning as expected). This ended up saving me a lot of code and headaches and made my JS run way faster than it otherwise would have. Of course I ended up only having one animation run at a time and I have no standard way of removing from the queue, but I could add that to the library and there is definitely room for more animations.</p>
<p><script src="http://gist.github.com/450528.js?file=animation%20queue"></script></p>
<p>One last thing, the song is from <a href="http://www.thewikies.com/">Jonathan Neal</a> (<a href="http://www.youtube.com/watch?v=2NE9O8hTvfI">who is hilarious</a>). I converted it to .ogg format because Firefox didn&#8217;t allow anything else, however it appears that Safari doesn&#8217;t accept .ogg format, so if I had more time I&#8217;d make something to detect with browser I&#8217;m in and respond with the .mp3 format instead&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chomperstomp.com/flurl-part-5-the-unicornpanda-rainbow-connection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS 3 Animation? Yes Please!</title>
		<link>http://blog.chomperstomp.com/css-3-animation-yes-please/</link>
		<comments>http://blog.chomperstomp.com/css-3-animation-yes-please/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 17:42:31 +0000</pubDate>
		<dc:creator>Christopher McCulloh</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[programming concepts]]></category>
		<category><![CDATA[prototyping]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[How to]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.chomperstomp.com/?p=561</guid>
		<description><![CDATA[Ok, I&#8217;m so mega busy right now working on Flurl. I need to have it done TONIGHT because I&#8217;ve got other pressing obligations coming up and I just won&#8217;t have any time to work on it after today. I wanted to have movement and sound and I wanted it REALLY CORNY as an homage to [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, I&#8217;m so mega busy right now working on Flurl. I need to have it done TONIGHT because I&#8217;ve got other pressing obligations coming up and I just won&#8217;t have any time to work on it after today.</p>
<p>I wanted to have movement and sound and I wanted it REALLY CORNY as an homage to <a href="http://www.flickr.com/explore/panda">the flickr pandas from whom it gets it&#8217;s photos</a>.</p>
<p><a href="http://blog.chomperstomp.com/css3animationtest/rotateTest.html">Here&#8217;s a little preview (Webkit only)</a>.</p>
<p>That&#8217;s just a little taste. It&#8217;s going to be much more. It&#8217;s going to have music and it&#8217;s going to have a photo stream.</p>
<p>Just a little tid-bit though I wanted to explain how I animated it (It&#8217;s a grand total of 62 lines from &lt;html> to &lt;/html>). I didn&#8217;t use any JavaScript at all, it&#8217;s all CSS3 (amazing!).</p>
<p>First I designed the animation:</p>
<p><code>    	@-webkit-keyframes turnit{<br />
    		from{<br />
    			-webkit-transform: rotate(0deg);<br />
    		}<br />
    		to{<br />
    			-webkit-transform: rotate(-364deg);<br />
    		}<br />
    	}</code></p>
<p>Yeah, really simple I know. I&#8217;m just telling it to rotate from 0deg to -364deg. Note that I named the animation &#8220;turnit&#8221;.</p>
<p>Next I applied the animation to my div.</p>
<p><code>	#turningBG{<br />
    		-webkit-animation-name: turnit;<br />
    		-webkit-animation-iteration-count: infinite;<br />
		-webkit-animation-duration: 30s;<br />
		-webkit-animation-timing-function: linear;<br />
    	}</code></p>
<p>Line 1: use the animation &#8220;turnit&#8221; we defined before. NOTE THAT THE ANIMATION DEFINITION MUST COME BEFORE WE TRY AND APPLY IT. If I tried to use it before I defined it in my stylesheet, nothing would happen.<br />
Line 2: Loop forever.<br />
Line 3: Last for 30s.<br />
Line 4: Make it smooth (linear). Could ease-in or out or whatever, but I wanted it to be seamless with no apparent start or stop.</p>
<p>Notes: If you look at the source you will see that I made my turning div 3200px wide and tall and then put it inside of a container that was 100% wide and tall and overflow hidden to keep there from being scrollbars. I then positioned the div so the center of it would be right under the unicorn&#8217;s foot.</p>
<p><a href="http://www.w3.org/TR/css3-animations/">Here&#8217;s some reference for css3 animation stuff.</a> <a href="http://webkit.org/blog/138/css-animation/">Here&#8217;s some more</a>.</p>
<p>Here&#8217;s the entire &#8220;view source&#8221;:<br />
<script src="http://gist.github.com/448803.js?file=CSS3%20Animation%20Rotation"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chomperstomp.com/css-3-animation-yes-please/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flurl &#8211; Part 1.a: Rolling your own JavaScript library, setting up the core</title>
		<link>http://blog.chomperstomp.com/flurl-part-1-a-rolling-your-own-javascript-library-setting-up-the-core/</link>
		<comments>http://blog.chomperstomp.com/flurl-part-1-a-rolling-your-own-javascript-library-setting-up-the-core/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 05:30:09 +0000</pubDate>
		<dc:creator>Christopher McCulloh</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[programming concepts]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[about]]></category>
		<category><![CDATA[cQuery]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[How to]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[toolkit]]></category>

		<guid isPermaLink="false">http://blog.chomperstomp.com/?p=549</guid>
		<description><![CDATA[Flurl is a mashup I did recently as a practice exercise. It takes a flickr panda photo-stream, displays a photo, and uses qurl to make a shortened URL link to the photo. These are the notes I took while I was doing it. The project can be found on GitHub at http://github.com/cmcculloh/Flurl For this exercise [...]]]></description>
			<content:encoded><![CDATA[<p>Flurl is a mashup I did recently as a practice exercise.</p>
<p>It takes a flickr panda photo-stream, displays a photo, and uses qurl to make a shortened URL link to the photo.</p>
<p>These are the notes I took while I was doing it.</p>
<p>The project can be found on GitHub at <a href="http://github.com/cmcculloh/Flurl">http://github.com/cmcculloh/Flurl</a></p>
<p>For this exercise I didn&#8217;t want to use any JavaScript library. Normally I&#8217;d use jQuery (naturally) but I wanted to feel the pain of plain jane JavaScript again since it had been well over a year since I had done any AJAX without a library.</p>
<p>I decided I&#8217;d roll my own library that I could use to encapsulate the AJAX and DOM selection framework to keep it seperate from the actual app and to simplify my life in actually writing the app.</p>
<p>Since I wanted my library to feel a little jQuerish I decided as an homage I&#8217;d name it cQuery and use the _ instead of the $.</p>
<p>Step 1, the ubiquitous self executing anonymous function:</p>
<p><code>(function(window, document, undefined){})(this, document);</code></p>
<p>I&#8217;ll break it down. The starting paren &#8220;(&#8221; and it&#8217;s mate are just a &#8220;cool guy&#8221; coding convention to let people know, &#8220;this is weird! This is a library! This ain&#8217;t yo mama&#8217;s JavaScript!&#8221;. It&#8217;s the same as this:</p>
<p><code>function(window, document, undefined){}(this, document);</code></p>
<p>Which is simply just a function that immediately calls itself. The main reason to do this is to prepare our code for minification. When we minify, it will end up something like this:</p>
<p><code>(function(A,B,C){})(this, document);</code></p>
<p>So anywhere in our library where we had &#8220;window&#8221; or &#8220;document&#8221; or &#8220;undefined&#8221; it will not be the much shorter &#8220;A&#8221;, &#8220;B&#8221; or &#8220;C&#8221;, much smaller!</p>
<p>Paul Irish explains this in a *little* more detail in his <a href="http://paulirish.com/2010/10-things-i-learned-from-the-jquery-source/">10 Things I Learned From the jQuery Source</a> video.</p>
<p>Next we build the core function of our library, add it to the namespace and give it it&#8217;s &#8220;_&#8221; shortcut:</p>
<p><code>var cQuery = function(elm){<br />
};</p>
<p>window.cQuery = window._ = cQuery;</code></p>
<p>Note that if we didn&#8217;t do that last line &#8216;cQuery&#8217; would not be available in the rest of our JavaScript since it is hidden away inside of the closure we talked about above.</p>
<p>I really like the way jQuery works, and I want my library to mimic this. So calling:</p>
<p><code>cQuery("#domElementById").someMethod().anotherMethod();</code></p>
<p>ought to work.</p>
<p>Functions in JavaScript are just Objects that you can invoke. Functions can have their own methods, properties, etc. So basically cQuery is just an object that can DO something on it&#8217;s own so we can say cQuery() instead of cQuery.doThing(). Much more convenient. So basically our var cQuery = function(elm){} code is just setting up my cQuery library object in a way that it can be called and passed the dom element we are working with.</p>
<p>Since I want to be able to &#8220;chain&#8221; things in my library, I&#8217;ll need to add the methods in there that enable my chaining. I do this by ending my cQuery function with a return statement that returns an object containing the methods I wish to be available for chaining, each of these methods in turn returning an instance of the cQuery object (unless the method is specifically supposed to return something else, which makes it a destructive method because it ends my chaining), <a href="http://pastebin.me/ad4b222f4ddf23d70fb4b9446bca1a07">like in this example</a>:</p>
<p><code>(function(){<br />
var c = function(){<br />
  return{<br />
    blah:function(){<br />
      alert("blah");<br />
      return c();<br />
    },<br />
    blah2:function(){<br />
      alert("blah2");<br />
      return c();<br />
    }<br />
  };<br />
};</p>
<p>window.c = c;<br />
})();</p>
<p>c().blah().blah2();</code></p>
<p>That&#8217;s it! Now I&#8217;ve got the core of my JavaScript library all set up, chaining enabled, library closed in but available on the namespace, all ready to be made useful! Here&#8217;s the code we&#8217;ve got so far:</p>
<p>(function(window, document, undefined) {</p>
<p>var cQuery = function(elm){<br />
//DOM selection and storage will go here</p>
<p>	return {<br />
//chain-able library methods go here<br />
	};<br />
};</p>
<p>//make sure our library is exposed to the global namespace and make a shortcut &#8220;_&#8221; so we don&#8217;t have to type cQuery every time.<br />
window.cQuery = window._ = cQuery;</p>
<p>})(this, document);</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chomperstomp.com/flurl-part-1-a-rolling-your-own-javascript-library-setting-up-the-core/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using jQuery to bind a function to a select box change and retrieve the selected value</title>
		<link>http://blog.chomperstomp.com/using-jquery-to-bind-a-function-to-a-select-box-change-and-retrieve-the-selected-value/</link>
		<comments>http://blog.chomperstomp.com/using-jquery-to-bind-a-function-to-a-select-box-change-and-retrieve-the-selected-value/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 14:51:02 +0000</pubDate>
		<dc:creator>Christopher McCulloh</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[bind]]></category>
		<category><![CDATA[change]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[How to]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[onchange]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[select]]></category>
		<category><![CDATA[select box]]></category>
		<category><![CDATA[selected]]></category>
		<category><![CDATA[selector]]></category>
		<category><![CDATA[value]]></category>

		<guid isPermaLink="false">http://blog.chomperstomp.com/?p=536</guid>
		<description><![CDATA[If you need to bind a function to be called when a user selects an option from a select box using jQuery, you&#8217;ve come to the right place. There are several different ways to skin this cat, but basically here is what we are going to do: 1. Bind a change event listener to the [...]]]></description>
			<content:encoded><![CDATA[<p>If you need to bind a function to be called when a user selects an option from a select box using jQuery, you&#8217;ve come to the right place.</p>
<p>There are several different ways to skin this cat, but basically here is what we are going to do:</p>
<p>1. Bind a change event listener to the select box itself<br />
2. When the box is changed, call a function that detects and retrieves the selected value</p>
<p>Here&#8217;s the code:</p>
<p><code>            $("#selectBoxId").change(function(){<br />
                var selectedValue = $(this).find(":selected").val();<br />
                console.log("the value you selected: " + selectedValue);<br />
            });</code></p>
<p>Let&#8217;s break it down line by line.</p>
<p>Line 1:<br />
<code>            $("#selectBoxId").change(function(){</code></p>
<p><code>$("#selectBoxId")</code> grabs the DOM element out of the html and makes a jQuery object.<br />
<code>.change(function(){});</code> binds a function to the change event of the select box. Any time anyone changes the selection in the select box this function will fire off</p>
<p>Line 2:<br />
<code>                var selectedValue = $(this).find(":selected").val();</code>                </p>
<p><code>var selectedValue</code> creates a new variable that the selected value will be stored in.<br />
<code>$(this)</code> creates a jQuery object based on the select box that triggered the function.<br />
<code>.find(":selected")</code> looks a the select box that triggered the function and finds the option that got selected.<br />
<code>.val()</code> gets the &#8220;value&#8221; of the selected option.</p>
<p>Line 3:<br />
<code>                console.log("the value you selected: " + selectedValue);</code></p>
<p>this just calls the firebug console in firefox and tells it you want to print something out to it. You don&#8217;t need this line, but this line shows you that the above code did indeed grab the selected value out of the select box.</p>
<p>Line 4:<br />
<code>            });</code><br />
This just closes the open change function started on line 1.</p>
<p>This code assumes that you have an HTML select box with an id of &#8220;selectBoxId&#8221;. If you have a series of select boxes that all need the same function bound to them for some reason you can give them all the same class name (say &#8220;selectBoxesClass&#8221;) and select them like so: $(&#8220;.selectBoxesClass&#8221;).</p>
<p><code>&lt;!DOCTYPE html><br />
&lt;html><br />
  &lt;head><br />
    &lt;meta charset="utf-8" /><br />
    &lt;title>Conforming XHTML 1.0 Strict Template&lt;/title><br />
    &lt;script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js">&lt;/script><br />
    &lt;script type="text/javascript"><br />
        $(function(){<br />
            $("#selectBoxId").change(function(){<br />
                var selectedValue = $(this).find(":selected").val();<br />
                console.log("the value you selected: " + selectedValue);<br />
            });<br />
        });<br />
    &lt;/script><br />
&lt;/head></p>
<p>&lt;body><br />
  &lt;select id="selectBoxId"><br />
    &lt;option>Foo&lt;/option><br />
    &lt;option>Bar&lt;/option><br />
    &lt;option selected="selected">Beh&lt;/option><br />
  &lt;/select><br />
&lt;/body><br />
&lt;/html></code></p>
<p><a href="http://pastebin.me/5b9b49d7e96cc26bcf6567ff88b11ced">Here is the example</a></p>
<p>Here are some resources for further reading:<br />
<a href="http://jquery.com/">jQuery</a><br />
<a href="http://api.jquery.com/change/">jQuery change</a><br />
<a href="http://api.jquery.com/find/">jQuery find</a><br />
<a href="http://api.jquery.com/val/">jQuery val</a><br />
<a href="http://api.jquery.com/selected-selector/">jQuery :selected selector</a><br />
<a href="http://api.jquery.com/element-selector/">jQuery Element selector</a><br />
<a href="http://api.jquery.com/id-selector/">jQuery id selector</a><br />
<a href="http://api.jquery.com/class-selector/">jQuery class selector</a><br />
<a href="http://www.mozilla.com/en-US/firefox/firefox.html">Firefox</a><br />
<a href="http://getfirebug.com/">Firebug</a><br />
<a href="http://getfirebug.com/wiki/index.php/Console_API#console.log.28object.5B.2C_object.2C_....5D.29">Firebug Console</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chomperstomp.com/using-jquery-to-bind-a-function-to-a-select-box-change-and-retrieve-the-selected-value/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mozy Resolution</title>
		<link>http://blog.chomperstomp.com/mozy-resolution/</link>
		<comments>http://blog.chomperstomp.com/mozy-resolution/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 02:18:12 +0000</pubDate>
		<dc:creator>Christopher McCulloh</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[web sites]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[backup]]></category>

		<guid isPermaLink="false">http://blog.chomperstomp.com/?p=526</guid>
		<description><![CDATA[About a week ago I talked about trying to download my Mozy account and get a refund after being unable to make a complete backup for over two months. I just got this e-mail: Hello Christopher, I have processed the refunds and reverted you to a free account. If you don&#8217;t need any more help [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.chomperstomp.com/downgrading-my-mozy-account-and-getting-a-refund/">About a week ago I talked about trying to download my Mozy account and get a refund after being unable to make a complete backup for over two months</a>.</p>
<p>I just got this e-mail:</p>
<blockquote><p>Hello Christopher,<br />
I have processed the refunds and reverted you to a free account.</p>
<p>If you don&#8217;t need any more help on these tickets, I will close them for you.</p>
<p>Let me know if you have any questions.</p>
<p>Sincerely,<br />
Bruce McMullen<br />
[e-mail redacted by blog author]<br />
L2 Mozy Support Technician<br />
Mozy Support is available 24/7<br />
My Schedule: Mon &#8211; Fri 12:00pm &#8211; 8:00pm MST<br />
Mozy, from EMC </p></blockquote>
<p>Checked my bank account and sure enough, there was the money! Logged into my Mozy account and sure enough it was downgraded. Nicely done Mozy! I&#8217;ll keep you in mind next time I&#8217;m thinking about trying online backup&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chomperstomp.com/mozy-resolution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TOTW: Freenode IRC Webchat Client</title>
		<link>http://blog.chomperstomp.com/518/</link>
		<comments>http://blog.chomperstomp.com/518/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 12:00:39 +0000</pubDate>
		<dc:creator>Christopher McCulloh</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[TOTW]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[web sites]]></category>
		<category><![CDATA[browser tools]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[irc]]></category>
		<category><![CDATA[Tool of the Week]]></category>
		<category><![CDATA[web apps]]></category>

		<guid isPermaLink="false">http://blog.chomperstomp.com/?p=518</guid>
		<description><![CDATA[This week&#8217;s Tool of the Week is The Freenode IRC Webchat Client. What it does: Allows you to chat on Freenode IRC through your browser, even if your corporate proxy blocks IRC (IRC is the third biggest security hole for corporate networks). When you need it: When you don&#8217;t have an IRC Client installed When [...]]]></description>
			<content:encoded><![CDATA[<p>This week&#8217;s Tool of the Week is <a href="http://webchat.freenode.net/">The Freenode IRC Webchat Client</a>.</p>
<p><strong>What it does:</strong></p>
<p>Allows you to chat on Freenode IRC through your browser, even if your corporate proxy blocks IRC (IRC is the third biggest security hole for corporate networks).</p>
<p><strong>When you need it:</strong></p>
<ul>
<li>When you don&#8217;t have an IRC Client installed</li>
<li>When IRC is blocked</li>
</ul>
<p><strong>How to use it:</strong><br />
<object id="scPlayer" width="546" height="668"><param name="movie" value="http://content.screencast.com/users/cmccullo/folders/Jing/media/1983a54a-a3b1-4f47-96dd-d31709dea369/jingswfplayer.swf"></param><param name="quality" value="high"></param><param name="bgcolor" value="#FFFFFF"></param><param name="flashVars" value="thumb=http://content.screencast.com/users/cmccullo/folders/Jing/media/1983a54a-a3b1-4f47-96dd-d31709dea369/FirstFrame.jpg&#038;containerwidth=546&#038;containerheight=668&#038;content=http://content.screencast.com/users/cmccullo/folders/Jing/media/1983a54a-a3b1-4f47-96dd-d31709dea369/freenode.swf"></param><param name="allowFullScreen" value="true"></param><param name="scale" value="showall"></param><param name="allowScriptAccess" value="always"></param><param name="base" value="http://content.screencast.com/users/cmccullo/folders/Jing/media/1983a54a-a3b1-4f47-96dd-d31709dea369/"></param>  <embed src="http://content.screencast.com/users/cmccullo/folders/Jing/media/1983a54a-a3b1-4f47-96dd-d31709dea369/jingswfplayer.swf" quality="high" bgcolor="#FFFFFF" width="546" height="668" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="thumb=http://content.screencast.com/users/cmccullo/folders/Jing/media/1983a54a-a3b1-4f47-96dd-d31709dea369/FirstFrame.jpg&#038;containerwidth=546&#038;containerheight=668&#038;content=http://content.screencast.com/users/cmccullo/folders/Jing/media/1983a54a-a3b1-4f47-96dd-d31709dea369/freenode.swf" allowFullScreen="true" base="http://content.screencast.com/users/cmccullo/folders/Jing/media/1983a54a-a3b1-4f47-96dd-d31709dea369/" scale="showall"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chomperstomp.com/518/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My own little dailyWTF</title>
		<link>http://blog.chomperstomp.com/my-own-little-dailywtf/</link>
		<comments>http://blog.chomperstomp.com/my-own-little-dailywtf/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 16:40:03 +0000</pubDate>
		<dc:creator>Christopher McCulloh</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[autobiographical]]></category>
		<category><![CDATA[programming concepts]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[web sites]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[theDailyWTF.com]]></category>
		<category><![CDATA[WTF]]></category>

		<guid isPermaLink="false">http://blog.chomperstomp.com/?p=514</guid>
		<description><![CDATA[Note: WTF can stand for &#8220;Worse Than Failure&#8221;&#8230; Yesterday I was re-living my saga on thedailywtf.com. I&#8217;m Jared L. Part 1 Part 2 Part 3 Well, immediately after reading all of that I went and made a big &#8216;ole wtf all on my own. Read on&#8230; Every Wednesday and Friday finishline.com gets updated with new [...]]]></description>
			<content:encoded><![CDATA[<p><em>Note: WTF can stand for &#8220;Worse Than Failure&#8221;&#8230;</em></p>
<p>Yesterday I was re-living my saga on thedailywtf.com. I&#8217;m Jared L.</p>
<p><a href="http://thedailywtf.com/Articles/Thats-One-Way-to-Secure-It.aspx">Part 1</a><br />
<a href="http://thedailywtf.com/Articles/The-Horrible-and-Stupid-System.aspx">Part 2</a><br />
<a href="http://thedailywtf.com/Articles/My-str_replace()-Can-Beat-Up-Your-str_replace().aspx">Part 3</a></p>
<p>Well, immediately after reading all of that I went and made a big &#8216;ole wtf all on my own. Read on&#8230;</p>
<p>Every Wednesday and Friday <a href="http://www.finishline.com">finishline.com</a> gets updated with new promotional material. Most notable of all of these is the &#8220;A1 rotator&#8221;. This is the flash rotator prominently displayed on the homepage of the website. Each Tuesday and Thursday Sean in marketing will send me (up to) four new .swf files and one .xml file to drop in to the root directory of the site and the A1 rotator will magically update with these new files. I&#8217;ve been doing this bi-weekly for a year and a half and have never personally screwed it up. It&#8217;s not hard. I copy the files from one directory into another and zip them up and send them over to the build and release manager, Brandon, who sends them over to Verizon who pushes them out to 71 different instances of our website. It functions like clockwork. Until it doesn&#8217;t. This is a story about a massive multi-layered failure of the A1 rotator and it&#8217;s 100% my fault.</p>
<p>Thursday afternoon at around 4:30 I received the files from marketing and copied them over into the required directory on my local box. As always, I manually uploaded the files to the QA server (a mirror of production) so marketing could test them. I zipped up the files and e-mailed them Brandon. I didn&#8217;t bother to go out to our QA server and test them myself because, &#8220;hey, I&#8217;ve been doing this a year and a half and have never screwed this step up and I&#8217;m really busy and what could possibly be wrong? I just copied some files over, what could I have screwed up?&#8221; Oh the fallacy&#8230;</p>
<p>At this point, the piece of dung sorry excuse for an e-mail client &#8220;Outlook&#8221; crashed. I had already sent off the files so I didn&#8217;t notice.</p>
<p>An hour later when I&#8217;m preparing to go home for the day I go to send and e-mail and see that once again Outlook has crashed. I pop it back open and find that I have an e-mail waiting for me from marketing. Five minutes after I sent the zipped files over to Brandon, marketing e-mailed me to let me know that something was wrong with the A1 spot on the QA server. Crap.</p>
<p>I open up Firefox and hit the QA server only to find myself staring at a big empty white space where the A1 rotator should be. WHAT???</p>
<p>Ok, maybe the xml file is pointing at a non-existant swf file and the whole thing is bombing out&#8230; What are the names of the files? Oh, there&#8217;s a complicated one, &#8220;a1_jordan_02102010.swf&#8221; maybe the xml has that name screwed up. Let&#8217;s simplify things. I rename the file &#8220;a1_jordan.swf&#8221; and edit the XML &#8220;a1_jordan.swf&#8221;. Upload. Check. NOPE!</p>
<p>OK, marketing has obviously screwed this all up. Everyone from marketing has gone home at this point so I send an e-mail off requesting corrected files from marketing and prepare to call it a day. But I can&#8217;t just leave it at that because that would be irresponsible.</p>
<p>I quickly scan the root directory looking to make sure all the swf files are there. Yes. Is the XML file there? Yes. Ok, so banner_rotator.swf should be pulling them in but it&#8217;s crash&#8230; OOOOH NOOOOOO (said in a Tim &#8220;the Tool Man&#8221; Taylor voice). Suddenly I&#8217;m flashing back to the previous Thursday when I&#8217;m performing this exact same task. I recall that at that time I was feeling a little &#8220;cleany&#8221; and I decided that I should go through and remove all the old swf files from promos-gone-by. Sean happened to walk into my cube at exactly that moment and together we review the fifty or so swf files that don&#8217;t need to be there anymore. Clicking them one by one was going to take too long, so I selected ALL of the swf files and then we went through and de-selected the four required for the next day&#8217;s A1 rotator. Once I was sure I wasn&#8217;t going to delete the rotator files, I went ahead and deleted the rest of the swf files. Including the banner_rotator.swf master file that pulls in the xml and the four content swfs. SHOOT!</p>
<p>So I recover the banner_rotator.swf, add it to the root, and send it all back over to Brandon. I follow up with an e-mail absolving marketing and I call it a day. Everything&#8217;s fine and I even let my boss know what happened assuring him that everything is taken care of. Little do I know&#8230;</p>
<p>The next morning as I&#8217;m preparing to leave for work I happen to check my work e-mail. The A1 rotator is missing from the site. Apparently the promo push still hasn&#8217;t run, and the CDN we use has dropped the banner_rotator.swf file since it no longer exists in our build (because I deleted it last Thursday so it was dropped out of the following Thursday&#8217;s production deploy, which was yesterday). Great. The promo push is about to start though and then everything will be ok. I call a few people and send some e-mails to let everyone know what&#8217;s going on and leave for work.</p>
<p>When I get into the office I pull up the website and check only to discover that the first spot in the rotation is completely blank. I have several e-mails informing me of this as well. Flash back time&#8230; Remember when I renamed the jordan file as part of my debug process? Yeah, me too. Apparently I never put the name back correct but the xml <em>did</em> get switched back. So now I really <em>am</em> missing a swf. I guess the only thing that happens if a swf is missing is that the spot for it in the rotation is just blank. Good thing the only spot that&#8217;s blank is <strong>the very first spot, <em>which is only seen by 100% of our visitors and only clicked on more than anything else in the entire site</em></strong>!</p>
<p>I call Brandon and sheepishly request that he manually go through all 71 instances of our site and rename the file in every one so that we don&#8217;t have to do an emergency push and incur a fine. Which he does and the whole thing is fixed.</p>
<p>At this point I get up and start looking for my coffee mug. It&#8217;s missing. I finally stumble across it right next to the coffee machine. Curiously it has a little pile of cream and sugar in it all ready for a cup of jo. It is then that I realize what the root of the whole problem was. I never had my coffee the day before. Why? Because someone took the last of the coffee and didn&#8217;t start a new pot brewing; when I went to get my coffee the pot was empty. I had started a new pot brewing, got my mug ready, walked away and never came back; resulting in me doing the entire promo push without any caffeine in me. Apparently I just suck without caffeine. And that boys and girls is why you should always start a new pot if you drink the last of the current one. That is also my <em>lame</em> attempt to shift the blame away from myself, lol. No, this was 100% my fault&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chomperstomp.com/my-own-little-dailywtf/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TOTW: Dynamic Dummy Image Generator</title>
		<link>http://blog.chomperstomp.com/totw-dynamic-dummy-image-generator/</link>
		<comments>http://blog.chomperstomp.com/totw-dynamic-dummy-image-generator/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 12:00:23 +0000</pubDate>
		<dc:creator>Christopher McCulloh</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[TOTW]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[prototyping]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[How to]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tool of the Week]]></category>

		<guid isPermaLink="false">http://blog.chomperstomp.com/?p=492</guid>
		<description><![CDATA[This week&#8217;s Tool of the Week is Dynamic Dummy Image Generator. What it does: Allows you to display custom sized dynamic images on any webpage using nothing but a normal image tag and a special URL. When you need it: Mockups Prototypes Place Holder Images How to use it: The Example:]]></description>
			<content:encoded><![CDATA[<p>This week&#8217;s Tool of the Week is <a href="http://dummyimage.com/">Dynamic Dummy Image Generator</a>.</p>
<p><strong>What it does:</strong></p>
<p>Allows you to display custom sized dynamic images on any webpage using nothing but a normal image tag and a special URL.</p>
<p><strong>When you need it:</strong></p>
<ul>
<li>Mockups</li>
<li>Prototypes</li>
<li>Place Holder Images</li>
</ul>
<p><strong>How to use it:</strong><br />
<object id="scPlayer" width="551" height="752"><param name="movie" value="http://content.screencast.com/users/cmccullo/folders/Jing/media/bc3222b3-1cbf-4e8b-9d43-ea05bef6bc1a/jingswfplayer.swf"></param><param name="quality" value="high"></param><param name="bgcolor" value="#FFFFFF"></param><param name="flashVars" value="thumb=http://content.screencast.com/users/cmccullo/folders/Jing/media/bc3222b3-1cbf-4e8b-9d43-ea05bef6bc1a/FirstFrame.jpg&#038;containerwidth=551&#038;containerheight=752&#038;content=http://content.screencast.com/users/cmccullo/folders/Jing/media/bc3222b3-1cbf-4e8b-9d43-ea05bef6bc1a/2010-02-04_1733.swf"></param><param name="allowFullScreen" value="true"></param><param name="scale" value="showall"></param><param name="allowScriptAccess" value="always"></param><param name="base" value="http://content.screencast.com/users/cmccullo/folders/Jing/media/bc3222b3-1cbf-4e8b-9d43-ea05bef6bc1a/"></param>  <embed src="http://content.screencast.com/users/cmccullo/folders/Jing/media/bc3222b3-1cbf-4e8b-9d43-ea05bef6bc1a/jingswfplayer.swf" quality="high" bgcolor="#FFFFFF" width="551" height="752" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="thumb=http://content.screencast.com/users/cmccullo/folders/Jing/media/bc3222b3-1cbf-4e8b-9d43-ea05bef6bc1a/FirstFrame.jpg&#038;containerwidth=551&#038;containerheight=752&#038;content=http://content.screencast.com/users/cmccullo/folders/Jing/media/bc3222b3-1cbf-4e8b-9d43-ea05bef6bc1a/2010-02-04_1733.swf" allowFullScreen="true" base="http://content.screencast.com/users/cmccullo/folders/Jing/media/bc3222b3-1cbf-4e8b-9d43-ea05bef6bc1a/" scale="showall"></embed></object></p>
<p><strong>The Example:</strong><br />
<script src='http://pastie.org/810133.js'></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chomperstomp.com/totw-dynamic-dummy-image-generator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>One Click Backup w/ Sabrent &amp; Hitachi &#8211; FAIL</title>
		<link>http://blog.chomperstomp.com/one-click-backup-w-sabrent-hitachi-fail/</link>
		<comments>http://blog.chomperstomp.com/one-click-backup-w-sabrent-hitachi-fail/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 13:59:57 +0000</pubDate>
		<dc:creator>Christopher McCulloh</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[autobiographical]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[Computer Problems]]></category>
		<category><![CDATA[USB]]></category>

		<guid isPermaLink="false">http://blog.chomperstomp.com/?p=496</guid>
		<description><![CDATA[I can&#8217;t get a full drive backup. I&#8217;ve tried multiple settings. First I tried to backup all files: It kept failing, presumably because I was using the computer during the backup. So, i finally just backed up only the 50+ GB of images (which was my major focus) successfully, WIN! Then I went back to [...]]]></description>
			<content:encoded><![CDATA[<p>I can&#8217;t get a full drive backup. I&#8217;ve tried multiple settings.</p>
<p>First I tried to backup all files:<br />
<a href="http://content.screencast.com/users/cmccullo/folders/Jing/media/8bdf063f-20ad-41c0-aa69-aec930117f90/2010-02-05_0848.png"><img class="embeddedObject" src="http://content.screencast.com/users/cmccullo/folders/Jing/media/8bdf063f-20ad-41c0-aa69-aec930117f90/2010-02-05_0848.png" width="479" height="433" border="0" /></a></p>
<p>It kept failing, presumably because I was using the computer during the backup. So, i finally just backed up only the 50+ GB of images (which was my major focus) successfully, WIN! Then I went back to the task of backing up the entire C: drive. I noticed that you could just do &#8220;Newer&#8221;, which I decided would allow my backup to continue from where it failed. </p>
<p>So, next I tried:<br />
<a href="http://content.screencast.com/users/cmccullo/folders/Jing/media/75f6d010-fc5d-4aa3-8276-27a0a742ed80/2010-02-05_0854.png"><img class="embeddedObject" src="http://content.screencast.com/users/cmccullo/folders/Jing/media/75f6d010-fc5d-4aa3-8276-27a0a742ed80/2010-02-05_0854.png" width="479" height="433" border="0" /></a></p>
<p>Still didn&#8217;t work, but at least it didn&#8217;t re-backup files already backed up. <a href="http://blog.dotsmart.net/2008/06/12/solved-cannot-read-from-the-source-file-or-disk/">After deleting several files that were causing it to fail (had to go to the command line for these, because windows could not delete/recognize/open them)</a> I again tried the backup. This time it failed on UsrClass.dat (see the actual error below):</p>
<p><code>Create date/time : 2/5/2010--8:06:21 AM<br />
Error Report of Backup from [C:] to [Z:\Backup_Drive_C]</p>
<p>C:\Documents and Settings\Christopher\Local Settings\Application Data\Microsoft\Windows\UsrClass.dat<br />
The process cannot access the file because it is being used by another process.</code></p>
<p>I thought, hrm&#8230; Maybe I&#8217;ll just run it again. Nope. Still failed. Ran again, still failed. Ok, so I&#8217;m going to have to actually do something about the file.</p>
<p>I *almost* tried switching to another product, again, but then I realized this would be my fourth product switch and maybe I should at least give Sabrent tech support a try. So I submitted the following help request through <a href="http://www.sabrent.com/#itemName=&#038;itemID=0&#038;section=Support">their website</a>:</p>
<blockquote><p>1. Purchased Sabrent SATA 3.5&#8243;/2.5&#8243; Hard Drive to USB 2.0 Docking Station.<br />
2. Installed one click backup software<br />
3. Placed newly formatted/partitioned empty drive in dock<br />
4. Began backup of C: drive to drive in dock (Z:)</p>
<p>Expected Result:<br />
Full Backup of C: Drive to Z: drive</p>
<p>Actual Result:<br />
Failed after ~20,000 files with the following error:<br />
Create date/time : 2/5/2010&#8211;8:06:21 AM<br />
Error Report of Backup from [C:] to [Z:\Backup_Drive_C]</p>
<p>C:\Documents and Settings\Christopher\Local Settings\Application Data\Microsoft\Windows\UsrClass.dat<br />
The process cannot access the file because it is being used by another process.</p>
<p>http://screencast.com/t/N2E3YjdkYz</p></blockquote>
<p>We&#8217;ll see how they respond. If I can&#8217;t get this to work, the next thing I&#8217;m going to try is some sort of Open Source drive duplication or backup solution that will let me copy from one drive to another. If that still doesn&#8217;t work, I&#8217;ll start looking at commercial, local backup options.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chomperstomp.com/one-click-backup-w-sabrent-hitachi-fail/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
