The professional me!


technical thinking

Useful resources for Python

I started learning Python  almost 6 months ago and used many online  stuff. Thought of sharing it on my blog.

Python Programming Language- Official Web-site

You can find the Download link and documentation here.

The Python wiki:

Some other useful urls:

You can search for Python documentation here:

You can find a list of mailing lists here:

I will keep on updating this as and when I find more interesting stuff.


Filed under: General, Software

My Experience with Ubuntu

I started using Ubuntu recently. After using Windows for such a long time, it was a bit difficult to get used to Linux, as I had never ever worked on Linux before.

Why Linux?
Out of curiosity… Yes, I had heard a lot about Linux as I was surrounded by people who use only Linux. I just wanted to see what Linux is all about. At the same time one of my friend switched from Windows to Linux. We had some discussion on the issues he faced and experience with Linux and then I decided to give a try!

What I liked in Linux?

After using it for a while (just for 2 months),
1. The very first thing I liked is it’s UI. I found it too cool. : I have heard from many people complaining about Linux UI but I really liked it, may be because I used Ubuntu 10.4 Lucid Linux directly!  It has got style, easiness and very importantly they have followed very logical structure. If a user clicks on menus, he will know whether he should go there or not. For examle, if I want to use Skype then, It’s a Application-> in Internet category. It seems most logical, isn’t it?

2. It is free: The most important factor! If I want try it, I need not to pay anything, it is completely free.  I can adopt that anytime.

3. Lots of information is available on forums/ Linux community: I found the overall help on Linux issues is really wide. There are many forums,active mailing lists, solutions are available. I mean, if you are stuck somewhere then yes, you can easily find solutions, which is great. I believe, adopting Linux need some learning part which is made easy because of this widely available information.

4. Open source: Yes, I can see how it is built. I can see Kernal code. This is the biggest advantage for Embedded people, even software developers. They can really see the in and outs of Linux.

5. Terminal/ Command Prompt: You would be surprised, why Command prompt (Terminal) is a separate point? But, I really liked two things about it.
a. It keeps record of all the commands you used, till date. You can always use these commands, no need to type them all the time or by heart them.
b. Transparent: Yes, this also helped to me a lot, I always need to see which command to give as per tutorials. So either I need to adjust those two windows or if background of tutorial is White then simply could see through the command prompt.

6. Never see any problem of Virus/ No Dll issues : This is big relief. No need of anti-virus, no problems of dlls. You can really concentrate on what you are doing. If you are a Windows user, you can really feel the difference.

7. Loads fast: The system get loaded so fast that really no time requires for booting.

Things I didn’t like in Linux

1. No Installers: (Softwares/Drivers): I really miss UI based installers in Linux. It gives big relief to user. User should need to worry about the packages needed to install, repositories and all. So, the installation of any hardware/software is a bit scary specially for non-techie users. That has to be very simple.

2. Every time password is required: Actually, this is good considering security but if a user is from Windows environment then it is irritating to enter password all the time.

But, I really liked Ubuntu Linux!
As a programming perspective, it gives tremendous flexibility. There are many things available free and you can try them. Web applications, mobile applications all the frameworks are free. You can easily use them and learn a lot. The support for forums is great. You really have great scope learning it.

I will also write about Linux- programming perspective, tools available etc in coming posts!

Filed under: General, Software, ,

GUI: Graphical User Interface

There are lots of things discussed about GUI [Graphical User Interface]. May that be a windows application, web-site or web application, GUI is what user has to deal with. We have to be very careful about it. Here I am figuring out issues regarding GUI, what the Developer should think about GUI, from what I have experienced till now as a Developer as well as user.

1. First Impression: The very first screen of the application that is home page is very important. That is the start point of the user interaction. Home page should not display a bunch of complex options or flashy animations having music at the background. The first impression has to be very simple, sophisticated and something which will surely give an idea of what all the things can be done after being on this page.
Flashy animations and music is not always preferred by the user. Instead we can give a brief instruction on where to start.
Also, on this screen user should not need to search for user name & password entry, from all the new launches and schemes displayed. User must feel comfortable with this page.

2. Keep it Simple: All uses are not experts in the computer operations. The UI has to be so simple that user can easily make out what to do, without any help. For any user who has not worked much on computer should be able to operate the application based on Common Sense. It has to be that simple.
By simplicity I mean, the ease of work. User should really find it easy to work on the system. I have seen people complaining about the e-system for the reason of complexity. They find it really difficult to do the things on computer than manual system. The reason is GUI not simple. It has not been designed keeping the target users in mind. If people get something which substantially reduces their efforts (without putting any extra efforts in learning the system), they will prefer software.

3. Decency: Decent look definitely creates a good impression than gaudy colors. UI should create a smile on user’s face every time and should not put strain on the eyes, by making it difficult to read stylish font and adjusting with dark colors. It has to be very decent appearance with the ease of reading contents, nice color scheme.

