<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-3411034</atom:id><lastBuildDate>Mon, 14 Dec 2009 07:18:40 +0000</lastBuildDate><title>Stephen's Statements</title><description>A little bit of everything from Stephen Duncan Jr, a Programmer/Web Geek working in the defense industry</description><link>http://www.stephenduncanjr.com/default.html</link><managingEditor>noreply@blogger.com (Stephen)</managingEditor><generator>Blogger</generator><openSearch:totalResults>224</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-1704325513755905135</guid><pubDate>Sun, 25 Oct 2009 13:10:00 +0000</pubDate><atom:updated>2009-10-25T09:12:33.059-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>sports</category><category domain='http://www.blogger.com/atom/ns#'>movies</category><category domain='http://www.blogger.com/atom/ns#'>music</category><title>Brand New Eyes</title><description>&lt;p&gt;
I recently bought three albums: Paramore's "&lt;a href='http://www.amazon.com/Brand-New-Eyes-Paramore/dp/B002FRNCG0/'&gt;Brand New Eyes&lt;/a&gt;", Rise Against's "&lt;a href='http://www.amazon.com/Appeal-Reason-Rise-Against/dp/B001FYRNJQ/'&gt;Appeal To Reason&lt;/a&gt;", and Kings of Leon's "&lt;a href='http://www.amazon.com/Only-Night-Kings-Leon/dp/B001C3KCSY/'&gt;Only By The Night&lt;/a&gt;".  So far, "Brand New Eyes" is the one grabbing my attention with several good songs and some variety of style.  And, as always with Paramore, Hayley Williams' voice is amazing.
&lt;/p&gt;
&lt;p&gt;
After "Ignorance", the angry song getting play on radio (angry songs are always fun to get into and sing along with), "Brick By Boring Brick" is my next favorite on the album.  After listening the song and going over the lyrics on Friday night, we watched Dollhouse, and the ending of the show reminded me strongly of one verse:
&lt;/p&gt;
&lt;pre&gt;
Well, if it's not real
You can't hold it in your hand
You can't feel it with your heart
And I won't believe it
But if it's true
You can see it with your eyes
Oh, even in the dark
And that's where I want to be, yeah
&lt;/pre&gt;
&lt;p&gt;
While it doesn't match the song overall (on Dollhouse, it wasn't Sierra's choice to be in a "relationship" that wasn't real), the match up of Sierra recognizing her love for Victor even without any memory of him and "if it's true, you can see it with your eyes, oh, even in the dark" connected to me.  Especially as Diane and I had been discussing how much to read into the "even in the dark" part of the song (balancing the fantasy/escapism the song is against vs "true/real" dreams/faith).
&lt;/p&gt;
&lt;p&gt;
We watched Gran Torino last night, which was better than I thought it would be.  Now I'm looking forward to watching a football match (Arsenal v West Ham) and a football game (Dallas Cowboys v Atlanta Falcons) today.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-1704325513755905135?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2009/10/brand-new-eyes.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-4996025222974819613</guid><pubDate>Mon, 16 Mar 2009 01:47:00 +0000</pubDate><atom:updated>2009-03-15T21:01:20.578-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>programming</category><category domain='http://www.blogger.com/atom/ns#'>web</category><category domain='http://www.blogger.com/atom/ns#'>meta</category><title>JQuery For Archives</title><description>&lt;p&gt;
Instead of working on the conversion of the blog to &lt;a href="http://webby.rubyforge.org/"&gt;Webby&lt;/a&gt;, I spent much of the day playing with &lt;a href="http://jquery.com/"&gt;jQuery&lt;/a&gt; and JavaScript.  A good portion was mostly wasted time attempting to make the loading of the syntax-highlighting scripts more dynamic.  While this ultimately failed, it did get me to re-learn a lot of JavaScript and jQuery.
&lt;/p&gt;
&lt;p&gt;
Rather than put that time completely to waste, I decided to prettify the archives section.  Without JavaScript enabled, you get a linked list of links for each month of each year that I've published something.  Now, with JavaScript, I transform that list of links into drop-downs for each year, where you can select the month within the year, and it will take you to the archive page for that month.
&lt;/p&gt;
&lt;p&gt;
Now, for the code.  First, on each blog page (via the template), I load my JavaScript file, and I load jQuery via &lt;a href="http://code.google.com/apis/ajaxlibs/"&gt;Google AJAX Libraries API&lt;/a&gt;:
&lt;pre class="brush: xml"&gt;
&amp;lt;script type="text/javascript" src="/js/main.js"&gt;&amp;lt;/script&gt;
&amp;lt;script type="text/javascript" src="http://www.google.com/jsapi"&gt;&amp;lt;/script&gt;
&amp;lt;script type="text/javascript"&gt;
    google.load('jquery', '1.3.2');

    google.setOnLoadCallback(function() {
            prettify_archives();
    });
