You are currently browsing the monthly archive for November 2008.

As I mentioned in my last post, software frameworks are so deeply embedded into our lives as software architects and software developers. So, when I was assigned the task to develop a web application to automate the tedious manual tasks for the technical support team, my first reaction to such an challenging business requirement is asking myself the question, “What framework should I use?”. If nothing comes up, I will say to myself, “Aha, my chance comes” and will happy to roll up my sleeves to build one.

I guess all enthusiastic programmers are alike. Otherwise, we won’t see so many open source frameworks out there in Sourceforge, Java-Source and Apache. People just like to write more and more frameworks and secretly (or openly) hope that one day the framework will be as popular as Struts or Spring.

In fact, writing frameworks can bring many substantial benefits to the project:

Read the rest of this entry »


Framework is everywhere in our every day life as a software architect or a software developer. Struts, Spring, Hibernate, Axis, jBPM, just to throw out a few popular names in a Java developer’s world.

We choose the right framework, we learn the framework, we adjust the framework to suit our needs, we suffer from the bad design of a framework, or, what the hell, we design our own framework! It invades our vocabulary, “What’s your MVC framework?”, “Do you use Spring or EJB?”, “Have you migrated from Toplink to Hibernate for your persistence layer yet?”. We think (and even dream) in frameworks cause they are so fundamental to our work, no matter we like or hate them.

But, why do we use framework at all? Can we live without any frameworks? What are the benefits and pitfalls? When should we use framework and when should avoid it?

We seldom stop and ask ourselves these hard and fundamental questions. Now, it’s the time.

Read the rest of this entry »

Recently, I am responsible for a project to design a web application which automates many operational tasks that are carried out manually now.

One of the challenges for this project is the dynamic nature of the user interface.

  • Based on different types of the client and the different features the client subscribes, the user interface needs to display different widgets.
  • It’s expected that the types of clients and client features will undergoing constant change in the future releases.

Read the rest of this entry »

The Chinese colleagues in my organization usually go out every Monday to have lunch in a nearby Chinese restaurant. It’s a good time to share some common concerns about the economy, the stock market or the food security in China. Topics like work or technologies seldom emerge in the lunch discussion, unless somebody start the complaint, like what happened this Monday.

One of my colleagues complained that he spent hours trying to decipher the myth that some messages failed in processing with no reason in Production environment. Eventually, he found out the deploy team rolled out a new server last weekend, which was not configured correctly. The new server, participating in a cluster, grasped some of the messages and failed them. That explained why only some messages failed while other went through successfully.

But, why did it take him so long to figure it out? Two reasons, first of all, he wasn’t aware of the environment change (roll out of new server). Second, there weren’t enough logs to show which server processed the messages. He was browsing through the logs of all the known servers trying to find traces of the failure, with no luck. If there are some central logs or database records showing which server in the cluster processed the message, the error will be obvious.

Read the rest of this entry »

November 2008
« May   Dec »

Blog Stats

  • 60,349 hits