<?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>Everyday Coder &#187; Tools</title>
	<atom:link href="http://everydaycoder.com/category/coding/tools/feed" rel="self" type="application/rss+xml" />
	<link>http://everydaycoder.com</link>
	<description>The rants and raves of a programmer in the trenches.</description>
	<lastBuildDate>Wed, 24 Sep 2008 04:20:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Subversion Goodies</title>
		<link>http://everydaycoder.com/2006/09/01/subversion-goodies.html</link>
		<comments>http://everydaycoder.com/2006/09/01/subversion-goodies.html#comments</comments>
		<pubDate>Fri, 01 Sep 2006 13:35:00 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://everydaycoder.themossbunch.com/?p=5</guid>
		<description><![CDATA[I use Subversion for source code management now on all my projects. Before, I used to use CVS like everyone else. Recently I discovered some things about subversion that I hadn't known.
On Windows, I *can* use putty as an ssh wrapper for subversion (svn+ssh://). This was a welcome surprise, because I was using TortoiseSVN which [...]]]></description>
			<content:encoded><![CDATA[<p>I use <a href="http://subversion.tigris.org">Subversion</a> for source code management now on all my projects. Before, I used to use CVS like everyone else. Recently I discovered some things about subversion that I hadn't known.</p>
<p>On Windows, I <strong>*can*</strong> use putty as an ssh wrapper for subversion (svn+ssh://). This was a welcome surprise, because I <em>was</em> using <a href="http://tortoisesvn.tigris.org">TortoiseSVN</a> which included its own ssh wrapper. TortoiseSVN is widely accepted among most developers on Windows, but I'm still used to the old CVS command line ('<kbd>cvs up</kbd>', '<kbd>cvs co</kbd>', etc) and I always hated wading through Explorer to do an update. Anyway, I happened to notice a Subversion folder in my Application Data folder the other day. I went in there and found a file called <code>config</code>. In that file, I saw the old familiar line commented out:</p>
<blockquote>
<div><kbd># ssh = $SVN_SSH ssh</kbd></div>
</blockquote>
<p>I immediately uncommented the line and changed it to:</p>
<blockquote>
<div><kbd>ssh = \\putty\\plink.exe</kbd></div>
</blockquote>
<p>In my CVS days I did know that <code>plink</code> is the program you use to tunnel through ssh. I tried to go in and run svn, but I kept getting a "file not found" error. I then looked more carefully at the config file and noticed there was a commented-out section: <code>[tunnels]</code>. I uncommented this section and it worked! That was easy.</p>
<p>My other great discovery was that SVN does, in fact, support keyword substitution like our old friend CVS. You know, <code>$Id$</code>, <code>$Revision$</code>, etc. I have such a habit of putting '<code>// $Id$</code>' at the top of my source files; its not even funny. So the following command magically makes keywords work for svn:</p>
<blockquote>
<div><kbd>svn propset svn:keywords "Id Author Rev" build.xml</kbd></div>
</blockquote>
<p>There are more keywords, of course, and you can see the reference to them in the <a href="http://svnbook.red-bean.com/nightly/en/svn.advanced.props.html#svn.advanced.props.special.keywords">subversion documentation</a>. Executing the above command works for the file given, but if you want it to work with every file, you'll need to specify the keywords in the <code>[auto-props]</code> section of your subversion config file (See above). After trolling a bit, I did find a <a href="http://cwiki.apache.org/confluence/display/GMOxDEV/Subversion+Client+Configuration">nice example of a subversion config file</a> on an Apache site.</p>
<p>I hope you put these "discoveries" to good use.</p>
]]></content:encoded>
			<wfw:commentRss>http://everydaycoder.com/2006/09/01/subversion-goodies.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Effective Java: A Must Have</title>
		<link>http://everydaycoder.com/2006/08/30/effective-java-a-must-have.html</link>
		<comments>http://everydaycoder.com/2006/08/30/effective-java-a-must-have.html#comments</comments>
		<pubDate>Wed, 30 Aug 2006 15:37:00 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://everydaycoder.themossbunch.com/?p=6</guid>
		<description><![CDATA[Every Java developer must own a copy of Effective Java: Programming Language Guide by Joshua Bloch. If you haven't read this book and you think you're a good Java developer, think again. This book challenges me to be a better coder every day.
The layout of the book is extremely easy to follow and reference. The [...]]]></description>
			<content:encoded><![CDATA[<p>Every Java developer must own a copy of <a href="http://java.sun.com/docs/books/effective/">Effective Java: Programming Language Guide</a> by Joshua Bloch. If you haven't read this book and you think you're a good Java developer, think again. This book challenges me to be a better coder every day.</p>
<p>The layout of the book is extremely easy to follow and reference. The individual concepts are grouped into "Items" and those items are grouped into topics that are the chapters of the book. At the very least, every programmer needs to read the first 18 items. I'll give you a brief example of the power of this book.</p>
<blockquote><p>Item 7: Obey the general contract when overriding <code>equals</code></p>
</blockquote>
<p>Every Java developer tends to think he/she knows when and how to override the <code>Object.equals</code> method. This item explains the core concepts of the method and when and how to implement it. It's over 10 pages of explanation with code examples. I have used the techniques that Josh explained in almost every class I've written since I read this item. Before I read this book almost all of my <code>equals</code> methods failed to follow the <em>general contract</em>.</p>
<p>I could go on all day, but I know this isn't the place for that, so I really do hope that if you're a Java developer, you will own this book if you don't already. The full table of contents <a href="http://java.sun.com/docs/books/effective/toc.html">can be seen</a> on the book's site.</p>
]]></content:encoded>
			<wfw:commentRss>http://everydaycoder.com/2006/08/30/effective-java-a-must-have.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
