Eclipse RCP Tutorial with Eclipse 3.4

I was digging for some RCP development information and I've found this nice tutorial: Eclipse RCP - Tutorial with Eclipse 3.4

As for the complete RCP development documentatio, it can be found in the Eclipse documentation site.

./M6

Anti-Virus or Anti-Productivity?

On the data migration project I'm currently involved, the desktops being used belong to the peoject sponsor and therefor I do not have administration privelidges. I'm a somewhat power user but I'm not abble to install everything nor I'm abble to configure Windows nor McAfee.

The anti-virus, McAfee, consumes over 150Mb, almost as much as Windows itself, of my 1GB RAM and takes control of the processor in such a way that it's a true anti-productivity tool! Every task performed takes too much time, to many times I can see the screen being, literally, drawn line by line.

The system administrators were kind enough to reconfigure the anti-virus rules in order to skip .jar files, since almost all work is performed in Java and in Java developed applications.
This helped a bit but did not solved the problem.

Why is that the worst thing than a virus is the anti-virus?
And why is that anti-virus are, currenlty, anti-productivity tools? Anti-virus should protect the system, they should not consume a considerable part of its resources.
And finally, why is that Windows system administrartors don't know how to correctly configure these tools? The anti-virus companies default configuration also sucks.

It doesn't make sense to scan files like .jar, .java, .class, .c, .cpp, .obj, .py, .h, .csv, .ini, .xml, .js, .html, .swf, .zip, etc..
Yes, I do know that there's dangerous stuff as .vbs scripts, but scanning a local .css file? What sence does that make?
By know, Windows system administrators are saying, "ah, thoes are all just small files, it takes a couple of seconds to scan"... Well, to those I ask, "how much time is a couple of seconds times over 700 .jar Eclipse files"?
And why is that .zip files are scanned twiced? Why scan the .zip file and not the files only when, and if, they are unzipped?

Some years ago I was working for a company that configured the anti-virus in such a stupid way that it scanned everything.
My system became so slow that I've actually measured the productivity lost for the company developers.
Each developer was loosing aproximately 4 hours per week, i.e. 2 working days per month, 24 days per year. At the end of the year, the company was loosing one entire month of work per developer! Hey, stop the anti-virus and give me that moth as extra hollidays, the company productivity would be the same!
The company had 6 developers at that time, which means 6 months of productivity loss. Half an year.

I would like to know how many company CEOs, CTOs, etc. and share holders out there know how much they're loosing because the entire organization is being affected by such anti-productivity tools.

./M6

Good Design and Bad Design

I've crossed with several design web sites. There's lot of them out there, but these I found particulary interesting.

One has an article with 50 lessons about graphy design theory. It's called 50 Totally Free Lessons in Graphic Design Theory and I've learned a lot from it. If you're looking for design information, this site will certainly be helpful.

Another one is a web site that collects web pages that suck. It's called Web Pages That Suck and it states that "it give us the opportunity to learn from other people's mistakes without having to make them ourselves". I agree. It's a good example of how not to design web pages.

Finally there is an article about basics of good web design. It's called 9 Essential Principles for Good Web Design and has useful information about how to do good web design.

./M6

DbVisualizer for DB2 on iSeries

In a previous post I refered that I would be using SQuirreL SQL to access DB2 on AS/400 unless I find some limitiations.
Well, such limitation have been found. I don't know why, but the connection to AS/400 through JTOpen times out every time I run a SQL command, looks like it has a 30 seconds timeout.
I was unable to overcome this, since the driver option for that had no effect when SQuirreL SQL has no option to reconnect automatically nor to keep the session alive.
This has become extremely annoying, uncomfortable, and finally, unusable.

This forced me to search for another solution. And this time it was DbVisualizer. I've used it a couple of times before and I liked it. It's also a Java application and the JTOpen configuration was straight forward.

I'm using it and I'm loving it. The timeout problem simply does not exist. I found DbVisualizer better in many ways, specially in the user interface, witch is better designed.
As before, I'll stick with DbVisualizer, unless I find some limitations or something better comes up.

./M6

Software Development Cycle

A friend just sent me a funny link to a summary of the Software Development Cycle.
A bit later, another friend sent me the Software Life Development Cycle.
Actually, sometimes things do work like that in software development...

./M6

Merge PDF files

I've just scanned three pages and I wanted to create a single PDF combining them all.

Since the Free Cute PDF writer does not support such a functionality, I had to found something else.

After some search, I came across with PDFCreator. I've tried it and it worked fine.
It installs a PDF printer driver but has some extended functionality, like combining several prints into one PDF, several output formats and specific configuration for all output formats.

The printer monitor GUI could have a better look and feel, but the application works fine, making its looks a minor detail.

For now I'll keep Cute PDF and PDFCreator, but if PDFCreator works as I expect it will work, it's bye-bye Cute PDF and hello PDFCreator.

./M6

SQuirreL SQL for DB2 on iSeries

In the data migration project I'm currently in, the data is located on an AS/400 and I need to access it trough a DB2 connection.
The iSeries Navigator sql interface has some interesting features, like the visual query explain, but it lacks some basic features, like syntax highlight and saving properties changes.
Therefor I've decided to use something else.

