Reporting with Java

It’s so frustating when it comes to reporting and you are a Java programmer. I love Java, I love the whole comunity around it, I love the big bunch of frameworks that are around there, I love all the open and free stuff that you can use and cotribute to, but when it comes to reporting, buhhh, it makes me want to cry.
As a programmer I don’t like much to design things, it is not my work and it is not what I studied for, but with a regularity that should not be that high, I have to dive in the waters of designing, specially reports. It is obvius that enterprise applications require reports, charts, graphics, it is one of the roles of the system and it is pretty exiting to imagine queries and relations to get reports going. But translating the columns that are in a simple format in your sql editor or your bean to a fancy html, xls, pdf or any other format is really a pain to me, and I thing to the vast majority of programmers, but it is certainly a task we must do. It would be so easier if we could have the right tool to do this. Is in this little things is where I really envy all the people that work with Delphi or M$ Access (somebody will be laughing when reading this). But it is true, since I have been developing systems in Java this has been one of the major things that anoyed me. There is simply no decent reporting engine for java.
Shure, a lot of people will reply about Jasperreports and iReport, and I know, they are very good and these two friends are the ones that I use and have saved my eyes a lot of times. But I really think they are not enough. First they are not really easy to work with, or at least I believe so. Second the framework has a problem with some html reports, so a lot of times I have had to convince clients that PDF is a better format for reports, which is not really a reason.
There are tons of non free reporting engines out there that could help, but I haven’t tried many of them because of the stupid licence they have and above all the stupid high price. I won’t pay $2000 for an application that as whole costs that. CrystalReports? The same answer. Ok, I’m not asking for something free, but at least something reasonible. A company with this in mind can create a good reporting engine and sell it for, I don’t know $100. It has not to be an all featured thing, with the basic things easy to perform a lot of guys like me would be gladly to buy it, although I still have the hope for open source cominity to come up with something.
I don’t know, I think that this should be an easy and automatic task. I know that there fancy things and details that should be always taken in account, but generally reports should be a simple things to do. I have used some frameworks like xxx and yyy that let you design everything in Excel and then just fill the needed fields.
I really have a lot of hope in the future developing of iReport and JasperReports, really. I believe that a great advance would be that iReport would open a page or something to post templates. The few templates that are right now available are nice, and help to save a lot of time.Also I think birt, the Eclipse based proposal will be pretty usable in a short term. But for now we are far away from designing report as easy as you can design them in Access.

Among all the things I do in my daily life at work the thing I hate the most is to build and design reports. As a programmer I am not good at design and I really don’t like it. I have always believed, and books have taught me, that this should be a designers job. But life is not that easy and very often the task of building reports relies on us, the programmers. Reports are an integral part of any enterprise system, and there is always need for fancy and new reports.
Some coleagues doesn’t have this rage against building report, but deinetly must do. And if you are a Java programmer the thing becomes worse: therw is simply no right tool to build reports in an easy and quick way. It is really frustrating. Java is much more than a programming language, and as a whole it has so many valuable things to offer: a great programming language, huge community, tons of frameworks, plenty of free and relieable libraries, stability, multiplatform just to mention a few. But when it comes to reporting it has a lot to learn from other platforms. Although someone will laugh when reading this, I really envy those people that work with M$ Access, .Net or Delphi, for them is to easy to build in a couple of minutes a good looking and simple report.
There are a few things that a reporting tool should have to be called good.

*It has to be easy to use. Again, we programmers do not like this kind of tasks and we look for simple and working solutions. We preffer to invest our times preparing an elegant query for a difficult report, but we hate to translate the result we see in our sql editor to a good looking format like PDF, XLS, HTML…
*It has to optimize the more often used case. Templates, templates, easy templates. Those tools for other platforms are so great because they have a lot of templates, simple ones that can be used in any cases. I think the kery relies in templates. With a lot of templates I would be happy with almost every tool.
*It interfases have to be easy to implement. There should not be work wasted trying to fill any report. What we want from a reporting tool is not any logic, it is simply presentation. We want our brute data transformed into a fancy format, that’s all. The calculations the joining of the data and everything that has to do with the data is our job and we love it. We just want to present our data in a nice, good looking way.
*Smart drag and drop. We wouldn’t complaint much about doing reports if it would be an easy task. But we get pretty annoyed when we try to put a field value and it’s name in a simple row and we see that they are not aligned and we spend a lot of bits of time trying to align them. And one aligned, we will never move them!
*Wizards. I know, some of us think that wizards are not for good programmers, but I’d like to create reports using a simple wizard filled with a lot of templates. Imagine, build a simple report in five minutes.
*Many output formats. I want my reports ready to be converted into PDF or XLS files without much effort.
*Good documentation. As we have learn good documentation is key for any good application. If the reporting solution has a lot feautres it has to show them to the programmer and show him/her how to use them.

