Saturday, 5 December 2009

Pentaho Reporting - Reporting heaven

A few years ago we checked out Pentaho version 2 and it was looking a pretty cool product - actually suite of products.
As things happen the real demand for a change in reporting attitude has only happened more recently. And here I am implementing Pentaho BI Server 3.5.
The more I look at this, the more I like it, if at all possible!

Pentaho has made the switch from default JBoss installation to default Tomcat.
I can understand why as Tomcat is much easier to set up basically due to less complexity.
As an out and out JBoss follower I had the fun of getting the manual installation working. Now the problem with the opensource community flavour is that you have to hunt for the documentation. No doubt the Enterprise flavour comes with it all indexed clearly in one place!

I have turned to two books to assist.

Pentaho Solutions - Roland Bouman/Jos van Dongen - Great book for an overall in-depth guide to using the Pentaho suite! Excellent installation guide. However now that I want to focus on the Reporting I find I need even more detail hence the next book I have on order:

Pentaho Reporting 3.5 for Java Developers - this one should arrive at my door tomorrow but from the glossary this will provide the detailed guide I need for using the Reporting tools. Can't wait for it to arrive.

I've also invested in the Pentaho Community Dashboard Framework (CDF) tutorial and that is looking good.
Only just started the tutorial but the CDF has much promise!

Anyway, our users are getting excited by what they see on the BI server. I better get converting some of those horrible extremely heavy Excel pivot tables!

Tuesday, 29 September 2009

JBoss PermGen errors

After trimming back the grails project to its bare bones and STILL getting the permgen error and doing a few tweaks to the JBoss 4.0.4 version JVM 1.6.0_06b,. I tried the suggestion here:

http://delta-1.blogspot.com/2008/02/javalangoutofmemoryerror-permgen-space.html

This seems to have fixed it although it's only been 5 hours or so! I'll give it a couple of days but the error was happening easily with 15mins of a server restart so it's looking a bit good.

This did not happen for the same deployment to test version of JBoss 4.2.3 but one needs to mimic the live environment exactly so one cannot be sure if the same fix needs to be applied in a live environment for JBoss 4.2.3.

Hope this helps someone, anyway.

Monday, 28 September 2009

Grails - The Essential Tool

Over the past year or so I've been following the Grails programme with just a little dabble to see what it's all about.
Just recently I had the need to produce a small data maintenance app to hook up with OpenCMS. Having been more of a back-end programmer recently I decided it was time to put Grails to use or, rather, avoid a java struts process!

Trust me, Grails is a REAL breath of fresh air ... create the domain class, generate the controller and try out the scaffolding.
Hibernate is applied immediately!

After creating a few domains and building a small webapp, it was time to evaluate the generated views.
Ok, this is fine for a smart user/techie but a real user needs both user-friendliness and validation. After a bit of research, GSP tags provide the usability and static constraints adds the validation. Nice and easy!

Testing is a doddle ... grails run-app brings up the jetty server and testing is immediate. Change the code and test immediately, no need to restart the server!

Next was to apply Spring Security ... a couple of hours later the app is running with decent login controls applied.

Within a couple of days, I had an app I could put into production!

A little research again and two plugins look to be immediately useful - the export plugin and the filter pane plugin.
The export plugin exports the data list to so many data formats - csv, excel, pdf, odi, etc, etc!
The filter pane plugin generates a filter pane to apply filter selection on the list data.
Separately they are beautiful and simple to apply but a little more work was required to get them to work together but that just might be me!

My main nightmare was running into PermGen errors on deployment of the webapp to JBoss 4.0.4. Now this app ran pretty excellently before the introduction of the plugins, mind you! Suddenly, soon after interaction with the grails webapp, the dreaded PermGen error appeared in JBoss.
And I have to kill JBoss to restart it ... the clean stop doesn't work after PermGen!

Anyway, I have to deal with those issues, after all, it is Grails 1.2-M2 I am dealing with. I also wanted to put it on Jboss 5.1.0GA but there are issues with Spring 3.0.4M
When it comes to stuff like this I do try to be on the leading edge which, as we can see, is a bit dangerous.

Now I have been a big fan of the Hibernate framework and then I heard about the Spring Framework which included the option to use Hibernate!
Now the apple in the pie is that Grails includes all this good stuff. In actual fact, when you check it out Grails includes a lot of good stuff.
Absolute-ly fan-tastic!!!

I have been living and breathing Grails these past couple of weeks and it's great.
I promised myself that this is the year to step up on production and this is most certainly one of the tools to have in my armoury!

Let me say this, if you are a java developer looking to do front-end development and you need a RAD tool e.g. your struts production isn't exactly lightning fast, then you REALLY SHOULD TAKE A LOOK AT GRAILS!!!

Some research was provided from Mannings' Grails In Action book, a subscription to GroovyMag.org and of course the well documented grails.org site.

Friday, 8 May 2009

Spring Contract First Web Services

I have no doubt in my mind that the Spring Framework is the bomb! (Something pretty special). When I was required to build a new web service I have to say that I add a bit of pain in going the "contract first" route.
Contract first means building the web service by designing the contract first i.e. the interface with the client or user ... the WSDL.
From thence, all processes are hidden from the client and more importantly most changes will remain hidden from the user i.e. the contract remains intact.

I have built a few clients and it's amazing (read 'crap') how many times I have had to update the client code after a small tweak from the suppliers of the web services.
They must be using contract last ... where the code is finally used to generate the contract and exposure to the code is not controlled or encapsulated enough.
Great for developer turn-around but costs are soon recognised in the long run.

SO invest time in contract first, it's time well worth spent!

Sunday, 8 March 2009

Data Integration ... the way ahead

A while back I spent quite some time building a java process to process multiple data feeds and add the data into a separate database.

Well, the recent weeks have been spent using a highly commendable open source tool called Pentaho Data Integration formerly Kettle.
http://kettle.pentaho.org/

This sort of rapid development tool is similar to Microsoft SSIS.
The installation comes with a wide range of sample examples of Jobs/Transitions/Mappings so that you can start to investigate what's involved and how it works.

They also have very good documentation and an extensive wiki.
http://wiki.pentaho.com/display/EAI/Latest+Pentaho+Data+Integration+(aka+Kettle)+Documentation

I have to say the developers on this project are so keen to assist (Matt Casters, thanks!) People do tend to worry about the support and backup one can get from open source - well, I had a few queries as a newbie to the tool and the response on the forum to my questions have been prompt and extremely helpful.

If you want to extract and share data in different formats this is a brilliant tool and their sister projects Pentaho BI Suite and Pentaho Reporting look most interesting.

I am hooked and see this sort of development being a valued tool to add in the armoury.