<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.javaworld.com/community" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>jhannes</title>
 <link>http://www.javaworld.com/community/blog/183</link>
 <description>Blog posts via RSS</description>
 <language>en-US</language>
<item>
 <title>Why and how to use Jetty in mission-critical production</title>
 <link>http://www.javaworld.com/community/node/4133</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;This article is a summary of a seminar I had on the topic. If it seems like it&amp;#8217;s a continuation of an existing discussion that&amp;#8217;s because, to some extent, it is. If you haven&amp;#8217;t been discussing exchanging your app server, this article probably isn&amp;#8217;t very interesting to you.&lt;/p&gt;
&lt;p&gt;By putting the application server inside my application instead of the other way around, I was able to leap tall buildings in a single bound. &lt;span class=&#039;read-more&#039;&gt;&lt;a href=&quot;http://www.javaworld.com/community/node/4133&quot;&gt;&lt;br /&gt;&lt;br /&gt;Read more ...&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
 <comments>http://www.javaworld.com/community/node/4133#comments</comments>
 <category domain="http://www.javaworld.com/community/taxonomy/term/1155">English</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/89">java</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/1714">Meeting Summary</category>
 <pubDate>Mon, 08 Mar 2010 19:00:41 -0500</pubDate>
 <dc:creator>jhannes</dc:creator>
 <guid isPermaLink="false">4133 at http://www.javaworld.com/community</guid>
</item>
<item>
 <title>Using Eclipse Better</title>
 <link>http://www.javaworld.com/community/node/4085</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;I&amp;#8217;ve pair programmed &lt;a href=&quot;http://johannesbrodwall.com/2009/12/23/observations-from-katas/&quot;&gt;the Java EE spike kata&lt;/a&gt; in Eclipse with a number of people, I&amp;#8217;ve found that a number of keyboard short cuts and preference settings recur as useful new information. I&amp;#8217;ve compiled the most popular ones in this article. The article is subject to change, but I won&amp;#8217;t change the number of shortcuts.&lt;/p&gt;
&lt;p&gt;Top five shortcuts&lt;/p&gt;
&lt;p&gt;There are some keyboard short cuts that everyone who uses Eclipse should know: &lt;span class=&#039;read-more&#039;&gt;&lt;a href=&quot;http://www.javaworld.com/community/node/4085&quot;&gt;&lt;br /&gt;&lt;br /&gt;Read more ...&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
 <comments>http://www.javaworld.com/community/node/4085#comments</comments>
 <category domain="http://www.javaworld.com/community/taxonomy/term/1155">English</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/89">java</category>
 <pubDate>Thu, 18 Feb 2010 15:00:33 -0500</pubDate>
 <dc:creator>jhannes</dc:creator>
 <guid isPermaLink="false">4085 at http://www.javaworld.com/community</guid>
</item>
<item>
 <title>My first katacast</title>
 <link>http://www.javaworld.com/community/node/3877</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;After seeing some of the great examples of coders working on practiced problems on &lt;a href=&quot;http://www.katacasts.com/&quot;&gt;KataCasts&lt;/a&gt;, I decided to try make my own. I am not happy with the pacing of the video. I&amp;#8217;m about a minute too early relative to the music.&lt;/p&gt;
&lt;p&gt;But I thought I&amp;#8217;d post the video here, to see what you all think. Comments are welcome!&lt;/p&gt;
&lt;p&gt;I hope the video will demonstrate how to use refactoring effectively to drive the design of a program. &lt;span class=&#039;read-more&#039;&gt;&lt;a href=&quot;http://www.javaworld.com/community/node/3877&quot;&gt;&lt;br /&gt;&lt;br /&gt;Read more ...&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
 <comments>http://www.javaworld.com/community/node/3877#comments</comments>
 <category domain="http://www.javaworld.com/community/taxonomy/term/1155">English</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/703">Extreme Programming</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/89">java</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/1642">video</category>
 <pubDate>Thu, 31 Dec 2009 06:53:29 -0500</pubDate>
 <dc:creator>jhannes</dc:creator>
 <guid isPermaLink="false">3877 at http://www.javaworld.com/community</guid>
</item>
<item>
 <title>Observations from katas</title>
 <link>http://www.javaworld.com/community/node/3854</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;Lately, I&amp;#8217;ve been working on two code katas, that is, programming exercises that I repeat until the motions are secure in my muscle memory. The katas I&amp;#8217;ve chosen are: &lt;span class=&#039;read-more&#039;&gt;&lt;a href=&quot;http://www.javaworld.com/community/node/3854&quot;&gt;&lt;br /&gt;&lt;br /&gt;Read more ...&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
 <comments>http://www.javaworld.com/community/node/3854#comments</comments>
 <category domain="http://www.javaworld.com/community/taxonomy/term/1155">English</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/89">java</category>
 <pubDate>Wed, 23 Dec 2009 07:00:28 -0500</pubDate>
 <dc:creator>jhannes</dc:creator>
 <guid isPermaLink="false">3854 at http://www.javaworld.com/community</guid>
