This blog is subject the DISCLAIMER below.

Monday, September 20, 2010

Book Review: JasperReports 3.6.0 Development Cookbook


Two years ago I wrote a series of quick start articles here that introduce java reports development through one of the most popular open source library JasperReports. Back then the main motivation for writing such articles was the lack of good learning materials whether blogposts, books or tutorials. I remember struggling with the documentation and digging the web looking for the best practices and avoiding the unknown limitations, it formed a drawback for using the well-known open source library for technical architects who need an assisting quick reference for decision making either to choose JasperReports or another provider according to their instant needs and also it have been a real pain for frontline developers to consider more time and effort navigating the entire web looking for a good learning reference and a professional best practices guide.

Fortunately, that is a past. Recently Bilal Siddiqui has published a new book on the topic JasperReports 3.6.0 Development Cookbook which I’ve been reviewing through the last week and found it could be useful to share my impressions.

The book consists of 9 chapters; could be divided into two parts, the first one contains three chapters covers the basics of report designing using iReport v 3.6.0 through a step-by-step guiding and a dedicated chapter for enhancing the look and feel. The second part addresses the best practices for report developing e.g. using multiple data sources, Crosstabs and graphs; and finally a chapter for wrappers and consuming external swing applications as data source.

Generally, the book is useful for the beginners either designers or developers, it provides the kick start and minimize the learning time and effort to the minimum by guiding you throughout the report designing, development, testing and integrating phases and addressing the most common problems and their solutions. However, the weak points of the book are the same reasons of its strength that it scratches the surface for a better beginner look but lacks of more advanced topics, e.g. row JRXML manipulation for more flexibility, performance best practice specially working with huge datasets and caching sub-reports, also integrating reports in web application could be useful.


.. more.

Wednesday, September 15, 2010

SQLServer : How to know the last modified table in your DB

Here is simple T-SQL tip but great to be known. It was part of my task today :). It was making auditing tables for tables created after specific date.

Select * from sys.objects where type_desc= 'USER_TABLE' ORDER BY modify_date desc

type_desc : is object type in SQL and here we wrote 'USER_TABLE' as we need tables created by user.

.. more.

Monday, September 13, 2010

Do people in non-English-speaking countries code in English?

I was reading a question with the same name on Stack-Exchange Beta site for Non-programmer-related questions (aka Programmers) when I came across this answer posted by a (probably Ukrainian) developer named Igor.

Accompanied by an earlier attempt by a colleague at work to write an enum in Arabic, I tried to write this piece of code:

Strangely enough it compiled and even ran showing the expected output (10)!! Note, the order above of the 2nd & 3rd line is mingled due to RTL issues in Gist. Visual Studio will show it in the right order (or at least, a more readable order for me, copy it & past it in your IDE to know how it looks).

Off course, I’m pretty convinced that this isn’t the best practice you should follow, (check my answer to the same question). Yet, I find this really hilarious! As a matter of fact, I took the claim that it’s bad practice too much for granted to the extent that I’ve never even tired to write such a strange piece of code :D

.. more.

Wednesday, September 08, 2010

Does Google Instant really ruin SEO?

I was just reading an article I found on twitter about how Google Instant (the new Google search enhancement to be rolled out to all users soon) will ruin Search Engine Optimization (SEO) which I find kinda wrong.

First: SEO is a way to aid (content providers to provide ways to) internet users to find their way to their content. ie, it’s a mean to an end, not an end! So if Google (or Bing, etc) added new features to enhance the user experience (UX) and personalize search results that might break SEO, SEO should find a way to adapt. Killing innovation is not an option :)

SEO is not about deceiving people to direct them to your content, whether it’s relevant or not!!

Second: & that’s the main point here: As far as I can see, Google Instant is not ruining SEO as Steve claims. Search results are still gonna be shown as the good old days, the only main difference is that you won’t have to click ENTER after typing your search words. You can get instant feedback about where your search results meet your expectations or not. So if content-providers did their SEO job right, their content will show up according to the relevance of their content to the typed keywords.

So, what do you think? correct me if you can see it in any other way..

Update:

I find this tweet by @Bashmohandes more valid though:

Google Instant is cool, but I worry about advertisers, as some of their impression budgets are used while the user didn't show enough intent

.. more.