I've downloaded SQuirreL SQL and installed it. SQuirreL SQL supports any JDBC connection, since it is written in Java, and during installation I've selected the JDBC for iSeries AS/400 connection.

Then I downloaded JTOpen, the OS/400 and i5/OS JDBC. The installation is quite simple, just unzip the file and update the CLASSPATH to refer the .jar file, I'm using jt400.jar driver.

When SQuirreL SQL starts, it automatically detects the JTOpen(AS/400) driver, so all I had to do was to create a database connection using that driver. I did some configurations on the connection, in particular I only load, and cache, the necessary schemas for my work.

I already had tried SQuirreL SQL with JTOpen to access AS/400 before. It was an older version and it crashed too many times to be really useful.
But this time it seems to be stable, so I'll stick with it for now, unless I find some limitations or something better comes up.

Update: some limitations have came up, and I changed to DbVisualizer.

./M6

Talend Open Studio

Since one of my professional interests is ETL/Data Migration, I'm evaluating Talend Open Studio, version 3.1 RC1, since it's an open source solution.

I've downloaded the product, installed it and when I opened it, I had to read and accept the license, and then I got a dialog box that was asking for a connection and a project. Obviously I had none of those so I tried to create one... That proved to be a not so easy task! I was not understanding what should I do, so I pressed F1 for help and... No luck... I had to figure out what the hell I was supposed to do to be able to create a project. It as not that hard to find it out, but still, the first impression was not a very positive one.
I had to register, or at least so it seemed since I had to insert my email address, and the I was able to import a Java demo project, which I did.
Then, I opened the project and, finally, I've arrived to what I was expecting to be the real first Open Studio window, the Welcome page! Talend is an RCP application, and in RCP applications, the welcome page is the first thing that the user sees, after the traditional splash screen.

Finally, on the welcome page, I got a register pop-up, where I should write my email address and state my location... I really don't get it! If registration is optional, why the hell did I had to write my email address to create a new repository and then a project on that repository?
All Open Studio does with this awkward interface is confusing its users, since it is using hiding, on a very confusing way, the Eclipse workspace and projects.
From the starting page I went to the, previously desired but inaccessible, help page from where I could watch a, also desired, kick start tutorial where the workspace and project creations were visible. Unfortunately, it was totally time dislocated, since it was now totally irrelevant.
I know I'm using a RC, but this kind of issues are not RC bugs, they are design faults!

Since I'm a technical guy, unfortunately I'm used to bad user interfaces, so I focused on the juicy stuff, its features, performance and transformations.

I started to explore the application and I got into one ugly dialog box! I haven't seen a dialog box so ugly for a long time. And it is so big that I almost felt that if I was not using an wide screen (1280x800) I would be unable to see the dialog box. The dialog box rules are also a bit confusing, for instance, I was forced to choose a week day, Monday was my choice, even after I had chosen an month day, day 1 was my choice. I wonder what will happen if the first day of the next month is not a Monday...

Talend Open Studio ugly "Add a task" dialog box.

Definitely, Open Studio interface has a long way to go before becoming really user friendly.

After that shocking moment, I continue to explore the product.

There's a business model area, where it is possible to specify very simple business diagrams. My first impression about this is that I have doubts about the real value and usefulness of this feature. I'll have to explore it more to know if it is really useful or not.
Open Studio has some simple data quality components, including a fuzzy one. Talend already has a data cleaning tool, Talend Data Quality.
It supports a variety of file formats, including Excel, XML and EBCDIC. EBCDIC in particular is extremely useful when it involves files from IBM mainframes.
There's a nice set of connections, including a connection for AS/400 and SAP.
It supports orchestration through a set of iterative and job execution components.
There's a set of SQL templates, some of them are not really that useful. There are templates what just have COMMIT; or DROP TABLE <%= __DATABASE_NAME__ %>.<%=__TABLE_NAME_TARGET__%>;.

Almost all components and processes have history, which is a very nice feature. It looks like that there's no version control implemented, just history, but that is a good first step into a control versioning.
The same applies to documentation, almost all components and processes seem to have documentation associated, this is not just an interesting feature, it's a must have on such a tool.

Since it is possible to document the components, the processes and the business rules through diagrams, I look around for a way to export the project documentation, but I was unable to find such feature.
There's an Documentation area, but it's not what I was expected. It seems to be just a file link interface, where documentation files, like spreadsheets, can be accessed from.
And there's a javadoc export functionality, which also does not do what I expected, apparently it exports Talend components documentation.
There's no really usefulness for documentation when it is not easily accessible. It's like having a jar library all documented but no javadoc to build its documentation, forcing anyone who needs to read the documentation to open the source code and read it from there. It does not make much sense.

Finally, one of the most interesting features is the real time debug. I still haven't got the opportunity to try it out, but for what I could see, that is the ETL developer best friend Open Studio feature.

I've already watched some videos of how easy ETL is with Open Studio, dragging and dropping and graphically connecting the components and all that. In the next days, I'll try it for myself.

./M6