</item>
<item>
 <title>Å trene på Java EE</title>
 <link>http://www.javaworld.com/community/node/3777</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;For å bli bedre må man trene. For å bli bedre med avanserte ting, må man forstå de grunnleggende tingene bra. For å vite hvorfor man bruker avanserte verktøy, må man prøve å jobbe uten dem. Derfor har jeg de siste ukene trent mange ganger på å lage en veldig enkel webapplikasjon i Java. For hele applikasjonen har jeg startet med å skrive testene før koden som implementerer funksjonaliteten. &lt;span class=&#039;read-more&#039;&gt;&lt;a href=&quot;http://www.javaworld.com/community/node/3777&quot;&gt;&lt;br /&gt;&lt;br /&gt;Read more ...&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
 <comments>http://www.javaworld.com/community/node/3777#comments</comments>
 <category domain="http://www.javaworld.com/community/taxonomy/term/703">Extreme Programming</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/89">java</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/1568">Norsk</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/312">Software Development</category>
 <pubDate>Wed, 02 Dec 2009 16:00:31 -0500</pubDate>
 <dc:creator>jhannes</dc:creator>
 <guid isPermaLink="false">3777 at http://www.javaworld.com/community</guid>
</item>
<item>
 <title>Effective Enterprise Java at Öredev</title>
 <link>http://www.javaworld.com/community/node/3640</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;Just three weeks ago, I was asked to step in for Ted Neward to give a tutorial at Öredev on &lt;a href=&quot;http://www.oredev.org/Prod/Oredev/site.nsf/docsbycodename/session?opendocument&amp;amp;sid=2DDB2738A9A84259C125765D006D06EA&amp;amp;day=2&amp;amp;track=E92AC6A14535633BC12575A5004943A0&quot;&gt;Effective Enterprise Java&lt;/a&gt;. As I did not have time to get the tutorial materials printed, I present them here on the web for the participants and others. &lt;span class=&#039;read-more&#039;&gt;&lt;a href=&quot;http://www.javaworld.com/community/node/3640&quot;&gt;&lt;br /&gt;&lt;br /&gt;Read more ...&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
 <comments>http://www.javaworld.com/community/node/3640#comments</comments>
 <category domain="http://www.javaworld.com/community/taxonomy/term/1155">English</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/89">java</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/312">Software Development</category>
 <pubDate>Tue, 03 Nov 2009 12:40:37 -0500</pubDate>
 <dc:creator>jhannes</dc:creator>
 <guid isPermaLink="false">3640 at http://www.javaworld.com/community</guid>
</item>
<item>
 <title>Testing Servlets with Mockito</title>
 <link>http://www.javaworld.com/community/node/3596</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;When I write Java-projects that produce web pages, I test on several levels. First, I use Jetty and WebDriver to test the result via http. (WebDriver even lets me test JavaScript!)&lt;/p&gt;
&lt;p&gt;But for speed and agility, unit-level tests beat even the fastest integration level tests. Unit tests run much much faster, and lets me pinpoint problems much more accurately. As a general rule: If you introduce a bug, you want a unit test to be the one that sees it first. &lt;span class=&#039;read-more&#039;&gt;&lt;a href=&quot;http://www.javaworld.com/community/node/3596&quot;&gt;&lt;br /&gt;&lt;br /&gt;Read more ...&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
 <comments>http://www.javaworld.com/community/node/3596#comments</comments>
 <category domain="http://www.javaworld.com/community/taxonomy/term/1155">English</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/89">java</category>
 <pubDate>Sat, 24 Oct 2009 12:47:30 -0400</pubDate>
 <dc:creator>jhannes</dc:creator>
 <guid isPermaLink="false">3596 at http://www.javaworld.com/community</guid>
