Technology

NFJS in Seattle

I spent Friday and the weekend at NFJS in Seattle. Like last year GenoLogics decided to send most of the development team down for the conference. It was good times with the team and a lot of good speakers.

However, I thought the conference last year was better for me. It just didn't seem like there was that much new stuff this year. Last year we had Java 5, Ajax and Ruby on Rails -- all pretty new at the time. This year I was already familiar with all that, so I didn't have that many things to take away. The talks on Spring/Hibernate/SOA were also not very interesting since I'm already familiar with those technologies.

The talks that I enjoyed the most were two on JavaScipt (since I didn't know very much about the language) and the talk about the Java memory model. It's nice to talk about things at a detailed level and really get into it.

I also went to talks on Tapestry and JSF. I'm not a web guy, so this is always quite interesting. JSF didn't impress me at all, it seemed clunky and complicated. Tapestry on the other hand had a clean seperation of HTML and code. I'm still not sure if I was that impressed with either though.

Finally, it's funny that there wasn't a single talk on Ruby this year. Was it just a fad afterall?

Running the TPP with Apache

UPDATE: The TPP now includes Apache and configures it out of the box, so this is no longer applicable. For reference the original instructions are listed below.

Original Instructions

Here's how to run the ISB's Trans Proteomic Pipeline (TPP) with the Apache web server, as opposed to IIS. Prior to installing the TPP do this:

  1. Create the "C:\Inetpub" and "C:\Inetpub\wwwroot" directories.
  2. Download Apache 2.0
  3. Install Apache using the default installation options.
  4. Edit the Apache configuration file: C:\Program Files\Apache Group\Apache2\conf\httpd.conf
  5. Add the following to the bottom of the file:
    Alias /isb-bin "C:/Inetpub/isb-bin"
    
    <Directory "C:/Inetpub/isb-bin">
        Options Indexes MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
    
    Alias /tpp-bin "C:/Inetpub/tpp-bin"
    
    <Directory "C:/Inetpub/tpp-bin">
        Options Indexes MultiViews ExecCGI
        AllowOverride None
        Order allow,deny
        Allow from all
    
        AddHandler cgi-script .cgi .pl
        ScriptInterpreterSource Registry
    
        PassEnv WEBSERVER_ROOT
    </Directory>
    
    Alias /ISB "C:/Inetpub/wwwroot/ISB"
    Alias /isb "C:/Inetpub/wwwroot/ISB"
    
    <Directory "C:/Inetpub/wwwroot/ISB">
        Options Indexes MultiViews Includes
        AllowOverride None
        Order allow,deny
        Allow from all
    
        AddType text/html .shtml
        AddHandler server-parsed .shtml
    
        PassEnv WEBSERVER_ROOT
    </Directory>
    
  6. Restart the Apache service so it picks up the new configuration.
  7. Now install the TPP following the normal instructions. Skip the IIS specific configuration steps.
  8. After installing the TPP find a .pl Perl script file in "C:\Inetpub\tpp-bin"...
    1. Right-click on the file and select "Open With... -> Choose Program"
    2. Select "Always use the selected program to open this kind of file"
    3. Click the "Browse..." button.
    4. Select "c:\cygwin\bin\perl.exe" and click OK.
    5. Click OK to close the dialog box. This ensures Apache will run Perl scripts using the Cygwin Perl interpreter.
That's it. Pasting in the Apache config is almost easier than configuring IIS using its user interface.

Java 1.5 Performance on Linux

At work we're currently finishing off on a major rearchitecting effort for our flagship product. We've always run our system on Linux, but with the re-architecture running on Windows has become a real possibility. Last week my colleague Adam tried running the system natively on Windows for the first time and it performed a *lot* faster than on Linux.

This really bums me out, so I've been trying to get it up to par on Linux. So far no success. Running on Windows using Sun's JVM is the fastest in all aspects. JRockIt is a close second.

On Linux, JBoss startup with Sun's JVM takes around 1:30m. Using JRockit or IBM's JVM I get it down to around 30secs. The funny thing is that Sun's JVM, although very slow for JBoss startup, runs our performance test suite the fastest.

I guess it's time for more testing and profiling. Obviously more aspects than just the JVM affect the performance. However, it's still dissappointing that basically "out of the box" it performs significantly faster on Windows. Does anyone else have experience with Java performance on Linux? Traditionally it used to be not very good, but I thought those problems had been addressed in the recent releases.

J2EE Configuration Hassles

I decided I'm going to use my new found blogging freedom to rant a little bit. Yesterday I spent almost an entire day debugging a class loading issue with JBoss. In the end it turns out JBoss wasn't even at fault, but I'm still going to rant about ridiculously complicated J2EE configurations. What is up with tons of XML and other configuration files? Why is it so hard to figure out which file does what? Why are there so many files in the first place? Sometimes JBoss really drives me nuts. The same goes for the Spring Framework which we are now using at work. It's pretty cool and all, but I'm not really sure how it's supposed to make things simpler. Having to edit the application context XML file every time I add a new bean or want to inject another dependency is a real PITA. It really doesn't save me any time there. Why can't it just automatically detect that stuff by introspecting my code? Or what about annotations? I guess that's why everybody loves Ruby on Rails -- because it "just works". Anyway, enough ranting for today.

Syndicate content