tag:blogger.com,1999:blog-75157062024-03-13T10:40:14.108-04:00Software CraftsmanshipDiscussion of software development with an emphasis on creating quality code.David Pattonhttp://www.blogger.com/profile/14901518018421175021noreply@blogger.comBlogger18125tag:blogger.com,1999:blog-7515706.post-83575981728429787992010-06-08T09:28:00.000-04:002010-06-08T09:28:00.386-04:00dcpatton.comI have started discussing Software Craftsmanship on my <a href="http://dcpatton.com/">http://dcpatton.com/</a> site. I hope you have enjoyed the posts here and invite you to move over there to contribute to the community we are building and learn more techniques of Software Craftsmanship.<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "pub-0027690166824672";
/* 468x60, created 10/7/08 */
google_ad_slot = "3114106509";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>David Pattonhttp://www.blogger.com/profile/14901518018421175021noreply@blogger.com0tag:blogger.com,1999:blog-7515706.post-53055495060935480252008-08-13T22:39:00.013-04:002008-10-10T22:01:59.518-04:00Agile Web Development with Rails<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.pragprog.com/images/covers/190x228/betas/rails3.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px;" src="http://www.pragprog.com/images/covers/190x228/betas/rails3.jpg" alt="" border="0" /></a><br /><br />As a follow-up to the question posed at the end of this <a href="http://softcraft.blogspot.com/2008/04/ruby.html">post</a>, I've been working my way through the PDF version of Agile Web Development with Rails, Third Edition by Sam Ruby, Dave Thomas, David Heinemeier Hansson, et. al. and I think it is the best introduction to Rails out there. The book is currently in beta and is not available as a paper book yet.<br /><br />The contents cover<br /><ul><li>Getting Started (Installation)</li><li>Building an Application</li><li>The Rails Framework (Active Record, Action Controller, Action View, etc.)</li><li>Security</li><li>Deployment</li></ul><br /><span id="pho_4474"><a href="http://www.photrade.com/dcpatton?z=4474"><img src="http://www.photrade.com/photos/4474" target="_blank" ismap alt="twig yellow nature conifer" border="0"></a><br /><em><a href="http://www.photrade.com/" style="font-size: 12px; color: #3F6BB5; font-weight: bold; font-family: Arial; margin-top: 0; padding-top: 0">Sell photos on photrade</a> | <a href="http://www.photrade.com/dcpatton" style="font-size: 12px; color: #3F6BB5; font-weight: bold; font-family: Arial;margin-top: 0; padding-top: 0">By dcpatton</a></em></span><script type="text/javascript" src="http://www.photrade.com/dynamicRender/4474"></script><br /><br /><br />I like the style of the book, because it is designed to be hands on with code included such that you can run it as you read and come out of this with a running application. Iterative development, testing, YAGNI, DRY and other agile development practices are naturally used. My only recommendation would be for the authors to use jQuery as the recommended javascript framework, but since it doesn't come as the default with Rails, then I can understand why they haven't.<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "pub-0027690166824672";
/* 468x60, created 10/7/08 */
google_ad_slot = "3114106509";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>David Pattonhttp://www.blogger.com/profile/14901518018421175021noreply@blogger.com0tag:blogger.com,1999:blog-7515706.post-14956650700152217822008-05-13T22:09:00.004-04:002008-05-15T13:29:25.032-04:00socialdevcamp eastLast weekend I attended <a href="http://barcamp.pbwiki.com/SocialDevCampEast">SocialDevCampEast</a> in Baltimore, MD.<br /><p> SocialDevCamp East is the Unconference for Thought Leaders of the Future Social Web</p><p> Where is the social web going? It's going mobile, to geocentric services, and to open platforms. A community of like minded developers, social media gurus, CEOs and thought leaders from DC to Boston came together to discuss the future of the social web. Check out the link above to see the participants and topics. </p><p>Thanks to all the wonderful sponsors, volunteers and participants that made it so awesome.<br /></p>I particularly enjoyed the session with <a href="http://billmill.org/">Bill Mill</a> where we built out a simple application on the <a href="http://code.google.com/appengine/">Google App Engine</a> platform. The last session concerning startups/VCs was really good too. I liked the thoughts from <a href="http://www.technotheory.com/">Jared Goralnick</a> and <a href="http://www.socialtimes.com/2008/05/the-washington-post-rails-dc-yet-again/">Nick O'Neill</a> pointing out the strengths of the east coast.<br /><br />I can't wait for the next camp in the fall.<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "pub-0027690166824672";
/* 468x60, created 10/7/08 */
google_ad_slot = "3114106509";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>David Pattonhttp://www.blogger.com/profile/14901518018421175021noreply@blogger.com0tag:blogger.com,1999:blog-7515706.post-39982015541040152222008-04-16T22:06:00.002-04:002008-09-04T00:35:19.271-04:00RubyTonight I attended my second <a href="http://www.novarug.org/">NovaRUG</a> meeting. <a href="http://pragdave.pragprog.com/">Dave Thomas</a> of The Pragmatic Programmer discussed the Ruby object model and <a href="http://www.paulbarry.com/">Paul Barry</a> discussed Merb. There seems to still be a lot of development and refinement of the language and implementations at this point (including the best frameworks like Rails, Merb, and ORM). There is a good chance that Ruby will be a great language for rapidly creating high quality applications.<br /><br /><ol><li>It has a very strong object model.</li><li>It has good support for unit testing.</li><li>Syntax is simple.</li><li>There is a decent developer community to support and champion it.<br /></li></ol>It will still take a high commitment to execute at the craftsman level, but with good methodologies I think some great code can be developed. I am currently researching the best book for an introduction to the language. Suggestions?<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "pub-0027690166824672";
/* 468x60, created 10/7/08 */
google_ad_slot = "3114106509";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>David Pattonhttp://www.blogger.com/profile/14901518018421175021noreply@blogger.com0tag:blogger.com,1999:blog-7515706.post-55513500002283971972008-02-26T19:16:00.005-05:002008-09-04T00:36:17.125-04:00New O'Reilly TitleThanks to a colleague, I recently came across this book that is being created O'Reilly <a href="http://softwarecraftsmanship.oreilly.com/wiki">Software Craftsmanship: From Apprentice to Journeyman</a> by Dave Hoover and Adewale Oshineye. It builds on <a href="http://www.amazon.com/gp/product/020161622X?ie=UTF8&tag=softwarcrafts-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=020161622X">The Pragmatic Programmer: From Journeyman to Master</a><img src="http://www.assoc-amazon.com/e/ir?t=softwarcrafts-20&l=as2&o=1&a=020161622X" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" /> by Andy Hunt and Dave Thomas and the <a href="http://www.amazon.com/gp/product/0201733862?ie=UTF8&tag=softwarcrafts-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=0201733862">Software Craftsmanship: The New Imperative</a><img src="http://www.assoc-amazon.com/e/ir?t=softwarcrafts-20&l=as2&o=1&a=0201733862" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" /> by Pete McBreen.<br /><br />As they point out, the book is not available yet. But you can comment on the chapters as they are being written. What I like so far is it seems to blend the pragmatic examples of the earlier Dave Thomas book with the principles presented in McBreen's book. It appears that the book is very early in development (for example Chapter 1 references what you learned in Chapter 3) and maybe has some reorganization down the line. But the ideas are worth considering for any software craftsman and I am eager to see what the final product is.<br /><br /><a href="http://technorati.com/claim/umgwwzadrb" rel="me">Technorati Profile</a><div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "pub-0027690166824672";
/* 468x60, created 10/7/08 */
google_ad_slot = "3114106509";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>David Pattonhttp://www.blogger.com/profile/14901518018421175021noreply@blogger.com0tag:blogger.com,1999:blog-7515706.post-90010553922905666302007-11-08T11:36:00.000-05:002007-11-08T11:43:06.624-05:00CIO&CTOLive! Awards CeremonyAttended <a href="https://techcouncilmd.com/events/detail.php?list=Events&laction=detail.php&evt_id=33">this </a>Tech Council of Maryland event last night. I didn't hear any mention of software development, but the emphasis on the strengthening role of IT in business strategy made it clear that methodologies which connect the technologist to the business side of the house (such as Agile Software Development) are going to be key.<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "pub-0027690166824672";
/* 468x60, created 10/7/08 */
google_ad_slot = "3114106509";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>David Pattonhttp://www.blogger.com/profile/14901518018421175021noreply@blogger.com0tag:blogger.com,1999:blog-7515706.post-44570651929150439442007-06-15T13:16:00.000-04:002007-06-15T13:23:02.795-04:00Java Persistence APIIs anyone using <br /><a href="http://java.sun.com/javaee/overview/faq/persistence.jsp">this</a> yet?<br /><br />I am thinking of using hibernate in a new project, but wish the Java Persistence API was implemented by Apache.<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "pub-0027690166824672";
/* 468x60, created 10/7/08 */
google_ad_slot = "3114106509";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>David Pattonhttp://www.blogger.com/profile/14901518018421175021noreply@blogger.com0tag:blogger.com,1999:blog-7515706.post-1152836961336281282006-07-13T20:24:00.000-04:002006-07-13T20:29:21.623-04:00JSF and MyFacesI am going to develop a new site with JSF. I want to keep the code very clean and like a lot of the features. I am also checking out Apache's <a href="http://myfaces.apache.org/">MyFaces</a>. Has anyone used it in production? If so, I'd love to hear the pros and cons. I am also interested in the learning curve for both JSF and MyFaces. I will be blogging more about the quality of these technologies.<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "pub-0027690166824672";
/* 468x60, created 10/7/08 */
google_ad_slot = "3114106509";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>David Pattonhttp://www.blogger.com/profile/14901518018421175021noreply@blogger.com0tag:blogger.com,1999:blog-7515706.post-1146869289677506632006-05-05T18:45:00.001-04:002008-08-14T10:12:44.267-04:00Practices of an Agile Developer<iframe src="http://rcm.amazon.com/e/cm?t=softwarcrafts-20&o=1&p=8&l=as1&asins=097451408X&fc1=000000&IS2=1&lt1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr" style="width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe><br /><br />I recently attended a XPWDC meeting in which <a href="http://www.amazon.com/gp/product/097451408X?ie=UTF8&tag=softwarcrafts-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=097451408X">Practices of an Agile Developer: Working in the Real World (Pragmatic Programmers)</a><img src="http://www.assoc-amazon.com/e/ir?t=softwarcrafts-20&l=as2&o=1&a=097451408X" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" /> was discussed. It looks like an interesting follow-up to the Pragmatic Programmer series. If you have read it please leave a comment. I believe <a href="http://www.amazon.com/gp/product/020161622X?ie=UTF8&tag=softwarcrafts-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=020161622X">The Pragmatic Programmer: From Journeyman to Master</a><img src="http://www.assoc-amazon.com/e/ir?t=softwarcrafts-20&l=as2&o=1&a=020161622X" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" /> and <a href="http://www.amazon.com/gp/product/0201733862?ie=UTF8&tag=softwarcrafts-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=0201733862">Software Craftsmanship: The New Imperative</a><img src="http://www.assoc-amazon.com/e/ir?t=softwarcrafts-20&l=as2&o=1&a=0201733862" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" /> are both wonderful books and will be reading the Practices of an Agile Developer ASAP.<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "pub-0027690166824672";
/* 468x60, created 10/7/08 */
google_ad_slot = "3114106509";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>David Pattonhttp://www.blogger.com/profile/14901518018421175021noreply@blogger.com0tag:blogger.com,1999:blog-7515706.post-1141399339950954912006-03-03T10:20:00.000-05:002006-03-03T10:22:20.286-05:00Testing DataGrid inline editingHas anyone figured out how to test inline editing of a DataGrid with NUnitAsp? It appears that there is now aspid to reference the edit button on each row.<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "pub-0027690166824672";
/* 468x60, created 10/7/08 */
google_ad_slot = "3114106509";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>David Pattonhttp://www.blogger.com/profile/14901518018421175021noreply@blogger.com0tag:blogger.com,1999:blog-7515706.post-1140915744542275542006-02-25T19:56:00.000-05:002006-02-25T21:59:20.383-05:00Thycotic.TddStarterKitJust wanted to mention <a href="http://www.thycotic.com/dotnet_tddstarterkit.html">Thycotic.TddStarterKit</a> from <a href="http://www.thycotic.com/">Thycotic Software Ltd</a>. From the site:<br /><br /> <span style="font-style:italic;">Thycotic.TddStarterKit is a collection of useful tools and extensions for NUnit and NUnitAsp that solve some of our commonly encountered problems on TDD projects. It includes:</span><br /><br />One of the many useful methods I found was that instead of writing:<br /><br />Assert(Browser.CurrentPageText.IndexOf(expression) != -1);<br /><br />I can now write:<br /><br />AssertContains(Browser.CurrentPageText, expression);<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "pub-0027690166824672";
/* 468x60, created 10/7/08 */
google_ad_slot = "3114106509";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>David Pattonhttp://www.blogger.com/profile/14901518018421175021noreply@blogger.com0tag:blogger.com,1999:blog-7515706.post-1140275348318121902006-02-18T09:58:00.000-05:002006-02-18T13:54:02.406-05:00NUnitAsp Browser Headers?For many online applications it is necessary to set headers in the client. Has anyone figured out how to do this with the NUnitAsp Browser? <br /><br />Looks like the HttpClient class has only private methods for getting at the Request (which is where the headers are). Unfortunately many corporations need standard test harnesses so it isn't an option for me to just rewrite NUnitASP.<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "pub-0027690166824672";
/* 468x60, created 10/7/08 */
google_ad_slot = "3114106509";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>David Pattonhttp://www.blogger.com/profile/14901518018421175021noreply@blogger.com1tag:blogger.com,1999:blog-7515706.post-1140215394021701122006-02-17T17:28:00.000-05:002006-02-17T17:33:47.773-05:00Waterfall 2006For those looking for something to do on April 1st check out <a href="http://www.waterfall2006.com/">this</a>.<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "pub-0027690166824672";
/* 468x60, created 10/7/08 */
google_ad_slot = "3114106509";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>David Pattonhttp://www.blogger.com/profile/14901518018421175021noreply@blogger.com0tag:blogger.com,1999:blog-7515706.post-1133293295541916962005-11-29T14:28:00.000-05:002005-11-29T14:44:12.043-05:00Business Rules Discussion Group<span style=";font-family:arial;font-size:100%;" >I founded the Yahoo BizRules discussion group which you can join by clicking the button below. The group is moderated and is for discussion by Business and IT professionals of Business Rules Management Systems including but not limited to:<br /></span> <ul style="font-family:arial;"> <li><span style="font-size:100%;">Products</span></li><li><span style="font-size:100%;">Methodologies</span></li><li><span style="font-size:100%;">Projects</span></li><li><span style="font-size:100%;">Employment</span></li> </ul> <tt><center><a href="http://groups.yahoo.com/group/bizrules/join"><br /><img src="http://us.i1.yimg.com/us.yimg.com/i/yg/img/i/us/ui/join.gif" alt="Click here to join bizrules" border="0" /><br />Click to join bizrules</a><br /></center></tt><div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "pub-0027690166824672";
/* 468x60, created 10/7/08 */
google_ad_slot = "3114106509";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>David Pattonhttp://www.blogger.com/profile/14901518018421175021noreply@blogger.com0tag:blogger.com,1999:blog-7515706.post-1133291558695288372005-11-29T14:12:00.000-05:002005-12-07T13:56:34.896-05:00Quantitative FinanceI am interested in knowing about any application development (Java) projects that I can participate in which involve quantitative financial modeling (financial engineering). I am based in Washington, DC, have a PhD in Physics, and am familiar with the <a href="http://www.fixprotocol.org/">FIX</a> protocol (particularly FIXML) and <a href="http://www.xignite.com/">xignite</a>.<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "pub-0027690166824672";
/* 468x60, created 10/7/08 */
google_ad_slot = "3114106509";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>David Pattonhttp://www.blogger.com/profile/14901518018421175021noreply@blogger.com0tag:blogger.com,1999:blog-7515706.post-1113506829555699902005-04-14T15:23:00.000-04:002005-04-14T15:27:09.556-04:00JUnit ExpectException AssertionIt would be very nice to have a method called assertExpectedException in JUnit. Syntax could be something like the following:<br /><br />assertExpectedException(ExceptionType, myobject.mymethod());<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "pub-0027690166824672";
/* 468x60, created 10/7/08 */
google_ad_slot = "3114106509";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>David Pattonhttp://www.blogger.com/profile/14901518018421175021noreply@blogger.com0tag:blogger.com,1999:blog-7515706.post-1113229183763598802005-04-11T10:16:00.000-04:002006-02-16T22:38:27.213-05:00Extreme Programming with Microsoft .NET TalkTonight I am giving a talk on XP with Microsoft.NET at the Washington, DC Area Extreme Programming Group. Here is the groups home page: http://groups.yahoo.com/group/XpWdc/<br /><br />The agenda is the following:<br /><br /> * <span style="font-weight:bold;">XP Practices</span><br /> Test First Design<br /> Continuous Integration<br /> Coding Standards<br /> Refactoring<br /> * <span style="font-weight:bold;">XP Tools</span><br /> NUnit<br /> NUnitASP<br /> CruiseControl.NET<br /> NAnt<br /> FxCop<br /> ReSharper<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "pub-0027690166824672";
/* 468x60, created 10/7/08 */
google_ad_slot = "3114106509";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>David Pattonhttp://www.blogger.com/profile/14901518018421175021noreply@blogger.com1tag:blogger.com,1999:blog-7515706.post-1088787898970315532004-07-02T12:58:00.003-04:002008-08-14T10:02:19.724-04:00ResourcesI strongly recommend that everyone read <a href="http://www.amazon.com/gp/product/0201733862?ie=UTF8&tag=softwarcrafts-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=0201733862">Software Craftsmanship: The New Imperative</a><img src="http://www.assoc-amazon.com/e/ir?t=softwarcrafts-20&l=as2&o=1&a=0201733862" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" /> by Pete McBreen, <a href="http://www.amazon.com/gp/product/020161622X?ie=UTF8&tag=softwarcrafts-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=020161622X">The Pragmatic Programmer: From Journeyman to Master</a><img src="http://www.assoc-amazon.com/e/ir?t=softwarcrafts-20&l=as2&o=1&a=020161622X" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" /> by Dave Thomas, and<br /><a href="http://www.amazon.com/gp/product/0201733862?ie=UTF8&tag=softwarcrafts-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=0201733862">Software Craftsmanship: The New Imperative</a><img src="http://www.assoc-amazon.com/e/ir?t=softwarcrafts-20&l=as2&o=1&a=0201733862" alt="" style="border: medium none ! important; margin: 0px ! important;" border="0" height="1" width="1" /> by Kent Beck.<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "pub-0027690166824672";
/* 468x60, created 10/7/08 */
google_ad_slot = "3114106509";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>David Pattonhttp://www.blogger.com/profile/14901518018421175021noreply@blogger.com0