<?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>Blog of Jeroen Leenarts &#187; Java</title>
	<atom:link href="http://blog.leenarts.net/category/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.leenarts.net</link>
	<description>Macs, Java, software development, IT related books and things I do for a living.</description>
	<lastBuildDate>Fri, 03 Feb 2012 12:37:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Enabling HTTP request response logging on JBoss 4.2</title>
		<link>http://blog.leenarts.net/2010/08/26/http-request-response-logging-jboss-4-2/</link>
		<comments>http://blog.leenarts.net/2010/08/26/http-request-response-logging-jboss-4-2/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 09:47:17 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.leenarts.net/?p=439</guid>
		<description><![CDATA[Today I had a bit of a fiddle with JBoss 4.2 due to IE7/IE8 compatibility differences. When opening or downloading a file in IE7 over an SSL connection (HTTPS), IE7 requires a bit of HTTP header-fu to allow you to &#8230; <a href="http://blog.leenarts.net/2010/08/26/http-request-response-logging-jboss-4-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today I had a bit of a fiddle with JBoss 4.2 due to IE7/IE8 compatibility differences.</p>
<p>When opening or downloading a file in IE7 over an SSL connection (HTTPS), IE7 requires a bit of HTTP header-fu to allow you to actually perform that action.</p>
<p>It&#8217;s simple really. Just add &#8220;Pragma: public&#8221; and &#8220;Cache-Control: maxage=3600&#8243; to your HTTP headers and you&#8217;re good to go.</p>
<p>In Java code:</p>
<pre class="brush: java; title: ; notranslate">
response.setHeader(&quot;Pragma&quot;, &quot;public&quot;);
response.setHeader(&quot;Cache-Control&quot;, &quot;maxage=3600&quot;);
</pre>
<p>To check if it&#8217;s working was a different matter. How to check the HTTP header content when things get sent over an HTTPS connection&#8230; FireBug doesn&#8217;t work, and so doesn&#8217;t any other developer tooling in any browser. Tracing the network traffic is pretty useless too, it&#8217;s encrypted. Last option, trace it on the server. Simply enabling network tracing on the Java VM didn&#8217;t work. For some reason JBoss doesn&#8217;t pick up this Java VM setting, probably because they are using a NIO based stack or something. I really don&#8217;t know.</p>
<p>JBoss does use Catalina for it&#8217;s HTTP/HTTPS/Web container handling. Catalina is another name for Tomcat. Tomcat has this valve thing which allows you to plug into the processing pipe. Good thing there are standard Valve implementations available that do just what I needed.</p>
<p>Just drop the next snippet somewhere appropriate:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!-- Enable http request/response logging.--&gt;
&lt;Valve className=org.apache.catalina.valves.RequestDumperValve
           prefix=localhost_access_log. suffix=.log
           pattern=common directory=${jboss.server.home.dir}/log
           resolveHosts=false /&gt;
</pre>
<p>Appropriate in my case was in the file &#8220;[JBOSS-HOME]/server/default/deploy/jboss-web.deployer/server.xml&#8221;.</p>
<p>And lo and behold it logged:</p>
<pre class="brush: plain; title: ; notranslate">
11:46:44,262 INFO  [[localhost]]           authType=BASIC
11:46:44,262 INFO  [[localhost]]      contentLength=48189
11:46:44,262 INFO  [[localhost]]        contentType=application/pdf
11:46:44,262 INFO  [[localhost]]             header=Pragma=public
11:46:44,262 INFO  [[localhost]]             header=Cache-Control=maxage=3600
11:46:44,262 INFO  [[localhost]]             header=Expires=Thu, 01 Jan 1970 01:00:00 CET
11:46:44,262 INFO  [[localhost]]             header=X-Powered-By=Servlet 2.4; JBoss-4.2.3.GA (build: SVNTag=JBoss_4_2_3_GA date=200807181417)/JBossWeb-2.0
11:46:44,332 INFO  [[localhost]]             header=X-Powered-By=JSF/1.2
11:46:44,332 INFO  [[localhost]]             header=X-Powered-By=Servlet 2.4; JBoss-4.2.3.GA (build: SVNTag=JBoss_4_2_3_GA date=200807181417)/JBossWeb-2.0
11:46:44,332 INFO  [[localhost]]             header=X-Powered-By=JSF/1.2
11:46:44,332 INFO  [[localhost]]             header=Content-Type=application/pdf
11:46:44,332 INFO  [[localhost]]             header=Content-Length=48189
11:46:44,332 INFO  [[localhost]]             header=Date=Thu, 26 Aug 2010 09:46:44 GMT
11:46:44,332 INFO  [[localhost]]            message=null
11:46:44,332 INFO  [[localhost]]         remoteUser=admin
11:46:44,332 INFO  [[localhost]]             status=200
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.leenarts.net/2010/08/26/http-request-response-logging-jboss-4-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>-XX:-DontCompileHugeMethods</title>
		<link>http://blog.leenarts.net/2010/05/26/dontcompilehugemethods/</link>
		<comments>http://blog.leenarts.net/2010/05/26/dontcompilehugemethods/#comments</comments>
		<pubDate>Wed, 26 May 2010 22:03:28 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.leenarts.net/?p=433</guid>
		<description><![CDATA[Read some stuff today about huge methods and the JVM&#8217;s JIT Compiler. The JIT proces detects hotspots in code. If a hotspot is detected (usually 1000 to 1500 hits depending on your platform and JVM version) the JIT process marks &#8230; <a href="http://blog.leenarts.net/2010/05/26/dontcompilehugemethods/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Read some stuff today about huge methods and the JVM&#8217;s JIT Compiler.</p>
<p>The JIT proces detects hotspots in code. If a hotspot is detected (usually 1000 to 1500 hits depending on your platform and JVM version) the JIT process marks a method for compilation to machine instructions. After compilation, method invocations are generally crazy fast on a method since the JIT process had like a thousand times to see what generally happens during the execution of a method and can optimise accordingly. (So never ever use the Xcomp option on the JVM, it forces compilation from the start, but this is generally slower, because the compilation will not be optimized in any way.)</p>
<p>The thing is, when performing this operation of marking methods for compilation there&#8217;s a catch. An 8k byte code instructions catch to be exact. If a method in byte code contains more then 8000 byte code instructions it will never ever be marked for compilation, period. About 2500 lines of Java code should do the trick. But believe me, I&#8217;ve seen crazy fools create monsters methods of that magnitude.</p>
<p>It gets even better though. When looking for methods to mark for compilation, the JIT process uses a call graph when doing it&#8217;s magic work of granting methods the privilege of optimized compilation. And here comes the catch in that, if a big fat honking pile of 8k byte code is encountered in a method while walking the call graph, JIT says: &#8220;I aint touching that!&#8221;. Thus any method called from that pile of poop not reachable in any other way through the call graph, will never ever feel the warm love of JIT optimized compilation.</p>
<p>Now you could use the lovely &#8220;-XX:-DontCompileHugeMethods﻿&#8221; argument when invoking the JVM. But from what I&#8217;ve understand it&#8217;s a bad thing to do, because amongst others it forces the JVM to go digging through those 8k wonders of human creativity.</p>
<p>Other option is to just use your sane mind and round up and terminate the morons in your project creating these 8k monsters. It&#8217;s good practice anyway to keep your methods small and task focussed in any object oriented language.</p>
<p>The gist is, don&#8217;t use &#8220;-XX:-DontCompileHugeMethods﻿&#8221;. Go bananas during a code review whenever you find any method which is too big for comfort. Let&#8217;s just say that the <a href="http://checkstyle.sourceforge.net/config_sizes.html">default statement count suggested by checkstyle</a> is a good one. So any method or constructor above 30 statements in length should be cause for investigation during a code review.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.leenarts.net/2010/05/26/dontcompilehugemethods/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JDK 7 &#8211; Project Coin is final</title>
		<link>http://blog.leenarts.net/2009/08/29/jdk-7-project-coin-is-final/</link>
		<comments>http://blog.leenarts.net/2009/08/29/jdk-7-project-coin-is-final/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 10:13:16 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[JDK7 Project Coin]]></category>

		<guid isPermaLink="false">http://blog.leenarts.net/?p=390</guid>
		<description><![CDATA[Friday Joseph Darcy announced through a blog post that Project Coin is final. Project Coin is just one of the changes coming to JDK 7. But, since the changes in Project Coin are all small changes to the Java language, &#8230; <a href="http://blog.leenarts.net/2009/08/29/jdk-7-project-coin-is-final/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Friday Joseph Darcy announced through <a href="http://blogs.sun.com/darcy/entry/project_coin_final_five">a blog post</a> that <a href="http://openjdk.java.net/projects/coin/">Project Coin</a> is final.</p>
<p>Project Coin is just one of the changes coming to JDK 7. But, since the changes in Project Coin are all small changes to the Java language, every single Java developer will have to deal with these coming changes.</p>
<ul>
<li>It&#8217;s looking like we can use <b>Strings in switch statements</b>:
<pre class="brush: java; title: ; notranslate">
static boolean booleanFromString(String s) {
  switch(s) {
    case &quot;true&quot;:
      return true;
    case &quot;false&quot;:
      return false;
  }
  throw new IllegalArgumentException(s);
}  </pre>
</li>
<li><b>Automated Resource Blocks</b>, Josh Bloch proposed a construct like the one below:
<pre class="brush: java; title: ; notranslate">try (BufferedReader br = new BufferedReader(new FileReader(path)) {
  return br.readLine();
}</pre>
<p>instead of:</p>
<pre class="brush: java; title: ; notranslate"> BufferedReader br = new BufferedReader(new FileReader(path));
 try {
   return br.readLine();
 } finally {
   br.close();
 }</pre>
</li>
<li>
<b>Improved Type Inference</b>, the diamond operator. Instead of:</p>
<pre class="brush: java; title: ; notranslate">Map &lt;String, List &lt;String&gt; anagrams = new HashMap &lt;String, List &lt;String&gt;();</pre>
<p>you can do:</p>
<pre class="brush: java; title: ; notranslate">Map &lt;String, List &lt;String&gt; anagrams = new HashMap &lt;&gt;();</pre>
</li>
<li><b>Simplified VARARG method invocation</b>:
<pre class="brush: java; title: ; notranslate">static &lt;T&gt; List &lt;T&gt; asList(T... elements) { ... }

static List &lt;Callable &lt;String&gt; stringFactories() {
  Callable &lt;String&gt; a, b, c;
  ...
  *// Warning: ** uses unchecked or unsafe operations *
  return asList(a, b, c);
}</pre>
<p>After this change:</p>
<pre class="brush: java; title: ; notranslate">*// Warning: ** enables unsafe generic array creation *
static &lt;T&gt; List &lt;T&gt; asList(T... elements) { ... }

static List &lt;Callable &lt;String&gt; stringFactories() {
  Callable &lt;String&gt; a, b, c;
  ...
  return asList(a, b, c);
}</pre>
</li>
<li>Something with <b>better literal integers</b>, can&#8217;t seem to find the details at the moment.</li>
<li>And <b>language support for <a href="http://jcp.org/en/jsr/detail?id=292">JSR 292</a></b>. But this one is only interesting when dealing with dynamic languages.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.leenarts.net/2009/08/29/jdk-7-project-coin-is-final/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JBoss with SQL Server and EJB3 is giving me a hard time</title>
		<link>http://blog.leenarts.net/2009/06/23/jboss-with-sql-server-and-ejb3-is-giving-me-a-hard-time/</link>
		<comments>http://blog.leenarts.net/2009/06/23/jboss-with-sql-server-and-ejb3-is-giving-me-a-hard-time/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 23:28:52 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[EJB3]]></category>
		<category><![CDATA[JBoss]]></category>
		<category><![CDATA[MSSQL]]></category>

		<guid isPermaLink="false">http://blog.leenarts.net/?p=381</guid>
		<description><![CDATA[Today I had a bit of a fuss with JBoss and SQL Server. For some reason, when I declare an entity with an Id field, the persistency layer tries to push a bad query to the database. Let me explain. &#8230; <a href="http://blog.leenarts.net/2009/06/23/jboss-with-sql-server-and-ejb3-is-giving-me-a-hard-time/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today I had a bit of a fuss with JBoss and SQL Server. For some reason, when I declare an entity with an Id field, the persistency layer tries to push a bad query to the database.</p>
<p>Let me explain.</p>
<p>I&#8217;ve got an entity sort of looking like this:</p>
<pre class="brush: java; title: ; notranslate">
@Entity
public class Contract {

@Id
@GeneratedValue(strategy = GenerationType.Identity)
private int contractId;
...
}
</pre>
<p>When tryin to persist this through the entity manager SQL trace on MS SQL show a query somewhat looking like:</p>
<pre class="brush: sql; title: ; notranslate">
insert into Contract (contractid, ...) values (null, ...)
</pre>
<p>You see, a null value. Sounds reasonable, I didn&#8217;t set any value on the contractid field. BUT the persistency layer should not try to insert anything into the contractid column, because MSSQL doesn&#8217;t allow it. The above SQL results in a &#8220;DEFAULT or NULL are not allowed as explicit identity values.&#8221; I&#8217;m not sure what to try next though, everywhere I looked on the internet, all examples boil down too: &#8220;Something similar should work in MS SQL too, but I haven&#8217;t tested that&#8230;&#8221;</p>
<p>Better luck tomorrow. For now, I googled my brains out trying to find anything helpfull.</p>
<p>Anybody out there have any suggestions?</p>
<p><b>Update on the next day:</b><br />
It turns out that the problem was the dialect configured in the Hibernate properties in the persistence.xml. By default our development environment enters the right value for Hypersonic DB, while it should actually be like this:
<pre class="brush: xml; title: ; notranslate">&lt;property name=&quot;hibernate.dialect&quot; value=&quot;org.hibernate.dialect.SQLServerDialect&quot;/&gt;</pre>
<p>And now it all works. A default SQL Server 2005 with JBoss and the latest MSSQL JDBC driver, all running EJB3.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.leenarts.net/2009/06/23/jboss-with-sql-server-and-ejb3-is-giving-me-a-hard-time/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Back from the JavaOne 2009</title>
		<link>http://blog.leenarts.net/2009/06/10/back-from-the-javaone-2009/</link>
		<comments>http://blog.leenarts.net/2009/06/10/back-from-the-javaone-2009/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 09:21:28 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[JavaOne]]></category>

		<guid isPermaLink="false">http://blog.leenarts.net/?p=357</guid>
		<description><![CDATA[Phew, back from the JavaOne 2009 again. First time I&#8217;ve been there. And boy could you feel the recession at the JavaOne&#8230; I think the number of visitors was at an all time low. Also in San Francisco itself recession &#8230; <a href="http://blog.leenarts.net/2009/06/10/back-from-the-javaone-2009/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Phew, back from the JavaOne 2009 again.</p>
<p><img src="http://blog.leenarts.net/wp-content/uploads/2009/06/dscf0130.jpg" alt="Too bad Jonathan's assistent didn't allow my camera to focus." border="0" width="333" height="250" style="float: right; margin: 5px" /> First time I&#8217;ve been there. And boy could you feel the recession at the JavaOne&#8230; I think the number of visitors was at an all time low. Also in San Francisco itself recession was around you. Loads and loads of properties available for lease or sale.</p>
<p>But me and my colleagues did our best to support the global and local economy by living large. <img src='http://blog.leenarts.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Besides the conference we did all sorts of fun activities. I even biked the Golden Gate the last Friday afternoon.</p>
<p>I also learned a valuable lesson when returning from another time-zone. When I got home I did some things and then went to my girl&#8217;s place. I should&#8217;ve asked her to keep me awake at all costs. Sunday I sat down on her couch and I kind of instantly fell asleep. I paid the price on Monday and Tuesday. Fortunately my employer was very understanding about Monday and Tuesday I&#8217;ll recover by working a few extra hours this week or next week. <img src='http://blog.leenarts.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>More to come later. Suffice to say that on record nobody from Sun was allowed to spill any details on the Oracle/Sun merger. I understood of the record that there will be another JavaOne next year. Let&#8217;s hope that by then it is clear what will happen with Java, cause right now it&#8217;s anybodies guess what Oracle has in store for us. I&#8217;m expecting a whole lot, but it is still a bit early to say what exactly Oracle will keep and what Oracle will throw away. I do think JavaFX is here to stay though, the new JavaFX 1.2 is a major improvement compared to the 1.1 release. Check <a href=http://blogs.infosupport.com/blogs/paul_bakker/archive/2009/06/04/javaone-javafx-1-2-released.aspx>Paul Bakker&#8217;s entry on JavaFX</a> for more details.</p>
<p>Too bad the assistant of Jonathan Swartz didn&#8217;t allow my camera to focus properly.</p>
<p>Also many thanks to Bert, Paul, Marcel and Hans for being such great travel companions throughout the week.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.leenarts.net/2009/06/10/back-from-the-javaone-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yup, this time it seems to be really it for SUN</title>
		<link>http://blog.leenarts.net/2009/04/20/yup-this-time-it-seems-to-be-really-it-for-sun/</link>
		<comments>http://blog.leenarts.net/2009/04/20/yup-this-time-it-seems-to-be-really-it-for-sun/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 13:26:26 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Random thoughts]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.leenarts.net/?p=350</guid>
		<description><![CDATA[It seems Oracle has put forward a bid on SUN Microsystems. Sun apparently has accepted this offer and both parties are now in final negotiations. Personally I didn&#8217;t see this one coming. The IBM/Sun brush a short while ago was &#8230; <a href="http://blog.leenarts.net/2009/04/20/yup-this-time-it-seems-to-be-really-it-for-sun/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It seems <a href="http://finance.yahoo.com/news/Oracle-Buys-prnews-14969049.html">Oracle has put forward a bid on SUN Microsystems</a>. Sun apparently has accepted this offer and both parties are now in final negotiations.</p>
<p>Personally I didn&#8217;t see this one coming. The IBM/Sun brush a short while ago was kind of obvious to me. Still a bit of a surprise, but yeah IBM absorbing SUN I can dig that.</p>
<p>Now Oracle has stepped up to the plate and dumped a load of money on the table. Oracle never has been my favourite when it came to Java related technology. Lots of cool demo&#8217;s that are hard to reproduce in real life situations if you ask me. Also Oracle doesn&#8217;t give me that welcoming feeling when getting into contact with them. I guess we&#8217;ll just have to wait and see how this ordeal is going to affect Java in general.</p>
<p>I see a lot of competition between IBM and Oracle in the future. Because let&#8217;s just face it, is there any other big Java player to speak of if this deal gets finalised? There just aren&#8217;t any other vendors that could offer a complete no holds barred JEE stack besides those two big names.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.leenarts.net/2009/04/20/yup-this-time-it-seems-to-be-really-it-for-sun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>J-Spring: That&#8217;s it for today</title>
		<link>http://blog.leenarts.net/2009/04/15/j-spring-thats-it-for-today/</link>
		<comments>http://blog.leenarts.net/2009/04/15/j-spring-thats-it-for-today/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 14:45:45 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[NL-Jug]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.leenarts.net/2009/04/15/j-spring-thats-it-for-today/</guid>
		<description><![CDATA[I&#8217;ve decided to skip the last round of sessions, it&#8217;s sunny today and air in the session rooms is very warm and stale. Also the battery if my phone is almost dead. Update: I&#8217;ve updated all the posts of today, &#8230; <a href="http://blog.leenarts.net/2009/04/15/j-spring-thats-it-for-today/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve decided to skip the last round of sessions, it&#8217;s sunny today and air in the session rooms is very warm and stale. Also the battery if my phone is almost dead. <img src='http://blog.leenarts.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Update:</strong><br />
I&#8217;ve updated all the posts of today, checked spelling, adjusted tags and uploaded photo&#8217;s. Enjoy&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.leenarts.net/2009/04/15/j-spring-thats-it-for-today/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>J-Spring: Brainfuck&#8217;s quest for CafeBabe &#8211; a journey through JVM land</title>
		<link>http://blog.leenarts.net/2009/04/15/j-spring-brainfucks-quest-for-cafebabe-a-journey-through-jvm-land/</link>
		<comments>http://blog.leenarts.net/2009/04/15/j-spring-brainfucks-quest-for-cafebabe-a-journey-through-jvm-land/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 13:40:31 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[NL-Jug]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.leenarts.net/2009/04/15/j-spring-brainfucks-quest-for-cafebabe-a-journey-through-jvm-land/</guid>
		<description><![CDATA[Jeroen Benckhuijsen has this oddly called session about implementing a certain language on top of the Java VM. He&#8217;s telling a bit about implementing a custom language using pure byte code. He&#8217;s using an interesting approach. Weird slides with a &#8230; <a href="http://blog.leenarts.net/2009/04/15/j-spring-brainfucks-quest-for-cafebabe-a-journey-through-jvm-land/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://adi.atosoriginblog.nl/weblogger/31/">Jeroen Benckhuijsen</a> has this oddly called session about implementing <a href="http://en.wikipedia.org/wiki/Brainfuck">a certain language</a> on top of the Java VM. He&#8217;s telling a bit about <a href="http://code.google.com/p/brainfuck4j/">implementing a custom language</a> using pure byte code.</p>
<p>He&#8217;s using an interesting approach. Weird slides with a funny story. </p>
<p>It&#8217;s a technical talk about the how class files are laid out and how they work with the Java memory model. It&#8217;s a lot <a href="http://jakarta.apache.org/bcel/">info</a> <a href="http://cglib.sourceforge.net/">available</a> on the <a href="http://java.sun.com/docs/books/jvms/second_edition/html/VMSpecTOC.doc.html">web</a>. So I&#8217;ll shut up now. I&#8217;ll post links later.</p>
<p><img src="http://blog.leenarts.net/wp-content/uploads/2009/04/img-0081.jpg" alt="IMG_0081.JPG" border="0" width="300" height="225" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.leenarts.net/2009/04/15/j-spring-brainfucks-quest-for-cafebabe-a-journey-through-jvm-land/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>J-Spring: SOA, it&#8217;s a hard knock life</title>
		<link>http://blog.leenarts.net/2009/04/15/j-spring-soa-its-a-hard-knock-life/</link>
		<comments>http://blog.leenarts.net/2009/04/15/j-spring-soa-its-a-hard-knock-life/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 12:23:00 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[NL-Jug]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.leenarts.net/2009/04/15/j-spring-soa-its-a-hard-knock-life/</guid>
		<description><![CDATA[Tijs Rademakers has a presentation on SOAs in practice. What problems do you encounter when implementing a SOA. After having discussed the advantages of SOAs he dives into the rumours that SOA is dead. But hey, services are the future. &#8230; <a href="http://blog.leenarts.net/2009/04/15/j-spring-soa-its-a-hard-knock-life/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://adi.atosoriginblog.nl/weblogger/45/">Tijs Rademakers</a> has a presentation on SOAs in practice. What problems do you encounter when implementing a SOA. After having discussed the advantages of SOAs he dives into the <a href="http://apsblog.burtongroup.com/2009/01/soa-is-dead-long-live-services.html">rumours that SOA is dead</a>. But hey, services are the future. <a href="http://www.burtongroup.com/AboutUs/Bios/PrintBio.aspx?Id=94">Anne Thomas Manes</a> has a contradicting statement.</p>
<p>It is true that SOA has not proven to reduce costs. SOA projects take longer to implement because the services have to be implemented in a re-usable way. Often a SOA project boils down to an ESB selection, but is that deciding on what SOA architecture you want to implement? Discussions often focus on the implementing technology and not the underlying SOA architecture.</p>
<p>Tijs introduces a case study. A <a href="http://en.wikipedia.org/wiki/Cobol">COBOL</a> applications of 14500 function points. It has been transferred to a SOA based architecture. A lot of companies belief that implementing everything as a web service is the same as implementing a service architecture. But SOA is more then that. While a bottom up approach might work, a top down view is important as well. Implementing reusable services is only possible if you take the surrounding architectural landscape into account. A canonical data model is important to facilitate a standardised data language for all services.</p>
<p>SOA architectures are built according to a plan, but the legacy application being replaced is also often built based on a clear plan. Code is reused is built according to an architecture of days gone by.</p>
<p>Is the entire web of systems and services defined within a SOA application really that much simpler then a legacy system?</p>
<p>Is a SOA something you should do? And if so, what technologies should you use? Is an ESB a requirement or any of the other standards. (SOAP,WSDL,WS-,SCA,OSGi,etc.)</p>
<p>Implementing a service is easy. Just add @WebService. A top down and bottom up is available. The same goes for REST services with Jax-RS.</p>
<p>Java &#8211; XML binding can be challenging. You often need to write some custom code. This is due to JAXB v1 API. But there are better frameworks available. JAXB2 JIBD XSTREAM. New languages show the way to the future. Some aspects should be ported to Java.</p>
<p>It&#8217;s a bit of a strange presentation. First it&#8217;s all SOA, now we&#8217;re talking Groovy??</p>
<p><a href="http://www.ibm.com/developerworks/library/specification/ws-sca/">SCA</a> is a good option, with it&#8217;s declarative configuration and flexibility in choosing the actual implementing technology. I should read up on SCA a bit.</p>
<p><a href="http://www.osgi.org/">OSGi</a> is also a very impressive platform. A lot of implementations using OSGi are emerging. It supports all the service oriented functionality. <a href="http://wso2.org/projects/carbon">Wso2&#8242;s Carbon</a> is a nice example.</p>
<p>Next topic, does SOA entail the usage of an <a href="http://en.wikipedia.org/wiki/Enterprise_service_bus">ESB</a>? An ESB is a platform you can use to implement a SOA. but it&#8217;s just a platform with a high risk of vendor lock-in, under the hood it&#8217;s all custom proprietary. You always need custom code to integrate an ESB. Vendors push ESBs as the way to implement a SOA, but it is often nothing more then a tool to create a nasty lock-in. An ESB does a lot, use it, but be careful for the lock-in trap.</p>
<p>An ESB often only hides a lot of shit on an overview architecture slide.</p>
<p>An alternative would be a sort of <a href="http://www.infoq.com/presentations/webber-guerilla-soa">guerilla SOA</a>. Unlock lots of systems with restful services. Then don&#8217;t define a lot of rules and let it grow. All you need at a certain point you need a good way to resolve the locations of services.</p>
<p>In the end you need business level support to be able to do a service oriented approach. Also business has to be made aware of the initial impact of a service approach. But also of the long term benefits. Consolidation of services and systems is recommended. But never forget that business often steers on short term goals while they should look at long term goals.</p>
<p><img src="http://blog.leenarts.net/wp-content/uploads/2009/04/img-0080.jpg" alt="IMG_0080.JPG" border="0" width="300" height="225" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.leenarts.net/2009/04/15/j-spring-soa-its-a-hard-knock-life/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>J-Spring: half time keynote Mod4J</title>
		<link>http://blog.leenarts.net/2009/04/15/j-spring-half-time-keynote-mod4j/</link>
		<comments>http://blog.leenarts.net/2009/04/15/j-spring-half-time-keynote-mod4j/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 11:30:34 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[NL-Jug]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.leenarts.net/2009/04/15/j-spring-half-time-keynote-mod4j/</guid>
		<description><![CDATA[Jos Warmer has the midday keynote. He has an introductory talk on the Mod4J project. Jos is an MDA enthusiast and as always makes a case for the model driven approach. Check the Internet for more details. I&#8217;ll post some &#8230; <a href="http://blog.leenarts.net/2009/04/15/j-spring-half-time-keynote-mod4j/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Jos Warmer has the midday keynote. He has an introductory talk on the <a href="http://www.mod4j.org/">Mod4J</a> project.</p>
<p>Jos is an MDA enthusiast and as always makes a case for the model driven approach. Check the Internet for more details. I&#8217;ll post some links and info later, now I&#8217;ll just sit back a bit and relax a bit before jumping into the remaining sessions.<br />
<img src="http://blog.leenarts.net/wp-content/uploads/2009/04/img-0078.jpg" alt="IMG_0078.JPG" border="0" width="300" height="225" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.leenarts.net/2009/04/15/j-spring-half-time-keynote-mod4j/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>J-Spring: java programming in a multi core world</title>
		<link>http://blog.leenarts.net/2009/04/15/j-spring-java-programming-in-a-multi-core-world/</link>
		<comments>http://blog.leenarts.net/2009/04/15/j-spring-java-programming-in-a-multi-core-world/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 09:18:24 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[NL-Jug]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.leenarts.net/2009/04/15/j-spring-java-programming-in-a-multi-core-world/</guid>
		<description><![CDATA[Angelika Langer has a talk about multi threaded programming in a multi processor environment. Due to CPU developments new issues arise in current applications when newer CPUs are used. The JVM now has more and more functionality to support multithreaded/multicore &#8230; <a href="http://blog.leenarts.net/2009/04/15/j-spring-java-programming-in-a-multi-core-world/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.angelikalanger.com/">Angelika Langer</a> has a talk about multi threaded programming in a multi processor environment.</p>
<p>Due to CPU developments new issues arise in current applications when newer CPUs are used. The JVM now has more and more functionality to support multithreaded/multicore environment. <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/package-summary.html">The java.concurrent package. Available since java 5.</a></p>
<p>The new CPUs demand a-synchronous approach. Therefor the java NIO api was born. In <a href="https://jdk7.dev.java.net/">java 7</a> they are planning for a-sync file io.</p>
<p><a href="http://java.sun.com/products/jms/">JMS</a> is a result of the need for a-sync operation.</p>
<p>Ajax results in more and longer running network operations. Long lived http requests results in more overhead in the io layer of the server.</p>
<p>The <a href="http://en.wikipedia.org/wiki/Java_Memory_Model">java memory model</a> is an abstraction of the underlying hardware memory models. It addresses atomicity, visibility and ordering. Angelika details some examples.</p>
<p>So far a very high level overview.</p>
<p>Sequential consistency does not exist in the JVM. It&#8217;s a mental model used to teach multithreaded programming, it is not guaranteed by the JVM. You have to use language construct to enforce proper visibility. Synchronisation ensures proper execution order and prevent trashing half written objects and variables. To ensure a proper execution it is required that you force updating main memory by using the volatile keyword.</p>
<p>Visibility is ensured when using explicit synchronisation, thread start and termination, read/writes of volatiles and first access of a final field.</p>
<p>Volatile is not transitive, it is only applicable for the reference marked as volatile. She shows an example of the non volatile field. But since <a href="http://java.sun.com/javase/6/">Java 6</a> there are some changes to the memory model. Changes to members of a volatile reference are propagated when they&#8217;re performed before modifying the volatile reference itself. Complicated stuff that breaks easily.</p>
<p>Volatile is cheaper then synchronisation, but still there&#8217;s a cost.</p>
<p>Amdahl&#8217;s law. Look it up, good stuff. Double the hardware will not double the performance. It depends on the amount of parallel execution paths.</p>
<p>It is an easy trap to think that  having a queue for inter process communication will not contain blocking behaviour. Try to have the absolute minimum of synchronous code if performance is key.</p>
<p>There are techniques to avoid serialisation. Use immutable copies, use thread local objects instead of shared objects. Lock free programming gaining popularity, volatile declaration is still required though. Compare and Swap is an example of a technique to allow lock free programming. There are some things on the horizon, like transactional memory.</p>
<p><img src="http://blog.leenarts.net/wp-content/uploads/2009/04/img-0075.jpg" alt="IMG_0075.JPG" border="0" width="300" height="225" /><br />
<img src="http://blog.leenarts.net/wp-content/uploads/2009/04/img-0076.jpg" alt="IMG_0076.JPG" border="0" width="300" height="225" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.leenarts.net/2009/04/15/j-spring-java-programming-in-a-multi-core-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>J-Spring: JEE 6 and JavaFX</title>
		<link>http://blog.leenarts.net/2009/04/15/j-fall-jee-6-and-javafx/</link>
		<comments>http://blog.leenarts.net/2009/04/15/j-fall-jee-6-and-javafx/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 08:16:41 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[NL-Jug]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.leenarts.net/2009/04/15/j-fall-jee-6-and-javafx/</guid>
		<description><![CDATA[Paul Bakker kicks of. He&#8217;ll talk about coupling JavaFX to JEE 6. He&#8217;ll do this by using Jax-RS. He mentions the strong points of JavaFX. He also mentions the drawbacks of JavaFX too, there are no UI components yet. JavaFX &#8230; <a href="http://blog.leenarts.net/2009/04/15/j-fall-jee-6-and-javafx/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.infosupport.com/blogs/paul_bakker/default.aspx">Paul Bakker</a> kicks of. He&#8217;ll talk about coupling <a href="http://www.sun.com/software/javafx/">JavaFX</a> to <a href="http://jcp.org/en/jsr/detail?id=316">JEE 6</a>. He&#8217;ll do this by using <a href="https://jsr311.dev.java.net/">Jax-RS</a>.</p>
<p> He mentions the strong points of JavaFX. He also mentions the drawbacks of JavaFX too, there are no UI components yet.   </p>
<p>JavaFX is a completely new language targeted at the RIA platforms. Silverlight, Flex and Flash.</p>
<p>He goes on to describe the relevant parts of the new JEE6 spec. Especially the web profile will be an interesting part of the spec. New versions of various API&#8217;s will be released. Jax-RS is interesting in the context of this talk.</p>
<p>Download <a href="https://glassfish.dev.java.net/">Glassfish</a> v3 to start with Jee 6. Everything will be deployed as war files.</p>
<p>He describes the architecture of the demo application. He also implemented a desktop JavaFX application as well.</p>
<p>He will show a demo now&#8230;. ah too bad his vm Vista image is stalled. Hope he has more luck later.</p>
<p>JSF 2.0 highlights:</p>
<ul>
<li>Facelets</li>
<li>Annotation support</li>
<li>Ajax support</li>
<li>Resource loading</li>
<li>Project stages</li>
</ul>
<p>Javafx runs in an applet in a browser or as a desktop application. The applet can communicate through javascript. Hope this works better then the time I tried to integrate an applet through javascript.</p>
<p>JavaFX will be used as a rich control on the web page.</p>
<p>Put a link here to the <a href="http://java.sun.com/javafx/1/docs/api/javafx.stage/javafx.stage.AppletStageExtension.html">appletstageextension api</a>. Also look for <a href="https://jdk6.dev.java.net/plugin2/liveconnect/">api to interop between javascript and java (aka. LiveConnect)</a>. Paul shows how in a NetBeans window and a live example.</p>
<p>Next up a little info on how to integrate an Applet within your web application. Do not hardcore the urls, let the applet ask for the server address tom the current context. Look for <a href="http://java.sun.com/javafx/1.1/docs/api/javafx.lang/javafx.lang.FX.html">something called codebase</a>. Be sure to expand the method called &#8220;getProperty(java.lang.String key)&#8221;.</p>
<p>Demo time in the Vista VM again. Failed due to windows defender this time. Poor Paul, I can tell he&#8217;s bummed about it.</p>
<p>Some info on how to work with JSF @ManagedProperty and @PostConstruct. Usageof the <a href="http://java.sun.com/javase/6/docs/technotes/guides/jweb/deployment_advice.html#deplToolkit">javafx javascript</a> method is shown, it loads an applet into your web page with a single javascript call.</p>
<p><a href="http://code.google.com/p/jfxtras/">JFXtras</a> is a project that fills some of the gaps in the current javafx implementation. Code of the <a href="http://learnjavafx.typepad.com/weblog/2009/02/miglayout-comes-to-javafx.html">MigLayout</a> in JavaFX is shown.</p>
<p>Now Jax-RS is discussed. REST is discussed. Looks simple to implement with Jax-RS.</p>
<p>Now his laptop seems to have died completely. Ah it works again. But now his remote is acting up a bit. Lot of bad luck for Paul today, but he remains well composed and continuos his talk.</p>
<p>How to use light ejbs, how to use jndi. Something new, global jndi, javafx web service api (Pull parser, XML and json supported, no soap support)</p>
<p><a href="http://blog.leenarts.net/wp-content/uploads/2009/04/l-1600-1200-2720f715-a05d-4f14-b3be-64d14dec6e87.jpeg"><img src="http://blog.leenarts.net/wp-content/uploads/2009/04/l-1600-1200-2720f715-a05d-4f14-b3be-64d14dec6e87.jpeg" alt="" width="300" height="225" class="alignnone size-full wp-image-364" /></a></p>
<p><img src="http://blog.leenarts.net/wp-content/uploads/2009/04/img-0072.jpg" alt="IMG_0072.JPG" border="0" width="300" height="225" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.leenarts.net/2009/04/15/j-fall-jee-6-and-javafx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>J-Spring: Bert and Oscar</title>
		<link>http://blog.leenarts.net/2009/04/15/j-fall-bert-and-oscar/</link>
		<comments>http://blog.leenarts.net/2009/04/15/j-fall-bert-and-oscar/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 07:53:24 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[NL-Jug]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.leenarts.net/2009/04/15/j-fall-bert-and-oscar/</guid>
		<description><![CDATA[These two goons were making a dangerous appearance at the NL-Jug J-Spring event. Don&#8217;t they look tough to you? Be sure to pay proper respect to these two friendly guys. They&#8217;re my colleagues, or I&#8217;m their colleague. Whatever rocks your &#8230; <a href="http://blog.leenarts.net/2009/04/15/j-fall-bert-and-oscar/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>These two goons were making a dangerous appearance at the NL-Jug J-Spring event. Don&#8217;t they look tough to you?
<p><a href="http://blog.leenarts.net/wp-content/uploads/2009/04/l-1600-1200-62a33170-0a8e-4806-ad89-32fe81dfe5e9.jpeg"><img src="http://blog.leenarts.net/wp-content/uploads/2009/04/l-1600-1200-62a33170-0a8e-4806-ad89-32fe81dfe5e9.jpeg" alt="" width="300" height="225" class="alignnone size-full wp-image-364" /></a></p>
<p>Be sure to pay proper respect to these two friendly guys. They&#8217;re my colleagues, or I&#8217;m their colleague. Whatever rocks your boat. Anyway, say &#8220;Hi!&#8221; to them for me when you meet them.</p>
<p>Thanks for posing for this picture guys. <img src='http://blog.leenarts.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.leenarts.net/2009/04/15/j-fall-bert-and-oscar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>J-Spring: Paul Bakker about to start</title>
		<link>http://blog.leenarts.net/2009/04/15/j-fall-paul-bakker-about-to-start/</link>
		<comments>http://blog.leenarts.net/2009/04/15/j-fall-paul-bakker-about-to-start/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 07:48:50 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[NL-Jug]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.leenarts.net/2009/04/15/j-fall-paul-bakker-about-to-start/</guid>
		<description><![CDATA[More info later. He looks a bit nervous.]]></description>
			<content:encoded><![CDATA[<p>More info later. </p>
<p><a href="http://blog.leenarts.net/wp-content/uploads/2009/04/l-1600-1200-d9937516-7f00-4288-85b4-60dcacc35ff8.jpeg"><img src="http://blog.leenarts.net/wp-content/uploads/2009/04/l-1600-1200-d9937516-7f00-4288-85b4-60dcacc35ff8.jpeg" alt="" width="300" height="225" class="alignnone size-full wp-image-364" /></a></p>
<p>He looks a bit nervous. <img src='http://blog.leenarts.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.leenarts.net/2009/04/15/j-fall-paul-bakker-about-to-start/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>J-Spring keynote: Agile@Atlassian</title>
		<link>http://blog.leenarts.net/2009/04/15/j-fall-keynote-agileatlassian/</link>
		<comments>http://blog.leenarts.net/2009/04/15/j-fall-keynote-agileatlassian/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 07:16:07 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[NL-Jug]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.leenarts.net/2009/04/15/j-fall-keynote-agileatlassian/</guid>
		<description><![CDATA[Sherali Karimov has the keynote slot. He&#8217;s giving a talk on Agile. He shows a short movie about agile development. Standard blurb on agile, it&#8217;s not a methodology you idiot!! It&#8217;s about the values embedded in them. Next the metrics &#8230; <a href="http://blog.leenarts.net/2009/04/15/j-fall-keynote-agileatlassian/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.atlassian.com/developer/skarimov/">Sherali Karimov</a> has the keynote slot. He&#8217;s giving a talk on <a href="http://agilemanifesto.org/">Agile</a>.  He shows a short movie about agile development. Standard blurb on agile, it&#8217;s not a methodology you idiot!! It&#8217;s about the values embedded in them. <img src='http://blog.leenarts.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Next the metrics that agile will bring a company on the long run:<br />
Collaboration: email pile is bad, wiki is good, task management is good too. Code reviews are good too, they&#8217;re a learning tool.</p>
<p>Culture of improvement: People are to be allowed to make changes and empower the employees. Engine room? Small teams, and short iterations. The disturbed? Log hassle and shorten these hassle sources. Dump QA button clickers, enter Blitz Test. (What&#8217;s Blitz Test? Exploratory testing.)</p>
<p>Transparency: Eat your own dog-food. Issue tracker is public facing, users can see current issues. Documentation is also maintained publicly. Support for open source, projects are allowed to use products if they&#8217;re open source.</p>
<p>Metrics and analysis: Know what to solve, is the change an improvement? Dashboards should make looking at metric data pleasant and fast.</p>
<p>Agile is about the individual within the company.</p>
<p>He sure is a believer. <img src='http://blog.leenarts.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Now he says how wonderful and easy (??) it is to implement in big bad company. Anyway, start small and targeted. Perhaps it&#8217;s easier then you think. Again Agile isn&#8217;t a methodology, it&#8217;s a set of beliefs. </p>
<p><a href="http://blog.leenarts.net/wp-content/uploads/2009/04/p-1600-1200-0ea584be-c4d9-4966-bf48-947fb03eda54.jpeg"><img src="http://blog.leenarts.net/wp-content/uploads/2009/04/p-1600-1200-0ea584be-c4d9-4966-bf48-947fb03eda54.jpeg" alt="" width="225" height="300" class="alignnone size-full wp-image-364" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.leenarts.net/2009/04/15/j-fall-keynote-agileatlassian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