&amp;lt;/script&gt;
&lt;/pre&gt;
This runs prettify_archives function:
&lt;pre class="brush: javascript"&gt;
function prettify_archives() {
    var years = [];

    $("#archives &gt; ul &gt; li").each(function() {
        var year = new RegExp(/\s(\d{4})/).exec($(this).text())[1];

        if ($.inArray(year, years) == -1) {
            years.push(year);
        }
    });

    years.reverse();

    var html = ['&amp;lt;h4 style="margin:0;"&gt;Archives&amp;lt;/h4&gt;'];

    $(years).each(function() {
        html.push('&amp;lt;select style="width: 11em;" ' +
            'onchange="document.location.href=this.options[this.selectedIndex].value;"&gt;');
        html.push('&amp;lt;option selected="selected"&gt;' + this + '&amp;lt;/option&gt;');
        $("#archives &gt; ul &gt; li:contains('" + this + "') &gt; a").each(function() {
            html.push('&amp;lt;option value="' +
                $(this).attr('href')
                + '"&gt;'
                + $(this).text()
                + '&amp;lt;/option&gt;');
        });

        html.push('&amp;lt;/select&gt;&amp;lt;br /&gt;');
    });

    $('#archives &gt; ul').replaceWith(html.join("\n"));
}
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-4996025222974819613?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2009/03/jquery-for-archives.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-6821589411172759141</guid><pubDate>Sun, 15 Mar 2009 14:18:00 +0000</pubDate><atom:updated>2009-03-15T09:32:53.152-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>programming</category><category domain='http://www.blogger.com/atom/ns#'>web</category><category domain='http://www.blogger.com/atom/ns#'>meta</category><title>Minor Website Updates</title><description>&lt;p&gt;
So, I stayed up &lt;em&gt;way&lt;/em&gt; too late last night uploading version after version of this website.  I updated the version of the &lt;a href="http://alexgorbatchev.com/wiki/SyntaxHighlighter"&gt;syntax-highlighter&lt;/a&gt; I used on the one code sample I've posted.  Nothing special there, but the fall-back when Javascript isn't enabled is nicer, as it's a pre-tag, instead of a text-area like before.
&lt;/p&gt;
&lt;p&gt;
I fixed all the pages to have the extension .html instead of .shtml.  The .shtml was leftover from when I used to use server-side-includes instead of a combination of &lt;a href="http://www.blogger.com"&gt;Blogger&lt;/a&gt; templates &amp; &lt;a href="http://webby.rubyforge.org/"&gt;Webby&lt;/a&gt; layouts to handle common layout issues.  Here's the content of the .htaccess file I used to make sure old links are given a permanent (301) redirect to the new extension:
&lt;pre class="brush: plain"&gt;
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)\.shtml$ /$1.html [R=301,L]
&lt;/pre&gt;
&lt;/p&gt;
&lt;p&gt;
During the process, I noticed that Blogger wasn't producing an archive index page anymore.  So I added archives to the sidebar for each blog.  I made my css rules a bit more generic by making sidebar sections a class, instead of duplicating rules for different ids.
&lt;/p&gt;
&lt;p&gt;
All of this took a bit longer than it should because any changes on the Blogger side required republishing the whole site (actually twice, once for the main blog, once for the politics blog).  Whereas, for the non-blog content, I could run Webby locally, rsync it to my VirtualBox Ubuntu Server VM, and test it locally.  So my next task is to figure out how to turn an export of this blog into Webby source files so that I can manage the whole process locally (and get my blog posts into version control as a bonus).
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-6821589411172759141?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2009/03/minor-website-updates.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-572325758441494047</guid><pubDate>Fri, 17 Oct 2008 02:27:00 +0000</pubDate><atom:updated>2009-03-15T09:42:58.217-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>web</category><category domain='http://www.blogger.com/atom/ns#'>meta</category><title>Twitter</title><description>&lt;p&gt;
Despite the utter wasteland that is this blog, I've decided to start posting to yet another place on the internet: &lt;a href="https://twitter.com/jrduncans"&gt;Twitter&lt;/a&gt;.  The theory goes that if you're interested in knowing the minutiae of my life, you can follow me on Twitter (or subscribe to my Twitter feed or what have you).  I, knowing that everyone looking at my Twitter posts has implicitly consented to being bombarded with inane details about my day, can safely post such details with the concern of them being "blog-worthy", or even "Facebook-status-worthy".
&lt;/p&gt;
&lt;p&gt;
Now, if only I can do something &lt;em&gt;interesting&lt;/em&gt;, I may have a reason to post something to my blog again...
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-572325758441494047?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2008/10/twitter.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-8574957445872079778</guid><pubDate>Fri, 20 Jun 2008 00:23:00 +0000</pubDate><atom:updated>2008-06-19T20:32:51.191-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>web</category><title>Unmaintained Web Applications</title><description>&lt;p&gt;
This week I'm having to finally end my use of two web applications from major vendors.  &lt;a href="http://www.bloglines.com"&gt;Bloglines&lt;/a&gt; had several of my feeds not update properly from June 3 through June 17th.  I still haven't received any follow-up e-mail regarding the issue.  Besides, for a feed-reading application, you'd think Bloglines could manage to communicate to its users through, I don't know, some kind of syndicated XML feed?  On the 16th I was fed up with the lack of a fix, and the lack of a response, so I switched over to Google Reader.  Sure, on the 17th Bloglines finally fixed the issue, but it was way too late by then.  Getting my 309 feeds into Google Reader went fairly smoothly; a few folders weren't created so I had make the folders and place the feeds back into them.  I'll miss Bloglines true "keep unread" or "pinning" feature, as well as the ability to group posts by the feed when reading a folder.  But I'll get used to Google Reader's way of doing things if it means a reliable service that doesn't feel abandoned, despite its ownership by Ask.com.  Plus I'll also get a better feed sharing mechanism, and finally have a Feed Search that works (despite Bloglines being owned by a search company, there's was never helpful).
&lt;/p&gt;
&lt;p&gt;
The same basic experience repeated itself this week, this time from Yahoo.  While the majority of people use &lt;a href="http://del.icio.us"&gt;del.icio.us&lt;/a&gt; for online bookmarking, I'd jumped on Yahoo's other service: &lt;a href="http://myweb2.search.yahoo.com/"&gt;My Web&lt;/a&gt;, mostly because it saved the page contents for you to search through in addition to the page title and tagging.  However, a month or so ago, the RSS feed for my public bookmarks started showing junk.  That was fixed within a week, but it started happening again this week.  Now I can't even log in to the site.  I filled out some tech support form I found on Yahoo (not that easy to find), but I've gotten no response.  I've been able to access the bookmarks through another view (Yahoo's "My Bookmarks"), exported them, and am now importing them to del.icio.us.  Hopefully Yahoo will maintain that a little better.
&lt;/p&gt;
&lt;p&gt;
I guess in once sense this is same feeling everyone who bet on one of several competing technologies and lost feels. There were real benefits that led me to pick the apps I did, but the world didn't agree, and now I've paid the price for sticking with losers too long.  Luckily some level of data portability has made that price a lot lower than it could have been.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update&lt;/strong&gt;: There are two new feeds you might want to track due to this change:
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://feeds.delicious.com/rss/jrduncans"&gt;My del.icio.us bookmarks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.google.com/reader/public/atom/user/04495378980343823701/state/com.google/broadcast"&gt;My  Google Reader shared items&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
You can also get these changes automatically using my &lt;a href="http://pipes.yahoo.com/pipes/pipe.run?_id=kvDiT_652xGFI58ljwtvUw&amp;_render=rss"&gt;all-in-one Yahoo Pipes feed&lt;/a&gt;.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-8574957445872079778?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2008/06/unmaintained-web-applications.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-4788299812978485094</guid><pubDate>Sat, 23 Feb 2008 15:33:00 +0000</pubDate><atom:updated>2008-02-23T10:37:25.658-05:00</atom:updated><title>Job Change</title><description>&lt;p&gt;
You know my blog's neglected when I don't even think to announce a change of job until the weekend after starting at the new place.  On Monday I started working at &lt;a href="http://www.cormineid.com/"&gt;Cormine Intelligent Data&lt;/a&gt;.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-4788299812978485094?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2008/02/job-change.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-8929134795238931571</guid><pubDate>Fri, 15 Feb 2008 00:15:00 +0000</pubDate><atom:updated>2008-02-14T19:26:10.450-05:00</atom:updated><title>Definitely, Maybe</title><description>&lt;p&gt;
I just watched &lt;a href="http://www.imdb.com/title/tt0832266/"&gt;Definitely, Maybe&lt;/a&gt; with Diane as our Valentine's day thing.  It was fantastically cute and sweet.  Ryan Reynolds was funny and charming, as usual.  Isla Fischer was very likeable and adorable.  Abigail Breslin, however, stole the show as the precocious and completely sweet daughter.  I found the movie very enjoyable, though I am a total sucker for all forms of romantic comedies.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-8929134795238931571?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2008/02/definitely-maybe.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-1910564373022249021</guid><pubDate>Sun, 22 Apr 2007 18:17:00 +0000</pubDate><atom:updated>2007-04-22T14:00:20.029-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>programming</category><title>EasyMock-PropertyUtils 1.1 Released</title><description>I have released &lt;a class="internal" href="http://www.stephenduncanjr.com/projects/easymock-propertyutils/index.html"&gt;EasyMock-PropertyUtils 1.1&lt;/a&gt;, and it's available &lt;a href="http://repo1.maven.org/maven2/com/stephenduncanjr/easymock-propertyutils/1.1/"&gt;in the Maven repository&lt;/a&gt; or for &lt;a href="http://jrduncans.googlecode.com/files/easymock-propertyutils-1.1.zip"&gt;download directly&lt;/a&gt;.  If you have issues, &lt;a href="http://code.google.com/p/jrduncans/issues/list"&gt;post them at the Google Code site&lt;/a&gt;, or ask at the &lt;a href="http://groups.google.com/group/easymock-propertyutils"&gt;Google Group/Mailing List&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
The main changes from 1.0 are:
&lt;ul&gt;
&lt;li&gt;Ability to match against an object&lt;/li&gt;
&lt;li&gt;Static matcher methods are renamed to &lt;code&gt;propEq&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-1910564373022249021?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2007/04/easymock-propertyutils-11-released.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-5462489817226787387</guid><pubDate>Sun, 01 Apr 2007 14:51:00 +0000</pubDate><atom:updated>2007-04-01T09:58:45.906-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>humor</category><title>April Fool's Day Banned</title><description>&lt;p&gt;
Due to significant decreases in productivity, the United Nations announced today that it was banning April Fool's Day.  They also cited human rights violations, stating that the shame felt by those who were fooled infringed upon the inherent dignity of all human beings.  A follow-up proposal to categorize all practical jokes as torture under the Geneva Convention is still under deliberation.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-5462489817226787387?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2007/04/april-fools-day-banned.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-116368250347533351</guid><pubDate>Thu, 16 Nov 2006 13:04:00 +0000</pubDate><atom:updated>2006-11-16T08:11:18.313-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>programming</category><title>EasyMock-PropertyUtils 1.0 Released</title><description>&lt;p&gt;
I've released &lt;a href="http://www.stephenduncanjr.com/projects/easymock-propertyutils/index.html"&gt;EasyMock-PropertyUtils 1.0&lt;/a&gt;, and it's available &lt;a href="http://repo1.maven.org/maven2/com/stephenduncanjr/easymock-propertyutils/1.0/"&gt;in the Maven repository&lt;/a&gt;.  If you have issues, &lt;a href="http://code.google.com/p/jrduncans/issues/list"&gt;post them at the Google Code site&lt;/a&gt;.  If you use it, just post a comment here to let me know.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-116368250347533351?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2006/11/easymock-propertyutils-10-released.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-116166126340346484</guid><pubDate>Tue, 24 Oct 2006 03:37:00 +0000</pubDate><atom:updated>2006-10-23T23:24:26.086-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>sports</category><title>Tony Romo</title><description>&lt;p&gt;
While I've been frustrated by Bledsoe's consistency, I was never among the Dallas Cowboy fans that was calling for Tony Romo to replace Bledsoe.  I didn't think an unproven quarterback could make much difference.  But the drive I just watched Tony Romo lead was very impressive.  No matter how tonight's game finishes, I see Romo as the quarterback for the Cowboys for the rest of the season.  The biggest benefit: it looks like Dallas games will be more exciting on the offensive end.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update&lt;/strong&gt;: Well, Romo made enough mistakes to make my prediction that he will be the QB the rest of the season questionable.  I think I'd still prefer Romo, but I'm not sure if Bill Parcells will agree.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-116166126340346484?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2006/10/tony-romo.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-116145438434308001</guid><pubDate>Sat, 21 Oct 2006 17:56:00 +0000</pubDate><atom:updated>2009-03-15T00:40:17.296-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>programming</category><title>Steve Yegge: On Programming Better</title><description>&lt;p&gt;
I've recently finished reading all of &lt;a href="http://steve.yegge.googlepages.com/blog-rants"&gt;Steve Yegge's blog-rants&lt;/a&gt;.  The overarching theme is Steve searching for ways to do better at software development.  For instance, &lt;a href="http://steve.yegge.googlepages.com/being-the-averagest"&gt;Being the Averagest&lt;/a&gt; on why many programmers aren't trying to get better, and &lt;a href="http://steve.yegge.googlepages.com/practicing-programming"&gt;Practicing Programming&lt;/a&gt; on how to get better for those who listened and decided they want to try.  He also chronicles his search for a &lt;a href="http://steve.yegge.googlepages.com/language-grubbing"&gt;better&lt;/a&gt; &lt;a href="http://steve.yegge.googlepages.com/tour-de-babel"&gt;programming&lt;/a&gt; &lt;a href="http://steve.yegge.googlepages.com/language-trickery-and-ejb"&gt;language&lt;/a&gt;.  I suggest reading all of the essays; hopefully they'll inspire you to be a better programmer, and you can take advantage of the work "Stevey" has done to guide you down the path of improvement.  Stevey wrote all these articles while working at Amazon; make sure to also check out his &lt;a href="http://steve-yegge.blogspot.com"&gt;current blog&lt;/a&gt; now that he works at Google.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-116145438434308001?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2006/10/steve-yegge-on-programming-better.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-115965267889118677</guid><pubDate>Sat, 30 Sep 2006 21:43:00 +0000</pubDate><atom:updated>2006-09-30T16:44:38.906-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>personal</category><category domain='http://www.blogger.com/atom/ns#'>pictures</category><title>Scott and Dana's Wedding</title><description>&lt;p&gt;
My brother, Scott, just &lt;a href="http://flickr.com/photos/stephenduncanjr/sets/72157594305381367/"&gt;got married last night&lt;/a&gt;.  Congratulations Scott and Dana!
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-115965267889118677?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2006/09/scott-and-danas-wedding.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-115895716286365958</guid><pubDate>Fri, 22 Sep 2006 20:26:00 +0000</pubDate><atom:updated>2006-09-22T15:32:42.876-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>programming</category><title>Announcing: XPath-Replacement Maven Plugin</title><description>&lt;p&gt;
I'm looking for feedback on my &lt;a class="internal" href="/projects/xpathreplacement-maven-plugin/index.html"&gt;XPath Replacement Maven Plugin&lt;/a&gt;.  It's barebones right now; please send me any ideas you have on how to make it better, or just let me know if you'r even interested in it.  The goal of the plugin is to allow you to do configuration (similar to normal Ant/Maven filtering), but without requiring placeholders so that your source version has a valid value that let's a developer get going straight from source.
&lt;/p&gt;
&lt;p&gt;
I also updated the &lt;a class="internal" href="/projects/easymock-propertyutils/index.html"&gt;EasyMock Property Utilities&lt;/a&gt; site to include the example posted here on the blog.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-115895716286365958?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2006/09/announcing-xpath-replacement-maven.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-115852519263683365</guid><pubDate>Sun, 17 Sep 2006 20:26:00 +0000</pubDate><atom:updated>2009-03-14T23:07:23.713-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>programming</category><title>EasyMock-PropertyUtils Example</title><description>&lt;p&gt;
Here's the promised example of how to use my &lt;a class="internal" href="/projects/easymock-propertyutils/index.html"&gt;EasyMock-PropertyUtils &lt;/a&gt;library.  It's a TestNG test class with two test methods.  The first, &lt;code&gt;testSayHelloTo()&lt;/code&gt; uses the single-property matcher test.  The second, &lt;code&gt;testSay()&lt;/code&gt; uses the multiple-property matcher test by supplying a &lt;code&gt;Map&lt;/code&gt; of property names to property values.  If you haven't used EasyMock before, this should also serve as an example of how EasyMock can allow you to unit test in isolation a method that interacts with another class.  Check out the &lt;a href="http://easymock.org/EasyMock2_2_Documentation.html"&gt;EasyMock Documentation&lt;/a&gt; for more information.
&lt;/p&gt;
&lt;pre class="brush: java"&gt;
package test;

