<?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>Steven's Notebook</title>
	<atom:link href="http://steven.vorefamily.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://steven.vorefamily.net</link>
	<description>Look Ma - No Hands!</description>
	<lastBuildDate>Mon, 17 Jun 2013 16:22:04 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>It&#8217;s Time to Share What You&#8217;ve Learned</title>
		<link>http://steven.vorefamily.net/2013/06/17/sharing/</link>
		<comments>http://steven.vorefamily.net/2013/06/17/sharing/#comments</comments>
		<pubDate>Mon, 17 Jun 2013 16:09:27 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[Knowledge]]></category>

		<guid isPermaLink="false">http://steven.vorefamily.net/?p=1451</guid>
		<description><![CDATA[Adam Goucher posted this last week on Twitter: I think it&#8217;s certainly worth considering &#8211; I mean, how&#8217;s the old saying go, something about learning something new every day? In our day and age, and especially in the software development arena in which I work, there&#8217;s always something new going on, a new challenge to [...]]]></description>
				<content:encoded><![CDATA[<p>Adam Goucher <a href="https://twitter.com/adamgoucher/status/344979232490930177">posted this</a> last week on Twitter:<br /><a href="https://twitter.com/adamgoucher/status/344979232490930177"><img src="http://steven.vorefamily.net/wp-content/uploads/2013/06/AdamGoucherTweet.png" alt="notion; if your 'engineering' team is not doing enough interesting things for 1 blog post a week, you likely have a problem." title="notion; if your 'engineering' team is not doing enough interesting things for 1 blog post a week, you likely have a problem." width="500" height="86" /></a>
</p>
<p>I think it&#8217;s certainly worth considering &#8211; I mean, how&#8217;s the old saying go, something about learning something new every day? In our day and age, and especially in the software development arena in which I work, there&#8217;s always something new going on, a new challenge to overcome. <a href="http://www.ted.com/talks/dan_pink_on_motivation.html">Dan Pink</a>, author of <a href="http://www.amazon.com/gp/product/1594484805?ie=UTF8&#038;camp=213733&#038;creative=393185&#038;creativeASIN=1594484805&#038;linkCode=shr&#038;tag=stevsnote-20&#038;qid=1371483015">Drive</a>, talks about our desire for Autonomy, Mastery and Purpose &mdash; Mastery is the urge to get better and better at something that matters. I hope you&#8217;re not stuck in a position where you&#8217;re not learning, where you don&#8217;t have an opportunity to improve your skills.</p>
<p>So, assuming that you&#8217;re learning something at least once a week, what are you doing with that knowledge? Are you sharing it with your co-workers, with your peers, with others in the industry? </p>
<p>There are plenty of reasons why some people don&#8217;t blog publicly. Some ideas are considered proprietary; sharing them outside of your company is frowned upon or may even be a fireable offense. Consider though, are you at least sharing your learning with others inside your company &#8211; via an internal <a href="https://en.wikipedia.org/wiki/Wiki">Wiki</a>, blog, or newsletter? Does your team get together for lunch and talk about what they&#8217;re doing and how they&#8217;re doing it? If not, what does this say about the investment you and your company are making?  </p>
<p>Once you walk out of the office at the end of the day, your brain (hopefully) doesn&#8217;t stop working, and neither does  your opportunity to learn and to help others. During my time as a leader in a Boy Scout troop, one of our ongoing philosophies was that we learn best by teaching. When a boy said they didn&#8217;t know how to do something, we&#8217;d get them somem instruction and ask them to be ready to teach a few other boys at the next campout. </p>
<p>So when you&#8217;ve just overcome a problem that&#8217;s been bugging you for a few hours, learned a new programming pattern, or discovered a new tool that saves you some time, it&#8217;s time to teach someone else. Generalize the challenge, so you&#8217;re not giving away any of your company&#8217;s trade secrets. Start by explaining it to your favorite <a href="http://en.wikipedia.org/wiki/Rubber_duck_debugging">rubber duck</a>, then get your explanation down on paper &#8211; or at least in a text editor. Send it out to a few trusted colleagues, or start a simple blog. You don&#8217;t have to advertise it widely if you don&#8217;t want &#8211; just the act of writing it will solidify the concepts and lead you to learn it more in-depth. This is also a really great confidence-builder: As you keep doing this, you&#8217;ll start to realize that you are becoming an expert, that people are looking to you for answers, and that your boss should realize what a valued employee you really are. </p>
<p>Here&#8217;s an advanced step. When you&#8217;re ready &mdash; or even better, before you think you really are &mdash; stand up. Give a talk on the subject at your office. Get involved with a tech <a href="http://www.meetup.com/">meetup</a> in your area and offer to present it there. People aren&#8217;t looking for perfection; they&#8217;re looking for you to share what you know and how you&#8217;ve learned it (including the stumbles along the way).  </p>
<p>Of course, to circle back to Adam&#8217;s point (or what I believe it to have been), perhaps the lack of blogging from your team is pointing to a lack of challenge, a lack of learning. Then yea, &#8220;you likely have a problem.&#8221;</p>
<p>Agree? Disagree? Add your thoughts to the comments here or <a href="https://twitter.com/StevenJV/status/344998349163855873">join the discussion over on Twitter</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://steven.vorefamily.net/2013/06/17/sharing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Music All Access Radio Stations</title>
		<link>http://steven.vorefamily.net/2013/05/30/google-music-all-access-radio-stations/</link>
		<comments>http://steven.vorefamily.net/2013/05/30/google-music-all-access-radio-stations/#comments</comments>
		<pubDate>Fri, 31 May 2013 03:22:22 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://steven.vorefamily.net/?p=1433</guid>
		<description><![CDATA[I&#8217;ve been giving Google&#8217;s streaming-music, the somewhat awkwardly-named Google Music All Access service, a try ever since the announcement at IO. For the most part I like it, and I&#8217;ll likely move to it full-time (especially given the news of an iOS app soon), though I haven&#8217;t really figured out the dual nature of it, [...]]]></description>
				<content:encoded><![CDATA[<p><img src="http://steven.vorefamily.net/wp-content/uploads/2013/05/GoogleAllAccess.png" alt="Google Music All Access" width="75" height="93" class="alignleft size-full wp-image-1436" style="float:left; padding-right:10px;padding-bottom:10px;" />I&#8217;ve been giving Google&#8217;s streaming-music, the somewhat awkwardly-named <a href="https://play.google.com/music/listen#/now">Google Music All Access</a> service, a try ever since the announcement at <a href="https://developers.google.com/events/io/">IO</a>.  For the most part I like it, and I&#8217;ll likely move to it full-time (especially given <a href="http://news.cnet.com/8301-1023_3-57586922-93/google-music-all-access-coming-soon-to-ios/">the news of an iOS app</a> soon), though I haven&#8217;t really figured out the dual nature of it, both having a streaming-music service <em>and</em> wanting me to upload my music library. </p>
<p>I am trying to find the answer to one apparent shortcoming when compared to other services. </p>
<p>When I create a &#8220;radio station&#8221; on <a href="http://www.pandora.com/">Pandora</a>, I can seed it with as many songs or artists as I&#8217;d like. </p>
<p><img src="http://steven.vorefamily.net/wp-content/uploads/2013/05/Pandora-Radio-Station.png" alt="Pandora Radio Station definition" width="500" height="642" class="aligncenter size-full wp-image-1437" /></p>
<p>I haven&#8217;t found a way to do this with Google Music All Access &#8211; once a station is created based on one artist there doesn&#8217;t seem to be a way to add more variety or refinement to the station&#8217;s definition. </p>
<p>If you&#8217;ve figured out a way to do so, please let me know. </p>
]]></content:encoded>
			<wfw:commentRss>http://steven.vorefamily.net/2013/05/30/google-music-all-access-radio-stations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Specification By Example (ATDD at AQAA and ATLScrum)</title>
		<link>http://steven.vorefamily.net/2013/05/14/atdd-at-aqaa/</link>
		<comments>http://steven.vorefamily.net/2013/05/14/atdd-at-aqaa/#comments</comments>
		<pubDate>Wed, 15 May 2013 01:51:14 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[Software Development and Testing]]></category>

		<guid isPermaLink="false">http://steven.vorefamily.net/?p=1410</guid>
		<description><![CDATA[Note: Andrew presented this workshop a second time last night. As with any presentation or workshop, it has evolved slightly over time. I&#8217;m incorporating my additional notes into this post. -Sjv 23-May-2013 Over the past week or so, Andrew Fuqua (@andrewmfuqua) has given workshops on Acceptance Test Driven Development for both the Atlanta Quality Assurance [...]]]></description>
				<content:encoded><![CDATA[<p style="border-style:dashed; border-width:1px;border-color: #1873a1; padding:1em;"><em>Note: Andrew presented this workshop a second time last night. As with any presentation or workshop, it has evolved slightly over time. I&#8217;m incorporating my additional notes into this post. -Sjv 23-May-2013</em>
</p>
<p>Over the past week or so, Andrew Fuqua (<a href="https://twitter.com/andrewmfuqua">@andrewmfuqua</a>) has given workshops on <strong>Acceptance Test Driven Development</strong> for both the <a href="http://www.aqaa.org/">Atlanta Quality Assurance Association</a> &mdash; an organization that, I&#8217;m embarrassed to say, I didn&#8217;t know existed until I heard about it via Twitter (of course) &mdash; and the <a href="http://www.scrumatlanta.org">Atlanta Scrum Users Group</a>.
</p>
<p>
Andrew comes to the topic from his role as an Agile Coach and emphasized communication, communication, <strong>communication</strong>. ATDD, as we discussed this evening, is all about getting &#8220;the three amigos&#8221; &mdash; Product Owner (a role he asked me to fill for the AQAA workshop), Developers and Testers &mdash; together to communicate. The intent is to discuss the details of requirements (often written as User Stories these days) and distill them down into a minimum set of examples in order to provide clarity. Another, perhaps better, term would be <strong>Specification By Example</strong>.
</p>
<p>
Here are a few of my scribbled notes from the two evenings:
</p>
<ul>
<li>Why do software have bugs? Many reasons, but most often because of miscommunication between humans &#8211; especially around requirements. </li>
<li>We humans have a tendency to assume ill intent (why is this?) where often misunderstanding is more likely the cause.</li>
<li>A feature or product request often starts with some sort of concrete example, which gets thrown away as more general requirements documents are written.  Let&#8217;s get back to examples as part of the requirements</li>
<li>Business rules are more likely to be stable than user interfaces. Therefore examples should be in business language. </li>
<li>Cognitive dissonance (discussion between people with different viewpoints, different skill sets, different ways of thinking) can facilitate exploration and improve understanding. Involve product owner, developer, tester, business analyst, customer if possible.</li>
<li>Don&#8217;t get lost in the details.</li>
<li>We all have too many meetings. Don&#8217;t create another one for this discussion/distillation activity. Hold a specification workshop instead. </li>
<li>Discuss, Distill, Develop, Demo (explore). Lather, rinse, repeat.</li>
<li>Distill the list of examples down to the bare minimum, a minimal set of both &#8220;passing&#8221; and &#8220;failing&#8221; examples. One example per business rule.</li>
<li>There is value in the discussion and distillation even if the examples are never codified into automated testing.  Communication is the goal. </li>
<li>ATDD != TDD. TDD guides design of code. ATDD guides clarification of requirements.</li>
<li>ATDD is done before &mdash; and throughout &mdash; coding/testing.</li>
<li>Best captured in some sort of living document (no specific tool recommended, but a wiki was mentioned)</li>
<li>The results should be owned by the product owner, not developers or testers. </li>
<li>It&#8217;s not about testing, it&#8217;s about communication.</li>
<li>&#8220;Don&#8217;t invest in something that nobody gets value from.&#8221; &#8211; <a href="http://twitter.com/aclairefication">Claire</a> </li>
<li>&#8220;Design a level of testing that is commensurate with risk tolerance. Don&#8217;t dabble in automation. Do it well to keep it &#8211; or toss it.&#8221; &#8211; <a href="http://twitter.com/leanSQA">Sellers</a></li>
<li>Understand  <a href="https://twitter.com/marick">Brian Marick</a>&#8216;s Agile Testing Quadrant model. (see <a href="http://www.exampler.com/old-blog/2003/08/22/#agile-testing-project-2">this</a> and <a href="http://lisacrispin.com/2011/11/08/using-the-agile-testing-quadrants/">this</a>) &#8211; <a href="https://twitter.com/Wiggly">Alex</a></li>
</ul>
<p>
And some of the resources Andrew mentioned:
</p>
<ul>
<li><a href="http://www.amazon.com/gp/product/1617290084?ie=UTF8&#038;camp=213733&#038;creative=393185&#038;creativeASIN=1617290084&#038;linkCode=shr&#038;tag=stevenv-20">Specification by Example: How Successful Teams Deliver the Right Software</a>, and its predecessor <a href="http://www.amazon.com/gp/product/0955683610?ie=UTF8&#038;camp=213733&#038;creative=393185&#038;creativeASIN=0955683610&#038;linkCode=shr&#038;tag=stevenv-20&#038;=books&#038;qid=1368581949&#038;sr=1-1&#038;keywords=Bridging+the+Communication+Gap%3A+Specification+by+Example+and+Agile+Acceptance+Testing">Bridging the Communication Gap: Specification by Example and Agile Acceptance Testing</a>.</li>
<li><a href="http://www.amazon.com/gp/product/0321784154?ie=UTF8&#038;camp=213733&#038;creative=393185&#038;creativeASIN=0321784154&#038;linkCode=shr&#038;tag=stevenv-20&#038;=books&#038;qid=1368581844&#038;sr=1-1&#038;keywords=ATDD+by+Example%3A+A+Practical+Guide+to+Acceptance+Test-Driven+Development">ATDD by Example: A Practical Guide to Acceptance Test-Driven Development</a></li>
<li><a href="http://testobsessed.com/2011/02/the-atdd-arch/">The ATDD Arch</a> and <a href="http://testobsessed.com/wp-content/uploads/2011/04/atddexample.pdf">Driving Development with Tests: ATDD and TDD</a> by Elisabeth Hendrickson (<a href="http://twitter.com/testobsessed">@testobsessed</a>).</li>
</ul>
<p>
The discussions did also touch on the topic of test automation. Again, no specific tools or technologies were covered or recommended, but a couple of good points were raised. I was especially pleased to see many heads nodding in agreement when Andrew said that &#8220;test automation <strong>is</strong> software development, and should be treated as such.&#8221;
</p>
<p>
This was a good workshop, and I&#8217;d like to thank Andrew for his time (and for letting me help where I could be of assistance).</p>
]]></content:encoded>
			<wfw:commentRss>http://steven.vorefamily.net/2013/05/14/atdd-at-aqaa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book Recommendations by a Dozen</title>
		<link>http://steven.vorefamily.net/2013/05/08/books/</link>
		<comments>http://steven.vorefamily.net/2013/05/08/books/#comments</comments>
		<pubDate>Wed, 08 May 2013 21:55:45 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Software Development and Testing]]></category>

		<guid isPermaLink="false">http://steven.vorefamily.net/?p=1403</guid>
		<description><![CDATA[I was fortunate to spend two days last week with some very smart people as my company hosted a completely non-company-specific, non-tool-specific, non-technology-speicfic peer conference; twelve people in a room discussing the craft and profession of software testing, what changes we see happening and would like to see, and how we might be able to [...]]]></description>
				<content:encoded><![CDATA[<p>I was fortunate to spend two days last week with some very smart people as my company hosted a completely non-company-specific, non-tool-specific, non-technology-speicfic peer conference; twelve people in a room discussing the craft and profession of software testing, what changes we see happening and would like to see, and how we might be able to influence them. </p>
<p>On day two the question was raised: &#8220;what are you reading or do you recommend?&#8221; The following is the list that was produced. This is completely non-edited, everyone was welcome to post their recommendations and talk a bit about them. I am not endorsing all of these; many I&#8217;ve not read and a few I&#8217;d not even heard of before. Heck, there wasn&#8217;t agreement among all the participants on every book, some resulted in quite a discussion. </p>
<p>Note to the participants &#8211; I went from our hand-written notes on the wall; if I&#8217;ve mis-read something or found the wrong book, please let me know and I&#8217;ll update this. </p>
<p>disclosure: all these links are tagged with my Amazon Affiliate code &mdash; if you purchase through these links I&#8217;ll get a small percentage (which will undoubtedly go toward more book purchases), and I&#8217;ll be able to see what books were purchased (but not by whom; Amazon respects your privacy at least that much). </p>
<ul>
<li><a href="http://www.amazon.com/gp/product/1937785025/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1937785025&#038;linkCode=as2&#038;tag=stevenv-20">Explore It!: Reduce Risk and Increase Confidence with Exploratory Testing</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=1937785025" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/1595554971/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1595554971&#038;linkCode=as2&#038;tag=stevenv-20">The Catalyst Leader: 8 Essentials for Becoming a Change Maker</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=1595554971" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/1591846447/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1591846447&#038;linkCode=as2&#038;tag=stevenv-20">Start with Why: How Great Leaders Inspire Everyone to Take Action</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=1591846447" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0691017840/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0691017840&#038;linkCode=as2&#038;tag=stevenv-20">The Hero with a Thousand Faces (Bollingen Series, No. 17)</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0691017840" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0130086959/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0130086959&#038;linkCode=as2&#038;tag=stevenv-20">Artful Making: What Managers Need to Know About How Artists Work</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0130086959" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0670879835/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0670879835&#038;linkCode=as2&#038;tag=stevenv-20">Orbiting the Giant Hairball: A Corporate Fool&#8217;s Guide to Surviving with Grace</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0670879835" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0312430000/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0312430000&#038;linkCode=as2&#038;tag=stevenv-20">The Checklist Manifesto: How to Get Things Right</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0312430000" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/B006960LQW/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B006960LQW&#038;linkCode=as2&#038;tag=stevenv-20">The Five Dysfunctions of a Team: A Leadership Fable</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=B006960LQW" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0446698202/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0446698202&#038;linkCode=as2&#038;tag=stevenv-20">The No Asshole Rule: Building a Civilized Workplace and Surviving One That Isn&#8217;t</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0446698202" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/1590306392/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1590306392&#038;linkCode=as2&#038;tag=stevenv-20">Cutting Through Spiritual Materialism (Shambhala Library)</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=1590306392" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0061733520/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0061733520&#038;linkCode=as2&#038;tag=stevenv-20">Self-Compassion</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0061733520" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0061438294/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0061438294&#038;linkCode=as2&#038;tag=stevenv-20">What Every BODY is Saying: An Ex-FBI Agent&#8217;s Guide to Speed-Reading People</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0061438294" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0143118757/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0143118757&#038;linkCode=as2&#038;tag=stevenv-20">Getting to Yes: Negotiating Agreement Without Giving In</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0143118757" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0446696447/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0446696447&#038;linkCode=as2&#038;tag=stevenv-20">Negotiate This!: By Caring, But Not T-H-A-T Much</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0446696447" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0743212347/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0743212347&#038;linkCode=as2&#038;tag=stevenv-20">The Trusted Advisor</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0743212347" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0316610690/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0316610690&#038;linkCode=as2&#038;tag=stevenv-20">The Secret Knowledge of Water : Discovering the Essence of the American Desert</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0316610690" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0316067547/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0316067547&#038;linkCode=as2&#038;tag=stevenv-20">House of Rain: Tracking a Vanished Civilization Across the American Southwest</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0316067547" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0061129763/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0061129763&#038;linkCode=as2&#038;tag=stevenv-20">The Monkey Wrench Gang (P.S.)</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0061129763" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0932633013/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0932633013&#038;linkCode=as2&#038;tag=stevenv-20">The Secrets of Consulting: A Guide to Giving and Getting Advice Successfully</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0932633013" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0787976393/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0787976393&#038;linkCode=as2&#038;tag=stevenv-20">Getting Naked: A Business Fable About Shedding The Three Fears That Sabotage Client Loyalty</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0787976393" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/1578514371/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1578514371&#038;linkCode=as2&#038;tag=stevenv-20">Leadership on the Line: Staying Alive through the Dangers of Leading</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=1578514371" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/1847940323/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1847940323&#038;linkCode=as2&#038;tag=stevenv-20">Switch: How to Change Things When Change Is Hard</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=1847940323" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/1936719169/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1936719169&#038;linkCode=as2&#038;tag=stevenv-20">Read This Before Our Next Meeting</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=1936719169" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/1590308492/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1590308492&#038;linkCode=as2&#038;tag=stevenv-20">Zen Mind, Beginner&#8217;s Mind</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=1590308492" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0375705090/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0375705090&#038;linkCode=as2&#038;tag=stevenv-20">Zen in the Art of Archery</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0375705090" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0061673730/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0061673730&#038;linkCode=as2&#038;tag=stevenv-20">Zen and the Art of Motorcycle Maintenance: An Inquiry into Values</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0061673730" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0307390691/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0307390691&#038;linkCode=as2&#038;tag=stevenv-20">Zen and Now: On the Trail of Robert Pirsig and the Art of Motorcycle Maintenance (Vintage Departures)</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0307390691" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/1934356344/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1934356344&#038;linkCode=as2&#038;tag=stevenv-20">The Passionate Programmer: Creating a Remarkable Career in Software Development (Pragmatic Life)</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=1934356344" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/1934356050/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1934356050&#038;linkCode=as2&#038;tag=stevenv-20">Pragmatic Thinking and Learning: Refactor Your Wetware (Pragmatic Programmers)</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=1934356050" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/1879045893/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1879045893&#038;linkCode=as2&#038;tag=stevenv-20">God &#038; the Big Bang: Discovering Harmony Between Science and Spirituality</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=1879045893" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0955683645/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0955683645&#038;linkCode=as2&#038;tag=stevenv-20">Impact Mapping: Making a big impact with software products and projects</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0955683645" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/1934356581/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1934356581&#038;linkCode=as2&#038;tag=stevenv-20">The Agile Samurai: How Agile Masters Deliver Great Software (Pragmatic Programmers)</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=1934356581" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/1931930341/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1931930341&#038;linkCode=as2&#038;tag=stevenv-20">Speaking of India: Bridging the Communication Gap When Working With Indians</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=1931930341" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0743449746/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0743449746&#038;linkCode=as2&#038;tag=stevenv-20">D-Day: June 6, 1944: The Battle for the Normandy Beaches</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0743449746" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/B005CDT6ZA/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B005CDT6ZA&#038;linkCode=as2&#038;tag=stevenv-20">Citizen Soldiers: The U. S. Army from the Normandy Beaches to the Bulge to the Surrender of Germany</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=B005CDT6ZA" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0767907698/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0767907698&#038;linkCode=as2&#038;tag=stevenv-20">Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0767907698" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0399144463/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0399144463&#038;linkCode=as2&#038;tag=stevenv-20">Who Moved My Cheese?: An Amazing Way to Deal with Change in Your Work and in Your Life</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0399144463" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/1594485380/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1594485380&#038;linkCode=as2&#038;tag=stevenv-20">Where Good Ideas Come From &#8211; UTPA</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=1594485380" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0765331128/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0765331128&#038;linkCode=as2&#038;tag=stevenv-20">The Magic of Recluce (Saga of Recluce)</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0765331128" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0884271951/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0884271951&#038;linkCode=as2&#038;tag=stevenv-20">The Goal: A Process of Ongoing Improvement</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0884271951" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/B0048WQDIO/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B0048WQDIO&#038;linkCode=as2&#038;tag=stevenv-20">Lean Thinking: Banish Waste and Create Wealth in Your Corporation</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=B0048WQDIO" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/0767924711/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0767924711&#038;linkCode=as2&#038;tag=stevenv-20">No Shortcuts to the Top: Climbing the World&#8217;s 14 Highest Peaks</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=0767924711" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<li><a href="http://www.amazon.com/gp/product/B008SLEZDG/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B008SLEZDG&#038;linkCode=as2&#038;tag=stevenv-20">K2: Life and Death on the World&#8217;s Most Dangerous Mountain</a><img src="http://www.assoc-amazon.com/e/ir?t=stevenv-20&#038;l=as2&#038;o=1&#038;a=B008SLEZDG" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</ul>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://steven.vorefamily.net/2013/05/08/books/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why not sleep?</title>
		<link>http://steven.vorefamily.net/2013/05/07/why-not-sleep/</link>
		<comments>http://steven.vorefamily.net/2013/05/07/why-not-sleep/#comments</comments>
		<pubDate>Tue, 07 May 2013 16:32:32 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[Software Development and Testing]]></category>

		<guid isPermaLink="false">http://steven.vorefamily.net/?p=1386</guid>
		<description><![CDATA[In my last post, about test automation, I wrote about using sleep : &#8220;Bad, bad, bad. Don&#8217;t do this.&#8221; But why not? Well, the way I was doing it there &#8212; until d.exists? &#8212; really wasn&#8217;t that horrible. What you really want to stay away from, and what I&#8217;ve seen people start out with, is [...]]]></description>
				<content:encoded><![CDATA[<p>
In <a href="http://steven.vorefamily.net/2013/04/24/web-automation/" name ="Web Automation, A First Start">my last post</a>, about test automation, I wrote about using <span style="font-family: Courier, monospace; display:inline;"> sleep </span>: &#8220;Bad, bad, bad. <strong>Don&#8217;t</strong> do this.&#8221; But why not? Well, the way I was doing it there &mdash; <span style="font-family: Courier, monospace; display:inline;"> until d.exists? </span> &mdash; really wasn&#8217;t that horrible. What you <strong>really</strong> want to stay away from, and what I&#8217;ve seen people start out with, is <span style="font-family: Courier, monospace; display:inline;">sleep</span> with a hard-coded time value. &#8220;But I know the app&#8217;s going to take a few seconds to be ready,&#8221; they say, &#8220;so I just put in a 5-second delay.&#8221;
</p>
<p>
Let&#8217;s look at &mdash; in human terms &mdash; what we&#8217;re talking about. Imagine for a moment that your extremely strict boss wants to know what colour taxi he&#8217;ll be taking to the airport, and sends you outside to look.<br />
<img src="/wp-content/uploads/2013/05/YellowCab100x100.jpg" alt="Yellow Cab" width="100" height="100" style="float:right;" /><br />
He knows the car&#8217;s due to arrive in the next five minutes, so his instruction is a simple one: &#8220;Go outside and wait five minutes with your eyes closed. At the end of that time, open your eyes. Look at the car at the curb and come tell me what colour it is.&#8221;
</p>
<p>
Can you see any problems with that task? I see two right away. First, it&#8217;s potentially a waste of your time and his. What are you to do if the taxi arrives before the five-minute mark? Nothing. He expressly told you to wait five minutes, then look at the car. If the driver&#8217;s having a good day and shows up early, too bad. You wait uselessly at the curb; he waits impatiently for an answer that you could have delivered earlier.
</p>
<p>
Secondly, he gave you no instructions on what to do if traffic is bad and the taxi isn&#8217;t there on time. You&#8217;ll have to go back and deliver a non-answer. Next time, he may decide that five minutes wasn&#8217;t enough, so he&#8217;ll try giving you a ten-minute wait time.
</p>
<p>This is decidedly non-optimal.
</p>
<p>
&#8220;But wait,&#8221; you say to your manager, &#8220;Why don&#8217;t I just wait until I see a taxi, then come and let you know.&#8221; That is what you&#8217;d say, right? Of course it is. That&#8217;s exactly what we want our computers to say, too.
</p>
<p>
That&#8217;s the purpose of <span style="font-family: Courier, monospace; display:inline;">until</span>. Give the computer a specific condition, and the flexibility to wait just long enough until that condition becomes true. In my previous Ruby/<a href="http://watir.com/">Watir</a> example, we waited until an element existed, or until one contained a particular text string. Other language/testing frameworks have similar syntax. Using WebDriver, for example, you&#8217;d use <span style="font-family: Courier, monospace; display:inline;"> wait.Until() </span>
</p>
<p>
Until our computers get a bit more intelligent and understand what we mean rather than what we say (and given the potential state of <a href="http://en.wikipedia.org/wiki/HAL_9000">computer intelligence</a> maybe that&#8217;s not a good idea), we need to be explicit in our instructions while making those instructions flexible enough to work well in the real world.</p>
]]></content:encoded>
			<wfw:commentRss>http://steven.vorefamily.net/2013/05/07/why-not-sleep/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Automation, A First Start</title>
		<link>http://steven.vorefamily.net/2013/04/24/web-automation/</link>
		<comments>http://steven.vorefamily.net/2013/04/24/web-automation/#comments</comments>
		<pubDate>Wed, 24 Apr 2013 17:45:14 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[Software Development and Testing]]></category>

		<guid isPermaLink="false">http://steven.vorefamily.net/?p=1297</guid>
		<description><![CDATA[written a while back, not posted until today; this was about a year or so ago My software testing (QA) team has grown over the years, often at a frantic pace. Like many others, I&#8217;m sure, there&#8217;s always been more work to do than time to do it in, and so saw sharpening has never [...]]]></description>
				<content:encoded><![CDATA[<p><em>written a while back, not posted until today; this was about a year or so ago</em></p>
<p>My software testing (QA) team has grown over the years, often at a frantic pace. Like many others, I&#8217;m sure, there&#8217;s always been more work to do than time to do it in, and so <a href="http://c2.com/cgi/wiki?SharpenTheSaw">saw sharpening</a> has never gotten high enough on the priority stack. Instead the answer was to work more hours or hire more people, and continue with manual testing. As you can imagine that becomes unsustainable and stressful. At one point, while the development team was in the midst of a large re-write project, I carved out a bit of time get started with something that we had been talking about for years: automating some of our testing. This is the beginning of this tale, a story that &mdash; for that team &mdash; is not yet complete. </p>
<p>Where to start? The products under development are web applications, all custom-built using <a href="http://en.wikipedia.org/wiki/Ajax_(programming)">Ajax</a> and <a href="http://en.wikipedia.org/wiki/Jquery">JQuery</a> running on a home-grown web servers and not created with automation in mind at all. One of the developers had even told me that there was &#8220;no way&#8221; I&#8217;d be able to drive the app from any tool or framework. The developers were as busy as ever, so I started poking around to see if I could find any methods that could work for us. </p>
<p>My goals were a bit loose at this point, but I knew that we needed a way to drive our application and check results for regression testing. We would need to be able to do it across multiple browsers, and that it would need to be done &mdash; at least initially &mdash; by the testing team without much assistance from the developers. Oh, and because this was still a side project, it needed to be free. </p>
<p>I looked at several tools and combinations of tools and decided to start with a combination of <a href="http://www.ruby-lang.org/en/">Ruby</a> and <a href="http://watir.com/">Watir</a>. My decision was based, I will admit, partially on Watir&#8217;s documentation and claims of ease but also on the fact that I wanted an excuse to learn Ruby. Let&#8217;s take a look at a few of those first faltering steps together.</p>
<p>The first difficulty was that of determining when the application was actually ready for interaction. This application never loads a new page or changes the URL at all. My first attempts were admittedly ugly and involved sleeping in loops waiting for elements to be created. Bad, bad, bad. <strong>Don&#8217;t</strong> do this. On the upside, here at least the developers had added <a href="http://w3schools.com/jsref/prop_html_id.asp">id properties</a> that I could use to locate the elements I needed on the login page.</p>
<pre class="brush: ruby; highlight: [13,14,15,16]; title: ; notranslate">
require 'watir-webdriver'
username = 'AUserName'
password = 'APassword'
b = Watir::Browser.new :ie
puts 'loading page'
b.goto('https://testsite.mycompany.org/')
puts 'logging on as ' + username
b.text_field(:id =&gt; 'UserNameText').set username
b.text_field(:id =&gt; 'PasswordText').set password
b.checkbox(:id, 'agreeCheckBox').set
b.button(:id, 'LoginButton').click
d = b.div :id,'documents'
until  d.exists?
  # puts 'watiting for documents page'
  sleep 1
end
puts 'login complete'
</pre>
<p>The next step was to navigate to a  specific page. Here I&#8217;m performing some user actions and then waiting for a particular item to become available. This is a slightly better method than the sleep above; looping until a specific element is set to a known text string. Error handling takes care of things until that condition becomes true, which makes the loop a bit longer, and perhaps more ugly, but it&#8217;s at least a bit informative. My debugging-via-stdout lines remain for your entertainment:</p>
<pre class="brush: ruby; first-line: 18; highlight: [25]; title: ; notranslate">
# go to Passenger List
# click the menus
b.link(:id, 'navPassenger').click
b.link(:id, 'PassengerList').click
# wait for the page
d = b.div(:class,'pageTitle')
begin
  until 'Passenger List'.eql?(d.text)
  end
  rescue Watir::Exception::UnknownObjectException
    $stdout.write('.')
    retry
  rescue Selenium::WebDriver::Error::ElementNotVisibleError
    $stdout.write(',')
    retry
  rescue Selenium::WebDriver::Error::StaleElementReferenceError
    $stdout.write('+')
    retry
end
s = b.select_list(:id =&gt; 'jumpPerPage').select '100'
puts 'List displayed: ' + d.text 
d = nil
</pre>
<p>At this point I was in a place to actually look at what&#8217;s important &#8211; to make sure that all the rows displayed had a memberID. There&#8217;s nothing here to see if the data&#8217;s actually correct; just to see that the app&#8217;s not returning any records that don&#8217;t have data in a particular column. This does assume that this page has all the data displayed, that there&#8217;s no pagination. Also, looping through through the .count method isn&#8217;t speedy, but for this proof-of-concept that wasn&#8217;t a concern. </p>
<pre class="brush: ruby; first-line: 40; highlight: [41,46]; title: ; notranslate">
# Get the rows of the table (assuming there is just one dataTable)
table_trs = b.div(:class, 'dataTable').table.tbody.trs
rows = table_trs.count
puts 'total rows on page: ' + rows.to_s

#Find how many rows have data in the 5th cell
rows_with_data = table_trs.count{ |tr| tr.td(:index, 4).text != '' }
puts 'rows with MemberID: ' + rows_with_data.to_s
</pre>
<p>Here&#8217;s where I began to run into the second challenge, one that is pretty prevalent not only in this application&#8217;s code but wherever developers don&#8217;t have testability as an up-front design priority. Since the app&#8217;s pages are written to be as multi-purpose as possible &mdash; from the developers&#8217; point of view &mdash; there are many places where they &#8220;just know&#8221; the structure of the elements and fill them with the correct data, the elements aren&#8217;t given id properties at all. That means that I also had to know the structure and code to it, and that when the application changes this test code will need to change as well. This application also lets the user determine which columns are shown, which will further complicate matters to say the least. Suffice to say, there&#8217;s a lot of room for improvement here.</p>
<p>Note that there&#8217;s no actual testing (or checking) being done here; no desired outcomes are defined and the script doesn&#8217;t report any sort of failure or success, it just shows some information about what the application&#8217;s displaying.  At this point, though, I had enough to show my testing team what could be done if they&#8217;d dig into the world of automation, and to show our management what could be done if they&#8217;d provide some time for us to do so. It was also pretty obvious that I needed to get the development team involved, discussing ways of making the application more testable from the get-go, using elements, controls, and properties in a more well-defined and consistent manner. We also started looking at other tools, expanding our goals and perhaps even adding some funding. </p>
<p><em>As they say on TV, &#8220;to be continued&#8230;&#8221;  &mdash; though the rest of that team&#8217;s story will written by others.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://steven.vorefamily.net/2013/04/24/web-automation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Moored Once More</title>
		<link>http://steven.vorefamily.net/2013/04/23/moored/</link>
		<comments>http://steven.vorefamily.net/2013/04/23/moored/#comments</comments>
		<pubDate>Wed, 24 Apr 2013 02:21:49 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Software Development and Testing]]></category>

		<guid isPermaLink="false">http://steven.vorefamily.net/?p=1300</guid>
		<description><![CDATA[Forms have been completed. anchors are down, and the next phase of my career has begun. This week, I signed aboard my new post as part of telerik&#8217;s software testing tools group. The department I&#8217;m joining is in Austin Texas. No, we&#8217;re not moving. I&#8217;ll be working out of my home office (and Atlanta Hartsfield-Jackson [...]]]></description>
				<content:encoded><![CDATA[<p>Forms have been completed. anchors are down, and the next phase of my career has begun. This week, I signed aboard my new post as part of <a href="http://www.telerik.com/automated-testing-tools/">telerik&#8217;s software testing tools</a> group. </p>
<p><a href="http://www.flickr.com/photos/stevenv/8676057675/" title="at the office in Austin TX (photo hosted by Flickr)"><img src="http://farm9.staticflickr.com/8266/8676057675_d0fb435540.jpg" width="500" height="336" alt="at the office in Austin TX  (photo hosted by Flickr)"></a></p>
<p>The department I&#8217;m joining is in Austin Texas. No, we&#8217;re not moving. I&#8217;ll be working out of my home office (and Atlanta Hartsfield-Jackson International Airport).  As telerik&#8217;s Test Studio Evangelist, I&#8217;ll be engaging with the testing community: attending and speaking at conferences, visiting customer sites, blogging, webcasting, and the like, all with the purpose of raising awareness of methods &amp; techniques of software test automation. </p>
<p>Most of all, I&#8217;m looking forward to learning a lot. Fortunately I&#8217;m going to be surrounded by some of the best people in software development &amp; testing. </p>
<p>The adventure begins!</p>
]]></content:encoded>
			<wfw:commentRss>http://steven.vorefamily.net/2013/04/23/moored/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Casting Off</title>
		<link>http://steven.vorefamily.net/2013/04/19/casting-off/</link>
		<comments>http://steven.vorefamily.net/2013/04/19/casting-off/#comments</comments>
		<pubDate>Fri, 19 Apr 2013 22:00:36 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://steven.vorefamily.net/?p=1294</guid>
		<description><![CDATA[My exit paperwork is done. My laptop is wiped. My email account is disabled. My badge is turned in. I have cast off the lines, set sail, and await the wind.  I&#8217;ve left a company I&#8217;ve known for almost five years. The product is a good one, being built and sold by good people. As [...]]]></description>
				<content:encoded><![CDATA[<p>My exit paperwork is done. My laptop is wiped. My email account is disabled. My badge is turned in. I have cast off the lines, set sail, and await the wind. </p>
<p>I&#8217;ve left a company I&#8217;ve known for almost five years. The product is a good one, being built and sold by good people. As I told them, I believe the company is strong and has a good future ahead, and I wish them well. </p>
<p>My course leads me in a different direction; an opportunity lies ahead of me simultaneously exciting and terrifying. </p>
<p>Onward! </p>
]]></content:encoded>
			<wfw:commentRss>http://steven.vorefamily.net/2013/04/19/casting-off/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How To Watch</title>
		<link>http://steven.vorefamily.net/2013/01/16/how-to-watch/</link>
		<comments>http://steven.vorefamily.net/2013/01/16/how-to-watch/#comments</comments>
		<pubDate>Wed, 16 Jan 2013 18:33:04 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[TV/Movies]]></category>

		<guid isPermaLink="false">http://steven.vorefamily.net/?p=1237</guid>
		<description><![CDATA[Sean W. writes: I’ve been busy working on a new business: How to Watch. This new business aims to help people find where a movie or TV show is available via online streaming (e.g. Netflix, Hulu, Amazon Instant or iTunes). I got sick of having to search on each of the platforms to find &#8220;my [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://wildermuth.com/2013/01/15/PhoneGap_and_Why_I_ve_Been_Busy" >Sean W. writes</a>: </p>
<blockquote><p><img src="http://steven.vorefamily.net/wp-content/uploads/2013/01/HowToWatch-app.png" alt="" title="How To Watch" width="93" height="165" style="float:right;" />I’ve been busy working on a new business: How to Watch. This new business aims to help people find where a movie or TV show is available via online streaming (e.g. Netflix, Hulu, Amazon Instant or iTunes). I got sick of having to search on each of the platforms to find &#8220;my stories&#8221;. The result is this site and mobile apps (Android, Windows 8, Windows Phone and Kindle; iOS is coming soon if I can get Apple to certify the thing!).</p></blockquote>
<p>What a great idea! Check it out: <a href="http://howtowat.ch" title="http://howtowat.ch" target="_blank">http://howtowat.ch</a></p>
]]></content:encoded>
			<wfw:commentRss>http://steven.vorefamily.net/2013/01/16/how-to-watch/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Watchlist, a Wishlist for Instant Video</title>
		<link>http://steven.vorefamily.net/2012/12/03/watchlist-a-wishlist-for-instant-video/</link>
		<comments>http://steven.vorefamily.net/2012/12/03/watchlist-a-wishlist-for-instant-video/#comments</comments>
		<pubDate>Mon, 03 Dec 2012 19:30:12 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[TV/Movies]]></category>

		<guid isPermaLink="false">http://steven.vorefamily.net/?p=1224</guid>
		<description><![CDATA[So you&#8217;re talking with a friend, or overhearing a conversation in Twitter, and someone mentions a TV show or movie that sounds interesting. What&#8217;s a good way to remember it for later, in a service that&#8217;s easy and relativly inexpensive? Enter Amazon Instant Video&#8217;s Watchlist feature. Hop over to Amazon and search for a movie, [...]]]></description>
				<content:encoded><![CDATA[<p>So you&#8217;re talking with a friend, or overhearing a conversation in Twitter, and someone mentions a TV show or movie that sounds interesting. What&#8217;s a good way to remember it for later, in a service that&#8217;s easy and relativly inexpensive? Enter Amazon Instant Video&#8217;s <em>Watchlist</em> feature. </p>
<p>Hop over to <a href="http://www.amazon.com?tag=stevsnote-20">Amazon</a> and search for a movie, choosing the Instant Video category</p>
<p><a href="http://steven.vorefamily.net/wp-content/uploads/2012/12/AmazonFullSize.png"><img src="http://steven.vorefamily.net/wp-content/uploads/2012/12/Amazon.png" alt="Amazon Instant Video search results" title="Amazon Instant Video search results" width="500" height="173" class="aligncenter size-full wp-image-1223" /></a></p>
<p>Now, look over there on the right-hand side of the screen. See the &#8220;Add to Watchlist&#8221; button? Click that and Amazon will remember it for you. </p>
<p>The next time you&#8217;re in the mood for a movie, you don&#8217;t have to try to think back, to remember that conversation. You can just go to <a href="https://www.amazon.com/gp/video/watchlist?tag=stevsnote-20"">your watchlist</a> and choose. </p>
]]></content:encoded>
			<wfw:commentRss>http://steven.vorefamily.net/2012/12/03/watchlist-a-wishlist-for-instant-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TDD is a Habit</title>
		<link>http://steven.vorefamily.net/2012/08/20/tdd-is-a-habit/</link>
		<comments>http://steven.vorefamily.net/2012/08/20/tdd-is-a-habit/#comments</comments>
		<pubDate>Mon, 20 Aug 2012 13:59:52 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[Software Development and Testing]]></category>

		<guid isPermaLink="false">http://steven.vorefamily.net/?p=1207</guid>
		<description><![CDATA[Up-front admission: I am not &#8220;a software developer.&#8221; I dabble in software development. I work with software developers; I test and support their code and, though I write some code (and some of that has even shipped to customers as part of various products) I am not &#8216;officially&#8217; a developer. I don&#8217;t even play one [...]]]></description>
				<content:encoded><![CDATA[<p>Up-front admission: I am not &#8220;a software developer.&#8221; I dabble in software development. I work with software developers; I test and support their code and, though I write some code (and some of that has even shipped to customers as part of various products) I am not &#8216;officially&#8217; a developer. I don&#8217;t even play one on TV. What I am is someone who enjoys working with, learning from, and exploring the software development <a href="http://en.wikipedia.org/wiki/Zeitgeist">zeitgeist</a>. For the past year or so, perhaps longer, that has included <a href="http://en.wikipedia.org/wiki/Test-driven_development">Test Driven Development</a> (TDD). </p>
<p><img src="http://testdriven.com/programs/logo100.png" border="0" alt="I'm test-driven!"  style="float:right;">The basic idea behind TDD is that a developer should not only write code to test their code (in itself a recommended practice, though not widely enough embraced), but that those tests should be written <em>first</em>. In a way, this falls into the &#8220;measure twice, cut once&#8221; idea of making sure you&#8217;re doing the right thing. If you&#8217;re a software developer and haven&#8217;t heard of TDD, stop right now and <a href="http://www.agiledata.org/essays/tdd.html">go start reading</a>.</p>
<p>Friday I was working on a project, a small application I&#8217;ve been writing to compare data on multiple systems. I had started off earlier in the week rather idealistically, designing a few classes and writing the tests for them first. That all went well. Then I got to the &#8220;real work&#8221; of the app, opening connections to the databases, getting data from them, combining &amp; comparing data. I ran into some difficulties, and I must have spent about two hours trying to figure it out including about an hour of one of our senior developers&#8217; time. Once we found the problem, it was one of those simple &#8220;oh, I should have seen that!&#8221; moments. Problem solved, only three &#8220;man-hours&#8221; spent. </p>
<p>Then this morning, over my Cheerios and coffee, I&#8217;m reading a little of <a href="https://twitter.com/unclebobmartin">Robert Martin</a>&#8216;s <a href="http://tinyurl.com/8fxhkol">Clean Code</a>, specifically Chapter 7 on Error Handling. There&#8217;s a section on writing one&#8217;s <em>try-catch-finally</em> statements first, and while I&#8217;m thinking about that I realize that &#8211; though I did that Friday &#8211; what I didn&#8217;t do was to write any tests for all that database code. I was catching exceptions and all that, but I&#8217;d never actually tested <em>what</em> the catch was reporting. Doh! If I&#8217;d taken half an hour to do things &#8220;right&#8221; on Friday morning, the afternoon would have been a few hours shorter. </p>
<p>So why didn&#8217;t I do it &#8220;right&#8221; the first time? Because it&#8217;s not a habit. It&#8217;s not the way I&#8217;m used to working. Even though I know I should, when things get rolling it&#8217;s just not the first thing that my brain and hands jump to. And again, I&#8217;m not a full-time, &#8220;real&#8221; developer with years and years of ingrained habits. </p>
<p>Peter Provost writes that <a href="http://www.peterprovost.org/blog/2012/05/02/kata-the-only-way-to-learn-tdd/">Kata are the Only Way to Learn TDD</a>. I don&#8217;t know about <em>only</em>, but without forcing yourself into some repetition, the habits won&#8217;t be formed and you&#8217;ll too easily find yourself three hours into fixing a problem that shouldn&#8217;t have existed in the first place. </p>
]]></content:encoded>
			<wfw:commentRss>http://steven.vorefamily.net/2012/08/20/tdd-is-a-habit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ready Player One</title>
		<link>http://steven.vorefamily.net/2012/03/24/ready-player-one/</link>
		<comments>http://steven.vorefamily.net/2012/03/24/ready-player-one/#comments</comments>
		<pubDate>Sat, 24 Mar 2012 22:41:22 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://steven.vorefamily.net/?p=1175</guid>
		<description><![CDATA[It&#8217;s not often that I post book recommendations here, but here goes one. If you&#8217;re a child of the 80&#8242;s; if you ever walked into the arcade, dropped a coin in the slot in the slot let the &#8220;real world&#8221; fade away for a few hours; if you can quote lines &#8212; just a few [...]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s not often that I post book recommendations here, but here goes one. If you&#8217;re a child of the 80&#8242;s; if you ever walked into the arcade, dropped a coin in the slot in the slot let the &#8220;real world&#8221; fade away for a few hours; if you can quote lines &mdash; just a few or all of them &mdash; from Star Wars, War Games, Breakfast Club, Ferris Bueller&#8217;s Day Off or Monty Python and the Holy Grail; if your head bops to INXS or you sing along with Duran Duran, then you owe it to yourself to grab this book, right now! As one reviewer over on GoodReads put it, &#8220;This book is nostalgia porn.&#8221; It&#8217;s not great literature, but Ready Player One is a fun, somewhat YA, romp through the things that were so much the background of our childhood. </p>
<p><img src="http://steven.vorefamily.net/wp-content/uploads/2012/03/RP1-150x150.jpg" alt="" title="Ready Player One book cover" width="150" height="150" style="float:right;" class="alignright size-thumbnail wp-image-1184" /><strong>Ready Player One</strong>, by Ernest Cline. <br />
[<a href="http://www.amazon.com/gp/product/030788743X?ie=UTF8&#038;tag=stevsnote-20&#038;linkCode=shr&#038;camp=213733&#038;creative=393185&#038;creativeASIN=030788743X&#038;ref_=sr_1_1&#038;qid=1332627177&#038;sr=8-1">Hardcover</a>] <br />
[<a href="http://www.amazon.com/gp/product/0307887448?ie=UTF8&#038;tag=stevsnote-20&#038;linkCode=shr&#038;camp=213733&#038;creative=393185&#038;creativeASIN=0307887448&#038;redirect=true&#038;ref_=olp_product_details&#038;me=&#038;qid=1332627177&#038;qid=1332627177&#038;sr=8-1&#038;sr=8-1&#038;seller=">Paperback</a>]<br />
[<a href="http://www.amazon.com/gp/product/B004J4WKUQ?ie=UTF8&#038;tag=stevsnote-20&#038;linkCode=shr&#038;camp=213733&#038;creative=393177&#038;creativeASIN=B004J4WKUQ&#038;m=AG56TWVU5XWC2&#038;ref_=tmm_kin_title_0&#038;qid=1332627177&#038;sr=8-1">Kindle</a>]</p>
<p>The year is 2045, and the world has finished it&#8217;s fast-track slide to the bottom of the heap. Pick any dystopian movie setting; this fits right in. There is one bright spot for people, and that&#8217;s that they don&#8217;t have to actually spend time there &mdash; they can instead put on a headset and live in OASIS, a full-time virtual world. When the creator of the world dies, he leaves behind the ultimate game &#8211; with the winner taking his enormous fortune and control of OASIS. And the creator was &mdash; wait for it &mdash; a <em>huge</em> fan of 1980&#8242;s culture, so the game has more references than you can keep up with.</p>
]]></content:encoded>
			<wfw:commentRss>http://steven.vorefamily.net/2012/03/24/ready-player-one/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Intro/Refresher Resources for SQL</title>
		<link>http://steven.vorefamily.net/2012/03/14/introrefresher-resources-for-sql/</link>
		<comments>http://steven.vorefamily.net/2012/03/14/introrefresher-resources-for-sql/#comments</comments>
		<pubDate>Wed, 14 Mar 2012 20:11:07 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[Software Development and Testing]]></category>

		<guid isPermaLink="false">http://steven.vorefamily.net/?p=1161</guid>
		<description><![CDATA[I was asked to find a few references for our people here; folks who are new to SQL or just haven&#8217;t used it in a while. Rather than have my notes tied up in email, I figured I&#8217;d put them here for all to use. We use both Oracle Database (10g now, 11g soon) and [...]]]></description>
				<content:encoded><![CDATA[<p><img src="http://steven.vorefamily.net/wp-content/uploads/2012/03/SQL_128x128_icon.jpg" alt="SQL icon" title="" width="128" height="128" style="float:right;" />I was asked to find a few references for our people here; folks who are new to <a href="http://en.wikipedia.org/wiki/SQL">SQL</a> or just haven&#8217;t used it in a while. Rather than have my notes tied up in email, I figured I&#8217;d put them here for all to use. We use both <a href="http://en.wikipedia.org/wiki/Oracle_Database">Oracle Database</a> (10g now, 11g soon) and <a href="http://en.wikipedia.org/wiki/Microsoft_SQL_Server">Microsoft SQL Server</a>. </p>
<p>For a good SQL intro/refresher, I would recommend <a href="http://www.amazon.com/gp/product/1890774510/ref=as_li_ss_tl?ie=UTF8&#038;tag=stevsnote-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1890774510">Murach&#8217;s SQL Server 2008 for Developers: Training &#038; Reference</a> by Bryan Syverson and Joel Murach. It is, as the title suggests, targeted toward the use of Microsoft SQL Server, but the 90+% of SQL Language features will apply to other SQL-based databases as well.</p>
<p><em>added later:</em> also check out <a href="https://twitter.com/beardedtester">Craig Earl</a>&#8216;s <a href="http://beardedtester.wordpress.com/2012/11/13/sql-for-testers/">SQL for Testers</a>.</p>
<p>Another very good resource is <a href="http://rcm.amazon.com/e/cm?lt1=_blank&#038;bc1=000000&#038;IS2=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0000FF&#038;t=stevsnote-20&#038;o=1&#038;p=8&#038;l=as4&#038;m=amazon&#038;f=ifr&#038;ref=ss_til&#038;asins=0596520832">Learning SQL</a>, by Alan Beaulieu; this book covers the SQL language as a whole, without being specific to any one implementation. </p>
<p><em>[added later]</em> As you progress, these also look to be good if you&#8217;re interested in learning more about SQL development:
<ul>
<li /><a href="http://www.amazon.com/gp/product/0735658145?ie=UTF8&#038;camp=213733&#038;creative=393185&#038;creativeASIN=0735658145&#038;linkCode=shr&#038;tag=stevsnote-20">Microsoft SQL Server 2012 T-SQL Fundamentals</a> by Itzik Ben-Gan
<li /><a href="http://www.amazon.com/gp/product/0735626022?ie=UTF8&#038;camp=213733&#038;creative=393185&#038;creativeASIN=0735626022&#038;linkCode=shr&#038;tag=stevsnote-20&#038;=books&#038;qid=1351866380&#038;sr=1-12">Inside Microsoft® SQL Server® 2008: T-SQL Programming (Pro-Developer)</a> by Itzik Ben-Gan (I don&#8217;t see a 2012 version available yet.)
</ul>
</p>
<p>For a practice environment, you can download and setup either MS SQL-Server Express or Oracle Express on your computer.</p>
<ul>
<li><a href="http://www.microsoft.com/sqlserver/en/us/editions/express.aspx">Microsoft SQL Server Express</a> &#8211; 2012 is the new version; we happen to be using using 2008, an express version of which is probably still available if you dig through the site.
<li><a href="http://www.microsoft.com/download/en/details.aspx?id=7593">SQL Server 2008 Management Studio Express</a>
<li><a href="http://www.oracle.com/technetwork/products/express-edition/downloads/index.html">Oracle Express 11g</a>
<li><a href="http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html">SQL Developer</a>
</ul>
<p>There are some basic differences between Oracle and Microsoft SQL Server, I&#8217;d recommend wandering through these if you, like us, will be playing in both worlds:</p>
<ul>
<li><a href="https://www.google.com/search?q=differences+between+oracle+SQL+and+microsoft+t%2Fsql">Google search for differences between Oracle SQL and Microsoft SQL</a>
<li>a <a href="http://stackoverflow.com/questions/2322260/basic-differences-between-oracle-and-sql-server">Stack Overflow discussion about the differences</a>.
<li>an article on <a href="http://vyaskn.tripod.com/oracle_sql_server_differences_equivalents.htm">Migrating from Oracle to SQL Server</a>
<li>articles from Microsoft on <a href="http://social.msdn.microsoft.com/Forums/en-US/sqlgetstarted/threads">Getting started with SQL Server</a>
</ul>
<p>The first difference that we will see right away (from the StackOverflow question above): Transaction control. In Oracle everything is a transaction and it is not permanent until you COMMIT. In SQL Server, there is (by default) no transaction control. An error half way through a stored procedure WILL NOT ROLLBACK the DDL in previous steps. There are settings that can change it, but this is the default behavior. </p>
<p>There are also excellent courses available at <a href="http://www.pluralsight-training.net/microsoft/Courses">Pluralsight</a>, and they have a <a href="https://www.pluralsight-training.net/microsoft/Subscribe/Step1?isTrial=True">10-day free trial</a> available.  You may also wish to check out the <a href="http://sqlchicken.com/sql-university/">SQL University</a> (<a href="http://sqlchicken.com/2009/09/sql-university-orientation/">start here</a>).</p>
<p>Enjoy, and let me know if you have other resources that have worked well for you.</p>
]]></content:encoded>
			<wfw:commentRss>http://steven.vorefamily.net/2012/03/14/introrefresher-resources-for-sql/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Sharing your highlighted Kindle text</title>
		<link>http://steven.vorefamily.net/2011/12/27/sharing-kindle-text/</link>
		<comments>http://steven.vorefamily.net/2011/12/27/sharing-kindle-text/#comments</comments>
		<pubDate>Wed, 28 Dec 2011 04:08:03 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://steven.vorefamily.net/?p=1143</guid>
		<description><![CDATA[An addition to my previous post, about using highlighted text on the Kindle. Amazon&#8217;s Kindle preferences page, https://kindle.amazon.com/home/preferences can also be used to enable automatic sharing on Twitter and Facebook.]]></description>
				<content:encoded><![CDATA[<p>An addition to my <a href="http://steven.vorefamily.net/2011/10/25/kindle/">previous post</a>, about using highlighted text on the Kindle. Amazon&#8217;s Kindle preferences page, <a href="https://kindle.amazon.com/home/preferences">https://kindle.amazon.com/home/preferences</a> can also be used to enable automatic sharing on Twitter and Facebook. </p>
]]></content:encoded>
			<wfw:commentRss>http://steven.vorefamily.net/2011/12/27/sharing-kindle-text/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting highlighted text from the Amazon Kindle</title>
		<link>http://steven.vorefamily.net/2011/10/25/kindle/</link>
		<comments>http://steven.vorefamily.net/2011/10/25/kindle/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 17:54:30 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[DRM]]></category>

		<guid isPermaLink="false">http://steven.vorefamily.net/?p=1115</guid>
		<description><![CDATA[Buying electronic books for the Kindle, and in conjunction the Kindle app on various devices &#8211; PC, Macintosh, iPhone, iPad, Android tablet, etc. &#8211; has just become much more useful for me. Among the nice features of the Kindle software is the ability to hilight blocks of text and to take notes. This is hardly [...]]]></description>
				<content:encoded><![CDATA[<p>Buying electronic books for the <a href="http://www.amazon.com/Kindle-eReader-eBook-Reader-e-Reader-Special-Offers/dp/B0051QVESA?tag=stevsnote-%2020&#038;linkCode=shr" title="Amazon Kindle e-reader" target="_blank">Kindle</a>, and in conjunction the <a href="http://www.amazon.com/gp/feature.html/ref=sa_menu_karl3?ie=UTF8&#038;docId=1000493771&#038;tag=stevsnote-%2020&#038;linkCode=shr" target="_blank">Kindle app on various devices</a> &#8211; PC, Macintosh, iPhone, iPad, Android tablet, etc. &#8211; has just become <strong>much</strong> more useful for me. </p>
<p>Among the nice features of the Kindle software is the ability to hilight blocks of text and to take notes. This is hardly something new; I often hilight passages in paper books too, and use Post-It notes to leave my comments, questions and thoughts. The hard part is in remembering exactly which books on my shelf held the quotes I marked or notes I left. With electronic books and notes, I should be able to let the computer do the remembering and searching for me. Unfortunately the Kindle is pretty much a closed system; I&#8217;d found no easy way to get to the highlights or notes other than through the Kindle itself. That makes the use of hilighted text in blog posts, letters or presentations difficult. </p>
<p>All that changed today, thanks to <a href="http://text-patterns.thenewatlantis.com/2010/04/commonplace-copying.html">this article</a> and a comment left by someone named Zach. I&#8217;m happy to have found a way to get information out of Amazon&#8217;s system. It&#8217;s by no means perfect or automatable, and there&#8217;s no guarantee that Amazon won&#8217;t change this or take it away at some point in the future, but for now it&#8217;s better than nothing. </p>
<p>Go to <a href="https://kindle.amazon.com/">kindle.amazon.com</a>, log in using your Amazon account, and click on <a href="https://kindle.amazon.com/your_reading">Your Books</a>. You should get a listing of Kindle books you&#8217;ve purchased from Amazon. </p>
<p>If you&#8217;d like to use their system to keep track of your reading, you can do so under the Reading Status column, and you can rate your books as well. You also have the option here of making your status, ratings and notes public from this page, <strike>though I&#8217;ve not figured out yet how someone else would see them.</strike>  update: use the &#8220;Hello &lt;name&gt;&#8221; menu at the top right-hand corner of the page to view your Profile, then people can use a <a href="https://kindle.amazon.com/profile/Steven-Vore/2681356/public_notes">link like this</a> (thanks to <a href="http://www.hanselman.com/blog/ReadingMoreThanEverAnAnalysisOfFourLazyYearsWithAnAmazonKindleAndNoDeadTrees.aspx">this post</a> by Scott H for helping me discover it).</p>
<p>Now for the good part &#8211; click on <a href="https://kindle.amazon.com/your_highlights">Your Highlights</a> at the top of the page and you should see a listing of books along with your notes and hilights. </p>
<p style="text-align:center;"><a href="http://steven.vorefamily.net/wp-content/uploads/2011/10/KindleHilights.jpg"><img src="http://steven.vorefamily.net/wp-content/uploads/2011/10/KindleHilights.jpg" alt="screenshot of Amazon Kindle Your Hilights page" title="Kindle Hilights" width="429" height="425" class="aligncenter size-full wp-image-1116" /></a></p>
<p>From here you can copy the text and paste it wherever you&#8217;d like.</p>
<p>This changes the decision of what format to purchase books &#8211; electronic or paper &#8211; for me.</p>
<p>This is <strong>not</strong> meant to be a method for wholesale plagiarism, of course. </p>
<p>(btw, if there are other ways of getting notes &amp; highlights out of Amazon&#8217;s locked box, please let me know in comments below.) </p>
<p>&nbsp;<br />
<hr width="50%" align="center" /></p>
<p>Interesting juxtaposition: my initial search for &#8220;how to copy text from hilights&#8221; came as I was trying to decide what format of a book to buy, paper or Kindle. The book in question is <a href="http://www.amazon.com/Innovators-Cookbook-Essentials-Inventing-What/dp/1594485585/ref=wl_it_dp_o_npdtag=stevsnote-20&#038;linkCode=shr">The Innovator&#8217;s Cookbook</a>, by one of my favorite non-fiction authors, Steven B Johnson. The article I reference above, where I found the comment, is in response to something Steven wrote. And today, at about the same time as I was creating this very post, <a href="http://www.stevenberlinjohnson.com/2011/10/introducing-findings.html" title="Introducing Findings, a blog post by Steven B Johnson.">Steven was posting to his own blog</a> about a tool to &#8220;capture what I was reading.&#8221; The tool is <a href="https://findings.com/">Findings</a>, and it includes a way to grab data from the very kindle.amazon.com page I had just discovered! </p>
<p>This isn&#8217;t the first time that this has happened, by the way, see <a href="http://steven.vorefamily.net/2006/01/30/accidents-and-emergence/">Accidents and Emergence</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://steven.vorefamily.net/2011/10/25/kindle/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
