<?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>Dark Views &#187; Java</title>
	<atom:link href="http://blog.pdark.de/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.pdark.de</link>
	<description>Opinions and views about computers, writing SciFi and everything else.</description>
	<lastBuildDate>Wed, 08 Feb 2012 06:43:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.pdark.de' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/7741f06d762e6a53700b2915f21e3d77?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Dark Views &#187; Java</title>
		<link>http://blog.pdark.de</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.pdark.de/osd.xml" title="Dark Views" />
	<atom:link rel='hub' href='http://blog.pdark.de/?pushpress=hub'/>
		<item>
		<title>Fun With Generics: Return Anything</title>
		<link>http://blog.pdark.de/2012/01/13/fun-with-generics-return-anything/</link>
		<comments>http://blog.pdark.de/2012/01/13/fun-with-generics-return-anything/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 13:26:25 +0000</pubDate>
		<dc:creator>digulla</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Generics]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Reflection]]></category>

		<guid isPermaLink="false">http://blog.pdark.de/?p=2470</guid>
		<description><![CDATA[If you want to return anything in Java, you usually use Object &#8211; with Java 5 and autoboxing, this even allows to return primitive types. But with Generics, you can do better: You can return whatever the caller wants. How? Like so: Use cases: Calling unknown methods or reading field values with the Reflection API. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.pdark.de&amp;blog=6384723&amp;post=2470&amp;subd=darkviews&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you want to return anything in Java, you usually use Object &#8211; with Java 5 and autoboxing, this even allows to return primitive types.</p>
<p>But with Generics, you can do better: You can return whatever the caller wants.</p>
<p>How? Like so:</p>
<p><pre class="brush: java;">
     public &lt;T&gt; T get() {
        @SuppressWarnings( &quot;unchecked&quot; )
        T result = (T) ...calculate the result...;
            
        return result;
     }
</pre></p>
<p>Use cases: Calling unknown methods or reading field values with the <a href="http://docs.oracle.com/javase/tutorial/reflect/" target="_blank">Reflection API</a>. Instead of cluttering your code with casts, just write (where ReflectionUtils.invokeMethod() uses the trick above):</p>
<p><pre class="brush: java;">
     Map&lt;String, List&lt;Map&lt;String, String&gt;&gt; map = Maps.newHashMap();
     Set&lt;List&lt;Map&lt;String, String&gt;&gt; entries = ReflectionUtils.invokeMethod( map, &quot;entrySet&quot; );
</pre></p>
<p>Cool, eh?</p>
<p>Unfortunately, Sun&#8217;s javac isn&#8217;t smart enough to determine a common upper bound between int and Object. So if you need to return int, you still need a cast:</p>
<p><pre class="brush: java;">
     Map&lt;String, List&lt;Map&lt;String, String&gt;&gt; map = Maps.newHashMap();
     int size = ReflectionUtils.invokeMethod( map, &quot;size&quot; );
</pre></p>
<br /> Tagged: <a href='http://blog.pdark.de/tag/generics/'>Generics</a>, <a href='http://blog.pdark.de/tag/java/'>Java</a>, <a href='http://blog.pdark.de/tag/reflection/'>Reflection</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/darkviews.wordpress.com/2470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/darkviews.wordpress.com/2470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/darkviews.wordpress.com/2470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/darkviews.wordpress.com/2470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/darkviews.wordpress.com/2470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/darkviews.wordpress.com/2470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/darkviews.wordpress.com/2470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/darkviews.wordpress.com/2470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/darkviews.wordpress.com/2470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/darkviews.wordpress.com/2470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/darkviews.wordpress.com/2470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/darkviews.wordpress.com/2470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/darkviews.wordpress.com/2470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/darkviews.wordpress.com/2470/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.pdark.de&amp;blog=6384723&amp;post=2470&amp;subd=darkviews&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.pdark.de/2012/01/13/fun-with-generics-return-anything/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a4d6f03a8879432d8563aefbf48e787?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">digulla</media:title>
		</media:content>
	</item>
		<item>
		<title>Debugging v2.0 With Chronon</title>
		<link>http://blog.pdark.de/2011/12/01/debugging-v2-0-with-chronon/</link>
		<comments>http://blog.pdark.de/2011/12/01/debugging-v2-0-with-chronon/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 13:07:37 +0000</pubDate>
		<dc:creator>digulla</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Chronon]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Time Travel]]></category>

		<guid isPermaLink="false">http://blog.pdark.de/?p=2405</guid>
		<description><![CDATA[&#8220;&#8230; Okay, let&#8217;s just set a breakpoint there &#8230; run again &#8230; continue continue continue next next next *argh* run again &#8230; continue continue continue next next &#8230; Why is it still null?? Who changes this field? Oh, damn &#8230; breakpoint &#8230; run again &#8230; where is that coming from? &#8230; oh no &#8230;&#8221; Sound familiar? [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.pdark.de&amp;blog=6384723&amp;post=2405&amp;subd=darkviews&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>&#8220;&#8230; Okay, let&#8217;s just set a breakpoint there &#8230; run again &#8230; continue continue continue next next next *argh* run again &#8230; continue continue continue next next &#8230; Why is it still null?? Who changes this field? Oh, damn &#8230; breakpoint &#8230; run again &#8230; where is that coming from? &#8230; oh no &#8230;&#8221;</p>
<p>Sound familiar? How often do you rerun your code just because you can&#8217;t step backwards in time? How often did you ask yourself &#8220;who is calling this method?&#8221; Or &#8220;where did this value come from?&#8221;</p>
<p>Meet <a href="http://www.chrononsystems.com/" target="_blank">Chronon</a>. In a nutshell, Chronon runs your code, saves all state changes (method calls, variable assignments) somewhere and allows you to browse the result.</p>
<p>So with this tool, the text above would have been: &#8220;&#8230; Okay, it&#8217;s null here. Where does that value come from? *click* Oh, ok. Who called this method? *click* Oh, I see.&#8221;</p>
<p>This makes you find the source of an error much more quickly. Other questions that Chronon can answer:</p>
<ul>
<li>Find all instances of a class that were created. A special window lists all exceptions that were thrown.</li>
<li>Step backwards (just like stepping forward)</li>
<li>Go to the code that printed a certain output on the Console (just click on the output in the Console window!)</li>
<li>Show me all the values of some variable (Post Execution Logging)</li>
</ul>
<p>The tool is surprisingly fast. You&#8217;d expect something like that to hog your computer but collecting the data is pretty quick (just a small increase in the time it takes to execute the code; I didn&#8217;t time it).</p>
<p>It does take a mental leap, though. Stop thinking like you were executing the code. It&#8217;s more a specialized database browser where the data is all the states of your application.</p>
<p>Things that I don&#8217;t like:</p>
<ol>
<li>Opening a recording takes a few moments (&lt;&lt; 1 minute) while it &#8220;decompresses&#8221; the recording. I&#8217;m not sure what happens here. It seems stupid to compress the latest recording because chances are that you probably want to use it soon. But I guess this stage creates a couple of indexes so the UI can quickly navigate the data, so it&#8217;s just an unhappy label.</li>
<li>The plug-in messes with my eclipse.ini! Bad plug-in, down! I understand that Chronon needs lots of RAM. And I think it does take your total memory into account (it allocated 2.5GB of my 8GB). Still, it should <strong>ask</strong> before doing something like that. And it absolutely <strong>should not</strong> do it <strong>again</strong>, after I reset the values to something sane. GCing 2.5GB of RAM does take a long time!</li>
</ol>
<br /> Tagged: <a href='http://blog.pdark.de/tag/chronon/'>Chronon</a>, <a href='http://blog.pdark.de/tag/debugging/'>Debugging</a>, <a href='http://blog.pdark.de/tag/java/'>Java</a>, <a href='http://blog.pdark.de/tag/time-travel/'>Time Travel</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/darkviews.wordpress.com/2405/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/darkviews.wordpress.com/2405/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/darkviews.wordpress.com/2405/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/darkviews.wordpress.com/2405/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/darkviews.wordpress.com/2405/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/darkviews.wordpress.com/2405/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/darkviews.wordpress.com/2405/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/darkviews.wordpress.com/2405/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/darkviews.wordpress.com/2405/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/darkviews.wordpress.com/2405/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/darkviews.wordpress.com/2405/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/darkviews.wordpress.com/2405/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/darkviews.wordpress.com/2405/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/darkviews.wordpress.com/2405/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.pdark.de&amp;blog=6384723&amp;post=2405&amp;subd=darkviews&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.pdark.de/2011/12/01/debugging-v2-0-with-chronon/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a4d6f03a8879432d8563aefbf48e787?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">digulla</media:title>
		</media:content>
	</item>
		<item>
		<title>Peace Between Java and SQL</title>
		<link>http://blog.pdark.de/2011/11/23/peace-between-java-and-sql/</link>
		<comments>http://blog.pdark.de/2011/11/23/peace-between-java-and-sql/#comments</comments>
		<pubDate>Wed, 23 Nov 2011 13:21:11 +0000</pubDate>
		<dc:creator>digulla</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java Database Connectivity]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://blog.pdark.de/?p=2400</guid>
		<description><![CDATA[There are various attempts to get Java and SQL to behave with each other. We have JDBC, OR mappers like Hibernate and EclipseLink, language support like in Groovy. All of those have advantages and drawbacks. JDBC is powerful but low-level. The API is not really friendly. You need to write a lot of boiler plate [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.pdark.de&amp;blog=6384723&amp;post=2400&amp;subd=darkviews&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>There are various attempts to get Java and <a class="zem_slink" title="SQL" href="http://en.wikipedia.org/wiki/SQL" rel="wikipedia">SQL</a> to behave with each other. We have <a class="zem_slink" title="Java Database Connectivity" href="http://en.wikipedia.org/wiki/Java_Database_Connectivity" rel="wikipedia">JDBC</a>, OR mappers like <a class="zem_slink" title="Hibernate (Java)" href="http://www.hibernate.org" rel="homepage">Hibernate</a> and <a href="http://www.eclipse.org/eclipselink/" target="_blank">EclipseLink</a>, language support like in <a class="zem_slink" title="Groovy (programming language)" href="http://groovy.codehaus.org/" rel="homepage">Groovy</a>. All of those have advantages and drawbacks.</p>
<p>JDBC is powerful but low-level. The API is not really friendly. You need to write a lot of boiler plate code for even simple tasks.</p>
<p>Languages like Groovy wrap JDBC to make simple tasks simple. The code becomes much more readable but changes in the database schema become runtime errors.</p>
<p>OR mappers try to turn a relational database into a OO database. It works better than you&#8217;d expect but it also causes odd problems and leaks into design of your code: You must no&#8217;t use the ID field in equals, hiding the session in a thread-local variable can cause exceptions when you use lazy loading, failing to understand the requirements of the OR mapper causes spurious bugs. At least the OR mappers will complain when the schema changes.</p>
<p>Enter <a href="http://www.jooq.org/" target="_blank">jOOQ</a>. It&#8217;s like a OO wrapper for JDBC:</p>
<ul>
<li>You get all the power of JDBC if you need it</li>
<li>The readability of a fluent interface</li>
<li>The database schema is part of the code (so you get compile time errors if it changes)</li>
<li>You can iterate over results as if they were a plain Java collection</li>
</ul>
<p>Related:</p>
<ul>
<li><a href="http://www.jooq.org/tutorial.php" target="_blank">Tutorial</a></li>
</ul>
<br /> Tagged: <a href='http://blog.pdark.de/tag/hibernate/'>Hibernate</a>, <a href='http://blog.pdark.de/tag/java/'>Java</a>, <a href='http://blog.pdark.de/tag/java-database-connectivity/'>Java Database Connectivity</a>, <a href='http://blog.pdark.de/tag/sql/'>SQL</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/darkviews.wordpress.com/2400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/darkviews.wordpress.com/2400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/darkviews.wordpress.com/2400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/darkviews.wordpress.com/2400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/darkviews.wordpress.com/2400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/darkviews.wordpress.com/2400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/darkviews.wordpress.com/2400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/darkviews.wordpress.com/2400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/darkviews.wordpress.com/2400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/darkviews.wordpress.com/2400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/darkviews.wordpress.com/2400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/darkviews.wordpress.com/2400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/darkviews.wordpress.com/2400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/darkviews.wordpress.com/2400/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.pdark.de&amp;blog=6384723&amp;post=2400&amp;subd=darkviews&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.pdark.de/2011/11/23/peace-between-java-and-sql/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a4d6f03a8879432d8563aefbf48e787?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">digulla</media:title>
		</media:content>
	</item>
		<item>
		<title>ZK</title>
		<link>http://blog.pdark.de/2011/10/27/zk/</link>
		<comments>http://blog.pdark.de/2011/10/27/zk/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 18:56:30 +0000</pubDate>
		<dc:creator>digulla</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Google Web Toolkit]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Roo]]></category>
		<category><![CDATA[Vaadin]]></category>
		<category><![CDATA[Web development]]></category>
		<category><![CDATA[Wicket]]></category>
		<category><![CDATA[ZK]]></category>
		<category><![CDATA[ZK (framework)]]></category>

		<guid isPermaLink="false">http://blog.pdark.de/?p=2382</guid>
		<description><![CDATA[I&#8217;ve been developing web applications for the past few years. Recently, we evaluated many of the web frameworks out there to select one for the next major release of our product. We looked at Wicket, GWT, Vaadin, ZK, Roo and a couple of others. Wicket was quickly dropped from the list. It&#8217;s a nice framework [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.pdark.de&amp;blog=6384723&amp;post=2382&amp;subd=darkviews&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been developing web applications for the past few years. Recently, we evaluated many of the web frameworks out there to select one for the next major release of our product.</p>
<p>We looked at <a class="zem_slink" title="Apache Wicket" href="http://wicket.apache.org" rel="homepage">Wicket</a>, <a class="zem_slink" title="Google Web Toolkit" href="http://code.google.com/webtoolkit" rel="homepage">GWT</a>, <a class="zem_slink" title="Vaadin" href="http://vaadin.com/" rel="homepage">Vaadin</a>, <a class="zem_slink" title="ZK (framework)" href="http://www.zkoss.org" rel="homepage">ZK</a>, <a href="http://www.springsource.org/spring-roo" target="_blank">Roo</a> and a couple of others.</p>
<p>Wicket was quickly dropped from the list. It&#8217;s a nice framework but it lacks one important feature: A library of reusable, cross browser components. Yeah, there are a couple but they are all very basic and building complex UIs with Wicket is done in HTML and that&#8217;s just painful.</p>
<p>Roo is too slow and immature and suffers from the same problems as Wicket. Maintaining cross-browser compatibility for a complex web application is something that a small team of developers can&#8217;t do anymore today.</p>
<p>GWT was dropped because Vaadin is based on it.</p>
<p>That left Vaadin and ZK.</p>
<p>Vaadin looks good, it&#8217;s free and based on GWT which is backed by Google. The main issue with Vaadin is that the technology is &#8230; unapproachable. There is a decent set of components but tweaking them is a pain. Plus the Java -&gt; JavaScript compilation takes a lot of time. It&#8217;s better than most other frameworks but doesn&#8217;t compare to ZK.</p>
<p>Why?</p>
<p>ZK has a big set of well designed components with a huge documentation how to tweak them. The docs explain in detail how the components are built from HTML elements, which <a class="zem_slink" title="Cascading Style Sheets" href="http://en.wikipedia.org/wiki/Cascading_Style_Sheets" rel="wikipedia">CSS</a> styles are used and how you can override them. There is even a visual CSS editor that helps doing this.</p>
<p>When working with ZK, you often run into situations where something doesn&#8217;t work but so far, I&#8217;ve found a good solution within a short time. This might also be possible with Vaadin but it didn&#8217;t happen for me.</p>
<p>There are a lot of powerful layouts to arrange your UIs. You can cleanly mix ZUL (the UI descriptions) with Java code to get the best from both worlds: A clean UI description and compact code to attach listeners, publish events and connect components.</p>
<p>Also, ZK hides the request cycle. This is one of the biggest source of problems with developers. Yeah, the request/response cycle makes it easier to write web browsers and server frameworks but it&#8217;s a major pain for application developers. With ZK, you&#8217;re writing code that looks like a desktop application. It&#8217;s a bit like GWT in this respect but GWT feels &#8230; &#8220;proprietary&#8221;. In ZK, a lot of the API is public. In GWT, a lot of the API is hidden away in final static factory methods buried in calls between 50 classes.</p>
<p>You can use JavaScript but the JavaScript isn&#8217;t hidden in pseudo-native functions. That ZK5 is based on jQuery is an additional bonus if you really need to get your hands dirty.</p>
<p>The <a href="http://www.zkoss.org/zkdemo/grid" target="_blank">demo page</a> contains lots of useful examples (instead of simply listing the available components like many other frameworks). There is a <a href="http://www.zkoss.org/zksandbox/" target="_blank">sandbox</a> where you can modify small ZK projects online.</p>
<p>ZK does have its share of problems, too. Testing is a weak point. Selenium probably works well enough for mouse-driven apps but if you have components which can be controlled by keyboard alone, Selenium doesn&#8217;t cut.</p>
<p>The documentation on the web site could be better; for beginners, it&#8217;s especially confusing that the documentation for ZK3 and ZK5 is hard to tell apart.</p>
<p>But all in all, I&#8217;ve been faster to solve any problem I&#8217;ve had so far with ZK than with any other web framework.</p>
<p>Well done.</p>
<br /> Tagged: <a href='http://blog.pdark.de/tag/google-web-toolkit/'>Google Web Toolkit</a>, <a href='http://blog.pdark.de/tag/java/'>Java</a>, <a href='http://blog.pdark.de/tag/roo/'>Roo</a>, <a href='http://blog.pdark.de/tag/vaadin/'>Vaadin</a>, <a href='http://blog.pdark.de/tag/web-development/'>Web development</a>, <a href='http://blog.pdark.de/tag/wicket/'>Wicket</a>, <a href='http://blog.pdark.de/tag/zk/'>ZK</a>, <a href='http://blog.pdark.de/tag/zk-framework/'>ZK (framework)</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/darkviews.wordpress.com/2382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/darkviews.wordpress.com/2382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/darkviews.wordpress.com/2382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/darkviews.wordpress.com/2382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/darkviews.wordpress.com/2382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/darkviews.wordpress.com/2382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/darkviews.wordpress.com/2382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/darkviews.wordpress.com/2382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/darkviews.wordpress.com/2382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/darkviews.wordpress.com/2382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/darkviews.wordpress.com/2382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/darkviews.wordpress.com/2382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/darkviews.wordpress.com/2382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/darkviews.wordpress.com/2382/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.pdark.de&amp;blog=6384723&amp;post=2382&amp;subd=darkviews&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.pdark.de/2011/10/27/zk/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a4d6f03a8879432d8563aefbf48e787?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">digulla</media:title>
		</media:content>
	</item>
		<item>
		<title>Human-Readable File Sizes</title>
		<link>http://blog.pdark.de/2011/09/06/human-readable-file-sizes/</link>
		<comments>http://blog.pdark.de/2011/09/06/human-readable-file-sizes/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 13:16:39 +0000</pubDate>
		<dc:creator>digulla</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[File size]]></category>
		<category><![CDATA[Formatting]]></category>
		<category><![CDATA[Human-readable]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Number]]></category>

		<guid isPermaLink="false">http://blog.pdark.de/?p=2296</guid>
		<description><![CDATA[Every now and then, you need to show a number to a human. In some cases, those numbers can range from very small to huge. File sizes are an example. Here is a very short code sample how to get a nice file size for human consumption: How to convert byte size into human readable format [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.pdark.de&amp;blog=6384723&amp;post=2296&amp;subd=darkviews&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Every now and then, you need to show a number to a human. In some cases, those numbers can range from very small to huge. File sizes are an example.</p>
<p>Here is a very short code sample how to get a nice file size for human consumption: <a href="http://stackoverflow.com/questions/3758606/how-to-convert-byte-size-into-human-readable-format-in-java/3758880#3758880" target="_blank">How to convert byte size into human readable format in java?</a></p>
<p>Best of all: It&#8217;s four lines of code but it can handle <a href="http://en.wikipedia.org/wiki/Kibibyte" target="_blank">SI and non-SI units</a>.</p>
<br /> Tagged: <a href='http://blog.pdark.de/tag/file-size/'>File size</a>, <a href='http://blog.pdark.de/tag/formatting/'>Formatting</a>, <a href='http://blog.pdark.de/tag/human-readable/'>Human-readable</a>, <a href='http://blog.pdark.de/tag/java/'>Java</a>, <a href='http://blog.pdark.de/tag/number/'>Number</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/darkviews.wordpress.com/2296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/darkviews.wordpress.com/2296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/darkviews.wordpress.com/2296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/darkviews.wordpress.com/2296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/darkviews.wordpress.com/2296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/darkviews.wordpress.com/2296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/darkviews.wordpress.com/2296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/darkviews.wordpress.com/2296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/darkviews.wordpress.com/2296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/darkviews.wordpress.com/2296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/darkviews.wordpress.com/2296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/darkviews.wordpress.com/2296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/darkviews.wordpress.com/2296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/darkviews.wordpress.com/2296/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.pdark.de&amp;blog=6384723&amp;post=2296&amp;subd=darkviews&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.pdark.de/2011/09/06/human-readable-file-sizes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a4d6f03a8879432d8563aefbf48e787?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">digulla</media:title>
		</media:content>
	</item>
		<item>
		<title>Useful JUnit Helper Method: ignoreUntil()</title>
		<link>http://blog.pdark.de/2011/08/16/useful-junit-helper-method-ignoreuntil/</link>
		<comments>http://blog.pdark.de/2011/08/16/useful-junit-helper-method-ignoreuntil/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 07:36:28 +0000</pubDate>
		<dc:creator>digulla</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JUnit]]></category>

		<guid isPermaLink="false">http://blog.pdark.de/?p=2263</guid>
		<description><![CDATA[We all know the pattern: A test fails but you can&#8217;t fix it right away. What do you do? Let it stay red? @Ignore it? All those approaches have drawbacks. Red tests make me nervous. But when I add an @Ignore, I sometimes forget to remove it in a timely fashion. Enter stage ignoreUntil(): Usage: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.pdark.de&amp;blog=6384723&amp;post=2263&amp;subd=darkviews&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We all know the pattern: A test fails but you can&#8217;t fix it right away. What do you do? Let it stay red? @Ignore it?</p>
<p>All those approaches have drawbacks. Red tests make me nervous. But when I add an @Ignore, I sometimes forget to remove it in a timely fashion. Enter stage <tt>ignoreUntil()</tt>:</p>
<p><pre class="brush: java;">
/**
 * Ignore a test until a certain date.
 *
 * &lt;p&gt;This method will make the test silently fail
 * (as if it had been ignored) until a certain
 * date.
 *
 * &lt;p&gt;For documentation purposes, you can give a
 * message that explains why it's ignored.
 */
public static void ignoreUntil(
    String date_YYYY_MM_DD,
    String message
) {
    Date date;
    SimpleDateFormat format
        = new SimpleDateFormat( &quot;yyyy-MM-dd&quot; );
    try {
        date = format.parse( date_YYYY_MM_DD );
    } catch( ParseException e ) {
        throw new RuntimeException(
            &quot;Can't parse date [&quot; 
            + date_YYYY_MM_DD
            + &quot;] using format &quot;
            + format.toPattern()
        );
    }
    Assume.assumeTrue( new Date().after( date ) );
}
</pre></p>
<p>Usage:</p>
<p><pre class="brush: java;">
@Test
public void someTest() throws Exception {
    ignoreUntil( &quot;2011-09-15&quot;, &quot;See issue #78&quot; );
}
</pre></p>
<p>Happy testing!</p>
<br /> Tagged: <a href='http://blog.pdark.de/tag/java/'>Java</a>, <a href='http://blog.pdark.de/tag/junit/'>JUnit</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/darkviews.wordpress.com/2263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/darkviews.wordpress.com/2263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/darkviews.wordpress.com/2263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/darkviews.wordpress.com/2263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/darkviews.wordpress.com/2263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/darkviews.wordpress.com/2263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/darkviews.wordpress.com/2263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/darkviews.wordpress.com/2263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/darkviews.wordpress.com/2263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/darkviews.wordpress.com/2263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/darkviews.wordpress.com/2263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/darkviews.wordpress.com/2263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/darkviews.wordpress.com/2263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/darkviews.wordpress.com/2263/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.pdark.de&amp;blog=6384723&amp;post=2263&amp;subd=darkviews&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.pdark.de/2011/08/16/useful-junit-helper-method-ignoreuntil/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a4d6f03a8879432d8563aefbf48e787?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">digulla</media:title>
		</media:content>
	</item>
		<item>
		<title>Java Tools For Healthy Code</title>
		<link>http://blog.pdark.de/2011/08/12/java-tools-for-healthy-code/</link>
		<comments>http://blog.pdark.de/2011/08/12/java-tools-for-healthy-code/#comments</comments>
		<pubDate>Fri, 12 Aug 2011 15:15:41 +0000</pubDate>
		<dc:creator>digulla</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Code Health]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://blog.pdark.de/?p=2254</guid>
		<description><![CDATA[While any good developer makes sure that his code is healthy all the time *cough*, tools can be a lot of help. Venkatt Guhesan has compiled a list of 11 tools that you should know about. Tagged: Code Health, Java, Software Development, Tools<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.pdark.de&amp;blog=6384723&amp;post=2254&amp;subd=darkviews&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>While any good developer makes sure that his code is healthy all the time <em>*cough*</em>, tools can be a lot of help.</p>
<p><a href="https://mythinkpond.wordpress.com/2011/07/14/java-tools-for-source-code-optimization-and-analysis/" target="_blank">Venkatt Guhesan has compiled a list of 11 tools</a> that you should know about.</p>
<br /> Tagged: <a href='http://blog.pdark.de/tag/code-health/'>Code Health</a>, <a href='http://blog.pdark.de/tag/java/'>Java</a>, <a href='http://blog.pdark.de/tag/software-development/'>Software Development</a>, <a href='http://blog.pdark.de/tag/tools/'>Tools</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/darkviews.wordpress.com/2254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/darkviews.wordpress.com/2254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/darkviews.wordpress.com/2254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/darkviews.wordpress.com/2254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/darkviews.wordpress.com/2254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/darkviews.wordpress.com/2254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/darkviews.wordpress.com/2254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/darkviews.wordpress.com/2254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/darkviews.wordpress.com/2254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/darkviews.wordpress.com/2254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/darkviews.wordpress.com/2254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/darkviews.wordpress.com/2254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/darkviews.wordpress.com/2254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/darkviews.wordpress.com/2254/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.pdark.de&amp;blog=6384723&amp;post=2254&amp;subd=darkviews&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.pdark.de/2011/08/12/java-tools-for-healthy-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a4d6f03a8879432d8563aefbf48e787?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">digulla</media:title>
		</media:content>
	</item>
		<item>
		<title>Tools To Analyze Java hs_err Files</title>
		<link>http://blog.pdark.de/2011/07/28/tools-to-analyze-java-hs_err-files/</link>
		<comments>http://blog.pdark.de/2011/07/28/tools-to-analyze-java-hs_err-files/#comments</comments>
		<pubDate>Thu, 28 Jul 2011 08:37:14 +0000</pubDate>
		<dc:creator>digulla</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Crash]]></category>
		<category><![CDATA[hs_err]]></category>
		<category><![CDATA[hs_err_pid]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://blog.pdark.de/?p=2233</guid>
		<description><![CDATA[Java crash dumps contain lots of valuable information but one thing is missing: The versions of the libraries installed. I&#8217;ve started a new project on github to gather this info from a hs_err_pid file: Java-hs_err_pid-List-Library-Versions Currently, only Debian is supported. &#160; &#160; Tagged: Crash, hs_err, hs_err_pid, Java<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.pdark.de&amp;blog=6384723&amp;post=2233&amp;subd=darkviews&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Java crash dumps contain lots of valuable information but one thing is missing: The versions of the libraries installed.</p>
<p>I&#8217;ve started a new project on <a href="https://github.com/" target="_blank">github</a> to gather this info from a hs_err_pid file: <a href="https://github.com/digulla/Java-hs_err_pid-List-Library-Versions" target="_blank">Java-hs_err_pid-List-Library-Versions</a></p>
<p>Currently, only <a href="http://www.debian.org/" target="_blank">Debian</a> is supported.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<br /> Tagged: <a href='http://blog.pdark.de/tag/crash/'>Crash</a>, <a href='http://blog.pdark.de/tag/hs_err/'>hs_err</a>, <a href='http://blog.pdark.de/tag/hs_err_pid/'>hs_err_pid</a>, <a href='http://blog.pdark.de/tag/java/'>Java</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/darkviews.wordpress.com/2233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/darkviews.wordpress.com/2233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/darkviews.wordpress.com/2233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/darkviews.wordpress.com/2233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/darkviews.wordpress.com/2233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/darkviews.wordpress.com/2233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/darkviews.wordpress.com/2233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/darkviews.wordpress.com/2233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/darkviews.wordpress.com/2233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/darkviews.wordpress.com/2233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/darkviews.wordpress.com/2233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/darkviews.wordpress.com/2233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/darkviews.wordpress.com/2233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/darkviews.wordpress.com/2233/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.pdark.de&amp;blog=6384723&amp;post=2233&amp;subd=darkviews&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.pdark.de/2011/07/28/tools-to-analyze-java-hs_err-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a4d6f03a8879432d8563aefbf48e787?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">digulla</media:title>
		</media:content>
	</item>
		<item>
		<title>Taming Java GC</title>
		<link>http://blog.pdark.de/2011/07/14/taming-java-gc/</link>
		<comments>http://blog.pdark.de/2011/07/14/taming-java-gc/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 10:10:09 +0000</pubDate>
		<dc:creator>digulla</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Garbage Collection]]></category>
		<category><![CDATA[GC]]></category>
		<category><![CDATA[HotSpot]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java Virtual Machine]]></category>
		<category><![CDATA[Java VM]]></category>

		<guid isPermaLink="false">http://blog.pdark.de/?p=2209</guid>
		<description><![CDATA[Taming the Java garbage collector (GC) is still one of the most mysterious areas of the Java VM. Aleksey Ragozin has published an excellent series of articles about the topic. Here are my favorites: How to tame java GC pauses? Surviving 16GiB heap and greater. HotSpot JVM garbage collection options cheat sheet Understanding GC pauses [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.pdark.de&amp;blog=6384723&amp;post=2209&amp;subd=darkviews&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Taming the Java garbage collector (<a class="zem_slink" title="Garbage collection (computer science)" href="http://en.wikipedia.org/wiki/Garbage_collection_%28computer_science%29" rel="wikipedia">GC</a>) is still one of the most mysterious areas of the <a class="zem_slink" title="Java Virtual Machine" href="http://en.wikipedia.org/wiki/Java_Virtual_Machine" rel="wikipedia">Java VM</a>. Aleksey Ragozin has published an excellent <a title="Articles about Java by Alexey Ragozin" href="http://aragozin.blogspot.com/search/label/java" target="_blank">series of articles about the topic</a>. Here are my favorites:</p>
<ul>
<li><a href="http://java.dzone.com/articles/how-tame-java-gc-pauses" target="_blank">How to tame java GC pauses? Surviving 16GiB heap and greater.</a></li>
<li><a href="http://aragozin.blogspot.com/2011/07/hotspot-jvm-garbage-collection-options.html" target="_blank">HotSpot JVM garbage collection options cheat sheet</a></li>
<li><a href="http://blog.griddynamics.com/2011/06/understanding-gc-pauses-in-jvm-hotspots_02.html" target="_blank">Understanding GC pauses in JVM, HotSpot&#8217;s CMS collector.</a></li>
<li><a href="http://blog.griddynamics.com/2010/01/java-tricks-reducing-memory-consumption.html" target="_blank">Java tricks, reducing memory consumption</a></li>
</ul>
<br /> Tagged: <a href='http://blog.pdark.de/tag/garbage-collection/'>Garbage Collection</a>, <a href='http://blog.pdark.de/tag/gc/'>GC</a>, <a href='http://blog.pdark.de/tag/hotspot/'>HotSpot</a>, <a href='http://blog.pdark.de/tag/java/'>Java</a>, <a href='http://blog.pdark.de/tag/java-virtual-machine/'>Java Virtual Machine</a>, <a href='http://blog.pdark.de/tag/java-vm/'>Java VM</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/darkviews.wordpress.com/2209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/darkviews.wordpress.com/2209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/darkviews.wordpress.com/2209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/darkviews.wordpress.com/2209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/darkviews.wordpress.com/2209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/darkviews.wordpress.com/2209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/darkviews.wordpress.com/2209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/darkviews.wordpress.com/2209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/darkviews.wordpress.com/2209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/darkviews.wordpress.com/2209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/darkviews.wordpress.com/2209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/darkviews.wordpress.com/2209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/darkviews.wordpress.com/2209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/darkviews.wordpress.com/2209/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.pdark.de&amp;blog=6384723&amp;post=2209&amp;subd=darkviews&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.pdark.de/2011/07/14/taming-java-gc/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a4d6f03a8879432d8563aefbf48e787?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">digulla</media:title>
		</media:content>
	</item>
		<item>
		<title>Restarting a Java App</title>
		<link>http://blog.pdark.de/2011/07/09/restarting-a-java-app/</link>
		<comments>http://blog.pdark.de/2011/07/09/restarting-a-java-app/#comments</comments>
		<pubDate>Sat, 09 Jul 2011 19:50:57 +0000</pubDate>
		<dc:creator>digulla</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://blog.pdark.de/?p=2195</guid>
		<description><![CDATA[Leo Lewis posted some code to restart a Java app. Tagged: Java<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.pdark.de&amp;blog=6384723&amp;post=2195&amp;subd=darkviews&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Leo Lewis posted some code to <a href="http://leolewis.website.org/wordpress/2011/07/06/programmatically-restart-a-java-application/" target="_blank">restart a Java app</a>.</p>
<br /> Tagged: <a href='http://blog.pdark.de/tag/java/'>Java</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/darkviews.wordpress.com/2195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/darkviews.wordpress.com/2195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/darkviews.wordpress.com/2195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/darkviews.wordpress.com/2195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/darkviews.wordpress.com/2195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/darkviews.wordpress.com/2195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/darkviews.wordpress.com/2195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/darkviews.wordpress.com/2195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/darkviews.wordpress.com/2195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/darkviews.wordpress.com/2195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/darkviews.wordpress.com/2195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/darkviews.wordpress.com/2195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/darkviews.wordpress.com/2195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/darkviews.wordpress.com/2195/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.pdark.de&amp;blog=6384723&amp;post=2195&amp;subd=darkviews&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.pdark.de/2011/07/09/restarting-a-java-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a4d6f03a8879432d8563aefbf48e787?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">digulla</media:title>
		</media:content>
	</item>
	</channel>
</rss>