4. Pattern: The pattern followed has to be continued everywhere. It is really irritating to operate if different patterns are used. Every transaction has to be related with previous.
Users hate watching changes on every visit.

5. BIG “No” for overuse of Graphics: It really doesn’t look nice when pages start bombarding the images and animation. User has not much concern about graphics. When application takes longs to load, user is unhappy. No one loves waiting.

6. The Designer and Developer mindset: The designer mindset is to make anything attractive and programmer mindset is make things work properly. But there has to be very much concern on how user will prefer to see all things present on the screen.
For example, if user has to scroll down every page, then it is irritating.

7. No pop ups: When some pops ups are compulsory displayed, user doesn’t like that. If those are advertisement then it is not advisable. Keeps adds appearing on the screen but not through pop ups. Any ways, user has no choice than blocking the pop up.

8. Usability Vs Visibility: The only important thing about any web application is how USABLE it is than how VISIBLE it is. User is very happy when GUI is simple and user friendly. If user is getting all the things needed in a simple, decent format he is happy. On the contrary, if graphics is good, but lacks usability then it is of no use.

End Note: The software is developed to make things easy and simple. So, using it has to be pretty simple not complex. To use software application basic computer knowledge and some common sense should be required, nothing else.

** All the statements made here are based on general software application interface, end user perspective. Different domains need different treatment.

Filed under: General, Software, ,

Visual Studio Setup & Deployment Project: “Unrecoverable Build Error”

After installing Visual Studio 2008, I was trying to build the setup project & I saw the error “Unrecoverable Build Error”, no information in other columns as file name, line number etc. I was wondering about the reason behind it & found following solution:
For setup & Deployment project, the error occures if mergemod.dll is not registered properly. To register the same run following command:
regsvr32 “C:\Program Files\Common Files\Microsoft Shared\MSI Tools\mergemod.dll”

Now, rebuild the project, it will work.

Filed under: .Net, Software, ,

Convert your project from .Net framework 3.5 to 2.0

When we open visual studio 2008 and create new project, .Net framework 3.5 is by default selected. Many times we really don’t require to write an application to run in .Net 3.5. So, the question arises How to convert the project from 3.5 to 2.0?

1. Go to Project Properties.
2. Compile Tab-> Advanced compile Options->Target Framework ->select 2.0
3. It will ask for the confirmation about you can not use features of .Net framework 3.5. Say Yes.
4.After doing this restart the project.

Its done.

Note: After doing this you may get some errors for namespaces you have used from 3.5 framework. just remove them from code.

Filed under: .Net, Software, ,

Taking software specifications? Tips for you

I have been personally involved in the process of taking specifications for software. I personally believe that it is very challenging and skillful task. Specification plays very important role in software development. More you have experience more you get the mastery on it.
If we get them wrong then we have to go through bulk of changes.

Following points I found useful for reference:
1. listen carefully: Listening is a skill, you must get the clear idea of what your client is talking about.The client always try to interpret that idea to you and you must catch it perfectly. If you are listening him carefully, paying full attention then you & him will always be on the same track. Otherwise he is talking about something else and you assume something else & this can cause lot of trouble later on.
Pay full attention & don’t pre assume anything.

2. No parallel thinking when you listen: We always try to relate what we are listening to some thing else. For e.g. if we are listening some idea on some software then we try to relate that with some other software of same kind which we had seen or read about. Some points can be missed if this parallel thinking is going on. We can do it later on. It can create lots of confusion and misunderstandings about the ideas.

3. Consider professional background of client: It is very important to know about the clients professional background like his field (commerce/management etc.) of working and his job profile. It helps you out with the words he is using and you will understand him better.
For example, if the person is from commerce background then you will often see that he will give all the examples in accounts. If you want to explain him your idea then you can use these kind of examples, he will understand it better and faster.

4. Ask Questions: If you think at the time of talking that some link is missing in logic, you have not understood some part then question him. It clarifies the doubts and makes better understanding of the idea. If you ask questions then you automatically get the detailed information about the subject.

5. Analyze[Input-Process-Output]: Every software has this same structure. If you get the idea of no. of inputs, what all the processes on that and what is expected output then you all done with the specification part.
Think of each process and logic in this format you will easily catch the missing links if any.

6. Verify: After you understood all the requirement part of the software, verify what you have understood with the client. It will give you and the client clear idea of what you have understood.

7. Note Key Points: When you listen always note down important points in your understandable language. It is very useful for further reference. By the time you may miss some points, that time this can surely help us out.
8.Avoid Technical Words: Most of the people you are talking with are non-technical. Do not use heavy technical words which they will not be able to understand. This creates obstacle for him and disturbs ease of communication. Use very easy and understandable language.

