<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>motlin.com &#187; software</title>
	<atom:link href="http://motlin.com/software/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://motlin.com/software</link>
	<description></description>
	<lastBuildDate>Thu, 08 Oct 2009 11:59:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Risk Calculator</title>
		<link>http://motlin.com/software/risk-calculator/</link>
		<comments>http://motlin.com/software/risk-calculator/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 03:00:59 +0000</pubDate>
		<dc:creator>Craig Motlin</dc:creator>
				<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://motlin.com/software/?p=80</guid>
		<description><![CDATA[Run Launch Risk Calculator Additional Information Subversion repository Javadoc Old releases]]></description>
			<content:encoded><![CDATA[<h2>Run</h2>
<p><a href="wp-content/Risk/risk.jnlp"><img src="/icons/jar.gif" alt="zip" width="16" height="16" /> Launch Risk Calculator</a></p>
<h2>Additional Information</h2>
<p><a href="http://svn.motlin.com/dev/Risk/trunk/"><img src="/icons/src.gif" alt="src" width="16" height="16" /> Subversion repository</a><br />
<a href="wp-content/Risk/api"><img src="/icons/javadoc.gif" alt="javadoc" width="16" height="16" /> Javadoc</a><br />
<a href="wp-content/releases/Risk"><img src="/icons/folder.gif" alt="releases" width="16" height="16" /> Old releases</a></p>
]]></content:encoded>
			<wfw:commentRss>http://motlin.com/software/risk-calculator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuration (dot) files</title>
		<link>http://motlin.com/software/configuration-dot-files/</link>
		<comments>http://motlin.com/software/configuration-dot-files/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 17:09:39 +0000</pubDate>
		<dc:creator>Craig Motlin</dc:creator>
				<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://motlin.com/blog/?p=17</guid>
		<description><![CDATA[These are files I used to configure my command line environment, plus the scripts used to generate these pages. I&#8217;m always looking to improve my setup so please email me any useful tips. Configuration files .alias Aliases used by bash and zsh .bashrc For GNU BASH .profile Brings me directly to bash if ksh is [...]]]></description>
			<content:encoded><![CDATA[<p>These are files I used to configure my command line environment, plus the scripts used to generate these pages. I&#8217;m always looking to improve my setup so please email me any useful tips.</p>
<h2>Configuration files</h2>
<ul>
<li> <a href="/software/wp-content/ConfigurationFiles/alias.html">.alias</a><br />
Aliases used by bash and zsh</li>
<li> <a href="/software/wp-content/ConfigurationFiles/bashrc.html">.bashrc</a><br />
For <a href="http://www.gnu.org/software/bash/">GNU BASH</a></li>
<li> <a href="/software/wp-content/ConfigurationFiles/profile.html">.profile</a><br />
Brings me directly to bash if ksh is my default shell</li>
<li> <a href="/software/wp-content/ConfigurationFiles/screenrc.html">.screenrc</a><br />
For <a href="http://www.gnu.org/software/screen/">GNU Screen</a></li>
<li> <a href="/software/wp-content/ConfigurationFiles/vimrc.html">.vimrc</a><br />
For <a href="http://www.vim.org/">Vim</a></li>
<li> <a href="/software/wp-content/ConfigurationFiles/zshrc.html">.zshrc</a><br />
For <a href="http://www.zsh.org/">Zsh</a></li>
</ul>
<h2>Meta</h2>
<ul>
<li> <a href="/software/wp-content/ConfigurationFiles/makefile.html">makefile</a><br />
To generate the html for the config files</li>
<li> <a href="/software/wp-content/ConfigurationFiles/formatDotFiles.html">formatDotFiles.pl</a><br />
Does some extra formatting of the html output</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://motlin.com/software/configuration-dot-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ant Timer</title>
		<link>http://motlin.com/software/ant-timer/</link>
		<comments>http://motlin.com/software/ant-timer/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 16:17:41 +0000</pubDate>
		<dc:creator>Craig Motlin</dc:creator>
				<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://motlin.com/software/?p=47</guid>
		<description><![CDATA[Download ant-timer.jar Compiled classes ant-timer-src.zip Source code Additional Information Subversion repository Javadoc Old releases Five minute tutorial The Ant Timer is a plug-in that prints out diagnostic messages when ant targets and tasks take longer than the configured amount of time. You can use it with any ant build. Here is some sample output when [...]]]></description>
			<content:encoded><![CDATA[<h2>Download</h2>
<p><a href="/software/wp-content/AntTimer/releases/ant-timer-1.0.1.jar"><img src="/icons/jar.gif" alt="jar" width="16" height="16" /> ant-timer.jar</a> Compiled classes<br />
<a href="/software/wp-content/AntTimer/releases/ant-timer-1.0.1-src.zip"><img src="/icons/jar_src_obj.gif" alt="src" width="16" height="16" /> ant-timer-src.zip</a> Source code</p>
<h2>Additional Information</h2>
<p><a href="http://svn.motlin.com/dev/AntTimer/trunk/"><img src="/icons/src.gif" alt="src" width="16" height="16" /> Subversion repository</a><br />
<a href="/software/wp-content/AntTimer/api"><img src="/icons/javadoc.gif" alt="javadoc" width="16" height="16" /> Javadoc</a><br />
<a href="/software/wp-content/AntTimer/releases"><img src="/icons/folder.gif" alt="releases" width="16" height="16" /> Old releases</a></p>
<h2>Five minute tutorial</h2>
<p>The Ant Timer is a plug-in that prints out diagnostic messages when ant targets and tasks take longer than the configured amount of time. You can use it with any ant build. Here is some sample output when I use it on my renamer program.</p>
<p style="padding-left: 30px;"><code>javadocs:<br />
[javadoc] Generating Javadoc<br />
[javadoc] Javadoc execution<br />
[javadoc] Loading source files for package com.motlin.base...<br />
[javadoc] Loading source files for package com.motlin.base.log4j...<br />
[javadoc] Loading source files for package com.motlin.renamer...<br />
[javadoc] Loading source files for package com.motlin.renamer.exceptions...<br />
[javadoc] Constructing Javadoc information...<br />
[javadoc] Standard Doclet version 1.6.0_06<br />
[javadoc] Building tree for all the packages and classes...<br />
[javadoc] C:\cygwin\home\Administrator\dev\renamer\trunk\src\com\motlin\base\log4j\StdOutErrAppender.java:318: warning - Tag @link: reference not found: org.apache.log4j.net.SocketAppender<br />
[javadoc] Building index for all the packages and classes...<br />
[javadoc] Building index for all classes...<br />
[javadoc] Generating C:\cygwin\home\Administrator\dev\renamer\trunk\dist\api\stylesheet.css...<br />
[javadoc] 1 warning<br />
<span style="color: #ff0000;">XXX task   [renamer.javadocs.javadoc] took 2 seconds to run<br />
XXX task   [renamer.null.sequential] took 2 seconds to run<br />
XXX task   [renamer.javadocs.ac:outofdate] took 2 seconds to run<br />
XXX target [renamer.javadocs] took 2 seconds to run</span></code></p>
<p>BUILD SUCCESSFUL<br />
Total time: 2 seconds</p>
<p>Running ant with the custom listener is pretty simple. Here&#8217;s the command that produced the output above.</p>
<p style="padding-left: 30px;"><code>ant -listener com.motlin.ant.timer.TimerListener -lib ant-timer-1.0.jar -lib lib/joda-time-1.5.2.jar -Dtarget.timer=2 -Dtask.timer=1 -Dtimer.prefix="XXX" clean javadocs</code></p>
<p>Let&#8217;s break it down.</p>
<p style="padding-left: 30px;"><code>-listener com.motlin.ant.timer.TimerListener</code></p>
<p>This is the class name of the custom task.</p>
<p style="padding-left: 30px;"><code>-lib ant-timer-1.0.jar -lib lib/joda-time-1.5.2.jar</code></p>
<p>Unfortunately, the Ant Timer depends on joda time. It didn&#8217;t have to but I like it better than using the built in classes for working with times. You&#8217;ll need to download the joda jar separately.</p>
<p style="padding-left: 30px;"><code>-Dtarget.timer=2 -Dtask.timer=1 -Dtimer.prefix="XXX" </code></p>
<p>You can configure the behavior through these properties. The first two are the timeouts in seconds for targets and tasks. If you leave them off they default to 10 seconds and 1 second respectively. The prefix makes it easy to find the output printed by the custom listener. If you leave it off it defaults to &#8220;!!!&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://motlin.com/software/ant-timer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Universal toString()</title>
		<link>http://motlin.com/software/universal-tostring/</link>
		<comments>http://motlin.com/software/universal-tostring/#comments</comments>
		<pubDate>Sat, 06 Sep 2008 15:34:34 +0000</pubDate>
		<dc:creator>Craig Motlin</dc:creator>
				<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://motlin.com/blog/?p=16</guid>
		<description><![CDATA[Download UniversalToString.jar Compiled classes UniversalToString-src.zip Source code Additional Information Subversion repository Javadoc Old releases Five minute tutorial UniversalToString is a java class that prints out the internal state of an object using reflection. The UniversalToString class builds a String by recursively traversing the contents of an object and printing out the names, types, and values [...]]]></description>
			<content:encoded><![CDATA[<h2>Download</h2>
<p><a href="/software/wp-content/UniversalToString/releases/UniversalToString-1.0.3.jar"><img src="/icons/jar.gif" alt="jar" width="16" height="16" /> UniversalToString.jar</a> Compiled classes<br />
<a href="/software/wp-content/UniversalToString/releases/UniversalToString-1.0.3-src.zip"><img src="/icons/jar_src_obj.gif" alt="src" width="16" height="16" /> UniversalToString-src.zip</a> Source code</p>
<h2>Additional Information</h2>
<p><a href="http://svn.motlin.com/dev/UniversalToString/trunk/"><img src="/icons/src.gif" alt="src" width="16" height="16" /> Subversion repository</a><br />
<a href="/software/wp-content/UniversalToString/api/index.html"><img src="/icons/javadoc.gif" alt="javadoc" width="16" height="16" /> Javadoc</a><br />
<a href="/software/wp-content/UniversalToString/releases"><img src="/icons/folder.gif" alt="releases" width="16" height="16" /> Old releases</a></p>
<h2>Five minute tutorial</h2>
<p>UniversalToString is a java class that prints out the internal state of an object using reflection. The UniversalToString class builds a String by recursively traversing the contents of an object and printing out the names, types, and values of all of its fields.  It is loosely based on some code in <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2Fo%2FASIN%2F0132354764%3FSubscriptionId%3D11QBANPQ06N60EV6JN02&amp;tag=motlincom-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Core Java 2, Volume I &#8211; Fundamentals</a>.  The simplest way to use the UniversalToString class is in the implementation of your own classes&#8217; toString methods. Say we have a simple Person class:</p>

<div class="wp_syntax"><div class="code"><pre class="java5" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Person <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399; font-weight: bold;">String</span> first<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399; font-weight: bold;">String</span> last<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">public</span> Person<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399; font-weight: bold;">String</span> first, <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399; font-weight: bold;">String</span> last<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">first</span> = first<span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">last</span> = last<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Person does not implement the toString method, so when it is printed to standard out, Object.toString is used instead. The generated String contains the type name and the address in memory where the object lives. Normally this is not very useful information.</p>

<div class="wp_syntax"><div class="code"><pre class="java5" style="font-family:monospace;">Person john = <span style="color: #000000; font-weight: bold;">new</span> Person<span style="color: #009900;">&#40;</span>“John”, “Smith”<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003399; font-weight: bold;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span>john<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Console output:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">tostring.Person@19821f</pre></div></div>

<p>To improve the output, we can override the toString method in the Person class.</p>

<div class="wp_syntax"><div class="code"><pre class="java5" style="font-family:monospace;">@<span style="color: #003399; font-weight: bold;">Override</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399; font-weight: bold;">String</span> toString<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">return</span> “Person: first <span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot; + this.first + &quot;</span><span style="color: #009900;">&#93;</span> last <span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot; + this.last + &quot;</span><span style="color: #009900;">&#93;</span>“<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">Person: first [John] last [Smith]</pre></div></div>

<p>Implementing the toString method like this is tedious, repetitive, and fragile. That&#8217;s where UniversalToString comes in.</p>

<div class="wp_syntax"><div class="code"><pre class="java5" style="font-family:monospace;">@<span style="color: #003399; font-weight: bold;">Override</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399; font-weight: bold;">String</span> toString<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">return</span> UniversalToString.<span style="color: #006633;">print</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">Person(first=John,last=Smith)</pre></div></div>

<h2>Collections</h2>
<p>UniversalToString has special logic for arrays, collections, and maps. This example uses a list, but the output is similar for each.</p>

<div class="wp_syntax"><div class="code"><pre class="java5" style="font-family:monospace;">Person john = <span style="color: #000000; font-weight: bold;">new</span> Person<span style="color: #009900;">&#40;</span>“John”, “Smith”<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
Person jane = <span style="color: #000000; font-weight: bold;">new</span> Person<span style="color: #009900;">&#40;</span>“Jane”, “Doe”<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
List<span style="color: #339933;">&lt;</span>Person<span style="color: #339933;">&gt;</span> list = <span style="color: #000000; font-weight: bold;">new</span> ArrayList<span style="color: #339933;">&lt;</span>Person<span style="color: #339933;">&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
list.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>john<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
list.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>jane<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003399; font-weight: bold;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span>UniversalToString.<span style="color: #006633;">print</span><span style="color: #009900;">&#40;</span>list<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">ArrayList{Person(first=John,last=Smith), Person(first=Jane,last=Doe)}</pre></div></div>

<h2>Custom formatting</h2>
<p>Unfortunately our work isn&#8217;t done. The String created by UniversalToString isn&#8217;t particularly informative for certain objects. For example, let&#8217;s change the last example to print one Person and one Date:</p>

<div class="wp_syntax"><div class="code"><pre class="java5" style="font-family:monospace;">Person john = <span style="color: #000000; font-weight: bold;">new</span> Person<span style="color: #009900;">&#40;</span>“John”, “Smith”<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003399; font-weight: bold;">Date</span> date = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399; font-weight: bold;">Date</span><span style="color: #009900;">&#40;</span>1206552944822l<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
List<span style="color: #339933;">&lt;</span>Object<span style="color: #339933;">&gt;</span> list = <span style="color: #000000; font-weight: bold;">new</span> ArrayList<span style="color: #339933;">&lt;</span>Object<span style="color: #339933;">&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
list.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>john<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
list.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>date<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003399; font-weight: bold;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span>UniversalToString.<span style="color: #006633;">print</span><span style="color: #009900;">&#40;</span>list<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">ArrayList{Person(first=John,last=Smith), Date(fastTime=1206552944822,cdate=null)}</pre></div></div>

<p>We can customize the formatting of UniversalToString by creating an implementation of TypedToString that handles Date objects.</p>

<div class="wp_syntax"><div class="code"><pre class="java5" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> DateToString <span style="color: #000000; font-weight: bold;">implements</span> TypedToString <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399; font-weight: bold;">DateFormat</span> dateFormat<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">public</span> DateToString<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">dateFormat</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399; font-weight: bold;">SimpleDateFormat</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">dateFormat</span>.<span style="color: #006633;">setTimeZone</span><span style="color: #009900;">&#40;</span><span style="color: #003399; font-weight: bold;">TimeZone</span>.<span style="color: #006633;">getTimeZone</span><span style="color: #009900;">&#40;</span>“America/New_York”<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #006600; font-weight: bold;">boolean</span> handlesType<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399; font-weight: bold;">Object</span> object<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> object <span style="color: #000000; font-weight: bold;">instanceof</span> <span style="color: #003399; font-weight: bold;">Date</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399; font-weight: bold;">String</span> print<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399; font-weight: bold;">Object</span> object<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">dateFormat</span>.<span style="color: #006633;">format</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #003399; font-weight: bold;">Date</span><span style="color: #009900;">&#41;</span> object<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Now we just need to change the line that prints the list.</p>

<div class="wp_syntax"><div class="code"><pre class="java5" style="font-family:monospace;"><span style="color: #003399; font-weight: bold;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span>UniversalToString.<span style="color: #006633;">print</span><span style="color: #009900;">&#40;</span>list, <span style="color: #000000; font-weight: bold;">new</span> DateToString<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">ArrayList{Person(first=John,last=Smith), 3/26/08 1:35 PM}</pre></div></div>

<p>The second argument to print is varargs TypedToString, so we can pass in as many special formatting rules as we need.</p>
]]></content:encoded>
			<wfw:commentRss>http://motlin.com/software/universal-tostring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->