<?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>ScarTech &#187; Development</title>
	<atom:link href="http://www.scartech.net/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.scartech.net</link>
	<description>The musings of a confessed code junkie and a game geek.</description>
	<lastBuildDate>Wed, 07 Jul 2010 01:34:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Old School &#8211; A Warning</title>
		<link>http://www.scartech.net/2007/10/23/old-school-a-warning/</link>
		<comments>http://www.scartech.net/2007/10/23/old-school-a-warning/#comments</comments>
		<pubDate>Wed, 24 Oct 2007 01:52:53 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Continuous Improvement]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.scartech.net/archives/10</guid>
		<description><![CDATA[Nostalgia is defined as a longing for the past. Many things give me a feeling of nostalgia: old pictures, 80&#8242;s music, Robert Aspirin books. The list goes on. It&#8217;s just not my development environment, and it better not be for you either. As developers we should be moving forward with not just with our technologies, but [...]]]></description>
			<content:encoded><![CDATA[<p>Nostalgia is defined as a longing for the past. Many things give me a feeling of nostalgia: old pictures, 80&#8242;s music, <a href="http://en.wikipedia.org/wiki/Robert_Asprin">Robert Aspirin</a> books. The list goes on. It&#8217;s just not my development environment, and it better not be for you either. As developers we should be moving forward with not just with our technologies, but our tools as well. I remember writing <a href="http://java.sun.com/javase/">Java </a>code using the <a href="http://www.lancs.ac.uk/staff/steveb/cpaap/pfe/default.htm">Programmer&#8217;s File Editor</a> and compiling at the command line. No debugger. No forms designer. I used good old System.out.println. Not exactly the most efficient use of my time. Today I wouldn&#8217;t think about writing code without a good <a href="http://en.wikipedia.org/wiki/Integrated_development_environment">IDE</a>. With features such as <a href="http://en.wikipedia.org/wiki/IntelliSense">Intellisense</a>, modern IDEs are a godsend. There are plenty of good, free development environments available. Here&#8217;s a few:</p>
<ul>
<li><a href="http://www.jcreator.com/">JCreator </a>- Java</li>
<li><a href="http://msdn2.microsoft.com/en-us/express/default.aspx">Visual Studio Express</a> - .NET</li>
<li><a href="http://www.eclipse.org/pdt/index.php">Eclipse </a>- PHP</li>
<li><a href="http://www.bloodshed.net/devcpp.html">Bloodsheed Dev-C++</a></li>
<li><a href="http://www.icsharpcode.net/OpenSource/SD/">SharpDevelop </a>- .NET</li>
<li><a href="http://www.activestate.com/Products/komodo_edit/">Komodo Edit</a> &#8211; Perl, PHP, Python, Ruby</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.scartech.net/2007/10/23/old-school-a-warning/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Copy-Paste ain&#8217;t coding.</title>
		<link>http://www.scartech.net/2007/10/07/copy-paste-aint-coding/</link>
		<comments>http://www.scartech.net/2007/10/07/copy-paste-aint-coding/#comments</comments>
		<pubDate>Sun, 07 Oct 2007 16:48:24 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.scartech.net/archives/17</guid>
		<description><![CDATA[Attention boys and girls! Before we start having fun solving all our problems with elegant code, we&#8217;ve got an important rule to discuss. The Internet is a great resource for software developers, but beware. Control-V should be used with caution. Don&#8217;t copy-paste code unless you fully understand what it&#8217;s doing. We&#8217;ve all seen this situation:  A [...]]]></description>
			<content:encoded><![CDATA[<p>Attention boys and girls! Before we start having fun solving all our problems with elegant code, we&#8217;ve got an important rule to discuss. The Internet is a great resource for software developers, but beware. Control-V should be used with caution. Don&#8217;t copy-paste code unless you fully understand what it&#8217;s doing. We&#8217;ve all seen this situation: </p>
<blockquote><p><em>A friend </em>copies a code snippet he finds online. He doesn&#8217;t quite understand what it&#8217;s doing, but it does what he needs done. He <em>intends </em>to go back and figure out what&#8217;s going on later, but right now he&#8217;s got a deadline to meet. Later on, a bug is discovered that may or may not be caused by the code snippet copied from the Internet. My friend doesn&#8217;t know because he doesn&#8217;t quite understand the snippet. Now he&#8217;s got to <a href="http://en.wikipedia.org/wiki/Grok">grok </a>the snippet before he can even begin figuring out what the problem is.</p></blockquote>
<p>Like most developers, I&#8217;ve always got at least one browser window open to any number of community sites. I can almost always find answers to code questions I have, but I always make sure I completely understand those answers before I implement them. I&#8217;ve been burned before by no doing so. Don&#8217;t get me wrong. I&#8217;m not talking about not turning to the online community for help, but try to understand that help you find online. You&#8217;ll <a href="http://www.softwarebyrob.com/2005/07/02/betterdeveloperpart1makingfans/">become a better developer</a>, and that can&#8217;t be a bad thing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scartech.net/2007/10/07/copy-paste-aint-coding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iTunes SDK and C# &#8211; Part 1</title>
		<link>http://www.scartech.net/2007/09/28/itunes-sdk-and-c-part-1/</link>
		<comments>http://www.scartech.net/2007/09/28/itunes-sdk-and-c-part-1/#comments</comments>
		<pubDate>Sat, 29 Sep 2007 02:06:04 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.scartech.net/archives/11</guid>
		<description><![CDATA[If you&#8217;re like me you&#8217;ve got thousands of songs in your iTunes library. I got a new notebook PC a couple months back, and I decided to move all my music to it since it&#8217;s got plenty of disk space. I know I had lots of songs in my library whose files didn&#8217;t exist anymore. [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re like me you&#8217;ve got thousands of songs in your iTunes library. I got a new notebook PC a couple months back, and I decided to move all my music to it since it&#8217;s got plenty of disk space. I know I had lots of songs in my library whose files didn&#8217;t exist anymore. There&#8217;s a script for removing dead tracks included with the iTunes COM download, so I figured I would port it over to a C# project.</p>
<p>The code is pretty straightforward. Get a reference to iTunes, check the file location of each track in the library and delete the tracks whose files don&#8217;t exist.<br />
<font size="2" color="#2b91af"> </font> </p>
<blockquote><p><font size="2" color="#008000">//create a reference to iTunes</font></p>
<p><font size="2" color="#2b91af">iTunesAppClass</font><font size="2"> iTunes = </font><font size="2" color="#0000ff">new</font><font size="2"> </font><font size="2" color="#2b91af">iTunesAppClass</font><font size="2">();</font></p>
<p><font size="2" color="#008000">//get a reference to the collection of all tracks</font></p>
<p><font size="2" color="#2b91af">IITTrackCollection</font><font size="2"> tracks = iTunes.LibraryPlaylist.Tracks;</font></p>
<p><font size="2" color="#0000ff">for</font><font size="2"> (</font><font size="2" color="#0000ff">int</font><font size="2"> i = trackCount; i &gt; 0; i&#8211;)</font></p>
<p><font size="2">{</font></p>
<p><font size="2">      </font><font color="#2b91af">IITTrack</font><font size="2"> track = tracks[i];</font></p>
<p><font color="#0000ff">      if</font><font size="2"> (track.Kind == </font><font color="#2b91af">ITTrackKind</font><font size="2">.ITTrackKindFile)</font></p>
<p><font size="2">      </font><font size="2">{</font></p>
<p><font size="2">            </font><font color="#2b91af">IITFileOrCDTrack</font><font size="2"> fileTrack = (</font><font color="#2b91af">IITFileOrCDTrack</font><font size="2">)track;</font><font size="2" color="#008000">           </font></p>
<p><font size="2" color="#008000">            //if the file doesn&#8217;t exist, we&#8217;ll delete it from iTunes</font><font size="2" color="#0000ff">           </font></p>
<p><font size="2" color="#0000ff">           if</font><font size="2"> (fileTrack.Location == </font><font size="2" color="#2b91af">String</font><font size="2">.Empty || !System.IO.</font><font color="#2b91af">File</font>.Exists(fileTrack.Location))<font size="2" color="#008000"> </font><font size="2">            </font></p>
<p><font size="2">          {</font></p>
<p><font size="2">                  fileTrack.Delete();</font></p>
<p><font size="2">            }</font></p>
<p><font size="2">      }</font></p>
<p><font size="2">}</font></p></blockquote>
<p>You can download the project here (<a href="http://www.scartech.net/wp-content/uploads/itunescomsample.zip" title="Download Project">Download Project</a>). I put it into a WinForm, used a worker thread to take care of the iTunes work because it can take some time to check a 10K song library, and output the dead tracks removed to a list box.</p>
<p><a target="_blank" href="http://www.scartech.net/wp-content/uploads/itunescsharp.jpg"><img src="http://www.scartech.net/wp-content/uploads/itunescsharp.thumbnail.jpg" alt="itunescsharp.jpg" /></a></p>
<p>I think in part 2 I&#8217;ll add the ability to find duplicate songs and remove the copy with the lower bitrate. I know for sure that I&#8217;ve got quite a few of them. Any other ideas for what can be done with the iTunes SDK to clean up your music library or to just make life simpler?</p>
<p>Here&#8217;s what I used for this project:</p>
<li><a href="http://msdn2.microsoft.com/en-us/express/future/bb421473.aspx">Visual C# 2008 Express Edition</a></li>
<li><a href="http://www.apple.com/itunes/">iTunes 7.4.2.4</a></li>
<li><a href="http://developer.apple.com/sdk/itunescomsdk.html">iTunes COM for Windows SDK</a></li>
<p>FYI. I found about 175 dead tracks out of over 7300 in my library.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scartech.net/2007/09/28/itunes-sdk-and-c-part-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Step away from the code and nobody gets hurt!</title>
		<link>http://www.scartech.net/2007/09/17/step-away-from-the-code-and-nobody-gets-hurt/</link>
		<comments>http://www.scartech.net/2007/09/17/step-away-from-the-code-and-nobody-gets-hurt/#comments</comments>
		<pubDate>Mon, 17 Sep 2007 19:25:31 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.scartech.net/archives/6</guid>
		<description><![CDATA[Remember the scene from the Shining where the wife finds out what Jack Nicholson&#8217;s character has been working so hard on? Pages and pages of the text &#8220;All work and no play make Jack a dull boy.&#8221; As software developers we should all heed this warning. As I was thinking about some of the things I could do to [...]]]></description>
			<content:encoded><![CDATA[<p>Remember the scene from <a href="http://en.wikipedia.org/wiki/The_Shining_(film)">the Shining</a> where the wife finds out what Jack Nicholson&#8217;s character has been working so hard on? Pages and pages of the text &#8220;All work and no play make Jack a dull boy.&#8221; As software developers we should all heed this warning.</p>
<p>As I was thinking about some of the things I could do to become a better developer, one item jumped to the forefront of my mind. Sometimes I just need to step away from the keyboard, get away from the code and recharge my batteries. For me, it might mean getting out in the fresh air for a walk with the dogs, reading a non-tech book, or watching the latest episode of <a href="http://www.usanetwork.com/series/the4400/">4400</a>. It might be different for you, but whatever it is just make sure you get away from the code. Everyone loves to brag about their marathon code-fests depending on caffeine and sugar to make it through. Sometimes they&#8217;re necessary (usually due to poor planning), but they should never be thought of as normal or business as usual. As in all professions, software developers need a good work and home life balance. You&#8217;ll be OK in the short term without one, but eventually it will come back to haunt you.</p>
<p>I look at software developers as one part artist and two parts engineer. Most love what they do, and as a result will put in extremely long hours. I&#8217;m not naive. I know there will be times when you need to put in those extra hours to meet a deadline, but save yourself for those times it&#8217;s absolutely required. I&#8217;ll sometimes come up with some of my better ideas or more elegant solutions when I&#8217;m away from the keyboard. So Unplug. Get out of the chair and do something non-tech related. You&#8217;ll come back to your code refreshed and with new ideas.</p>
<p>Whenever I hear developers talking about how code and tech is their life, I get the exact opposite impression I think they&#8217;re trying to convey. Who wants to work with someone who can only interact with a compiler? Live life a little. There&#8217;s more to it than 1&#8242;s and 0&#8242;s.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scartech.net/2007/09/17/step-away-from-the-code-and-nobody-gets-hurt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Becoming a Better Developer</title>
		<link>http://www.scartech.net/2007/09/16/becoming-a-better-developer/</link>
		<comments>http://www.scartech.net/2007/09/16/becoming-a-better-developer/#comments</comments>
		<pubDate>Sun, 16 Sep 2007 19:41:37 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.scartech.net/archives/4</guid>
		<description><![CDATA[If you regularly read many of the development blogs on the Internet, you&#8217;ve probably seen at least one entry devoted to how someone is going to be a better developer (usually in the next 6 months). In a nutshell, I&#8217;ll list some things I&#8217;ll do to make myself a better developer. I&#8217;ll use ideas I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>If you regularly read many of the development blogs on the Internet, you&#8217;ve probably seen at least <a href="http://arcanecode.wordpress.com/2007/07/13/being-a-better-developer-in-6-months/">one entry</a> devoted to how someone is going to be a better developer (usually in the next 6 months). In a nutshell, I&#8217;ll list some things I&#8217;ll do to make myself a better developer. I&#8217;ll use ideas I&#8217;ve gotten from others and some that I came up with on my own. My specialty is .NET development, so my list will come from that perspective.</p>
<ol>
<li>You&#8217;re reading it. I&#8217;m starting this blog. I already have a <a href="http://www.timscarborough.com">blog </a>dedicated to sports, but this blog will give me the chance to write about tech and development topics that interest me.</li>
<li>I&#8217;ll listen to more tech related podcasts. I&#8217;ve started to listen to Scott Hanselman&#8217;s <a href="http://www.hanselminutes.com/">Hanselminutes</a>, and I&#8217;ll listen in on <a href="http://www.dotnetrocks.com/">.NET Rocks</a> more often. I&#8217;ve always been a fan of <a href="http://www.twit.tv/">TWIT </a>and Steve Gibson&#8217;s <a href="http://www.twit.tv/sn">Security Now</a>. Of course, I&#8217;ll keep listening to <a href="http://www.twit.tv/mbw">MacBreak Weekly</a>.</li>
<li>I&#8217;ll work on a non-work related project. I&#8217;ll work on a project that I&#8217;ll use for my own enjoyment or to solve a problem in my person computing life. I&#8217;ll also use tools or languages that I don&#8217;t already use at work to expand my skill-set.</li>
<li>I&#8217;ll expand my use of unit testing with <a href="http://www.nunit.org/">NUnit </a>or some other application.</li>
<li>Learn about and apply <a href="http://en.wikipedia.org/wiki/Design_pattern_(computer_science)">design patterns</a> to my development projects.</li>
<li>In addition to writing about development, read more about development best practices. That can be books, blogs, or magazines. As long as it&#8217;s good content, it doesn&#8217;t matter where it comes from.</li>
<li>Participate in my <a href="http://www.gcnug.org/">local .NET user group</a>.</li>
<li>Share my new found knowledge with my fellow developers. Either at work or in community web sites.</li>
<li>Create a self action plan for my career development.</li>
</ol>
<p>I think if I stick with the items listed, I can&#8217;t help but become a better developer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.scartech.net/2007/09/16/becoming-a-better-developer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