9. Talk with people who are involved in process: Many times the person from whom we take the specifications is not involved in the actual process. Talk with people who are in that process. they will guide you better about the practical issues at the time working. It helps a lot.
For example, if you are taking specification for Inventory System then Stocks department Head can explain you the process in a a better way & can explain real time issues as well.

10.Add your own value: Try to think on all possible solutions and all the additional ideas and suggestions which are added from your side. This will definitely add value & make client really happy.

Filed under: Software, ,

VS 2008 Error-“This project type not supported” for C# project types

I got the error when I tried to open Visual Studio 2008, saying “This project type is not supported by this installation.” It was specifically for C#.Net projects, all other types of projects were getting opened.
Following steps need to be followed to solve this problem.

1. Open Visual Studio 2008 command prompt.
2. Type: regsvr32.exe “path of IDE Folder\projectaggregator.dll”. In my case it is
regsvr32.exe “D:\VS\Common7\IDE\projectaggregator.dll”
3. Then type D:\VS\Common7\IDE\devenv /setup

It is all done. Now, close command prompt and start your Visual Studio 2008. All projects will get open.

Filed under: .Net, Software, ,

WAMP Installation for Windows XP

The post explains the WAMP installation for windows.

Download the latest WAMP server installation form


  1. Double click on the set up icon. You will see the window having buttons Run and Cancel. Click on the Run button.
  2. A small window will appear. If you have already installed any of the WAMP 1.x servers, then save your data and just uninstall it before proceeding further. And delete WAMP folder present. Otherwise click yes.
  3. screen 2

  4. You will see the welcome screen of WAMP server. Click on the next button.
  5. screen 3

  6. On the next screen Accept License agreement by selecting “I accept the agreement.”
  7. Screen 4

  8.   After that set up will ask for the destination location. Default location is “C:\wamp”. I prefer to keep it default. If you wish to change the path then give desired path. Click Next.
  9. screen 5

  10. Now, additional task window will appear. It asks for the Quick launch icon creation and desktop icon creation. I prefer not to select anything. Click next.
  11. It is ready to install now. On this screen just click install. This will install PHP, MySQL and Apache sever for you.
  12. screen 7

  13. If Firefox is installed on your machine then set will automatically detect it and will ask if you want to set it as default browser. If not hen the set up will ask for the default browser exe path that is Internet Explorer. In my case it is present at “C:\Program Files\ Internet Explorer\IExplorer.exe”, give the path on your machine and click open.
  14. screen 9

10. Now, the screen asking for SMTP settings will appear. If you are not sure then keep defaults and click next.

screen 10

11. The screen will appear saying, the installation is completed successfully. Keep the Launch Wamp Server option selected and click finish.

screen 11

12. A small icon of Wamp server will appear on the taskbar, near (where Time appears) Click on the icon and select Localhost. If the Server Configuration page appears then your installation is completed succefully.

Now, click on that icon and select option localhost. If following screen appears then your installation is successful.

screen 12

Filed under: Software

Coding is a technique!!

There are many programming languages we can use and they are really easy to learn.
These languages are just instructions to make some task work through the computer. If to make that task work is the only issue then, I believe anyone can do that by one or another way, if he/she has basic knowledge of programming language.

May that be a school/college student, fresher or professional? What makes difference is the way program is written. Efficiently is what matters.

I have listed down the most common mistakes made by new programmers. I hope these things will help to improve coding for fresher, specially.

1. First make your logic work on paper before writing actual code: Writing code is very simple if you have the clear logic in your mind. So better to write some points, flow of the program on the paper first. This will produce less bugs and saves time as well.

2. Try to find out best way to write a program: Think about the no. of lines of code, Memory required at the time of execution, time to execute the program etc.

3. We should know the architecture of the language we use: If we know how the compiler works, what is the architecture of the framework we are using; it helps to write programs in a better way and helps a lot at the time of solving bugs.

4. No need to just declare separate variables for each time we need it. We can make use of variables already declared. Every time we declare a variable increases no. of variables and makes difficult to understand the purpose of each variable taken.

5. Global declaration of Variables/objects: many times not required: We really don’t need to use global objects/ variables in most of the cases, local copy works. The scope of variables/objects really matters.

6. Comments: Many programmers do not write comments. It creates problems to understand your program. Comments make your program more readable and make logics clear. Comments are really helpful in long run, though many people think that they take time.

7. Significant names for the classes/function/ parameters we use: Significant names really help to understand what that function/class is written for. Anyone can understand the purpose of that, otherwise it may create complications and its possible that same code is written by new person if  he/she doesn’t find something significant.

Filed under: Software,

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 1,087 other followers

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 1,087 other followers

Top Rated

Me on Twitter..

Error: Twitter did not respond. Please wait a few minutes and refresh this page.