Wednesday, March 29, 2006

Java based open source CMS portals

Spent a bit of time tonight looking at Java based CMS portals for an upcoming project. The ones I looked at briefly were


We're basically looking for a CMS that we can customize and enhance through development. Our initial evaluations don't include any PHP based ones because PHP isn't our forte (yes you don't have to tell me that the CMS/Portal market is dominated by PHP products). In short our requirements include forums, news, blogs.

This is a port of PHP-Nuke done using Velocity. Jetnuke seems to have alot of of modules which is a big plus. Maybe I'm biased but I'm not really keen on taking on a Velocity project, Velocity seems to have lost it's steam and barely gets mention nowadays. Couldn't find any evidence that jetnuke supports skins/themes (hopefully using CSS) which is a requirement for us. Jetnuke does include a blog module.

This CMS intrigued me the most as it was developed using AppFuse and the technology stack is chock full of goodies: Struts, Spring, Hibernate, Acegi, Tiles, etc. I'm not excited about the Struts+Tiles usage but beggars can't be choosers right? There was a screenshot which I looked at and assuming my assumptions are correct, it does support themes/layouts in some sense. The site itself isn't very polished IMO but that can be worked on. Don't see any blog module though.

This project had no screenshots that I could find on their site so I had no choice but to download and install it for a quick look-see. The installation was easy enough, simply drop a war in Tomcat and follow a setup wizard. Not so fast. I chose a full installation and as it proceeded to deploy the CMS, I noticed it was unzipping alot of files. A quick look at the opencms.war file shows they embed ALOT of zip files for each module/subsytem of the CMS. No problem I say, so I let the installation run it's course. I start bitching. Yes it's on my laptop which is a 1.25Ghz G4 Powerbook w/ 1Gb ram (not exactly a sexy MacBook Pro) but taking this long to install anything is rediculous. I was patient and let it continue. the setup wizard was nice enough to inform me at completion that it took 1:01hr to install. ONE HOUR AND ONE MINUTE!!! Are you nuts? Now obviously that's only installation and simply starting the servlet container and deploying an already installed CMS site isn't going to take that long but if we're going to do multiple installations, that's unacceptable. A whole god damn hour for christ's sake, if I was one of those raving Ruby on Rails fanboys...I'd be raving at how I could have written a CMS in RoR in that hour ;)

OpenCMS doesn't seem to have any real usable modules, every module looks the same, simply a content pane in the middle displaying information. The "job module" shows jobs. The "news module" shows news items. Does anyone from OpenCMS want to explain to me how those modules are different? Where are the forums, blogs, galleries, etc?

The only positive thing I have to say about OpenCMS so far is that the installation, although long, was flawless. It's really rare in the open source world when you can install a product and run it and not see errors, warnings, problems. So while the 6.2 is beta, it does look somewhat stable.

So far no runaway winner. I'll keep looking and make notes here. If time were an issue and I had to pick, I'd probably pick Atleap simply based on what it's been implemented on. Hard to get excited about a new project when you don't like the current implementation (talking about jetnuke+velocity).

Wednesday, March 15, 2006

Tips for new Jetty users

Redeploying my application on Tomcat 5.5.15 on my 1.25Ghz G4 Powerbook 1GB ram was getting painstakingly slow so I decided to take a look at Jetty to see if it would help the cause.

Here are two things I came across in getting started and which I couldn't find much help on Mortbay's site/wiki/docs

1. If you use Log4J in your application and get this error:

Caused by: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: No suitable Log constructor [Ljava.lang.Class;@d1c778 for org.apache.commons.logging.impl.Log4JLogger (Caused by java.lang.NoClassDefFoundError: org/apache/log4j/Category) (Caused by org.apache.commons.logging.LogConfigurationException: No suitable Log constructor [Ljava.lang.Class;@d1c778 for org.apache.commons.logging.impl.Log4JLogger (Caused by java.lang.NoClassDefFoundError: org/apache/log4j/Category))

You simply need to grab the logj4 jar file your application uses and drop it in the jetty.home/ext directory. I don't know why this necessary when the jar file itself is deployed within the webapp's WEB-INF/lib directory but it works.

2. Debugging
I got used to Tomcat's startup scripts so obviously I looked for the Jetty equivalent of ' jpda start' but I couldn't find anything and nary a mention of it on Google or Jetty's docs.

Well it turns out that Jetty is a java application so you can simply start it's JVM with the following standard debug options and then connect your IDE to the JVM for debugging:

java -Djava.home=$JAVA_HOME -Xdebug -Xrunjdwp:transport=dt_socket, server=y, suspend=n, address=5005 -jar start.jar

Even with a 1Gb ram, the speed of my laptop is becoming unbearable. After only 2yrs, I'm having a hard time convincing myself that I should shell out the bucks and get a MacBookPro, especially considering I built myself a AMD64 workstation within those 2yrs. I guess I'll console myself and force myself to wait for the next revision of the MBP's.

*editted to include the debug settings

Friday, March 10, 2006

Do good with your idle computer

While I've always known about SETI, it simply never really caught my interest.

But this blog entry by Onno brought to my attention some other projects that might interest you.

By downloading and installing a small program on our computers, we can make use of our computer's idle processing power. Those of us who leave our computers turned on day and night are wasting alot of computer power that could be put to good use, for the benefit of science and mankind.

Visit Berkeley's site to see a list of projects that you can participate in.

For the technically challenged; by installing this program, as long as you're connected to the internet and the computer is idle (not doing anything demanding), the program will run scientific calculations using your computer and then send the results of those calculations back to Berkeley for collation. You can help further scientific research by donating those spare cpu cycles!!

Or maybe you just want to help find aliens by joining the SETI project ;)

Admit it, leaving your computer on 24/7 to download torrents isn't really that demanding on your cpu, why not help out a good cause?