<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Still Life</title>
	<atom:link href="http://steveswanson.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://steveswanson.wordpress.com</link>
	<description>A Series of Mental Snapshots</description>
	<lastBuildDate>Mon, 26 Sep 2011 17:17:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='steveswanson.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Still Life</title>
		<link>http://steveswanson.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://steveswanson.wordpress.com/osd.xml" title="Still Life" />
	<atom:link rel='hub' href='http://steveswanson.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Taking action on JavaScript Popups with Ruby/Watir in Firefox and Internet Explorer</title>
		<link>http://steveswanson.wordpress.com/2010/07/12/taking-action-on-javascript-popups-with-rubywatir-in-firefox-and-internet-explorer/</link>
		<comments>http://steveswanson.wordpress.com/2010/07/12/taking-action-on-javascript-popups-with-rubywatir-in-firefox-and-internet-explorer/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 20:20:55 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[IE Automation/Watir/Ruby]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[AutoIt]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Close]]></category>
		<category><![CDATA[FireFox]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Killer]]></category>
		<category><![CDATA[Pop]]></category>
		<category><![CDATA[popup]]></category>
		<category><![CDATA[QA]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[Up]]></category>
		<category><![CDATA[Watir]]></category>

		<guid isPermaLink="false">http://steveswanson.wordpress.com/?p=281</guid>
		<description><![CDATA[A long time ago I did a post on catching JavaScript popups, but have a much better way of catching them. These JavaScript popups cause trouble as they interrupt the page from fully loading, causing Watir to wait (as the page is waiting), which means the next command in your script will never be reached. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=steveswanson.wordpress.com&amp;blog=1737327&amp;post=281&amp;subd=steveswanson&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A long time ago I did a post on catching <a href="http://steveswanson.wordpress.com/2008/09/29/ie-automation-with-ruy-catching-pop-up-windows/#comments">JavaScript popups</a>, but have a much better way of catching them.</p>
<p>These JavaScript popups cause trouble as they interrupt the page from fully loading, causing Watir to wait (as the page is waiting), which means the next command in your script will never be reached. Previous work arounds to this were to use watirs built in click_no_wait, but I have that to be extremely temperamental and did not always work depending on which element the click was being performed on.</p>
<p>The new and improved method is to have a completely separate process that runs in the background and is continually checking for JavaScript pop ups. AutoIt commands are used to first locate the pop-up and then depending on what text or title is present in the pop up and different action can be performed on it. Unfortunately the same code cannot be used for both IE and FF due to the fact that the AutoIt controls cannot perform the same actions on IE pop-ups as it can on FF pop-ups.  I have included the code for both below:</p>
<p><strong> clickPopupsIE.rb</strong></p>
<blockquote><p>
require &#039;win32ole&#039;<br />
begin<br />
&nbsp;&nbsp;&nbsp;   autoit  WIN32OLE.new(&#039;AutoItX3.Control&#039;)<br />
&nbsp;&nbsp;&nbsp;   loop do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;      autoit.ControlClick(&#034;Windows Internet Explorer&#034;,&#039;&#039;, &#039;OK&#039;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;      autoit.ControlClick(&#034;Security Information&#034;,&#039;&#039;, &#039;&amp;Yes&#039;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;      autoit.ControlClick(&#034;Security Alert&#034;,&#039;&#039;, &#039;&amp;Yes&#039;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;      autoit.ControlClick(&#034;Security Warning&#034;,&#039;&#039;, &#039;Yes&#039;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;      autoit.ControlClick(&#034;Message from webpage&#034;,&#039;&#039;, &#039;OK&#039;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;      sleep 1<br />
&nbsp;&nbsp;&nbsp;   end<br />
rescue Exception &gt; e<br />
&nbsp;&nbsp;&nbsp;   puts e<br />
end
</p></blockquote>
<p><strong> clickPopupsFF.rb</strong><br />
<code></p>
<blockquote><p>
require 'win32ole'<br />
websiteName = "w3schools.com"<br />
begin<br />
&nbsp;&nbsp;&nbsp;		autoit = WIN32OLE.new('AutoItX3.Control')<br />
&nbsp;&nbsp;&nbsp;		loop do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;			autoit.winActivate("The page at http://#{websiteName} says:")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;			autoit.Send("{ENTER}") if(autoit.WinWait("The page at http://#{websiteName} says:",'',2) == 1)<br />
&nbsp;&nbsp;&nbsp;		end<br />
	rescue Exception =&gt; e<br />
&nbsp;&nbsp;&nbsp;		puts e<br />
	end
</p></blockquote>
<p></code></p>
<p>These two scripts can then be called from any of your other Watir scripts using the following two functions scripts:<br />
<code></p>
<blockquote><p>
require 'win32/process'<br />
	def callPopupKillerFF<br />
&nbsp;&nbsp;&nbsp;		$pid = Process.create(:app_name =&gt; 'ruby clickPopupsFF.rb', :creation_flags =&gt; Process::DETACHED_PROCESS).process_id<br />
	end</p>
<p>	def callPopupKillerIE<br />
&nbsp;&nbsp;&nbsp;		$pid = Process.create(:app_name =&gt; 'ruby clickPopupsIE.rb', :creation_flags =&gt; Process::DETACHED_PROCESS).process_id<br />
	end</p>
<p>	def killPopupKiller<br />
&nbsp;&nbsp;&nbsp;		Process.kill(9,$pid)<br />
	end
</p></blockquote>
<p></code></p>
<p>As  you can see above you do need to require one more ruby gem, &#8216;win32/process&#8217;, this is used to run the popup clicker as a separate process that runs in the background. Once you have those functions in place you can simply call:</p>
<p><code></p>
<blockquote><p>
callPopupKillerIE  #Starts the IE popup killer<br />
#Some watir code that results in a popup#<br />
killPopupKiller #Kills the popup killer process, so that you do not end up with 5 of them running!
</p></blockquote>
<p></code></p>
<p>Well there you have it, a robust and effective popup killer for both IE and FF. If you have any questions let me know!</p>
<p>&#8211;Steve</p>
<br /> Tagged: <a href='http://steveswanson.wordpress.com/tag/autoit/'>AutoIt</a>, <a href='http://steveswanson.wordpress.com/tag/automation/'>Automation</a>, <a href='http://steveswanson.wordpress.com/tag/close/'>Close</a>, <a href='http://steveswanson.wordpress.com/tag/firefox/'>FireFox</a>, <a href='http://steveswanson.wordpress.com/tag/ie/'>IE</a>, <a href='http://steveswanson.wordpress.com/tag/javascript/'>JavaScript</a>, <a href='http://steveswanson.wordpress.com/tag/killer/'>Killer</a>, <a href='http://steveswanson.wordpress.com/tag/pop/'>Pop</a>, <a href='http://steveswanson.wordpress.com/tag/popup/'>popup</a>, <a href='http://steveswanson.wordpress.com/tag/qa/'>QA</a>, <a href='http://steveswanson.wordpress.com/tag/ruby/'>Ruby</a>, <a href='http://steveswanson.wordpress.com/tag/test/'>test</a>, <a href='http://steveswanson.wordpress.com/tag/testing/'>Testing</a>, <a href='http://steveswanson.wordpress.com/tag/up/'>Up</a>, <a href='http://steveswanson.wordpress.com/tag/watir/'>Watir</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/steveswanson.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/steveswanson.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/steveswanson.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/steveswanson.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/steveswanson.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/steveswanson.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/steveswanson.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/steveswanson.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/steveswanson.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/steveswanson.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/steveswanson.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/steveswanson.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/steveswanson.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/steveswanson.wordpress.com/281/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=steveswanson.wordpress.com&amp;blog=1737327&amp;post=281&amp;subd=steveswanson&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://steveswanson.wordpress.com/2010/07/12/taking-action-on-javascript-popups-with-rubywatir-in-firefox-and-internet-explorer/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6de7d0099d3e3b083c92053f7c996c27?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Steve</media:title>
		</media:content>
	</item>
		<item>
		<title>Bugs in the Wild: Bevmo Edition</title>
		<link>http://steveswanson.wordpress.com/2009/12/18/bugs-in-the-wild-bevmo-edition/</link>
		<comments>http://steveswanson.wordpress.com/2009/12/18/bugs-in-the-wild-bevmo-edition/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 02:08:35 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://steveswanson.wordpress.com/?p=271</guid>
		<description><![CDATA[I recently found a fun bug in the Bevmo (beverages and more, a liquor store in California) website&#8217;s search functionality.  I was searching for a product from Martini &#38; Rossi, so I simply entered Martini &#38; Rossi into the search field, and clicked &#8216;Go&#8217; and was surprised when I found myself back on the home [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=steveswanson.wordpress.com&amp;blog=1737327&amp;post=271&amp;subd=steveswanson&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently found a fun bug in the <a title="Bevmo Website" href="http://www.bevmo.com//Default.aspx">Bevmo</a> (beverages and more, a liquor store in California) website&#8217;s search functionality.  I was searching for a product from Martini &amp; Rossi, so I simply entered Martini &amp; Rossi into the search field, and clicked &#8216;Go&#8217; and was surprised when I found myself back on the home page.</p>
<p>At first I was not quite sure what was happening, so as any good tester does, I tried to reproduce the occurrence. So I enter in the same text &#8216;Martini &amp; Rossi&#8217; and again I am taken to the home page.  I decide to isolate the issue, although at this point I am pretty certain that it has to do with the &amp;, so I searched simply the &amp; and found I was taken back to the home page yet again.</p>
<p>At this point I can safely say that the search feature has a bug where if you enter an &amp;  you are taken back to the home page, a behaviour that is clearly incorrect. This is a good reminder of why data input is very important when testing fields, it does not take very long and can find some pretty good bugs!</p>
<p>&#8211;Steve</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/steveswanson.wordpress.com/271/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/steveswanson.wordpress.com/271/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/steveswanson.wordpress.com/271/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/steveswanson.wordpress.com/271/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/steveswanson.wordpress.com/271/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/steveswanson.wordpress.com/271/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/steveswanson.wordpress.com/271/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/steveswanson.wordpress.com/271/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/steveswanson.wordpress.com/271/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/steveswanson.wordpress.com/271/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/steveswanson.wordpress.com/271/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/steveswanson.wordpress.com/271/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/steveswanson.wordpress.com/271/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/steveswanson.wordpress.com/271/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=steveswanson.wordpress.com&amp;blog=1737327&amp;post=271&amp;subd=steveswanson&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://steveswanson.wordpress.com/2009/12/18/bugs-in-the-wild-bevmo-edition/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6de7d0099d3e3b083c92053f7c996c27?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Steve</media:title>
		</media:content>
	</item>
		<item>
		<title>Review of Jawbone Prime vs. Plantronics Voyager Pro Bluetooth Headsets: A Real World Test</title>
		<link>http://steveswanson.wordpress.com/2009/11/15/review-of-jawbone-prime-vs-plantronics-voyager-pro-bluetooth-headsets-a-real-world-test/</link>
		<comments>http://steveswanson.wordpress.com/2009/11/15/review-of-jawbone-prime-vs-plantronics-voyager-pro-bluetooth-headsets-a-real-world-test/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 06:39:01 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Testing]]></category>
		<category><![CDATA[Blue]]></category>
		<category><![CDATA[Bluetooth]]></category>
		<category><![CDATA[Comparison]]></category>
		<category><![CDATA[head]]></category>
		<category><![CDATA[headset]]></category>
		<category><![CDATA[Jawbone]]></category>
		<category><![CDATA[Jawbone Prime]]></category>
		<category><![CDATA[Plantronics]]></category>
		<category><![CDATA[product testing]]></category>
		<category><![CDATA[Real world testing]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[set]]></category>
		<category><![CDATA[Tooth]]></category>
		<category><![CDATA[Voyager Pro]]></category>

		<guid isPermaLink="false">http://steveswanson.wordpress.com/?p=263</guid>
		<description><![CDATA[I recently was in need of a new bluetooth headset, the first one was far too loud on the receiving end up to the point that I was told to just go on mute on a conference call as others could not hear what I was saying at all. The first thing that I did, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=steveswanson.wordpress.com&amp;blog=1737327&amp;post=263&amp;subd=steveswanson&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently was in need of a new bluetooth headset, the first one was far too loud on the receiving end up to the point that I was told to just go on mute on a conference call as others could not hear what I was saying at all. The first thing that I did, as often in testing, was to define what my desired end result was. For me what mattered most, above anything else, was the call quality on the receiving end. The other important factors were comfort, and a mute function (as my phone did not have one, and to mute with the conference call system, you had to press *1, something that is not easy while driving).</p>
<p>With the desired qualities in mind, I proceeded to do some research to try and figure out what device what meet my requirements. I found it was easy to narrow down the pool to a couple devices, the Jawbone Prime and the Plantronics Voyager Pro based mainly on editor and personal reviews. Both units were similarly priced, at the time the Jawbone prime was 120$ and the Plantronics Pro was 100$, so they were both upper end devices. This is where I ran into some difficulties; once I was down to the two devices, it was impossible to tell, from reading at least, which device would have the superior call quality. In words it is almost impossible to quantify call quality, often reviewers would say the quality was a four stars, or that it was better than its predecessor. I even found articles comparing the two devices, but I was surprised to discover none of them had any sound clips of what the receiving call sounded like. To me it seemed the only real way to get a feel for how good the call quality was.</p>
<p>This is when I decided move forward and do some testing of my own. I purchased both the Jawbone Prime and the Plantronics Voyager Pro headsets, and I then decided to leave myself a message on my phone, that way I could do a straight comparison of the receiving call quality. I actually ended up leaving messages twice for each device, as the first time I did not have a good idea of what I wanted to test, this was a good example of the importance of having various testing scenarios in mind. I wanted to hear the call quality in a variety of scenarios including, music playing, windows down, air conditioning pointed at face and different voice volume levels. (Unfortunately to hear the tests, you will need to actually download the .wav file, hopefully I can post them on another site that will stream them)</p>
<p>The Plantronics Voyager Pro:<br />
<a title="Voyager Pro" href="http://www.mediafire.com/file/zuyznjijldm/Plantronics.WAV" target="_blank">http://www.mediafire.com/file/zuyznjijldm/Plantronics.WAV</a></p>
<p>The Jawbone Prime:<br />
<a title="Jawbone Prime" href="http://www.mediafire.com/?m5mgwtn3xny" target="_blank">http://www.mediafire.com/?m5mgwtn3xny</a></p>
<p>After listening to both clips it was clear that the Plantronics Voyager pro had superior receiving call quality. The Jawbone Prime, was almost perfect when I was not talking, but when I was the background noise started to leak through. Overall comfort was about equivalent for both devices, and the Plantronics Pro had mute functionality where as the Jawbone Prime does not.</p>
<p>I would therefore state that the Plantronics Voyager Pro is the superior device based on my criteria, but both devices performed quite well (especially in comparison to some of the cheaper products). I have had the voyager pro for about 4 months now, and it has continued to perform well. To tie this back to testing, it was interesting because I got to test a product in a non traditional manner and in a realistic setting as a customer. It also reinforced the importance of knowing the needs of the customer when testing, because had my criteria been different a different headset could have come out on top.</p>
<p>&#8211;Steve</p>
<br /> Tagged: Blue, Bluetooth, Comparison, head, headset, Jawbone, Jawbone Prime, Plantronics, product testing, Real world testing, review, set, Tooth, Voyager Pro <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/steveswanson.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/steveswanson.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/steveswanson.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/steveswanson.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/steveswanson.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/steveswanson.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/steveswanson.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/steveswanson.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/steveswanson.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/steveswanson.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/steveswanson.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/steveswanson.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/steveswanson.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/steveswanson.wordpress.com/263/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=steveswanson.wordpress.com&amp;blog=1737327&amp;post=263&amp;subd=steveswanson&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://steveswanson.wordpress.com/2009/11/15/review-of-jawbone-prime-vs-plantronics-voyager-pro-bluetooth-headsets-a-real-world-test/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6de7d0099d3e3b083c92053f7c996c27?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Steve</media:title>
		</media:content>
	</item>
		<item>
		<title>Bugs in the Wild: The Paradoxical Error Message Edition</title>
		<link>http://steveswanson.wordpress.com/2009/04/23/bugs-in-the-wild-the-paradoxical-error-message-edition/</link>
		<comments>http://steveswanson.wordpress.com/2009/04/23/bugs-in-the-wild-the-paradoxical-error-message-edition/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 19:49:58 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Bugs in the wild]]></category>
		<category><![CDATA[Bugs]]></category>
		<category><![CDATA[cannot delete file]]></category>
		<category><![CDATA[delete]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[funny error]]></category>
		<category><![CDATA[message]]></category>
		<category><![CDATA[not enough disk space]]></category>
		<category><![CDATA[paradox]]></category>
		<category><![CDATA[paradoxical]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://steveswanson.wordpress.com/?p=257</guid>
		<description><![CDATA[A friend recently sent out a screenshot of a quite humourous error message. He was attempting to free up some space on a network drive, by deleting some files, when he received this less than helpful error message: The text in the error message is: Cannot delete week4: There is not enough free disk space. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=steveswanson.wordpress.com&amp;blog=1737327&amp;post=257&amp;subd=steveswanson&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A friend recently sent out a screenshot of a quite humourous error message. He was attempting to free up some space on a network drive, by deleting some files, when he received this less than helpful error message:</p>
<div id="attachment_259" class="wp-caption aligncenter" style="width: 421px"><img class="size-full wp-image-259" title="Cannot Delete Not Enough Free Space" src="http://steveswanson.files.wordpress.com/2009/04/deleteerror.jpg?w=411&#038;h=155" alt="Error message that appeared when deleting a file" width="411" height="155" /><p class="wp-caption-text">Error message that appeared when deleting a file</p></div>
<p>The text in the error message is:</p>
<p><em>Cannot delete week4</em>:<em> There is not enough free disk space.<br />
Delete one or more files to free disk space, and then try again.</em></p>
<p>It can be seen that this is a faulty error message, and something else is really afoot; one cannot delete files if one cannot delete files.</p>
<p>An interesting question here is why this error message came up? Is this the actual reason the file cannot be deleted, if so a different error message should be displayed so as not to confuse people. If this is not the cause of the issue, then why did this message get displayed?</p>
<p>&#8211;Steve</p>
<p><em><br />
</em></p>
<br /> Tagged: Bugs, Bugs in the wild, cannot delete file, delete, error, file, funny error, message, not enough disk space, paradox, paradoxical, windows <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/steveswanson.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/steveswanson.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/steveswanson.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/steveswanson.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/steveswanson.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/steveswanson.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/steveswanson.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/steveswanson.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/steveswanson.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/steveswanson.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/steveswanson.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/steveswanson.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/steveswanson.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/steveswanson.wordpress.com/257/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=steveswanson.wordpress.com&amp;blog=1737327&amp;post=257&amp;subd=steveswanson&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://steveswanson.wordpress.com/2009/04/23/bugs-in-the-wild-the-paradoxical-error-message-edition/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6de7d0099d3e3b083c92053f7c996c27?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Steve</media:title>
		</media:content>

		<media:content url="http://steveswanson.files.wordpress.com/2009/04/deleteerror.jpg" medium="image">
			<media:title type="html">Cannot Delete Not Enough Free Space</media:title>
		</media:content>
	</item>
		<item>
		<title>Bugs In the Wild: WYSIWYG in WordPress Edition</title>
		<link>http://steveswanson.wordpress.com/2009/04/22/bugs-in-the-wild-wysiwyg-in-wordpress-edition/</link>
		<comments>http://steveswanson.wordpress.com/2009/04/22/bugs-in-the-wild-wysiwyg-in-wordpress-edition/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 16:23:51 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Bugs in the wild]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[issue]]></category>
		<category><![CDATA[What You See Is What You Get]]></category>
		<category><![CDATA[wild]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wysiwyg]]></category>

		<guid isPermaLink="false">http://steveswanson.wordpress.com/?p=246</guid>
		<description><![CDATA[I ran into this issue when creating my post for importing/exporting individual tables in MySQL. The issue resolves around the principal of WYSIWYG (What you see is what you get). For one of the MySQL commands it was necessary to have two dashes (or minuses) next to each other, as can be seen in my [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=steveswanson.wordpress.com&amp;blog=1737327&amp;post=246&amp;subd=steveswanson&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I ran into this issue when creating my post for importing/exporting individual tables in MySQL. The issue resolves around the principal of WYSIWYG (What you see is what you get).</p>
<p>For one of the MySQL commands it was necessary to have two dashes (or minuses) next to each other, as can be seen in my the <a href="http://steveswanson.wordpress.com/2009/04/21/exporting-and-importing-an-individual-mysql-table/">post</a> mentioned above.  In the WordPress text editor displayed the two dashes properly in both the visual and HTML views, but after I had published the post, the two dashes where displayed (and when copied acted) as a single dash! For example the character in the quotation is seen as two dashes in the editor &#8220;&#8211;&#8221; but as can be clearly seen it is displayed as a single dash.</p>
<p>I tried for a while to resolve the issue, but I ended up just spacing out the dashes, like so &#8220;- -&#8221;, so that it could be seen that there were actually two dashes.</p>
<p>I feel this falls under a WYSIWYG type issue as in the text editor I was able to see the two dashes properly, but then when the post was published the same thing was not displayed therefore what I was seeing n the editor was not what I got in the post.</p>
<p>&#8211;Steve</p>
<br /> Tagged: bug, Bugs in the wild, issue, Testing, What You See Is What You Get, wild, wordpress, wysiwyg <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/steveswanson.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/steveswanson.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/steveswanson.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/steveswanson.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/steveswanson.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/steveswanson.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/steveswanson.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/steveswanson.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/steveswanson.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/steveswanson.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/steveswanson.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/steveswanson.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/steveswanson.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/steveswanson.wordpress.com/246/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=steveswanson.wordpress.com&amp;blog=1737327&amp;post=246&amp;subd=steveswanson&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://steveswanson.wordpress.com/2009/04/22/bugs-in-the-wild-wysiwyg-in-wordpress-edition/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6de7d0099d3e3b083c92053f7c996c27?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Steve</media:title>
		</media:content>
	</item>
		<item>
		<title>Exporting and Importing An Individual MySQL Table</title>
		<link>http://steveswanson.wordpress.com/2009/04/21/exporting-and-importing-an-individual-mysql-table/</link>
		<comments>http://steveswanson.wordpress.com/2009/04/21/exporting-and-importing-an-individual-mysql-table/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 14:58:01 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[exporting]]></category>
		<category><![CDATA[import]]></category>
		<category><![CDATA[importing]]></category>
		<category><![CDATA[individual]]></category>
		<category><![CDATA[LOAD DATA INFILE]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[one]]></category>
		<category><![CDATA[single]]></category>
		<category><![CDATA[table]]></category>
		<category><![CDATA[tables]]></category>
		<category><![CDATA[webfaction]]></category>

		<guid isPermaLink="false">http://steveswanson.wordpress.com/?p=235</guid>
		<description><![CDATA[In moving databases from development to production it is sometimes necessary to export individual tables so that they can be imported into another database. Exporting the Table To export the table run the following command from the command line: &#8220;mysqldump -p - -user=username dbname tableName &#62; tableName.sql&#8221; This will export the tableName to the file [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=steveswanson.wordpress.com&amp;blog=1737327&amp;post=235&amp;subd=steveswanson&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In moving databases from development to production it is sometimes necessary to export individual tables so that they can be imported into another database.</p>
<p><span style="text-decoration:underline;"><strong>Exporting the Table</strong></span><br />
To export the table run the following command from the command line:<br />
&#8220;mysqldump -p <em>- -</em>user=<em>username</em> <em>dbname</em> <em>tableName</em> &gt; <em>tableName.sql&#8221;</em></p>
<p>This will export the tableName to the file tableName.sql.<br />
[NOTE: there should be no space between the two dashes, but I have to write it that way so that it display properly].</p>
<p><span style="text-decoration:underline;"><strong>Importing the Table<br />
</strong></span>To import the table run the following command from the command line:<br />
mysql -u <em>username</em> -p -D <em>dbname</em> &lt; <em>tableName.sql</em></p>
<p>The path to the <em>tableName.sql</em> needs to be prepended with the absolute path to that file. At this point the table will be imported into the DB and you are ready to go!</p>
<p>I ran into this issue when attempting to add new tables to my database. I am unable to run the &#8220;LOAD DATA INFILE&#8221; command, that I had previously used to populate tables, because Webfaction does not give the permission to run the command. Therefore the simplest solution was to export a table from the MySQL database on my personal machine and then import it to the database on the Webfaction server, using the export/import commands seen above.</p>
<p>Hope this helps someone out with exporting individual tables and as always if any clarification is needed or I missed something feel free to let me know.</p>
<p>&#8211;Steve</p>
<br /> Tagged: export, exporting, import, importing, individual, LOAD DATA INFILE, MySQL, one, single, table, tables, webfaction <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/steveswanson.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/steveswanson.wordpress.com/235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/steveswanson.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/steveswanson.wordpress.com/235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/steveswanson.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/steveswanson.wordpress.com/235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/steveswanson.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/steveswanson.wordpress.com/235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/steveswanson.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/steveswanson.wordpress.com/235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/steveswanson.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/steveswanson.wordpress.com/235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/steveswanson.wordpress.com/235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/steveswanson.wordpress.com/235/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=steveswanson.wordpress.com&amp;blog=1737327&amp;post=235&amp;subd=steveswanson&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://steveswanson.wordpress.com/2009/04/21/exporting-and-importing-an-individual-mysql-table/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6de7d0099d3e3b083c92053f7c996c27?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Steve</media:title>
		</media:content>
	</item>
		<item>
		<title>Anatomy of an Error Message &#8211; A Windows Vista Example</title>
		<link>http://steveswanson.wordpress.com/2009/04/02/anatomy-of-an-error-message-a-windows-vista-example/</link>
		<comments>http://steveswanson.wordpress.com/2009/04/02/anatomy-of-an-error-message-a-windows-vista-example/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 19:30:08 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Testing]]></category>
		<category><![CDATA[anatomy]]></category>
		<category><![CDATA[bad error]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[good error]]></category>
		<category><![CDATA[good error message]]></category>
		<category><![CDATA[message]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[vista]]></category>
		<category><![CDATA[what to put in error message]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[Windows No Disk]]></category>
		<category><![CDATA[Windows Vista Error]]></category>

		<guid isPermaLink="false">http://steveswanson.wordpress.com/?p=224</guid>
		<description><![CDATA[I have recently had a somewhat frequent recurrence of an error message on my laptop, which is running Windows Vista. The error message can be seen below: The error message popped up (for seemingly no apparent reason), and to make matters worse, when I clicked cancel a new instance of the error message popped up, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=steveswanson.wordpress.com&amp;blog=1737327&amp;post=224&amp;subd=steveswanson&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have recently had a somewhat frequent recurrence of an error message on my laptop, which is running Windows Vista. The error message can be seen below:</p>
<div id="attachment_225" class="wp-caption aligncenter" style="width: 468px"><img class="size-full wp-image-225" title="baderror" src="http://steveswanson.files.wordpress.com/2009/04/baderror.png?w=458&#038;h=187" alt="Windows Vista Error Message" width="458" height="187" /><p class="wp-caption-text">Windows Vista Error Message</p></div>
<p>The error message popped up (for seemingly no apparent reason), and to make matters worse, when I clicked cancel a new instance of the error message popped up, and I had to close it about 30-40 times before it stopped popping up!</p>
<p>You&#8217;ll notice that the first issue with this error message is that it is extremely uninformative and has indecipherable information, something the user should never see. This lack of information made so that I was unable to identify what was causing the error therefore I was not able to stop it from happening (as a quick note, I did not unplug any disks at the time, so it did not have to do with that). Subsequently, since the first incident, this has occurred a few more times with no real pattern as to what is causing it.</p>
<p>A bad error message is good illustrator to what a good error message should be. A good error message should have the following:</p>
<ul>
<li>An informative title &#8211; A user should know what caused the issue</li>
<li>Actual error message should provide user with information on how to fix the problem</li>
<li>Finally it should provide the user with actions that will help fix the problem identify in the message</li>
</ul>
<p>The only thing the above error message has going for it is that its title gives a clue as to the issue.</p>
<p>To quickly summarize, the goal of an error message is to inform the user that there has been an error, what caused the error, how to fix the error and finally some actions you can take to fix it.</p>
<br /> Tagged: anatomy, bad error, error, good error, good error message, message, test, Testing, vista, what to put in error message, windows, Windows No Disk, Windows Vista Error <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/steveswanson.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/steveswanson.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/steveswanson.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/steveswanson.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/steveswanson.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/steveswanson.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/steveswanson.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/steveswanson.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/steveswanson.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/steveswanson.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/steveswanson.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/steveswanson.wordpress.com/224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/steveswanson.wordpress.com/224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/steveswanson.wordpress.com/224/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=steveswanson.wordpress.com&amp;blog=1737327&amp;post=224&amp;subd=steveswanson&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://steveswanson.wordpress.com/2009/04/02/anatomy-of-an-error-message-a-windows-vista-example/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6de7d0099d3e3b083c92053f7c996c27?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Steve</media:title>
		</media:content>

		<media:content url="http://steveswanson.files.wordpress.com/2009/04/baderror.png" medium="image">
			<media:title type="html">baderror</media:title>
		</media:content>
	</item>
		<item>
		<title>Two Forms One Page: Explanation of the HTML Form Action</title>
		<link>http://steveswanson.wordpress.com/2009/04/01/two-forms-one-page-explanation-of-the-html-form-action/</link>
		<comments>http://steveswanson.wordpress.com/2009/04/01/two-forms-one-page-explanation-of-the-html-form-action/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 18:24:20 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA["."]]></category>
		<category><![CDATA[action]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[form action="."]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[myuwaterloocourses]]></category>
		<category><![CDATA[one page]]></category>
		<category><![CDATA[two forms]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://steveswanson.wordpress.com/?p=220</guid>
		<description><![CDATA[When I started my web application for my design project I knew absolutely nothing about django, html, css&#8230; so basically any and all web technologies. Therefore for a very long time I did not really know the purpose of the action in the form declaration ( &#60;form action=&#8217;.'&#62;) or what the &#8216;.&#8217; actually meant. It [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=steveswanson.wordpress.com&amp;blog=1737327&amp;post=220&amp;subd=steveswanson&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When I started my web application for my design project I knew absolutely nothing about django, html, css&#8230; so basically any and all web technologies. Therefore for a very long time I did not really know the purpose of the action in the form declaration ( &lt;form action=&#8217;.'&gt;) or what the &#8216;.&#8217; actually meant.</p>
<p>It is actually very simple, the &#8216; action=&#8221;.&#8221; &#8216; denotes where the form is being submitted (what URL is being called). Specifically, the &#8220;.&#8221; means that that form will be submitted to the current location (same page), for example if your url was http://mysite.com/search the form would be submitted to http://mysite.com/search.</p>
<p>Now that we know what the action does, it can be used to have two forms on the same page submit to different location. I created a <a href="http://myuwaterloocourses.com/register/">page</a> where a user can either login or register. To have the two forms submit properly I have the following actions for the two forms:</p>
<p><strong>Login Form:</strong> &lt;form action=&#8217;/accounts/login/&#8217;&gt;</p>
<p><strong>Registration Form: </strong>&lt;form action=&#8217;/register/&#8217;&gt;</p>
<p>Now when the login form gets submitted the /accounts/login/ is called and when the registration form gets submitted the data is sent to /register/. An important note is that the action gets performed on the specified location BEFORE the last &#8216;/&#8217;. For example if I had , the action would be performed on the home page and not the register page. Therefore it is important to always have the trailing &#8216;/&#8217; .</p>
<p>Hopefully this saved someone some trouble getting multiple forms setup.</p>
<p>If you need any clarification, or more details, drop me a line and I&#8217;d be more than happy to help.</p>
<p>&#8211;Steve</p>
<br /> Tagged: ".", action, Django, form, form action=".", html, myuwaterloocourses, one page, two forms, web development <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/steveswanson.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/steveswanson.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/steveswanson.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/steveswanson.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/steveswanson.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/steveswanson.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/steveswanson.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/steveswanson.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/steveswanson.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/steveswanson.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/steveswanson.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/steveswanson.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/steveswanson.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/steveswanson.wordpress.com/220/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=steveswanson.wordpress.com&amp;blog=1737327&amp;post=220&amp;subd=steveswanson&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://steveswanson.wordpress.com/2009/04/01/two-forms-one-page-explanation-of-the-html-form-action/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6de7d0099d3e3b083c92053f7c996c27?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Steve</media:title>
		</media:content>
	</item>
		<item>
		<title>Django &#8211; Going from development to production</title>
		<link>http://steveswanson.wordpress.com/2009/03/24/django-going-from-development-to-production/</link>
		<comments>http://steveswanson.wordpress.com/2009/03/24/django-going-from-development-to-production/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 23:25:46 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Fourth Year Project]]></category>
		<category><![CDATA[4th]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[fourth]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[production]]></category>
		<category><![CDATA[Project]]></category>
		<category><![CDATA[settings.py]]></category>
		<category><![CDATA[systems]]></category>
		<category><![CDATA[waterloo engineering]]></category>
		<category><![CDATA[Web Application]]></category>
		<category><![CDATA[webfaction]]></category>
		<category><![CDATA[year]]></category>

		<guid isPermaLink="false">http://steveswanson.wordpress.com/?p=208</guid>
		<description><![CDATA[I recently took my 4th year Systems Design Engineering project, which is a Django web application, from the development environment into a production environment and had quite a bit of difficulty, that could have been easily avoided if I had a tutorial to follow! Hosting &#38; Domain: The first thing is to either build a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=steveswanson.wordpress.com&amp;blog=1737327&amp;post=208&amp;subd=steveswanson&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently took my 4th year Systems Design Engineering project, which is a Django web application, from the development environment into a production environment and had quite a bit of difficulty, that could have been easily avoided if I had a tutorial to follow!</p>
<ol>
<li><span style="text-decoration:underline;"><strong>Hosting &amp; Domain:</strong></span><br />
The first thing is to either build a web host or purchase hosting from a company. I purchased hosting form <a href="http://www.webfaction.com">Webfaction</a> as they had a one click deployment for a Django application.  A domain name should also be purchased, I bought mine from GoDaddy for 10$.</li>
<p></p>
<li><span style="text-decoration:underline;"><strong>Getting Setup on Webfaction:<br />
</strong></span>Webfaction takes a little while to setup your account~2-3 hours, when it is complete you will receive an e-mail and you can then login to their control panel. There are some resources that Webfaction offer to help you get setup, the first is a <a href="http://blog.webfaction.com/django-screencast">screencast</a> and the other is a <a href="https://help.webfaction.com/index.php?_m=knowledgebase&amp;_a=viewarticle&amp;kbarticleid=122">text guide</a>.</li>
<p></p>
<li><span style="text-decoration:underline;"><strong>Setting up the Database</strong></span><br />
Once you are in the control panel area there are a few things you&#8217;ll want to do. Firstly you will need to add a database (if you have not done so), this can be done by clicking add new databse from the &#8216;Databases&#8217; drop down menu.</li>
<p></p>
<li><span style="text-decoration:underline;"><strong>Adding your domain name<br />
</strong></span>Under domains/websites select the domain link. Click on the add new button, and then enter your domain, for this tutorial we will assume it is &#8216;mysite.com&#8217;. When you add the domain be sure to enter in the subdomains field &#8216;www&#8217; .</li>
<p></p>
<li><span style="text-decoration:underline;"><strong>Setting up the application to serve the static media</strong></span><br />
The next thing you will want to do is to add Static/CGI/PHP application to your website to serve the static media files (this is highly recommended). To do so go to the <strong>applications link</strong> under the <strong>domains/websites </strong>tab. Next click the add new button, name the application &#8216;media&#8217; and select the app type as &#8216;Static/CGI/PHP&#8217; and finally click the create button. Now you have to add the application to your domain, to do so click on the &#8216;websites&#8217; link, and click the edit button for your website. Under <strong>subdomains</strong> select any that you would like to include, and then under <strong>site-apps</strong> ensure that you select the <strong>media</strong> app and set the <strong>url/path</strong> to &#8216;/media&#8217;. Click update, and you should be taken to the page as seen here:</p>
<p><div id="attachment_210" class="wp-caption aligncenter" style="width: 759px"><img class="size-full wp-image-210" title="siteapps" src="http://steveswanson.files.wordpress.com/2009/03/siteapps.jpg?w=749&#038;h=249" alt="After site applications have been configured" width="749" height="249" /><p class="wp-caption-text">After site applications have been configured</p></div></li>
<li><span style="text-decoration:underline;"><strong>Changes to your settings.py file:<br />
</strong></span>There are a few changes that need to be made to the settings.py file:<br />
<em> </em><em> </em><em> DEBUG = False</em><em> </em><em> MEDIA_ROOT = &#8216;/home/<strong>username</strong>/webapps/media/<br />
</em><em> </em><em> MEDIA_URL= &#8216;/media/&#8217;</em></p>
<p>Replace &#8216;username&#8217; with the username that you selected for your webfaction account, now you are ready to upload your site. You will also need to change your database settings such that they match the new database created by webfaction.</li>
<p></p>
<li><span style="text-decoration:underline;"><strong>Uploading your web applicaion<br />
</strong></span>To upload your web application, you will need to upload your &#8216;mysite&#8217; application to the webfaction server. To do so you will need to download putty (an ssh tool) so that you can ssh into the host, the connection info as well as the username and password are provided by webfaction. Once you are logged in navigate to &#8216;/home/<strong>username</strong>/webapps/django/&#8217; and replace the &#8216;myproject&#8217; folder with your web application folder that you used for development. Once it has been uploaded you will need to tell apache where to locate the project, so naviagte to &#8216;/home/username/webapps/django/apache2/conf/&#8217;  and edit the <strong>httpd.conf</strong> file. You will need to change th PythonPath and SetEnv<em>PythonPath &#8220;['/home/<strong>username</strong>/webapps/django', '/home/<strong>username</strong>/webapps/django/lib/python2.5'] + sys.path&#8221;<br />
SetEnv DJANGO_SETTINGS_MODULE  <strong>sitename</strong>.settings</em></p>
<p>To setup your static media you will need to and another few lines of code to the same <strong>httpd.conf</strong> file:</p>
<p><em>&lt;Location &#8220;/media&#8221;&gt;<br />
SetHandler None<br />
&lt;/Location&gt;</em></p>
<p>Save the file, and thats all you need to do in the apache folder. One last thing you will need to do is put your existing media into the media directory so that your static files are properly served by apache:<br />
/home/username/webapps/media</li>
<p></p>
<li><span style="text-decoration:underline;"><strong>Setting up the Database :</strong></span><br />
The first thing you will need to do is to get a dump of your current sql database, I personally used mysql, and got a dump with the following line of code:   <em><span class="txtplain1"><span style="font-family:courier new,courier,mono;">mysqldump -u [username] -p [password] [databasename] &gt; [backupfile.sql]</span></span></em> . Now you need to navigate to your project on the webfaction host, /home/username/webapps/django/mysite/ and enter the db shell by entering: <em>python2.5 manage.py dbshell </em>. You should see a mysql command line promp where you can upload your mysql dump: <em>mysql &#8211; u user_name -p your_password database_name &lt; file_name.sql. </em>Now  you have your database loaded up and you are ready to go.</li>
<p></p>
<li><span style="text-decoration:underline;"><strong>Firing it Up:<br />
</strong></span>Everything is ready to go, the last step is to fire up your apache server, to so navigate to /home/username/webapps/django/apache2/ and enter the command <strong>bin/stop </strong>to stop it in case it was running, and then enter <strong>bin/start</strong> to start it up.</li>
<p></p>
<li><span style="text-decoration:underline;"><strong>Pointing the domain name to the webfaction name servers</strong></span>:<br />
There actualy is one last thing to do, and that is on the domain side of things. You will have to go to the site where you purchased your domain name, and then change the nameservers to those at webfaction, which are as follows:<br />
<em>ns1.webfaction.com<br />
ns2.webfaction.com<br />
ns3.webfaction.com<br />
ns4.webfaction.com<br />
</em>Now you can navigate to http://mysite.com and it should come up, congrats your site is live!</li>
</ol>
<p>There you have it, from development to production. Also remember if you make any changes to the settings.py file you will have to stop and then restart the apache server.  Hopefully this quick tutorial will help you get up and going, and if you have any other questions feel free to ask me!</p>
<p>&#8211;Steve</p>
<br /> Tagged: 4th, apache, design, development, Django, Engineering, fourth, MySQL, production, Project, settings.py, systems, waterloo engineering, Web Application, webfaction, year <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/steveswanson.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/steveswanson.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/steveswanson.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/steveswanson.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/steveswanson.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/steveswanson.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/steveswanson.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/steveswanson.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/steveswanson.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/steveswanson.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/steveswanson.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/steveswanson.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/steveswanson.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/steveswanson.wordpress.com/208/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=steveswanson.wordpress.com&amp;blog=1737327&amp;post=208&amp;subd=steveswanson&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://steveswanson.wordpress.com/2009/03/24/django-going-from-development-to-production/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6de7d0099d3e3b083c92053f7c996c27?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Steve</media:title>
		</media:content>

		<media:content url="http://steveswanson.files.wordpress.com/2009/03/siteapps.jpg" medium="image">
			<media:title type="html">siteapps</media:title>
		</media:content>
	</item>
		<item>
		<title>Revolutionary vs. Evolutionary Design &#8211; The 3rd Generation iPod Shuffle</title>
		<link>http://steveswanson.wordpress.com/2009/03/18/revolutionary-vs-evolutionary-design-the-3rd-generation-ipod-shuffle/</link>
		<comments>http://steveswanson.wordpress.com/2009/03/18/revolutionary-vs-evolutionary-design-the-3rd-generation-ipod-shuffle/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 15:42:02 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[3rd Generation]]></category>
		<category><![CDATA[evolutionary]]></category>
		<category><![CDATA[iPod]]></category>
		<category><![CDATA[listen to]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[revolutionary]]></category>
		<category><![CDATA[Shuffle]]></category>
		<category><![CDATA[VoiceOver]]></category>

		<guid isPermaLink="false">http://steveswanson.wordpress.com/?p=205</guid>
		<description><![CDATA[I am sure many of you have seen the new 3rd generation iPod shuffle, as seen here. What really caught my attention was this line from the VP of product marketing: “The new iPod shuffle is the world’s smallest music player and takes a revolutionary approach to how you listen to your music by talking [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=steveswanson.wordpress.com&amp;blog=1737327&amp;post=205&amp;subd=steveswanson&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I am sure many of you have seen the new 3rd generation iPod shuffle, as seen <a href="http://www.apple.com/pr/library/2009/03/11ipod.html">here</a>. What really caught my attention was this line from the VP of product marketing:</p>
<blockquote><p>“The new iPod shuffle is the world’s    smallest music player and takes a <em><strong>revolutionary</strong></em> approach to how you listen    to your music by talking to you, also making it the first iPod shuffle with    playlists.”</p></blockquote>
<p>What catches my attention is that they state that their new &#8216;revolutionary&#8217; VoiceOver feature;  the <em>&#8216;revolutionary&#8217;</em> VoiceOver feature will tell you the song titles, artists and playlist names. To me the fact that the shuffle talks to you is not a revolutionary change in the way people listen to music.I think they need a little lesson in what constitutes a revolutionary design and what really is an evolutionary design.</p>
<p>The terms evolutionary and revolutionary may seem very similar but there is an important difference, I&#8217;ll start by describing both. <strong>Evolutionary designs</strong> are ones that simply take a design to the next logical step, for example the first iPod nano with video support was an evolutionary design, it brought video to a small portable device but it did not really change how people watch videos. <strong>Revolutionary designs </strong>are those that fundamentally change how something is done, a classic example of a revolutionary design is the printing press, it fundamentally changed how information was desiminated and possibly led to the prevalence of literacy.</p>
<p>It should be obvious at this point how the new VoiceOver technology is not a revolutionary step in the way that we listen to music. The VoiceOver technology simply provides the same information that a visual display would, just through the auditory channel, thus not really changing how we listen to music.</p>
<p>To me, an example of a revolutionary design for a new music player would be one that could sense our moods and then auto create playlists based on them, or one whose controls could be operated based on our thoughts instead of the current tactile interface. Now obviously I know that these ideas are a little far fetched and currently infeasible, but one can always dream!</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Do you agree or disagree with the arguments made above? Let me know, I&#8217;d love to hear your thoughts.</p>
<br /> Tagged: 3rd Generation, design, evolutionary, iPod, listen to, music, revolutionary, Shuffle, VoiceOver <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/steveswanson.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/steveswanson.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/steveswanson.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/steveswanson.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/steveswanson.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/steveswanson.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/steveswanson.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/steveswanson.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/steveswanson.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/steveswanson.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/steveswanson.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/steveswanson.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/steveswanson.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/steveswanson.wordpress.com/205/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=steveswanson.wordpress.com&amp;blog=1737327&amp;post=205&amp;subd=steveswanson&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://steveswanson.wordpress.com/2009/03/18/revolutionary-vs-evolutionary-design-the-3rd-generation-ipod-shuffle/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6de7d0099d3e3b083c92053f7c996c27?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Steve</media:title>
		</media:content>
	</item>
	</channel>
</rss>
