Thursday, June 26, 2014


Mr. Darcy has proposed marriage to me!

He is the last man on earth I would ever desire to marry.

Whatever shall I do?

Tuesday, June 22, 2010

Communications in Software Houses

Programmer to Team Leader:

"We can't do this proposed project. **CAN NOT**. It will involve a major
design change and no one in our team knows the design of this legacy system.
And above that, nobody in our company knows the language in which this
application has been written. So even if somebody wants to work on it, they
can't. If you ask my personal opinion, the company should never take these
type of projects."

Team Leader to Project Manager :

"This project will involve a design change. Currently, we don't have any
staff that has experience in this type of work. Also, the language is
unfamiliar to us, so we will have to arrange for some training if we take
this project. In my personal opinion, we are not ready to take on a project
of this nature."

Project Manager to 1st Level Manager :

"This project involves a design change in the system and we don't have much
experience in that area. Also, not many people in our company are
appropriately trained for it. In my personal opinion, we might be able to do
the project but we would need more time than usual to complete it."

1st Level Manager to Senior Level Manager :

"This project involves design re-engineering. We have some people who have
worked in this area and others who know the implementation language. So they
can train other people. In my personal opinion we should take this project,
but with caution."

Senior Level Manager to CEO :

"This project will demonstrate to the industry our capabilities in
remodeling the design of a complete legacy system. We have all the necessary
skills and people to execute this project successfully. Some people have
already given in house training in this area to other staff members. In my
personal opinion, we should not let this project slip by us under any
circumstances. "

CEO to Client :

"This is the type of project in which our company specializes. We have
executed many projects of the same nature for many large clients. Trust me
when I say that we are the most competent firm in the industry for doing
this kind of work. It is my personal opinion that we can execute this
project successfully and well within the given time frame.

Top ten footballers in Fifa Worldcup

10 Best Footballers in the FIFA World Cup 2010

Thursday, June 10, 2010

Parsing Excel files in Java

Hi Friends,

Recently i worked on parsing the Microsoft Excel Files in java and want to share some useful info with you.

I found two good API's for this purpose.

1. Apache POI(free)
2. Smart XLS(free for non commercial use)

Apache POI:
Its a free API made by apache. You can parse the following things
No of Physical rows, Sheets Count, Cell Values, Cell formula,Styles(not full colors),But No Chart Support. It can read both xls and xlsx formats.

Smart XLS:
It is a good API as compared to POI.It parses almost all the values and have additional chart support as well. We can get Chart basic attributes like Series Count, Series Formula, Series Names, Series Category Formula etc etc. It also support the styling of each cell.

Vajahat Ali Niazi
Lahore, Pakistan

Match Differences Between Two Strings

Hi friends,

Once i was asked to write an algorithm which matches the two strings and tell the difference between them.

In other words we have two sentences
1. Its raining cats and dogs since morning
2. Its raining monkey and dogs since morning.

than the algorithm should efficient enough to detect the difference between the two strings.
In the above example it should tell that there are two difference in the string.

i-e monkeys found at the place of cat.

In order to implement the algorithm i would recommend to use

Diff takes two texts and finds the differences. This implementation works on a character by character basis. The result of any diff may contain 'chaff', irrelevant small commonalities which complicate the output. A post-diff cleanup algorithm factors out these trivial commonalities.

Google Difference Match patch
It is an open source algorithm written in the Java, JavaScript, C++, C#, Lua and Python.
You can find it here

The Diff Match and Patch libraries offer robust algorithms to perform the operations required for synchronizing plain text.

  1. Diff:
    • Compare two blocks of plain text and efficiently return a list of differences.
    • Diff Demo
  2. Match:
    • Given a search string, find its best fuzzy match in a block of plain text. Weighted for both accuracy and location.
    • Match Demo
  3. Patch:
    • Apply a list of patches onto plain text. Use best-effort to apply patch even when the underlying text doesn't match.
    • Patch Demo

Currently available in Java, JavaScript, C++, C#, Lua and Python. Regardless of language, each library features the same API and the same functionality. All versions also have comprehensive test harnesses.

Vajahat Ali Niazi
Lahore Pakistan

Wednesday, May 19, 2010

Software Engineering Joke : Difference Between Defect and a Bug

Once Asked in an Interview, What Is the Difference Between Defect and a Bug?

Candidate: Can I Explain this with an example.

Employer: Yes

Candidate: Once a guy went to a tea shop and ordered one cup of tea and when the tea came he saw a fly in his cup.
Now this is a BUG.

Employer: Laughed and said my dear now you tell me what is a defect?

Candidate: Once a Guy went to a tea shop and ordered a tea and when a tea came he tasted and said there is less sugar in the tea.
Now this is a defect!

Employer: Laughed Hahahaha Haaa and said Can You Elaborate what you want to say?

Candidate: Yes Sir!
You can manage to drink a cup of tea with less or more sugar but you can’t drink a cup of tea with a bug.


Product can’t be delivered with a Live Bug.
Quality of the Product can be compromised with a defect.