Q4 2016 Featured Community Member: Alexander Karabelnikov

Every Quarter we feature a special community member who has gone above and beyond with their contributions to the Jaspersoft community and products. Once again from the active Stack Overflow community we have Alexander Karabelnikov who at this time is the only holder of the JasperReports silver badge on Stack Overflow. We caught up with Alex over an email interview which you can find below. 

alex k badge

Interview with Alexander Karabelnikov

How did you originally start using Jaspersoft? It looks like you used it for more than one job, did you bring it along with you or was it already in the companies you moved to?

I’ve been engaged in software development for more than 15 years, and as a rule, I try to stay somewhere on top of the “cooked pie” – this is the module for building different reports.
Some time ago I used different frameworks to generate reports, such as FastReport, MS SQL Reporting Services, and Crytal Reports-based solutions. About 9-10 years ago, we had a project with Java as the base technology, and faced the need to choose an engine to build reports. Our team required a cross-platform framework to support different data sources, different output formats and ideally enabling us to use an API. Thus, I found my own "cherry for the pie"; based on R&D results, JasperReports was chosen. 
[in regards to software development] I try to stay somewhere on top of the "cooked pie"
Today it seems as if it's been ages since that moment:  I started with version 2.x and used the good old iReport Classic to build reports. Now it looks like a joke, but to be honest, I missed a lot the "iReport Classic" IDE, when it was replaced by iReport based on NetBeans. Since that moment I’ve never had a chance to regret making the choice for JasperReports. When we have new projects, including those at my new company, and it is necessary to choose a framework for report building, first of all, I estimate capabilities of JasperReports, and don’t remember any case when JasperReports had failed to implement the idea. As I can judge, JasperReports has been widely known in the Russian Federation and it is very popular, many development teams use this framework.
 

You’ve already had experience with some of the technologies like NoSQL and Continuous Integration. These are relatively new so you’ve effectively lived through a shift in architecture, tools and methodologies. Any advice for how to survive the next shift?

It is necessary to keep a close watch on IT-trends. Professional communities, vendors’ press releases, product-oriented reports, white papers, conferences, reading of blogs of acknowledged IT-leaders will allow you to be informed and to get prepared for the next shift, at least morally. New technological platforms are constantly arising, for example, Virtual Machines are being replaced by the new generation – Containers. New solutions for product monitoring are becoming available. Surveys of new products, of market leader solutions will allow you to be well “equipped” for the next shift or even a jump.
Many vendors provide Virtual Machines or Containers with ready-to-use solutions. You only have to push the START button and test the product by yourself. You should not lose such a great opportunity!

What is the most challenging problem in software architecture today?

I believe, performance is the basic challenge for modern solutions. Cloud technologies are available to us, servers are much cheaper now than were earlier, but requirements to systems are constantly increasing as well: user audience is growing, information volumes are increasing, expectations for solutions are growing (currently it is absolutely useless to have a simple text chat with a long response time). Use of asynchronous calls where possible, multithreading, memory management – these are basic tools for  performance problem solutions. E.g., such "monsters" as Twitter, even develop their own JDK in order to have the tool under their full control, and expand capabilities, including those of tuning. Everyone is trying to extract everything from every processor core, to use memory and I/O systems to their maximum effect.

requirements to systems are constantly increasing as well: user audience is growing, information volumes are increasing, expectations for solutions are growing

How did you get involved with the Stack Overflow community and how did you get to become the only holder of "JasperReports" silver badge on Stack Overflow?

I was using Stack Overflow for a long time for searching solutions to questions I had, but had no registration. And 5 years ago I got the idea to get registered on SO. The next consistent step of mine was to start helping other users. The beginning of my activities was likely to coincide with my active stage of using JasperReports under the project, and I decided to lend a helping hand in that sphere. I got deeply involved in that and since that time I’ve been trying to render help within the JasperReports tag: sometimes these are questions-replies, sometimes comments on some questions. In cooperation with the other community members, e.g. with Petter Friberg and Dave Jarvis, I am trying to maintain some sort of order in the branch, edit requests, retarget questions, etc. Unfortunately, I do not know the names of all my colleagues. I suspect that several nicknames stand for Jaspersoft engineers. It is very pleasant for me to read answers by Teodor Danciu.

Any advice for users of JasperReports/ Jaspersoft Studio?

The most important piece of advice for beginners: If you’ve decided to make a really good-quality product and if it is important for you to possess a powerful tool, do not be too lazy to invest your time to studying templates and documents related to the framework. JasperReports Ultimate Guide can be your excellent guide. When you’ve tried several templates and have got a rough idea of how it works, it is much easier for you to get help from the community for solving your tasks or problems.  
And finally a few general pieces of advice:
try to make your activities with JasperReports as comfortable as possible, try to reduce time for testing generated results with help of different tools. E.g., an excellent way to optimize activities on report compilation is to use the Maven plugin 'org.codehaus.mojo:jasperreports-maven-plugin' by Alex Nederlof (link how to use it: http://stackoverflow.com/documentation/jasper-reports/4943/compile-jasperreports-jrxml-to-jasper/19395/with-apache-maven). 
use unit tests for testing and checking of reports. 
a sign of "good manners" is the usage of external styles for reports, that will allow you to change the report design rather smoothly. 
do not be afraid to debug projects using the JasperReports source code. That will allow you to understand how the framework works inside and will definitely help you generate better reports. Take advantage of the open source products!
use version control systems while working with complicated projects, sometimes it is so easy to lose your work. You can easily roll back to the release where "the report title looked better".
share your experience with others!
 

Thank you Alex for all your contributions and this insightful interview!

 
Feedback
randomness