This is the point where more than one will be thinking, “hey, have you tried JasperReports? and iReport?” and my answer is yes. I have used iReport and JaspertReport. As a matter of fact it is what I use when I need to design reports. And let me say that both are great products and is amazing what you can do with both, I really congratulate the teams behind both projects. What I’m saying is that their features and easy of use are not enough (yet?). Building reports with Java is still a tough task and should not be. I have done complex reports and I’m thankful that JasperReports and iReport exists, because without them I would have had a bad time finishing those reports, but for the majority of simple reports that I have to design, they annoye me. Another big problem is that it is hard to export reports to HTML. To me this is the biggest drawback of JasperReports. I have had to convince some clients to use PDF instead of HTML and sometimes it was hard to me to convince them that PDF was a better solution, when the reality was that I had my reports already designed and they where not ready to be exported to HMTL. Another *** is the documentation. I think that I has grown, but when I started using jasperReports documentation was really a pain because there were no real documentation. If you wanted to learn to use the tool you had to browse in a lot of forums and mailing list to solve each one of you troubles. In some cases you just wanted to know how to do a little thing that you know had to exist, but you really din’t have idea how to code it. We need simple and clear documentation, it can be a plain txt.

I will not talk about any other reporting tools, because these two are the most widely used in the Java arena, and when we speak about open source, commonly the most used is the best. I have tried a little of Birt, the Eclipse based porposal and I think it has future. If you google a little about this topic you fill find a lot of Java based reporting solutions. I have tried some of them but the licence schema and pricing are really stupid. Usually the licence is based in the cpu’s running the engine, and I don’t want to pay $2000 just to show four or five reports. CrystalReports have the same problem: it is a really rich reporting solution but far too expensive for most applications. Ok, I’m not asking for something free, but at least something reasonible. A company with this in mind can create a good reporting engine and sell it for, I don’t know $100. It has not to be an all featured thing, with the basic things easy to perform a lot of guys like me would be gladly to buy it, although I still have the hope for open source comunity to come up with something.
I really have a lot of hope in the future developing of iReport and JasperReports. I believe that a great advance would be that iReport to give out more templates. The few templates that are right now available are nice, and help to save a lot of time, but cretainly there is the need for more. All I want and is a simple tool to build simple reports in and easy way and in short time, just as Access does.

Un poco de nada

Tantas cosas estuve pensando anoche, más bien durante todo el día. Aunque no he escrito mayor cosa en el blog, he escrito un montón en mi máquina. Muchas ideas, muchos proyectos. Vamos avanzando. Ya una semana más y se acaba la U, y un poquito más y ya tengo vacaciones. Todavía no sé que hacer para año nuevo y para vacaciones. Me llama la atención hacer un viaje a lo mochilero por Guate, o irme a Utila, Nicaragua, no sé, aunque ya me tendré que ir decidiendo. Igual tengo que empezar a buscar aleros, pero sino igual me voy solo.

Uno de los temas que más me invadieron ayer fue ese de la soledad. Las últimas semanas he estado disfrutando de esa soledad tan sana y tan deliciosa que a veces se siente. Creo que esta es la época de mi vida en la que debo de estar solo, ya vendrán las épocas en las que no, pero una fuerza interna en mí me llama a la soledad. No sé si soledad es la palabra, tal vez es más algo como “solitariedad”, porque desde otro punto de vista, esta ha sido la época en la que menos solo he estado, aunque por ratos me sentí muy solo. Es algo difícil de definir. Siempre me he considerado un poco solitario, pero eso no quiere decir para nada aislado. Bueno, esa ya son cosas que con un trago en la mesa y una persona inteligente me gusta ponerme a discutir….

Un poco pensativo

Hoy es de esos días en los que me pongo filosófico, y donde me gusta reflexionar un poco. Los últimos días en mi vida han sido de intensa actividad, emocional y mental, y viene bien parar un instante para meditar un poco en esas cosas que han estado pasando. Mi idealismo de siempre ha venido de vuelta, me he topado con un par de personitas del tipo que me recuerdan la obligación que tenemos en el mundo, la obligación de ser feliz y hacer felices a otros. Y sí, es una obligación, o al menos siempre lo he creído así. A veces me siento que habemos un pequeño grupo de personas (que por suerte no es tan pequeño como pareciera) que no sólo nos damos cuenta que las cosas tienen que cambiar, sino que estamos consientes de que nosotros tenemos que ser un agente de cambio. Como decía Facundo Cabral en uno de sus diálogos, “el mundo que aún con tanto suicida, con tanto homicida, sigue siendo un paraíso”. No hay nada como estar vivo, y es esa tal vez la felicidad más grande de todas.
Read more Un poco pensativo