</item>
<item>
 <title>Extreme Integration: The future of software development?</title>
 <link>http://www.javaworld.com/community/node/3297</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;What will the daily experience of software development look like, say, five years from now? Have our current processes reached their peak, or will the world continue to change? Alan Kay said &amp;#8220;the easiest way to predict the future is to invent it.&amp;#8221; Here are some ideas of the future I want to invent: I hope it will be dramatically better than what we currently do. &lt;span class=&#039;read-more&#039;&gt;&lt;a href=&quot;http://www.javaworld.com/community/node/3297&quot;&gt;&lt;br /&gt;&lt;br /&gt;Read more ...&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
 <comments>http://www.javaworld.com/community/node/3297#comments</comments>
 <category domain="http://www.javaworld.com/community/taxonomy/term/1155">English</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/703">Extreme Programming</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/89">java</category>
 <pubDate>Tue, 11 Aug 2009 11:51:13 -0400</pubDate>
 <dc:creator>jhannes</dc:creator>
 <guid isPermaLink="false">3297 at http://www.javaworld.com/community</guid>
</item>
<item>
 <title>Unit testing tricks: Using unit tests to validate static code</title>
 <link>http://www.javaworld.com/community/node/3263</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;In my current project, we use Flex as the user interface framework of choice. Flex has some nice features, but it takes a long time to build changes and start up, so it takes a while to validate our changes. Yesterday, we found a problem with one our UI components, and used JUnit to hunt down the same problem all over our code. &lt;span class=&#039;read-more&#039;&gt;&lt;a href=&quot;http://www.javaworld.com/community/node/3263&quot;&gt;&lt;br /&gt;&lt;br /&gt;Read more ...&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
 <comments>http://www.javaworld.com/community/node/3263#comments</comments>
 <category domain="http://www.javaworld.com/community/taxonomy/term/1155">English</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/89">java</category>
 <pubDate>Thu, 30 Jul 2009 05:52:50 -0400</pubDate>
 <dc:creator>jhannes</dc:creator>
 <guid isPermaLink="false">3263 at http://www.javaworld.com/community</guid>
</item>
<item>
 <title>Unit testing tricks: Look ma, no setters!</title>
 <link>http://www.javaworld.com/community/node/3072</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;Here&amp;#8217;s a neat trick if you want set an object in a specific state in a unit test, but you don&amp;#8217;t want to violate encapsulation: &lt;span class=&#039;read-more&#039;&gt;&lt;a href=&quot;http://www.javaworld.com/community/node/3072&quot;&gt;&lt;br /&gt;&lt;br /&gt;Read more ...&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
 <comments>http://www.javaworld.com/community/node/3072#comments</comments>
 <category domain="http://www.javaworld.com/community/taxonomy/term/1155">English</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/89">java</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/10">testing</category>
 <pubDate>Sun, 14 Jun 2009 12:59:39 -0400</pubDate>
 <dc:creator>jhannes</dc:creator>
 <guid isPermaLink="false">3072 at http://www.javaworld.com/community</guid>
</item>
<item>
 <title>Cool algorithm</title>
 <link>http://www.javaworld.com/community/node/2758</link>
 <description>I found it a little hard to understand the underlying security aspects. Is the security of the algorithm based on the fact that the successor-function F is hard to reverse? So that if

A = F(B)

Then it&#039;s hard to reverse F? So that knowing A and F will not help you find B?

Secondly, is it correct that the algorithm is insufficient to establish trust? It merely verifying that a visitor is a returning user.

Finally: Is there a common way to handle it if the client runs out of keys?&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;ul class=&quot;links&quot;&gt;&lt;li  class=&quot;first last og_links&quot;&gt;&lt;a href=&quot;/community/node/1477&quot; class=&quot;og_links&quot;&gt;JW Talkback&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</description>
 <comments>http://www.javaworld.com/community/node/2758#comments</comments>
 <category domain="http://www.javaworld.com/community/taxonomy/term/821">Core Java</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/825">Design Patterns</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/836">Enterprise Best Practices</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/829">Java Programming Concepts</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/822">Java Security</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/841">Open Source Tools</category>
 <group domain="http://www.javaworld.com/community/node/1477">JW Talkback</group>
 <pubDate>Tue, 07 Apr 2009 18:35:41 -0400</pubDate>
 <dc:creator>jhannes</dc:creator>
 <guid isPermaLink="false">2758 at http://www.javaworld.com/community</guid>
</item>
<item>
 <title>How to stay ahead</title>
 <link>http://www.javaworld.com/community/node/2757</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;This is a test case from my current project:&lt;/p&gt;
&lt;p&gt;Scenario: Finish gathering information&lt;br /&gt;
  Given I have an open case&lt;br /&gt;
  And the case has a task &quot;gather information from X&quot;&lt;br /&gt;
  And the case has a task &quot;gather information from Y&quot;&lt;br /&gt;
  When the user confirms that task &quot;gather information from X&quot; is completed&lt;br /&gt;
  And the user confirms that task &quot;gather information from Y&quot; is completed&lt;br /&gt;
  Then the case should generate a new task &quot;evaluate customer standing&quot;&lt;/p&gt;
