<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>A View from Above</title>
	<atom:link href="http://ghostganz.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ghostganz.wordpress.com</link>
	<description>Anders Bengtsson on programming and other things</description>
	<lastBuildDate>Wed, 17 Aug 2011 13:00:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ghostganz.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>A View from Above</title>
		<link>http://ghostganz.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ghostganz.wordpress.com/osd.xml" title="A View from Above" />
	<atom:link rel='hub' href='http://ghostganz.wordpress.com/?pushpress=hub'/>
		<item>
		<title>QL17 camera blog</title>
		<link>http://ghostganz.wordpress.com/2011/03/06/ql17-camera-blog/</link>
		<comments>http://ghostganz.wordpress.com/2011/03/06/ql17-camera-blog/#comments</comments>
		<pubDate>Sun, 06 Mar 2011 17:16:39 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[cameras]]></category>
		<category><![CDATA[Photo]]></category>

		<guid isPermaLink="false">http://ghostganz.wordpress.com/?p=135</guid>
		<description><![CDATA[This blog is sort of in hibernation, but I am writing a bit about the Canonet QL17 G-III camera and its use on the QL17 blog.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ghostganz.wordpress.com&amp;blog=20829261&amp;post=135&amp;subd=ghostganz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This blog is sort of in hibernation, but I am writing a bit about the <strong>Canonet QL17 G-III</strong> camera and its use on the <a title="Canonet QL17 G-III blog" href="http://ql17.tumblr.com"><strong>QL17</strong></a> blog.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ghostganz.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ghostganz.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ghostganz.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ghostganz.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ghostganz.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ghostganz.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ghostganz.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ghostganz.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ghostganz.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ghostganz.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ghostganz.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ghostganz.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ghostganz.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ghostganz.wordpress.com/135/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ghostganz.wordpress.com&amp;blog=20829261&amp;post=135&amp;subd=ghostganz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ghostganz.wordpress.com/2011/03/06/ql17-camera-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5aaf918544b0c5b3c4da3382a0e85ed6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ghostganz</media:title>
		</media:content>
	</item>
		<item>
		<title>Notes On Deprecating Code</title>
		<link>http://ghostganz.wordpress.com/2009/03/22/notes-on-deprecating-code/</link>
		<comments>http://ghostganz.wordpress.com/2009/03/22/notes-on-deprecating-code/#comments</comments>
		<pubDate>Sun, 22 Mar 2009 11:50:00 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Ideas on how to use Java&#8217;s deprecation features: DON&#8217;T deprecate because you intend to re-write at some point. Wait until you&#8217;ve actually produced the replacement or at least know when the replacement will be available. Marking all code you&#8217;re displeased &#8230; <a href="http://ghostganz.wordpress.com/2009/03/22/notes-on-deprecating-code/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ghostganz.wordpress.com&amp;blog=20829261&amp;post=131&amp;subd=ghostganz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em>Ideas on how to use Java&#8217;s deprecation features:</em></p>
<p><strong><span class="caps">DON</span>&#8217;T</strong> deprecate because you intend to re-write at some point. Wait until you&#8217;ve actually produced the replacement or at least know when the replacement will be available. Marking all code you&#8217;re displeased with doesn&#8217;t help anyone, use &#8220;TODO&#8221; comments or something else for that.</p>
<p><strong>DO</strong> document what alternative to the deprecated code to use instead.</p>
<p><strong>DO</strong> document why the code is deprecated. It could be from everything from aesthetic to important security reasons, so your users may want to know.</p>
<p><strong>DO</strong>, if possible, re-implement deprecated code in terms of its replacement. This will both ensure that things continue to work and instruct how to update calling code.</p>
<p><strong><span class="caps">DON</span>&#8217;T</strong> use deprecation if all callers are within your own code base. Just update the callers and remove the code.</p>
<p><strong><span class="caps">DON</span>&#8217;T</strong> deprecate a method if there&#8217;s no real alternative. E.g. if you know a method is needed but don&#8217;t like that it breaks encapsulation you can discourage its use in documentation, but if you use @deprecated all calling code will be plagued with useless warnings.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ghostganz.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ghostganz.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ghostganz.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ghostganz.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ghostganz.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ghostganz.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ghostganz.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ghostganz.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ghostganz.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ghostganz.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ghostganz.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ghostganz.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ghostganz.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ghostganz.wordpress.com/131/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ghostganz.wordpress.com&amp;blog=20829261&amp;post=131&amp;subd=ghostganz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ghostganz.wordpress.com/2009/03/22/notes-on-deprecating-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5aaf918544b0c5b3c4da3382a0e85ed6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ghostganz</media:title>
		</media:content>
	</item>
		<item>
		<title>The Things That Are Wrong With Maven</title>
		<link>http://ghostganz.wordpress.com/2008/10/26/the-things-that-are-wrong-with-maven/</link>
		<comments>http://ghostganz.wordpress.com/2008/10/26/the-things-that-are-wrong-with-maven/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 12:26:00 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[buildr]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Last week I attended a small workshop on building with Maven, which quickly turned into a Buildr workshop once we realized that most attending simply didn&#8217;t like Maven very much. It inspired me to write down some of the things &#8230; <a href="http://ghostganz.wordpress.com/2008/10/26/the-things-that-are-wrong-with-maven/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ghostganz.wordpress.com&amp;blog=20829261&amp;post=115&amp;subd=ghostganz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em>Last week I attended a small workshop on building with Maven, which quickly turned into a Buildr workshop once we realized that most attending simply didn&#8217;t like Maven very much. It inspired me to write down some of the things</em> I <em>don&#8217;t like with Maven:</em></p>
<h3>Verbosity</h3>
<p>Maybe the problem is spelled &#8220;XML&#8221;.</p>
<p><a href="http://incubator.apache.org/buildr/">Buildr</a> shows that you can express essentially the same things as Maven&#8217;s pom files in <em>an order of magnitude</em> fewer lines and still be <em>more</em> readable. Good old Ant has the excuse of being created in a time when <span class="caps">XML</span> was hyped, but there&#8217;s no excuse for the masses of <span class="caps">XML</span> that Maven forces you to create and maintain.</p>
<h3>Working With Legacy Code</h3>
<p>Have you ever tried to introduce Maven to build a large legacy system? Because of Maven&#8217;s inflexibility, you can&#8217;t easily do this in small steps, incrementally moving closer to (Maven&#8217;s idea of) an ideal file and dependency structure. Instead you&#8217;re looking at doing it all in a single huge, messy, risky step.</p>
<h3>Transitive Dependencies</h3>
<p>Nice in theory. In practice this means Maven will download half the internet for you and at the same time making you sensitive to every minor slip-up in any pom of any n-level indirect dependency you have.<br />
Even if your code never invokes the rarely used parts of commons-something that actually depends on commons-kitchen-sink, you&#8217;re going to get commons-kitchen-sink. Or maintain the screenful of <span class="caps">XML</span> to override it.</p>
<h3>Flexibility and Plugins</h3>
<p>Most non-trivial projects have at least one detail that just doesn&#8217;t fit Maven&#8217;s model. In any other build tool that can be easily remedied with (often just a single line of) scripting. In Maven, the solution is <em>plugins</em>.<br />
So your build ends up depending on abandoned third-party plugins just to accomplish the most trivial scripting tasks. So much for dependency management.</p>
<h3>Unit Testing</h3>
<p>When unit testing, you are only interested in two things: Are my tests at 100% and, if not, what is failing? (And, for bragging rights, how many tests do I have?) Just like Ant before it, Maven fails badly at this.<br />
The (mostly useless) stdout from the tested code is puked to the terminal, drowning Maven&#8217;s own test summaries. The causes of failures, on the other hand, are hidden away in report files in some other directory.</p>
<p>I can see the use for &#8220;test reports&#8221; in some scenarios and tool sets, but as a default behavior for a <em>unit</em> test runner they&#8217;re absurd.</p>
<h3>Build Output</h3>
<p>Why is so much useless output written to the terminal during a build? Are they trying to impress Linux Kernel hackers?</p>
<h3>Repositories</h3>
<p>It&#8217;s good practice to keep the things you depend on under version control, among other things for repeatability. Maven&#8217;s take on this is to keep dependency meta-data under version control, and download the dependencies themselves from public repositories.<br />
So now you&#8217;re depending on someone else&#8217;s public repository to be available (and correctly configured and maintained). If it&#8217;s not, you won&#8217;t be able to build on a freshly installed machine.<br />
I&#8217;m told the recommended solution is to have your own local caching repo (which also allows you to depend on private or proprietary libraries). So now you have yet another server to maintain. Wouldn&#8217;t it be both less work and lower risk to just keep the jars under local version control?</p>
<p>(Also, the only caching repo I have tried, Artifactory, kept corrupting data. It was probably a problem with its embedded Jackrabbit content repository, but still).</p>
<h3>File Structure</h3>
<p>I&#8217;m forced to structure my files in a way the Maven developers, a group whose judgement and taste I usually dissent with, find ideal.</p>
<p>I could go on all day&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ghostganz.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ghostganz.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ghostganz.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ghostganz.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ghostganz.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ghostganz.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ghostganz.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ghostganz.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ghostganz.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ghostganz.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ghostganz.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ghostganz.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ghostganz.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ghostganz.wordpress.com/115/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ghostganz.wordpress.com&amp;blog=20829261&amp;post=115&amp;subd=ghostganz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ghostganz.wordpress.com/2008/10/26/the-things-that-are-wrong-with-maven/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5aaf918544b0c5b3c4da3382a0e85ed6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ghostganz</media:title>
		</media:content>
	</item>
		<item>
		<title>Kommandorad topp-tio</title>
		<link>http://ghostganz.wordpress.com/2008/10/07/kommandorad-topp-tio/</link>
		<comments>http://ghostganz.wordpress.com/2008/10/07/kommandorad-topp-tio/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 11:31:00 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Gissa vilket CMS jag jobbar med&#8230; 210 cd 81 ls 29 more 28 ant 25 bin/polopoly 15 svn 11 sudo 9 pwd 8 irb 7 fgrep<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ghostganz.wordpress.com&amp;blog=20829261&amp;post=114&amp;subd=ghostganz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Gissa vilket <span class="caps">CMS</span> jag jobbar med&#8230;</p>
<pre>
  210    cd
   81    ls
   29    more
   28    ant
   25    bin/polopoly
   15    svn
   11    sudo
    9    pwd
    8    irb
    7    fgrep
</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ghostganz.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ghostganz.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ghostganz.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ghostganz.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ghostganz.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ghostganz.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ghostganz.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ghostganz.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ghostganz.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ghostganz.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ghostganz.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ghostganz.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ghostganz.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ghostganz.wordpress.com/114/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ghostganz.wordpress.com&amp;blog=20829261&amp;post=114&amp;subd=ghostganz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ghostganz.wordpress.com/2008/10/07/kommandorad-topp-tio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5aaf918544b0c5b3c4da3382a0e85ed6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ghostganz</media:title>
		</media:content>
	</item>
		<item>
		<title>Back up</title>
		<link>http://ghostganz.wordpress.com/2008/09/06/back-up/</link>
		<comments>http://ghostganz.wordpress.com/2008/09/06/back-up/#comments</comments>
		<pubDate>Sat, 06 Sep 2008 19:06:00 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[backups]]></category>
		<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[After a disk failure in my MacBook, here are some observations on bootable backup disks: 1. Verify beforehand that your bootable backup disk actually is bootable. 2. Having a replacement disk ready means less when you don&#8217;t have the Torx &#8230; <a href="http://ghostganz.wordpress.com/2008/09/06/back-up/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ghostganz.wordpress.com&amp;blog=20829261&amp;post=110&amp;subd=ghostganz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After a disk failure in my MacBook, here are some observations on <a href="http://jwz.livejournal.com/801607.html">bootable backup disks</a>:</p>
<p>1. Verify beforehand that your bootable backup disk actually is bootable.</p>
<p>2. Having a replacement disk ready means less when you don&#8217;t have the Torx T8 screwdriver needed to install it.</p>
<p>3. Torx screws are an evil conspiracy.</p>
<p>4. Having a working <span class="caps">DVD</span> reader will save you time and money when re-installing the OS.</p>
<p>But I luckily made the last backup just 24h before the crash, so I lost almost nothing.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ghostganz.wordpress.com/110/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ghostganz.wordpress.com/110/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ghostganz.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ghostganz.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ghostganz.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ghostganz.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ghostganz.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ghostganz.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ghostganz.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ghostganz.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ghostganz.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ghostganz.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ghostganz.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ghostganz.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ghostganz.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ghostganz.wordpress.com/110/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ghostganz.wordpress.com&amp;blog=20829261&amp;post=110&amp;subd=ghostganz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ghostganz.wordpress.com/2008/09/06/back-up/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5aaf918544b0c5b3c4da3382a0e85ed6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ghostganz</media:title>
		</media:content>
	</item>
		<item>
		<title>Forgetting try-finally</title>
		<link>http://ghostganz.wordpress.com/2008/08/25/forgetting-try-finally/</link>
		<comments>http://ghostganz.wordpress.com/2008/08/25/forgetting-try-finally/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 15:06:00 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[or &#8220;Hot Potato Exception Handling&#8221; This is a common use of try-catch: public void foo() { // Catch any exception so that the call to super is done anyway try { //... } catch (Exception e) { // Log // &#8230; <a href="http://ghostganz.wordpress.com/2008/08/25/forgetting-try-finally/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ghostganz.wordpress.com&amp;blog=20829261&amp;post=108&amp;subd=ghostganz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>or <em>&#8220;Hot Potato Exception Handling&#8221;</em></p>
<p>This is a common use of try-catch:</p>
<p><code></p>
<pre>
public void foo() {
    // Catch any exception so that the call to super is done anyway
    try {
        //...
    } catch (Exception e) {
        // Log
        // ...
    }
    // Call super last
    super.foo();
}
</pre>
<p></code></p>
<p>You could think that the purpose of the try-catch is to enable logging of the exception. But the first comment (taken from actual example code) suggests that the logging is just incidental. The purpose is to make sure that something is run no matter what. The logging is just a case of not knowing anything better to do with the exception once it&#8217;s caught.</p>
<p>Instead, why not use the simple <strong>try-finally</strong>:</p>
<p><code></p>
<pre>
public void foo() {
    try {
        //...
    } finally {
        super.foo();
    }
}
</pre>
<p></code></p>
<p>We&#8217;re not &#8220;handling&#8221; the exception, but that&#8217;s probably good. We are handling non-<code>Exception</code> throwables though. I think people just forget that you can have a try-finally without the catch.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ghostganz.wordpress.com/108/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ghostganz.wordpress.com/108/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ghostganz.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ghostganz.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ghostganz.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ghostganz.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ghostganz.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ghostganz.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ghostganz.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ghostganz.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ghostganz.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ghostganz.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ghostganz.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ghostganz.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ghostganz.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ghostganz.wordpress.com/108/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ghostganz.wordpress.com&amp;blog=20829261&amp;post=108&amp;subd=ghostganz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ghostganz.wordpress.com/2008/08/25/forgetting-try-finally/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5aaf918544b0c5b3c4da3382a0e85ed6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ghostganz</media:title>
		</media:content>
	</item>
		<item>
		<title>Animal</title>
		<link>http://ghostganz.wordpress.com/2008/08/07/animal/</link>
		<comments>http://ghostganz.wordpress.com/2008/08/07/animal/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 09:32:00 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[Photo]]></category>
		<category><![CDATA[rock n roll]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ghostganz.wordpress.com&amp;blog=20829261&amp;post=107&amp;subd=ghostganz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/ghostganz/2740683185/" title="Animal by Ghost Ganz, on Flickr"><img src="http://farm4.static.flickr.com/3152/2740683185_1d95948ae5.jpg" width="500" height="281" alt="Animal" /></a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ghostganz.wordpress.com/107/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ghostganz.wordpress.com/107/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ghostganz.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ghostganz.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ghostganz.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ghostganz.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ghostganz.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ghostganz.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ghostganz.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ghostganz.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ghostganz.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ghostganz.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ghostganz.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ghostganz.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ghostganz.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ghostganz.wordpress.com/107/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ghostganz.wordpress.com&amp;blog=20829261&amp;post=107&amp;subd=ghostganz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ghostganz.wordpress.com/2008/08/07/animal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5aaf918544b0c5b3c4da3382a0e85ed6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ghostganz</media:title>
		</media:content>

		<media:content url="http://farm4.static.flickr.com/3152/2740683185_1d95948ae5.jpg" medium="image">
			<media:title type="html">Animal</media:title>
		</media:content>
	</item>
		<item>
		<title>&#8220;Street and Studio&#8221; @ Tate Modern</title>
		<link>http://ghostganz.wordpress.com/2008/07/06/street-and-studio-tate-modern/</link>
		<comments>http://ghostganz.wordpress.com/2008/07/06/street-and-studio-tate-modern/#comments</comments>
		<pubDate>Sun, 06 Jul 2008 09:21:00 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[exhibitions]]></category>
		<category><![CDATA[Photo]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Last week I saw the Street and Studio photo exhibition at Tate Modern in London. Lots of great photos from the 1800&#8217;s up to current time, including the 1900&#8217;s favorites I already knew, like Walker Evans, Diane Arbus and others. &#8230; <a href="http://ghostganz.wordpress.com/2008/07/06/street-and-studio-tate-modern/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ghostganz.wordpress.com&amp;blog=20829261&amp;post=106&amp;subd=ghostganz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Last week I saw the <a href="http://www.tate.org.uk/modern/exhibitions/streetandstudio/default.shtm">Street and Studio</a> photo exhibition at Tate Modern in London. Lots of great photos from the 1800&#8217;s up to current time, including the 1900&#8217;s favorites I already knew, like Walker Evans, Diane Arbus and others. But it also served as an interesting introduction to later photographers like Martin Parr and Rineke Dijkstra, at least for someone like me who was stuck in the 20th century.</p>
<p>If you&#8217;re in London before 31 August 2008, go see it!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ghostganz.wordpress.com/106/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ghostganz.wordpress.com/106/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ghostganz.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ghostganz.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ghostganz.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ghostganz.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ghostganz.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ghostganz.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ghostganz.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ghostganz.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ghostganz.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ghostganz.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ghostganz.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ghostganz.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ghostganz.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ghostganz.wordpress.com/106/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ghostganz.wordpress.com&amp;blog=20829261&amp;post=106&amp;subd=ghostganz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ghostganz.wordpress.com/2008/07/06/street-and-studio-tate-modern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5aaf918544b0c5b3c4da3382a0e85ed6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ghostganz</media:title>
		</media:content>
	</item>
		<item>
		<title>toString() is Evil</title>
		<link>http://ghostganz.wordpress.com/2008/06/24/tostring-is-evil/</link>
		<comments>http://ghostganz.wordpress.com/2008/06/24/tostring-is-evil/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 18:00:00 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[&#8230;or some other provocative title. The good old toString() method, with us since Java 1.0, has at least two different meanings: Displaying: How the object should appear to the user, in the GUI, on a web page, etc. Inspection: How &#8230; <a href="http://ghostganz.wordpress.com/2008/06/24/tostring-is-evil/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ghostganz.wordpress.com&amp;blog=20829261&amp;post=99&amp;subd=ghostganz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em>&#8230;or some other provocative title.</em></p>
<p>The good old <strong><code>toString()</code></strong> method, with us since Java 1.0, has at least two different meanings:</p>
<ul>
<li><em>Displaying</em>: How the object should appear to the user, in the <span class="caps">GUI</span>, on a web page, etc.</li>
<li><em>Inspection</em>: How the object should appear in debug output, logs, debugger tools etc.</li>
</ul>
<p>Both are in some way &#8220;a string representation of the object&#8221;. The default implementation in <code>java.lang.Object</code> suggests inspection, e.g. &#8220;<code>java.lang.Object@c37f31</code>&#8221;, but many APIs, like <span class="caps">AWT</span>/Swing, use it for displaying the object to the user.</p>
<h4>Problems</h4>
<ul>
<li>It&#8217;s hard to tell which usage is intended when reading the code.</li>
<li>Debuggers will use <code>toString()</code>, which can cause confusing side-effects.</li>
<li>Since every object has a <code>toString()</code>, the <span class="caps">IDE</span>&#8217;s usage search becomes unusable.</li>
<li>It&#8217;s hard to tell if a <code>toString()</code> method is dead code or not.</li>
</ul>
<p>In addition, a lot of code implements it when it has a more specific meaning. For instance, generating <span class="caps">HTML</span> is better done as <code>toHTML()</code> than as <code>toString()</code>.</p>
<h4>What Others Do</h4>
<p>Ruby solves this differently than Java. There are two methods, <strong><code>inspect()</code></strong> and <strong><code>to_s()</code></strong>, where the default implementation of <code>to_s()</code> in <code>Object</code> uses <code>inspect()</code>. This separates the two intentions, but still has <code>to_s()</code> available on every object.</p>
<p>We can&#8217;t do much about <code>java.lang.Object</code>, but we still have options.</p>
<h4>Suggestion</h4>
<p>Use <code>toString()</code> only for logging and debug output.</p>
<p>If the method has a more specific meaning, communicate that instead, e.g. <code>title()</code> or <code>name()</code>.</p>
<p>If the value to display has a specific format you can communicate that instead, e.g. <code>toHTML()</code> or <code>asLeetSpeak()</code>.</p>
<p>If the value to display is nothing other than a string, still avoid <code>toString()</code>. Call it something like <code>displayString()</code>, or maybe even <code>asString()</code> to avoid problems.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ghostganz.wordpress.com/99/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ghostganz.wordpress.com/99/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ghostganz.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ghostganz.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ghostganz.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ghostganz.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ghostganz.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ghostganz.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ghostganz.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ghostganz.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ghostganz.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ghostganz.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ghostganz.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ghostganz.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ghostganz.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ghostganz.wordpress.com/99/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ghostganz.wordpress.com&amp;blog=20829261&amp;post=99&amp;subd=ghostganz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ghostganz.wordpress.com/2008/06/24/tostring-is-evil/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5aaf918544b0c5b3c4da3382a0e85ed6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ghostganz</media:title>
		</media:content>
	</item>
		<item>
		<title>BigDecimal performance notes</title>
		<link>http://ghostganz.wordpress.com/2008/06/04/bigdecimal-performance-notes/</link>
		<comments>http://ghostganz.wordpress.com/2008/06/04/bigdecimal-performance-notes/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 13:47:00 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Notes on java.math.BigDecimal&#8217;s performance (in Java 1.5): Sorting BigDecimal&#8217;s compareTo method relies on both of the BigDecimals being in the same internal form. Internally BigDecimal uses either a BigInteger or, when possible, a native integer to represent its value. To &#8230; <a href="http://ghostganz.wordpress.com/2008/06/04/bigdecimal-performance-notes/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ghostganz.wordpress.com&amp;blog=20829261&amp;post=98&amp;subd=ghostganz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Notes on <code>java.math.BigDecimal</code>&#8217;s performance (in Java 1.5):</p>
<h4>Sorting</h4>
<p>BigDecimal&#8217;s <code>compareTo</code> method relies on both of the BigDecimals being in the same internal form. Internally BigDecimal uses either a BigInteger or, when possible, a native integer to represent its value. To compare two BigDecimals they&#8217;re both normalized (&#8220;inflated&#8221;) to the BigInteger form. This means that simply sorting a list of BigDecimals can cause memory use to increase. Not what you&#8217;d expect.</p>
<h4>Serialization</h4>
<p>Serialization of BigDecimal is surprisingly slow. Not only do they inflate their internal representation, just like when comparing, but they also use a lot of <span class="caps">CPU</span> for some reason. When serializing large graphs of objects of a lot of different classes, the BigDecimals stood out like a sore thumb in the <span class="caps">CPU</span> profile. Dumping them as String representations instead was quicker and didn&#8217;t use as much memory.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ghostganz.wordpress.com/98/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ghostganz.wordpress.com/98/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ghostganz.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ghostganz.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ghostganz.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ghostganz.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ghostganz.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ghostganz.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ghostganz.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ghostganz.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ghostganz.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ghostganz.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ghostganz.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ghostganz.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ghostganz.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ghostganz.wordpress.com/98/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ghostganz.wordpress.com&amp;blog=20829261&amp;post=98&amp;subd=ghostganz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ghostganz.wordpress.com/2008/06/04/bigdecimal-performance-notes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5aaf918544b0c5b3c4da3382a0e85ed6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ghostganz</media:title>
		</media:content>
	</item>
	</channel>
</rss>
