<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6925996</id><updated>2012-02-16T10:38:30.441+01:00</updated><category term='test'/><category term='encryption'/><category term='gradle'/><category term='javascript'/><category term='java'/><category term='build'/><category term='unix'/><category term='registry'/><category term='search'/><category term='windows'/><category term='glassfish'/><category term='gwt'/><category term='dotnet'/><category term='shellnew'/><title type='text'>reassess my confusing thoughts</title><subtitle type='html'>Mostly technical blog entries with focus on Java, Python and Linux.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>37</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6925996.post-381930872951660664</id><published>2009-09-25T09:12:00.004+02:00</published><updated>2009-09-25T10:27:50.883+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='gradle'/><category scheme='http://www.blogger.com/atom/ns#' term='glassfish'/><title type='text'>Using Gradle to deploy to Glassfish</title><content type='html'>As &lt;a href="http://reassess.blogspot.com/2009/07/building-gwt-application-with-gradle.html"&gt;mentioned&lt;/a&gt; before, I've used &lt;a href="http://www.gradle.org"&gt;Gradle&lt;/a&gt; for my build in my latest project. I started to get tired of logging on to the admin console to deploy the WAR file so it was time to look at Glassfish &amp; Gradle in combination.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://glassfish.dev.java.net/"&gt;Glassfish&lt;/a&gt; 2.1 includes some &lt;a href="http://docs.sun.com/app/docs/doc/820-4336/beaep?a=view"&gt;ANT tasks&lt;/a&gt; which is a wrapper to the &lt;a href="http://docs.sun.com/app/docs/doc/820-4336/beaau?a=view"&gt;asadmin&lt;/a&gt; command line tools. Using ANT tasks from Gradle is really simple - even those who aren't part of the main ANT distribution. &lt;br /&gt;&lt;br /&gt;I started out with checking if the machine has an environment variable pointing to the glassfish install directory:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;gfHome = System.getenv('GLASSFISH_HOME')&lt;br /&gt;logger.info("Glassfish home: " + gfHome)&lt;br /&gt;if (gfHome == null || gfHome.length() &lt;= 0)&lt;br /&gt;{&lt;br /&gt;  msg = "No GLASSFISH_HOME in environment variable. Please set GLASSFISH_HOME to glassfish installation directory"&lt;br /&gt;  logger.error(msg)&lt;br /&gt;  throw new RuntimeException(msg)&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;This will throw an error and the build script will fail if the environment variable GLASSFISH_HOME isn't set. If this succeeds I need to define the task by using &lt;a href="http://gradle.org/0.7/docs/userguide/userguide_single.html#N10D08"&gt;ANT's taskdef&lt;/a&gt; from Gradle.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;ant.taskdef(name: 'gfDeploy',&lt;br /&gt;        classname: 'org.apache.tools.ant.taskdefs.optional.sun.appserv.DeployTask') {&lt;br /&gt;  classpath {&lt;br /&gt;    fileset(dir: gfHome + File.separator + 'lib') {&lt;br /&gt;      include(name: '*.jar')&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;I use the lib directory of the Glassfish install directory and add all jar files to the classpath.&lt;br /&gt;&lt;br /&gt;In order to use the deploy task, I need a password file which contains the password for the admin user. I've added a file called dev.passfile in the project directory and it contains a singel line:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;AS_ADMIN_PASSWORD=adminadmin&lt;br /&gt;&lt;/pre&gt;Then the only thing which is missing is calling the task:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;ant.gfdeploy(file: war.archivePath.path, name: project.name, contextroot: project.name,&lt;br /&gt;        upload: 'true', precompilejsp: 'false', asinstalldir: gfHome) {&lt;br /&gt;  server(host: 'mydevserver', port: '40048', user: 'admin', passwordfile: 'dev.passfile')&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;As you see I can reference the war file with the &lt;code&gt;war.archivePath.path&lt;/code&gt;. This is a handy shortcut to reference the generated WAR file. Also used the &lt;code&gt;project.name&lt;/code&gt; as the context root which avoids the version number in the URL.&lt;br /&gt;&lt;br /&gt;Since I need to define an undeploy tasks also I can use the power of Groovy and separate out the commen part as a method. For instance I need to check for &lt;code&gt;GLASSFISH_HOME&lt;/code&gt; environment variable for each task I define so I put this in a separate method:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;def getGlassfishHomeDir()&lt;br /&gt;{&lt;br /&gt;  gfHome = System.getenv('GLASSFISH_HOME')&lt;br /&gt;  logger.info("Glassfish home: " + gfHome)&lt;br /&gt;  if (gfHome == null || gfHome.length() &lt;= 0)&lt;br /&gt;  {&lt;br /&gt;    msg = "No GLASSFISH_HOME in environment variable. Please set GLASSFISH_HOME to glassfish installation directory"&lt;br /&gt;    logger.error(msg)&lt;br /&gt;    throw new RuntimeException(msg)&lt;br /&gt;  }&lt;br /&gt;  return gfHome&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;This can then be called from every gradle tasks. &lt;br /&gt;&lt;br /&gt;Smooth :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-381930872951660664?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/381930872951660664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=381930872951660664' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/381930872951660664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/381930872951660664'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2009/09/using-gradle-to-deploy-to-glassfish.html' title='Using Gradle to deploy to Glassfish'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-7631224134043679271</id><published>2009-07-10T11:22:00.005+02:00</published><updated>2009-07-10T12:32:02.054+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='gwt'/><category scheme='http://www.blogger.com/atom/ns#' term='encryption'/><title type='text'>GWT and AES decryption</title><content type='html'>&lt;p&gt;I’ve been working on a simple GWT application which had to decrypt some content in the browser. The requirement was that this should happen in the browser – as close to the end user as possible.&lt;/p&gt; &lt;p&gt;The first solution I considered was to use Java code which then would be generated into JavaScript with the GWT compiler. I couldn’t use the built in support in Java since these classes isn’t supported by the GWT compiler, but I thought I might find an implementation which could be used. After some research I found &lt;a href="http://groups.google.com/group/Google-Web-Toolkit/msg/2b07eb7bd808b4d4?dmode=source"&gt;this comment&lt;/a&gt; and the specifically the first point:&lt;/p&gt; &lt;blockquote&gt;   &lt;pre&gt;virtually all crypto libraries out there,… to asymmetric &lt;br /&gt;(RSA, DSA, 'public/private keypairs') rely heavily on register&lt;br /&gt;looping; the idea that the maximum value an integer field will &lt;br /&gt;hold + 1 'loops around' silently to the minimum value.&lt;br /&gt;&lt;br /&gt;javascript numbers do not behave that way (they upgrade &lt;br /&gt;themselves silently to doubles) - and GWT's 'ints', for &lt;br /&gt;reasons of speed, aren't objectified stuff that &lt;br /&gt;software-matically does integer math, they are just translated &lt;br /&gt;to javascript numbers. Hence this looping never occurs, and all &lt;br /&gt;&lt;br /&gt;those libraries get confused, and they don't work. You're FAR &lt;br /&gt;FAR better off finding a proper chunk of code designed for &lt;br /&gt;javascript specifically, and wrapping that using JSNI.&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;This certainly made me look the other way which was to embed JavaScript implementation of the AES algorithm. We had some requirements to the algorithm implementation:&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;Support for 256 bit key lengths &lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Support for salt &lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Cipher Block Chaining &lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Support for initialization vector &lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Handle PKCS-7 padding &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;p&gt;After some trial with several implementations we finally got the &lt;a href="https://www.pidder.com/pidcrypt/?page=aes-cbc"&gt;pidCrypt library&lt;/a&gt; working with the content encrypted by our WPF .NET client. It is hosted on SourceForge and the team has been really responsive to questions regarding challenges that I experienced.&lt;/p&gt;&lt;p&gt;In order to get this to work with GWT I had to do the following:&lt;/p&gt;&lt;h5&gt;Add the JavaScript to the project&lt;/h5&gt;&lt;p&gt;I added the following JavaScript files pidcrypt.js, pidcrypt_util.js, aes_core.js, aes_cbc.js and md5.js to the project (src/main/webapp).&lt;/p&gt;&lt;h5&gt;Make those JavaScripts available to the GWT applicaiton&lt;/h5&gt;&lt;p&gt;I had to declare the scripts in my GWT application configuration:&lt;/p&gt;&lt;pre&gt;&amp;lt;script src=&amp;quot;pidcrypt.js&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;script src=&amp;quot;pidcrypt_util.js&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;script src=&amp;quot;md5.js&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;script src=&amp;quot;aes_core.js&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;script src=&amp;quot;aes_cbc.js&amp;quot; /&amp;gt;&lt;/pre&gt;&lt;h5&gt;Wrap those JavaScript calls with native methods&lt;/h5&gt;&lt;p&gt;In order to call those JavaScripts from my &amp;quot;regular Java code&amp;quot; (the Java code which gets compiled to JavaScript), I had to wrap the JavaScript calls with native methods: &lt;/p&gt;&lt;pre&gt;public static native String Decrypt(String encryptedText, String key)&lt;br /&gt;/*-{&lt;br /&gt;    var aes = new $wnd.pidCrypt.AES.CBC();&lt;br /&gt;    var iv = '4857487548754874587549889898';&lt;br /&gt;&lt;br /&gt;    aes.initByValues(encryptedText, key, iv, {nBits:256, A0_PAD:false});&lt;br /&gt;&lt;br /&gt;    return aes.decrypt();&lt;br /&gt;}-*/;&lt;/pre&gt;&lt;p&gt;With this in place, I was able to decrypt some of the content which our .NET client had encrypted. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-7631224134043679271?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/7631224134043679271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=7631224134043679271' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/7631224134043679271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/7631224134043679271'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2009/07/gwt-and-aes-decryption.html' title='GWT and AES decryption'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-2696116410969887746</id><published>2009-07-03T10:24:00.007+02:00</published><updated>2009-07-09T14:52:23.749+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='gwt'/><category scheme='http://www.blogger.com/atom/ns#' term='gradle'/><category scheme='http://www.blogger.com/atom/ns#' term='build'/><title type='text'>Building GWT application with Gradle</title><content type='html'>I wanted to check out &lt;a href="http://www.gradle.org"&gt;Gradle&lt;/a&gt; in a small GWT application that we build for a very specific purpose. The Gradle version I've used is 0.61. Gradle has a plugin concept, but I haven't seen any GWT plugin for Gradle. The setup ended up being rather easy.&lt;br /&gt;&lt;br /&gt;I defined a task which used ANT's Java task:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;task gwtCompile &lt;&lt; {&lt;br /&gt;  created = (new File(gwtBuildDir)).mkdirs()&lt;br /&gt;  ant.java(classname:'com.google.gwt.dev.Compiler', failOnError: 'true', fork: 'true') {&lt;br /&gt;    jvmarg(value: '-Xmx184M')&lt;br /&gt;    arg(line: '-war ' + gwtBuildDir)&lt;br /&gt;    arg(line: '-logLevel INFO')&lt;br /&gt;    arg(line: '-style PRETTY')&lt;br /&gt;    arg(value: 'me.trond.app.MyApp')&lt;br /&gt;    classpath {&lt;br /&gt;      pathElement(location: srcRootName + '/' + srcDirNames[0])&lt;br /&gt;      pathElement(path: configurations.compile.asPath)&lt;br /&gt;      pathElement(path: configurations.gwtCompile.asPath)&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;If you look at the classpath elements I've included a special configuration called gwtCompile. I had to define my own configuration:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;configurations {&lt;br /&gt;  gwtCompile&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This also had to be reflected in the dependencies:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;dependencies {&lt;br /&gt;  ...&lt;br /&gt;  gwtCompile (&lt;br /&gt;          [group: 'com.google.gwt', name: 'gwt-user', version: '1.6.4'],&lt;br /&gt;          [group: 'com.google.gwt', name: 'gwt-dev', version: '1.6.4', classifier: 'windows']&lt;br /&gt;          )&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Since I use the war plugin for gradle I had to make sure that gwtCompile task got called before packaging up the war file:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;war.dependsOn gwtCompile&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Also ensured that the result of the gwtCompile got included in the war file:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;war {&lt;br /&gt;  //Adds the JavaScript and resources compiled by the GWT compiler&lt;br /&gt;  fileSet(dir: file(gwtBuildDir) )&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-2696116410969887746?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/2696116410969887746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=2696116410969887746' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/2696116410969887746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/2696116410969887746'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2009/07/building-gwt-application-with-gradle.html' title='Building GWT application with Gradle'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-1799368142981151275</id><published>2009-01-29T14:00:00.003+01:00</published><updated>2009-01-29T14:15:37.688+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='glassfish'/><title type='text'>Glassfish: starting node agents in clustered setup fails with ExceptionInInitializerError</title><content type='html'>We're starting to use glassfish as our application server. The major reason going from Tomcat was that we needed more fully-fledged appserver with JMS functionality. We have had some issues regarding configuring glassfish - especially for cluster support.&lt;br /&gt;&lt;br /&gt;I started with a fresh glassfish 2.1 install and headed for a clustered setup. I've seen a few &lt;a href="http://blogs.sun.com/technical/entry/2_machine_cluster_setup_cli"&gt;blog&lt;/a&gt; &lt;a href="http://www.manorrock.com/documents/glassfish/cluster.html"&gt;post&lt;/a&gt; regarding this which made it look simple enough. So I started out with the following commands:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;lib/ant/bin/ant -f setup-cluster.xml -Ddomain.name=myDomain -Dadmin.user=admin&lt;br /&gt;-Dadmin.password=password -Dmaster.password=password&lt;br /&gt;bin/asadmin start-domain myDomain&lt;br /&gt;bin/asadmin create-node-agent --host localhost --port 4848 --user admin&lt;br /&gt;--passwordfile /home/glassfish/passfile agentOnFirst&lt;br /&gt;bin/asadmin create-cluster --host localhost --port 4848 --user admin&lt;br /&gt;--passwordfile /home/glassfish/passfile myCluster&lt;br /&gt;bin/asadmin create-instance --host localhost --port 4848 --user admin&lt;br /&gt;--passwordfile /home/glassfish/passfile --nodeagent agentOnFirst --cluster&lt;br /&gt;myCluster instance1&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The passfile contained &lt;br /&gt;&lt;code&gt;&lt;br /&gt;AS_ADMIN_PASSWORD=password &lt;br /&gt;AS_ADMIN_MASTERPASSWORD=password&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Which is what I issued to the setup-cluster.xml ANT build script. When I tried to run the node-agent I got an ExceptionInInitializerError. I tried many different combination - like supplying password when requested instead of providing this as parameters, but it still seems to fail.&lt;br /&gt;&lt;br /&gt;I was not able to get the node-agent to start until I tried without changing the admin/master password. If I rather just used the standard passwords, the nodeagent started just fine. Here the commands:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;lib/ant/bin/ant -f setup-cluster.xml -Ddomain.name=myDomain&lt;br /&gt;bin/asadmin start-domain myDomain&lt;br /&gt;bin/asadmin create-node-agent --host localhost --port 4848 --savemasterpassword agentOnFirst&lt;br /&gt;bin/asadmin create-cluster --host localhost --port 4848 myCluster&lt;br /&gt;bin/asadmin create-instance --host localhost --port 4848 --nodeagent agentOnFirst --cluster myCluster instance1&lt;br /&gt;bin/asadmin start-node-agent agentOnFirst&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I've reported this as a &lt;a href="https://glassfish.dev.java.net/issues/show_bug.cgi?id=7098"&gt;bug&lt;/a&gt; as I still consider the original commands or variants of them to be correct.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-1799368142981151275?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/1799368142981151275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=1799368142981151275' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/1799368142981151275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/1799368142981151275'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2009/01/glassfish-starting-node-agents-in.html' title='Glassfish: starting node agents in clustered setup fails with ExceptionInInitializerError'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-3106801641014095976</id><published>2008-12-11T10:44:00.005+01:00</published><updated>2009-01-29T14:16:56.629+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='shellnew'/><category scheme='http://www.blogger.com/atom/ns#' term='registry'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='dotnet'/><title type='text'>Wanted to utilize explorers "New" submenu in an application for both XP and Vista - read this then</title><content type='html'>&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;Microsoft changed the way to create new files from XP to Vista and the support for this in .NET on Vista vs. XP is rather poor. It took some research to figure how to find the correct files.&lt;br /&gt;&lt;br /&gt;In Windows Explorer a user can right-click, choose new and then the user gets presented with a list of different files to create. We have an application which needs to have this functionality available to the user. Windows stores information on how to create these files in the registry. Under a ShellNew key there are some options set up. You can read more about this in this book.&lt;br /&gt;&lt;br /&gt;Basically there are four different ways to create a new file:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;NullFile&lt;br /&gt;This means that you can create a new file without worrying about the content in the file. A good example is a .txt file. You just create a new file with the correct extension and you are good to go.&lt;/li&gt;&lt;li&gt;Data&lt;br /&gt;This means you create a new file, but you have to flush some special content into the file which is stored in the registry. A good example is using .rtf where there are som special data in the beginning of the file.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Command&lt;br /&gt;Have not tried this one since there isn't a requirement to support this kind of file. Windows have "Briefcase" as a command. Do you need it - you're on your own ;)&lt;/li&gt;&lt;li&gt;FileName&lt;br /&gt;In this scenario you get a filename from the registry which acts as a template. You then have to make a copy of the template to a new file with the filename you want. Here's were all the fun begins.&lt;/li&gt;&lt;/ol&gt;On WinXP you could use following method in .NET to find the folder where the templates are located:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;string templateFolder = Environment.GetFolderPath(Environment.SpecialFolder.Templates)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;In WinXP you get the following directory as a result: "&lt;span style="font-family: courier new;"&gt;C:\Documents and Settings\&lt;/span&gt;&lt;username&gt;&lt;span style="font-family: courier new;"&gt;Templates&lt;/span&gt;". Here are all the templates stored. All you had to do was to copy the templates into the desired location and you were good to go.&lt;br /&gt;&lt;br /&gt;In Vista you get the following directory: "&lt;span style="font-family: courier new;"&gt;C:\users\&lt;/span&gt;&lt;username&gt;&lt;span style="font-family: courier new;"&gt;AppData\Roaming\Microsoft\Windows\Templates&lt;/span&gt;". The directory exists, but there's no content in it. Bummer! After some research I found &lt;a href="http://www.vistax64.com/tutorials/112102-new-menu-context-file.html"&gt;this blogpost&lt;/a&gt; which lead to success. Looking into "&lt;span style="font-family: courier new;"&gt;C:\Windows\ShellNew&lt;/span&gt;" gives me template files for all Office documents and OpenOffice documents. Finally a directory where I actually find templates!!!&lt;br /&gt;&lt;/username&gt;&lt;/username&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-3106801641014095976?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/3106801641014095976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=3106801641014095976' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/3106801641014095976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/3106801641014095976'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2008/12/wanted-to-utilize-explorers-new-submenu.html' title='Wanted to utilize explorers &quot;New&quot; submenu in an application for both XP and Vista - read this then'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-3381860600200711695</id><published>2008-01-29T13:04:00.000+01:00</published><updated>2008-01-29T14:50:46.133+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><title type='text'>unixGeek.equals(financialGeek) == true</title><content type='html'>According to amazon.co.uk:&lt;br /&gt;&lt;br /&gt;We recommend: &lt;span style="font-weight: bold;"&gt;Standard &amp;amp; Poor's Dictionary of Financial Terms&lt;/span&gt; (Standard &amp;amp; Poor's)&lt;br /&gt;&lt;br /&gt;by Virginia B. Morris&lt;br /&gt; &lt;a href="http://www.amazon.co.uk/dp/1933569042/ref=pe_ar_x3" target="_blank"&gt;http://www.amazon.co.uk/dp&lt;wbr&gt;/1933569042/ref=pe_ar_x3&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;RRP: £9.99&lt;br /&gt;Price: £9.49&lt;br /&gt;You Save: £0.50 (5%)&lt;br /&gt;&lt;br /&gt;Recommended because you purchased or rated:&lt;br /&gt;  * &lt;span style="font-weight: bold;"&gt;The Art of Unix Programming&lt;/span&gt; (Addison-Wesley Professional Computing Series)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-3381860600200711695?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/3381860600200711695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=3381860600200711695' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/3381860600200711695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/3381860600200711695'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2008/01/unixgeekequalsfinancialgeek-true.html' title='unixGeek.equals(financialGeek) == true'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-6676285695381352160</id><published>2007-04-10T09:19:00.001+02:00</published><updated>2009-01-29T14:17:42.023+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='search'/><title type='text'>Nutch experience</title><content type='html'>I've experimented a bit with &lt;a href="http://lucene.apache.org/nutch"&gt;Nutch&lt;/a&gt; and the project is both ambitious and potentially important for the open source/Java space. I'm using Nutch to index the file server at work where most of our documents are stored. This index gets used by our intranet which is a &lt;a href="http://www.atlassian.com/confluence"&gt;Confluence&lt;/a&gt; site. The Nutch generated index is used to show related documents on our intranet site. If the viewed page in confluence is a page describing a software architecture document, the confluence plugin will show all related documents from the Nutch index. I'm also planning to create a simple search dialog to do explicit search towards the index.&lt;br /&gt;&lt;br /&gt;I think the project has great potential, but still needs some work. My biggest complaint towards Nutch is around configuration. This is both how you configure Nutch, but also the way the code is structured.&lt;br /&gt;&lt;br /&gt;Nutch has a concept of default values and site/setup specific values. So if you need to override something for each setup (which you always have to), you must edit the nutch-site.xml. There's the default values which is called nutch-default.xml. I think that Nutch should have "good defaults" and move the whole nutch-default.xml file into the jar file. This way - the user don't have to know about it, but still is able to alter and view it by extracting it from the jar file. &lt;br /&gt;&lt;br /&gt;The other part that I'm not to happy about is the number of configuration files. There's the &lt;a href="http://lucene.apache.org/hadoop"&gt;Hadoop&lt;/a&gt; configuration, regex-urlfilter.txt, craw-urlfilter.txt and a lot of others. This should be cleaned up so that these configurations could be consolidated so that the user don't have to know about all of these files. Personally I would like to have ONE file to configure and I don't see any reason why this shouldn't be possible. One way to reduce the problem with these configuration settings, is to provide a GUI client which generates the appropriate configuration files. &lt;br /&gt;&lt;br /&gt;The other part is the way the code is for the configuration part. First of, I would really like to have in interface for configuration because the &lt;a href="http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/conf/Configuration.java?view=markup"&gt;current implementation&lt;/a&gt; has to many assumption about where to find the configuration files for Hadoop. It's expected to be available in the classpath/classloader. This might be an issue if you have complex classloader hierarchies. Personally I think that the project should consider &lt;a href="http://jakarta.apache.org/commons/configuration"&gt;Common Configuration&lt;/a&gt;, but at least start using interfaces so anyone can provide an alternative implementation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-6676285695381352160?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/6676285695381352160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=6676285695381352160' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/6676285695381352160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/6676285695381352160'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2007/04/nutch-experience.html' title='Nutch experience'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-8307439122820681293</id><published>2007-01-25T11:06:00.000+01:00</published><updated>2007-01-25T12:47:59.311+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='test'/><title type='text'>My new goodie of the month: AbstractTransactionalDataSourceSpringContextTests</title><content type='html'>I've bought the &lt;a href="http://www.springone.com/"&gt;SpringOne&lt;/a&gt; DVD and got it this autumn, but haven't had the time to listen to it before I started on a new project. Finally using the &lt;a href="http://www.springframework.org/"&gt;Spring Framework&lt;/a&gt;, a really good &lt;a href="http://www.jetbrains.com/idea"&gt;IDE&lt;/a&gt; and an &lt;a href="http://tomcat.apache.org/"&gt;application server&lt;/a&gt; that doesn't take forever to start up.&lt;br /&gt;&lt;br /&gt;This little project I'm working on doesn't have to much logic on the business tier so what I really wanted was to test the SQL statements. I've tried the &lt;a href="http://www.mockobjects.com/"&gt;mock object&lt;/a&gt; approach and as everybody else says: It's not the way to go when testing this kind of code.&lt;br /&gt;&lt;br /&gt;When listening to Rod's &lt;a href="http://www.springone.com/display/SpringOne06/Testing+with+Spring"&gt;talk&lt;/a&gt; about testing, I had to agree with the statement about using in memory database. When you are testing SQL towards a database, I really want to use the same database as the production environment because of the difference between SQL dialects.&lt;br /&gt;&lt;br /&gt;So this really cool, long named class: &lt;a href="http://static.springframework.org/spring/docs/1.2.x/api/org/springframework/test/AbstractTransactionalDataSourceSpringContextTests.html"&gt;AbstractTransactionalDataSourceSpringContextTests &lt;/a&gt;does a fantastic job solving my testing needs. By utilizing the transaction mechanism in the database, you can issue update and insert statements, getting error messages from the database if something went wrong, and if everything went fine - everything just gets rolled back so my tests are repeatable. Brilliant - just brilliant.&lt;br /&gt;&lt;br /&gt;I think that Spring-boys from time-to-time should borrow the slogan from Jetbrains: "Develop with pleasure".....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-8307439122820681293?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/8307439122820681293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=8307439122820681293' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/8307439122820681293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/8307439122820681293'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2007/01/my-new-goodie-of-month.html' title='My new goodie of the month: AbstractTransactionalDataSourceSpringContextTests'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-112922387122795923</id><published>2005-10-13T18:44:00.000+02:00</published><updated>2005-10-13T19:37:49.320+02:00</updated><title type='text'>Scratching a BEA Workshop itch</title><content type='html'>BEA Workshop have somewhat strange project layout, making it difficult to use a &lt;a href="http://www.jetbrains.com/idea/"&gt;really good IDE&lt;/a&gt;. It's also difficult to use ANT or Maven in a 'standard' way since the generated ANT scripts from Workshop just generates one target doing all the magic. But since BEA Portal does have tight integration with Workshop, it's not an option to drop using Workshop.&lt;br /&gt;&lt;br /&gt;Workshop offers a menu item to generate an EAR file for the portal project. This is a good thing, but when we're working in a development environment we typical would like to have different settings than in test and/or production. One example is that we really want to have much more strict &lt;a href="http://e-docs.bea.com/wlp/docs81/security/security.html#1013239"&gt;security settings&lt;/a&gt; in test/production than in the development environment. There's also a several &lt;a href="http://dev2dev.bea.com/blog/gnunn/archive/2005/06/a_no_brainer_pe_1.html"&gt;performance&lt;/a&gt; &lt;a href="http://e-docs.bea.com/wlp/docs81/perftune/apenB.html"&gt;related&lt;/a&gt; options that should be very different in test/production compared to development.&lt;br /&gt;&lt;br /&gt;Since the generated ANT scripts hides away everything regarding building and packaging of the portal ear, it has been a bit difficult to change these settings when moving from development to test/production. For this reason I made a &lt;a href="http://www.jython.org/"&gt;Jython&lt;/a&gt; script which reads a configuration change from a XML file and then inserts these changes into web.xml, weblogic.xml and application-config.xml. This script supports the possibility to change an existing setting, but also to append a new setting that doesn't already exist in the XML configuration file.&lt;br /&gt;&lt;br /&gt;In order to do this, I tried a couple of options. First the DOM support in Python/Jython, but problems with minidom in Jython and the crappy DOM api made me drop this. Then I tried to look into &lt;a href="http://xmlbeans.apache.org/"&gt;XMLBeans&lt;/a&gt; but since I didn't have the XML Schema for web.xml and weblogic.xml I couldn't generate JavaBeans representing these Schemas. XMLBeans has a token mechanism, but this was way to ackward to use for my needs. So I ended with using &lt;a href="http://www.dom4j.org/"&gt;dom4j&lt;/a&gt; and I'm pretty happy with the choice. Compared to &lt;a href="http://www.jdom.org/"&gt;jdom&lt;/a&gt;, dom4j seems more pleasant to work with. &lt;br /&gt;&lt;br /&gt;If you are struggeling with the same itch, leave a notice and I will ask my customer if I can give the code to you....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-112922387122795923?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/112922387122795923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=112922387122795923' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/112922387122795923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/112922387122795923'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2005/10/scratching-bea-workshop-itch.html' title='Scratching a BEA Workshop itch'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-112653864283218082</id><published>2005-09-12T17:10:00.000+02:00</published><updated>2005-09-12T17:24:02.840+02:00</updated><title type='text'>Python suprised me - in a bad way</title><content type='html'>I talked with someone looking at Ruby to use for a prototype and didn't want Java's verbose syntax and complex APIs. I suggested Python as a good alternative since it got better support for GTK than Ruby and RedHat and others uses the language alot, but it seemed like they had rejected Python as an alternative for such a relative large prototype. I just had to ask why. So he fired up the console on his Mac and typed:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;python&lt;br /&gt;&lt;br /&gt;class foo:&lt;br /&gt;  def __init__(self, x=[]):&lt;br /&gt;    self.y = x&lt;br /&gt;&lt;br /&gt;a = foo()&lt;br /&gt;a.y.append("123456")&lt;br /&gt;a.y&lt;br /&gt;&lt;br /&gt;b = foo()&lt;br /&gt;b.y&lt;br /&gt;&lt;br /&gt;a.y.append("98765")&lt;br /&gt;a.y&lt;br /&gt;b.y&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Try it !!!! It wasn't quite what I've expected.&lt;br /&gt;&lt;br /&gt;Go figure.....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-112653864283218082?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/112653864283218082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=112653864283218082' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/112653864283218082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/112653864283218082'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2005/09/python-suprised-me-in-bad-way.html' title='Python suprised me - in a bad way'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-112509053197469336</id><published>2005-08-26T22:46:00.000+02:00</published><updated>2005-08-26T23:12:43.993+02:00</updated><title type='text'>Trac looks promising</title><content type='html'>I've installed &lt;a href="http://www.edgewall.com/trac/"&gt;Trac&lt;/a&gt; at my current customer and I must say I really like the concept of combining a wiki, issue tracker and integration with version control system. &lt;a href="http://projects.edgewall.com/trac/wiki/TracOnWindows"&gt;Installing Trac on windows&lt;/a&gt; isn't the easiest thing in the world, but after many seperate downloads and configuration, all the Trac-Subversion integration magic worked like a dream. There were a few Windows spesific issues - like the &lt;a href="http://projects.edgewall.com/trac/wiki/TracFaq#on-windows-why-does-trac-not-display-diffs"&gt;diff functionality&lt;/a&gt;.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;There are quite a few rough edges still, such as the need for running the trac-admin python script in order to configure the wiki/project setup. There's definitely a need for an administrator web console. And the web pages don't look that good using Internet Explorer. Not so important for me, but could be annoying if we're going to let non technical people use the issue tracker.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;I haven't gotten to really use the issue tracker. It's not like Enterprise Jira, but then again we didn't have a need for a full configurable workflow based issue tracker, only something simple.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;We have currently been using &lt;a href="http://snipsnap.org/"&gt;SnipSnap&lt;/a&gt; as the wiki and I don't look forward to converting all those SnipSnap pages to the moin-moin based syntax that Trac uses.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-112509053197469336?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/112509053197469336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=112509053197469336' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/112509053197469336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/112509053197469336'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2005/08/trac-looks-promising.html' title='Trac looks promising'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-111877373166363136</id><published>2005-06-14T20:20:00.000+02:00</published><updated>2005-06-14T20:28:51.666+02:00</updated><title type='text'>JUnit plugin for BEA Workshop</title><content type='html'>Since the company I'm working for have a strong focus on BEA's software stack, and the developers complain about the lacking JUnit support in Workshop, my employer had a student writing a workshop plugin which allows the usage of JUnit from Workshop in a better way than using External Tool mechanism.&lt;br /&gt;&lt;br /&gt;You will find the &lt;a href="https://beajunitplugin.projects.dev2dev.bea.com/"&gt;JUnit plugin&lt;/a&gt;. It's far from perfect, but still much better than the alternatives. It parses the XML that the XMLReporter produces. This could have been solved more elegant with having a process receive the results from JUnit. If somebody would like to contribute I think Bjørn Ove would be happy to include your contribution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-111877373166363136?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/111877373166363136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=111877373166363136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/111877373166363136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/111877373166363136'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2005/06/junit-plugin-for-bea-workshop.html' title='JUnit plugin for BEA Workshop'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-111781425492474870</id><published>2005-06-03T17:00:00.000+02:00</published><updated>2005-06-03T17:57:34.960+02:00</updated><title type='text'>BEA Portal 9.0 - what's coming</title><content type='html'>I participated in a BEA breakfast seminar where the product manager for BEA Portal told us about new features in the coming 9.0 release. Before I forget anything, I'll better write them down :-)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Federated Portals&lt;/span&gt;&lt;br /&gt;It's seems like the hype world within the portal enterprise market nowadays is federated portals. What is it? Well - shortly it's means that you can 'swallow' somebody else's portlets and present them as part of your own portal. This isn't a Java only thing since there's a web service standard called &lt;a href="http://www.oasis-open.org/committees/wsrp/"&gt;WSRP&lt;/a&gt; (Web Services for Remote Portlets). This got introduced in WebLogic Portal 8.1 Service Pack 3 so it's not a new concept. It's interesting because it allows reuse on presentation level - and also across organisations. So a few of the things BEA is addressing is grouping of remote portlets and the possibility to manage metrics and Service Level Agreement based on these metrics.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Content Management&lt;/span&gt;&lt;br /&gt;The Content Management API, which BEA have offered for Content Management shops to integrate with, have been expanded. Their aren't allow to call it &lt;a href="http://www.jcp.org/en/jsr/detail?id=170"&gt;JSR-170&lt;/a&gt; compatible since this specification isn't approved, but I guess these improvements are just to comply with JSR-170. These improvements are Content type inheritance, Softlinks, full text search and nested content types.&lt;br /&gt;The Bulk Loader is removed and they have opened the life cycle API so one can write code responding to changes for instance in moving content from 'Ready for approval' to 'Published'. This is all good, but no reason to get really excited....&lt;br /&gt;There's a wizard to easily getting started with retrieving content from a content repository. Hopefully the documentation will get better.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Commerce Server&lt;/span&gt;&lt;br /&gt;BEA haven't done anything with commerce server for quite some time now. This release will be a major rewrite of the commerce functionality, and it's about time. The commerce server functionality haven't been available as Workshop controls so the tool support haven't been so good. There will be implemented a new service layer, but the tools won't be part of the first release. The product catalog will now use the content repository instead of using it's own database - which is good thing.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Management/administration&lt;/span&gt;&lt;br /&gt;One of the most exciting news is actually a result of a new feature in WebLogic Server. If you have read anything about Diablo you will know that they will allow the possibility to upgrade applications without taking the application down and without killing the sessions of the logged on users. This is a wicked cool feature if you can't tolerate taking the applications down. A result of this is that you can actually upgrade the Portal framework (which is a J2EE application) without taking the server down. Pretty cool.... There's also functionality for extending the Portal administration tool - if needed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Conclusion&lt;/span&gt;&lt;br /&gt;I didn't get a 'wow-feeling' on the features coming in upcoming 9.0 release. BEA focus on federated portals, but I not so sure many of the companies I know of will actually use this functionality. I see similarities between this federated portals and the SOA hype. So an OK upgrade, but nothing revolutionary unless you are longing for hyping in the portal market ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-111781425492474870?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/111781425492474870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=111781425492474870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/111781425492474870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/111781425492474870'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2005/06/bea-portal-90-whats-coming.html' title='BEA Portal 9.0 - what&apos;s coming'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-111702197237932842</id><published>2005-05-25T13:45:00.000+02:00</published><updated>2005-05-25T20:20:50.680+02:00</updated><title type='text'>Nokia involved in the GNOME Project</title><content type='html'>&lt;a href="http://mail.gnome.org/archives/gnome-multimedia/2005-May/msg00021.html"&gt;Seems&lt;/a&gt; like Nokia have been sponsoring the Fluendo's work on improving Multimedia experience on free desktop. Fluendo have been working a lot with Python and the late Symbian-based phones from Nokia (Series 60) have &lt;a href="http://press.nokia.com/PR/200501/978226_5.html"&gt;support&lt;/a&gt; for Python. I also read that TV on mobile probably will be next big thing according to Nokia.... I think I see a connection here :-)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Update:&lt;/span&gt;&lt;br /&gt;Seems like the news was this &lt;a href="http://www.nokia.com/nokia/0,1522,,00.html?orig=/770"&gt;Internet Tablet&lt;/a&gt;. Cool, but seems to be a bit unpractical for a left handed guy like me.... Maybe we will see a Linux based Nokia phone, but it's not likely in the near future. Think I have to buy &lt;a href="http://www.expansys.no/product.asp?code=118296"&gt;this one&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-111702197237932842?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/111702197237932842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=111702197237932842' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/111702197237932842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/111702197237932842'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2005/05/nokia-involved-in-gnome-project.html' title='Nokia involved in the GNOME Project'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-111497127729973644</id><published>2005-05-01T19:06:00.000+02:00</published><updated>2005-05-01T20:21:46.966+02:00</updated><title type='text'>Integration products - loosing your OO-design?</title><content type='html'>I've been working on automating a manual process by using BEA WebLogic Integration. My initial feelings about how these products works is that the design has a tendency to be functional oriented instead of object oriented. I think that these products are important and very valuable for companies where the J2EE connectors - like CICS, SAP etc. - maps to the companies legacy systems. Using such components are also crucial in a object oriented design. But these products also focus on the business logic part - often represented as business processes using a visual representation - like this one below:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://e-docs.bea.com/workshop/docs81/doc/en/integration/tutorial/tutbroker/images/mb_flow.gif" /&gt;&lt;br /&gt;&lt;br /&gt;It might be my naive usage of WebLogic Integration, but I do see a tendency to focus on handling the complexity by using "function points" instead of objects. The reason? Well - one of the strong points with these business process products are that they communicate what's going on within the business process. This involves classical constructs like for and while loops, if and case statements and of course more high level constructs to create parallel processing. The result of these processes is that you run a function - made by yourself or other components - alter the data - and then the next function works on the same data. The connections points between the functions are the data, but as you probably see the object oriented principle of keeping data together with the logic doesn't apply in these processes.&lt;br /&gt;&lt;br /&gt;I haven't used any other integration products, but have gotten Microsoft BizTalk presented and I saw similarity with BEA WebLogic Integration.&lt;br /&gt;&lt;br /&gt;Whether or not this is a good or bad thing - I'm not sure, but my guess is that on a large project this approach might be a bit difficult. I also suspect that these business processes get very complex and the reuse perspective might be more difficult. It surely will be interesting to get more experience with such a solution. My current assignment isn't big enough to pinpoint possible problem areas.&lt;br /&gt;&lt;br /&gt;Any thoughts on this issue?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-111497127729973644?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/111497127729973644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=111497127729973644' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/111497127729973644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/111497127729973644'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2005/05/integration-products-loosing-your-oo.html' title='Integration products - loosing your OO-design?'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-111364650522261753</id><published>2005-04-16T11:18:00.000+02:00</published><updated>2005-04-16T12:16:53.883+02:00</updated><title type='text'>BitKeeper - why is it so great?</title><content type='html'>The &lt;a href="http://kerneltrap.org/node/4966"&gt;announcement&lt;/a&gt; about BitMover no longer offers kernel developers to use &lt;a href="http://www.bitkeeper.com/"&gt;BitKeeper&lt;/a&gt; as their version control tool. Some of the reason have been that Tridgell (The guy behind the excellent product Samba) have tried to reverse engineer the binary protocol used by BitKeeper. So Linus wasn't &lt;a href="http://www.theregister.co.uk/2005/04/14/torvalds_attacks_tridgell/"&gt;too happy&lt;/a&gt; about this. While others think that Linus should &lt;a href="http://www.theregister.co.uk/2005/04/15/perens_on_torvalds/"&gt;cool it&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Linus doesn't seem to even consider using &lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt;.  The Subversion team have &lt;a href="http://subversion.tigris.org/subversion-linus.html"&gt;commented&lt;/a&gt; on this issue - explaining why Subversion isn't kernel developers right choice. So the question is - is it the Linux kernel development model that makes BitKeeper so great, or would other projects also benefit from using BitKeeper? Personally I've only used CVS, Subversion (currently using), SourceSafe and ClearCase. My &lt;a href="http://www.invenia.no/"&gt;company&lt;/a&gt; have bought &lt;a href="http://www.accurev.com/"&gt;Accurev&lt;/a&gt;, but I haven't been in a project using it.&lt;br /&gt;&lt;br /&gt;My experience with ClearCase it that it seems to require a person working full time on ClearCase in order to get it to give the benefits that companies have paid big bucks for. My &lt;a href="http://www.nordea.com/"&gt;former employer&lt;/a&gt; used ClearCase, but as a developer I never saw the big benefit. We actually struggled stabilizing the ClearCase server. I've also tried ClearCase UCM, but never really liked all the steps involved. Might just be the way Rational have implemented UCM. Could have been interesting to try a different product focusing on the UCM concept.&lt;br /&gt;&lt;br /&gt;So are there any Java developers out there that have used BitKeeper? Would non-Linux-kernel developers also benefit from using this product? If so - why?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-111364650522261753?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/111364650522261753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=111364650522261753' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/111364650522261753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/111364650522261753'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2005/04/bitkeeper-why-is-it-so-great.html' title='BitKeeper - why is it so great?'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-111347444044441051</id><published>2005-04-14T11:50:00.000+02:00</published><updated>2005-04-14T12:27:20.446+02:00</updated><title type='text'>While waiting for new version of Jython</title><content type='html'>I had the need for automatically creating tables from comma separated files, and thought of using &lt;a href="http://www.jython.org/"&gt;Jython&lt;/a&gt; as the tool. Since the released version of Jython is based on Python 2.1, there are many features in newer versions of Python which are lacking in Jython. The Python module I was going to look at was the csv module, which is handy when working with comma separated files.&lt;br /&gt;&lt;br /&gt;A little bit of background. I'm using a 'free' version of &lt;a href="http://www.minq.se/products/dbvis/"&gt;DBVisualizer&lt;/a&gt;, which is part of BEA WebLogic Platform. I needed to create a local database on a few of the tables from an ERP system and the free version of DBVisualizer only supports exporting a table definition as a comma separated file or HTML. DDL export would have been nice.&lt;br /&gt;&lt;br /&gt;Since I got sick yesterday I decided - in boredom - to create a script reading these csv files (why are they called csv when they should have been called csf) and then create the tables in &lt;a href="http://www.mysql.com/"&gt;MySQL&lt;/a&gt;. I found the csv module, but since this module isn't part of Jython I had to use Python. The script might not be the prettiest thing, but it does the job and the tables are created within a second.&lt;br /&gt;&lt;br /&gt;I'm really hoping that Jython gets it momentum up and running. According to the &lt;a href="http://www.jython.org/cgi-bin/wiki/RoadMap"&gt;roadmap&lt;/a&gt; the first release will be in August and there's an indication that some of the new modules included (such as the csv module) might not be released until November....&lt;br /&gt;&lt;br /&gt;Now I probably try looking at &lt;a href="http://www.dbunit.org/"&gt;DBUnit&lt;/a&gt; to populate the database with some data.... I probably could have used Python also here, but there's nothing like trying out a new tool when struggling with a cold.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-111347444044441051?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/111347444044441051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=111347444044441051' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/111347444044441051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/111347444044441051'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2005/04/while-waiting-for-new-version-of.html' title='While waiting for new version of Jython'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-111040342656521094</id><published>2005-03-09T22:09:00.000+01:00</published><updated>2005-03-09T22:23:46.570+01:00</updated><title type='text'>GNOME 2.10 Released</title><content type='html'>This new release includes LOTS of bug fixes, some improvement on the multimedia as a result of the &lt;a href="http://gstreamer.freedesktop.org"&gt;GStreamer&lt;/a&gt; architecture. This isn't the most interesting release, but includes quite a few features I have missed. One of them being the simple, but cool, Sticky Note applet in the panel. I use &lt;a href="http://xpad.sourceforge.net/"&gt;xpad&lt;/a&gt;, but no need for this now. The System Tools now handle wireless network connections.&lt;br /&gt;&lt;br /&gt;I'm really looking forward to the next &lt;a href="http://www.ubuntulinux.org"&gt;Ubuntu&lt;/a&gt; release named &lt;a href="http://www.ubuntulinux.org/wiki/HoaryHedgehog"&gt;HoaryHedgehog&lt;/a&gt; which is coming out fourth of April.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-111040342656521094?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/111040342656521094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=111040342656521094' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/111040342656521094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/111040342656521094'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2005/03/gnome-210-released.html' title='GNOME 2.10 Released'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-110891329398390444</id><published>2005-02-20T16:10:00.000+01:00</published><updated>2005-03-07T09:00:58.370+01:00</updated><title type='text'>BEA Portal afterthoughts</title><content type='html'>I'm just about to complete a project using BEA portal and I found that this is a good time to reflect over the experience so far. This post isn't a technical consideration of the BEA Portal product. I've haven't worked with any other portal products and I also only worked on this project a few months. But this might be valuable for those getting started with BEA Portal - avoiding some of the struggles that I've experienced.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Linking within Portal&lt;/span&gt;&lt;br /&gt;The way the portal and portlets handles links on isn't straight forward. The reason is that portlet is supposed to be self contained - without assuming to much of the environment that surrounds it. For web developers being used to link from one part to a completely different part, this comes up regular as a pain doing portal/portlet development. &lt;a href="http://dev2dev.bea.com/"&gt;dev2dev&lt;/a&gt; have written an &lt;a href="http://dev2dev.bea.com/products/wlportal81/articles/urls_in_portal.jsp"&gt;article&lt;/a&gt; regarding URL handling in the portal. It's worth a read, but isn't as practical as I would like have it. I miss a 'best practice' guide when it comes to URLs in the portal.&lt;br /&gt;&lt;br /&gt;The front page typically have quite a few links into other parts of the portal. News entries and other campaigns will typically link into certain parts of the portal. These elements isn't suppose to be reusable for other contexts, so if they assumes things about the portal, it's OK. The render tags are the ones to be used when you need this kind of linking. We used the &lt;span style="font-family:courier new;"&gt;render:pageurl&lt;/span&gt; tag for this kind of linking. Read the render tags &lt;a href="http://e-docs.bea.com/workshop/docs81/doc/en/portal/taglib/navSkeletonRendering.html"&gt;documentation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We had the need for a redirection service - which used a few parameters and then redirected to the correct place in the portal. This redirection got written as a JSP (yeah - it should have been a servlet...), but when you need to redirect to a resource in the portal, you must remember that when you are accessing the JSP directly (using the direct URL to the JSP), you must change to 'portal-linking'. You should look at the &lt;a href="http://e-docs.bea.com/wlp/docs81/javadoc/com/bea/portlet/PostbackURL.html"&gt;PostbackURL&lt;/a&gt; class and there also is a &lt;a href="http://e-docs.bea.com/workshop/docs81/doc/en/portal/taglib/www.bea.com/servers/portal/tags/netuix/render/postbackUrl.html"&gt;postbackURL tag&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Another issue with linking is the difference between development environment portal configuration, which is stored in a .portal file, and the production environment portal configuration which involves defining a portal and a desktop. The URLs for these environments aren't identical - so be aware if you are doing any linking hack.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Configuration &amp; Datasync tool&lt;/span&gt;&lt;br /&gt;Configuration of the portal, done in the Portal Admin tool, is annoyingly dependent on the Portal Admin tool GUI. According to this &lt;a href="http://forums.bea.com/bea/thread.jspa?threadID=200076913&amp;amp;tstart=15"&gt;thread&lt;/a&gt;, it isn't a public API for scripting up the portal configuration. This is very annoying because every time you have to create a new desktop because of changes in the .portal file in development environment, you also have to go through the tedious steps of reenter the entitlement configuration. Hopefully will the core server focus on WebLogic Scripting Tool make portal configuration available through WLST.&lt;br /&gt;&lt;br /&gt;When I first deployed the portal on the test server, I wasn't able to use the custom Unified User Profile that I had written. In the development environment, the UUP showed up without any problem, and on the test server all the user interface logic dependent on this custom UUP worked, but the portal admin wouldn't display the UUP as available. So you have to use the Datasync tool to bootstrap configuration for this to be available in the portal admin tool. This is just plain weird. I haven't used this tool for anything else which also means that I don't see the big benefit of having it. Anyway - unnecessary complex...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Taglibraries&lt;/span&gt;&lt;br /&gt;There are quite a few tag libraries available on a portal project within BEA Workshop. The ones with good tool support is, netui tags. I must say that you really feel the difference between the workshop framework (which is the Beehive project) and the rest of the portal tags. Example on this is that netui tags would store the result of a tag in an &lt;span style="font-family:courier new;"&gt;resultId &lt;/span&gt; attribute if available. This result would be put in pageContext for retrieval later in the JSP. The portal tags often doesn't include similar functionality and when they do - the attribute certainly isn't called &lt;span style="font-family:courier new;"&gt;resultId&lt;/span&gt;. This makes the tag libraries very inconsistent.&lt;br /&gt;&lt;br /&gt;Some of the netui tags shouldn't be used in a portal setting - for instance in the linking area. I think workshop should see that this is a portal project and then 'promote' typical portal aware tags and possibly hide away tags that isn't supposed to be used in a portal setting.&lt;br /&gt;&lt;br /&gt;There is also a mix of portal utility tags (notNull, isNull etc), struts tags and netui tags. I think that BEA should go the Java Standard Tag Library (JSTL) way instead of this collection of tags . Where some of them do the same thing.&lt;br /&gt;&lt;br /&gt;To sum up, BEA needs to clean up the tag library usage and give the developers some help in choosing the correct tags....&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Caching&lt;/span&gt;&lt;br /&gt;When you are working with portlets, Workshop present the portlets properties. Among these properties are caching settings. We utilized this cache properties because there are many pages which are shared among all users. Typically open pages presenting product information, prices etc. Then this &lt;a href="http://dev2dev.bea.com/products/wlportal81/articles/portlet_caching.jsp"&gt;article&lt;/a&gt; got posted on dev2dev and we realized that the caching we had done weren't doing us any good because portlet caching is on user session level. So we were actually only using more resources - without getting any major benefits. I miss the operand's to say to a portlet that this information should be cached on a application level - no matter what user that sees this portlet.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Custom authentication provider&lt;/span&gt;&lt;br /&gt;The customer had a need for a custom authentication provider. When you develop a custom authentication provider there are a collection of interfaces and some of them have to be implemented others are considered optional. The initial authentication provider only implemented the minimum set of interfaces that had to be implemented. This didn't work when using the UserLoginControl. After some investigation I found that the portal actually uses one of the optional interfaces called UserReader, because it uses the method &lt;span style="font-family:courier new;"&gt;boolean userExists(String username)&lt;/span&gt;. So I implemented both the UserReader and GroupReader interface in my authentication provider. I still don't get the custom authentication provider's groups up in the portal admin tool user interface when trying to create entitlements, but this haven't been critical since I've used Global Roles defined in the realm of the server instead.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Custom Unified User Profile&lt;/span&gt;&lt;br /&gt;Developing a custom Unified User Profile (UUP) is actually just to create a stateless session bean. Doing the development wasn't a problem, but configuring the UUP with P13n had too many manual steps for my taste. You had to extract the deployment descriptors for the existing p13n_ejb.jar file, add reference to the custom UUP and then update the p13n_ejb.jar file. I recommend using JRockIt when working with these jar files because JRockIt jar binary support the notion of updating a file within an existing jar. Sun's jar utility doesn't. BEA should provide tools support for doing this. Either command line or through Workshop.&lt;br /&gt;&lt;br /&gt;I also had a few points about layout and usage of CSS, but I leave it for now...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-110891329398390444?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/110891329398390444/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=110891329398390444' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/110891329398390444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/110891329398390444'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2005/02/bea-portal-afterthoughts.html' title='BEA Portal afterthoughts'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-110686630073430438</id><published>2005-01-27T22:40:00.000+01:00</published><updated>2005-01-30T14:37:53.996+01:00</updated><title type='text'>Dell Laptitude D800 and Ubuntu Linux 4.10</title><content type='html'>&lt;p&gt;Here's my experience on my first Ubuntu/Debian install. I have reached a state where I'm pretty satisfied, but I still have some issues that I would like to get fixed and I'll update this as I get into improvements. &lt;/p&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;The computer&lt;/span&gt;&lt;br /&gt;&lt;ul style="margin: 0pt; padding: 0pt 0pt 0pt 1em;"&gt;&lt;br /&gt;&lt;li&gt;Dell Laptitude D800.&lt;/li&gt;&lt;li&gt;Pentium Mobile 2.0 GHz&lt;/li&gt;&lt;li&gt;15.4" WUXGA (1920x1200)&lt;/li&gt;&lt;li&gt;nVidia GeForce 5650, 128 Mb RAM&lt;/li&gt;&lt;li&gt;2 Gb RAM&lt;/li&gt;&lt;li&gt;Intel Pro Wireless 2200&lt;/li&gt;&lt;li&gt;60 Gb HD, 7200 RPM&lt;/li&gt;&lt;li&gt;DVD ROM, CD RW&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Partitioning of the disk&lt;/span&gt;&lt;br /&gt;&lt;p&gt;I've used several approaches when it comes to partitioning of the disk, but this time I took the time to &lt;a href="http://www.tldp.org/HOWTO/Partition/partition-4.html"&gt;read a bit about it&lt;/a&gt; before I started. Used PartitionMagic from work to resize the huge partition which only included Windows XP. I ended up with the following:&lt;/p&gt;&lt;code&gt;/             12Gb&lt;br /&gt;/boot         23Mb&lt;br /&gt;/home         10Gb&lt;br /&gt;/usr/local    10Gb&lt;br /&gt;/mnt/xp       22Gb&lt;br /&gt;swap          2Gb&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Installing Ubuntu&lt;/span&gt;&lt;br /&gt;&lt;p&gt;Installing Ubuntu 4.10 (Warty) went without any major problems. It didn't get the wireless card to work out of the box, but I wasn't too worried since Intel have launch a &lt;a href="http://www.blogger.com/app/ipw2200.sf.net"&gt;sourceforge project&lt;/a&gt;. I was a bit disappointed that it didn't managed to enable my 1920x1200 resolution on the screen.&lt;/p&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Screen resolution and nVidia drivers&lt;/span&gt;&lt;br /&gt;&lt;p&gt;I was able to get WUXGA resolution (1920x1200) by using the &lt;a href="http://www.psych.nmsu.edu/%7Ejkroger/linux/XF86Config.txt"&gt;these settings&lt;/a&gt;. I was a bit concerned about the resolution begin to big, but it works great on the GNOME desktop. I then followed &lt;a href="http://www.ubuntulinux.org/wiki/BinaryDriverHowto"&gt;this wiki-page&lt;/a&gt; to install the binary drivers for my nVidia card. This resulted in destroying my XF86Config-4 file so I had to create the WUXGA resolution once again. The only struggle is that gDesklet handled the binary drivers bad when it comes to font handling. They all the sudden got extremely small. I haven't figured this out yet.&lt;/p&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Special multimedia keys&lt;/span&gt;&lt;br /&gt;&lt;p&gt;The laptop only includes volume up, volume down and mute buttons. I struggled a bit to get this working, but eventually i started gstreamer-properties application and got it use ALSA as the sound architecture. Then I just used the keyboard shortcuts application in GNOME to map the special keys to volume up/down and mute. I also had to work around a bug concerning &lt;a href="https://bugzilla.ubuntu.com/show_bug.cgi?id=1254"&gt;IRQ conflicts&lt;/a&gt;. I solved this by adding acpi_irq_isa=7 to the kernel parameters. To avoid having to rewrite this every time you install a new kernel, you have to alter the line: kopt=root=/dev/hda8 ro. Just add the parameter at the end and then a updated kernel will use these parameters as well.&lt;/p&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Memory problems&lt;/span&gt;&lt;br /&gt;&lt;p&gt;Since I'm using the full BEA WebLogic stack I have a need for lots of memory and I was really looking forward for this laptop with 2Gb!!! The problem was that Ubuntu only reported that I had 900Mb!!! Trying to cat /proc/meminfo gave me the same result. I tried to search for this and saw &lt;a href="http://www.ubuntuforums.org/showthread.php?t=12821"&gt;somebody else&lt;/a&gt; struggling. I also found a Debian message where somebody mentioned that 386 compiled kernels might be a problem. Used apt-get to install 686 compiled kernel, rebooted and voila - my gDesklet reported 1.98 Gb memory.&lt;/p&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;NTFS support&lt;/span&gt;&lt;br /&gt;&lt;p&gt;I used &lt;a href="http://www.ubuntulinux.org/wiki/AutomaticallyMountMSWindowsPartitions"&gt;Ubuntu wiki&lt;/a&gt; again and I had mounted NTFS drive within no time. Just worked. I haven't enabled write access to it.&lt;/p&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Multimedia support&lt;/span&gt;&lt;br /&gt;&lt;p&gt;I've gotten MP3 enabled which it's included in the base installation because of license issues. There's a pretty good &lt;a href="http://www.ubuntulinux.org/wiki/RestrictedFormats"&gt;description&lt;/a&gt; on the wiki, but I didn't get support for xvid,dvdcss and Microsoft w32codecs. Seemed like they were compiled with other libraries. Not an issue yet, but I have to fix this. &lt;/p&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Wireless card&lt;/span&gt;&lt;br /&gt;&lt;p&gt;At home I only have wireless access and I have struggled ALOT with a 3Com card for many years now so I was really looking forward to this wireless card with Intel having launched their sourceforge project. There was some trouble compiling these drivers, but the reason was some of my lacking header files for the kernel. Got that fixed and then the driver compiled. I only had to untar the firmware into /usr/lib/hotplug/firmware directory. More details on the &lt;a href="http://www.ubuntuforums.org/showthread.php?t=12270"&gt;forum&lt;/a&gt;. This got the card working, but I wasn't able to get the card working with an encryption key based on ASCII signs instead of hexa decimal signs. So I had to reconfigure the access point to use hexa decimal signs and the first password instead of number three. I still have some problems getting IP address, but it does work (from time to time :-)&lt;/p&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Java&lt;/span&gt;&lt;br /&gt;&lt;p&gt;There are several pages on the Ubuntu wiki about Java. I tried one of them and it failed so I didn't use the 'apt way' of doing things. I regret this now, but I might fix it. This &lt;a href="http://www.ubuntulinux.org/wiki/Java"&gt;wiki page&lt;/a&gt; is a good starting point. I should have made a choice based on these options. Currently I have everything under /usr/local/java. Installed IntelliJ, BEA software and quite a few libraries. I do miss the &lt;a href="http://www.jpackage.org/"&gt;JPackage project&lt;/a&gt; for Debian - although JPackage is far from perfect. Guess I also should install Eclipse - maybe - we'll see  :-)&lt;/p&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Minor stuff&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;I've installed Skype and it's working. Chose a static compiled version with the qt libraries since Ubuntu doesn't include them. Looks butt ugly, but works.&lt;/li&gt;   &lt;li&gt;Configured gDesklet with quite a few cool desklets. They are pretty :-)&lt;/li&gt;   &lt;li&gt;Installed a few &lt;a href="http://g-scripts.sourceforge.net/"&gt;Nautilus scripts&lt;/a&gt;. Must have!!!&lt;/li&gt;   &lt;li&gt;Installed several development tools which were missing - such as Glade, MySQL and a lot more.&lt;/li&gt;   &lt;li&gt;Installed &lt;a href="http://www.ubuntulinux.org/wiki/FrequentlyAskedQuestions#msfonts"&gt;Microsoft fonts&lt;/a&gt; which were available by easy apt-get command.&lt;br /&gt;&lt;/li&gt; &lt;/ul&gt; &lt;span style="font-weight: bold;font-size:130%;" &gt;Some headache&lt;/span&gt;&lt;br /&gt;&lt;p&gt;I have quite a few issues still to be solved.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Suspend to disk doesn't work, but I'm looking forward to the next Ubuntu release which seems to focus a bit on laptop&lt;/li&gt;&lt;li&gt;Suspend to RAM makes X freeze. I think this is a problem with the binary drivers, but don't take my word for it&lt;/li&gt;&lt;li&gt;I haven't been able to get Citrix Client software to integrate with GNOME based Terminal Server Client software&lt;/li&gt;&lt;li&gt;I haven't tried VPN yet&lt;/li&gt;&lt;li&gt;Must do some hdparm optimalisation&lt;/li&gt;&lt;li&gt;I should have Wine/Crossover office up and running&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Conclusion&lt;/span&gt;&lt;br /&gt;&lt;p&gt;My first Debian based installation has been a positive experience. There are a few issues and I get a feeling that Java have more friends in the RPM based distributions. I really like the wiki that Ubuntu have set up (Think they use Plone) and the howto's are on the average very good. The search strategy is first the wiki - then the web forum. Found answers on most issues.&lt;/p&gt;&lt;p&gt;I still have laptop challenges, but have hopes for next Ubuntu release in April. I also miss a few of RedHat/Fedora GUI tools, such as service/daemon configuration tool and a few others, but this might be better when GNOME &lt;a href="http://www.gnome.org/projects/gst/"&gt;System Tools&lt;/a&gt; grows up.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-110686630073430438?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/110686630073430438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=110686630073430438' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/110686630073430438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/110686630073430438'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2005/01/dell-laptitude-d800-and-ubuntu-linux.html' title='Dell Laptitude D800 and Ubuntu Linux 4.10'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-110460123475693988</id><published>2005-01-01T18:35:00.000+01:00</published><updated>2005-01-01T18:40:34.756+01:00</updated><title type='text'>Jython progress and funding</title><content type='html'>According to this &lt;a href="http://seanmcgrath.blogspot.com/archives/2004_12_26_seanmcgrath_archive.html#110441413833634765"&gt;blog&lt;/a&gt; Jython have received funding and there is project named &lt;a href="http://www.python.org/psf/grants/Jython_PSF_Grant_Proposal.pdf"&gt;Moving Jython Forward&lt;/a&gt;. It seems like the competition from Groovy pushes the Jython project. Good stuff....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-110460123475693988?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/110460123475693988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=110460123475693988' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/110460123475693988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/110460123475693988'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2005/01/jython-progress-and-funding.html' title='Jython progress and funding'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-110379105361023477</id><published>2004-12-23T09:14:00.000+01:00</published><updated>2004-12-23T09:51:30.386+01:00</updated><title type='text'>How to do software architecture evaluation ?</title><content type='html'>I've gotten an assignment doing a software architecture evaluation without getting access to the code. The customer have chosen a platform and wants to know how the major software vendor that they are using, complies to this platform. That is - how can my customer utilize the software vendor's solution on the chosen J2EE platform. &lt;br /&gt;&lt;br /&gt;I searched a bit on the internet and found a few resources Carnegie Mellon Software Engineering Institute. They have a &lt;a href="http://www.awprofessional.com/content/images/020170482X/samplechapter%5Cclementsch02.pdf"&gt;sample chapter&lt;/a&gt; from the book &lt;a href="http://www.amazon.com/exec/obidos/ASIN/020170482X"&gt;Evaluation Software Architectures&lt;/a&gt;. They talk about doing a SAAM analysis (Software Architecture Analysis Method), but I'm a bit unsure how this will work with a software vendor who is a bit protectionist.&lt;br /&gt;&lt;br /&gt;Since services seems to be THE hype word these days, I was thinking about a services focus on the architectural review. I'm going to try to stress the vendor by asking questions about:&lt;br /&gt;&lt;br /&gt;- Deployment diagram&lt;br /&gt;- Documentation of services (use case it supports, data input and output documentation and state changes as a result of the service)&lt;br /&gt;- Backward compatibility policy (does it exist, is it predictable)&lt;br /&gt;- Business separation from client/channel&lt;br /&gt;- Layering within the solution&lt;br /&gt;- Available tests&lt;br /&gt;- Other reuse points (stored procedures, portlets++)&lt;br /&gt;&lt;br /&gt;I'm also going to prepare a few scenarios which is relevant for my customer and try to evaluate the answers I get. &lt;br /&gt;&lt;br /&gt;In the end the customer wants a matrix where we can do a cap analysis between where we want the vendor to be and where they actually are. This isn't going to be easy...&lt;br /&gt;&lt;br /&gt;Do you have any experience in this area? If so - write down your thoughts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-110379105361023477?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/110379105361023477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=110379105361023477' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/110379105361023477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/110379105361023477'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2004/12/how-to-do-software-architecture.html' title='How to do software architecture evaluation ?'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-110347195628890022</id><published>2004-12-19T16:49:00.000+01:00</published><updated>2004-12-19T16:59:16.290+01:00</updated><title type='text'>CruiseControl progress</title><content type='html'>I've browsed the &lt;a href="http://jira.public.thoughtworks.org/browse/CC"&gt;Jira&lt;/a&gt; page for CruiseControl. One thing that struck me is that a lot of people have submitted patches for CruiseControl, which is a good thing, but it's seems like it takes some time before they are applied. Another thing that strikes me is the lack of roadmap. There is a release 2.2.1 where all the issues marked for this release is resolved, but it isn't released. No other release seems to be planned.&lt;br /&gt;&lt;br /&gt;Do we have a situation where the product has a lot of users willing to contribute, but the project itself lost it's interest ? Is this a sign that somebody else should drive the project ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-110347195628890022?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/110347195628890022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=110347195628890022' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/110347195628890022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/110347195628890022'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2004/12/cruisecontrol-progress.html' title='CruiseControl progress'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-110193259500159790</id><published>2004-12-01T20:57:00.000+01:00</published><updated>2004-12-16T11:01:38.066+01:00</updated><title type='text'>Book review: More Eric Meyer on CSS</title><content type='html'>Want to make sexy tabbed navigation like apple.com have on their site ? Want to learn how to use CSS on concrete problems ? If so this might be the &lt;a href="http://www.moreericmeyeroncss.com"&gt;book&lt;/a&gt; for you.&lt;br /&gt;&lt;br /&gt;Eric Meyer is an authority in the field of Cascading Style Sheet and have written several books on the subject: &lt;a href="http://www.oreilly.com/catalog/csspr2/"&gt;CSS Pocket Reference&lt;/a&gt;, &lt;a href="http://www.oreilly.com/catalog/css2/"&gt;CSS The definitive guide&lt;/a&gt; and &lt;a href="http://www.ericmeyeroncss.com"&gt;Eric Meyer on CSS&lt;/a&gt;. You get the picture.&lt;br /&gt;&lt;br /&gt;This book - as the previous - looks at ten projects with different challenges. Examples are: Converting existing page, styling photo collection, attractive tabs, CSS driven drop down menus. The book also includes color pictures of the web pages as they evolves. This is a big plus. Black&amp;White doesn't give the same level of feedback about the elegance of the design.&lt;br /&gt;&lt;br /&gt;It's a very good book and I would definitely recommend it to anyone who have learned the basic about CSS, but need help to achieve the really good result. If you have a concrete problem, look whether the first or this book addresses it. Without having read it, I guess that &lt;a href="http://www.oreilly.com/catalog/cssckbk/"&gt;CSS Cookbook&lt;/a&gt; might compete with these books. &lt;br /&gt;&lt;br /&gt;Got the book for half price on amazon.co.uk and it was worth it. On the minus side might be some lacking comments on best practices. A few comments on this is offered, but it definitely could have offered more advises on when to utilize different strategies. I also had problem following the rationale on some occasions. The solution was to trying to do the changes ourselves to see the problems that a particular CSS styling gave.&lt;br /&gt;&lt;br /&gt;Looking forward to the new CSS features in IntelliJ IDEA next release. Maybe I must download Irida from Jetbrains Early Access Program....&lt;br /&gt;&lt;br /&gt;So we end up on.....  &lt;img src="http://gfx.dagbladet.no/gfx2/rod-tern/tern5.gif"/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-110193259500159790?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/110193259500159790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=110193259500159790' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/110193259500159790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/110193259500159790'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2004/12/book-review-more-eric-meyer-on-css.html' title='Book review: More Eric Meyer on CSS'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-110192858902003833</id><published>2004-12-01T19:53:00.000+01:00</published><updated>2004-12-01T20:16:29.020+01:00</updated><title type='text'>RedHat/Fedora... I'm leaving you soon</title><content type='html'>My first try on Linux was RedHat 4.1 when I was a student. Struggling with Linux on the student server that we owned. Over the years I've always had a Linux partition on my PC, and it always have been a RedHat distribution. I started using Linux as my primary desktop at home two-three years ago and it was RedHat 7.3. Followed up with 8.0, 9.0 and then the Fedora Core versions. Currently I'm running Core 2. &lt;br /&gt;&lt;br /&gt;So why change now ? There's a couple of reasons. I started using Ximian Desktop when I was running RedHat 8.0. This desktop was really slick - I liked it a lot. Now Ximian is Novell - which also means Suse - which also means: No Ximian Desktop for Fedora. There's also quite a few important features missing - mp3 support being the most important of them. Also I don't like the fact that Fedora kernel doesn't include the &lt;a href="http://softwaresuspend.berlios.de/"&gt;Software Suspend&lt;/a&gt; in their 2.6.9 kernel. I've struggled SO long with getting suspend functionality to work on my Dell laptop.&lt;br /&gt;&lt;br /&gt;The turning point was my sudden awareness of &lt;a href="http://www.ubuntulinux.org"&gt;Ubuntu Linux&lt;/a&gt;. This Debian based distribution seems to fit my interest perfect: Bleeding edge on GNOME features, new releases at regular intervals, standard based, slick desktop. I downloaded and gave the distribution a try on a small available partition and it seems very good. Seems to boot faster than Fedora. &lt;br /&gt;&lt;br /&gt;So when I'm done with my current project, get some spare moments, Fedora gets kicked out of my Dell Inspiron....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-110192858902003833?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/110192858902003833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=110192858902003833' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/110192858902003833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/110192858902003833'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2004/12/redhatfedora-im-leaving-you-soon.html' title='RedHat/Fedora... I&apos;m leaving you soon'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-110188957962126237</id><published>2004-12-01T09:03:00.000+01:00</published><updated>2004-12-01T09:26:19.623+01:00</updated><title type='text'>Eclipse and GNOME finding common ground ?</title><content type='html'>I've been reading the &lt;a href="http://gnomedesktop.org/node/2061"&gt;Around the planet&lt;/a&gt; which is rumors about what's going on in the GNOME land. As a Java development I notice that it seems like there's some momentum around RedHat's participation in the Eclipse world. I think RedHat was one of the founding members in the Eclipse board. &lt;br /&gt;&lt;br /&gt;Havoc Pennington have some interesting links on his &lt;a href="http://log.ometer.com/2004-11.html#28"&gt;blog&lt;/a&gt;. Also Fernando Herrera &lt;a href="http://www.gnome.org/~fherrera/blog//Eclipse_for_GNOME"&gt;talks&lt;/a&gt; about GNOME development in Eclipse.&lt;br /&gt;&lt;br /&gt;The interesting stuff is where is GNOME headed. We all know about Novell's (former Ximian) effort on the &lt;a href="http://www.mono-project.com/"&gt;Mono project&lt;/a&gt; and there seems to be an agreement in the GNOME community that they need a higher level language than C in order to reduce development time. Is this an indication that Novell and RedHat represent a pro Mono vs pro Java effort ? We also know that Sun have contributed to the GNOME platform with accessibility features and they will probably push for Java as future platform for GNOME. &lt;br /&gt;&lt;br /&gt;Interesting times.....&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-110188957962126237?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/110188957962126237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=110188957962126237' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/110188957962126237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/110188957962126237'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2004/12/eclipse-and-gnome-finding-common.html' title='Eclipse and GNOME finding common ground ?'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-109993059144560759</id><published>2004-11-08T17:00:00.000+01:00</published><updated>2004-11-08T22:43:52.976+01:00</updated><title type='text'>Citrix client on Linux</title><content type='html'>I use Linux as my development environment and it would have been great to access the Citrix solution that is used a lot by my current customer. First I thought "Citrix and Linux - probably not a good match", but then I entered "citric client Linux" in the google search and got a product page from Citrix up. This is too good to be true. Downloaded the rpm (!!!) and installed the thing. Had to do a rpm -ql ICAClient. It installed everything under /usr/lib/ICAClient. I tried to run the configuration tool which has awful GUI (ugly Motif stuff). Didn't get that working. But since the Citrix server offers a URL to a launch file, I dowloaded it a run the command:&lt;br /&gt;&lt;br /&gt;sudo /usr/lib/ICAClient/wfica.sh launch.ica&lt;br /&gt;&lt;br /&gt;And voila: Full windows desktop up and running. Pretty cool. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-109993059144560759?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/109993059144560759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=109993059144560759' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/109993059144560759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/109993059144560759'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2004/11/citrix-client-on-linux.html' title='Citrix client on Linux'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-109777975503681829</id><published>2004-10-14T20:15:00.000+02:00</published><updated>2004-10-14T20:49:15.036+02:00</updated><title type='text'>BEA's sorry excuse for unit testing in Workshop</title><content type='html'>dev2dev.bea.com have posted both an &lt;a href="http://dev2dev.bea.com/products/wlworkshop81/articles/eckels_BP.jsp"&gt;article&lt;/a&gt; and a &lt;a href="http://beadev2dev.webex.com/webex/playback.php?FileName=%20ftpna2.bea.com/pub/downloads/UnitTestingWebLogicWorkshopControls.wrf"/&gt;tech talk&lt;/a&gt; on unit testing in BEA Workshop. When I saw this article, I thought 'YES ! This is exactly what I need' because my new &lt;a href="http://www.invenia.no"&gt;employer&lt;/a&gt; have a strong focus on the tools from BEA. I absolutely see the productivity gain using BEA workshop, but I've been skeptic since I've tried TDD and liked the confidence it gave me. Doing so in Workshop seems like a struggle. &lt;br /&gt;&lt;br /&gt;So then I started on the article in hope for all my concerns to be redeemed. I haven't started developing with Workshop yet, but it's just around the corner. The article shows how you can launch JUnit from Workshop using command line. Well... OK... that wasn't very useful. That's NOT the problem. There's a discussion about the classloading stuff in JUnit, but it fails to mention that disabling this can be done in a property file on the user's home area - which is what I do. The author suggest doing this either on the command line or in code. A bit awkward I thought and moved on...&lt;br /&gt;&lt;br /&gt;Then he starts to talk about the difficult stuff. How to test Java Page Flows, Java Controls, Web Services and EJBs. The author names it "Unit testing Externally Testable Components" - and then the bad feeling got worse. He's actually talking about doing FUNCTIONAL testing at the UI level and calls it testable components !!! I think that must be as far away from testable components as you can get. &lt;br /&gt;&lt;br /&gt;Further down he talks about testing web services and EJBs through their remote interface when running in the container. Testable components - sure !!!&lt;br /&gt;&lt;br /&gt;Then he uses the term "Unit testing Internally testable components" which in practice is the usage of Cactus. I have great respect for the work around Cactus and I think the Java world owns a lot to Vincent, but I consider Cactus as work-around when you can't do unit testing. Vincent himself mentioned that Cactus test are probably more like integration tests:  "Type 2: integration unit testing. Cactus is typically in this category" (from start page of Cactus). &lt;br /&gt;&lt;br /&gt;So the conclusion is that unit testing will be very difficult with the Java Page Flow and Java Controls stuff included in BEA platform 8.1 and the only way to work around this probably is to embrace Cactus for all it's worth and that's a shame when you think about that &lt;a href="http://beust.com/testng/"&gt;TestNG&lt;/a&gt; is created by a former BEA employee. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-109777975503681829?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/109777975503681829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=109777975503681829' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/109777975503681829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/109777975503681829'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2004/10/beas-sorry-excuse-for-unit-testing-in.html' title='BEA&apos;s sorry excuse for unit testing in Workshop'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-109753331733872054</id><published>2004-10-11T23:20:00.000+02:00</published><updated>2004-10-12T09:57:42.006+02:00</updated><title type='text'>Book review: Designing with web standards</title><content type='html'>Are you using HTML tables when designing your web site ? Many space GIFs ? Are you using browser detector scripts ? Got a feeling that these HTML hacks smells (like teen spirit ;-) ? Well then &lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0735712018"&gt;Designing with web standards&lt;/a&gt; might be the book for you. &lt;br /&gt;&lt;h4&gt;Background&lt;/h4&gt;I've been working with Java technology for quite some time now, but I never actually done any major web client programming. Mostly the focus have been server side components or swing programming. I just started working in a new &lt;a href="http://www.invenia.no/"&gt;company&lt;/a&gt; and I actually got my first web project with JSPs and stuff. I started out trying to avoid using scriptlets and learned &lt;a href="http://java.sun.com/products/jsp/jstl/"&gt;JSTL&lt;/a&gt; and a few of Jakarta's &lt;a href="http://jakarta.apache.org/taglibs/"&gt;tag libraries&lt;/a&gt;, but I still ended up with crappy HTML code because of tables wrapped inside tables in order to get the layout to look good. So it occurred to me that I had to do something about my HTML skills. My friend &lt;a href="http://bonskis.blogspot.com/"&gt;André&lt;/a&gt; got this book recommended by a web designer and he spoke warmly about it - so I gave it a try.&lt;br /&gt;&lt;h4&gt;Diving into the problems...&lt;/h4&gt;Being ignorant about the browser wars and web standards, this book gave me historical background and points out that 99,9% of the web sites are crappy and ignorant about the fact that most browsers now actually support the important web standards; CSS, XHTML, ECMAScript and DOM. It's possible to make a site without having to write HTML specific for Internet Explorer (don't understand why anyone still wants to use such a browser - but that's another story) or any other browsers.&lt;br /&gt;&lt;br /&gt;The book takes us through the history and how things gotten better. This section could have been a bit shorter for my taste. After that the focus is on the different Web standards and explaining them and then showing examples. &lt;a href="http://www.zeldman.com/"&gt;Zeldman&lt;/a&gt; also addresses problem areas with older browsers and how one can work around these issues. The last chapter shows how he changes his &lt;a href="http://www.zeldman.com"&gt;homepage&lt;/a&gt; from a table based layout to a CSS driven layout. A really good wrap up on the technology.&lt;br /&gt;&lt;h4&gt;Might not be your cup of tea...&lt;/h4&gt;This is a great book to get an overview on the technologies and some practical advice, but still it's not a HOWTO or reference on for instance CSS. If that's what you're looking for, you might consider some like &lt;a href="http://www.ericmeyeroncss.com/"&gt;Eric Meyer on CSS&lt;/a&gt;. I've bought the follow up called "More Eric Meyer on CSS".&lt;br /&gt;&lt;h4&gt;Summing up&lt;/h4&gt;&lt;img src="http://gfx.dagbladet.no/gfx2/rod-tern/tern5.gif"/&gt;&amp;nbsp;&amp;nbsp;To conclude, my dice landed on five. The ovations of web standards and historical background is a bit verbose. On a few occasions I had some problems following the arguments in the text with the examples. Other than that - I'm pleased with the book.&lt;br /&gt;&lt;br /&gt;Hopefully this ends up with me finally getting my &lt;a href="http://www.trond.andersen.name"&gt;homepage&lt;/a&gt; up and running...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-109753331733872054?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/109753331733872054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=109753331733872054' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/109753331733872054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/109753331733872054'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2004/10/book-review-designing-with-web.html' title='Book review: Designing with web standards'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-109604371768702890</id><published>2004-09-24T18:25:00.000+02:00</published><updated>2004-09-24T18:35:17.686+02:00</updated><title type='text'>Configuring special laptop keys on Linux</title><content type='html'>I upgraded to Fedora Core 2 a while ago, but haven't taken the time to get &lt;a href="http://lineak.sf.net"&gt;LinEAK&lt;/a&gt; up and running again before today. It's been a couple of years since I last did it and I had forgotten most of it.&lt;br /&gt;&lt;br /&gt;LinEAK has support for Dell inspiron according to it's documentation and since my initial configuration didn't work anymore, I tried to use the following command:&lt;br /&gt;&lt;br /&gt;lineakd -c DI8K&lt;br /&gt;&lt;br /&gt;This generates the lineakd.conf file needed. I didn't get it to work so I google'd a bit and found some &lt;a href="http://www.ife.ee.ethz.ch/~mwirz/dell/inspiron8500.html"&gt;hints&lt;/a&gt;. I included the special configuration for Inspiron 8500 and run the command again. YES !!! One step further, but the old commands for mute, volumeUp, volumeDown wouldn't work. I had used EAK_MUTE, EAK_VOLUP, EAK_VOLDOWN. This didn't work so I looked at the &lt;a href="http://oregonstate.edu/~penningj/programming/linux-xps/"&gt;next google hit&lt;/a&gt; and voila... All special keys up and running.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-109604371768702890?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/109604371768702890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=109604371768702890' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/109604371768702890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/109604371768702890'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2004/09/configuring-special-laptop-keys-on.html' title='Configuring special laptop keys on Linux'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-109586022482966824</id><published>2004-09-22T15:36:00.000+02:00</published><updated>2004-09-22T15:49:22.296+02:00</updated><title type='text'>Want a GMail account ?</title><content type='html'>You know the drill. Leave email address in the comment....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-109586022482966824?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/109586022482966824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=109586022482966824' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/109586022482966824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/109586022482966824'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2004/09/want-gmail-account.html' title='Want a GMail account ?'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-109571971581555219</id><published>2004-09-21T01:15:00.000+02:00</published><updated>2004-09-21T00:46:27.410+02:00</updated><title type='text'>JavaZone 2004 in a nutshell</title><content type='html'>The &lt;a href="http://www.javazone.no/"&gt;JavaZone&lt;/a&gt; conference is sold out this year. 800 tickets got sold out a few days before the conference started. I've been on all three of these conferences and I value the effort that Totto with friends put into this conference.&lt;br /&gt;&lt;br /&gt;I started the day with participation of Tom Gilb's presentation about quantifying quality. In general the presentation said: "You can measure everything within software industry so just get started". Very little practical advice other than using google and you will find a method to help you. His books might be more practical and before christmas it's available on his &lt;a href="http://www.gilb.com/"&gt;website&lt;/a&gt;. Don't think his book is on my highest priority list...&lt;br /&gt;&lt;br /&gt;The next session was Kevlin Henney talking about value object pattern (yes - the real value object pattern). Some practical advises, but nothing revolutionary stuff. Henney is a great speaker, and I like his perspectives on software development.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.codehaus.org/people/rinkrank/"&gt;Aslak Hellesøy&lt;/a&gt; was next out with a talk about the &lt;a href="http://www.picocontainer.org/"&gt;PicoContainer&lt;/a&gt; and &lt;a href="http://www.nanocontainer.org/"&gt;NanoContainer&lt;/a&gt;. Showed some interesting features adding aspects to the components by using NanoContainer. Unfortantly the sound was fubar so it was a bit difficult to hear Aslak.&lt;br /&gt;&lt;br /&gt;John Crupi talked about a project inside Sun called SALSA which is used to govern projects by analysis code and identifying architectural patterns (based on his work on Core J2EE Patterns). Pretty ambitious project and it will be interesting to see the result of this work - especially the visualization part of this. Currently I would focus more on &lt;a href="http://xradar.sf.net/"&gt;XRadar&lt;/a&gt; since it's free, but it definitely could benefit having something like SALSA at the architectural level.&lt;br /&gt;&lt;br /&gt;Eric Evans (written the book &lt;a href="http://www.blogger.com/app/post.pyra?blogID=6925996&amp;postID=109571971581555219"&gt;Domain Driven Design&lt;/a&gt;) talked about the modeling and a way to establish a common languange between developers and domain expert. The problem is that Eric is increadable boring to listen to. Had a few good points, but I think the book probably is a better choice than listening to the man.&lt;br /&gt;&lt;br /&gt;Took a little break after Evans session and took a beer with &lt;a href="http://www.bonkowski.net/"&gt;Andre&lt;/a&gt; and friends. Some of them had bought books from the new series from O'Reilly; Developer's Notebook.&lt;br /&gt;&lt;br /&gt;Next out was &lt;a href="http://jroller.com/page/rickard"&gt;Rickard Öberg&lt;/a&gt;. His talk was about how his AOP sort of gives back the value of domain modeling - or maybe OO analysis, but it's definitely not OO programming. Since last time I heard Rickard on this kind of talk, it seems like they have taking a more extreme route when it comes to utilizing AOP. Prior Rickard have been talking about using AOP to add infrastructural services to objects, but now they use AOP also for core business functionality. It will be interesting to see how SiteVision will do in a market full of big competitors. Recommend to look at the presentation when it's published on the &lt;a href="http://www.javazone.no/"&gt;JavaZone site&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Stallman was at JavaZone talking about the Java trap. I thought this was going to be a bit more detailed, but then again I've never heard the man speak before. He clearly have somewhat extreme views upon the software industry. He also mentioned the distingtion between free software and open source. I have actually been ignorant about these conflicts. Anyway - he is a curiousity, but nothing more than that to me....&lt;br /&gt;&lt;br /&gt;I participated on Maven2 BOF. I must say that Maven 2 looks VERY promising. Speed, no more Jelly and corrected some of the annoying behaviour. Within a few weeks an alpha release of Maven 2 will arrive. I'm also headed toward a new project so I might try the alpha release. We'll see....&lt;br /&gt;&lt;br /&gt;Then it was PartyZone  ;-) &lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-109571971581555219?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/109571971581555219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=109571971581555219' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/109571971581555219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/109571971581555219'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2004/09/javazone-2004-in-nutshell.html' title='JavaZone 2004 in a nutshell'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-109168857239230385</id><published>2004-08-05T08:39:00.000+02:00</published><updated>2004-08-05T08:49:32.393+02:00</updated><title type='text'>One Maven experience</title><content type='html'>In my former company we decided to change our 'in-house' build scripts from reusable ANT scripts (which got included using the XML import functionality) to using &lt;a href="http://maven.apache.org"&gt;Maven&lt;/a&gt; instead. One interesting experience was in a project where consultants were coming and going. There was never a question on how to build the different components that the consultants were building. All the plugins had decided this for us.&lt;br /&gt;&lt;br /&gt;This is as close as the Java community have reached compared to linux's ./configure, make, make install. As long as there isn't established such conventions on the builds, there's a need for Maven and all those ANT imports will never help.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-109168857239230385?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/109168857239230385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=109168857239230385' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/109168857239230385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/109168857239230385'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2004/08/one-maven-experience.html' title='One Maven experience'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-109151628088963608</id><published>2004-08-03T08:52:00.000+02:00</published><updated>2004-10-12T00:26:24.033+02:00</updated><title type='text'>New job and new location</title><content type='html'>I've moved to the city of &lt;a href="http://www.tromsø.no/"&gt;Tromsø&lt;/a&gt; and started a new job in a company named &lt;a href="http://www.invenia.no/"&gt;Invenia&lt;/a&gt;. Still be working with Java technology and it looks like it's going to be a lot of Weblogic for me - which is ok. The one thing that I'm a bit sceptical about is the usage of Weblogic Workshop, but I'll probably use IntelliJ anyway. My personal license to the rescue ;-)&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-109151628088963608?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/109151628088963608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=109151628088963608' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/109151628088963608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/109151628088963608'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2004/08/new-job-and-new-location.html' title='New job and new location'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-108754655607432400</id><published>2004-06-18T10:06:00.000+02:00</published><updated>2004-06-18T10:16:11.193+02:00</updated><title type='text'>Geronimo and code standards</title><content type='html'>Seems like the J2EE project from Apache doesn't care much about code convention. I just browsed the &lt;a href="http://geronimo.apache.org/modules/core/checkstyle-report.html"&gt;Checkstyle report&lt;/a&gt; on the  Geronimo core and there are 2600 violations on the code convention. Thought these open source developers cared about these things since the code is available for everybody to look at. &lt;br /&gt;&lt;br /&gt;The PMD report is much better, but the default setup with Maven uses too few rules. Maybe I should run a more strict PMD analysis on this code. Anyway - it's a shame that one have the power of the maven reports and then projects don't use this advantage.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-108754655607432400?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/108754655607432400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=108754655607432400' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/108754655607432400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/108754655607432400'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2004/06/geronimo-and-code-standards.html' title='Geronimo and code standards'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-108573448148547614</id><published>2004-05-28T10:49:00.000+02:00</published><updated>2004-05-28T10:54:41.486+02:00</updated><title type='text'>SOAP in non object oriented languages</title><content type='html'>Have some business architect (great name ;-) on my neck regarding some recommendation I've given. Do anyone know where I can find SOAP toolkits for non object oriented languages ? I've located a &lt;a href="http://dspos.com/DSPOSWeb/web_services/xml_soap.htm"&gt;toolkit&lt;/a&gt; from Fusion for C.  Are there any other toolkits ? Do anyone got experience using SOAP from non object oriented languages ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-108573448148547614?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/108573448148547614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=108573448148547614' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/108573448148547614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/108573448148547614'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2004/05/soap-in-non-object-oriented-languages.html' title='SOAP in non object oriented languages'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6925996.post-108556764310828188</id><published>2004-05-26T12:22:00.000+02:00</published><updated>2004-05-26T12:35:18.670+02:00</updated><title type='text'>Are JMock allergic to JavaDoc</title><content type='html'>Saw that JMock have reached release candidate 1. I've tried to use JMock, but whenever I'm in trouble I get really provoked by the fact that JMock developers seems to hate JavaDocs. Try browsing JMock's &lt;a href="http://www.jmock.org/docs/javadoc/index.html"&gt;JavaDoc&lt;/a&gt; and you'll see the lack of comments is astonishing. &lt;br /&gt;&lt;br /&gt;I value JavaDoc, but then again I might be just too stupid since I see the value of having JavaDoc for something simple as a mock object library.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6925996-108556764310828188?l=reassess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://reassess.blogspot.com/feeds/108556764310828188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6925996&amp;postID=108556764310828188' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/108556764310828188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6925996/posts/default/108556764310828188'/><link rel='alternate' type='text/html' href='http://reassess.blogspot.com/2004/05/are-jmock-allergic-to-javadoc.html' title='Are JMock allergic to JavaDoc'/><author><name>Trond Andersen</name><uri>http://www.blogger.com/profile/15568695480490451084</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry></feed>
