<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-28225448</id><updated>2011-08-27T06:21:24.608-05:00</updated><category term='Good Read'/><category term='Miscellaneous'/><category term='Tech Talk'/><category term='Inspiration'/><category term='Advice'/><title type='text'>Scott Benners</title><subtitle type='html'>Welcome to my blog where I post observations, opinions, research results, and other musings.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>54</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-28225448.post-6100121256140822480</id><published>2011-04-05T12:30:00.000-05:00</published><updated>2011-04-05T12:30:21.064-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>The future is coming faster than you think</title><content type='html'>I came across this video from one of Michael Hyatt's more recent blog posts and thought it was worth passing along.&amp;nbsp; After looking at it you might think, "yeah, right", but 10 years ago how many of us would've imagined what we can do today with Smart phones and other portable touch screen devices.&amp;nbsp; I do think it'll be just a matter of time. If even half of this video's ideas where to come about we all know that adoption would be widespread.&amp;nbsp; Pretty exciting stuff!&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=6Cf7IL_eZ38&amp;amp;feature=player_embedded"&gt;http://www.youtube.com/watch?v=6Cf7IL_eZ38&amp;amp;feature=player_embedded&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-6100121256140822480?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/6100121256140822480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=6100121256140822480' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/6100121256140822480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/6100121256140822480'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2011/04/future-is-coming-faster-than-you-think.html' title='The future is coming faster than you think'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-3954738238888932633</id><published>2011-03-24T09:49:00.000-05:00</published><updated>2011-03-24T09:49:32.239-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Good Read'/><title type='text'>Good economics reading...I'm serious</title><content type='html'>Thomas Sowell is a world reknown columnist, author and economist who has been writing now for over 40 years.&amp;nbsp; Here's his bio on Wikipedia: &lt;a href="http://www.amazon.com/wiki/Thomas_Sowell/ref=sr_tc_2_wp?qid=1300977080&amp;amp;sr=1-2-wp"&gt;http://www.amazon.com/wiki/Thomas_Sowell/ref=sr_tc_2_wp?qid=1300977080&amp;amp;sr=1-2-wp&lt;/a&gt;.&amp;nbsp;I've read a couple of his books so far and I'm working on a third...several others are in the queue. I can tell you firsthand that you'll learn more about practical real-world economics by reading a couple of his books than you picked up in all of the economics courses that you took in high school or college combined...guaranteed. &lt;br /&gt;&lt;br /&gt;The topic of economics is&amp;nbsp;generally seen as dry and boring, but Sowell keeps you engaged and makes it both real and fun. If you're looking for some good reading material that'll really open your mind then I'd highly recommend taking a look into some of his works.&amp;nbsp; If you don't take my word for it,&amp;nbsp;just read some of his&amp;nbsp;book reviews on Amazon.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Listed here are links to some of his more recent masterpieces:&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Basic Economics - &lt;a href="http://www.amazon.com/Basic-Economics-4th-Ed-Economy/dp/0465022529/ref=sr_1_1?s=books&amp;amp;ie=UTF8&amp;amp;qid=1300975239&amp;amp;sr=1-1"&gt;http://www.amazon.com/Basic-Economics-4th-Ed-Economy/dp/0465022529/ref=sr_1_1?s=books&amp;amp;ie=UTF8&amp;amp;qid=1300975239&amp;amp;sr=1-1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Intellectuals and Society - &lt;a href="http://www.amazon.com/Intellectuals-Society-Thomas-Sowell/dp/B004H8GL40/ref=sr_1_3?s=books&amp;amp;ie=UTF8&amp;amp;qid=1300975239&amp;amp;sr=1-3"&gt;http://www.amazon.com/Intellectuals-Society-Thomas-Sowell/dp/B004H8GL40/ref=sr_1_3?s=books&amp;amp;ie=UTF8&amp;amp;qid=1300975239&amp;amp;sr=1-3&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Dismantling America - &lt;a href="http://www.amazon.com/Dismantling-America-other-controversial-essays/dp/B004NSVE4G/ref=sr_1_4?s=books&amp;amp;ie=UTF8&amp;amp;qid=1300975239&amp;amp;sr=1-4"&gt;http://www.amazon.com/Dismantling-America-other-controversial-essays/dp/B004NSVE4G/ref=sr_1_4?s=books&amp;amp;ie=UTF8&amp;amp;qid=1300975239&amp;amp;sr=1-4&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Economics Facts and Fallacies - &lt;a href="http://www.amazon.com/Economic-Facts-Fallacies-Thomas-Sowell/dp/0465022030/ref=sr_1_6?s=books&amp;amp;ie=UTF8&amp;amp;qid=1300975239&amp;amp;sr=1-6"&gt;http://www.amazon.com/Economic-Facts-Fallacies-Thomas-Sowell/dp/0465022030/ref=sr_1_6?s=books&amp;amp;ie=UTF8&amp;amp;qid=1300975239&amp;amp;sr=1-6&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Applied Economics - &lt;a href="http://www.amazon.com/Applied-Economics-Thinking-Beyond-Stage/dp/B002FL5HF0/ref=sr_1_12?s=books&amp;amp;ie=UTF8&amp;amp;qid=1300975239&amp;amp;sr=1-12"&gt;http://www.amazon.com/Applied-Economics-Thinking-Beyond-Stage/dp/B002FL5HF0/ref=sr_1_12?s=books&amp;amp;ie=UTF8&amp;amp;qid=1300975239&amp;amp;sr=1-12&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The Housing Boom and Bust - &lt;a href="http://www.amazon.com/Housing-Boom-Bust-Revised/dp/B004I1JQ98/ref=sr_1_7?s=books&amp;amp;ie=UTF8&amp;amp;qid=1300975239&amp;amp;sr=1-7"&gt;http://www.amazon.com/Housing-Boom-Bust-Revised/dp/B004I1JQ98/ref=sr_1_7?s=books&amp;amp;ie=UTF8&amp;amp;qid=1300975239&amp;amp;sr=1-7&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-3954738238888932633?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/3954738238888932633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=3954738238888932633' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/3954738238888932633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/3954738238888932633'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2011/03/good-economics-readingim-serious.html' title='Good economics reading...I&apos;m serious'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-208115975524584562</id><published>2011-03-04T09:51:00.001-06:00</published><updated>2011-03-24T09:56:38.496-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Designing the wrong thing</title><content type='html'>I recently read this quote and it really resonated with me having seen and experienced some of the systems I've worked with over the years...&lt;br /&gt;&lt;br /&gt;"&lt;em&gt;The besetting mistake of expert designers is not designing the thing wrong, but rather in designing the wrong thing.&lt;/em&gt;"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-208115975524584562?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/208115975524584562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=208115975524584562' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/208115975524584562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/208115975524584562'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2011/03/designing-wrong-thing.html' title='Designing the wrong thing'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-1470896936492851864</id><published>2011-02-17T15:55:00.000-06:00</published><updated>2011-02-17T15:55:37.307-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>More interview questions</title><content type='html'>Software developers: here are more questions to add to your arsenal…some good ones too.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.hanselman.com/blog/NewInterviewQuestionsForSeniorSoftwareEngineers.aspx?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+ScottHanselman+%28Scott+Hanselman+-+ComputerZen.com%29"&gt;http://www.hanselman.com/blog/NewInterviewQuestionsForSeniorSoftwareEngineers.aspx?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+ScottHanselman+%28Scott+Hanselman+-+ComputerZen.com%29&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.hanselman.com/blog/WhatGreatNETDevelopersOughtToKnowMoreNETInterviewQuestions.aspx"&gt;http://www.hanselman.com/blog/WhatGreatNETDevelopersOughtToKnowMoreNETInterviewQuestions.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Older, but still relevant:&lt;br /&gt;&lt;a href="http://www.hanselman.com/blog/ASPNETInterviewQuestions.aspx"&gt;http://www.hanselman.com/blog/ASPNETInterviewQuestions.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-1470896936492851864?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/1470896936492851864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=1470896936492851864' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/1470896936492851864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/1470896936492851864'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2011/02/more-interview-questions.html' title='More interview questions'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-2137342503971930167</id><published>2011-02-11T15:04:00.000-06:00</published><updated>2011-02-11T15:04:16.835-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>.NET Dynamic Data</title><content type='html'>Not sure how many&amp;nbsp;out there&amp;nbsp;have played around with .NET Dynamic Data, but I found it to be a thought-provoking approach. If you’ve built your relational database well, it allows for RAD in the beginning. I haven’t quite figured out yet what you’d do in the case of a data schema change…rebuild it maybe? I also like the built-in asp.net routing feature, and the UI consistency across all object CRUD operations is nice. I’m not sold though on this being the sole development model for an enterprise site, but if mixed in with classic web forms or MVC one might experience the best of all worlds.&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/gg535665.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/gg535665.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you want to build a sample site, following the example you’ll need the Adventure Works DB if you don’t already have it:&lt;br /&gt;&lt;a href="http://msftdbprodsamples.codeplex.com/releases/view/37109"&gt;http://msftdbprodsamples.codeplex.com/releases/view/37109&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-2137342503971930167?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/2137342503971930167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=2137342503971930167' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/2137342503971930167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/2137342503971930167'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2011/02/net-dynamic-data.html' title='.NET Dynamic Data'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-7651811661052630283</id><published>2011-02-10T15:10:00.005-06:00</published><updated>2011-02-11T16:05:09.668-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Good Read'/><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Dry, but still worth reading</title><content type='html'>I just finished reading "Design of Design" by Frederick P. Brooks Jr.&amp;nbsp;It was at times an&amp;nbsp;interesting topical read, but&amp;nbsp;for the most part I found myself&amp;nbsp;often disengaged.&amp;nbsp; I don't at all question the author's experience, nor do I doubt he's a seasoned and well-respected professional in the computer science field.&amp;nbsp; I personally just found it difficult to submerse myself into the content.&amp;nbsp; That's the down-side...at least for me.&amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-dhC_xz8CLyA/TVWyUyuKvKI/AAAAAAAAASs/_rRTWLE0bl8/s1600/Design_Of_Design.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" h5="true" src="http://1.bp.blogspot.com/-dhC_xz8CLyA/TVWyUyuKvKI/AAAAAAAAASs/_rRTWLE0bl8/s1600/Design_Of_Design.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now the up-side.&amp;nbsp; Despite it being dry, overall I was better off for having read it and learned a few things from it.&amp;nbsp; I&amp;nbsp;agreed with&amp;nbsp;the chapter on the computing field's need for more exemplars, and the chapter that pointed out our lack of standardization and common design practices echoed in print what I've been telling others in my field for years now.&amp;nbsp; Also, I enjoy good quotes that history's great minds have left us, and&amp;nbsp;this book&amp;nbsp;contained&amp;nbsp;a good number of them that really jumped out at me.&amp;nbsp; I'll close this post with one of them...&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;"The besetting mistake of expert designers is not designing the thing wrong, but designing the wrong thing."&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-7651811661052630283?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/7651811661052630283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=7651811661052630283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/7651811661052630283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/7651811661052630283'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2011/02/dry-but-still-worth-reading.html' title='Dry, but still worth reading'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-dhC_xz8CLyA/TVWyUyuKvKI/AAAAAAAAASs/_rRTWLE0bl8/s72-c/Design_Of_Design.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-4259348049050423387</id><published>2011-02-02T16:12:00.000-06:00</published><updated>2011-02-11T17:26:46.324-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>No free lunch</title><content type='html'>Someone recently sent me this link and expressed their disdain with the approach that &lt;u&gt;Red Gate&lt;/u&gt; has taken with the new pricing model of the .NET Reflector tool.&amp;nbsp; The public announcement is listed below...&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Red Gate has announced that it will charge $35 for version 7 of .NET Reflector upon its release in early March. Version 7 will be sold as a perpetual license, with no time bomb or forced updates. &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;As many of you know, our original intention was to maintain .NET Reflector as a free tool. But, after two-and-a-half years of providing it without charge, we realized that we could not make the free model work. We know that this will cause pain for some people in the .NET community, and we apologize for the change in policy. &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;As a commercial company, we need to charge at least a nominal amount to keep .NET Reflector up-to-date and relevant. Without revenue coming in, we cannot dedicate a team of developers to ensure that Reflector remains a valuable part of .NET developers' toolboxes. &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;As always, your feedback is important to Red Gate, so please contribute any thoughts on this subject to our .NET Reflector forum. &lt;/em&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;I really don't have a problem with this though.&amp;nbsp; After all, the business model of offering a product for free until you have a large user base and then finally charging for it is really nothing new.&amp;nbsp; Support and maintenance for any decent product comes at a price.&amp;nbsp; Of course if it's the intellectual property of a brick-and-mortar software company, why shouldn't they have the write to charge a nominal price for their product?&amp;nbsp; It appears that the laws of Supply and Demand for this product have worked in Red Gate's favor.&amp;nbsp; Good for them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-4259348049050423387?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/4259348049050423387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=4259348049050423387' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/4259348049050423387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/4259348049050423387'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2011/02/no-free-lunch.html' title='No free lunch'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-4700010984890549995</id><published>2011-02-02T13:38:00.000-06:00</published><updated>2011-02-02T13:38:37.237-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Rationalism vs Empiricism</title><content type='html'>I'm currently reading "The Design of Design" by Frederick P. Brooks, Jr. and found one of those nuggets in Chapter 8.&amp;nbsp; Mr. Brooks provides his software engineering angle on the difference between Rationalism and Empiricism.&amp;nbsp; It's so good that I've got to share it.&amp;nbsp; He says the following...&lt;br /&gt;&lt;br /&gt;"The rationalist believes that man is inherently sound (and good), subject to mistakes, and perfectible by education.&amp;nbsp; After right education, maturing experience, and sufficient careful-enough thought, a designer can make a flawless design."&lt;br /&gt;&lt;br /&gt;"The empiricist believes that man is inherently flawed, and subject repeatedly to temptation and error.&amp;nbsp; Anything he makes will be flawed.&amp;nbsp; The design methodology task, therefore, is to learn how to determine the flaws by experiment, so that one can iterate on the design."&lt;br /&gt;&lt;br /&gt;Mr. Brooks acknowledges the fact that he's a die hard empiricist.&amp;nbsp; He goes on to say...&lt;br /&gt;&lt;br /&gt;"A program is a pure mathematical object and in principle can be designed perfectly by correct thought.&amp;nbsp; The difficulty is not with the design medium but with the designers."&lt;br /&gt;&lt;br /&gt;"This firm faith in fallibility prescribes a design methodology that includes design, early prototypes, early user testing, iterative incremental implementation, testing on a rich bank of test cases, and regression testing after changes."&lt;br /&gt;&lt;br /&gt;This last sentence describes the implementation approach to Agile Software Development.&amp;nbsp; I don't see how anyone that would put themselves in the empiricist camp would favor the waterfall approach to creative software engineering.&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-4700010984890549995?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/4700010984890549995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=4700010984890549995' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/4700010984890549995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/4700010984890549995'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2011/02/rationalism-vs-empiricism.html' title='Rationalism vs Empiricism'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-4482109144565794489</id><published>2010-12-29T14:36:00.001-06:00</published><updated>2011-02-14T14:37:40.104-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Behavior-Driven Development with SpecFlow and WatiN</title><content type='html'>I’ve never been a huge fan of TDD in its purest form. This is an interesting approach though to BDD that accomplishes the same thing and more. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I’m interested in your thoughts in this article. &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/gg490346.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/gg490346.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is the code if you wanted to download it:&lt;br /&gt;&lt;a href="http://code.msdn.microsoft.com/mag201012BDD/Release/ProjectReleases.aspx?ReleaseId=5241"&gt;http://code.msdn.microsoft.com/mag201012BDD/Release/ProjectReleases.aspx?ReleaseId=5241&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-4482109144565794489?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/4482109144565794489/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=4482109144565794489' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/4482109144565794489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/4482109144565794489'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2010/12/behavior-driven-development-with.html' title='Behavior-Driven Development with SpecFlow and WatiN'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-5698161358301969305</id><published>2010-12-29T14:34:00.000-06:00</published><updated>2011-02-14T14:35:49.659-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>How to respond to a ridiculous timeline...</title><content type='html'>Mozart’s response to his father’s inquiry about an opera due to the Duke in just 3 weeks is classic:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;"Everything has been composed, just not yet written down."&lt;/em&gt;&lt;/strong&gt; – Letter to Leopold Mozart [1780]&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-5698161358301969305?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/5698161358301969305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=5698161358301969305' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/5698161358301969305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/5698161358301969305'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2010/12/how-to-respond-to-ridiculous-timeline.html' title='How to respond to a ridiculous timeline...'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-5725461636862781741</id><published>2010-12-03T18:06:00.002-06:00</published><updated>2011-02-01T18:07:48.833-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>How to succeed in Internet commerce by being a jerk</title><content type='html'>An interesting read that one of the engineers on my team forwarded on to me...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.nytimes.com/2010/11/28/business/28borker.html?pagewanted=1&amp;amp;_r=1&amp;amp;partner=rss&amp;amp;emc=rss"&gt;http://www.nytimes.com/2010/11/28/business/28borker.html?pagewanted=1&amp;amp;_r=1&amp;amp;partner=rss&amp;amp;emc=rss&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;"I have stared into the black-eyed-heart of online shopping darkness and seen a smiling Russian immigrant entrepreneur staring back at me. That's the only way to describe the feeling I had after reading David Segal's New York Times expose on how to succeed in Internet commerce by being a jerk. The story and interview with one Vitaly Borker is a must read for every online consumer and any Internet merchant who runs an online business and works hard to cultivate a Google Search result presence." &lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-5725461636862781741?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/5725461636862781741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=5725461636862781741' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/5725461636862781741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/5725461636862781741'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2010/12/how-to-succeed-in-internet-commerce-by.html' title='How to succeed in Internet commerce by being a jerk'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-4871560972321377438</id><published>2010-12-01T13:43:00.010-06:00</published><updated>2011-02-14T14:27:48.101-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><category scheme='http://www.blogger.com/atom/ns#' term='Advice'/><title type='text'>Our field's next generation</title><content type='html'>If you haven't read the Editor's note of the Nov. 2010 issue of MSDN magazine entitled "Proactive Eduction" and you're in the software development career field, then I would encourage you to do so.&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/gg309186.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/gg309186.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The article really got me thinking about the benefit for any organization of substantive size to have&amp;nbsp;an internship program.&amp;nbsp;&amp;nbsp;Such a program&amp;nbsp;would target high school students interested in programming and college students majoring in computer science or related field.&amp;nbsp;&amp;nbsp;It could be paid, un-paid, or both.&amp;nbsp; IT groups would need to work with their&amp;nbsp;HR department on the details.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;u&gt;I could see such a program having the following benefits:&lt;/u&gt;&lt;br /&gt;1) It could breed qualified candidates for junior programmer new hires upon graduation.&amp;nbsp; &lt;br /&gt;2) Those professionals that are more seasoned would gain teaching and mentoring skills.&lt;br /&gt;3) The cost of labor performed by interns would be low and financially advantageous to departments.&lt;br /&gt;4) "Giving back"&amp;nbsp;would provide good marketing and publicity for the organization.&lt;br /&gt;&lt;br /&gt;I'm sure there are disadvantages to having such a program, but I just can't think of anything that's even worth noting.&amp;nbsp; Just my 2 cents.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-4871560972321377438?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/4871560972321377438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=4871560972321377438' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/4871560972321377438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/4871560972321377438'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2010/12/our-fields-next-generation.html' title='Our field&apos;s next generation'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-3368452206273210351</id><published>2010-10-20T14:39:00.001-05:00</published><updated>2011-02-14T15:02:23.423-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Typical Waterfall SDLC process (paraphrased)</title><content type='html'>Process:&lt;br /&gt;&lt;br /&gt;&lt;u&gt;1. Establish contact&lt;/u&gt;&lt;br /&gt;a. Gather high-level description&lt;br /&gt;b. Identify audience (i.e. everyone, line-of-business)&lt;br /&gt;c. Define process (current process or something brand new)&lt;br /&gt;d. Automation of manual process? New business model?&lt;br /&gt;e. Who does this benefit? Authority? Budget?&lt;br /&gt;f. Support Plan? Primary technical / business contacts?&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2. Project Slating - Group Discussion&lt;/u&gt;&lt;br /&gt;a. Decision point&lt;br /&gt;b. Review scope of project&lt;br /&gt;c. Develop Project charter&lt;br /&gt;d. Review info gathered in contact phase&lt;br /&gt;e. Is it related to something in environment already?&lt;br /&gt;f. Is it a go, no-go?&lt;br /&gt;&lt;br /&gt;&lt;u&gt;3. Requirements&lt;/u&gt;&lt;br /&gt;a. Understand project scope&lt;br /&gt;b. Ideation&lt;br /&gt;c. Analysis&lt;br /&gt;d. Technical Assessment&lt;br /&gt;e. Identify and document scope document&lt;br /&gt;f. Given scoped-out detail, can we take this on? If so, create SOW.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;4. Project Management&lt;/u&gt;&lt;br /&gt;a. Define project timeline&lt;br /&gt;b. Weekly update meetings&lt;br /&gt;c. Customer facing / Team facing&lt;br /&gt;&lt;br /&gt;&lt;u&gt;5. Development&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;6. Closing Activities&lt;/u&gt;&lt;br /&gt;a. UAT, Customer sign-off&lt;br /&gt;b. Go gold -- move into Production&lt;br /&gt;c. Implement support plan&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-3368452206273210351?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/3368452206273210351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=3368452206273210351' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/3368452206273210351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/3368452206273210351'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2010/10/typical-waterfall-sdlc-process.html' title='Typical Waterfall SDLC process (paraphrased)'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-7145907834579812258</id><published>2010-10-05T17:48:00.000-05:00</published><updated>2011-02-01T17:50:07.983-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Web Application or Web Site...now that's the question</title><content type='html'>For reasons why you should care about which one is used see: &lt;a href="http://msdn.microsoft.com/en-us/library/dd547590.aspx"&gt;http://msdn.microsoft.com/en-us/library/dd547590.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Scenarios in which Web application projects are the preferred choice include the following:&lt;br /&gt;• You want to be able to edit code without stopping a debugging session.&lt;br /&gt;• You want to run unit tests on code that is in the class files that are associated with ASP.NET pages.&lt;br /&gt;• You want to refer to the classes that are associated with pages and user controls from standalone classes.&lt;br /&gt;• You want to establish project dependencies between multiple Web projects.&lt;br /&gt;• You want the compiler to create a single assembly for the entire site.&lt;br /&gt;• You want control over the assembly name and version number that is generated for the site.&lt;br /&gt;• You want to use MSBuild or Team Build to compile the project. For example, you might want to add pre-build and post-build steps.&lt;br /&gt;• You want to avoid putting source code on a production server.&lt;br /&gt;• You want to use the automated deployment tools that are available in Visual Studio 2010.&lt;br /&gt;&lt;br /&gt;Scenarios in which Web site projects are the preferred choice include the following:&lt;br /&gt;• You want to include both C# and Visual Basic code in a single Web project. (By default, a Web application is compiled based on language settings in the project file. Exceptions can be made, but it is relatively difficult.)&lt;br /&gt;• You want to open the production site in Visual Studio and update it in real time by using FTP.&lt;br /&gt;• You do not want to have to explicitly compile the project in order to deploy it.&lt;br /&gt;• If you do precompile the site, you want the compiler to create multiple assemblies for the site, which can include one assembly per page or user control, or one or more assemblies per folder.&lt;br /&gt;• You want to be able to update individual files in production by just copying new versions to the production server, or by editing the files directly on the production server.&lt;br /&gt;• If you precompile the site, you want to be able to update individual ASP.NET Web pages (.aspx files) without having to recompile the entire Web site.&lt;br /&gt;• You like to keep your source code on the production server because it can serve as an additional backup copy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-7145907834579812258?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/7145907834579812258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=7145907834579812258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/7145907834579812258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/7145907834579812258'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2010/10/web-application-or-web-sitenow-thats.html' title='Web Application or Web Site...now that&apos;s the question'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-3750570249047370464</id><published>2010-10-05T14:24:00.001-05:00</published><updated>2010-10-20T14:28:29.204-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Azure Migration Workshop</title><content type='html'>One of the engineers on my team and I recently&amp;nbsp;participated in&amp;nbsp;2-day Azure (Microsoft’s cloud) Migration workshop. We successfully deployed 2&amp;nbsp;organizational applications and a SQL database and learned a lot from the exercise. While we were there I jotted down some of the lessons learned and thought that others might find them interesting...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;SQL Azure Migration&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;• 50GB database size limit (in relational DB format)&lt;br /&gt;• Oracle databases will need to be connected to on-premise&lt;br /&gt;• Need to use SQL Server authentication model&lt;br /&gt;• SQL queries used by SQL Azure are slightly different from the original script...code migration wizard alters them, but the tool is still not very mature&lt;br /&gt;• Cross-DB dependencies and communication is not supported...neither is distributed transactions&lt;br /&gt;• SQL Server migration wizard (from Codeplex) can be used to analyze and point out DB incompatibilities before conversion to SQL Azure&lt;br /&gt;• Every SQL Azure DB table must have a clustered primary key&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Windows Azure Migration&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;• Applications need to be in .Net web application (not web site) format&lt;br /&gt;• Must include Cloud project within .Net solution&lt;br /&gt;• Cannot use Windows authentication model without using an AD federation-like model&lt;br /&gt;• AnonymousAuthentication web.config setting is not recognized&lt;br /&gt;• The WSDL of web service sites gets the port 20000 injected at the point of deployment&lt;br /&gt;• Observation: deployments take a LONG time (plan on going to lunch)&lt;br /&gt;• SMTP capabilities are not yet available in the Azure cloud (would have to use an on-premise solution)&lt;br /&gt;• Cannot use regular file-system reading/writing&lt;br /&gt;• Need of URL Mapper for Staging environment...a unique URL (GUID) is generated with each deployment&lt;br /&gt;• Each web.config change, no matter how small, requires a full package redeployment&lt;br /&gt;• David Pallmann's Technology Blog is a good Azure resource&lt;br /&gt;• The number of "instances" in the Cloud Project configuration file reference how many VM instances are to be built&lt;br /&gt;• The csfg (Cloud Service configuration file) file is the singular file (custom zipped) that gets deployed&lt;br /&gt;• The word "global" cannot be used within an Azure cloud URL and Service Names/Labels are unique across the entirely cloud.&lt;br /&gt;• Cannot reference anything within the machine.config file...must be moved to web.config&lt;br /&gt;• At this time only 3rd-party vendors are coming to the table with VM usage monitoring tools -- this space is still very immature.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Dev Fabric&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;• Enables developers to build, debug, test code locally as a Cloud project before deploying to the Cloud.&lt;br /&gt;• Just because .NET code runs locally using the DevFabric with a Cloud project included in the solution doesn't mean that it'll run in the cloud. Code has to be tested in both environments.&lt;br /&gt;• Runs on the same OS as the local test machine. Beware: Cloud VM's are x64 slightly-tweaked W2K8 server.&lt;br /&gt;• Is not a good indicator of performance…very much based on local hardware specs.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Billing &amp;amp; Portal&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;• The Azure portal makes it very unclear and difficult to determine your usage statistics for the billing month.&lt;br /&gt;• BEWARE: each MSDN account holder receives 750 free hours of Azure platform which goes quickly even with only a couple of small applications and a DB deployed. &lt;br /&gt;• Hours billed are for platform usage, not application usage. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Other Things to Note&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;• To use your own domain it is necessary to setup a DNS Cname that redirects the company URL to the Cloud URL.&lt;br /&gt;• The Package configuration file (cscfg) can be changed and uploaded on the fly (# of VM instances specified in this file). Changes to the Service Definition file (csdef) however require a redeployment.&lt;br /&gt;• Think of Windows Azure roles as type of VM's you'd build internally (i.e. Web Server --&amp;gt; Web Role, Application Server --&amp;gt; Worker Role, etc.).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-3750570249047370464?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/3750570249047370464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=3750570249047370464' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/3750570249047370464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/3750570249047370464'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2010/10/azure-migration-workshop.html' title='Azure Migration Workshop'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-2058468199099931139</id><published>2010-09-22T17:45:00.002-05:00</published><updated>2011-02-01T17:46:55.270-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Defining Document Capatibility</title><content type='html'>Ok, this page is the shizzel on the ins and outs of document compatibility. It has VERY detailed information on actions that developers can take to control how web pages / sites are displayed. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-2058468199099931139?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/2058468199099931139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=2058468199099931139' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/2058468199099931139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/2058468199099931139'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2010/09/defining-document-capatibility.html' title='Defining Document Capatibility'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-1664946335668090945</id><published>2010-08-07T17:36:00.001-05:00</published><updated>2011-02-01T17:37:21.020-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Automapper</title><content type='html'>&lt;a href="http://automapper.codeplex.com/"&gt;http://automapper.codeplex.com/&lt;/a&gt;&lt;br /&gt;AutoMapper uses a fluent configuration API to define an object-object mapping strategy. AutoMapper uses a convention-based matching algorithm to match up source to destination values. Currently, AutoMapper is geared towards model projection scenarios to flatten complex object models to DTOs and other simple objects, whose design is better suited for serialization, communication, messaging, or simply an anti-corruption layer between the domain and application layer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-1664946335668090945?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/1664946335668090945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=1664946335668090945' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/1664946335668090945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/1664946335668090945'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2010/08/automapper.html' title='Automapper'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-6593213843194169476</id><published>2010-07-03T17:32:00.001-05:00</published><updated>2011-02-01T17:34:21.803-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Agile Portfolio Planning</title><content type='html'>This&amp;nbsp;may help communicate / coordinate efforts that span multiple development teams and stakeholders.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/apropos/"&gt;http://code.google.com/p/apropos/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Apropos is an open source agile planning tool focused on large team Agile Portfolio Planning. The typical use of Apropos would be an organization that:&lt;br /&gt;* Uses an Agile development process like XP, Scrum, or Kanban&lt;br /&gt;* Has multiple Agile teams that need to coordinate&lt;br /&gt;* Makes use of an Agile Lifecycle Management (ALM) tool to track their team progress &lt;br /&gt;&lt;br /&gt;The last point is very important. Apropos is designed to work in tandem with your existing ALM tool, not replace it. Most ALM tools do not provide the full tool set to support a Agile Project Portfolio Scheduling, which is where Apropos comes in.&lt;br /&gt;&lt;br /&gt;Some of the benefits that you can realize from implementing an Agile Portfolio Process using Apropos as the foundation include:&lt;br /&gt;* Synergies with downstream organizations such as Operations, Professional Services, and Sales&lt;br /&gt;* Increased delivery value through organization-wide alignment of priorities&lt;br /&gt;* Continuous improvement enabled by whole process feedback loops&lt;br /&gt;* Realtime visibility into delivery status and potential blockages&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-6593213843194169476?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/6593213843194169476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=6593213843194169476' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/6593213843194169476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/6593213843194169476'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2010/07/agile-portfolio-planning.html' title='Agile Portfolio Planning'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-6759314878159145631</id><published>2010-06-29T17:30:00.002-05:00</published><updated>2011-02-01T17:31:16.363-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Clonezilla</title><content type='html'>&lt;a href="http://clonezilla.org/"&gt;http://clonezilla.org/&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;You're probably familiar with the popular proprietary commercial package Norton Ghost®. The problem with these kind of software packages is that it takes a lot of time to massively clone systems to many computers. You've probably also heard of Symantec's solution to this problem, Symantec Ghost Corporate Edition® with multicasting. Well, now there is an OpenSource clone system (OCS) solution called Clonezilla with unicasting and multicasting!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-6759314878159145631?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/6759314878159145631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=6759314878159145631' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/6759314878159145631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/6759314878159145631'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2010/06/clonezilla.html' title='Clonezilla'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-3135558981986915748</id><published>2010-06-01T17:25:00.000-05:00</published><updated>2011-02-01T17:26:40.587-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Setting up Windows 2008 Workstation</title><content type='html'>We have found this to be a very good reference for setting up Windows 2008 as a workstation:&lt;br /&gt;&lt;a href="http://www.win2008r2workstation.com/"&gt;http://www.win2008r2workstation.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-3135558981986915748?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/3135558981986915748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=3135558981986915748' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/3135558981986915748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/3135558981986915748'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2010/06/setting-up-windows-2008-workstation.html' title='Setting up Windows 2008 Workstation'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-8551072242208909764</id><published>2010-05-19T17:23:00.000-05:00</published><updated>2011-02-01T17:24:50.967-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Pex and Moles...Amazing Stuff</title><content type='html'>Our engineering team has greatly benefited from this revolutionary software.&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;a href="http://research.microsoft.com/en-us/projects/pex/documentation.aspx"&gt;&lt;span style="color: blue;"&gt;http://research.microsoft.com/en-us/projects/pex/documentation.aspx&lt;/span&gt;&lt;/a&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-8551072242208909764?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/8551072242208909764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=8551072242208909764' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/8551072242208909764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/8551072242208909764'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2010/05/pex-and-molesamazing-stuff.html' title='Pex and Moles...Amazing Stuff'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-5467013291876544501</id><published>2010-05-01T18:00:00.001-05:00</published><updated>2011-02-01T18:00:51.176-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Bulk Insert</title><content type='html'>Discovered one way to do a bulk update using XML in sql 2005, not sure if it is optimal, but it works :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Schema for tblContractBranchCustomerLocations:&lt;br /&gt;&lt;br /&gt;PK_ContractBranchCustomerLocationId int&lt;br /&gt;&lt;br /&gt;,DaysOfWeek VARCHAR(50)&lt;br /&gt;&lt;br /&gt;,RateDefinition VARCHAR(50)&lt;br /&gt;&lt;br /&gt;,LastUpdateDate smalldatetime&lt;br /&gt;&lt;br /&gt;,LastUpdateUser varchar(11)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DECLARE @xmlDoc XML&lt;br /&gt;&lt;br /&gt;SET @xmlDoc = '&lt;items&gt;&lt;item audituser="999999C" daysofweek="hi" id="1" ratedefinition="rate"&gt;&lt;/items&gt;'&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;UPDATE a&lt;br /&gt;&lt;br /&gt;SET a.[DaysOfWeek] = Items.Item.value('@daysofweek','varchar(50)'),&lt;br /&gt;&lt;br /&gt;a.[RateDefinition] = Items.Item.value('@ratedefinition','varchar(50)'),&lt;br /&gt;&lt;br /&gt;a.[LastUpdateDate] = GETUTCDATE(),&lt;br /&gt;&lt;br /&gt;a.[LastUpdateUser] = Items.Item.value('@audituser','varchar(11)')&lt;br /&gt;&lt;br /&gt;FROM [tblContractBranchCustomerLocations] a&lt;br /&gt;&lt;br /&gt;INNER JOIN @xmlDoc.nodes('/items/item') AS Items(Item) ON a.[PK_ContractBranchCustomerLocationId] = Items.Item.value('@id','int')&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-5467013291876544501?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/5467013291876544501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=5467013291876544501' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/5467013291876544501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/5467013291876544501'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2010/05/bulk-insert.html' title='Bulk Insert'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-338826072035011244</id><published>2010-04-17T17:19:00.001-05:00</published><updated>2011-02-01T17:21:56.018-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Microsoft: Changing Passwords Isn't Worth the Effort</title><content type='html'>I've thought for some time that the enforcement of strict password policies, especially in the corporate world,&amp;nbsp;are an overkill.&amp;nbsp; An interesting article.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;, &amp;quot;serif&amp;quot;; font-size: 12pt; mso-ansi-language: EN-US; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin;"&gt;&lt;a href="http://www.pcmag.com/article2/0,2817,2362692,00.asp"&gt;http://www.pcmag.com/article2/0,2817,2362692,00.asp&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-338826072035011244?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/338826072035011244/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=338826072035011244' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/338826072035011244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/338826072035011244'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2010/04/microsoft-changing-passwords-isnt-worth.html' title='Microsoft: Changing Passwords Isn&apos;t Worth the Effort'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-372497226731822453</id><published>2010-03-26T17:16:00.001-05:00</published><updated>2011-02-01T17:17:27.407-06:00</updated><title type='text'>Most software stinks... Know it, Learn it, Live it!</title><content type='html'>A thought provoking title and an article engineers on my team found to be a good read.&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;a href="http://www.beautifulsoftware.com/phpdocs/beautifulsoftware.php"&gt;&lt;span style="color: blue;"&gt;http://www.beautifulsoftware.com/phpdocs/beautifulsoftware.php&lt;/span&gt;&lt;/a&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-372497226731822453?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/372497226731822453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=372497226731822453' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/372497226731822453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/372497226731822453'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2010/03/most-software-stinks-know-it-learn-it.html' title='Most software stinks... Know it, Learn it, Live it!'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-5281335377751565575</id><published>2010-03-20T17:14:00.001-05:00</published><updated>2011-02-01T17:15:18.827-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Project Manager vs Developer View</title><content type='html'>I liked this graph and found it worth sharing...&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;a href="http://www.knowing.net/index.php/2010/03/16/project-managers-vs-developers-view/"&gt;http://www.knowing.net/index.php/2010/03/16/project-managers-vs-developers-view/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-5281335377751565575?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/5281335377751565575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=5281335377751565575' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/5281335377751565575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/5281335377751565575'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2010/03/project-manager-vs-developer-view.html' title='Project Manager vs Developer View'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-3586972382957281722</id><published>2010-02-22T17:11:00.000-06:00</published><updated>2011-02-01T17:12:03.472-06:00</updated><title type='text'>Configuring Delegation for a Site or an Application in IIS 7</title><content type='html'>&lt;a href="http://technet.microsoft.com/en-us/library/cc770505(WS.10).aspx"&gt;http://technet.microsoft.com/en-us/library/cc770505(WS.10).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;"When you configure the delegation state for site or application features, you can delegate a feature as Read Only. When you delegate a feature as Read Only, users who connect to the site or application see the feature in the UI but cannot configure the feature. This is useful if you want users to know that the feature exists, such as for troubleshooting, but you do not want to allow them to configure it."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-3586972382957281722?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/3586972382957281722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=3586972382957281722' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/3586972382957281722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/3586972382957281722'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2010/02/configuring-delegation-for-site-or.html' title='Configuring Delegation for a Site or an Application in IIS 7'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-2311876532313006334</id><published>2010-02-18T17:08:00.001-06:00</published><updated>2011-02-01T17:09:44.575-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>UI Patterns Site</title><content type='html'>This site has very compelling information pertaining to UI design and user experience… something&amp;nbsp;software engineers should pay more attention to.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://quince.infragistics.com/#/Main"&gt;http://quince.infragistics.com/#/Main&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-2311876532313006334?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/2311876532313006334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=2311876532313006334' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/2311876532313006334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/2311876532313006334'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2010/02/ui-patterns-site.html' title='UI Patterns Site'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-5828601946803159859</id><published>2010-01-26T17:05:00.001-06:00</published><updated>2011-02-01T17:06:29.844-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>User experience is becoming a key differentiator in software</title><content type='html'>In a January report by Forrester Research, analysts advised application developers to make five key changes in 2010. On that list: "Become passionate about user experience."&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://visualstudiomagazine.com/articles/2010/01/21/infragistics-expands-ux-patterns-explorer.aspx"&gt;http://visualstudiomagazine.com/articles/2010/01/21/infragistics-expands-ux-patterns-explorer.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-5828601946803159859?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/5828601946803159859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=5828601946803159859' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/5828601946803159859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/5828601946803159859'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2010/01/user-experience-is-becoming-key.html' title='User experience is becoming a key differentiator in software'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-5888179840755565697</id><published>2010-01-20T15:56:00.006-06:00</published><updated>2010-10-20T16:00:03.270-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Paying Down Technical Debt</title><content type='html'>I put together this short bulleted list of things to bear in mind when working with applications that have a high amount of technical debt.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;The Facts:&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;• Every application has some amount of technical debt…even Brink's CF systems&lt;br /&gt;• Ignoring such technical debt is NOT an option&lt;br /&gt;• We cannot just work on technical debt and not provide additional product enhancements&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;How do we address it?&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;• Identify the debt and how it's negatively impacting the application and organization&lt;br /&gt;• Build a slam-dunk case for medium-to-large scale deficits…not "just because"&lt;br /&gt;• Be creative and find a way to inject debt payment into an already desired product request&lt;br /&gt;• Fix the debt. Avoid building any sort of temporary solution(s). Do it right.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Deficit Payment Tactics&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;• Provide constructive criticism to your peers, but don't beat each other up. Code Review.&lt;br /&gt;• Consider refactoring over rewriting&lt;br /&gt;• All code should have tests associated with it&lt;br /&gt;• Measure before and after the change and identify improvement&lt;br /&gt;• We'll work to improve collective ownership&lt;br /&gt;• Review the debt backlog after each new release…ongoing refactoring is inevitable&lt;br /&gt;• Learn from both yours and others mistakes&lt;br /&gt;• Remind yourselves of what's helped make us successful….TEAMWORK&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-5888179840755565697?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/5888179840755565697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=5888179840755565697' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/5888179840755565697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/5888179840755565697'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2010/01/paying-down-technical-debt.html' title='Paying Down Technical Debt'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-5855645145226257758</id><published>2009-12-20T16:01:00.001-06:00</published><updated>2010-10-20T16:10:03.122-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Notes on Pragmatic Unit Testing</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_PcB4JDiXccs/TL9ZMysM16I/AAAAAAAAAPs/wNEWs84ECV0/s1600/Pragmatic+Unit+Testing.jpg" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" ex="true" height="200" src="http://3.bp.blogspot.com/_PcB4JDiXccs/TL9ZMysM16I/AAAAAAAAAPs/wNEWs84ECV0/s200/Pragmatic+Unit+Testing.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;Andy Hunt's book on Pragmatic Unit Testing is a good resource and should be on the bookshelf of every .Net developer.&amp;nbsp; I took a few notes while going through the book...&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;What to Test? Use Right BICEP method.&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Right: Are the results right?&lt;br /&gt;B: Are all the Boundary conditions correct?&lt;br /&gt;I: Can we check Inverse relationships?&lt;br /&gt;C: Can we Cross-check results using other means?&lt;br /&gt;E: Can we force Error conditions to happen?&lt;br /&gt;P: Are Performance characteristics within bounds?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Are the results right?&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;• We must validate method results and verify that the code ran correctly?&lt;br /&gt;• Consider using data files for testing larger amounts of data.&lt;br /&gt;• Use test classes/methods to prove the existing code is right.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Boundary Conditions&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;• Test the boundaries of code inputs using extreme data. &lt;br /&gt;• Try to break the code and/or ensure data validation using garbage data that seems insane.&lt;br /&gt;• Test for duplicates, data sequence, and security holes&lt;br /&gt;• CORRECT (Conformance, Ordering, Range, Reference, Existence, Cardinality, Time)…more later&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Check Inverse Relationships&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;• Work your methods backwards.&lt;br /&gt;• Execute cycle of: 1) start with original data, 2) Inject Test Data, 3) Inverse new test data back to original data using test(s).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Cross-Check using Other Means&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;• Create a system of checks and balances by having test methods cross-check one another.&lt;br /&gt;• Explicitly using different code to achieve the same results.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Force Error Conditions&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;• Create real-world scenarios by forcing errors to occur….creating negative tests.&lt;br /&gt;• Some sample environmental scenarios include network availability, insufficient permissions, not enough disk space, overloaded CPU, etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-5855645145226257758?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/5855645145226257758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=5855645145226257758' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/5855645145226257758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/5855645145226257758'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2009/12/notes-on-pragmatic-unit-testing.html' title='Notes on Pragmatic Unit Testing'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_PcB4JDiXccs/TL9ZMysM16I/AAAAAAAAAPs/wNEWs84ECV0/s72-c/Pragmatic+Unit+Testing.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-8854642369714310823</id><published>2009-05-01T16:30:00.002-05:00</published><updated>2009-11-23T17:03:45.795-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Good Read'/><title type='text'>Waltzing with Bears: Managing Risk on Software Projects</title><content type='html'>I found this to be an interesting read. It has made me think a little more about the potential risks that are associated with developing software and how to go about managing those risks.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_PcB4JDiXccs/SwsNU-4OSPI/AAAAAAAAAMk/P2e-4lXRWJ8/s1600/Waltzing+with+Bears.jpg" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_PcB4JDiXccs/SwsNU-4OSPI/AAAAAAAAAMk/P2e-4lXRWJ8/s320/Waltzing+with+Bears.jpg" yr="true" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-8854642369714310823?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/8854642369714310823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=8854642369714310823' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/8854642369714310823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/8854642369714310823'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2009/05/waltzing-with-bears-managing-risk-on.html' title='Waltzing with Bears: Managing Risk on Software Projects'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_PcB4JDiXccs/SwsNU-4OSPI/AAAAAAAAAMk/P2e-4lXRWJ8/s72-c/Waltzing+with+Bears.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-2562278693450768342</id><published>2009-03-01T17:58:00.000-06:00</published><updated>2011-02-01T17:59:02.636-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Passing Lists in SQL Server 2005</title><content type='html'>DECLARE @productIds xml&lt;br /&gt;&lt;br /&gt;SET @productIds ='&lt;products&gt;&lt;id&gt;3&lt;/id&gt;&lt;id&gt;6&lt;/id&gt;&lt;id&gt;15&lt;/id&gt;&lt;/products&gt;' &lt;br /&gt;&lt;br /&gt;SELECT&lt;br /&gt;ParamValues.ID.value('.','VARCHAR(20)')&lt;br /&gt;FROM @productIds.nodes('/Products/id') as ParamValues(ID) &lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-2562278693450768342?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/2562278693450768342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=2562278693450768342' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/2562278693450768342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/2562278693450768342'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2009/03/passing-lists-in-sql-server-2005.html' title='Passing Lists in SQL Server 2005'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-5672755982967922986</id><published>2009-02-18T17:01:00.002-06:00</published><updated>2009-11-24T17:02:10.085-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Hierarchical vs Linear Workflow</title><content type='html'>Several of the applications that we've built or are currently working on in the OSS group involve the processing of workflow in some form. If you peruse the Web you'll find there are a variety of types such as "activity-based" or "content-driven". Microsoft Windows Workflow Foundation supports two types: "Sequential" and "State Machine" (&lt;a href="http://msdn.microsoft.com/en-us/library/ms468447.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms468447.aspx&lt;/a&gt;). There is enough material out there though to make your head spin. Being that I'm not an authority on the subject I thought I'd explain in a simple-to-understand format the two types that we've used.&lt;br /&gt;&lt;br /&gt;Hierarchical: workflow events are fired one at a time and they operate in a very sequential fashion...one waits on the other. Example: I fill out a form and submit it to my boss for approval. Until he approves or denies the request, the entire transaction is in a holding state. Once he approves it, it then gets submitted to his boss. If he denies the request, it comes back to me. After all approvals have been gathered, the transaction is considered complete.&lt;br /&gt;&lt;br /&gt;Linear: here workflow events all fire off on different threads (asynchronously) and are independent of one another. They must all be completed though before the transaction can be considered complete. Example: I put in a request to get a widget ordered. This order requires the participation of four different groups to perform an action. So, requests are sent to all four groups and they all complete their task independent of one another. Once all four are completed, the widget can be processed.&lt;br /&gt;&lt;br /&gt;Hopefully those two approaches make sense. If you have more to add to this topic, I welcome your feedback.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-5672755982967922986?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/5672755982967922986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=5672755982967922986' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/5672755982967922986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/5672755982967922986'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2009/02/hierarchical-vs-linear-workflow.html' title='Hierarchical vs Linear Workflow'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-4852459000925771324</id><published>2009-02-13T16:40:00.003-06:00</published><updated>2009-11-23T17:04:01.401-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Inspiration'/><title type='text'>Shay</title><content type='html'>Someone sent me this story via email and I just had to share it...&lt;br /&gt;&lt;br /&gt;At a fundraising dinner for a school that serves children with learning disabilities, the father of one of the students delivered a speech that would never be forgotten by all who attended. After extolling the school and its dedicated staff, he offered a question:&lt;br /&gt;&lt;br /&gt;'When not interfered with by outside influences, everything nature does, is done with perfection. Yet my son, Shay, cannot learn things as other children do. He cannot understand things as other children do. Where is the natural order of things in my son?'&lt;br /&gt;&lt;br /&gt;The audience was stilled by the query.&lt;br /&gt;&lt;br /&gt;The father continued. 'I believe that when a child like Shay, who was mentally and physically disabled comes into the world, an opportunity to realize true human nature presents itself, and it comes in the way other people treat that child.'&lt;br /&gt;&lt;br /&gt;Then he told the following story:&lt;br /&gt;&lt;br /&gt;Shay and I had walked past a park where some boys Shay knew were playing baseball. Shay asked, 'Do you think they'll let me play?' I knew that most of the boys would not want someone like Shay on their team, but as a father I also understood that if my son were allowed to play, it would give him a much-needed sense of belonging and some confidence to be accepted by others in spite of his handicaps.&lt;br /&gt;&lt;br /&gt;I approached one of the boys on the field and asked (not expecting much) if Shay could play. The boy looked around for guidance and said, 'We're losing by six runs and the game is in the eighth inning. I guess he can be on our team and we'll try to put him in to bat in the ninth inning.'&lt;br /&gt;&lt;br /&gt;Shay struggled over to the team's bench and, with a broad smile, put on a team shirt. I watched with a small tear in my eye and warmth in my heart. The boys saw my joy at my son being accepted. In the bottom of the eighth inning, Shay's team scored a few runs but was still behind by three.&lt;br /&gt;&lt;br /&gt;In the top of the ninth inning, Shay put on a glove and played in the right field. Even though no hits came his way, he was obviously ecstatic just to be in the game and on the field, grinning from ear to ear as I waved to him from the stands.&lt;br /&gt;&lt;br /&gt;In the bottom of the ninth inning, Shay's team scored again.&lt;br /&gt;&lt;br /&gt;Now, with two outs and the bases loaded, the potential winning run was on base and Shay was scheduled to be next at bat.&lt;br /&gt;&lt;br /&gt;At this juncture, do they let Shay bat and give away their chance to win the game? Surprisingly, Shay was given the bat. Everyone knew that a hit was all but impossible because Shay didn't even know how to hold the bat properly, much less connect with the ball. However, as Shay stepped up to the Plate, the pitcher, recognizing that the other team was putting winning aside for this moment in Shay's life, moved in a few steps to lob the ball in softly so Shay could at least make contact.&lt;br /&gt;&lt;br /&gt;The first pitch came and Shay swung clumsily and missed.&lt;br /&gt;&lt;br /&gt;The pitcher again took a few steps forward to toss the ball softly towards Shay. As the pitch came in, Shay swung at the ball and hit a slow ground ball right back to the pitcher.&lt;br /&gt;&lt;br /&gt;The game would now be over. The pitcher picked up the soft grounder and could have easily thrown the ball to the first baseman. Shay would have been out and that would have been the end of the game. Instead, the pitcher threw the ball right over the first baseman's head, out of reach of all team mates. Everyone from the stands and both teams started yelling, 'Shay, run to first! Run to first!' Never in his life had Shay ever run that far, but he made it to first base.&lt;br /&gt;&lt;br /&gt;He scampered down the baseline, wide-eyed and startled.&lt;br /&gt;&lt;br /&gt;Everyone yelled, 'Run to second, run to second!' Catching his breath, Shay awkwardly ran towards second, gleaming and struggling to make it to the base. By the time Shay rounded towards second base, the right fielder had the ball . The smallest guy on their team who now had his first chance to be the hero for his team. He could have thrown the ball to the second-baseman for the tag, but he understood the pitcher's intentions so he, too, intentionally threw the ball high and far over the third-baseman's head. Shay ran toward third base deliriously as the runners ahead of him circled the bases toward home.&lt;br /&gt;&lt;br /&gt;All were screaming, 'Shay, Shay, Shay, all the Way Shay'&lt;br /&gt;&lt;br /&gt;Shay reached third base because the opposing shortstop ran to help him by turning him in the direction of third base, and shouted, 'Run to third! Shay, run to third!' As Shay rounded third, the boys from both teams, and the spectators, were on their feet screaming, 'Shay, run home! Run home!' Shay ran to home, stepped on the plate, and was cheered as the hero who hit the grand slam and won the game for his team.&lt;br /&gt;&lt;br /&gt;'That day', said the father softly with tears now rolling down his face, 'the boys from both teams helped bring a piece of true love and humanity into this world'.&lt;br /&gt;&lt;br /&gt;Shay didn't make it to another summer. He died that winter, having never forgotten being the hero and making me so happy, and coming home and seeing his Mother tearfully embrace her little hero of the day!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-4852459000925771324?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/4852459000925771324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=4852459000925771324' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/4852459000925771324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/4852459000925771324'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2009/02/shay.html' title='Shay'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-5553684005125235364</id><published>2009-02-11T17:02:00.000-06:00</published><updated>2009-11-24T17:03:35.454-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Cohesion and Coupling</title><content type='html'>Every seasoned object-oriented developer should be familiar with these coding principles. Sometimes we forget though to implement them in the code that we write which leads to future refactoring. This article is a good reminder of these design and architecture patterns, and it provides some pretty good examples.&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc947917.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/cc947917.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-5553684005125235364?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/5553684005125235364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=5553684005125235364' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/5553684005125235364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/5553684005125235364'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2009/02/cohesion-and-coupling.html' title='Cohesion and Coupling'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-6450877180212044379</id><published>2009-02-01T17:56:00.002-06:00</published><updated>2011-02-01T17:57:46.561-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>URL ReWrite</title><content type='html'>void Application_BeginRequest(object sender, EventArgs e)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;System.Web.HttpContext httpContext = HttpContext.Current;&lt;br /&gt;&lt;br /&gt;String currentURL = httpContext.Request.Path.ToLower();&lt;br /&gt;&lt;br /&gt;string processPath =currentURL.Substring(httpContext.Request.ApplicationPath.Length).TrimStart('/').ToLower();&lt;br /&gt;&lt;br /&gt;//Creates th&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;string physicalPath = httpContext.Server.MapPath(&lt;br /&gt;&lt;br /&gt;currentURL.Substring(currentURL.LastIndexOf("/") + 1));&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//checks to see if the file does not exsists.&lt;br /&gt;&lt;br /&gt;if (!System.IO.File.Exists(physicalPath))&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;string queryString =httpContext.Request.ServerVariables["QUERY_STRING"];&lt;br /&gt;&lt;br /&gt;string defaultPage = "~/PageViewer.aspx?process=";&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;if (processPath.EndsWith(".aspx"))&lt;br /&gt;&lt;br /&gt;processPath = processPath.Substring(0, processPath.Length - ".aspx".Length);&lt;br /&gt;&lt;br /&gt;// Rewrites the path&lt;br /&gt;&lt;br /&gt;httpContext.RewritePath(defaultPage + processPath + "&amp;amp;" + queryString);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-6450877180212044379?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/6450877180212044379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=6450877180212044379' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/6450877180212044379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/6450877180212044379'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2009/02/url-rewrite.html' title='URL ReWrite'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-4170787584624059123</id><published>2009-02-01T16:25:00.001-06:00</published><updated>2009-11-23T17:04:19.463-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Good Read'/><title type='text'>Peopleware: Productive Projects and Teams</title><content type='html'>This is one of the best books that I've read in a while on People Management. I would recommend it to all Development and Project Managers...heck, all managers in general.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_PcB4JDiXccs/SwsMGsO43WI/AAAAAAAAAMc/z3QN5v-FEcM/s1600/Peopleware.jpg" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_PcB4JDiXccs/SwsMGsO43WI/AAAAAAAAAMc/z3QN5v-FEcM/s320/Peopleware.jpg" yr="true" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-4170787584624059123?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/4170787584624059123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=4170787584624059123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/4170787584624059123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/4170787584624059123'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2009/10/peopleware-productive-projects-and.html' title='Peopleware: Productive Projects and Teams'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_PcB4JDiXccs/SwsMGsO43WI/AAAAAAAAAMc/z3QN5v-FEcM/s72-c/Peopleware.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-3028967050241884916</id><published>2009-01-22T16:55:00.005-06:00</published><updated>2009-11-24T17:00:43.264-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Show screens early</title><content type='html'>One of the principles of Agile Development (via the Manifesto - &lt;a href="http://agilemanifesto.org/principles.html"&gt;http://agilemanifesto.org/principles.html&lt;/a&gt;) is to deliver working software frequently. One of the main ways we do this within the OSS development group is to get screens out there to our users early. Even if the screens don't do a whole lot, the functionality that they do contain has been tested and works.&lt;br /&gt;&lt;br /&gt;Throughout the development of an application we're continuously pushing out features in small iterations to our customers. Even though the product is not fully "baked" it allows them to see visual progress, begin working with the product, and even provide testing and feedback.&lt;br /&gt;&lt;br /&gt;So far it has produced great results. Our customers know exactly what they're getting, they've had interactive collaboration with us throughout the development effort, and the end result is a custom technology solution that meets the business need.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-3028967050241884916?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/3028967050241884916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=3028967050241884916' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/3028967050241884916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/3028967050241884916'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2009/01/show-screens-early.html' title='Show screens early'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-1572422232747378834</id><published>2009-01-07T15:47:00.002-06:00</published><updated>2009-11-24T15:49:53.741-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Good Read'/><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>SQL Tuning</title><content type='html'>A while back&amp;nbsp;one of the guys on my team&amp;nbsp;recommended to me SQL Tuning as a&amp;nbsp;fabulous read. I also endorse it as a book that should be a part of every SQL Developer's library. Note: it is not a light weekend read, but it will get you thinking about how you go about writing your SQL Statements going forward.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_PcB4JDiXccs/SwxU2eXbDgI/AAAAAAAAAOc/lIDeFeIBQ0g/s1600/SQLTuning.jpg" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_PcB4JDiXccs/SwxU2eXbDgI/AAAAAAAAAOc/lIDeFeIBQ0g/s320/SQLTuning.jpg" yr="true" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-1572422232747378834?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/1572422232747378834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=1572422232747378834' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/1572422232747378834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/1572422232747378834'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2009/01/sql-tuning.html' title='SQL Tuning'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_PcB4JDiXccs/SwxU2eXbDgI/AAAAAAAAAOc/lIDeFeIBQ0g/s72-c/SQLTuning.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-5014696036043766912</id><published>2008-12-06T15:58:00.003-06:00</published><updated>2009-11-24T16:11:49.545-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Create Test Data</title><content type='html'>It pains me when I see applications get off of the ground and they start out performing well in the first few months and then after some significant usage they slow down and become unweildy. It's because the application was tested with little or no data in the database. &lt;br /&gt;&lt;br /&gt;How we have combated this in our group is to create "test data" and LOTS of it! In fact, working with our business sponsors on one project we determined that a certain number of transactions would be created in a year and that only 3 years of data was ever needed on hand. Older data could be archived. So, we planned for triple that amount and entered 10 years of test data and then expected the application to perform at the same level.&lt;br /&gt;&lt;br /&gt;We learned a lot from our testing and made the necessary alterations for the application to perform well working with years of data.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-5014696036043766912?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/5014696036043766912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=5014696036043766912' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/5014696036043766912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/5014696036043766912'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2008/12/create-test-data.html' title='Create Test Data'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-8641533861486897834</id><published>2008-12-04T17:23:00.001-06:00</published><updated>2009-11-23T17:26:05.014-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>The Joel Test</title><content type='html'>I got these from Joel Spolsky's latest book (previous blog entry). It's a test for every software team. How does your team score?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Do you use source control?&lt;/li&gt;&lt;li&gt;Can you make a build in one step? &lt;/li&gt;&lt;li&gt;Do you make daily builds? &lt;/li&gt;&lt;li&gt;Do you have a bug database? &lt;/li&gt;&lt;li&gt;Do you fix bugs before writing new code? &lt;/li&gt;&lt;li&gt;Do you have an up-to-date schedule? &lt;/li&gt;&lt;li&gt;Do you have a spec? &lt;/li&gt;&lt;li&gt;Do programmers have quiet working conditions? &lt;/li&gt;&lt;li&gt;Do you use the best tools money can buy? &lt;/li&gt;&lt;li&gt;Do you have testers? &lt;/li&gt;&lt;li&gt;Do new candidates write code during their interview? &lt;/li&gt;&lt;li&gt;Do you do hallway usability testing?&lt;/li&gt;&lt;/ul&gt;More details here: &lt;a href="http://www.joelonsoftware.com/articles/fog0000000043.html"&gt;http://www.joelonsoftware.com/articles/fog0000000043.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-8641533861486897834?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/8641533861486897834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=8641533861486897834' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/8641533861486897834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/8641533861486897834'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2008/12/joel-test.html' title='The Joel Test'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-6566190710560117110</id><published>2008-11-04T15:50:00.001-06:00</published><updated>2009-11-24T15:51:40.230-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Brooks's Law</title><content type='html'>This is a principle in software development which says that "adding manpower to a late software project makes it later" (&lt;a href="http://en.wikipedia.org/wiki/Brooks%27s_law"&gt;http://en.wikipedia.org/wiki/Brooks%27s_law&lt;/a&gt;). I couldn't have said it better. Just about anyone that's been in the industry of software development has experienced this first-hand.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-6566190710560117110?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/6566190710560117110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=6566190710560117110' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/6566190710560117110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/6566190710560117110'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2008/11/brookss-law.html' title='Brooks&apos;s Law'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-2924013527298572581</id><published>2008-11-02T17:16:00.001-06:00</published><updated>2009-11-23T17:17:22.654-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Imagine Cup</title><content type='html'>I had never heard of this before today...it's a great idea and appears to have gained a lot of momentum recently both in the US and abroad. I'm all for research into technologies that enable a sustainable environment...&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc748665.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/cc748665.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-2924013527298572581?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/2924013527298572581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=2924013527298572581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/2924013527298572581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/2924013527298572581'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2008/11/imagine-cup.html' title='Imagine Cup'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-143409435775061467</id><published>2008-11-01T15:53:00.005-05:00</published><updated>2009-11-23T17:04:35.156-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Good Read'/><title type='text'>Smart and Get Things Done</title><content type='html'>I just finished reading this book written by Joel Spolksy. It's a quick read and one that I think every hiring technical manager should have in his library. I'm not necessarily a die-hard Spolsky fan, but he does have some good nuggets of information in his writings. In this latest book I summed up some of the items I got from it (in my own words) when it comes to finding and hiring good technical talent.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Help with Resume Sorting&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp;Look for individuals that have passion about what they do (their field of specialty). &lt;/li&gt;&lt;li&gt;Are they wanting to work for you and your company or do they just want a job? &lt;/li&gt;&lt;li&gt;Is their resume full of grammatical and spelling errors? If so, toss it out. &lt;/li&gt;&lt;li&gt;Look for smart people….they should have honors / accomplishments under their belt. &lt;/li&gt;&lt;li&gt;Have they been through a highly selective process before (i.e. school, programs, elite military, etc.)? &lt;/li&gt;&lt;li&gt;Look for those that are hard-core at what they do. These people usually push the envelope. &lt;/li&gt;&lt;li&gt;Look for someone that will add some diversity to the group (i.e. background, culture, skillset, etc.).&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;Phone Interviews&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ask them to talk about their history and tell you about themselves. The point here is to uncover who this person is and what they're about. Explore their technical aptitude, how they think, and how they get things done. &lt;/li&gt;&lt;li&gt;Go into a technical deep dive. Ask hard questions and dig into the details of their answers. This step is where you'll uncover if they're good at what they do and if they're smart. &lt;/li&gt;&lt;li&gt;Let the candidate interview you. Focus in on the type of questions they're asking. Hopefully they've taken the time and already know something about your company.&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;In-Person Interviews&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Always have at least 5-6 people interview the candidate. &lt;/li&gt;&lt;li&gt;&amp;nbsp;Make sure your interview room is quiet, comfortable, and has a white board. &lt;/li&gt;&lt;li&gt;&amp;nbsp;Each person interviewing should spend at least an hour with the candidate. &lt;/li&gt;&lt;li&gt;&amp;nbsp;If the candidate is not good enough for your team, why would they be good for some other team? &lt;/li&gt;&lt;li&gt;&amp;nbsp;Keep it simple: Hire or No Hire (nothing in between). &lt;/li&gt;&lt;li&gt;&amp;nbsp;Keep in mind that it's all about hiring people that are "smart and get stuff done". &lt;/li&gt;&lt;li&gt;&amp;nbsp;Avoid going in with preconceived notions…you won't get over them. &lt;/li&gt;&lt;li&gt;&amp;nbsp;Never listen to recruiters…they're simply there to make a match and a sale. &lt;/li&gt;&lt;li&gt;&amp;nbsp;Do not talk with other interviewers about a candidate until you've each made an independent decision. &lt;/li&gt;&lt;li&gt;&amp;nbsp;Look for expressed passion from the individual -- find it, foster it, challenge it. &lt;/li&gt;&lt;li&gt;&amp;nbsp;Make sure the candidate can express themselves clearly and can make others understand what they're talking about.&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_PcB4JDiXccs/SwsGGd6r7_I/AAAAAAAAAMU/MoxZOhZSnKQ/s1600/Smart+and+Get+Things+Done.jpg" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_PcB4JDiXccs/SwsGGd6r7_I/AAAAAAAAAMU/MoxZOhZSnKQ/s320/Smart+and+Get+Things+Done.jpg" yr="true" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-143409435775061467?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/143409435775061467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=143409435775061467' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/143409435775061467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/143409435775061467'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2008/11/smart-and-get-things-done.html' title='Smart and Get Things Done'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_PcB4JDiXccs/SwsGGd6r7_I/AAAAAAAAAMU/MoxZOhZSnKQ/s72-c/Smart+and+Get+Things+Done.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-1325070198646418385</id><published>2008-10-29T16:46:00.003-05:00</published><updated>2009-11-23T17:02:37.347-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Seven Laws of Identity</title><content type='html'>Identity Management is a complex subject and one that can be hard to wrap your hands around. Journal 16 of "The Architecture Journal" focuses on this subject. One thing that caught my eye was the 7 Laws of Identity:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Law #1 User Control and Consent&lt;/strong&gt;&lt;br /&gt;Technical identity systems must only reveal information identifying a user with the user’s consent.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Law #2 Minimal Disclosure for a Constrained Use&lt;/strong&gt;&lt;br /&gt;The solution that discloses the least amount of identifying information and best limits its use is the most stable long-term solution.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Law #3 Justifiable Parties&lt;/strong&gt;&lt;br /&gt;Digital-identity systems must be designed so that the disclosure of identifying information is limited to parties that have a necessary and justifiable place in a given identity relationship.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Law #4 Directed Identity&lt;/strong&gt;&lt;br /&gt;A universal-identity system must support both “omnidirectional” identifiers for use by public entities and “unidirectional” identifiers for use by private entities—thus, facilitating discovery while preventing unnecessary release of correlation handles.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Law #5 Pluralism of Operators and Technologies&lt;/strong&gt;&lt;br /&gt;A universal-identity system must channel and enable the interworking of multiple identity technologies run by multiple identity providers.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Law #6 Human Integration&lt;/strong&gt;&lt;br /&gt;The universal-identity metasystem must define the human user to be a component of the distributed system integrated through unambiguous human-machine communication mechanisms offering protection against identity attacks.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Law #7 Consistent Experience Across Contexts&lt;/strong&gt;&lt;br /&gt;The unifying identity metasystem must guarantee its users a simple and consistent experience, while enabling separation of contexts through multiple operators and technologies.&lt;br /&gt;&lt;br /&gt;To read more, go to:&lt;br /&gt;&lt;a href="http://www.identityblog.com/stories/2005/05/13/TheLawsOfIdentity.pdf"&gt;http://www.identityblog.com/stories/2005/05/13/TheLawsOfIdentity.pdf&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-1325070198646418385?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/1325070198646418385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=1325070198646418385' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/1325070198646418385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/1325070198646418385'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2008/10/seven-laws-of-identity.html' title='Seven Laws of Identity'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-7490282202561206364</id><published>2008-10-28T16:34:00.005-05:00</published><updated>2009-11-23T17:05:05.354-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Advice'/><title type='text'>Be prepared for "gotchas"</title><content type='html'>Several months ago, my father and I replaced one of the water heaters in my house. It was about 10 years old, making "clangy" noises, and from my assessment was on its way out. When we had originally looked at the project we thought it would take us about 3 hours from start to finish to replace it. Well, 6 hours later we were finally wrapping things up and it wasn't because we didn't know what we were doing either...there were just so many "gotchas" in the replacement process. &lt;br /&gt;&lt;br /&gt;That night as I sat back and reflected on the whole ordeal I realized how similar this particular home improvement project can be to IT development projects. So, here are a few bullet points that elaborate on my analogy:&lt;br /&gt;&lt;br /&gt;- &lt;strong&gt;&lt;em&gt;Always plan ahead in your project.&lt;/em&gt;&lt;/strong&gt; One of the reasons for the extra time in this project was that I had to make 3 different stops to the hardware store because I didn't plan ahead enough for the project.&lt;br /&gt;&lt;br /&gt;- &lt;strong&gt;&lt;em&gt;Hope for the best, but be prepared for the worst.&lt;/em&gt;&lt;/strong&gt; Account for this in your project estimation. I hadn't put too much thought into the fact that the new water heater was 3 inches taller and 2 inches wider in diameter. This makes a big difference when all of the plumbing lines are sautered copper...they don't bend and they're not flexible. So, we hadn't built into our estimate the time it would take to redo all of the plumbing.&lt;br /&gt;&lt;br /&gt;- &lt;strong&gt;&lt;em&gt;Don't be suprised if there are "gotchas"...especially when it comes to your budget.&lt;/em&gt;&lt;/strong&gt; I had no idea that the price of metals had gone up so drastically over the last few years. I spent an additional $100 in project materials...I had originally estimated this cost to be less than half that amount.&lt;br /&gt;&lt;br /&gt;- &lt;strong&gt;&lt;em&gt;When implementing your solution, think of the worst possible scenario, and account for it.&lt;/em&gt;&lt;/strong&gt; Not only do I have a drain pan underneath the water heater, but I also have a drain line so if leaking starts to occur the water exits through the pvc lines (which we ran through the walls) and to the outside of the house. In addition, the new unit has a "smart sensor" system that would not only prevent an interior flood, but will also shut itself off completely (including the natural gas) if a problem is detected. I'm very confident now that I'll never have a problem in this department.&lt;br /&gt;&lt;br /&gt;- &lt;strong&gt;&lt;em&gt;When designing your solution, think scalability.&lt;/em&gt;&lt;/strong&gt; The new plumbing lines are "flex" lines going from the actual hard-copper lines to the new water heater unit. This cost me a little more, but the next time I have to replace it, re-plumbing won't be necessary.&lt;br /&gt;&lt;br /&gt;- &lt;strong&gt;&lt;em&gt;If at all possible, don't go it alone.&lt;/em&gt;&lt;/strong&gt; If you haven't lifted a fifty-gallon hot water heater lately, go to your local hardware store and try. They're quite heavy and an oblong shape. It was good that there were two of us for this reason, but also because we were continually double-checking each other. We had a good system of checks and balances in place.&lt;br /&gt;&lt;br /&gt;- &lt;strong&gt;&lt;em&gt;Read the fine print.&lt;/em&gt;&lt;/strong&gt; The new unit came with the option to purchase a "lifetime warranty". Folks, water heaters don't last a lifetime, so this wording caught my eye. After reading the fine print though and calculating the cost, I realized their business genius. The total implementation cost would have been 3-4 times as much as I paid doing it myself. In addition, there are ongoing maintenance costs to ensure you comply with the fine print within the warranty. We've all heard it a thousand times, but if something sounds too good to be true, it probably is!&lt;br /&gt;&lt;br /&gt;- &lt;strong&gt;&lt;em&gt;Don't wait for a problem to occur...be proactive.&lt;/em&gt;&lt;/strong&gt; This is often times easier said than done because the reality of it is that usally the squeaky wheel gets the grease. I didn't have to change the unit when I did, but I saved myself a potential mess and a lot of $$$ by doing it this way. &lt;br /&gt;&lt;br /&gt;So, when planning your next development project, take into account the need to have a solid plan, have enough resources available, have adequate funding, set aside contingency dollars for the unexpected "gotchas", anticipate requirements scope creep, and think proactively.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-7490282202561206364?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/7490282202561206364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=7490282202561206364' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/7490282202561206364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/7490282202561206364'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2008/10/be-prepared-for-gotchas.html' title='Be prepared for &quot;gotchas&quot;'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-5008219646255835240</id><published>2008-10-27T16:33:00.002-05:00</published><updated>2009-11-23T17:07:02.508-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><title type='text'>The Story of Stuff</title><content type='html'>I found this online short-story movie to be very interesting, entertaining, and thought provoking. In your free time I would encourage you to watch it. Individually, collectively, and as a corporate entity we can always improve in this area...even by taking baby steps.&lt;br /&gt;&lt;a href="http://www.storyofstuff.com/"&gt;http://www.storyofstuff.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-5008219646255835240?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/5008219646255835240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=5008219646255835240' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/5008219646255835240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/5008219646255835240'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2008/10/story-of-stuff.html' title='The Story of Stuff'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-5304082070826689219</id><published>2008-10-20T17:52:00.001-05:00</published><updated>2011-02-01T17:56:00.923-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Code Snippets</title><content type='html'>public static DateTime GetDate(int month, int year, DayOfWeek day, int dayNumber)&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;// validation&lt;br /&gt;if (dayNumber &amp;lt; 1 &lt;br /&gt;dayNumber &amp;gt; 5) return DateTime.Now;&lt;br /&gt;if (month &amp;lt; 1 &lt;br /&gt;month &amp;gt; 12) return DateTime.Now;&lt;br /&gt;if (year &amp;lt; 1900) return DateTime.Now; &lt;br /&gt;&lt;br /&gt;// set up our root variables&lt;br /&gt;int daysInMonth = DaysInMonth(month, year);&lt;br /&gt;int earliestDay = (dayNumber * 7) - 6;&lt;br /&gt;DateTime earliestDate = new DateTime(year, month, earliestDay);&lt;br /&gt;// if the earliest date matches the day we are looking for, it is the correct date&lt;br /&gt;if ((DayOfWeek)earliestDate.DayOfWeek == day)&lt;br /&gt;return earliestDate;&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;// calculate the new day&lt;br /&gt;int newDay = earliestDate.Day;&lt;br /&gt;if ((int)earliestDate.DayOfWeek &amp;gt; (int)day)&lt;br /&gt;{&lt;br /&gt;newDay += 7 - ((int)earliestDate.DayOfWeek) + 1;&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;newDay += ((int)day - (int)earliestDate.DayOfWeek);&lt;br /&gt;}&lt;br /&gt;if (newDay &amp;gt; daysInMonth)&lt;br /&gt;{&lt;br /&gt;// new day is more than the days in the month, so we need to go backwards&lt;br /&gt;// start the day at the last day of the month&lt;br /&gt;return GetDate(month, year, day, 4);&lt;br /&gt;}&lt;br /&gt;return new DateTime(year, month, newDay);&lt;br /&gt;}&lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PIVOT TABLES -- SQL SERVER 2005&lt;br /&gt;&lt;br /&gt;CREATE TABLE [dbo].[Quotas](&lt;br /&gt;[Week] [smallint] NOT NULL,&lt;br /&gt;[Days] [varchar](3) NOT NULL,&lt;br /&gt;[Quota] [smallint] NOT NULL,&lt;br /&gt;CONSTRAINT [PK_Quotas] PRIMARY KEY CLUSTERED &lt;br /&gt;(&lt;br /&gt;[Week] ASC,&lt;br /&gt;[Days] ASC&lt;br /&gt;)&lt;br /&gt;Inserts&lt;br /&gt;insert into Quotas (Week, Days, Quota) values (1, '1', 8)&lt;br /&gt;insert into Quotas (Week, Days, Quota) values (1, '2', 7)&lt;br /&gt;insert into Quotas (Week, Days, Quota) values (1, '3', 6)&lt;br /&gt;insert into Quotas (Week, Days, Quota) values (2, '1', 5)&lt;br /&gt;insert into Quotas (Week, Days, Quota) values (2, '2', 4)&lt;br /&gt;insert into Quotas (Week, Days, Quota) values (2, '3', 3)&lt;br /&gt;insert into Quotas (Week, Days, Quota) values (3, '3.5', 2)&lt;br /&gt;&lt;br /&gt;SQL&lt;br /&gt;&lt;br /&gt;select *&lt;br /&gt;from &lt;br /&gt;(select Week, days, quota from Quotas) q&lt;br /&gt;PIVOT&lt;br /&gt;(&lt;br /&gt;sum(quota) &lt;br /&gt;FOR days IN([1],[2],[3],[3.5])&lt;br /&gt;) as pvt&lt;br /&gt;&lt;br /&gt;It requires a function in the first argument of the pivot keyword, so as long as the week/day combination are unique, your "sum" will always only be on one row, so it won't matter. Maybe you could try an isnull(quota,0) and see if that works.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-5304082070826689219?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/5304082070826689219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=5304082070826689219' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/5304082070826689219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/5304082070826689219'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2008/10/code-snippets.html' title='Code Snippets'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-6130940117778245517</id><published>2008-09-23T14:05:00.022-05:00</published><updated>2010-10-20T14:24:05.164-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Good Read'/><title type='text'>Art of Business</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_PcB4JDiXccs/TL8-y1JJ4AI/AAAAAAAAAPo/4omq9_kR6jE/s1600/Art+of+Business.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" ex="true" height="200" src="http://3.bp.blogspot.com/_PcB4JDiXccs/TL8-y1JJ4AI/AAAAAAAAAPo/4omq9_kR6jE/s200/Art+of+Business.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;I recently read Sun Tzu's "The Art of Business" and was intrigued with&amp;nbsp;his approach to competition.&amp;nbsp; I took the following notes:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. Win all without Fighting&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a. Capture your Market without Destroying it&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b. Use the "Take-All-Under-Heaven" approach leaving everything intact though&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c. The goal is relative market dominance without destroying the industry&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. Avoid Strength, Attack Weakness&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a. Strike your enemy / competitor where they least expect it&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b. Attacking weaknesses is a better use of your resources&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c. Going strength against strength is the preferred method in Western culture&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d. Attack the weakest part of your competitor's value chain&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e. Be the "first mover" to launch a preemptive attack to gain competitive advantage&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f. Find the boundaries of your competitor…capitalize on their vulnerability&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g. Attack a competitor psychologically…attack their plans&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; h. To be strong everywhere is to be strong nowhere&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3. Deception and Foreknowledge&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a. Maximizing the power of market information&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b. Competitive research and analysis should be deep, conducted ethically, and taken seriously&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c. Learn your competitors strengths, weaknesses, and capabilities and know the marketplace&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d. Know yourself as well as your competitors&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e. Beating the competitor involves deceiving executives about the true nature of your plans&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-6130940117778245517?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/6130940117778245517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=6130940117778245517' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/6130940117778245517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/6130940117778245517'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2008/09/art-of-business.html' title='Art of Business'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_PcB4JDiXccs/TL8-y1JJ4AI/AAAAAAAAAPo/4omq9_kR6jE/s72-c/Art+of+Business.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-3753825544326422111</id><published>2008-09-20T16:53:00.002-05:00</published><updated>2009-11-24T16:55:20.307-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Scaling Strategies for ASP.NET applications</title><content type='html'>I finished reading an interesting MSDN article (&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc500561.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/cc500561.aspx&lt;/a&gt;) that spoke to many of issues that enterprise application developers must face when scaling their solutions. Things like: it working just fine in the development environment but choking in Production due to the number of simultaneous users, or determining how to architect your server environment (i.e. application, web servers) for optimal performance, or what load-balancing is best for your situation, or what method should be chosen for storing Session State (with the intent of ridding your solution of affinity).&lt;br /&gt;The article is long so I'll highlight some of their suggestions:&lt;br /&gt;&lt;br /&gt;1) Use a hardware-based load-balancing solution.&lt;br /&gt;2) Use SQL Server or ASP State Server to store session state.&lt;br /&gt;3) Make sure file compression is turned on within IIS.&lt;br /&gt;4) Turn off viewstate within your UI where it is not needed.&lt;br /&gt;5) Leverage AJAX to reduce the payload on the client.&lt;br /&gt;6) Use Data Caching judiciously but expect it to get complex.&lt;br /&gt;7) Partition your data across databases and use replication to syncronize data.&lt;br /&gt;8) Plan on your strategy growing as your application data and user base grows.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-3753825544326422111?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/3753825544326422111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=3753825544326422111' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/3753825544326422111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/3753825544326422111'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2008/09/scaling-strategies-for-aspnet.html' title='Scaling Strategies for ASP.NET applications'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-7799266374764461176</id><published>2008-09-06T16:51:00.001-05:00</published><updated>2009-11-24T16:53:11.160-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>Ajaxification</title><content type='html'>"Ajaxification", a word you won't yet find on Wikipedia, is a word that we use to describe the process of applying AJAX to a web-based applicaiton. The technology was introduced to me about 18 months or so ago and I must admit that at first I was reserved and a little hesitant to jump on board the bandwagon. So, we decided to just "test it out" with one of our apps. Well, let's just say it didn't take too long to "ajaxify" everything we'd built. Now it's an integral part of the OSS development framework and a technology that we liberally use. The benefits are huge (i.e. real-time page updates, partial page rendering for optimized UI performance, no more screen flickering and repeated full page loads, a richer user experience, and the list goes on. Dino Esposito, who is referred to by some in the software development industry as a "machine", wrote an article (&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc507641.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/cc507641.aspx&lt;/a&gt;) recently discussing in more depth Single-Page Interface and AJAX Patterns.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-7799266374764461176?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/7799266374764461176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=7799266374764461176' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/7799266374764461176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/7799266374764461176'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2008/09/ajaxification.html' title='Ajaxification'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-8518388092750938620</id><published>2008-08-01T15:36:00.003-05:00</published><updated>2009-11-23T17:05:50.699-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Good Read'/><title type='text'>Executive Strategies for Tough Times</title><content type='html'>I just finished reading this book on Abraham Lincoln and his leadership strategies exercised throughout the course of his life. It was an interesting read and re-affirmed for me some of the essentials for solid leadership (listed below).&lt;br /&gt;&lt;br /&gt;- Get out of the office and circulate among the troops&lt;br /&gt;- Build Strong Alliances&lt;br /&gt;- Persuade rather than coerce&lt;br /&gt;- Honesty and integrity are the best policies&lt;br /&gt;- Never act out of vengeance or spite&lt;br /&gt;- Have the courage to handle unjust criticism&lt;br /&gt;- Be a master of paradox&lt;br /&gt;- Exercise a strong hand - be decisive&lt;br /&gt;- Lead by being led&lt;br /&gt;- Set goals and be results-oriented&lt;br /&gt;- Keep searching until you find your "Grant"&lt;br /&gt;- Encourage innovation&lt;br /&gt;- Master the art of public speaking&lt;br /&gt;- Influence people through conversation and storytelling&lt;br /&gt;- Preach a vision and continually reaffirm it&lt;br /&gt;&lt;br /&gt;I'd recommend this book to anyone currently in a management position or aspiring to do so.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_PcB4JDiXccs/SwsBBCJulbI/AAAAAAAAAME/RZP-97-F1vo/s1600/Lincoln+on+Leadership.jpg" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_PcB4JDiXccs/SwsBBCJulbI/AAAAAAAAAME/RZP-97-F1vo/s320/Lincoln+on+Leadership.jpg" yr="true" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-8518388092750938620?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/8518388092750938620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=8518388092750938620' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/8518388092750938620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/8518388092750938620'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2008/08/executive-strategies-for-tough-times.html' title='Executive Strategies for Tough Times'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_PcB4JDiXccs/SwsBBCJulbI/AAAAAAAAAME/RZP-97-F1vo/s72-c/Lincoln+on+Leadership.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-7474139819493341614</id><published>2008-05-13T17:20:00.002-05:00</published><updated>2009-11-23T17:23:11.098-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tech Talk'/><title type='text'>No Need for Architects...really?</title><content type='html'>Joseph Hofstader wrote a very relevant article on the need for software architects and emphasizes why good ones with the right skillset are hard to come by. Below is a visual depiction of what he identified as the necessary skillsets for an enterprise software architect. &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/architecture/cc505974.aspx"&gt;http://msdn.microsoft.com/en-us/architecture/cc505974.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_PcB4JDiXccs/SwsY8EK9_TI/AAAAAAAAANM/boVJjgdykZA/s1600/KeyArchitectSkills.jpg" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_PcB4JDiXccs/SwsY8EK9_TI/AAAAAAAAANM/boVJjgdykZA/s320/KeyArchitectSkills.jpg" yr="true" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-7474139819493341614?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/7474139819493341614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=7474139819493341614' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/7474139819493341614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/7474139819493341614'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2008/05/no-need-for-architectsreally.html' title='No Need for Architects...really?'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_PcB4JDiXccs/SwsY8EK9_TI/AAAAAAAAANM/boVJjgdykZA/s72-c/KeyArchitectSkills.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28225448.post-4406544777411160565</id><published>2008-05-01T15:30:00.002-05:00</published><updated>2009-11-23T17:06:01.999-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Good Read'/><title type='text'>Room to Read</title><content type='html'>I just finished reading John Wood's book about his quest to educate the world's children and the career that he left behind (&lt;a href="http://www.leavingmicrosoftbook.com/"&gt;http://www.leavingmicrosoftbook.com/&lt;/a&gt;). I was blown away with how successful his non-profit organization has become (&lt;a href="http://www.roomtoread.org/"&gt;http://www.roomtoread.org/&lt;/a&gt;) since its inception. I highly recommend this good read.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28225448-4406544777411160565?l=scottbenners.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scottbenners.blogspot.com/feeds/4406544777411160565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28225448&amp;postID=4406544777411160565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/4406544777411160565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28225448/posts/default/4406544777411160565'/><link rel='alternate' type='text/html' href='http://scottbenners.blogspot.com/2008/05/room-to-read.html' title='Room to Read'/><author><name>Scott Benners</name><uri>http://www.blogger.com/profile/15594831032733969231</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_PcB4JDiXccs/TUiIPninE0I/AAAAAAAAAP0/X-dzyJWN0nE/s220/scott1.jpg'/></author><thr:total>0</thr:total></entry></feed>
