Tuesday, March 28, 2006

Recovering from EclipseConsternation

Dictionary.com defines consternation as a state of paralyzing dismay. Ok this has to do with fear, but I needed a "Con" word and it seemed appropriate. The number of projects and companies embedding and working with Eclipse is dizzying. Eclipse projects and plugins that do amazing things are popping up everywhere and it appears that we may be only scratching the surface.

Being on the BIRT PMC, my chief responsibility is BIRT and its adoption. It was very informative to see what some BIRT users are doing with the technology. Of particular interest is the JFire project. JFire is an Open Source ERP system focused on distributed trading. The JFire client contains a customized BIRT Perspective. This allows their users to customize report layouts and save them to the JFire server. Additionally they developed and ODA to read JDO objects, which JFire is based on. Last but not least reports are displayed in a browser or the JFire RCP application. This is a project that is definitely worth taking a look at, especially if you are in the process of embedding BIRT.

Friday, March 24, 2006

Control Your Element Names

For most people, the default element names are just fine. Typically, I write a lot of code because I am trying to show off features of the language. For me, it is easier to use standard and distinct names for all of my report elements. For example, when you add a new DataSource to your project you get the following dialog:

The name of the DataSource is "Data Source". I like all of my DataSources to start with the prefix src and then have a logical name to the DataSource, so I would name this srcClassic. So what I do is I go in and delete the word Data Source, and change it to src.

Fortunately, there is a better way. If you go to:
Windows -> Preferences -> BIRT -> Element Names
you can specify the basic name that is used for any of the BIRT report elements. This makes it easy to create a common set of prefixes to your elements.

I have changed all of my DataSource elements to start with src and all of my DataSet elements start with set. I use ssrc and sset for ScriptedDataSources and ScriptedDataSets. Once I have made this change, I get a new base name for my data sets.

When I create a new DataSrc after applying these changes to the editor, I get the following dialog.

Now my DataSet starts with a prefix of src, all I need to do to change this is add my standard name. This allows me to impose a bit better naming standards on my designs.

This is also a great place to start learning about the differences between the different types of report elements that make up a report. As you start to add prefixes to all of your report elements, you will start to see how each of these elements maps to the Report Object Model.

Scott Rosenbaum

Java and Session Objects in BIRT

One of the discussion in the BIRT In Depth tutorial was the use of java objects (pojos) and session objects within a BIRT report. To demonstrate these functions, I created two reports. The first is named java_object_integration.rptdesign and it uses the java.lang.System object to get the properties of the system and display them in the report.

The second uses a Java Event Handler to load a hashtable. The hashtable contains additional hashtables (request attributes, request parameters, session attributes, and System properties). These name value pairs are then displayed in the report design.

I have high hopes of writing this up in a more formal manner for display on the BIRT web site, but I am pretty busy right now. I have noticed a number of posts on the newsgroup asking for this information, so I am going to just put the reports are here without explanation. Hopefully someone will find this useful. If anyone is feeling ambitious and wants to write this up, please do and I will publish your contribution to the BIRT web site.

To have a look at the files download the following file: pojo_data_source.zip.

The first example of using a pojo only is fairly easy, just use the java_object_integration.rptdesign. It should run in your environment and give you a report of the System properties.

The next example is a little more complicated. The logic to build my data stream was easier to do in Java so I wanted to use Java Event Handlers. The java files that are in the zip directory will need to be in the source directory of your project, yes it needs to be java project. If you need some help you might try the documentation on Java Event handlers or you can wait until after the weekend when I update this.

Sorry for not finishing tonight, but I have not seen my family all week and there will be a rebellion if I don't attend to the important things (Sam is 2.5 and Louise is 4).

If you want to see a quick picture here is the report that uses a POJO to get the system properties:

This is a screen capture of the report that gets information from the request and session objects:

Thursday, March 23, 2006

Birds of a Feather; What a difference a year makes

