<?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>JavaTechniques</title>
	<atom:link href="http://javatechniques.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://javatechniques.com/blog</link>
	<description>Java HOWTOs, Examples, and Notes</description>
	<lastBuildDate>Fri, 18 Sep 2009 15:40:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Software Demo Movies</title>
		<link>http://javatechniques.com/blog/2007/06/23/software-demo-movies/</link>
		<comments>http://javatechniques.com/blog/2007/06/23/software-demo-movies/#comments</comments>
		<pubDate>Sat, 23 Jun 2007 18:01:14 +0000</pubDate>
		<dc:creator>Philip Isenhour</dc:creator>
				<category><![CDATA[General Development]]></category>

		<guid isPermaLink="false">http://javatechniques.com/blog/2007/06/23/software-demo-movies/</guid>
		<description><![CDATA[I&#8217;ve added some notes on video screen capture for software demos over on Random Tech Notes. This isn&#8217;t strictly Java-related, though I&#8217;ve been experimenting with screen recording in the context of capturing a Java application that has animation and audio synchronized to user interaction, two factors that complicate the task a bit.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve added some notes on <a href="http://randomtechnotes.com/rtn/video-screen-capture/">video screen capture for software demos</a> over on <a href="http://randomtechnotes.com/">Random Tech Notes</a>. This isn&#8217;t strictly Java-related, though I&#8217;ve been experimenting with screen recording in the context of capturing a Java application that has animation and audio synchronized to user interaction, two factors that complicate the task a bit.</p>
]]></content:encoded>
			<wfw:commentRss>http://javatechniques.com/blog/2007/06/23/software-demo-movies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Headless Exception Work-Around</title>
		<link>http://javatechniques.com/blog/2007/06/16/headless-exception-work-around/</link>
		<comments>http://javatechniques.com/blog/2007/06/16/headless-exception-work-around/#comments</comments>
		<pubDate>Sat, 16 Jun 2007 14:29:32 +0000</pubDate>
		<dc:creator>Philip Isenhour</dc:creator>
				<category><![CDATA[Bug fixes]]></category>

		<guid isPermaLink="false">http://javatechniques.com/blog/2007/06/16/headless-exception-work-around/</guid>
		<description><![CDATA[On upgrading a piece of (1.4-dependent) server-side software from 1.4.2_01 to 1.4.2_14, I began seeing errors that looked like: java.awt.HeadlessException at sun.java2d.HeadlessGraphicsEnvironment.getDefaultScreenDevice (HeadlessGraphicsEnvironment.java:66) at javax.swing.RepaintManager.getVolatileOffscreenBuffer (RepaintManager.java:537) at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4727) at javax.swing.JComponent.paint(JComponent.java:798) at edu.vt.cs.collab.cork.impl.servlet.CORKServlet.encodeComponentAsJPEG (CORKServlet.java:617) at org.isenhour.fin.inc.CEFChartWebView.writeChartImage(CEFChartWebView.java:97) at org.isenhour.fin.inc.CEFChartWebView.writeStaticContent(CEFChartWebView.java:84) at edu.vt.cs.collab.bridge.DefaultWebViewServlet.doGet(DefaultWebViewServlet.java:95) at edu.vt.cs.collab.cork.impl.servlet.CORKServlet.doGet(CORKServlet.java:293) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) .... The offending code segment was: img = new BufferedImage(sz.width, sz.height, BufferedImage.TYPE_INT_RGB); [...]]]></description>
			<content:encoded><![CDATA[<p>On upgrading a piece of (1.4-dependent) server-side software from 1.4.2_01 to 1.4.2_14, I began seeing errors that looked like:</p>
<pre>
java.awt.HeadlessException
        at sun.java2d.HeadlessGraphicsEnvironment.getDefaultScreenDevice
            (HeadlessGraphicsEnvironment.java:66)
        at javax.swing.RepaintManager.getVolatileOffscreenBuffer
            (RepaintManager.java:537)
        at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4727)
        at javax.swing.JComponent.paint(JComponent.java:798)
        at edu.vt.cs.collab.cork.impl.servlet.CORKServlet.encodeComponentAsJPEG
            (CORKServlet.java:617)
        at org.isenhour.fin.inc.CEFChartWebView.writeChartImage(CEFChartWebView.java:97)
        at org.isenhour.fin.inc.CEFChartWebView.writeStaticContent(CEFChartWebView.java:84)
        at edu.vt.cs.collab.bridge.DefaultWebViewServlet.doGet(DefaultWebViewServlet.java:95)
        at edu.vt.cs.collab.cork.impl.servlet.CORKServlet.doGet(CORKServlet.java:293)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
        ....
</pre>
<p>The offending code segment was:</p>
<pre>
            img = new BufferedImage(sz.width, sz.height,
                BufferedImage.TYPE_INT_RGB);
            g = img.createGraphics();
            g.setColor(Color.white);
            g.fillRect(0, 0, sz.width, sz.height);
            comp.setBounds(0, 0, sz.width, sz.height);
            comp.paint(g);
</pre>
<p>where <code>comp</code> was a fairly uncomplicated Swing component. This turned out to be <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6189824">Sun bug 6189824</a>. The work-around noted in the bug report, adding a call to:</p>
<pre>

    javax.swing.RepaintManager.currentManager(null).setDoubleBufferingEnabled(false);
</pre>
<p>seems to have fixed the problem.</p>
]]></content:encoded>
			<wfw:commentRss>http://javatechniques.com/blog/2007/06/16/headless-exception-work-around/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Opening Java WebStart from the Command Line</title>
		<link>http://javatechniques.com/blog/2007/05/04/opening-java-webstart-from-the-command-line/</link>
		<comments>http://javatechniques.com/blog/2007/05/04/opening-java-webstart-from-the-command-line/#comments</comments>
		<pubDate>Fri, 04 May 2007 19:56:03 +0000</pubDate>
		<dc:creator>Philip Isenhour</dc:creator>
				<category><![CDATA[Basics]]></category>

		<guid isPermaLink="false">http://javatechniques.com/blog/2007/05/04/opening-java-webstart-from-the-command-line/</guid>
		<description><![CDATA[For scripting or debugging it is sometimes useful to be able to launch WebStart from the command line, rather than from a web browser. &#8220;Launching Java WebStart from the Command Line&#8221; describes several options for doing this, along with examples for OSX, Linux, and Windows.]]></description>
			<content:encoded><![CDATA[<p>For scripting or debugging it is sometimes useful to be able to launch WebStart from the command line, rather than from a web browser. &#8220;<a href="http://javatechniques.com/blog/launching-java-webstart-from-the-command-line/">Launching Java WebStart from the Command Line</a>&#8221; describes several options for doing this, along with examples for OSX, Linux, and Windows.</p>
]]></content:encoded>
			<wfw:commentRss>http://javatechniques.com/blog/2007/05/04/opening-java-webstart-from-the-command-line/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generating a Stack Trace with jdb</title>
		<link>http://javatechniques.com/blog/2007/04/25/generating-a-stack-trace-with-jdb/</link>
		<comments>http://javatechniques.com/blog/2007/04/25/generating-a-stack-trace-with-jdb/#comments</comments>
		<pubDate>Thu, 26 Apr 2007 04:12:58 +0000</pubDate>
		<dc:creator>Philip Isenhour</dc:creator>
				<category><![CDATA[Basics]]></category>

		<guid isPermaLink="false">http://javatechniques.com/blog/2007/04/25/generating-a-stack-trace-with-jdb/</guid>
		<description><![CDATA[Every once in a while I run into a situation where the usual means for generating a thread dump does not work, making it difficult to track down pesky deadlocks. Rather than actually figuring out why that happens, here are some notes on using jdb to generate a stack trace: JDB Example: Generating a Thread [...]]]></description>
			<content:encoded><![CDATA[<p>Every once in a while I run into a situation where the usual means for generating a thread dump does not work, making it difficult to track down pesky deadlocks. Rather than actually figuring out why that happens, here are some notes on using jdb to generate a stack trace: <a href="http://javatechniques.com/blog/jdb-example-generating-a-thread-dump/">JDB Example: Generating a Thread Dump</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://javatechniques.com/blog/2007/04/25/generating-a-stack-trace-with-jdb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Checking out Apache&#8217;s FeedParser</title>
		<link>http://javatechniques.com/blog/2006/07/01/checking-out-apaches-feedparser/</link>
		<comments>http://javatechniques.com/blog/2006/07/01/checking-out-apaches-feedparser/#comments</comments>
		<pubDate>Sat, 01 Jul 2006 22:14:20 +0000</pubDate>
		<dc:creator>Philip Isenhour</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wp.javatechniques.com/blog/2006/07/01/checking-out-apaches-feedparser/</guid>
		<description><![CDATA[In searching for a Java library to parse RSS and Atom feeds I ran across FeedParser from the Apache Jakarta Project. From a few quick experiments this looks pretty slick, but is unfortunately marked as &#8220;dormant&#8221; and shows no evidence of having been updated in a few months. Presumable as a side-effect of domancy, no [...]]]></description>
			<content:encoded><![CDATA[<p>In searching for a Java library to parse RSS and Atom feeds I ran across <A HREF="http://jakarta.apache.org/commons/sandbox/feedparser/">FeedParser</A> from the Apache Jakarta Project. From a few quick experiments this looks pretty slick, but is unfortunately marked as &#8220;dormant&#8221; and shows no evidence of having been updated in a few months.</p>
<p>Presumable as a side-effect of domancy, no archive of the library is availalable. The source can be checked out of the SVN repository, but the URL given on the &#8220;<A HREF="http://jakarta.apache.org/commons/sandbox/feedparser/cvs-usage.html">anonymous SVN access</A>&#8221; page only allows browsing. After a bit of trial-and-error based on other (less dormant) Jakarta projects, the correct URL for grabbing the code with svn appears to be:</p>
<p><center><code>http://svn.apache.org/repos/asf/jakarta/commons/dormant/feedparser/trunk/</code><br />
</center><br />
The complete checkout command is then:</p>
<p><code>svn checkout http://svn.apache.org/repos/asf/jakarta/commons/dormant/feedparser/trunk/ feedparser</code></p>
<p>(with no line breaks).</p>
<p>UPDATE: And, of course, within minutes of posting this I find <A HREF="http://mail-archives.apache.org/mod_mbox/jakarta-commons-user/200505.mbox/%3C1115627282.4404.8.camel@blackbox%3E">the answer that escaped my earlier googling</A>.</p>
]]></content:encoded>
			<wfw:commentRss>http://javatechniques.com/blog/2006/07/01/checking-out-apaches-feedparser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Simple GridBagLayout Example: Forms</title>
		<link>http://javatechniques.com/blog/2006/06/30/a-simple-gridbaglayout-example-forms/</link>
		<comments>http://javatechniques.com/blog/2006/06/30/a-simple-gridbaglayout-example-forms/#comments</comments>
		<pubDate>Fri, 30 Jun 2006 22:13:06 +0000</pubDate>
		<dc:creator>Philip Isenhour</dc:creator>
				<category><![CDATA[GUI]]></category>

		<guid isPermaLink="false">http://wp.javatechniques.com/blog/2006/06/30/a-simple-gridbaglayout-example-forms/</guid>
		<description><![CDATA[GridBagLayout is, at times, a little too flexible. This simple example illustrates the use of GridBagLayout to generate nicely aligned forms for entering data.]]></description>
			<content:encoded><![CDATA[<p><code>GridBagLayout</code> is, at times, a little <i>too</i> flexible. This simple example illustrates <A HREF="http://javatechniques.com/public/java/docs/gui/gridbaglayout-example.html" onMouseOver="window.status='Last modified 6/30/06 1:33 PM by isenhour (http://javatechniques.com/public/java/docs/gui/gridbaglayout-example.html)'; return true;">the use of GridBagLayout to generate nicely aligned forms for entering data</A>.</p>
]]></content:encoded>
			<wfw:commentRss>http://javatechniques.com/blog/2006/06/30/a-simple-gridbaglayout-example-forms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Profiling WebStart Apps with JProfiler on OSX</title>
		<link>http://javatechniques.com/blog/2006/06/26/profiling-webstart-apps-with-jprofiler-on-osx/</link>
		<comments>http://javatechniques.com/blog/2006/06/26/profiling-webstart-apps-with-jprofiler-on-osx/#comments</comments>
		<pubDate>Mon, 26 Jun 2006 22:12:57 +0000</pubDate>
		<dc:creator>Philip Isenhour</dc:creator>
				<category><![CDATA[Optimization]]></category>

		<guid isPermaLink="false">http://wp.javatechniques.com/blog/2006/06/26/profiling-webstart-apps-with-jprofiler-on-osx/</guid>
		<description><![CDATA[JProfiler is a great tool for tracking down pesky memory leaks and performance problems. Here&#8217;s a trick for configuring JProfiler for use with remote Java Web Start applications on OSX.]]></description>
			<content:encoded><![CDATA[<p>JProfiler is a great tool for tracking down pesky memory leaks and performance problems. Here&#8217;s a trick for <A HREF="http://javatechniques.com/public/java/docs/tricks/jprofiler-and-webstart.html" onMouseOver="window.status='Last modified 6/26/06 11:01 PM by isenhour (http://javatechniques.com/public/java/docs/tricks/jprofiler-and-webstart.html)'; return true;">configuring JProfiler for use with remote Java Web Start applications</A> on OSX.</p>
]]></content:encoded>
			<wfw:commentRss>http://javatechniques.com/blog/2006/06/26/profiling-webstart-apps-with-jprofiler-on-osx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compressing Socket Data</title>
		<link>http://javatechniques.com/blog/2005/10/26/compressing-socket-data/</link>
		<comments>http://javatechniques.com/blog/2005/10/26/compressing-socket-data/#comments</comments>
		<pubDate>Wed, 26 Oct 2005 22:11:32 +0000</pubDate>
		<dc:creator>Philip Isenhour</dc:creator>
				<category><![CDATA[Optimization]]></category>

		<guid isPermaLink="false">http://wp.javatechniques.com/blog/2005/10/26/compressing-socket-data/</guid>
		<description><![CDATA[The java.util.zip package includes classes for compressing and decompressing data using the ZLIB algorithms. The stream classes in the package are well-suited for accessing files and other bounded data, but do not work as well for compressing unbounded, continuous data transmitted over a socket. &#8220;Compressing data sent over a socket&#8221; describes the underlying issues and [...]]]></description>
			<content:encoded><![CDATA[<p>The <code>java.util.zip</code> package includes classes for compressing and decompressing data using the ZLIB algorithms. The stream classes in the package are well-suited for accessing files and other bounded data, but do not work as well for compressing unbounded, continuous data transmitted over a socket. &#8220;<A HREF="http://javatechniques.com/public/java/docs/net/compressing-socket-data.html" onMouseOver="window.status='Last modified 10/26/05 3:44 PM by isenhour (http://javatechniques.com/public/java/docs/net/compressing-socket-data.html)'; return true;">Compressing data sent over a socket</A>&#8221; describes the underlying  issues and illustrates a pair of stream classes that can be used for compressed communication over a socket connection.</p>
]]></content:encoded>
			<wfw:commentRss>http://javatechniques.com/blog/2005/10/26/compressing-socket-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lucene In-Memory Search Example</title>
		<link>http://javatechniques.com/blog/2004/05/30/lucene-in-memory-search-example/</link>
		<comments>http://javatechniques.com/blog/2004/05/30/lucene-in-memory-search-example/#comments</comments>
		<pubDate>Sun, 30 May 2004 22:10:36 +0000</pubDate>
		<dc:creator>Philip Isenhour</dc:creator>
				<category><![CDATA[Lucene]]></category>

		<guid isPermaLink="false">http://wp.javatechniques.com/blog/2004/05/30/lucene-in-memory-search-example/</guid>
		<description><![CDATA[Apache&#8217;s Lucene text search library provides powerful and flexible tools for searching collections of text. While the indexes that Lucene builds are often stored on disk, the libary includes the ability to create an index in memory. This is particularly useful in restricted environments such as unsigned applets and WebStart applications. &#8220;Lucene In-Memory Text Search&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>Apache&#8217;s Lucene text search library provides powerful and flexible tools for searching collections of text. While the indexes that Lucene builds are often stored on disk, the libary includes the ability to create an index in memory. This is particularly useful in restricted environments such as unsigned applets and WebStart applications. &#8220;<A HREF="http://javatechniques.com/public/java/docs/basics/lucene-memory-search.html" onMouseOver="window.status='Last modified 5/31/04 12:11 AM by isenhour (http://javatechniques.com/public/java/docs/basics/lucene-memory-search.html)'; return true;">Lucene In-Memory Text Search</A>&#8221; shows a minimal example of creating and searching such an index.</p>
]]></content:encoded>
			<wfw:commentRss>http://javatechniques.com/blog/2004/05/30/lucene-in-memory-search-example/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testing Strings for Equality</title>
		<link>http://javatechniques.com/blog/2004/01/28/testing-strings-for-equality/</link>
		<comments>http://javatechniques.com/blog/2004/01/28/testing-strings-for-equality/#comments</comments>
		<pubDate>Wed, 28 Jan 2004 22:09:19 +0000</pubDate>
		<dc:creator>Philip Isenhour</dc:creator>
				<category><![CDATA[Basics]]></category>

		<guid isPermaLink="false">http://wp.javatechniques.com/blog/2004/01/28/testing-strings-for-equality/</guid>
		<description><![CDATA[Strings are Objects in Java, but the ability to use literals, along with the String concatenation operator, make them somewhat similar to primitive types. Java also automatically &#8220;interns&#8221; String literals, meaning that a single String object will be created for a literal that is used multiple times. &#8220;String Equality and Interning&#8221; describes the effect of [...]]]></description>
			<content:encoded><![CDATA[<p>Strings are Objects in Java, but the ability to use literals, along with the String concatenation operator, make them somewhat similar to primitive types. Java also automatically &#8220;interns&#8221; String literals, meaning that a single String object will be created for a literal that is used multiple times. &#8220;<A HREF="http://javatechniques.com/public/java/docs/basics/string-equality.html" onMouseOver="window.status='Last modified 1/26/07 6:18 AM by guest (http://javatechniques.com/public/java/docs/basics/string-equality.html)'; return true;">String Equality and Interning</A>&#8221; describes the effect of interning on String equality testing using the <code>==</code> operator and the <code>equals(Object)</code> method.</p>
]]></content:encoded>
			<wfw:commentRss>http://javatechniques.com/blog/2004/01/28/testing-strings-for-equality/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.263 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-05-18 08:39:03 -->
<!-- Compression = gzip -->
