<?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-7423420642881011389</id><updated>2011-11-27T15:37:44.433-08:00</updated><category term='Adobe'/><category term='Business'/><category term='Development'/><category term='General'/><category term='Podcast'/><category term='programming'/><category term='Mac'/><category term='.Net'/><category term='best practices'/><category term='Flex'/><category term='ColdSpring'/><category term='ASP'/><category term='Design'/><category term='CFUnited'/><category term='OO'/><category term='ColdFusion'/><category term='ASP .Net'/><category term='iPad Mac Apple'/><title type='text'>Smart PitBull™ Software</title><subtitle type='html'>ColdFusion, Flex, ASP .Net, C# development</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-5525900834074803879</id><published>2011-04-01T17:18:00.000-07:00</published><updated>2011-04-01T17:24:18.085-07:00</updated><title type='text'>I need your input on a new project</title><content type='html'>&lt;p&gt;I could use your input. Please take a minute to fill out this anonymous, &lt;a href="http://www.surveymonkey.com/s/MDFVC6L" target="_blank"&gt;four question survey&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Are you in debt? Maybe you could use the new Debt Snuggie (click the image). &lt;a href="http://www.youtube.com/watch?v=jzD5O4dAhcQ" target="_blank"&gt; &lt;img src="http://www.smartpitbull.com/Blog/image.axd?picture=2011%2f4%2fdebtSnuggie.jpg" alt="" width="500" /&gt; &lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-5525900834074803879?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/5525900834074803879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2011/04/i-need-your-input-on-new-project.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/5525900834074803879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/5525900834074803879'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2011/04/i-need-your-input-on-new-project.html' title='I need your input on a new project'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-2372738759268952870</id><published>2011-03-29T08:06:00.000-07:00</published><updated>2011-03-29T08:08:56.489-07:00</updated><title type='text'>Host a Site on a Server With a Dynamic IP</title><content type='html'>The objective: To host a Java-based application from a server located in my office. Sounds easy doesn't it? &lt;br /&gt;&lt;br /&gt;The problem is, if you do not have a static IP address it can be tricky. There are a number of sites that will do for you what I will outline, but there is just something about doing it yourself and having control over the entire process. That being said, if you do not have external hosting with database access, one of these services may be your only option. Another thing I should mention before we begin... &lt;br /&gt;&lt;br /&gt;This post has been moved to my new blog at &lt;a href="http://www.smartpitbull.com"&gt;www.smartpitbull.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-2372738759268952870?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/2372738759268952870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2011/03/host-site-on-server-with-dynamic-ip.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/2372738759268952870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/2372738759268952870'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2011/03/host-site-on-server-with-dynamic-ip.html' title='Host a Site on a Server With a Dynamic IP'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-3675793218918462906</id><published>2010-12-27T16:11:00.000-08:00</published><updated>2010-12-27T17:02:18.509-08:00</updated><title type='text'>Try/Catch Survey Results</title><content type='html'>I was about to write another blog post when I realized that I never posted the results of the survey. Thanks to all who participated.&lt;br /&gt;&lt;br /&gt;Question: When is it appropriate to use a Try/Catch (or equivalent) code block?&lt;br /&gt;&lt;br /&gt;Answers (responses/percentage):&lt;br /&gt;     1. never use them -- 0/0%&lt;br /&gt;     2. wrap code that has had a problem -- 1/3.7%&lt;br /&gt;     3. wrap code that makes external function calls -- 19/70.4%&lt;br /&gt;     4. wrap code that I'm unsure of -- 4/14.8%&lt;br /&gt;     5. wrap almost all code in a try/catch -- 1/3.7%&lt;br /&gt;     6. other (please specify) -- 2/7.4%&lt;br /&gt;          &lt;blockquote&gt;&lt;br /&gt;I use try/catch around code that - quite reasonably and outwith the control of my software - might fail. I usually rethrow an exception anyhow, but an exception type &amp; message specific to my application.&lt;br /&gt;&lt;br /&gt;For example a user-managed XML file might become invalid due to being malformed or not passing validation. I would not let the XML parser's own exception to bubble up, I'd catch it and raise my own "you have borked you XML file" exception.&lt;br /&gt;&lt;br /&gt;I do *not* use try catch to hide or ignore errors (or set "failed" status flags: bleah), I use them to tune them to my requirement or the situation at hand. &lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;hr style="margin:0px;padding:0px;"/&gt;&lt;br /&gt;          &lt;blockquote&gt;&lt;br /&gt;I normally put try/catches around webservice calls such as facebook, in case the response takes to long, otherwise on heavily hit sections of a website where there is a greater chance of a sql deadlock error&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-3675793218918462906?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/3675793218918462906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2010/12/trycatch-survey-results.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/3675793218918462906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/3675793218918462906'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2010/12/trycatch-survey-results.html' title='Try/Catch Survey Results'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-5256341753550112627</id><published>2010-10-15T15:14:00.001-07:00</published><updated>2010-10-15T15:20:26.061-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>The use of Try/Catch code</title><content type='html'>Another developer and myself have been discussing the appropriate use of Try/Catch when coding. So that I don't bias anyone, I'm going to hold off discussing my views on the subject for now. However, I am interested in other's guidelines for using a Try/Catch block so please take a moment and head over to my one-question survey at &lt;a href="http://www.surveymonkey.com/s/988STSP"&gt;http://www.surveymonkey.com/s/988STSP&lt;/a&gt; . I'll be posting the results and writing about how I use them in a future post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-5256341753550112627?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/5256341753550112627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2010/10/use-of-trycatch-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/5256341753550112627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/5256341753550112627'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2010/10/use-of-trycatch-code.html' title='The use of Try/Catch code'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-2201009446401937338</id><published>2010-05-09T15:17:00.000-07:00</published><updated>2010-05-09T19:49:20.560-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPad Mac Apple'/><title type='text'>iPad stand for $3</title><content type='html'>&lt;img style="float:left; margin:0 10px 10px 0;width: 200px;" src="http://1.bp.blogspot.com/_FGMGq_VwOuc/S-dj3Z06LKI/AAAAAAAAAHU/a02dtQDQ_fU/s200/ipad.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;My iPad arrived on Friday. I didn't order any accessories since I really didn't know what I would need or want. In the past, I have been a little purchase-crazy when buying a new laptop, PC or gadget. I purposed that this time would be different.&lt;br /&gt;&lt;br /&gt;On Saturday I took a little road trip and, of course, took my iPad with me. Right away it was clear I needed a case. &lt;img style="float:right; margin:0 0 10px 10px;width: 200px;" src="http://1.bp.blogspot.com/_FGMGq_VwOuc/S-dpv0JsXLI/AAAAAAAAAHs/B-Cc0OnQfKw/s200/iPodDoc.jpg" border="0" /&gt;A quick stop by the Mac Store and I had a &lt;a href="http://www.hardcandycases.com/ipad-hardsleeve.html"&gt;Hard Candy Hard Sleeve&lt;/a&gt; case. Since I already have a bluetooth keyboard that works perfectly with the iPad, I needed a stand. While at the Mac store, I looked at Apple's $30 dock and can only say, “What were they thinking?” With its tiny 2.5in. wide base it appears unstable and the inch high back seems like it could stress the dock connector. &lt;img style="float:right; margin:0 0 10px 10px;width: 133px;" src="http://1.bp.blogspot.com/_FGMGq_VwOuc/S-dwt2s8jWI/AAAAAAAAAH8/Uj77KNbyfw4/s200/iPadStand2.jpg" border="0" /&gt;I decided that I could do better, at least for my needs. A short quest led me to a small &lt;a href="http://www.officedepot.com/a/products/189002/Office-Depot-PlateSign-Holder-Clear/"&gt;plate holder&lt;/a&gt; at Office Depot for $2.99. &lt;img style="float:right; margin:0 0 10px 10px;width: 200px;" src="http://2.bp.blogspot.com/_FGMGq_VwOuc/S-dwtlzK2rI/AAAAAAAAAH0/RtSdgW7nbmE/s200/iPadStand1.jpg" border="0" /&gt;The dock cable can stay connected in both landscape and portrait positions. The only thing that could make it better is if it were hinged and folded flat so it could be easily carried.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-2201009446401937338?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/2201009446401937338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2010/05/ipad-stand-for-3.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/2201009446401937338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/2201009446401937338'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2010/05/ipad-stand-for-3.html' title='iPad stand for $3'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_FGMGq_VwOuc/S-dj3Z06LKI/AAAAAAAAAHU/a02dtQDQ_fU/s72-c/ipad.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-640885012635097918</id><published>2009-12-24T14:27:00.000-08:00</published><updated>2009-12-28T00:05:24.785-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Podcast'/><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP .Net'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>Podcasts Worth Listening To</title><content type='html'>&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 125px;" src="http://4.bp.blogspot.com/_FGMGq_VwOuc/SzhmOgFz6JI/AAAAAAAAAFI/eIqRAyUpXXM/s200/podcast2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5420194550858901650" /&gt;I was recently asked what podcasts I listen to.  I like to know what others listen to. So I thought I'd blog about my favorites.&lt;br /&gt;&lt;br style="clear:both;" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=”http://blog.stackoverflow.com/”&gt;Blog – Stack Overflow&lt;/a&gt;: For a weekly dose of ASP .Net information, check out this podcast by Joel Spolsky (&lt;a href=”http://www.joelonsoftware.com/”&gt;Joel on Software&lt;/a&gt;) and Jeff Atwood (&lt;a href=”http://www.codinghorror.com/blog/”&gt;Coding Horror&lt;/a&gt;). It covers a wide variety of topics of interest to developers and designers.  As of this post, the podcast was last updated on 12/23/2009.&lt;br /&gt;&lt;br /&gt;&lt;a href=”http://boagworld.com/”&gt;Boagworld Web Design Advice&lt;/a&gt;: If you are a designer, developer or a web site owner, you probably already know about this podcast. However for the one or two that may not, I highly recommend this weekly show by Paul Boag and Marcus Lillington, both of the UK based web design and development company &lt;a href=”http://www.headscape.co.uk/”&gt;Headscape&lt;/a&gt;. Paul and Marcus provide tons of useful information in an entertaining way. As of this post, the podcast was last updated on 12/11/2009.&lt;br /&gt;&lt;br /&gt;&lt;a href=”http://www.cfconversations.com/”&gt;CFConversations&lt;/a&gt;: &lt;a href=”http://www.brianmeloche.com/blog/index.cfm”&gt;Brian Meloche&lt;/a&gt; hosts a  ColdFusion podcast. He tons of interviews and round-table discussions. As of this post, the podcast was last updated on 11/19/09.&lt;br /&gt;&lt;br /&gt;&lt;a href=”http://www.theflexshow.com/blog/”&gt;The Flex Show&lt;/a&gt;: Flex developers will find plenty of  topics of interest in &lt;a href=”http://www.jeffryhouser.com/”&gt;Jeff Houser&lt;/a&gt; and &lt;a href=”http://johnwilker.com/”&gt;John Wilker's&lt;/a&gt; bi-weekly audio podcast and their screencasts. As of this post, the podcast was last updated on 12/23/2009.&lt;br /&gt;&lt;br /&gt;&lt;a href=”http://www.hanselminutes.com/default.aspx”&gt;Hanselminutes&lt;/a&gt;: Author, blogger and Microsoft employee &lt;a href=”http://www.hanselman.com/blog/”&gt;Scott Hanselman&lt;/a&gt; provides a lot of good content in his weekly podcast. Although mostly about ASP .Net, Scott also covers topics that will be of interest to developers in general. As of this post, the podcast was last updated on 12/11/2009.&lt;br /&gt;&lt;br /&gt;&lt;a href=”http://www.marshillchurch.org”&gt;Mars Hill Church&lt;/a&gt;: Speaking and preaching pastor &lt;a href=”http://http://www.marshillchurch.org/markdriscoll”&gt;Mark Driscoll&lt;/a&gt; is always thought-provoking. Mars Hill Church takes the &lt;a href=”http://www.allaboutjesuschrist.org/the-great-commission.htm”&gt;Great Commission&lt;/a&gt; serious and gives feet to their faith. As of this post, the podcast was last updated on 12/23/2009.&lt;br /&gt;&lt;br /&gt;&lt;a href=”http://www.dotnetrocks.com”&gt;.Net Rocks&lt;/a&gt;: This is one of the longest running podcasts I'm aware of. Focused on the .Net framework, &lt;a href=”http://www.intellectualhedonism.com”&gt;Carl Franklin&lt;/a&gt; and &lt;a href=”http://www.campbellassociates.ca/blog/default.aspx”&gt;Richard Campbell&lt;/a&gt; are always entertaining and informative in their weekly podcast.  As of this post, the podcast was last updated on 12/23/2009.&lt;br /&gt;&lt;br /&gt;&lt;a href=”http://polymorphicpodcast.com/”&gt;Polymorphic Podcast&lt;/a&gt;: Author, developer and Microsoft ASP .Net MVP &lt;a href=”http://weblogs.asp.net/craigshoemaker/”&gt;Craig Shoemaker&lt;/a&gt; provides a good variety of information on OO development and software architecture in his podcast. Although there doesn't seem to be a regular schedule, it is worth a listen.  As of this post, the podcast was last updated on 12/1/2009.&lt;br /&gt;&lt;br /&gt;&lt;a href=”http://www.pragprog.com/podcasts”&gt;Pragmatic Podcast&lt;/a&gt;: As a part of the &lt;a href=”http://www.pragprog.com”&gt;Pragmatic Bookshelf&lt;/a&gt; it compliments the book series nicely. It's publishing scheduler is sporadic, but there is a large selection of podcasts already online online.  As of this post, the podcast was last updated on 7/1/09.&lt;br /&gt;&lt;br /&gt;&lt;a href=”http://www.sitepoint.com/blogs/category/podcast/”&gt;SitePoint Podcast&lt;/a&gt;: SitePoint introduced the podcast to their list of developer and designer resources on November 10, 2008. Starting out with a bi-weekly schedule, it is now published weekly.  Host &lt;a href=”http://www.sitepoint.com/articlelist/48/”&gt;Kevin Yank&lt;/a&gt;, a long term SitePoint author, offers a wide range of topics.   As of this post, the podcast was last updated on 12/20/2009.&lt;br /&gt;&lt;br /&gt;&lt;a href=”http://www.se-radio.net/”&gt;Software Engineering Radio&lt;/a&gt;:  Covering a wide range of software topic, this podcast is clearly for the developer. Their topics are covered with a focus of being a resource instead of a current events type show.   As of this post, the podcast was last updated on 12/14/2009.&lt;br /&gt;&lt;br /&gt;&lt;a href=”http://www.webdevradio.com/”&gt;WebDev Radio&lt;/a&gt;: Entrepreneur, developer, writer and teacher &lt;a href=”http://michaelkimsal.com/blog/”&gt;Michael Kimsal&lt;/a&gt; covers a range of topics that will interest developers using a variety of languages.  As of this post, the podcast was last updated on 12/17/2009.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-640885012635097918?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/640885012635097918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/12/podcasts-worth-listening-to.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/640885012635097918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/640885012635097918'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/12/podcasts-worth-listening-to.html' title='Podcasts Worth Listening To'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_FGMGq_VwOuc/SzhmOgFz6JI/AAAAAAAAAFI/eIqRAyUpXXM/s72-c/podcast2.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-3714324984063014976</id><published>2009-12-12T18:28:00.000-08:00</published><updated>2009-12-12T20:58:54.456-08:00</updated><title type='text'>Working From Home: 7 weeks in</title><content type='html'>&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 213px;" src="http://2.bp.blogspot.com/_FGMGq_VwOuc/SyRlk91QAxI/AAAAAAAAAEc/TBMmvVb1ZEs/s320/WorkFromHome.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5414564337753785106" /&gt;&lt;br /&gt;It has been seven weeks that I have been working from home. I have been able to focus on my project which has caused a big jump in productivity. But, the last few weeks have not been without a few surprises.&lt;br /&gt;&lt;br /&gt;I was concerned that the inevitable distractions of home would be a problem. I was surprised that they simply do not exist. This has been a pleasant surprise. I think the bottom line is that I really love what I do and, if given a choice, would not do anything else. &lt;br /&gt;&lt;br /&gt;I sort of miss having co-workers. I have always felt that I could move to the middle of nowhere and, so long as I had broadband, I would be fine. I miss the cheerleaders, those co-workers that are always upbeat and you feel better after talking to them.&lt;br /&gt;&lt;br /&gt;Overall, it has been a very positive experience and I would recommend it to anyone that has the opportunity. Make sure to pay attention to Dan Wilson's advice though, "Make sure to invest in having a proper environment. You'll need a comfortable and useful desk, positioned in the best, most distraction free part of the house."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-3714324984063014976?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/3714324984063014976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/12/working-from-home-7-weeks-later.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/3714324984063014976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/3714324984063014976'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/12/working-from-home-7-weeks-later.html' title='Working From Home: 7 weeks in'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_FGMGq_VwOuc/SyRlk91QAxI/AAAAAAAAAEc/TBMmvVb1ZEs/s72-c/WorkFromHome.jpg' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-6567276559598667513</id><published>2009-10-21T13:32:00.000-07:00</published><updated>2009-10-22T06:36:54.932-07:00</updated><title type='text'>New working environment</title><content type='html'>&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 100px; height: 127px;" src="http://www.smartpitbull.com/images/computer.jpg" border="0" alt="" /&gt;The company I have been with for the last 17 years formed a new software company this year and I was asked to help lead the development side of things. The organizational structure is such that we don’t require central offices. Those of us involved in the day-to-day operations each have offices in our homes. Working at home is nothing new for me since I, as many of us do, take the occasional side job. Starting next week however, I will be using my home as my primary workplace. So I started wondering what others feel about working from home.&lt;br /&gt; &lt;br /&gt;Do you work from home? What do you like or dislike about working from home? What challenges have you faced and how did you overcome them? Is the lack of contact with coworkers a problem?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-6567276559598667513?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/6567276559598667513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/10/new-working-environment.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/6567276559598667513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/6567276559598667513'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/10/new-working-environment.html' title='New working environment'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-5057637546933012700</id><published>2009-06-16T18:56:00.000-07:00</published><updated>2009-06-16T18:59:37.957-07:00</updated><title type='text'>iPhone Tweetdeck</title><content type='html'>If, like I did, you find the Tweetdeck site grinding to a halt and unable to find it by searching on iTunes, you can click the link below and it will take you directly to it at the iTunes store.&lt;br /&gt;&lt;br /&gt;&lt;a href="itms://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=318518757&amp;mt=8&amp;s=143441"&gt;iPhone Tweetdeck&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-5057637546933012700?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/5057637546933012700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/06/iphone-tweetdeck.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/5057637546933012700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/5057637546933012700'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/06/iphone-tweetdeck.html' title='iPhone Tweetdeck'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-1892950511783470686</id><published>2009-06-02T21:32:00.000-07:00</published><updated>2009-06-03T07:36:07.319-07:00</updated><title type='text'>Design Patterns - Strategy Pattern</title><content type='html'>So for the last couple weeks, I have been learning about design patterns. I am admittedly &lt;em&gt;not&lt;/em&gt; an expert or even  sure I know what I'm doing so I'm hoping that if anything is incorrect, or could be improved, that a comment will be left.&lt;br /&gt;&lt;br /&gt;The first pattern that I have read about is the Strategy pattern. Below is the UML diagram for a sample application I'm writing.&lt;br /&gt;&lt;br /&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 546px; height: 436px;" src="http://www.smartpitbull.com/images/StrategyPattern.jpg" border="0" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;The point to the strategy pattern is to create a class with the attributes and methods that do not change together, but make provisions to easily add methods that implement a common interface but can yield different behavior. The Vehicle class is an abstract that is never instantiated. Instead, the classes GoCart and ModelCar will be subclasses of Vehicle and can contain methods specific for them.  A go-cart can drive and turn but most plastic model cars usually don't. Each class can have a Year, Make and Model but there is some difference in how the implementation for drive and turn needs to happen. As you will see we can even change these behaviors at run-time.&lt;br /&gt;&lt;br /&gt;Enough jabbering, here's some code. I'm using Flex and AS3 but it should be fairly easy to code it in any language.&lt;br /&gt;&lt;br /&gt;This is my abstract class from which the concrete classes will extend.&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;strong&gt;Vehicle.as&lt;/strong &gt;&lt;br/&gt;&lt;br /&gt;package Strategy&lt;br /&gt;{&lt;br /&gt; public class Vehicle&lt;br /&gt; {&lt;br /&gt;  import Strategy.DriveBehavior;&lt;br /&gt;  &lt;br /&gt;  public function Vehicle()&lt;br /&gt;  {&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  private var _year:int = 0;&lt;br /&gt;  private var _make:String = '';&lt;br /&gt;  private var _model:String = '';&lt;br /&gt;  private var _driveBehavior:DriveBehavior;&lt;br /&gt;  private var _turnBehavior:TurnBehavior;&lt;br /&gt;  &lt;br /&gt;  /* Accessors */&lt;br /&gt;  public function setYear(year:int):void {&lt;br /&gt;   _year = year;&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  public function getYear():int {&lt;br /&gt;   return _year;&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  /* Other Getters and Setters Here */&lt;br /&gt;  &lt;br /&gt;  public function setDriveBehavior(behavior:DriveBehavior):void {&lt;br /&gt;   _driveBehavior = behavior;&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  public function setTurnBehavior(behavior:TurnBehavior):void {&lt;br /&gt;   _turnBehavior = behavior;&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  /* Functions */&lt;br /&gt;  public function performDrive(){&lt;br /&gt;   return _driveBehavior.Drive();&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  public function performTurn(){&lt;br /&gt;   return _turnBehavior.Turn();&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;These are the concrete classes, an extension of the Vehicle class. It is in these classes that I set the default behavior for Turn and Drive.&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;strong&gt;GoCart.as&lt;/strong&gt;&lt;br/&gt;&lt;br /&gt;package Strategy&lt;br /&gt;{&lt;br /&gt; public class GoCart extends Vehicle&lt;br /&gt; {  &lt;br /&gt;  public function GoCart()&lt;br /&gt;  {&lt;br /&gt;   super.setDriveBehavior(new RearDrive());&lt;br /&gt;   super.setTurnBehavior(new TurnFront());&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;strong&gt;ModelCar.as&lt;/strong&gt;&lt;br/&gt;&lt;br /&gt;package Strategy&lt;br /&gt;{&lt;br /&gt; public class ModelCar extends Vehicle&lt;br /&gt; {  &lt;br /&gt;  public function ModelCar()&lt;br /&gt;  {&lt;br /&gt;   super.setDriveBehavior(new NoDrive());&lt;br /&gt;   super.setTurnBehavior(new NoTurn());&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;Here are my two interfaces for the behaviors used to define the required functions that any of the behavior classes must implement.&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;strong&gt;DriveBehavior.as&lt;/strong&gt;&lt;br/&gt;&lt;br /&gt;package Strategy&lt;br /&gt;{&lt;br /&gt; public interface DriveBehavior&lt;br /&gt; {&lt;br /&gt;  function Drive():String;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;strong&gt;TurnBehavior.as&lt;/strong&gt;&lt;br/&gt;&lt;br /&gt;package Strategy&lt;br /&gt;{&lt;br /&gt; public interface TurnBehavior&lt;br /&gt; {&lt;br /&gt;  function Turn():String;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;For the behaviors, I'll post one for each of the interfaces. They simply return a string indicating that the behavior is active.&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;strong&gt;RearDrive.as&lt;/strong&gt;&lt;br/&gt;&lt;br /&gt;package Strategy&lt;br /&gt;{&lt;br /&gt; public class RearDrive implements DriveBehavior &lt;br /&gt; {&lt;br /&gt;  public function RearDrive()&lt;br /&gt;  {&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  public function Drive():String {&lt;br /&gt;   return "Driving using the back wheels.";&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;strong&gt;TurnFront.as&lt;/strong&gt;&lt;br/&gt;&lt;br /&gt;package Strategy&lt;br /&gt;{&lt;br /&gt; public class TurnFront implements TurnBehavior&lt;br /&gt; {&lt;br /&gt;  public function TurnFront()&lt;br /&gt;  {&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  public function Turn():String {&lt;br /&gt;   return "Turning from the front."&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;Now for the code that pulls it all together. &lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;strong&gt;DesignPatters.mxml&lt;/strong&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()"&amp;gt;&lt;br /&gt; &amp;lt;mx:Script&gt;&lt;br /&gt;  &lt;![CDATA[&lt;br /&gt;   import Strategy.GoCart;&lt;br /&gt;   import Strategy.RearDrive;&lt;br /&gt;   import Strategy.FrontDrive;&lt;br /&gt;   import Strategy.NoTurn;&lt;br /&gt;   import Strategy.TurnFront;&lt;br /&gt;  &lt;br /&gt;   private var myGoCart:GoCart = new GoCart();&lt;br /&gt;   &lt;br /&gt;   private function init():void {&lt;br /&gt;    AutoYear.text = myGoCart.getYear().toString();&lt;br /&gt;    AutoMake.text = myGoCart.getMake();&lt;br /&gt;    AutoModel.text = myGoCart.getModel(); &lt;br /&gt;    AutoDrive.text = "---";&lt;br /&gt;    AutoTurn.text = "---"; &lt;br /&gt;    myGoCart.setDriveBehavior(new RearDrive());&lt;br /&gt;    myGoCart.setTurnBehavior(new TurnFront());  &lt;br /&gt;   }&lt;br /&gt;   &lt;br /&gt;   private function setValues():void {&lt;br /&gt;    myGoCart.setYear(2002);&lt;br /&gt;    myGoCart.setMake("Home-Built");&lt;br /&gt;    myGoCart.setModel("Racer");&lt;br /&gt;    AutoYear.text = myGoCart.getYear().toString();&lt;br /&gt;    AutoMake.text = myGoCart.getMake();&lt;br /&gt;    AutoModel.text = myGoCart.getModel();&lt;br /&gt;    AutoDrive.text = myGoCart.performDrive();&lt;br /&gt;    AutoTurn.text = myGoCart.performTurn();&lt;br /&gt;   }&lt;br /&gt;   &lt;br /&gt;   private function changeBehavior():void {&lt;br /&gt;    myGoCart.setDriveBehavior(new FrontDrive());&lt;br /&gt;    myGoCart.setTurnBehavior(new NoTurn());&lt;br /&gt;   }&lt;br /&gt;   &lt;br /&gt;  ]]&gt;&lt;br /&gt; &amp;lt;/mx:Script&amp;gt;&lt;br /&gt; &lt;br /&gt; &amp;lt;mx:Panel width="200" height="300"&amp;gt;&lt;br /&gt;  &amp;lt;mx:Label text="Go Cart"/&amp;gt;&lt;br /&gt;  &amp;lt;mx:Label id="AutoYear"/&amp;gt;&lt;br /&gt;  &amp;lt;mx:Label id="AutoMake"/&amp;gt;&lt;br /&gt;  &amp;lt;mx:Label id="AutoModel"/&amp;gt;&lt;br /&gt;  &amp;lt;mx:Label id="AutoDrive"/&amp;gt;&lt;br /&gt;  &amp;lt;mx:Label id="AutoTurn"/&amp;gt;&lt;br /&gt;  &amp;lt;mx:Button label="Show Values" click="setValues()" /&amp;gt;&lt;br /&gt;  &amp;lt;mx:Button label="Change Behavior" click="changeBehavior()" /&amp;gt;&lt;br /&gt; &amp;lt;/mx:Panel&amp;gt;&lt;br /&gt;&amp;lt;/mx:Application&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;This just imports the appropriate classes, initializes an instance of the GoCart class and shows a default display in a panel. Click the Show Values button and the labels are populated with the Year, Make, Model and the two default behaviors. Clicking the Change Behavior button calls a function that modifies that default behavior. Again click the Show Values button to see the changes. &lt;br /&gt;&lt;br /&gt;&lt;img style="margin:0 10px 10px 0;" src="http://www.smartpitbull.com/images/StrategyPanel.jpg" border="0" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Not too exciting but it was an interesting exercise. Again, I'm doing this as a learning exercise so I appreciate any comments you may have and if I have it completely wrong, please feel free to set me straight. :)&lt;br /&gt;&lt;br /&gt;If you are interested, you can &lt;a href="http://www.smartpitbull.com/images/Strategy.zip"&gt;download the files&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-1892950511783470686?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/1892950511783470686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/06/so-for-last-couple-weeks-i-have-been.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/1892950511783470686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/1892950511783470686'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/06/so-for-last-couple-weeks-i-have-been.html' title='Design Patterns - Strategy Pattern'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-3969417639084662447</id><published>2009-05-17T20:06:00.000-07:00</published><updated>2009-05-17T20:30:34.879-07:00</updated><title type='text'>New Logo Survey</title><content type='html'>My graphic artists asked that I run a second logo survey. Please vote for your favorite logo over on the right.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.smartpitbull.com/images/logos.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 600px; height: 296px;" src="http://www.smartpitbull.com/images/logos.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-3969417639084662447?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/3969417639084662447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/05/new-logo-survey.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/3969417639084662447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/3969417639084662447'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/05/new-logo-survey.html' title='New Logo Survey'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-1548068808058864807</id><published>2009-05-17T19:05:00.000-07:00</published><updated>2009-05-17T19:44:45.483-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>New start-up now a reality</title><content type='html'>&lt;a href="http://www.onlinerme.com"&gt;OnlineRME&amp;trade; LLC&lt;/a&gt;, a new start-up company that I have been working to help bring about is now a reality. Although it is a software company, it serves a very specific niche market - County Health Regulatory Departments. &lt;br /&gt;&lt;br /&gt;For the past 16+ years I have worked for &lt;a href="http://www.orenco.com"&gt;Orenco Systems&amp;reg;, Inc.&lt;/a&gt;, the industry leader in Onsite Septic Systems. I know, it doesn't sound very glorious but the technology that we have introduced to the market is truly astounding. One of our company's goals, is to have a positive influence on the industry and the environment. A major part of our contribution to the industry is a software suite that allows service providers, of onsite systems, manage their businesses more efficiently. About two years ago, we began to develop a set of software tools that would do the same for jurisdictions (national, state, county or local). &lt;br /&gt;&lt;br /&gt;Several months back, we discovered another company that was developing some tools that were remarkably similar to ours. We engaged in talks, came to an agreement and the principles of that company, with Orenco Systems&amp;reg;, joined to form OnlineRME, LLC. We expect to be releasing our first product very soon. I'm very excited and the current outlook, especially in this economy, could not be better.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-1548068808058864807?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/1548068808058864807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/05/new-start-up-now-reality.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/1548068808058864807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/1548068808058864807'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/05/new-start-up-now-reality.html' title='New start-up now a reality'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-1782492646604660547</id><published>2009-03-24T20:58:00.000-07:00</published><updated>2009-03-25T06:33:14.567-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>Presentation Files for Overview of Data Grids in CF and Flex</title><content type='html'>Thanks to all who came out to the MVCFUG meeting tonight. &lt;br /&gt;&lt;br /&gt;I've put the presentation files together in a &lt;a href="http://www.smartpitbull.com/linkedFiles/MVCFUGPreso.zip"&gt;package (3Mb file)&lt;/a&gt;. I've also included a script that can be used on a MS SQL server to install the sample data for the grids. &lt;br /&gt;&lt;br /&gt;If you run into trouble with the files or have questions, please feel free to drop me a line.&lt;br /&gt;&lt;br /&gt;twitter: &lt;a href="www.twitter.com/mharman"&gt;www.twitter.com/mharman&lt;/a&gt;&lt;br /&gt;email: mike.harman.developer (at) gmail.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-1782492646604660547?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/1782492646604660547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/03/presentation-files-for-overview-of-data.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/1782492646604660547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/1782492646604660547'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/03/presentation-files-for-overview-of-data.html' title='Presentation Files for Overview of Data Grids in CF and Flex'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-7955109945854158972</id><published>2009-03-16T18:23:00.000-07:00</published><updated>2009-03-17T19:45:06.837-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Business'/><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>New Logo</title><content type='html'>Last year I was advised to change my business name. I settled on the name SmartPitbull Software. Now it's time for a new logo and this is where I can use some help. Below are four rough-draft logos my graphic artist sent to me. I would like to know which of these four you like better. He will be sending three more logos and I will be seeking your opinion on those as well. You may cast your vote on the right side of the screen and if you would like, comment on this post. All opinions are appreciated. The Pit Bull, which is two words now, will need to be made into a single word to match the name.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.smartpitbull.com/images/LogoSurvey.jpg" width="600"/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-7955109945854158972?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/7955109945854158972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/03/new-logo.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/7955109945854158972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/7955109945854158972'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/03/new-logo.html' title='New Logo'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-7512792895238288886</id><published>2009-03-15T12:03:00.000-07:00</published><updated>2009-03-16T11:57:46.134-07:00</updated><title type='text'>Cloning Data</title><content type='html'>I'm in the process of preparing a presentation on using various data grids and I came upon an interesting issue. I'm new to Flex and have not fully explored AS3 - in other words I'm a bit of a noob. I want to bring data into my Flex application from a Remote Object and assign the data to two bindable data variables. Variable#1 would be bound to grid#1 and variable#2 would be bound to grid#2. This was my initial approach:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;font-size:18px;"&gt;CFC&lt;/span&gt;&lt;br /&gt;&lt;iframe src="http://www.smartpitbull.com/codeSnippets/CFCCode1.txt" width="650" height="300" style="background-color:#8FAADD"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;font-size:18px;"&gt;Flex&lt;/span&gt;&lt;br /&gt;&lt;iframe src="http://www.smartpitbull.com/codeSnippets/DataClone1.txt" width="650" height="300" style="background-color:#8FAADD"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;The problem with this approach is that when the grid is rendered, if you make a change to one grid, the other automatically changes as well. For example, if you change the sort order in one grid, the sort order in the other grid will also change. This is not what I am wanting. It quickly became clear to me that this is because both gridData1 and gridData2 are references to the same data. So the question is, how do I create separate instances of the data and assign each instance to a separate variable?&lt;br /&gt;&lt;br /&gt;My solution is to modify the CFC and create a array of structures from the query. An array is then passed back to Flex, not an ArrayCollection. This allows me to create a new temporary variable of type Array and assign the result to it, then create a new instance of an ArrayCollection with the temporary variable passed in the constructor. This will work for my presentation, however as Paul, a friend of mine, pointed out, on a large record set, the overhead to process the records into an array is expensive and would not be a good option. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;font-size:18px;"&gt;New CFC Function&lt;/span&gt;&lt;br /&gt;&lt;iframe src="http://www.smartpitbull.com/codeSnippets/NewFunction1.txt" width="650" height="250" style="background-color:#8FAADD"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;font-size:18px;"&gt;Flex Changes&lt;/span&gt;&lt;br /&gt;&lt;iframe src="http://www.smartpitbull.com/codeSnippets/FlexChanges1.txt" width="650" height="300" style="background-color:#8FAADD"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;There may be a better way of doing this, in fact I'm almost positive there is. If you have a better way, please post, I'm interested in how others are solving this problem.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#E48701;font-weight:bold;font-size:18px;"&gt;UPDATE&lt;/span&gt;&lt;br /&gt;Thanks to &lt;a href="http://blog.kukiel.net/"&gt;Paul Kukiel&lt;/a&gt; and the &lt;a href="http://ntt.cc"&gt;Ntt.cc&lt;/a&gt; site, I have implemented a solution in a different way. Instead of processing the data in the CFC, I use the following code to process it in my event handler in Flex:&lt;br/&gt;&lt;br /&gt;&lt;iframe src="http://www.smartpitbull.com/codeSnippets/newWay1.txt" width="650" height="200" style="background-color:#8FAADD"&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-7512792895238288886?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/7512792895238288886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/03/cloning-data.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/7512792895238288886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/7512792895238288886'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/03/cloning-data.html' title='Cloning Data'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-6597055208750961542</id><published>2009-02-28T18:39:00.000-08:00</published><updated>2009-02-28T22:32:23.343-08:00</updated><title type='text'>Do you pimp your laptop?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_FGMGq_VwOuc/San28-zXuII/AAAAAAAAACc/8Tho-oiFUy4/s1600-h/photo-1.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://2.bp.blogspot.com/_FGMGq_VwOuc/San28-zXuII/AAAAAAAAACc/8Tho-oiFUy4/s200/photo-1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5308045163343886466" /&gt;&lt;/a&gt;&lt;br /&gt;I've never been one to do mods or apply stickers to my laptops. This may sound silly, but reselling the laptop when I upgrade to a new one is always in the back of my mind. But my new laptop is a MacPro with an aluminum enclosure and, having recently found some stickers from Adobe, I decided to declare my support for the technologies I use most often. My question is, do you pimp your laptop? If so, what do you do?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-6597055208750961542?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/6597055208750961542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/02/do-you-pimp-your-laptop.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/6597055208750961542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/6597055208750961542'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/02/do-you-pimp-your-laptop.html' title='Do you pimp your laptop?'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_FGMGq_VwOuc/San28-zXuII/AAAAAAAAACc/8Tho-oiFUy4/s72-c/photo-1.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-5854121401292546298</id><published>2009-02-23T21:11:00.000-08:00</published><updated>2009-02-23T21:54:11.019-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><title type='text'>A wonderful opportunity from Adobe</title><content type='html'>Economies are cyclic. That's a fact and little consolation if you are one of the unfortunate causalities of the recent recession. If &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_FGMGq_VwOuc/SaOFZHz7sMI/AAAAAAAAACU/LzU1IrBHIcU/s1600-h/Fx.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 100px; height: 100px;" src="http://1.bp.blogspot.com/_FGMGq_VwOuc/SaOFZHz7sMI/AAAAAAAAACU/LzU1IrBHIcU/s320/Fx.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5306231452612669634" /&gt;&lt;/a&gt;however, you have found yourself laid off, one of the most important ways to invest your time is to prepare for when the economy turns around. The folks over at Adobe are trying to help. Posted this morning by &lt;a href="http://www.terrenceryan.com"/&gt;Terrence Ryan&lt;/a&gt; and again this evening by &lt;a href="http://blog.digitalbackcountry.com/"&gt;Ryan Stewart&lt;/a&gt;: "If you've been laid off recently and are interested in Flex &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_FGMGq_VwOuc/SaOFRAH2-iI/AAAAAAAAACM/CGdGgICG7OU/s1600-h/adobe-logo.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 100px; height: 100px;" src="http://4.bp.blogspot.com/_FGMGq_VwOuc/SaOFRAH2-iI/AAAAAAAAACM/CGdGgICG7OU/s320/adobe-logo.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5306231313109809698" /&gt;&lt;/a&gt;development, let me know. We can help." So if you find yourself with a lot of time on your hands due to being laid off and have thought about learning to develop software using industry leading tools, now is your chance. Head over to Terrence's or Ryan's site or if you're on Twitter shoot them a message for details. Remember, economies are cyclic also means it's going to get better.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-5854121401292546298?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/5854121401292546298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/02/wonderful-opportunity-from-adobe.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/5854121401292546298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/5854121401292546298'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/02/wonderful-opportunity-from-adobe.html' title='A wonderful opportunity from Adobe'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_FGMGq_VwOuc/SaOFZHz7sMI/AAAAAAAAACU/LzU1IrBHIcU/s72-c/Fx.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-799993828070342748</id><published>2009-02-21T20:59:00.000-08:00</published><updated>2009-06-03T18:58:36.867-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>An Impressive Flex Chart Example</title><content type='html'>One of the goals I have set for myself this year is to become a better &lt;a href="http://www.adobe.com/products/flex/?promoid=BPDEQ"&gt;Flex&lt;/a&gt; developer (yes, I know this goal is not particularly measurable). Because of a need on a specific project, I have been delving into the Flex's data visualization. Below is one of the examples from the &lt;a href="http://livedocs.adobe.com/flex/3/html/help.html?content=Part7_DataVis_1.html"&gt;Data Visualization Developer's Guide&lt;/a&gt; that impresses me. For those that may be interested, here is the &lt;a href="http://www.smartpitbull.com/chartExample01/srcview/source/ChartDrillDown11.mxml.html" target="_blank"&gt;source code&lt;/a&gt;.&lt;br/&gt;&lt;br /&gt;&lt;iframe src="http://www.smartpitbull.com/chartExample01/chartDrillDown11.html" width="600" height="450"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-799993828070342748?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/799993828070342748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/02/one-of-goals-i-have-set-for-myself-this.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/799993828070342748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/799993828070342748'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2009/02/one-of-goals-i-have-set-for-myself-this.html' title='An Impressive Flex Chart Example'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-2161426478851932286</id><published>2008-12-14T15:38:00.000-08:00</published><updated>2008-12-31T06:59:02.785-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><category scheme='http://www.blogger.com/atom/ns#' term='Design'/><title type='text'>Getting Design Signoff</title><content type='html'>&lt;p style="clear: both"&gt;As developers, many of us, at one time or another, take on the role of designer. When doing so, getting our customer to finalize and agree on a design and then stick with their decision can turn into a frustrating process. &lt;a href="http://www.boagworld.com/" target="_blank"&gt;Paul Boag&lt;/a&gt;, one of my favorite designers, has some good insight on this in his presentation, "&lt;a href="http://events.carsonified.com/fowd/2008/newyork/videos/paul-boag/" target="_blank"&gt;Educating Clients to Say Yes&lt;/a&gt;". Paul discusses some steps we can take to increase the chances of getting customers to sign off on the design.&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;/p&gt;&lt;br /&gt;&lt;h2&gt;Educating Clients to Say Yes&lt;/h2&gt;&lt;br /&gt;&lt;span style=" display: inline; float: left; margin: 0 10px 10px 0;"&gt;&lt;object type="application/x-shockwave-flash" height="332" data="http://www.viddler.com/player/996f4895/" width="400"&gt;&lt;param name="id" value="viddler_996f4895"&gt;&lt;param name="allowScriptAccess" value="never"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="src" value="http://www.viddler.com/player/996f4895/"&gt;&lt;param name="name" value="viddler_996f4895"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;/object&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-2161426478851932286?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/2161426478851932286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/12/getting-design-signoff.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/2161426478851932286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/2161426478851932286'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/12/getting-design-signoff.html' title='Getting Design Signoff'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-2778181670609956100</id><published>2008-12-02T15:15:00.000-08:00</published><updated>2008-12-30T15:37:39.768-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OO'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdSpring'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>Next Stop - ColdSpring</title><content type='html'>In my last blog post, I mentioned that I was going to be spending time reading how others have applied OO principles to ColdFusion. Naturally, my reading led me to various frameworks used with ColdFusion to accomplish and/or manage some of the tasks that I have been performing manually. Tasks such as instantiating and managing data access objects (DAO) and other business logic CFCs. I usually create these as &lt;a href="http://en.wikipedia.org/wiki/Singleton_pattern" target="_blank"&gt;singletons&lt;/a&gt; and assign them to a variable in the application scope. Performing these tasks manually has not been much of a challenge since most applications I have been required to develop have been simple. Now however, a couple friends and myself are going to start a project that is likely going to become complex and could benefit from OO principles. This being the case, I began to research what other developers were doing to create and manage their objects.&lt;br /&gt;&lt;br /&gt;I have been aware of the concept of object factories for some time, it is an object that has one purpose, to create other objects. I have worked with them in the past, mostly when modifying code that had been developed by outside developers. Since this new project will make use of a number of objects, an object factory seems to be a good choice. A popular object factory framework for ColdFusion is &lt;a href="http://www.coldspringframework.org/" target="_blank"&gt;ColdSpring&lt;/a&gt;. ColdSpring handles the object creation and &lt;a href="http://en.wikipedia.org/wiki/Dependency_Injection" target="_blank"&gt;dependancy injections&lt;/a&gt; behind the scenes. Objects will be created when needed and if it has a dependency, that object will be created if it does not already exist. So, ColdSpring will be incorporated into the architecture of our application.&lt;br /&gt;&lt;br /&gt;The next step is to write a small test application to see if I understand all that I have read. So I created an application that uses a ini file to contain some user adjustable settings, a cfc to load and manage these settings, a user object to interact with and some sort of page to provide some output. So I downloaded ColdSpring and read the quick start guide. Installation could not have been easier, I created a directory called ColdSpring in my web-root and unzipped the files into that directory. Next, I created my settings file - settings.ini.cfm.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;settings.ini.cfm&lt;/b&gt;&lt;br /&gt;&amp;lt;!---&lt;br /&gt;[settings]&lt;br /&gt;dsn=testDatasource&lt;br /&gt;rootURL=http://localhost/TestApp/&lt;br /&gt;dbtype=mssql&lt;br /&gt;tableprefix=testApp_&lt;br /&gt;title=Test Application&lt;br /&gt;adminEmail=admin@ myDomain.com&lt;br /&gt;sysadminEmail=sysadmin@myDomain.com&lt;br /&gt;---&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here, I define my datasource, and some other settings that are boilerplate. Then I created my settings object that will read and manage the settings.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;settings.cfc&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;a href="http://www.harmanscomputerservices.com/images/settingscfc.jpg" target="_blank"&gt;&lt;img src="http://www.harmanscomputerservices.com/images/settingscfc.jpg" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Here I have two functions, one to initialize the object and another that reads the settings file and returns the result as a structure representing the ini file. Now, I have my settings and a way to read them. Next I needed to incorporate ColdSpring. I need to create a ColdSpring.xml file that defines my objects and the relationships that exist between them.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;ColdSpring.xml&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;a href="http://www.harmanscomputerservices.com/images/coldspringxml.jpg" target="_blank"&gt;&lt;img src="http://www.harmanscomputerservices.com/images/coldspringxml.jpg" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This file informs ColdSpring about my objects and how they are connected. The first bean is the settings cfc that we just created. The other bean is the user cfc that we'll create in a moment however, since the user bean will interact with the database, it needs access to the dsn which is one of the settings. This is done using the constructor-arg tag that injects the settings object into the user object. Now, lets create our user object.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;User.cfc&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;a href="http://www.harmanscomputerservices.com/images/usercfc.jpg" target="_blank"&gt;&lt;img src="http://www.harmanscomputerservices.com/images/usercfc.jpg" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This cfc has four methods. One to initialize the cfc and a fName property, one to set the first name, one to return the first name and one to return a query. The init function receives one argument called settings and assigns that argument to the cfc variable settings. This is to test the injection method and we test it in the getUser method of our object. We need do something to enable the ColdSpring functions that allows access to our objects. I'm going to do that in the application.cfc file in the onApplicationStart section.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Application.cfc&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;a href="http://www.harmanscomputerservices.com/images/applicationcfc.jpg" target="_blank"&gt;&lt;img src="http://www.harmanscomputerservices.com/images/applicationcfc.jpg" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/b&gt;This file initializes some settings but the part that applies here is in the onApplicationStart section. First, we create an instance of the ColdSpring object factory and assign it to the application.factory variable. The next line calls a function in application.factory that reads the ColdSpring.xml file we created earlier. Finally we execute the method in our settings.cfc file above to get our settings and assign the structure to the application.settings variable. Strictly speaking I didn't need to do this since I have injected the settings object into the User object but I wanted to make sure I could do it. The final thing to do is to run a test file to see if I create a user object.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;ColdSpringTest.cfm&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;a href="http://www.harmanscomputerservices.com/images/coldspringtest.jpg" target="_blank"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;a href="http://www.harmanscomputerservices.com/images/coldspringtest.jpg" target="_blank"&gt;&lt;img src="http://www.harmanscomputerservices.com/images/coldspringtest.jpg" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;I received the expected response which was a dump of the user object and the user query return. It appears that I have at least an initial grasp on ColdSpring and how to use it. One thing to point out here is that ColdSpring works to create singletons. What happens to transient objects, objects that need to have several instances in existence at one time? For that, it appears the recommended method is to use an Object Relational Mapping (ORM) tool. I'm working with Transfer to see if I can get a handle on it. But that's a blog post for another time.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-2778181670609956100?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/2778181670609956100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/12/next-stop-coldspring.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/2778181670609956100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/2778181670609956100'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/12/next-stop-coldspring.html' title='Next Stop - ColdSpring'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-661522486935380264</id><published>2008-11-23T15:14:00.000-08:00</published><updated>2008-12-30T15:14:55.352-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OO'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>Sometimes I feel as if I'm the last person to catch on..</title><content type='html'>Since my last post, I have been quite busy using my new found knowledge. For the last two months I have been busy working on the project that prompted my company to send me to the ASP .Net training. The developer I had the pleasure of working with is very knowledgeable. He used to work for Microsoft as one of the developers responsible for Windows XP and Windows Server 2003. He was one of those developers that I have Hal Helms mention. One who listens to your ideas with interest even though they are often, simplistic or incorrect. He never once made me feel foolish, but rather guided me to the correct solution while educating me as to why it was correct. This experience, for which I am very grateful, has prompted a couple of changes to the way I develop ColdFusion applications. For many developers, these ideas will be nothing new, perhaps even common sense. But for me it was as if a light bulb had finally turned on.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;For large, scalable applications, OO is a must.&lt;/b&gt;&lt;br /&gt;I have been using CFCs since they were introduced to ColdFusion because it is good practice to separate the database interaction from the business logic. For convenience sake, I use session scope structures as property holders or pseudo beans, but they lack encapsulation. When it came to OO however, I have lacked the conviction that comes from experience. Plus I work for a company with several other developers that have no experience with OO development and no desire to learn it. So I have been asked to keep my code simple so others are able to maintain it. Frequently I find myself thinking, if maintenance is a concern, wouldn't it make sense to foster OO development? It is clear now, after joining a project that was well under way and being expected to get up to speed quickly that without OO this can be very challenging. The project was coded in C# and it's almost impossible to write good C# code without using OO principles so it was very easy to figure out what was happening by examining the classes and structure. Using OO principles helps to organize the structure of the code, but mostly, it becomes very easy to see what is happening and how it is being done. Then if modifications or updates are needed, it is much more clear where to make the changes. Currently I have a couple of personal ColdFusion based projects that I have started and will be relying on OO principles to guide their development.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Unit testing is not optional.&lt;/b&gt;&lt;br /&gt;I have never heard a customer say, “You know Mike, although it fulfills the specifications, this application does more than we need it to. We would like to scale it back, remove some of our features. Can you do that for us?” However I have heard those six most dreaded words, “You know what would be nice?” The customer then lists features that were not included on the specifications. Often, these tasks are ones they never have been able to do before (manually or otherwise), but now seems to be critical to the success of their business. In the past I have had to modify the code, test it by performing most operations that are performed by the customer, fixing errors along the way. It would then be released to the customer with the caution that a bug or two may present itself and to please call. I have never liked doing this because I don't feel it helps to inspire confidence in the reliability of the software or the developer.&lt;br /&gt;&lt;br /&gt;The time I spent on the ASP .Net project was largely writing unit tests for the classes. The fact that nearly two moths were spent writing unit tests should be an indication as to the size of the project (learning curve aside). The level of reliability that was required for this project combined with the short cycle time expected for modifications, new features, and updates would have been impossible with out unit test suites. This allowed us to make changes, run the test, fix the issues and release with the confidence that the application would perform as expected. Should a bug be reported, we would write a unit test that would mimic the error and modify the code to fix it. We would then rerun the unit test suite to make sure no other errors were introduced. In other words, unit tests shorten turn around time, insure that specifications are still being met and increase confidence in the software and the developer.&lt;br /&gt;&lt;br /&gt;Other changes in the way I approach and develop projects may be coming. For now, these are the two most immediate and significant. In the meantime, I am spending time reading how others have applied OO development principles to ColdFusion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-661522486935380264?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/661522486935380264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/11/sometimes-i-feel-as-if-im-last-person.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/661522486935380264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/661522486935380264'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/11/sometimes-i-feel-as-if-im-last-person.html' title='Sometimes I feel as if I&apos;m the last person to catch on..'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-1982218197167678842</id><published>2008-09-19T15:12:00.000-07:00</published><updated>2008-12-30T15:13:40.366-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>The Training...</title><content type='html'>&lt;p&gt;My next step to learning ASP .Net and C# was to find some structured training. Time is a factor on the project I'm working on so the training needed to be intense. I found just such training provided by the folks at &lt;a href="http://www.traininghott.com/" target="_blank"&gt;Hands On Technology Transfer, Inc.&lt;/a&gt; After reading the topics covered and the time in which they cover it, I thought that if I could keep up, I would not be bored.&lt;/p&gt;&lt;p&gt;My only concern about an intense training is that I did not want to be the slow old guy in class. After all it has been over 25 years since I was in college. So I found a C# tutorial by Joe Mayo over at &lt;a href="http://www.csharp-station.com/Tutorial.aspx" target="_blank"&gt;C# station&lt;/a&gt;. After completing the free 22 lesson tutorial, I purchased the instructor's book, &lt;a href="http://www.amazon.com/dp/0672329816?tag=cstati&amp;amp;camp=14573&amp;amp;creative=327641&amp;amp;linkCode=as1&amp;amp;creativeASIN=0672329816&amp;amp;adid=147RNJ0F23JX4Y1KHT6D&amp;amp;" target="_blank"&gt;C# 3.0 Unleashed: with the .Net Framework 3.5&lt;/a&gt;. I made it through the first few chapters before I had to leave.&lt;/p&gt;&lt;p&gt;Arriving on Sunday afternoon, I was able to settle in and rest up before class the next morning. During the first two days we covered much of the C# language and the remaining three days we touched on many of the over 7000 classes in .Net. The class was hands on so the mini lectures were punctuated with challenging exercises that we were expected to complete with our lab partner. I was relieved to discover how much the tutorial helped, I was definitely &lt;span style="font-weight: bold;"&gt;not&lt;/span&gt; the slow guy in class (old is a different story). I looked forward to returning home so I could apply some of what I had learned.&lt;/p&gt;&lt;p&gt;&lt;em&gt;I have to praise HOTT a little here. I originally registered for the training held in Portland Oregon, about 200 miles north of where I live. I received a call about two weeks prior to the class informing me that the company had decided to cancel the Portland venue due to lack of registration. They offered to reschedule me for the same class being held the same week in Denver and pay travel and lodging. They even offered to make all arrangements for me, I just had to tell them my preferred airport. Expecting dorm room accommodations, I was pleasantly surprised with a private room overlooking the city. If anyone is looking for well-done, fast-paced training, I would highly recommend them.&lt;/em&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-1982218197167678842?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/1982218197167678842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/09/training.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/1982218197167678842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/1982218197167678842'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/09/training.html' title='The Training...'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-5640213404299236935</id><published>2008-09-09T15:10:00.000-07:00</published><updated>2008-12-30T15:11:41.500-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>The Developer's Tool Chest</title><content type='html'>It's funny, developers tend to get used one language or technology, sometimes we get the mindset that we are a {insert language here} developer. I know, because it has happened to me. As a ColdFusion developer, I have found myself in the mindset that things need to be done in ColdFusion. I know I am not alone in this because during a number of conversations following my company's decision to have me learn ASP .Net and C#, I found myself being asked the same question, “Are you still going to develop ColdFusion applications?”&lt;br /&gt;&lt;br /&gt;I have tried not to fall into this thought-pattern since I believe that, as I have heard Hal Helms say (and repeat in the comments for my previous blog entry – thanks Hal), we are first and foremost developers. That means that we need to have a good supply of tools available in our tool boxes much the way that an auto mechanic has. I recently had some work done on my pickup and when I went to the shop, I saw a lot of high-quality brand-name chests filled with tools. I know those tools are not cheap and if the mechanic is willing to make the investment, it's a good bet that he has decent skills and is serious about his profession. As developers, we need to be serious about our profession and the way we stock our tool chests demonstrates that commitment. The majority of the price for our tools is training time. If we can demonstrate comfortable familiarity with our tools as well as successful past projects utilizing various technologies, the customer is likely to feel more confident that we're going to solve the problem the correct way using the right tool. The Pragmatic Programmer, one of my favorite books, in the section titled your knowledge portfolio, encourages the reader to learn a new language every year. So if you've chosen software development as a profession, maintaining and/or broadening your skills is not optional, it's essential.&lt;br /&gt;&lt;br /&gt;So am I going to continue to develop ColdFusion applications? Of course I will! I enjoy being part of a community that has some of the most outstanding developers I have had the pleasure of knowing and ColdFusion is a solid choice for data-driven rapid application development. However, as a developer, I'm excited to learn a new language and technology.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-5640213404299236935?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/5640213404299236935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/09/developers-tool-chest.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/5640213404299236935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/5640213404299236935'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/09/developers-tool-chest.html' title='The Developer&apos;s Tool Chest'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-2720403634827743256</id><published>2008-09-08T15:01:00.000-07:00</published><updated>2008-12-30T15:03:01.463-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>Has it been that long?</title><content type='html'>I just looked at the date of the last post - June 8. Has it been that long? It doesn't seem like it. It seems like just last week that I was D.C. for the CFUnited conference. But much has happened since the conference.&lt;br /&gt;&lt;br /&gt;At the conference, I focused mostly on the OO aspects of CF and Flex. I was very much looking forward to applying some of the techniques and principles from CFUnited. Although this was my plan, the company I work for was forming other plans. We have a large initiative that is being piloted by a developer in the Ukraine. This application is being developed using ASP .Net and C#. Apparently because of my knowledge of OO programming and my desire to always learn new things, my company decided that I would become the in-house .Net/C# developer and work with our Ukraine developer. On one hand, I was disappointed that I would not get the opportunity to try the new things that I had learned. On the other hand, I was very excited to learn a new technology and language. So began my newest journey...&lt;br /&gt;&lt;br /&gt;I'll be chronicling my journey on my personal blog, sort of a 'Learning ASP .Net and C# as a CF developer'. I could post here as well, but I wouldn't want to appear as trying to detract from the CF community in any way. I'll watch the comments to this post, and if the sentiment is that my blog here should focus on CF and keep the .Net stuff separate, I'll understand and it will not be a problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-2720403634827743256?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/2720403634827743256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/09/has-it-been-that-long.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/2720403634827743256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/2720403634827743256'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/09/has-it-been-that-long.html' title='Has it been that long?'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-6741606788639615388</id><published>2008-06-08T14:58:00.000-07:00</published><updated>2008-12-30T14:59:05.259-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CFUnited'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>CFUnited is just around the corner</title><content type='html'>So CFUnited is just around the corner and I have yet to respond to Liz's post on the &lt;a href="http://cfunited.com/blog/"&gt;CFUnited Blog&lt;/a&gt;. I noticed that many blogs that I read had posted their response. So here we go.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What are you looking forward to most?&lt;/b&gt;&lt;br /&gt;This is a tough one. I work in a very rural area and have little interaction with other developers. So I guess, I'm looking forward to recharging my batteries by interacting and networking with other developers.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Which speaker will most likely end up on your camera?&lt;/b&gt;&lt;br /&gt;I have no idea. Photography is a hobby of mine so if I can get lots of photos, all the better.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What do you plan to do outside conference time?&lt;/b&gt;&lt;br /&gt;Since this will also be a mini vacation, I will be checking out some of the museums, galleries and hang around the bar (I understand this is where the best networking happens). I have also scheduled a photography workshop, with &lt;a href="http://www.edavidluriaphotography.com/"&gt;E. David Luria&lt;/a&gt;, where we will photograph the monuments at night when they're lit up.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Fill in the blank: I will mainly be around the _______ booth.&lt;/b&gt;&lt;br /&gt;I don't really know, there are a number of stops I want to make and folks I want to say hello to.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Do you have a new project you are working on and will reveal at CFUnited?&lt;/b&gt;&lt;br /&gt;Sadly no. Most of my efforts are spent developing corporate intranets or modules for them. Not too glamourous but it pays the bills.&lt;br /&gt;&lt;br /&gt;So there they are, my answers and why I'm excited about the next couple of weeks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-6741606788639615388?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/6741606788639615388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/06/cfunited-is-just-around-corner.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/6741606788639615388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/6741606788639615388'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/06/cfunited-is-just-around-corner.html' title='CFUnited is just around the corner'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-6872400802895742478</id><published>2008-05-30T14:56:00.000-07:00</published><updated>2008-12-30T14:57:18.989-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CFUnited'/><title type='text'>CFUnited is on the schedule this year</title><content type='html'>&lt;img src="http://www.harmanscomputerservices.com/Images/CFUnited1.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;For a couple years now I have not been able to attend &lt;a href="http://www.cfunited.com/"&gt;CFUnited&lt;/a&gt;. This year, I did everything in my power to make it a priority. It has paid off! Registration has been completed, tickets bought, hotels reserved - I'm ready to go.&lt;br /&gt;&lt;br /&gt;I will be arriving early and taking a working-pseudo vacation for a few days. I have been around the area several times, but this will be my first trip to D.C. proper. This being the case, I plan on doing a bit of the touristy things. So if anyone has any suggestions for 'must do' activities or dining suggestions, I'd sure like to hear them.&lt;br /&gt;&lt;br /&gt;Hope to see you there!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-6872400802895742478?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/6872400802895742478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/05/for-couple-years-now-i-have-not-been.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/6872400802895742478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/6872400802895742478'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/05/for-couple-years-now-i-have-not-been.html' title='CFUnited is on the schedule this year'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-1678445435629499734</id><published>2008-05-26T14:54:00.000-07:00</published><updated>2008-12-30T14:55:06.304-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Newest Addition to the Family</title><content type='html'>I'm very proud to announce the arrival of Taylor Renee Young. Born to my baby sister, Margie and her "high school sweetheart and the love of my life" (from her myspace page), Jared.&lt;br /&gt;&lt;br /&gt;Taylor Renee was born at 12:24 a.m. on Monday, May 26, 2008. She weighed in at 5 pounds 15.4 ounces (the doctor predicted Margie would have a 6 pound baby) at 18 inches long. She has the thickest black hair and the largest eyes!&lt;br /&gt;&lt;br /&gt;The coolest thing.... I remember holding Margie when she was the same age - less than 1 hour old. :) I'm sure I'll hear about the photo, but here it is anyway.&lt;br /&gt;&lt;br /&gt;See for yourself:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.harmanscomputerservices.com/images/TaylorRenee.jpg" /&gt;&lt;img src="http://www.harmanscomputerservices.com/images/YoungFamily.jpg" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-1678445435629499734?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/1678445435629499734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/05/newest-addition-to-family.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/1678445435629499734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/1678445435629499734'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/05/newest-addition-to-family.html' title='Newest Addition to the Family'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-712742172636643743</id><published>2008-05-01T14:52:00.000-07:00</published><updated>2008-12-30T14:53:32.896-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><title type='text'>My new computer arrives tomorrow!</title><content type='html'>&lt;p&gt;I have been debating with myself whether to buy a new computer or not. After all, I did buy a new laptop (Mac Book) a little over a year ago. The problem is, the Mac Book I have is limited to 2GB RAM. I prefer to set up my development environment so that I can do everything on one machine. If I am to do this, I need to have ColdFusion, Apache, and (because most clients I work with use MS SQL) Parallels with Windows XP and MS SQL server running on the same machine. Needless to say, this challenges the 2GB limit quiet fiercely. This is a tolerable trade off for portability, but for my office PC I really wanted something that was... ...well, more powerful.&lt;/p&gt;&lt;p&gt;On Tuesday, I made the decision to buy a new one. I have been eyeing them for some time and a good deal presented itself on the Apple refurbished site. I've always felt that the wisest move is to purchase the most cutting-edge computer you can afford (within reason of course). I settled on a dual quad-core 2.8Ghz MacPro. It arrives tomorrow and I'm excited. It will be nice to not have to pause when switching between applications.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-712742172636643743?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/712742172636643743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/05/my-new-computer-arrives-tomorrow.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/712742172636643743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/712742172636643743'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/05/my-new-computer-arrives-tomorrow.html' title='My new computer arrives tomorrow!'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-5136839044049198475</id><published>2008-05-01T14:49:00.000-07:00</published><updated>2008-12-30T14:51:43.336-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>Interview with Jake Marsh</title><content type='html'>Jake Marsh is at CF Objective for the next few days and is the first on-site interview I have heard of. I would recommend checking it out.&lt;br /&gt;&lt;br /&gt;You can read the interview over at &lt;a href="http://aidangirard.wordpress.com/2008/05/01/interviewed-the-jake-marsh/"&gt;Jake Marsh's page.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-5136839044049198475?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/5136839044049198475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/05/interview-with-jake-marsh.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/5136839044049198475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/5136839044049198475'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/05/interview-with-jake-marsh.html' title='Interview with Jake Marsh'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-7366788495215683215</id><published>2008-04-27T02:42:00.000-07:00</published><updated>2008-12-30T14:45:01.607-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Personality Test</title><content type='html'>&lt;p&gt;So I was catching up on some blog reading and &lt;a href="http://www.jeffryhouser.com/" target="_blank"&gt;Jeffry Houser&lt;/a&gt; had a post recommending that readers take a personality test, so I did. Here are my results:&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;My Personality&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="width:145px; padding-right:5px; text-align:right; border-right:1px solid #960000;"&gt;&lt;div style="white-space:nowrap; overflow:hidden; font-size:12px;"&gt;Neuroticism&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="padding:0px;"&gt;&lt;div style="float:left; height:18px; text-align:right; background-color:#ff0000; border-bottom:1px solid #960000; border-right:1px solid #960000; border-top:1px solid #ff6464; width:67%; filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColor=16777215, EndColor=2130706432);"&gt;&lt;div style="float:right; color:white; padding-right:2px; margin-top:2px; font-size:10px;"&gt;67&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:145px; padding-right:5px; text-align:right; border-right:1px solid #000096;"&gt;&lt;div style="white-space:nowrap; overflow:hidden; font-size:12px;"&gt;Extraversion&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="padding:0px;"&gt;&lt;div style="float:left; height:18px; text-align:right; background-color:#0000ff; border-bottom:1px solid #000096; border-right:1px solid #000096; border-top:1px solid #6464ff; width:42%; filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColor=16777215, EndColor=2130706432);"&gt;&lt;div style="float:right; color:white; padding-right:2px; margin-top:2px; font-size:10px;"&gt;42&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:145px; padding-right:5px; text-align:right; border-right:1px solid #005a00;"&gt;&lt;div style="white-space:nowrap; overflow:hidden; font-size:12px;"&gt;Openness to Experience&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="padding:0px;"&gt;&lt;div style="float:left; height:18px; text-align:right; background-color:#008000; border-bottom:1px solid #005a00; border-right:1px solid #005a00; border-top:1px solid #559f55; width:31%; filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColor=16777215, EndColor=2130706432);"&gt;&lt;div style="float:right; color:white; padding-right:2px; margin-top:2px; font-size:10px;"&gt;31&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:145px; padding-right:5px; text-align:right; border-right:1px solid #907300;"&gt;&lt;div style="white-space:nowrap; overflow:hidden; font-size:12px;"&gt;Agreeableness&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="padding:0px;"&gt;&lt;div style="float:left; height:18px; text-align:right; background-color:#fbd400; border-bottom:1px solid #907300; border-right:1px solid #907300; border-top:1px solid #fff1aa; width:21%; filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColor=16777215, EndColor=2130706432);"&gt;&lt;div style="float:right; color:white; padding-right:2px; margin-top:2px; font-size:10px;"&gt;21&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="width:145px; padding-right:5px; text-align:right; border-right:1px solid #500050;"&gt;&lt;div style="white-space:nowrap; overflow:hidden; font-size:12px;"&gt;Conscientiousness&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="padding:0px;"&gt;&lt;div style="float:left; height:18px; text-align:right; background-color:#800080; border-bottom:1px solid #500050; border-right:1px solid #500050; border-top:1px solid #956397; width:44%; filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColor=16777215, EndColor=2130706432);"&gt;&lt;div style="float:right; color:white; padding-right:2px; margin-top:2px; font-size:10px;"&gt;44&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;You are a calm person who is considered almost fearless by some, however you are sensitive about what others think of you. Your concern about rejection and ridicule cause you to feel shy and uncomfortable around others. You are easily embarrassed and often feel ashamed. Your fears that others will criticize or make fun of you are exaggerated and unrealistic, but your awkwardness and discomfort may make these fears a self-fulfilling prophecy. You tend to feel overwhelmed by, and therefore actively avoid, large crowds. You often need privacy and time for yourself. You prefer the security and stability brought by conformity to tradition. You will help others if they are in need. If people ask for too much of your time you feel that they are imposing on you, however you generally see others as selfish, devious, and sometimes potentially dangerous. You strive hard to achieve excellence. Your drive to be recognized as successful keeps you on track toward your lofty goals. You often have a strong sense of direction in life, but may sometimes be too single-minded and obsessed with your work.&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center"&gt;Take a &lt;a href="http://www.learnmyself.com/" target="_blank"&gt;Personality Test&lt;/a&gt; now or view the full &lt;a rel="nofollow" href="http://www.learnmyself.com/personality.asp?p=wpa-628330&amp;amp;x=PIx1x186778-188266xccd37x1" target="_blank"&gt;Personality Report&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-7366788495215683215?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/7366788495215683215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/04/personality-test.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/7366788495215683215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/7366788495215683215'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/04/personality-test.html' title='Personality Test'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-3241953503850164908</id><published>2008-04-20T03:00:00.001-07:00</published><updated>2008-12-30T14:41:24.566-08:00</updated><title type='text'>Learning Flex</title><content type='html'>&lt;p&gt;I'm learning flex, finally. So one thought keeps coming to my mind, 'Why did I wait so long?!'&lt;/p&gt;&lt;p&gt;Since I'm a ColdFusion developer, I'm particularly interested in the integration with CF. For now however, I'm doing the crawl before I walk thing. I'm keeping my eyes on the integration of &lt;a href="http://www.adobe.com/products/flex/" target="_blank"&gt;Flex&lt;/a&gt;, &lt;a href="http://www.adobe.com/products/livecycle/" target="_blank"&gt;Life Cycle Data Services&lt;/a&gt;, and &lt;a href="http://www.adobe.com/products/coldfusion/" target="_blank"&gt;ColdFusion&lt;/a&gt; as where I want to go.&lt;/p&gt;&lt;p&gt;The most difficult thing I've encountered so far is setting up my &lt;a href="http://www.adobe.com/products/flex/" target="_blank"&gt;Flex Development IDE&lt;/a&gt; in &lt;a href="http://www.eclipse.org/" target="_blank"&gt;Eclipse&lt;/a&gt;. Special thanks to &lt;a href="http://www.infoaccelerator.net/" target="_blank"&gt;Andy Powell&lt;/a&gt; and &lt;a href="http://www.jeffryhouser.com/" target="_blank"&gt;Jeff Houser&lt;/a&gt; for helping me over that hurdle.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-3241953503850164908?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/3241953503850164908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/04/learning-flex.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/3241953503850164908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/3241953503850164908'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/04/learning-flex.html' title='Learning Flex'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7423420642881011389.post-4841088580632338598</id><published>2008-04-20T03:00:00.000-07:00</published><updated>2008-12-30T14:35:24.276-08:00</updated><title type='text'>I suppose it's time</title><content type='html'>&lt;p&gt;I have been putting off starting a blog, but I suppose the time has come for me to jump on the blogwagon.&lt;/p&gt;&lt;p&gt;The proper things would be for me to introduce myself.&lt;/p&gt;&lt;p&gt;My name is Mike Harman, I am a Systems Analyst/Developer for &lt;a href="http://www.orenco.com/" target="_blank"&gt;Orenco Systems, Inc.&lt;/a&gt; and have worked there for the past 16 years. For the last ten years I have also ran my own consulting and software development company. I live in rural Oregon, about 70 miles south of Eugene.&lt;/p&gt;&lt;p&gt;I have a hard time remembering when I didn't use a computer. The first computer I used, was when I was in grade school, I must have been 9. I don't remember the type, but the programs were loaded using punch cards. If we chose to, we could come to school early, load a program that would allow us to practice our math. Then, when I was 10, I was introduced to the newly released TRS-80 model 1. The day I first saw the computer, I purchased the manual, which back then was little more than a syntax guide, and read it cover to cover the first night (it was a late night and a small manual). From then on, I was hooked on programming. When I graduated, I went straight into college with a Computer Science Major.&lt;/p&gt;&lt;p&gt;Five years ago, while working for the electrical division of Orenco, I began developing web applications using ColdFusion. It didn't take log before I was hooked. My first few applications, although functional (some of which are still in use), were ugly. Even then, being new to ColdFusion, I could clearly see how using ColdFusion could shorten the time between requirements and release thus saving money for the company.&lt;/p&gt;&lt;p&gt;My current development platform of choice is a MacBook (personal) and a MacBook Pro (business) running OS-X 10.5 and 64-bit ColdFusion. I do run Windows XP in Parallels so I can use SQL Server 2005. The other software I use for development: Adobe Creative Suite CS, Aqua Data Studio, CSS Edit, Oxygen, Yummy FTP and Eclipse (which I use most of any of the others).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7423420642881011389-4841088580632338598?l=smartpitbullsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smartpitbullsoftware.blogspot.com/feeds/4841088580632338598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/04/i-suppose-its-time.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/4841088580632338598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7423420642881011389/posts/default/4841088580632338598'/><link rel='alternate' type='text/html' href='http://smartpitbullsoftware.blogspot.com/2008/04/i-suppose-its-time.html' title='I suppose it&apos;s time'/><author><name>Mike Harman</name><uri>http://www.blogger.com/profile/04048112735436319011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_FGMGq_VwOuc/SyRkkeH3TUI/AAAAAAAAAD8/fX9BuJSJ_Os/S220/ProfPortrait.jpg'/></author><thr:total>0</thr:total></entry></feed>
