Posted by Vikas Hazrati on Thursday, December 25, 2008
Of late there has been a lot of interest in the Cloud owing to the promise of
- Cost Saving
- Scalability
- Availability
- Flexibility – On Demand capacity
Further, reports suggest that spending on IT Cloud services would reach $42 Billion by 2012 and in another year i.e. by 2013 a quarter of the IT spending growth goes to cloud based services. So in 3 years from now we would see a gradual explosion in the Cloud based services and a lot of it would go to the Cloud Storage.

Again, for Cloud storage cost is being touted as the biggest factor. This is because there would be a lot of saving in physical infrastructure, managing and monitoring. However, the critical factor apart from cost is the type of data being stored on the cloud.
Read the rest of this entry »
Posted in Architecture | Leave a Comment »
Posted by Vikas Hazrati on Sunday, December 14, 2008
Installing Apache HTTP server involves compiling and installing the server. For steps to to compile and install the server follow the instructions.
There could be a scenario where once you execute the command
apachectl -k start
you get something like this
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
The reason is that the command needs to be executed by the root and for Ubuntu the following command would do the trick
sudo ./apachectl -k start
once done hit the http://localhost/ to see something like It Works!
Posted in linux | 2 Comments »
Posted by Vikas Hazrati on Wednesday, December 10, 2008
The CMS space is dominated by PHP solutions. Coming from a Java background I would have been happy to work with a CMS solution like OpenCMS or Magnolia but then, as you would have heard, wearing the Architect’s hat you have to be technology agnostic. Or, may be putting it is a better way less biased towards the technology that you like.
So I have worked on some commercial CMS solutions like Documentum and Weblogic CMS but obviously this time around I am not looking to pay for a solution. What are the solutions that we have in the open source space? We have a site called OpenSourceCMS that allows you to try out a demo of the potential candidates and then make up your mind. It has a wide variety of CMS solutions and you pick the one that you need. It also has a list which compares the CMS solution based on user rating.
So from here you can get some idea on what CMS are doing well as per the users. Taking the number fo hits, counts and user rating I narrowed down to 2 possible candidates Drupal and Joomla.
Next, I viewed the demos for the two at OpenSourceCM,
Read the rest of this entry »
Posted in Architecture, CMS | 6 Comments »
Posted by Vikas Hazrati on Tuesday, December 9, 2008
Code Review is considered to be the activity of verifying source code and rectifying mistakes in order to improve the quality of the code. Many times code review is associated with the painful process of painstakingly verifying code line by line and talk about a lot of mundane stuff. As a result of this many times code review becomes a mere eye wash when it is done manually.
Hence, came the tools like Checkstyle and PMD and many more both in the arena of open source and commercial softwares which helps the team write better code and check that automatically. Most of these tools have IDE integrations so that the code which is churned out is corrected at the source. Even if the developer wishes to check in code with checkstyle errors then there could be a gate just before the check-in process using pre-commit and post-commit handlers of version control systems like SVN and CVS.
{Sidenote – SVN allows atomic checkins hence this check can be easily applied there however CVS does not provide atomic check-in hence the pre-commit check is a little dangerous there.}
Anyway, back to main discussion
Automated code reviews can take care of mundane checks like code formatting etc. they can in general provide the following level of checks (from PMD)
- Possible bugs – empty try/catch/finally/switch statements
- Dead code – unused local variables, parameters and private methods
- Suboptimal code – wasteful String/StringBuffer usage
- Overcomplicated expressions – unnecessary if statements, for loops that could be while loops
- Duplicate code – copied/pasted code means copied/pasted bugs
So, in a nutshell the code reviewer would be absolved of the trouble of going through the above checks. However, if you notice then there are many things which would still need to be covered depending on the enterprise standards.
For example, one would have to manually check for details like
Read the rest of this entry »
Posted in Agile, Architecture, Article, Better Software, Quality | 4 Comments »
Posted by Vikas Hazrati on Friday, December 5, 2008
Change control is a traditional project management process for managing change. In a traditional project change control typically consists of filling out a detailed change request form which includes attributes like detail of change, impact to the project, risks, mitigations etc. It also needs approval of several people. Traditional change control is at odds with Agile because it conflicts with the principle of “Responding to change over following a plan”. Responding to change becomes difficult when there are huge forms to fill and list of approvals required.
So is there a reason to track changes? If there is a valid reason how do we track changes?
Read rest of my post on InfoQ here.
Posted in Agile | 1 Comment »
Posted by Vikas Hazrati on Wednesday, December 3, 2008
I was planning to start a small hobby project last week. I did not want to build the infrastructure ground up so the best thing was to look at quick enabler tools which would get me started in a jiffy.
I have had a reasonably successful project delivered with Appfuse so this time I thought let me try out something else. That led me to get to 2 other enablers.
RIFE and Able
So this is where I am
Goal: Getting started quickly and getting the infrastructure up so that i can code the business logic.
RIFE: Rife can be thought of as a development library. It can be thought of as a web application API to implement most of the features that common web apps have.
Look at the stack and you would get most of the things that you would desire

It has Ioc, JDBC Abstraction, support for web services, scheduler, mail queue, out of container testing, authentication, persistence layer etc. etc.
Read the rest of this entry »
Posted in Architecture, Java | 4 Comments »