Acatenango, sin palabras…

Bien dicen que son muchos los llamados pero pocos los escogidos. Luego de un par de semanas buscando quién se apuntara para escalar el Acatenango, escuchado algunos sí y algunos no, finalmente quedamos dos. Con muchas ganas pero dos. Por suerte el plan B de Nicole estuvo ahí y nos fuimos con la gente de Big Mountain, cosa que paró siendo una muy buena idea.
Read more Acatenango, sin palabras…

One year since I left Windows behind…Ubuntu

 One year ago I was definitely a Linux user. Almost all of my work was done with Linux running on my machine. But every once in a while I needed to use some apps that only ran in Windows, so I always kept a Windows installation ready to be used. One year and one month ago I needed to do a work that necessarily needed Windows to run, so I made a fresh installation. I finished that work and by the end of the month that it lasted my “fresh” Windows installation was already a mess, it took about five minutes to start up and I got desperate. I thought it was time to clean my computer and leave no Windows in it. So I started looking for the best distro out there to be installed and to be in my workstation all the time. I had been a continuous user of different distros, but Fedora was almost always my choice. I had my time with Debian, Mandrake, Slack, RedHat, Gentoo and Suse. All of those distros where the base of my workstation for different periods.
    I tried a lot of the new Distros that were available one year ago. I even thought to have a live distro that could serve as a workstation. And in my research I found another  installation that was called Ubuntu. It was only one CD so I never took it seriously because I like to have as much applications installed to try and to play with. But I was desperate so I installed it. Then another big job at the office needed to be done and I didn’t have time to be playing with more distros, so I started working with the distro that I had installed.   
    I remember that I loved the fact that it recognized my wireless card and my display on the fly. I always had a hard work configurating my wireless card and in many occasions I had to invert a few hours configurating the X server to have my wide screen ready to work. So I had Internet and my display was fine, everything I needed to start working. I have been always a Gnome boy, so it was no problem for me that the distro didn’t have KDE.
    One year ago I was working on that distro that was going to serve me meanwhile I found a decent distro, and I was almost sure that at the end of December I would have Fedora running on my processor. And surprisingly since one year ago I have only formatted my OS partition to install a new OS, and that was when the new distro of Ubuntu came up.
    Ubuntu simply made me fall in love for it. “Humanity for others”, Debian based, great application set, great and active community, and among everything else great package management. Out of the many things that made me keep Ubuntu, Synaptic package manager was without doubt the most important factor that kept me tied to it.
    Although it was just a single installation CD, I could have any application that I would like by just clicking a couple of buttons and a little of research. It was to good to be true, but it was. The initial installation was about 1GB and right now I have about 5GB of my hard drive filled with great applications, upgradeable application and pretty easy uninstallable application. The stuff that sometimes make scream about Linux was gone. My primary language is Spanish, and until now I haven’t had any trouble configurating my keyboard or my apps to display well all the special characters I need.
    What about my fear of loosing contact with the outside world? Well all solved! Almost all of my work is Java based, so I can easily develop in my Linux platform and deploy in any other platform. Another issue to me was the compatibility of the documents I wrote and the documents I received. Certainly OpenOffice did the work in a great manner, but it still had it’s flaws. MAnd suddenly the first betas of OpenOffice appeared and the problem was almost solved. Until now I haven’t had any big problem saving or loading Office documents. I have taken the habit of sending everything in PDF and nobody ever complained. Even I have convinced some people to use OpenOffice and a lot of the kept it. They didn’t even knew it existed, but now they are happy to use it and many are really surprised that it is free.   
    I’m not a gamer so I haven’t had a lot of trouble in that arena. Now I have a little program called Windows that sometimes run in my machine emulated by another great piece of software called qemu. I don’t use it that much, primarily for investigation purposes but if someday I need it…it is in my computer too. I have had some problems with Project documents, but people have learned to send me all of them in an HTML format, and even everybody else have liked this method.
    I can really say that my one year without double booting has been great. I’m know in a full free world, I have forgotten all that situations where I was afraid about opening a new email, every concern about virus is virtually gone, and above all I have the tranquility of have great software working for me and contributing to a community that is really enviable in any sense of the world. If you are, like I was, in the indecision of diving completely in the Linux world, I really urge you to do it. The beginning will be a little hard but after a little while you’ll love it and won’t want to change it again.

It starts today….

Yes. It starts today.
Yes, it starts today. Right now the referee just whistled, the road just started,
the plane started taking off, the light is now illuminating the vulcano. The time for strategy,
the time for planning, the time for thinking is over. All the strategies, ideas, feelings that
grew up inside of me in the last months have now to become a reality. It is time for the fight.
The big one. A lot of effort is in front of me. I have to build now the bridge between dreams
and reality. It is time to become something more.
Read more It starts today….