&lt;p&gt;It seems pretty run of the mill. A tester will sit down with a bunch of these and try out the application. &lt;span class=&#039;read-more&#039;&gt;&lt;a href=&quot;http://www.javaworld.com/community/node/2757&quot;&gt;&lt;br /&gt;&lt;br /&gt;Read more ...&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
 <comments>http://www.javaworld.com/community/node/2757#comments</comments>
 <category domain="http://www.javaworld.com/community/taxonomy/term/1235">Communities</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/1155">English</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/89">java</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/312">Software Development</category>
 <pubDate>Tue, 07 Apr 2009 16:56:45 -0400</pubDate>
 <dc:creator>jhannes</dc:creator>
 <guid isPermaLink="false">2757 at http://www.javaworld.com/community</guid>
</item>
<item>
 <title>Refactoring on @Ignore</title>
 <link>http://www.javaworld.com/community/node/2741</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;Doing the Code Dojo at Oslo XP meetup last Monday, I realized a new concept that I&amp;#8217;ve been using unconsciously for a while: I only add to the structure of my system when I have a test that cannot be satisfied by the current design. The rules of test-driven development tells me to wait to create a more advanced design until I have a reason to do so. And that reason should be a failing test. However, the rules of refactoring require all tests to be green during a refactoring. So the failing test must be Ignored during the refactoring. &lt;span class=&#039;read-more&#039;&gt;&lt;a href=&quot;http://www.javaworld.com/community/node/2741&quot;&gt;&lt;br /&gt;&lt;br /&gt;Read more ...&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
 <comments>http://www.javaworld.com/community/node/2741#comments</comments>
 <category domain="http://www.javaworld.com/community/taxonomy/term/1155">English</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/703">Extreme Programming</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/89">java</category>
 <pubDate>Sat, 04 Apr 2009 18:56:56 -0400</pubDate>
 <dc:creator>jhannes</dc:creator>
 <guid isPermaLink="false">2741 at http://www.javaworld.com/community</guid>
</item>
<item>
 <title>Planning by value</title>
 <link>http://www.javaworld.com/community/node/2698</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;Agile development is easy to understand and hard to do. One of the hardest things to do is to base plans and actions on &lt;em&gt;value&lt;/em&gt; instead of &lt;em&gt;effort&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;An article by &lt;a href=&quot;http://alistair.cockburn.us/The+declaration+of+interdependence+for+modern+management&quot;&gt;Alistair Cockburn&lt;/a&gt; includes a story that illustrates the point:&lt;/p&gt;
&lt;p&gt;A boy is behind on his German language home work. He now has to read ten stories and answer a set of question for each. He will be graded on the number of correct answers. &lt;span class=&#039;read-more&#039;&gt;&lt;a href=&quot;http://www.javaworld.com/community/node/2698&quot;&gt;&lt;br /&gt;&lt;br /&gt;Read more ...&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
 <comments>http://www.javaworld.com/community/node/2698#comments</comments>
 <category domain="http://www.javaworld.com/community/taxonomy/term/1155">English</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/703">Extreme Programming</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/89">java</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/312">Software Development</category>
 <pubDate>Sun, 29 Mar 2009 12:57:06 -0400</pubDate>
 <dc:creator>jhannes</dc:creator>
 <guid isPermaLink="false">2698 at http://www.javaworld.com/community</guid>
</item>
<item>
 <title>Five unit testing tips #4: Don&amp;#8217;t mock your way into accidental complexity</title>
 <link>http://www.javaworld.com/community/node/2502</link>
 <description>&lt;!--paging_filter--&gt;&lt;p&gt;I&amp;#8217;ve all but stopped using mock objects in my tests. The reason is that mocking have had a detrimental effect on the design of my systems. I&amp;#8217;ve often ended up having the mocks trick me into adding a needless layer of indirection that does nothing except delegate to the next layer, just to satisfy the mocks. &lt;span class=&#039;read-more&#039;&gt;&lt;a href=&quot;http://www.javaworld.com/community/node/2502&quot;&gt;&lt;br /&gt;&lt;br /&gt;Read more ...&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
 <comments>http://www.javaworld.com/community/node/2502#comments</comments>
 <category domain="http://www.javaworld.com/community/taxonomy/term/1155">English</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/89">java</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/312">Software Development</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/10">testing</category>
 <category domain="http://www.javaworld.com/community/taxonomy/term/804">Top 5</category>
 <pubDate>Tue, 24 Feb 2009 02:56:40 -0500</pubDate>
 <dc:creator>jhannes</dc:creator>
 <guid isPermaLink="false">2502 at http://www.javaworld.com/community</guid>
</item>
</channel>
</rss>