import static com.stephenduncanjr.easymock.EasyMockPropertyUtils.propertiesEq;
import static com.stephenduncanjr.easymock.EasyMockPropertyUtils.propertyEq;
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;

import java.util.HashMap;
import java.util.Map;

import org.testng.annotations.Test;

/**
 * Test the Service class.
 */
public class ServiceTest
{
    /**
     * Test the sayHelloTo method.
     */
    @Test
    public void testSayHelloTo()
    {
        String address = "someone@example.com";
        MessagingService messagingService = createMock(MessagingService.class);
        messagingService.sendMessage(propertyEq(Message.class, "address", address));
        replay(messagingService);

        Service service = new Service();
        service.setMessagingService(messagingService);
        service.sayHelloTo(address);

        verify(messagingService);
    }

    /**
     * Test the say method.
     */
    @Test
    public void testSay()
    {
        String address = "someone@example.com";
        String text = "some text";

        Map&amp;lt;String, Object&amp;gt; properties = new HashMap&amp;lt;String, Object&amp;gt;();
        properties.put("address", address);
        properties.put("message", text);

        MessagingService messagingService = createMock(MessagingService.class);
        messagingService.sendMessage(propertiesEq(Message.class, properties));
        replay(messagingService);

        Service service = new Service();
        service.setMessagingService(messagingService);
        service.say(address, text);

        verify(messagingService);
    }
}
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-115852519263683365?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2006/09/easymock-propertyutils-example.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-115847071961648131</guid><pubDate>Sun, 17 Sep 2006 05:10:00 +0000</pubDate><atom:updated>2006-09-17T15:48:20.293-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>programming</category><title>Announcing: EasyMock-PropertyUtils</title><description>&lt;p&gt;
I've created a new open-source project: &lt;a class="internal" href="/projects/easymock-propertyutils/index.html"&gt;EasyMock-PropertyUtils&lt;/a&gt;.  Basically, this library allows you to use JavaBeans-style property matching for arguments when using &lt;a href="http://easymock.org"&gt;EasyMock&lt;/a&gt;.  I plan to add some end-user documentation and blog some more about both EasyMock and this project soon.  This is being done separately from EasyMock because it's use of non-refactoring safe strings doesn't fit the philosophy of EasyMock.  The project is quite small, and I have no idea what the interest-level will be, so I'm just hosting it alongside the rest of &lt;a href="http://code.google.com/p/jrduncans/"&gt;my personal projects&lt;/a&gt; on my &lt;a href="http://code.google.com/hosting/"&gt;Google Code Hosting&lt;/a&gt; site.  Hopefully there isn't something like this already out there that I missed.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-115847071961648131?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2006/09/announcing-easymock-propertyutils.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-115676180733142386</guid><pubDate>Mon, 28 Aug 2006 10:33:00 +0000</pubDate><atom:updated>2006-08-28T05:43:27.346-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>politics</category><title>Michael J. Totten in Israel</title><description>&lt;p&gt;
&lt;a href="http://www.michaeltotten.com/"&gt;Michael J. Totten&lt;/a&gt; is a fantastic independent journalist.  He's currently in Isreal.  Check out his &lt;a href="http://www.michaeltotten.com/archives/001251.html"&gt;latest piece on Gaza&lt;/a&gt;.  Or &lt;a href="http://www.michaeltotten.com/archives/001238.html"&gt;this piece from the Israel-Lebanon border&lt;/a&gt;.  Hopefully from there you'll want to read everything he's been writing.  If, like me, you find that Michael is providing valuable information in a direct fashion you can't get elsewhere, then make sure to donate some money to him so he can keep reporting from the Middle East.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-115676180733142386?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2006/08/michael-j-totten-in-israel.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-115560504896761281</guid><pubDate>Tue, 15 Aug 2006 01:18:00 +0000</pubDate><atom:updated>2006-08-14T20:42:02.626-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>blogger</category><category domain='http://www.blogger.com/atom/ns#'>web</category><title>New Blogger Features</title><description>&lt;p&gt;
A &lt;a href="http://buzz.blogger.com/2006/08/blogger-in-beta.html"&gt;new version&lt;/a&gt; of &lt;a href="http://www.blogger.com"&gt;Blogger&lt;/a&gt; is in beta now that appears to have the &lt;a href="http://www.stephenduncanjr.com/2006/06/atom-10-and-blogger.shtml"&gt;features&lt;/a&gt; I've been wanting.  Now if only I could get in on the beta...
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update&lt;/strong&gt;: How will the &lt;a href="http://evhead.com/2006/08/new-blogger-embarking.asp"&gt;new dynamic architecture&lt;/a&gt; impact those of us using the static FTP-to-my-server functionality?
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-115560504896761281?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2006/08/new-blogger-features.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-115457150153007046</guid><pubDate>Thu, 03 Aug 2006 02:08:00 +0000</pubDate><atom:updated>2006-08-02T21:18:21.540-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>programming</category><title>My Google Code Hosted Project</title><description>&lt;p&gt;
I've &lt;a href="http://code.google.com/p/jrduncans/"&gt;created a project&lt;/a&gt; on &lt;a href="http://code.google.com/hosting/"&gt;Google Code Hosting&lt;/a&gt;.  It's really just a place for me to put code I'm playing with so that it's version-controlled and accessible anywhere.  Right now it has a simple command-line draw-the-high-card game that I'm using to try to learn &lt;a href="http://www.ruby-lang.org/en/"&gt;Ruby&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
While there may be &lt;a href="http://jroller.com/page/fate?entry=another_googleturd"&gt;valid reasons&lt;/a&gt; that Google Code Hosting isn't good enough to really compete for hosting real open-source projects, for my needs nothing beats the no-barrier-to-entry factor here.  If nothing else, it's nice to have a proper SVN repository available to me for free.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-115457150153007046?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2006/08/my-google-code-hosted-project.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-115247681839595074</guid><pubDate>Sun, 09 Jul 2006 20:23:00 +0000</pubDate><atom:updated>2006-07-09T18:03:41.580-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>sports</category><title>No Story-Book Ending for Zidane</title><description>&lt;p&gt;
Rather than a story-book ending for Zinedine Zidane, he's sent off after being red-carded for a totally classless move: head-butting an Italian player in the chest.  Whether his team will also lose the World Cup final remains to be seen...
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update&lt;/strong&gt;: Zidane's team, France, do lose.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update 2&lt;/strong&gt;: &lt;a href="http://www.youtube.com/watch?v=zoADvPC7IvI"&gt;Video of the incident&lt;/a&gt;.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-115247681839595074?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2006/07/no-story-book-ending-for-zidane.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-115180230372133629</guid><pubDate>Sun, 02 Jul 2006 01:03:00 +0000</pubDate><atom:updated>2006-08-14T20:18:35.926-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>atom</category><category domain='http://www.blogger.com/atom/ns#'>blogger</category><category domain='http://www.blogger.com/atom/ns#'>web</category><title>Atom 1.0 Switch Trend</title><description>&lt;p&gt;
&lt;a href="http://www.niallkennedy.com/blog/archives/2006/07/atom-10-now-def.html"&gt;Niall Kennedy made the switch&lt;/a&gt;.  Now will &lt;a href="http://www.blogger.com"&gt;Blogger&lt;/a&gt; step up?
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-115180230372133629?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2006/07/atom-10-switch-trend.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-115102858088163279</guid><pubDate>Fri, 23 Jun 2006 01:57:00 +0000</pubDate><atom:updated>2006-06-22T21:09:40.883-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>atom</category><category domain='http://www.blogger.com/atom/ns#'>blogger</category><category domain='http://www.blogger.com/atom/ns#'>web</category><title>Atom 1.0 and Blogger</title><description>&lt;p&gt;
Bloglines now has Atom 1.0 support, and though there are &lt;a href="http://www.intertwingly.net/blog/2006/06/21/Forward-Motion"&gt;some problems&lt;/a&gt; there still, it's time for a new target.  I'm sure it's clear from all my posts that I'm a big proponent of Atom 1.0.  However, I probably appeared to be a bit of a hypocrite, using an aggregator that didn't support it, and only providing a deprecated Atom 0.3 feed.  It's true, I'm also lazy and picky, and haven't wanted to make a change in software over these issues.  It's so much more satisfying to simply complain and wait for the software to change so that I don't have to.
&lt;/p&gt;
&lt;p&gt;
To continue that trend: What's up with &lt;a href="http://blogger.com"&gt;Blogger&lt;/a&gt; still producing Atom 0.3 feeds?  Initially, it seemed &lt;a href="http://www.google.com"&gt;Google&lt;/a&gt; gave the Atom movement a big boost by supporting it in Blogger.  But now the Atom 1.0 specificiation has been out for quite some time, and usage of Atom 0.3 is discouraged.  Hopefully the reason for not changing yet was fear about support in aggregators, and with &lt;a href="http://bloglines.com"&gt;Bloglines&lt;/a&gt; probably being the biggest (most users) holdout, maybe now is the time to start seeing Blogger produce Atom 1.0.  A geek can dream...
&lt;/p&gt;
&lt;p&gt;
So, who are the bloggers with clout or at least information about Blogger?  I had been trying to read the blogs of several Blogger engineers, but they mostly moved on, I believe.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-115102858088163279?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2006/06/atom-10-and-blogger.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-115102771195819079</guid><pubDate>Fri, 23 Jun 2006 01:41:00 +0000</pubDate><atom:updated>2006-06-22T20:55:11.993-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>programming</category><title>Abdera Project</title><description>&lt;p&gt;
The &lt;a href="http://incubator.apache.org/abdera/"&gt;Abdera&lt;/a&gt; Apache Incubator project is now up and running.  The project is to provide tools for &lt;a href="http://www.ietf.org/rfc/rfc4287.txt"&gt;The Atom Syndication Format&lt;/a&gt; and &lt;a href="http://www.ietf.org/internet-drafts/draft-ietf-atompub-protocol-08.txt"&gt;The Atom Publishing Protocol&lt;/a&gt;.  Right now I'm mostly contributing by maintaining the &lt;a href="http://maven.apache.org"&gt;Maven&lt;/a&gt; build configuration for the Java implementation.  I hope to be able to do a little more later (especially once the World Cup is over...)
&lt;/p&gt;
&lt;p&gt;
I'm convinced that there's a lot of potential for uses of these two standards (well, soon-to-be-standard in the case of the publishing protocol), beyond blogs &amp;amp; aggregators.  Having a good Java library for working with this stuff is going to enable a lot of applications, and save a lot of time and money for tools and products built on Atom.  Open source projects succeed based on participation, so if you might need to use Atom, then please, come join in.  It's just getting started, so it's a good time to get yourself familiar with the code and get your ideas into the mix.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-115102771195819079?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2006/06/abdera-project.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-115089381801565131</guid><pubDate>Wed, 21 Jun 2006 12:42:00 +0000</pubDate><atom:updated>2006-06-21T07:43:38.026-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>atom</category><category domain='http://www.blogger.com/atom/ns#'>web</category><title>Bloglines and Atom: Beginning</title><description>&lt;p&gt;
&lt;a href="http://www.bloglines.com/about/news#106"&gt;Bloglines has begun adding suport for Atom 1.0&lt;/a&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-115089381801565131?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2006/06/bloglines-and-atom-beginning.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3411034.post-114937352811589606</guid><pubDate>Sat, 03 Jun 2006 22:14:00 +0000</pubDate><atom:updated>2006-06-05T17:07:11.773-05:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>programming</category><title>Abdera Maven 2 Build</title><description>&lt;p&gt;
I attempted to make a &lt;a href="http://maven.apache.org"&gt;Maven 2&lt;/a&gt; build for the proposed &lt;a href="http://wiki.apache.org/incubator/AbderaProposal"&gt;Abdera project&lt;/a&gt;.  I've never made a patch before, so I attempted it by checking in the contents of the &lt;a href="http://www.snellspace.com/public/abdera.tar.gz"&gt;original tar&lt;/a&gt; into my local-file-system SVN repository, and then made my changes against that, and finally &lt;a class="internal" href="/files/abdera-maven2-patch.txt"&gt;generated a patch&lt;/a&gt; using the &lt;a href="http://subclipse.tigris.org/"&gt;Subclipse tools&lt;/a&gt;. In case that isn't good enough, I'm also providing &lt;a class="internal" href="/files/abdera-maven2.tar.gz"&gt;the resulting tar&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
The most important thing to note is that when I switched it from Ant to Maven, one unit test now fails that passed before.  The resulting XML that is supposed to be checked contains some unexpected spaces.  This is probably due to some dependency version difference.  The dependencies will need to be looked at and worked on; I just specified enough to get the projects to compile for the most part.
&lt;/p&gt;
&lt;p&gt;
I did update the Ant build file, so that still works.  The security and examples modules also build now in Maven (but I did not add them to the Ant build).  There's plenty of stuff to be improved/changed.  The test module should probably go away, and the tests should be moved into the module that is being tested.  The "bin" folders shoud go away.  The .project files should go away in my opinion (they are assumably broken right now, as I didn't update them).
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411034-114937352811589606?l=www.stephenduncanjr.com%2Fdefault.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.stephenduncanjr.com/2006/06/abdera-maven-2-build.html</link><author>noreply@blogger.com (Stephen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></item></channel></rss>