One year ago, BIRT had just dropped the M1 build of the 1.0 product. At our first Birds of a Feather discussion on BIRT we had two attendees with four BIRT team members. This year, we still had four BIRT team members, but we now had 20 attendees.

Thanks to all of you that came out and shared how you are using BIRT, and what your hopes are for BIRT.

Paul Clenahan from the PMC lead the meeting with a review of the product direction and a short discussion about Bugzilla. What a difference a year makes, last year BIRT was using an internal bug tracking system and there was just a little bit of fear associated with the bad exposure that could be caused by showing all of our bugs (dirty laundry). This year, the message from the BIRT team has been very clear, if you want to get something done in BIRT you have to log it in Bugzilla.

For those of you who have not used Bugzilla, it is not just for bugs. Bugzilla is the way features, enhancements and changes to the product are tracked (yeah, we use it for bugs too). Every bug that is submitted is carefully reviewed and tracked to a resolution. We also encourage our community to discuss their requirements. The more clearly you can state what it is you would like and how you will use it, the better the chances that we can get it into the product. Use Cases, pseudo code, sequence diagrams... All of these tools help the project team to shape the product.

One other useful technique is that if you submit an enhancement and would like to see some discussion, post to the newsgroup with a link back to the bugzilla entry. You can also include either Jason or I on the cc. list and we will post about it here in BirtWorld. (jweathersby@actuate.com, scottr@innoventsolutions.com). If you do get involved in a bugzilla feature discussion, please vote and let us know how where you stand.

After discussing Bugzilla, we opened up the floor looking for examples of how people were using BIRT as well as what they thought they might use BIRT for in the future. We also asked what were the three things that people really like about BIRT and what were three things that BIRT could do better (and then we asked the participants to log their requests into Bugzilla).

Some of the themes from what people like in BIRT:
- Integration with Eclipse
- Separation of data connection from data bind (Sql etc.) logic
- Output formats
- Feature set
- Ease of use
- Tabular layout paradyne
- Pagination
- The friendly and profesional BIRT team (okay no one said that, but I know you were thinking it)

Some of the things that we could do better:
- More examples (we have a bunch of great examples from the presentations that we are going to publish).
- Better packaging in the run time engines (charts and engine) to make it easier to deploy and use, the biggest complaint was the use of the plug in architecture, which is great in Eclipse, but not so good in other apps.
- A need to improve the Script editor (we are working on this for 2.1)
- The ability to debug JavaScript code (we are looking for a contributor)
- A suggestion was to provide more focus on the use of BIRT in non Eclipse / non-web environments e.g. Swing apps.

There was a great discussion to add new charting constructs for diagram constructs. A lot of the BIRT consumers want to create reports about systems that are best visually represented by diagram objects (think sequence diagrams, flow charts, etc.) If you have an interest in this, please go out and file a Bugzilla entry and provide some use cases and examples.

We also had a great discussion about the use of JavaScript within BIRT. Everyone seemed to agree that JavaScript was the preferred language for most report developers, especially if there was the option of going to Java for more robust scripting requirements. As stated above, everyone would like to see better code assist and JavaScript debugging.

The final discussion centered around the use of EMF as a data source to BIRT reports. Bernie Bussiere has created a use case for this topic in Bugzilla at 132958. If you are intereseted in using your EMF model information to create and feed BIRT report designs go out and join the discussion.

Thanks to everyone who came out and made this such a good conference for the BIRT team.


Wednesday, March 22, 2006

A Big Thankyou

In the BIRT In Depth tutorial for EclipseCon, I was assigned the task of providing some information about extending BIRT through the extension points. Unfortunately, I did not have time to go out and build the extensions, or at least I did not have time to build the extension and get any sleep or see my family.

Fortunately I discovered two published extension examples that I was able to incorporate into my demonstration. I wanted to say thank you to two BIRT users who created and shared their extensions for BIRT.

