<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dan&#039;s Drivelings &#187; General</title>
	<atom:link href="http://www.tntechnohermit.com/category/general/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tntechnohermit.com</link>
	<description>Random Thoughts of a Techno-Hermit</description>
	<lastBuildDate>Thu, 01 Sep 2011 16:37:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Can you be too object-oriented for your client&#8217;s good?</title>
		<link>http://www.tntechnohermit.com/2011/09/01/can-you-be-too-object-oriented-for-your-clients-good/</link>
		<comments>http://www.tntechnohermit.com/2011/09/01/can-you-be-too-object-oriented-for-your-clients-good/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 16:37:53 +0000</pubDate>
		<dc:creator>Dan Skaggs</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.tntechnohermit.com/?p=549</guid>
		<description><![CDATA[Unless you&#8217;ve been coding under a rock since ColdFusion 4.5, you&#8217;ve likely noticed the massive momentum behind object-oriented design and development in the ColdFusion sphere over the last 2 to 3 years. I love the idea of designing apps using object-oriented techniques&#8211;so much so that I&#8217;m presenting a session titled &#8220;OOP: What is it and [...]]]></description>
			<content:encoded><![CDATA[<p>Unless you&#8217;ve been coding under a rock since ColdFusion 4.5, you&#8217;ve likely noticed the massive momentum behind object-oriented design and development in the ColdFusion sphere over the last 2 to 3 years. I love the idea of designing apps using object-oriented techniques&#8211;so much so that I&#8217;m presenting a session titled &#8220;OOP: What is it and why do I care?&#8221; at <a href="http://www.ncdevcon.com">NCDevCon</a> next month. After a while of developing OO-style applications you can get really spoiled to that way of writing and organizing code.</p>
<p>As a consultant, I get the opportunity to work for a wide array of companies and an even wider array of projects&#8211;not all of which are designed and built using the latest and greatest OO principles. Sometimes you can fall into the trap of thinking how you&#8217;d do a certain thing in an object-oriented way when the application you&#8217;re working on is written in a (good or bad) procedural manner. As tempting as it might be to scrap the client&#8217;s procedural code and write a shiny new OO block of code, you have to step back and remember what the client is paying you to do and decide if that&#8217;s the best use of the client&#8217;s money. </p>
<p>Unless the client is specifically paying you to refactor an older application, sometimes it simply doesn&#8217;t make sense to change the way the client&#8217;s application works so drastically. Sometimes you just have to &#8220;forget&#8221; all the OO goodness that you&#8217;ve learned to love over the last couple of years and go back to the &#8220;old&#8221; way of doing things in order to best service your client. It may not be fun, exciting or cutting edge work, but there are still a great number of procedural applications out there that we might be called upon to work on. </p>
<p>Disclaimer: This post was written as a &#8220;note to self&#8221;, not as an indictment of anyone that I have worked with. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.tntechnohermit.com/2011/09/01/can-you-be-too-object-oriented-for-your-clients-good/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How I got started in ColdFusion</title>
		<link>http://www.tntechnohermit.com/2011/08/01/how-i-got-started-in-coldfusion/</link>
		<comments>http://www.tntechnohermit.com/2011/08/01/how-i-got-started-in-coldfusion/#comments</comments>
		<pubDate>Mon, 01 Aug 2011 13:41:45 +0000</pubDate>
		<dc:creator>Dan Skaggs</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.tntechnohermit.com/?p=545</guid>
		<description><![CDATA[After separating from active duty with the US Air Force in early 1998, I took a job working at a telecommunications company located in Brentwood, TN as a desktop and server support IT guy. About 6 months after I started, the company advertised an open position for their first full-time web developer. I applied and, [...]]]></description>
			<content:encoded><![CDATA[<p>After separating from active duty with the US Air Force in early 1998, I took a job working at a telecommunications company located in Brentwood, TN as a desktop and server support IT guy. About 6 months after I started, the company advertised an open position for their first full-time web developer. I applied and, owing to their policy of trying to &#8220;hire from within&#8221; first, I was chosen to fill the position.<br />
<span id="more-545"></span></p>
<p>The company had a completely static site that we built and maintained using Microsoft FrontPage (which was integrated with the company&#8217;s Visual Source Safe SCM system). I eventually started adding tiny bits of functionality using ASP (now called &#8220;classic ASP&#8221;) and that formed the basis of my &#8220;programming&#8221; experience.</p>
<p>After about 2 years in that position, the parent company for the company I worked for decided that our company no longer needed to be a wholly-owned subsidary, but should be a branch office instead. So, in January of 2000, I accepted an offer to transition to the web development team of the parent company. They too had a completely static web site that they used Dreamweaver to maintain, but they had BIG plans on the horizon.</p>
<p>They were in the process of choosing an &#8220;enterprise content management system&#8221; that would allow business users to create and update their own content. At the end of the selection process, Allaire Spectra was chosen. After the decision was made, I flew out to San Jose, CA (where the company was headquartered) several times to attend the Fast Track to ColdFusion, Advanced ColdFusion and Spectra 1.0 classes taught by folks that contracted with Allaire to provide training.</p>
<p>Having had no formal programming experience or training (playing with Basic in the computer labs at my high school couldn&#8217;t be counted as experience), some of the basic concepts were quite foreign to me. I remember specifically having trouble wrapping my head around how arrays and structures worked. Eventually though, it all kind of clicked and I felt pretty good about what I had learned.</p>
<p>After our initial training sessions, we went on to build out our corporate site using Allaire Spectra with the help of two consultants from Allaire that flew to San Jose every week for about 8 months. The site went live sometime in early 2001 and everything was great for about 2 weeks. We had a hardware failure in a load balancer and the IT support person working with us mistakenly identified it as an issue with Spectra and rolled our site back to the static version we had just prior to launching the Spectra site. </p>
<p>Before we could correct the issue and get the Spectra site back online, Macromedia (which had recently purchased Allaire) announced that they were going to end-of-life Spectra. Upon hearing this news, our company decided that we couldn&#8217;t base our corporate web strategy on a technology that had been cancelled. Our company decided instead to rebuild the entire site once again, but since we had such a significant investment in ColdFusion licenses and hardware, we standardize on ColdFusion for our web development needs.</p>
<p>I&#8217;ve been building web applications in ColdFusion ever since.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tntechnohermit.com/2011/08/01/how-i-got-started-in-coldfusion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I turned 40 yesterday&#8230;Here&#8217;s to the 2nd half</title>
		<link>http://www.tntechnohermit.com/2011/07/08/i-turned-40-yesterday-heres-to-the-2nd-half/</link>
		<comments>http://www.tntechnohermit.com/2011/07/08/i-turned-40-yesterday-heres-to-the-2nd-half/#comments</comments>
		<pubDate>Fri, 08 Jul 2011 20:59:50 +0000</pubDate>
		<dc:creator>Dan Skaggs</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.tntechnohermit.com/?p=541</guid>
		<description><![CDATA[For those of you that normally come here for technical information, this post is completely non-technical and I&#8217;ll understand if you decide to spend your valuable time somewhere else. As the title of this post suggests, I made it through what some people refer to as the &#8220;black birthday&#8221; yesterday. According to some statistic I [...]]]></description>
			<content:encoded><![CDATA[<p>For those of you that normally come here for technical information, this post is completely non-technical and I&#8217;ll understand if you decide to spend your valuable time somewhere else.</p>
<p>As the title of this post suggests, I made it through what some people refer to as the &#8220;black birthday&#8221; yesterday. According to some statistic I found online, white males in the USA have an average life expectancy of 77.1 years. Pessimists would say that means I&#8217;m slightly over half dead. Optimists would respond with something along the lines that I have nearly half of my life in front of me. I&#8217;m really in neither category as I prefer to focus on things that I can make an impact on today (or plan today for things that I&#8217;m going to have to deal with in the near future).<br />
<span id="more-541"></span></p>
<p>Like a lot of people that hit this particular time in their lives, I spent a few moments reflecting on my &#8220;first half&#8221; this week and in doing so was reminded that I&#8217;ve been truly blessed thus far in my life. That&#8217;s not to say I haven&#8217;t made mistakes and would do some things differently if given the chance, but I&#8217;m really grateful for the opportunities I&#8217;ve had and the experiences that I&#8217;ve been able to take part in. Below are just a few of the things that I feel really blessed that are or have been a part of my life.</p>
<p><strong>I Have an Awesome Family</strong><br />
I married my high school sweetheart and we&#8217;re more in love today than we were back then. There are so many ways that we compliment each other that it&#8217;s uncanny. I&#8217;m a heavy metal guy, she&#8217;s a jazz/classical/big band gal. I get fired up about something and she calmly looks at alternatives and consequences. We have 3 great children&#8211;twin girls who will be 14 in a couple of weeks and a 5-year-old boy who make me proud as they grown, learn and experience new things on a weekly basis.</p>
<p><strong>I&#8217;m a Veteran</strong><br />
I&#8217;m extremely proud to have served our great nation as part of the US Air Force and the Tennessee Air National Guard. The people I served with and the experiences I had during my time in uniform helped shape me into who I am today. The military gave me the opportunity to live in another country (Honduras) for a year, experience what it&#8217;s like to hunker down in a dorm room while 2 typhoons came over us (Okinawa) and taught me how to logically diagnose and fix problems that were presented. It also gave me the opportunity to grow up from being a teenager to a person that my fellow airman knew they could depend on.</p>
<p><strong>I&#8217;m a GEEK!</strong><br />
I have a great career doing something I love. I&#8217;ve been into computers since before I got my first C-64. Writing software is what I live and breathe and I love it. I&#8217;ve been a contract consultant now for nearly 5 years and had a chance to work with and for some amazing people. My wife and I, along with her parents, are in the process of launching a brand new company and healthcare industry software product. It&#8217;s challenging, scary and rewarding all at the same time and I&#8217;m not sure I&#8217;d want it any other way.</p>
<p>To summarize quickly, I feel like I&#8217;ve had a great &#8220;first half&#8221;. I&#8217;m excited to see what the &#8220;second half&#8221; is going to bring. If you&#8217;ve made it this far, thank you for taking the time to allow me to share.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tntechnohermit.com/2011/07/08/i-turned-40-yesterday-heres-to-the-2nd-half/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Merry Christmas from the Skaggs family</title>
		<link>http://www.tntechnohermit.com/2010/12/23/merry-christmas-from-the-skaggs-family/</link>
		<comments>http://www.tntechnohermit.com/2010/12/23/merry-christmas-from-the-skaggs-family/#comments</comments>
		<pubDate>Thu, 23 Dec 2010 20:51:36 +0000</pubDate>
		<dc:creator>Dan Skaggs</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.tntechnohermit.com/?p=485</guid>
		<description><![CDATA[Here&#8217;s hoping you all have a very Merry Christmas and a super New Year!]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s hoping you all have a very Merry Christmas and a super New Year!</p>
<p><a href="http://www.tntechnohermit.com/wp-content/uploads/2010/12/001-collage-1.jpeg"><img src="http://www.tntechnohermit.com/wp-content/uploads/2010/12/001-collage-1.jpeg" alt="" title="Christmas Card" width="600" height="480" class="aligncenter size-full wp-image-487" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tntechnohermit.com/2010/12/23/merry-christmas-from-the-skaggs-family/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Can you code with 9 fingers?</title>
		<link>http://www.tntechnohermit.com/2010/02/22/can-you-code-with-9-fingers/</link>
		<comments>http://www.tntechnohermit.com/2010/02/22/can-you-code-with-9-fingers/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 18:19:45 +0000</pubDate>
		<dc:creator>Dan Skaggs</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://dan.skaggsfamily.ws/?p=375</guid>
		<description><![CDATA[That&#8217;s what I&#8217;m doing today thanks to a relatively freak accident with a staple gun yesterday. I won&#8217;t bore you with the details (that would confirm what a bonehead I can be sometimes). Just suffice it to say that, it could have been a lot worse.]]></description>
			<content:encoded><![CDATA[<p>That&#8217;s what I&#8217;m doing today thanks to a relatively freak accident with a staple gun yesterday. I won&#8217;t bore you with the details (that would confirm what a bonehead I can be sometimes). Just suffice it to say that, it could have been a lot worse.</p>

<a href='http://www.tntechnohermit.com/2010/02/22/can-you-code-with-9-fingers/staple/' title='staple'><img width="150" height="150" src="http://www.tntechnohermit.com/wp-content/uploads/2010/02/staple-150x150.jpg" class="attachment-thumbnail" alt="staple" title="staple" /></a>
<a href='http://www.tntechnohermit.com/2010/02/22/can-you-code-with-9-fingers/xray1/' title='xray1'><img width="150" height="150" src="http://www.tntechnohermit.com/wp-content/uploads/2010/02/xray1-150x150.jpg" class="attachment-thumbnail" alt="xray1" title="xray1" /></a>
<a href='http://www.tntechnohermit.com/2010/02/22/can-you-code-with-9-fingers/xray2/' title='xray2'><img width="150" height="150" src="http://www.tntechnohermit.com/wp-content/uploads/2010/02/xray2-150x150.jpg" class="attachment-thumbnail" alt="xray2" title="xray2" /></a>
<a href='http://www.tntechnohermit.com/2010/02/22/can-you-code-with-9-fingers/xray3/' title='xray3'><img width="150" height="150" src="http://www.tntechnohermit.com/wp-content/uploads/2010/02/xray3-150x150.jpg" class="attachment-thumbnail" alt="xray3" title="xray3" /></a>

]]></content:encoded>
			<wfw:commentRss>http://www.tntechnohermit.com/2010/02/22/can-you-code-with-9-fingers/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>My short foray into Linux on the desktop</title>
		<link>http://www.tntechnohermit.com/2009/08/31/my-short-foray-into-linux-on-the-desktop/</link>
		<comments>http://www.tntechnohermit.com/2009/08/31/my-short-foray-into-linux-on-the-desktop/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 22:06:01 +0000</pubDate>
		<dc:creator>Dan Skaggs</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://dan.skaggsfamily.ws/?p=297</guid>
		<description><![CDATA[For the last few months, I&#8217;ve had this idea that I wanted to try a linux desktop machine as my main development computer for a while. With the release of Ubuntu 9.04 in April, I decided to put together a machine and give it a try. Unfortunately, I had to wait a while in order [...]]]></description>
			<content:encoded><![CDATA[<p>For the last few months, I&#8217;ve had this idea that I wanted to try a linux desktop machine as my main development computer for a while.  With the release of Ubuntu 9.04 in April, I decided to put together a machine and give it a try.  Unfortunately, I had to wait a while in order to get a large project completed so I&#8217;d have time to do the testing an building.</p>
<p>Finally, in July, the project was completed and I ordered a few hundred dollars worth of new gear to update a desktop machine that I had sitting idle and installed Ubuntu 9.04 64-bit. There are a lot of great things about Ubuntu linux and I was very impressed with the performance of the OS on a quad-core processor with a pile of RAM. </p>
<p>Unfortunately, it wasn&#8217;t a Mac. Let me explain what I mean by that.<span id="more-297"></span>I was able to get a bunch of things working correctly on Ubuntu including multiple monitors, my development environment, and email/calendar/address book integration. It seemed with every thing that I tried to do, there was some little &#8220;gotcha&#8221;.</p>
<p>I installed the 64-bit version of Ubuntu 9.04 on my new hardware. Almost immediately I needed to get Flash player running inside Firefox.  That turned into a 30 minute exercise of unzipping the 64-bit beta from Adobe and following a couple different blog posts to get it installed&#8211;only to have to redo the entire exercise when I updated to Firefox 3.5.</p>
<p>Then there was the issue of mail and calendar support.  All my various email accounts are serviced by Google Apps and I use IMAP connections so that my desktop client and my iPhone stay in sync.  Neither Evolution or Thunderbird let me set which folders were to be used for Trash, which meant that I now had an extra [Trash] folder in the list of IMAP folders. Had I been one of those folks that just use the web client, it wouldn&#8217;t have been an issue. Oddly enough (odd since I&#8217;m a web developer) I don&#8217;t like using web clients for mail all the time. </p>
<p>I mentioned that I got my multiple monitors working on Ubuntu. I&#8217;d purchased a GeForce card with twin DVI connectors so I could run both my monitors natively (as opposed to using the <a href="http://dan.skaggsfamily.ws/2008/11/05/external-monitor-solution-for-your-laptop/">USB to DVI adapter</a> like I do with my Macbook Pro). Multi-monitor support worked, but it treated the two monitors quite differently than any other OS I&#8217;ve used multiple monitors on. Application splash screens that displayed at startup were centered across both monitors as if they were one big desktop instead of 2 distinct monitors sitting side by side. That in and of itself wasn&#8217;t a deal breaker, but just another example of things you get used to working differently as I&#8217;ve used OS X for the last nearly 3 years.</p>
<p>Finally, not having as much choice in good, polished applications even though there are thousands of titles in the package manager contributed to me coming back to the Apple &#8220;fold&#8221;. GTD apps that fit my working style and a full-featured alternative to iTunes are two examples.</p>
<p>There were several software packages that were analogous to things I&#8217;d gotten used to on the Mac. GnomeDo is a respectable Linux alternative to QuickSilver which I use constantly. Workspaces in Linux operate much the same as Spaces in OS X, although there are some key differences when &#8220;ALT-Tabbing&#8221; between applications.</p>
<p>I&#8217;ll be the first to admit that Linux as a desktop operating system has come an incredibly long way in the last couple of years, but after having gotten used to the &#8220;fit and finish&#8221; of Mac OS X, it just doesn&#8217;t quite come close enough for me to leave the Mac.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tntechnohermit.com/2009/08/31/my-short-foray-into-linux-on-the-desktop/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>There is no such thing as perfect code</title>
		<link>http://www.tntechnohermit.com/2009/05/27/there-is-no-such-thing-as-perfect-code/</link>
		<comments>http://www.tntechnohermit.com/2009/05/27/there-is-no-such-thing-as-perfect-code/#comments</comments>
		<pubDate>Thu, 28 May 2009 04:22:43 +0000</pubDate>
		<dc:creator>Dan Skaggs</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://dan.skaggsfamily.ws/?p=245</guid>
		<description><![CDATA[The title alone may offend some folks that read this post, but, please, hear me out before you close the browser window and go away muttering &#8220;this guy has no idea what he&#8217;s talking about&#8221;. I was talking to a developer friend of mine today and he made the statement &#8220;there is no such thing [...]]]></description>
			<content:encoded><![CDATA[<p>The title alone may offend some folks that read this post, but, please, hear me out before you close the browser window and go away muttering &#8220;this guy has no idea what he&#8217;s talking about&#8221;. I was talking to a developer friend of mine today and he made the statement &#8220;there is no such thing as perfect code&#8221;. The statement kind of took me by surprise but as we talked through it, I came to see his particular point.</p>
<p>How many times have you written an application or feature that solved a particular problem and then gone back to look at it later and thought to yourself &#8220;this is some really crappy code that I wrote&#8211;I wish I could redo this and do it &#8216;right&#8217;&#8221;? I know I have had that thought countless times looking at things I&#8217;ve written over the last 11 years of my professional development career. Did we think the code was &#8220;crappy&#8221; when we launched the application?  Chances are the answer at that time was no. So, what changed?<br />
<span id="more-245"></span></p>
<p>The answer is &#8220;everything&#8221;. Tools changed, programming methodologies changed, we developers changed (through our experiences since the code release). All this change leads to a moving target for the definition of &#8220;perfect code&#8221;.  What we think is nearly perfect today may look outdated in just a few short months and positively horrible a year or two from now. </p>
<p>Does this mean that we should haphazardly throw together something that will just barely solve the problem at hand because we can never write perfect code? <strong>ABSOLUTELY NOT!!!</strong> We developers should strive to do as great a job that we can with the tools and experience we have available to us at the time. All the while, however, we need to keep in mind that the final judgement of a programming endeavor is &#8220;does it work and solve the problem it&#8217;s supposed to solve&#8221; not &#8220;did I use the right design patterns and include all the current development buzzwords&#8221;. </p>
<p>Once you&#8217;ve delivered the application to the best of your ability, upgrade your abilities! Upgrading your abilities could mean learning a complimentary technology like jQuery or Flex, doing a proof-of-concept application using a development framework that you&#8217;ve not used before, or even brushing up on concepts within the languages you&#8217;ve been using (reading up on different ways to use CFCs, Custom Tags, etc or diving deeper into the SQL language to make your database interactions more efficient). Then, if time/budget permits, go back and look at the code that you&#8217;ve delivered through the &#8220;new eyes&#8221; that you&#8217;ve gained through this learning process. Most likely the level represented by &#8220;the best of your ability&#8221; has just gone up&#8211;and that&#8217;s a GOOD thing!</p>
<p>Scott Stroz posted <a href="http://www.alagad.com/go/blog-entry/throwing-down-the-guantlet" target="_blank">an entry</a> on <a href="http://www.alagad.com/go/blog" target="_blank">Alagad&#8217;s blog</a> today that talks about the value of continuously learning new technologies and techniques to grow yourself as a developer.  One phrase in his article stuck out for me so much that, with his permission, I may print it and put it on the wall above my desk at home.</p>
<blockquote><p>&#8230;if you ever stop learning, well, then the job has passed you by.</p></blockquote>
<p>Sober words indeed, but, in my opinion, absolutely 100% true. So, as much to myself as anyone, I say, &#8220;stay hungry&#8221; for learning opportunities that make you a better developer and allow you to deliver better applications for your clients.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tntechnohermit.com/2009/05/27/there-is-no-such-thing-as-perfect-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Database bullet dodging and lessons learned</title>
		<link>http://www.tntechnohermit.com/2009/04/12/database-bullet-dodging-and-lessons-learned/</link>
		<comments>http://www.tntechnohermit.com/2009/04/12/database-bullet-dodging-and-lessons-learned/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 03:56:08 +0000</pubDate>
		<dc:creator>Dan Skaggs</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://dan.skaggsfamily.ws/?p=182</guid>
		<description><![CDATA[I dodged a very large (metaphorical) bullet yesterday. I&#8217;m not in the habit of trying to find bullets to dodge, but this one found me because it tuns out I didn&#8217;t plan as well as I thought I had. It all started yesterday morning when a client asked me to make some batch updates to [...]]]></description>
			<content:encoded><![CDATA[<p>I dodged a very large (metaphorical) bullet yesterday. I&#8217;m not in the habit of trying to find bullets to dodge, but this one found me because it tuns out I didn&#8217;t plan as well as I thought I had. </p>
<p>It all started yesterday morning when a client asked me to make some batch updates to the data in his MySQL database. So, I wrote a script to make the required updates. Before running the script, I made a backup of the database in case something went wrong. Everything was good so far. I ran the script, checked the database to see if anything looked amiss and called it a night (oh yeah, this was like 11:00pm last night). This morning, I get an urgent text message from the client saying that the data didn&#8217;t look quite right. No problem I think, I made a backup copy of the database last night, I can fix this. But nooooo, that database backup wasn&#8217;t around any more.  Why, you ask?  Oh yeah, that. I saved it to the same location that the regular, nightly backup saves to. So by the time I needed the backup this morning, it was already gone. Luckily, the eventual fix was very simple once I figured out where my script had gone wrong. It could have been really ugly though.<br />
<span id="more-182"></span></p>
<p>So, here&#8217;s to lessons learned:</p>
<ul>
<li>Don&#8217;t do production database work late at night. The root of the problem was that I misread the client&#8217;s original email and wrote my script incorrectly because of it. Part of that failing was the late hour and long day that preceded it.</li>
<li>Plan, plan, plan and re-plan. Thinking my one backup was sufficient was my second mistake. When working with production data, you can absolutely not be &#8220;too backed up&#8221;</li>
<li>Test your scripts on non-production systems first. This client doesn&#8217;t have a dedicated development system, but I do have a few-weeks-old copy of the database on my development machine. Another mistake I made was being lazy and not testing these changes on my local copy before applying them to production</li>
<li>Have a plan in place to verify the database changes as soon as they&#8217;re made. My cursory inspection of the data didn&#8217;t reveal the actual problems that occurred. If I had done this when the client was available to test the changes, we&#8217;d have been able to immediately restore the database and assess what went wrong.</li>
<li>Nothing is ever as simple as it seems. These updates seemed like a walk in the park and lulled me into not taking the precautions I knew I should have</li>
</ul>
<p>So, in the end, my client has his data back where it belongs and I have a few things I&#8217;ve learned I&#8217;ll never do again. My biggest embarrassment in this whole thing is that I consider myself a senior developer.  I&#8217;ve been writing web apps for almost 10 years across Oracle, MS SQL, MySQL and PostGres databases and I should have known better than to take shortcuts. My only excuse is that I&#8217;m human and I can only try to learn from my mistakes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tntechnohermit.com/2009/04/12/database-bullet-dodging-and-lessons-learned/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>External monitor solution for your laptop</title>
		<link>http://www.tntechnohermit.com/2008/11/05/external-monitor-solution-for-your-laptop/</link>
		<comments>http://www.tntechnohermit.com/2008/11/05/external-monitor-solution-for-your-laptop/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 02:13:02 +0000</pubDate>
		<dc:creator>Dan Skaggs</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://dan.skaggsfamily.ws/?p=121</guid>
		<description><![CDATA[One of the things that I&#8217;ve missed greatly since moving to using a laptop as my primary machine just over 3 years ago is the ability to run multiple monitors. My old tower machine had a pretty hefty video card (for the time) in it that had both DVI and VGA connectors built in. At [...]]]></description>
			<content:encoded><![CDATA[<p>One of the things that I&#8217;ve missed greatly since moving to using a laptop as my primary machine just over 3 years ago is the ability to run multiple monitors. My old tower machine had a pretty hefty video card (for the time) in it that had both DVI and VGA connectors built in.  At the time, I ran twin Dell 17&#8243; LCDs off that card and loved the advantages that having twice the screen space gave me.</p>
<p>That all changed when I bought a Dell 17&#8243; laptop and started using that as my primary machine.  While you can leave the laptop open and use the internal LCD screen with an external monitor attached to the monitor connector, that configuration has never suited me well. I have this &#8220;condition&#8221; that things I deal with on a regular basis need to be symetrical (my wife thinks I should be in therapy for it, I think it&#8217;s just a matter of wanting things to look &#8220;right&#8221;), so having a laptop open next to an external monitor just never appealed to me.<br />
<span id="more-121"></span><br />
About 18 months ago, our entire household converted to various models of Apple computers. I have been running an external monitor from the DVI connector built into my Macbook Pro since then. All the while, I have been searching for some sort of solution to let me run 2 (or more) external monitors from my laptop.  I was excited about the announcement of the <a href="http://www.villagetronic.com/vidock/index.html" target="blank">ViDock</a> unit from VillageTronic until I found out the Mac version was $499.</p>
<p>In continuing to search this topic last week, I ran across <a href="http://sewelldirect.com/USB-to-DVI-External-Video-Card-High-Resolution.asp" target="_blank">this device</a> that connects an external monitor via USB 2.0. After reading all the reviews, test results and opinions that I could find, I decided to take a chance on one. At $129 for the version that supports the higher resolution, it&#8217;s a lot less to invest in something if it turned out not to work as advertised.</p>
<p>The unit arrived yesterday afternoon (Tuesday) and I immediately ripped the box open.  I had already downloaded the Mac drivers for it so I ran the install program which forced a reboot at the end of the installation process. Once I had logged back in, I connected the cables to the unit and plugged it into my USB hub. Within a couple of seconds, the second external monitor was working. All I had to do was make a couple of adjustments in the Displays Preference Pane to arrange them as they are arranged on the desk and put the dock back onto the display hooked directly to my DVI port and I was done.</p>
<p>So now, I have my Macbook Pro driving a Samsung 22&#8243; LCD from the built-in DVI port and a Dell 20&#8243; LCD from the USB adapter (and yes I&#8217;m champing at the bit to purchase a second Samsung 22&#8243; so that both monitors are the same and everything is symetrical).</p>
<p>I have noticed that the performance of the USB adapter is not as good as the built in card, but that is to be expected due to the bandwidth limitations of USB 2.0. For instance dragging windows has a noticeable &#8220;choppiness&#8221; to it on the USB monitor vs the built-in one.  For this reason alone, I decided to discontinue my use of Leopard&#8217;s Spaces function.  The way I&#8217;m using it now is that I have my Eclipse coding environment set up on the USB driven monitor taking up the entire screen.  There isn&#8217;t much motion that happens on that screen other than scrolling code up and down or opening the various panels that I use in Eclipse, so the performance is more than adequate to handle that.</p>
<p>The folks that were testing these had 5 of them hooked up to a mediocre Dell Inspiron 9400 driving 5 separate external monitors with the same kinds of results that I&#8217;ve noted here.  If this continues to work well, I may purchase one or two more and run 3 or 4 screens off of this thing.  I had contemplated purchasing a Mac Pro for the desk to get multi-screen capability. This solution saved me over $3,000 so I&#8217;m definitely glad that I ran across this link last week.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tntechnohermit.com/2008/11/05/external-monitor-solution-for-your-laptop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Living the &#8220;Inbox Zero&#8221; Way</title>
		<link>http://www.tntechnohermit.com/2008/08/10/living-the-inbox-zero-way/</link>
		<comments>http://www.tntechnohermit.com/2008/08/10/living-the-inbox-zero-way/#comments</comments>
		<pubDate>Sun, 10 Aug 2008 23:36:55 +0000</pubDate>
		<dc:creator>Dan Skaggs</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://dan.skaggsfamily.ws/?p=93</guid>
		<description><![CDATA[A few weeks ago I read a series of articles titled &#8220;Inbox Zero &#8211; Action Based Email&#8221; on the 43Folders web site. I had been looking for a better way to keep up with all the things that I needed to do and had happened upon the Todo application for iPhone as discussed in a [...]]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago I read a series of articles titled &#8220;<a href="http://www.43folders.com/izero">Inbox Zero &#8211; Action Based Email</a>&#8221; on the 43Folders web site.  I had been looking for a better way to keep up with all the things that I needed to do and had happened upon the Todo application for iPhone as discussed in a <a href="http://dan.skaggsfamily.ws/2008/08/07/a-cloud-y-revelation/">previous post</a>.  That led me to the online task server named ToodleDo which I started using heavily after doing a &#8220;brain dump&#8221; of all the things running around in my head that I needed to do.</p>
<p>For the lasst two weeks I&#8217;ve been able to successfully maintain 0 messages in the Inbox folders of my 3 main email accounts. I&#8217;m definitely not &#8220;there&#8221; yet with the whole Getting Things Done method of managing what you need to do, but I do feel like this is an important baby step.</p>
<p><span id="more-93"></span>
<p>One of the features of ToodleDo that I&#8217;ve really taken advantage of is the ability to create a special email address that will automatically create a task in your list when you send an email to it.  There is a certain syntax for the subject line that lets you set certain parameters on the task automatically.  Anything in the body of the email automatically gets put in the notes section for the new task. Below is an example:</p>
<p>This is my super important task name !!! #next Monday *ProjectA @work</p>
<blockquote></blockquote>
<p>The first part of that obviously is the task name.  The three !&#8217;s give it a priority of 3 (Highest).  #next Monday sets the due date. *Project A identifies which of your projects you want to associate this with.  Finally the @work identifies the context where this task should be completed.</p>
<p>So now when I read an email, I do one of three things:</p>
<ol>
</li>
<p>Read it, answer it right then if I can do so in 60 seconds or less and archive it</li>
<li>Read it and delete it if it requires no action from me</li>
<li>Read it, forward it to my ToodleDo email address and archive it if it&#8217;s something I need to address in the future.
</ol>
</p>
<p>This eliminates the problem with tasks falling &#8220;below the fold&#8221; in your Inbox and languishing there until months from now when you decide to clean up your Inbox.  It also dovetails with the idea of keeping all your tasks in one place (ToodleDo for me) so that there is less of a chance that something gets lost.</p>
<p>Anyone else using something similar to this?  Any tips on further refining this method to be more productive?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tntechnohermit.com/2008/08/10/living-the-inbox-zero-way/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

