Tuesday, February 28, 2012

Vaadin – The Server Side Programming Model for Web Based GUI

The Vaadin framework is a server side programming model for web based GUI. It is for developers, architects who prefer to avoif programming using frameworks like jQuery, JSP, JSF. Also, output generated by Vaadin is compatible across web browsers including mobile / handheld devices.

The Vaadin framework programming is carried out in Java as kind of SWING library. The same is compiled into .classes using Java compiler. However, at runtime, the framework is available in a Jar file which has to be included in WAR file. The WAR file takes care of generating appropriate HTML / DHTML and AJAX scripts which is sent to web browser for display. So all browser compatibility issues are taken care by vaadin framework.

Also, vaadin has a plugin for Eclipse which makes development so much easier including drag-n-drop support for UI widgets.

Vaadin is open source project with very good community support including forums.
You can check out vaadin at - Vaadin Homepage

I played around with vaadin using vaadin documentation which is very exhaustive, and found it simple to use and develop.

Sunday, February 12, 2012

Cassandra database - No SQL - Non relational database

Cassandra is a apache open source project. It is a non relational - non sql database. It promises linear scalability, low latency and in built caching of data on cheap commodity hardware or cloud infrastruture. The project is hosted at - http://cassandra.apache.org/

The comcept is simple and completely different from regular RDBMS like MySQL, Oracle, etc.

Cassandra stores data in this format:
KeySpace which corresponds to a schema. This will be like one schema for one project across multiple cluster of nodes.
Column Family like a table, each keyspace can have multiple column families.
And finally column or key / value which represents the column in the column family.

Cassandra is tightly integrated with Apache Hadoop for large scale distributed parallel data processing using Java Map Reduce.

Saturday, February 11, 2012

Google Code Pro Analytix

Google Code Pro Analytix is quality management and code improvement tool for Eclipse - Java.

Provides several important features like metrics generation, automated JUnit test case generation, code coverage metrics, etc. All these features from within the IDE Eclipse. I tried few features and it worked without any problem.

Installation is simple, it works as a plugin inside Eclipse. The metrics, test case generation using JUnit / Java is simple. See screenshot below:

The plugin, documentation, usage examples are available here - http://code.google.com/javadevtools/codepro/doc/index.html

Friday, February 3, 2012

Sonar open source quality management tool

Sonar is a vast open source tool, so not possible to summarize everything.
It is a platform to manage code quality and analyse static code.
(1) Provides a dashboard for health of several java projects.
(2) Provides ability to drill down at source code level to find out quality violations on code.
(3) Provides automated code review with more than 600 coding rules.
(4) Has ability to run JUNit test cases and provide code coverage metrics.
(5) Provides several metrics for quality like Lines of Code, Cyclomatic complexity, Duplicated code, etc.
(6) Provides historic metrics on quality and gives past timeline on how quality metrics evolved.
(7) Provides out of shelf integration with Maven based Java projects.
(8) Provides out of the shelf integration with Checkstyle, PMD, Findbugs, Clover, Cobertura.
(9) One interesting feature is about applying architectural design patterns. There is a concept of separation of concerns architectural design pattern, which means that there is a clear separation of software layers in the application and violations are reported in the quality metrics.
(10) Sonar is about quality metrics and so it is important that quality parameters are understood well by Project Manager. Here’s the link to Sonar Quality Metrics listing - http://docs.codehaus.org/display/SONAR/Metric+definitions
(11) A continuous integration tool like Cruise Control has to be used to build project and register with Sonar for quality analysis. This should have frequency of daily nightly build. This will show correct metrics in Sonar.
(12) Another interesting view is – Resource Viewer. This shows each quality aspect of the Sonar for the Java Project under consideration. http://docs.codehaus.org/display/SONAR/The+resource+viewer