Thursday, August 12, 2010

Hey Pentaho Community! How are you doing?

Doug Moran, Pentaho community guy, started a very interesting thread that got me to think a bit and give an unusually long reply. So long that I decided to copy it as a new blog post and get my weekly task done!


Apparently people is always asking him

How's the community going?
followed by the inevitable

I just saw a post that says Jasper has 150,000 community members, how big is Pentaho's community?

Here's my take on this:

Comparing downloads is absolutely meaningless. Specially on BI, everyone should know that numbers are only comparable when they have things in common. You mentioned Jasper compared to Pentaho cause surely it's the biggest comparison people ask you to do. But can you really compare the 2 of them? Take a look at the forum numbers:


Platform threads:
Jasper: 4k;
Pentaho: 4k

Reporting threads:

Jasper
: 18k (jasperreports) + 12k (ireports);
Pentaho: 8k

Analysis threads:
Jasper: 300;
Pentaho: 5k (forums) + 1k (mailing list)

ETL threads:
Jasper: 250;
Pentaho: 10k

Dashboard threads:
Jasper: - ;
Pentaho: 1k

Other threads:
Jasper: - ;
Pentaho: A lot


Anyone looking at this numbers can immediately tell that we have, on one side, a BI Tool and on the other a Reporting tool. Why compare different things?


Going back the the main question, I have a suggestion. Next time someone asks you "how's the community doing?", instead of answering, why don't you:


I'd say the community is doing very well, thank you, and tell them we send our best regards.

Tuesday, August 10, 2010

Better reports on dashboards

We now have an easier/better way to get reports in our dashboards without hacking with xactions. 2 components to help with this:

  • prptComponent
  • executePrptComponent
The first one isn't actually new, but a new option was added called "iframe". When set to true, behaves like the default:





When set to false, the report get's embedded smoothly into the dashboard inside the htmlObject, thanks to a special mode that Thomas Morgner implemented.





The other component is very similar to the executeXaction, but for reports. Now we don't need to create a new xaction just to launch the report. Just pointing to the .prpt will do the same.


Here's the button:




And the expected result:






ttfn!

Wednesday, August 4, 2010

Persistence options in CDF dashboards

This is something insanely useful that's been in the todo list for ages. Now, thanks to our CDI methodology (CDI as in Customer Driven Improvement, not yet another project :) ) it's there already.


The principle is simple: You access a dashboard, define a set of filters that leads you to your favorite view. Next time you access the same one (or just do a refresh) you need to start all over again? Not anymore.


Now we can easily tell CDF to remember the options set by the user. Let's take the SelectComponent example:


regionSelector =
{
name: "regionSelector",
type: "select",
parameters:[],
valuesArray:[["1","Lisbon"],["2","Dusseldorf"]],
parameter:"region",
valueAsId: false,
htmlObject: "sampleObject",
executeAtStart: true,
postChange: function(){alert("You chose: " + region);}
};


This gives you the standard, boring yet most useful select component. Now, what changes are required for the user to see the last option he selected the next time he accesses the dashboard? Marked in bold:


regionSelector =
{
name: "regionSelector",
type: "select",
parameters:[],
valuesArray:[["1","Lisbon"],["2","Dusseldorf"]],
parameter:"Dashboards.storage.region",
valueAsId: false,
htmlObject: "sampleObject",
executeAtStart: true,
postChange: function(){Dashboards.saveStorage(); alert("You chose: " + Dashboards.storage.region);}
};


And now, if the user selects Dusseldorf, this is what he'll see the next time he accesses that dashboard:




No need to say that this can be used for a lot more than simple selectors - up to your imagination.


Can this get any easier?