The first extension was a simple JNDI extension of the JDBC ODA. The submission by Victor and came to us through the newsgroup. If you are interested in using JNDI as a data source you can go to http://almatybeer.narod.ru/jndids/docs.htm to have a look at his site.

The second extension was done by Shawn Qualia, this extension uses the BIRT emitter extensioin to create an XLS document from a report design. You can get more information on the XLS emitter at http://qauck.blogspot.com.

Thanks to Victor and Shawn for sharing their work with us.


Greetings from EclipseCon, wish you were here


Jason and I have been a little quiet lately as we prepared presentations for EclipseCon. I am sitting in on the third (and final) BIRT presentation at EclipseCon 2006. On Monday, Krishna Venkatraman, Jason and I all gave the first run of BIRT In Depth. We had about 45 attendees and went through a tour of all of the birt customization and extension points. We had a great response with lots of questions and great feed back.

On Wednesday Krishna started the morning presenting to a full room (150 people) showing a high level over view of BIRT capabilities, with a focus on what BIRT can do out of box. Krishna did a great job of presenting with a number of spontaneous bursts of applause.

Apparently, Krishna wet eveyone's appetite because next up was Jason Weathersby to provide a high level guide and demo of the BIRT extension points.

We will all be at the booth this afternoon.

This evening at 8:00 we are running a BIRT birds of a feather for anyone that has questions about BIRT, we have an open agenda, if you are at EclipseCon please drop by and we can talk about the use and function of BIRT.

Scott Rosenbaum

PS Jason and I will be working to take the slides, demos, and examples from the conference presentations and make those available to the entire community.

Tuesday, March 14, 2006

Eclipse BIRT Contest

In an effort to determine what cool things people are doing with BIRT and to encourage sharing within the community, the BIRT team is pleased to announce that we are now taking submissions for the Eclipse BIRT Contest.

What kind of reports are you constructing? How are you extending BIRT? How are you deploying BIRT? Here is an opportunity to showcase your wares with the possibility of winning a Sony PSP.

There are two categories of the competition. The first category is for style, which focuses on the presentation and aesthetic value of your submission. The second is for technical merit, which focuses on innovation either in report designs, APIs, extensions, or deployment.

The deadline for submissions is Friday, April 28, 2006. For details about prizes and contest details see Eclipse BIRT Contest.

Managing Unruly Newsgroups

The BIRT newsgroup has been a busy place lately. The newsgroup is averaging approximately 50 posts a day. At this rate we should reach 10,000 posts by the end of June, one year since the original release of the project.

Of course the effort to manage a newsgroup of this size is a daunting. The bigger issue is that it is very difficult to find the one nugget of information out there that will help people solve issues. It seems that the most expeditious approach is just to ask the question again.

I wonder if anyone has worked with any tools that allow better categorization and management of large newsgroups. Is there a way to assign posts to categories, short of creating a lot of sub-categories to the main group.

In particular does anyone have much experience with tagging of data? Has anyone ever used del.icio.us to manage a newsgroup? Is anyone currently managing tags to the BIRT newsgroup?

Any ideas would be great?

Wednesday, March 08, 2006

BIRT 2.1 M5 Build and the Callisto Project

The BIRT 2.1 M5 milestone build is the first installment in the 2.1 release schedule and is now available for download. BIRT 2.1 represents the BIRT component of the Callisto Simultaneous Release Project. The 2.1 release is primarily focused on adding the functionality required to match up with the other Callisto project releases. The full 2.1 project plan provides more details on BIRT 2.1.

The Callisto Simultaneous Release Project is an Eclipse project where ten of the major Eclipse projects will do a simultaneous release of their products. Callisto's goal is to eliminate uncertainty about project version numbers, and thus to allow ecosystem members to start their own integration, cross-project, and cross-product testing efforts earlier.

One new feature that is particularly interesting in the 2.1 release is the introduction of Joined Data Sets. Using this feature, BIRT developers will be able to combine simple Data Sets into an aggregate data set.