<?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"
	>

<channel>
	<title>Everyday Coder</title>
	<atom:link href="http://everydaycoder.com/feed" rel="self" type="application/rss+xml" />
	<link>http://everydaycoder.com</link>
	<description>The rants and raves of a programmer in the trenches.</description>
	<pubDate>Thu, 06 Nov 2008 15:27:05 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>Invoices&#8230; right under my nose&#8230;</title>
		<link>http://everydaycoder.com/2008/09/24/invoices-right-under-my-nose.html</link>
		<comments>http://everydaycoder.com/2008/09/24/invoices-right-under-my-nose.html#comments</comments>
		<pubDate>Wed, 24 Sep 2008 04:18:07 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
		
		<category><![CDATA[Software Reviews]]></category>

		<category><![CDATA[GNU]]></category>

		<category><![CDATA[invoice]]></category>

		<category><![CDATA[invoicing]]></category>

		<category><![CDATA[open source]]></category>

		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://everydaycoder.com/?p=42</guid>
		<description><![CDATA[I'm slightly embarrassed about my choice for invoicing mentioned in a previous post. I hastily went with the first one listed when I should have looked at the second page of the google search. All this time, it's been right under my nose. I use it on a daily basis. It's GnuCash. 


The thing that [...]]]></description>
			<content:encoded><![CDATA[<p>I'm slightly embarrassed about my choice for invoicing mentioned in a <a href="http://everydaycoder.com/2008/09/15/bambooinvoice-installed.html">previous post</a>. I hastily went with the first one listed when I should have looked at the second page of the google search. All this time, it's been right under my nose. I use it on a daily basis. It's <a href="http://gnucash.org">GnuCash</a>. </p>
<p style="text-align: center;"><a href="http://gnucash.org"><img src="http://everydaycoder.com/wp-content/uploads/2008/09/gnucash-banner.png" alt="GnuCash - Free Accounting Software" title="GnuCash Banner" width="453" height="45" class="size-full wp-image-43" /></a></p>
<p><span id="more-42"></span></p>
<p>The thing that got me was that I, for some reason, thought that a web-based application was what I needed. The more I thought about it, the more I realized that account management needed to be offline. I spent a night reading through the excellent documentation included with GnuCash, and I was up and using the included business tools to create invoices. And, even better, it integrates with my other accounts that I was already using in GnuCash (checking, savings, etc).</p>
<p>I'm no accountant, and would never like to be, but now that I've spent a little time reading about the double-entry system in GnuCash, I actually understand that money coming in and going out needs to be accounted for somewhere. Even if it's not my money. Anyway, I feel a little bad that I spent time using and evaluating the aforementioned online invoicing system, but everyday in this job is a learning experience and that's what keeps me going.</p>
]]></content:encoded>
			<wfw:commentRss>http://everydaycoder.com/2008/09/24/invoices-right-under-my-nose.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>BambooInvoice Installed</title>
		<link>http://everydaycoder.com/2008/09/15/bambooinvoice-installed.html</link>
		<comments>http://everydaycoder.com/2008/09/15/bambooinvoice-installed.html#comments</comments>
		<pubDate>Mon, 15 Sep 2008 17:01:55 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
		
		<category><![CDATA[Software Reviews]]></category>

		<category><![CDATA[invoice]]></category>

		<category><![CDATA[invoicing]]></category>

		<category><![CDATA[review]]></category>

		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://everydaycoder.com/?p=23</guid>
		<description><![CDATA[
I do some free-lance development work and decided I needed some software to help me bill/invoice my clients. But just as important, I needed to keep history so that when tax time comes around, I have a record of all the clients I've billed and all the payments I've received. I did a google search [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://bambooinvoice.org"><img class="aligncenter size-full wp-image-33" title="BambooInvoice Logo" src="http://everydaycoder.com/wp-content/uploads/2008/09/bamboo_logo.png" alt="" width="348" height="75" /></a></p>
<p>I do some free-lance development work and decided I needed some software to help me bill/invoice my clients. But just as important, I needed to keep history so that when tax time comes around, I have a record of all the clients I've billed and all the payments I've received. I did a google search for "<a href="http://www.google.com/search?q=invoice+software+open+source">invoice software open source</a>" and thought I'd test drive the first one on the list: <a href="http://bambooinvoice.org">BambooInvoice</a>.<span id="more-23"></span></p>
<p>Just from the looks of the website, I thought I was in luck. Someone obviously put some time in designing and branding a nice product. I quickly discovered, however, that this open source project didn't seem to have an obvious link to its source code repository. I also noticed that there was no "Bugs are here" link to let me see/report bugs. There was a link to a forum on the front page, so I assumed it was all tracked there. I pushed forward.</p>
<p>First, I downloaded the zip file and unzipped it in a tmp folder. I was immediately rubbed the wrong way. I noticed in the unzip output that 2 folders were created, <span class="code">bambooinvoice</span>, as expected and <span class="code">__MACOSX</span>. No worries, I took care of the bogus resource files:<br />
<code>rm -rf __MACOSX</code><br />
Then, I did an <span class="code">ls</span>... Ugh, every file is listed in blue text with a bright green background which, on my terminal, means that the permissions are wide open.</p>
<div id="attachment_27" class="wp-caption aligncenter" style="width: 510px"><a href="http://everydaycoder.com/wp-content/uploads/2008/09/bamboo-rev.png"><img class="size-full wp-image-27" title="Inital ls of bamboo invoices directory." src="http://everydaycoder.com/wp-content/uploads/2008/09/bamboo-rev.png" alt="Inital ls of bamboo invoices directory." width="500" height="219" /></a><p class="wp-caption-text">Inital ls of bamboo invoices directory.</p></div>
<p>This is a pet peeve of mine so, I fixed it:<br />
<code>$ find . -type f -exec chmod 0644 \{} \;<br />
$ find . -type d -exec chmod 0755 \{} \;</code></p>
<p>Then, I had decided that I needed to check for more cruft, before doing anything else. A quick <span class="code">find</span> and I see <span class="code">.svn</span> folders and <span class="code">.DS_Store</span> files peppered everywhere. Again, I'm annoyed, but it's an easy fix:<br />
<code>$ find . -name ".DS_Store" -exec rm \{} \;<br />
$ find . -name ".svn" -exec rm -r \{} \;</code></p>
<p>I was satisfied with the directory structure and moved on to the manual for installation. The manual was visually well put together and seemed to have easy-to-follow instructions. I modified the configuration files locally as explained and created the database on my webhost. Easy-peasy. The next step simply said "Upload your files –  Not much to say here. Place the files on your webserver." So I did. I jumped into <span class="code">ncftp</span> and did a quick <span class="code">put -R .</span> and away I went. Ten minutes later it was still running. I remembered that the size of the zip file was only about 2MBs. I knew something was fishy. I jumped to another terminal and did a <span class="code">find . -type f | wc -l</span> to see how many files we were dealing with here. The result: 531. I thought to myself, "wow, that's a lot of files for an invoicing system." So if your webhost supports extracting zip files on the server, I highly recommend you zip up your modified bambooinvoice folder and send it to your host as a single file.</p>
<p>The files were uploaded and I was eager to get to the easy part of the install. The manual recommended that I set the permissions on the <span class="code">invoices_temp</span>, and <span class="code">img/logo</span> folders to <span class="code">0777</span> so that it can save invoices and a custom logo. No problem, <span title="The control panel that my shared webhost uses.">cPanel</span> makes that easy. The next step was to run the install script. I did that and it appeared to work. Hurray, it was installed.</p>
<p>I logged into the site and told Firefox to remember my password for me. I was very pleased with the layout and "prettiness" of the interface. I went into settings to modify all of my information. So far so good. When attempting to update my settings, I was given an error: "The Password field may only contain alpha-numeric characters, underscores, and dashes." Sure enough, during the install, the password I created had an exclamation point in it. That was easy to fix, and so I committed the changes. The install script and the settings area should follow the same rules for validation. I also noticed that Firefox kept pre-populating the first password field in the settings panel. This happened because the HTML form input had the same name as the login page. I turned it off and wasn't bothered again by it.</p>
<p>When testing out the invoice creation I noticed that my logo that I uploaded in the settings area wasn't there. I went back to settings and uploaded it again. The "Advanced Settings" section didn't give me any indication of whether the logo was set or not. I continued to try and create an invoice and still no custom logo and no error anywhere. I assumed I forgot to set the permissions correctly, so I double checked that. Still no logo. I then dug into the PHP code to see why it could be failing. It turns out that there is an inherent limit to the dimensions of a logo. A logo must be at most 900 pixels wide and 200 pixels tall. Mine was 600x228. Opened the GIMP and problem solved. The logo appeared. I also noticed that the existing invoices I created kept the original logo and weren't changed. I also tested and the existing invoices didn't change when modifying taxes either. Excellent. I don't want past invoices changed for those reasons.</p>
<p>Further down in the manual there were instructions on how to remove the <span class="code">/index.php/</span> from the URLs and make it easier to link directly and bookmark. The inclusion of a <span class="code">.htaccess</span> file with the suggested rules was uploaded. That didn't seem to work. After searching, I found out I had to modify the <span class="code">config.php</span> file and  change the <span class="code">$config['index_page']</span> to <span class="code">''</span> from <span class="code">'index.php'</span>. This change then caused an infinite redirect loop when attempting to access the main page to login. This was fixed by changing the <span class="code">.htaccess</span> to:</p>
<p><code>&lt;IfModule mod_rewrite.c&gt;<br />
RewriteEngine on<br />
RewriteCond $1 !^(index\.php|img|css|js|robots\.txt|favicon\.ico|update\.php|install\.php)<br />
RewriteRule ^(.*)$ index.php/$1 [L,QSA]<br />
&lt;/IfModule&gt;</code></p>
<p>I was then left to play around for quite a while with no more issues. The invoices were flowing and PDFs were generating all as expected. I was a bit disappointed by the fact that there is no apparent way to customize invoice layouts. But, for now, I can live with it.</p>
<p>I hope you don't take this post as negative toward BambooInvoice. It is still considered a "pre 1.0" product and thus isn't ready for bashing. I'm just pointing out what I did when installing the product and how that differed from what I expected. Hopefully by the time that 1.0 rolls around, most of these pesky things will disappear. The real testament for the product is the fact that I am, in fact, using BambooInvoice as my primary invoicing application.</p>
<p>I installed <a href="http://bambooinvoice.org">BambooInvoice</a> 0.8.7 built on August 25, 2008 in a <a href="http://lunarpages.com">shared hosting environment</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://everydaycoder.com/2008/09/15/bambooinvoice-installed.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>3D is Back&#8230;</title>
		<link>http://everydaycoder.com/2008/09/11/3d-is-back.html</link>
		<comments>http://everydaycoder.com/2008/09/11/3d-is-back.html#comments</comments>
		<pubDate>Thu, 11 Sep 2008 16:53:17 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
		
		<category><![CDATA[Leisure]]></category>

		<category><![CDATA[3d]]></category>

		<category><![CDATA[hardware]]></category>

		<category><![CDATA[movies]]></category>

		<guid isPermaLink="false">http://everydaycoder.com/?p=17</guid>
		<description><![CDATA[It seems that 3D is on its way back! And not a moment too soon. First off, there are movies in my local theaters: "Fly Me to the Moon," "Journey to Center of the Earth." Apparently several of our theaters have adopted Real D technologies without having to build-out a new theater. I've only seen [...]]]></description>
			<content:encoded><![CDATA[<p>It seems that 3D is on its way back! And not a moment too soon. First off, there are movies in my local theaters: "<a href="http://www.imdb.com/title/tt0486321/">Fly Me to the Moon</a>," "<a href="http://www.imdb.com/title/tt0373051/">Journey to Center of the Earth</a>." Apparently several of our theaters have adopted <a href="http://reald.com/">Real D</a> technologies without having to build-out a new theater. I've only seen "Fly Me to the Moon" and it was fun, but really lacked in story development. The 3D aspect, however, was awesome, the rockets launching, spacecraft floating, flies dancing, all looked great.</p>
<p>I've also discovered that these 3D technologies are coming to the Home-theater and to my PC. Check out <a href="http://3droundup.com/">3D Roundup</a> for some great current news on the subject. I've added 3D Roundup to my list of permanent bookmarks. It's exciting to see all of this cool stuff happening, and hopefully I can be a part of it.</p>
]]></content:encoded>
			<wfw:commentRss>http://everydaycoder.com/2008/09/11/3d-is-back.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>The Real Transformers</title>
		<link>http://everydaycoder.com/2007/06/14/real_transformers.html</link>
		<comments>http://everydaycoder.com/2007/06/14/real_transformers.html#comments</comments>
		<pubDate>Thu, 14 Jun 2007 19:24:57 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
		
		<category><![CDATA[Leisure]]></category>

		<guid isPermaLink="false">http://everydaycoder.com/2007/06/14/real_transformers.html</guid>
		<description><![CDATA[I was checking out some videos on YouTube today and came across this one. I love this video. Basically, it's a stop-motion animation using transformer action figures. If you're a fan of the Transformers (from way back), you'll like this video.
I must say that the dialog was a bit lacking and the sound needs a [...]]]></description>
			<content:encoded><![CDATA[<p>I was checking out some videos on YouTube today and came across <a href="http://youtube.com/watch?v=vYlmSRCAeXg">this one</a>. I love this video. Basically, it's a stop-motion animation using transformer action figures. If you're a fan of the Transformers (from way back), you'll like this video.</p>
<p>I must say that the dialog was a bit lacking and the sound needs a little work too, but it's still worth it. Another great day online!</p>
<blockquote><p>Side Note: Man, I really need to upgrade my Wordpress. I'd love to be able to embed the movie on this page. Anyway...</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://everydaycoder.com/2007/06/14/real_transformers.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Enum as an XML Attribute with XStream</title>
		<link>http://everydaycoder.com/2006/12/08/enum-attribute-xstream.html</link>
		<comments>http://everydaycoder.com/2006/12/08/enum-attribute-xstream.html#comments</comments>
		<pubDate>Fri, 08 Dec 2006 05:56:43 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
		
		<category><![CDATA[Coding]]></category>

		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://everydaycoder.com/2006/12/08/enum-attribute-xstream.html</guid>
		<description><![CDATA[I am the type of developer that uses existing 3rd-party solutions whenever possible. Lately, I've been using XStream for object persistance in a standalone Java application. So far, I must say that I'm extremely impressed with how well this API is put together and also with its simplicity. Exporting an entire object tree is as [...]]]></description>
			<content:encoded><![CDATA[<p>I am the type of developer that uses existing 3rd-party solutions whenever possible. Lately, I've been using <a href="http://xstream.codehaus.org/">XStream</a> for object persistance in a standalone Java application. So far, I must say that I'm extremely impressed with how well this API is put together and also with its simplicity. Exporting an entire object tree is as simple as <code>new XStream().toXML(myObjectTree);</code></p>
<p>One of the great features of XStream is its ability for customization of the XML. I began customizing my XML and ran into a slight snag (not a bug, but a snag). I couldn't figure out how to get an enum field to output as an attribute rather than a child element. Example Java class:</p>
<blockquote class="code"><p>class Card {<br />
    int val;<br />
    Type type;</p>
<p>    enum Type {<br />
        HEARTS, CLUBS, DIAMONDS, SPADES<br />
    }<br />
}</p></blockquote>
<p>Now let's export it:</p>
<blockquote class="code"><p>void export(List&lt;Card&gt; cards) {<br />
    XStream xs = new XStream();<br />
    xs.alias("cards", List.class);<br />
    xs.alias("card", Card.class);<br />
    xs.useAttributeFor("val", int.class);<br />
    xs.useAttributeFor("type", Type.class);</p>
<p>    System.out.print(xs.toXML(cards));<br />
}</p></blockquote>
<p>Executing the above code will produce the following XML:</p>
<blockquote class="code"><p>&lt;cards&gt;<br />
    &lt;card val="1"&gt;<br />
        &lt;type&gt;SPADES&lt;/type&gt;<br />
    &lt;/card&gt;<br />
&lt;/cards&gt;</p></blockquote>
<p>As you can see, the <code>type</code> field is not properly used as an attribute like I instructed: <code>xs.useAttributeFor("type", Type.class);</code> The reason? Well, I wasn't sure, so, being the lazy developer I am, I trolled around Google, et. al. to find if someone else had this problem. Nothing. And after a few minutes of poking around in the XStream documentation, I was at a loss. I sent an email describing my problem to the users' mailing list, expecting to wait a day or so for an answer. Supprisingly, I recieved an answer within a few hours, from the project lead himself.</p>
<p>Jörg informed me that attribute converters must be of type <code>SingleValueConverter</code>. Attributes are single text values and don't need all of that other object (un)ravelling stuff. Jörg also pointed me to <a href="http://jira.codehaus.org/browse/XSTR-367">an issue</a> that had been opened in the project's bug tracking system just a few days ago that also described this.</p>
<p>The solution, at the moment, is to simply create a specific converter for my Enum types that is a <code>SingleValueConverter</code>. The code for this is below:</p>
<blockquote class="code"><p>public class SingleValueEnumConverter extends AbstractSingleValueConverter {</p>
<p>    private final Class enumType;</p>
<p>    public SingleValueEnumConverter(Class type) {<br />
        this.enumType = type;<br />
    }</p>
<p>    public boolean canConvert(Class c) {<br />
        return c.equals(enumType);<br />
    }</p>
<p>    public Object fromString(String value) {<br />
        return Enum.valueOf(enumType, value);<br />
    }<br />
}</p></blockquote>
<p>And to modify the XStream example above:</p>
<blockquote class="code"><p>XStream xs = new XStream();<br />
xs.alias("cards", List.class);<br />
xs.alias("card", Card.class);<br />
xs.useAttributeFor("val", int.class);<br />
xs.useAttributeFor("type", Type.class);</p>
<p>xs.registerConverter(new SingleValueEnumConverter(Card.Type.class));</p>
<p>System.out.print(xs.toXML(cards));</p></blockquote>
<p>And now the XML looks like this:</p>
<blockquote class="code"><p>&lt;cards&gt;<br />
    &lt;card val="1" type="SPADES"/&gt;<br />
&lt;/cards&gt;</p></blockquote>
<p>So as you can see, this was exactly what I needed. I love coding in a world where we have such a large community of people willing to take a few minutes of their time to guide you in the right direction. Great job XStream!</p>
]]></content:encoded>
			<wfw:commentRss>http://everydaycoder.com/2006/12/08/enum-attribute-xstream.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Soft Clipping with Java 2D</title>
		<link>http://everydaycoder.com/2006/10/01/soft-clipping-java-2d.html</link>
		<comments>http://everydaycoder.com/2006/10/01/soft-clipping-java-2d.html#comments</comments>
		<pubDate>Sun, 01 Oct 2006 20:16:19 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
		
		<category><![CDATA[Coding]]></category>

		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://everydaycoder.com/2006/10/01/soft-clipping-java-2d.html</guid>
		<description><![CDATA[The current application that I'm coding uses an interface composed mostly of rounded rectangles. Initially it looked really cool. I later added transparency to some of the panels so that the parent panel's background would show through. On the Mac, it looked really great. I had since ran the application on Windows and a few [...]]]></description>
			<content:encoded><![CDATA[<p>The current application that I'm coding uses an interface composed mostly of rounded rectangles. Initially it looked really cool. I later added transparency to some of the panels so that the parent panel's background would show through. On the Mac, it looked really great. I had since ran the application on Windows and a few of my decisions regarding how I made the rounded rectangle backgrounds came back to haunt me.</p>
<p>With a little more testing, I discovered that the issues lied with anti-aliasing and clipping using <code>Graphics2D</code>. Since this issue was purely asthetic, I moved on to more pressing issues. Then, about a week later I got my monthly Tech Tips from Sun. Talk about reading my mind. The <a href="http://java.sun.com/mailers/techtips/corejava/2006/tt0923.html">Java 2D Trickery - Core Java Technologies Technical Tips</a> contains 2 excellent Java 2D tips. The first one titled <q><a href="http://java.sun.com/mailers/techtips/corejava/2006/tt0923.html#1">Java 2D Soft Clipping</a></q> was the answer I needed.</p>
<p>After about 5 minutes, the problem was resolved and it now looks great on both platforms. Excellent tip! Well done Chris Campbell! I suggest you check it out and subscribe if you haven't already done so.</p>
]]></content:encoded>
			<wfw:commentRss>http://everydaycoder.com/2006/10/01/soft-clipping-java-2d.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Our Old Friend: GridBagLayout</title>
		<link>http://everydaycoder.com/2006/09/28/old-friend-gridbaglayout.html</link>
		<comments>http://everydaycoder.com/2006/09/28/old-friend-gridbaglayout.html#comments</comments>
		<pubDate>Thu, 28 Sep 2006 20:22:23 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
		
		<category><![CDATA[Coding]]></category>

		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://everydaycoder.com/2006/09/28/old-friend-gridbaglayout.html</guid>
		<description><![CDATA[ I stumbled across this article about my old friend the GridBagLayout today. I for one thought I was in a very small minority when it comes to actually using and liking the GridBagLayout. Well, Jeff Friesen proved that he is also on my side when he wrote Harness the Power of Java's GridBagLayout. The [...]]]></description>
			<content:encoded><![CDATA[<p> I stumbled across this article about my old friend the GridBagLayout today. I for one thought I was in a very small minority when it comes to actually using and liking the GridBagLayout. Well, Jeff Friesen proved that he is also on my side when he wrote <a href="http://www.informit.com/articles/article.asp?p=607374">Harness the Power of Java's GridBagLayout</a>. The article is a very good <em>demystifier</em> for those non-believers out there.</p>
<p>Since this is the first article in a series, it really only covers the basics, but it promises even more. Jeff does say that <q cite="http://www.informit.com/articles/article.asp?p=607374">in case you're still not impressed with GridBagLayout, part 3 presents the JGoodies FormLayout alternative, and compares this layout manager with GridBagLayout so you can choose the layout manager that works best for you.</q> I can't wait. People are always telling me to switch to <a href="http://www.jgoodies.com/freeware/forms/">FormLayout</a>, but I've used it in the past and have not looked back. I just did not like dealing with those cryptic configuration strings (<code>"3dlu p d:fill 4f 5u"</code>) all the time. I look forward to the 3<sup>rd</sup> part of the series.</p>
<p>If your scratching your head over which LayoutManager to use for forms, I would recommend the GridBagLayout. Our old friend.</p>
]]></content:encoded>
			<wfw:commentRss>http://everydaycoder.com/2006/09/28/old-friend-gridbaglayout.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>All Grown Up</title>
		<link>http://everydaycoder.com/2006/09/22/all-grown-up.html</link>
		<comments>http://everydaycoder.com/2006/09/22/all-grown-up.html#comments</comments>
		<pubDate>Fri, 22 Sep 2006 16:05:42 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://everydaycoder.com/2006/09/22/all-grown-up.html</guid>
		<description><![CDATA[Today, I bit the bullet and bought the everydaycoder.com domain. I also setup my own blog so that I have more control over the look and feel as well as standards compliance. I feel like I just graduated from kindergarten to first grade. It does feel really nice to put my own shinny cool header [...]]]></description>
			<content:encoded><![CDATA[<p>Today, I bit the bullet and bought the everydaycoder.com domain. I also setup my own blog so that I have more control over the look and feel as well as standards compliance. I feel like I just graduated from kindergarten to first grade. It does feel really nice to put my own shinny cool header and customize this site to my heart's content.
</p>
<p>My speech (as valedictorian of my recent graduation): I'd first like to thank the <a href="http://everydaycoder.blogspot.com">little people</a> without which I would not be here today. I'd also like to thank my <a href="http://wordpress.org">new school</a>. I love what you've done with the place and I can't wait to learn more.</p>
<p>Ok. I think I've carried the metaphor far enough. Seriously, Blogger was a great home for getting started. But I do like, so far, WordPress and love the new found freedom.</p>
<p>So what do you think? Can anyone guess what computer has the text "Everyday Coder" printed on it in the header? Good luck.</p>
]]></content:encoded>
			<wfw:commentRss>http://everydaycoder.com/2006/09/22/all-grown-up.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>An Incredible Machine</title>
		<link>http://everydaycoder.com/2006/09/16/an-incredible-machine.html</link>
		<comments>http://everydaycoder.com/2006/09/16/an-incredible-machine.html#comments</comments>
		<pubDate>Sat, 16 Sep 2006 16:42:00 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
		
		<category><![CDATA[Leisure]]></category>

		<guid isPermaLink="false">http://everydaycoder.themossbunch.com/?p=4</guid>
		<description><![CDATA[While working on large projects, it's good to have a distraction
every now and then. My son and I can't watch this video enough. If you're into
Rube Goldberg Machines, you'll love this video. It's a full 13 minutes long and is absolutely mesmerizing.
I hope you enjoy it. I can't get that jingle out of my head. [...]]]></description>
			<content:encoded><![CDATA[<p>While working on large projects, it's good to have a distraction<br />
every now and then. My son and I can't watch <a href="http://video.google.com/videoplay?docid=3163263343187879320&#038;pr=goog-sl">this video</a> enough. If you're into<br />
<a href="http://en.wikipedia.org/wiki/Rube_goldberg">Rube Goldberg Machines</a>, you'll love this video. It's a full 13 minutes long and is absolutely mesmerizing.</p>
<p>I hope you enjoy it. I can't get that jingle out of my head. <a href="http://en.wikipedia.org/wiki/Pitagora_Suicchi">Pi-ta-go-ra Su-icchi</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://everydaycoder.com/2006/09/16/an-incredible-machine.html/feed</wfw:commentRss>
		</item>
		<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>
		</item>
	</channel>
</rss>
