Archives for December 2007

Professionalism: A misunderstood term

Everyday, thousands of students join engineering colleges thinking that they are going to be “Professionals” after completing around four years of course. Once I asked some students the reason behind joining computer engineering in college. One of the answers that I got was “To become professional software developer”. On the other hand, I have noticed students appearing for interviews wearing formal clothes just to show that they are professionals. Not only students, but many times, people working in software companies develop a culture where they won’t call you professional unless you are going to wear formal clothes.

I know these experiences are little funny but they clearly show how people have misunderstood the term “Professional” and “Professionalism”. Once I met one of my friends during office timings and noticed that he was trying to be too serious in his approach. At his home, he used to be pretty humorous. When I asked him about the reason behind his change of behavior, he said he needs to be serious to look professional. So what exactly is professionalism?

While at work, it’s true that you need to follow some dress code and work ethics but that doesn’t mean that being professional is only limited to acting serious and wearing formal clothes. According to an article titled ‘What is a professional programmer?’ by Sarah George, being professional is to have set of qualities like trustworthiness, teamwork, leadership, communication, constant updating of skills, an interest in minimizing risks and accountability.

I completely agree with Sarah George. However, now I have a new question in my mind. Are our professional colleges trying to develop these qualities in students or are they trying to make them pseudo professional by training them with false concepts. When I raised this question in front of related authorities, they simply said it’s the fault of students that they don’t take any interest to learn by themselves.

There are many reasons behind misunderstanding the meaning of professionalism. But it’s our responsibility to leave such misunderstandings behind and develop the qualities described by Sarah George. This will not only help us in developing our career but will also help in the progress of our nation, world and the whole human race.

Fring with Airtel GPRS

Fring is an application for mobile phones that allows you to make calls using VoIP. Yesterday I decided to try it out myself. I had mentioned in one of my post that it is possible to make free calls with fring if you have access to public Wi-Fi hotspots, but in Goa, there are no such public Wi-Fi hotspots. On the other hand, my Nokia N72 doesn’t have support for Wi-Fi networks. So I had to rely on GPRS connection.

If you refer to Fring website, it mentions that the application is compatible with Symbian from version 8 to 9.2. Thus it can work on my Nokia N72. I activated Airtel GPRS service on my handset and downloaded fring directly on my mobile from its site.

After installation, fring asked me to register as a new user. Then, I had to select one VoIP service provider from Skype, MSN Messenger, ICQ, SIP, Google Talk, Twitter, Yahoo and AIM. I have been using skype for long time to make VoIP calls so I selected Skype. After that, fring asked me to login to my skype account with skype screen name and password. That’s it!!!! Now fring was ready for use on my handset.

Fring presented me with list of contacts which were taken from my phone book and skype contact list. From here I could have called my friends who were online on Skype at that point of time. If you try to call a person from your phone book, then you will be presented with options of either Direct GSM call or SkypeOut call.

I wanted to try out fring by making a real call. So I requested my father to call me from skype. Soon, my cell started ringing and Fring showed me that the call is from my father. I was able to talk to my father normally without any problems.

But one thing I noticed is that, I was not able to hear my father’s voice instantaneously. There was a small time gap so I felt as if I’m using a walkie-talkie.

If you want to call your friends at a very cheap rate then should try out fring yourself. Hopefully in near future, just like broadband, the number of public Wi-Fi hotspots in India will increase and then people will be able to use applications like Fring with better voice quality.

3 reasons to install anti-spyware tool on your PC

Many times I have noticed that people tend to make their computers secure only by installing a good anti-virus tool and keeping it updated regularly. Most of them use free version of AVG antivirus tool thinking that it will keep their machines free from threats. But AVG product comparison page clearly shows that there is one potentially threat which is not handled by free edition of AVG antivirus. It doesn’t protect your machine from the threat of spywares.

But good news is that, you also get free version of AVG Anti-Spyware tool. But most of the people ignore this tool because they don’t know the reason behind installing such tools on their machines. Let’s look at reasons to install anti-spyware tools on your machine.

1) To protect your secret data: Spywares often attack your online privacy and security in many ways. Some spywares will look at your surfing habits and will send the data back to its creator. You won’t believe but many advertisers use this approach to study their market. On the other hand, there are spywares that will cross all limits and can even send your passwords or credit card details to its creator. Scary isn’t it?

2) To prevent your PC from becoming extremely slow: This actually happened to me once. I noticed that my PC had suddenly become extremely slow for no reason. It used to slow down even more after connecting to the net. My antivirus tool didn’t detect any threat on my machine. But when I diagnosed my PC for spywares, I was shocked to notice that it detected hundreds of threats. After removing them, my PC regained its performance. In their attempt to collect data from your machine, spywares often slow down your machine.

3) To safely use freeware tools: Everybody likes to download free software tools from the net. Most of the time, these free software tools could actually be spyware tools in disguise. I don’t say that all free software tools are spywares so don’t panic. But the fact is that, if you have installed lots of free tools on your machine, then you better diagnose your machine for spywares.

These are some of the reasons to use anti-spyware tools. Apart from use of such tools, you can also make sure that firewall is enabled on your system and your operating system is updated with all the latest security updates. Remember that prevention is always better then cure.

New adsense killer trojan

A trojan which hijacks adsense advertisement and redirect users to some other sites that may contain malicious content has been identified by BitDefender. Even though this trojan (Trojan.Qhost.WU) is not resulting in a serious threat to adsense as of now, but in future could affect the revenue of publishers as well as the number of people visiting the sites having adsense ads.

Google adsense is the post popular contextual pay-per-click advertisement program and hardly requires any special introduction. In simple words, it’s a technology that displays ads which are closely related to the content of the site or page you are currently visiting. This actually gives advantage to advertisers as well as publishers. Advertiser gets targeted traffic and publisher has more change of making money because ads are closely related to content.

Google adsense got its popularity for two reasons. First reason is its amazing technology while the second is that they try hard to maintain the quality of their ads. To do this, they has some strict rules of usage and if publisher fails in following those rules then his account is banned directly after sending few warning emails. The working of this trojan violates adsense rules so publishers needs to make sure that their sites won’t get attacked by it.

Google adsense is a wonderful service which most of the people use to monetize their sites. You can read more about this Trojan on BitDefender’s website. They have mentioned symptoms of trojan along with the instructions to remove Trojan.Qhost.QU from your machine if it exists. Just be little careful and have wonderful adsense experience.

Make free calls from your mobile phone (Even without sim card)

Imagine how nice it would have been if you could talk to your friends using your mobile without paying huge bills. Well, you can stop imagining now cause, a new mobile application called Fring is going to turn that dream into reality.

Fring uses internet connection available on your handset to make VoIP calls. This means that, in order to make free calls, you need to have free internet connection on your mobile too. Don’t worry again. This is where Wi-Fi is going to help you.

Wi-Fi allows you to connect to LAN’s without using wire. Most of the public places like airports, coffee centers or some hotels are often equipped with public Wi-Fi hotspots allowing anybody in range to connect to their local network and get access to internet. Some latest handsets are equipped with support for 3G/WiFi network which could work without sim cards. Thus, if you have access to any such public Wi-Fi network, then you can start making free calls using Fring.

Just take a look at the video that shows Fring in action.

6 things to avoid when participating in forums

Forums are one of the best mediums that we could use to find information about a topic or to get help in troubleshooting. While participating in forums, we should make sure that our participation will not hurt other participants. Factors like ego, posts written in manner that is difficult to understand and spamming could make other participants unhappy. Let’s discuss some mistakes which people do while participating in forums that could hurt other participants.

1) Long Posts: When we post a question while starting a new thread, we tend to write a lot of information. Most of the information could be totally unrelated to the problem. This can confuse other participants as they will have to struggle to find out what exactly your problem is. So don’t try to tell a story but focus on what exactly your problem is and ask that question only.

2) Too many problems in one post: This is another mistake that people do which can lead to long posts. Simply ask one question per thread.

3) Unrelated replies: Sometimes, you will see replies like “Even I’m facing the same problem” or “Excellent solution”. This kind of replies won’t add any benefit neither to the person who started that thread nor to the people who will be reading it. Don’t post replies unless you are going to provide information or solution to the question asked in the thread.

4) Ego: While participating in forums please keep your ego away and don’t insult other participants. I noticed this in one forum, where one guy had asked a question in a way which was too difficult to understand. Whenever people used to reply requesting to explain the problem properly, he used to reply back saying that he is not going to modify the question and if the person can’t understand the problem then it’s not his fault. He never attempted to ask the question properly. Finally, other participants ignored that post totally. Don’t forget that people take time to understand your problem and to solve it.

5) Ignoring the thread after solving problem: Once the problem is solved, many people ignore the thread which they had started to request a solution for the problem. Don’t do this. If your problem is solved because of the contribution made by participants, then reply back saying thanks. If you were able to solve problem yourself, then post a reply informing that the problem is already solved. But in this case also, don’t forget to say thanks.

6) Spamming: Some people start a thread that points to their website. It might be ok to have such posts in some forums but most of the people will consider it as spam. You are allowed to put link to your website in your signature. Start a thread only if you have a genuine problem.

If you could avoid these mistakes then other participants will like to participate in all your future threads. Also, it will increase your reputation in the forum. Other than these, make sure that you have understood the rules made by the forum administrator before posting or starting a new thread. Following those rules and avoiding these six mistakes will get you good results from your participation in forums.

Writing SEO articles for real people

You must be knowing the importance of unique, original and useful articles to market your products and websites. Similarly, a good keyword rich article can get you listed in search engine results. Such articles which are designed to be search engine friendly and full of keywords are known as SEO articles. But how do these articles differ from normal informative articles? In this article, we will see how to write SEO articles which people will love to read while being full of keywords. We will also see how we can benefit from SEO articles.

When someone writes an article for humans to read, he tries to make it as readable as he can while following standard grammatical rules. He makes sure that same words are not repeated again and again and there is a good flow of information throughout. But search engines don’t understand any languages like English or French as such. They determine quality of article on other factors. One such factor is the number of times related keywords appear in the particular article.

Most of the people write articles while focusing on keywords. They try to write every sentence using those keywords. At the end, this basically results in the article that people find very strange and funny to read. However, search engine thinks that its a great content. But remember that a website which people don’t like is of no use no matter how how well its ranked in search engines. So how can we write one good SEO article?

First, forget that you are going to write one SEO article. Simply write one good information rich article related to the topic of your website or product which people will like to read. Then, focus on your main keyword. Using this main keyword, find out all related keywords using keyword research tool (E.g. Google keyword tool). Go through all those keywords once and keep them in your mind. Now start reading the article which you just wrote. See if you can include some of those keywords in every sentence. Be careful to include that keyword only if it fits properly in that sentence without changing its meaning.

At the end, you will have one good article that will be full of related keywords too. Go through your article once more to ensure that your article still has proper flow of information. Make sure its free from any spelling and grammatical errors. Thats it!!! You have people friendly SEO article. Lets see the benefits of writing such articles.

If your website has lot of such keyword rich articles, then your website will have high chances of appearing in top search engine results. On the other hand, as your article is people friendly too, you can submit them to article directories. This will give you lot of back links which will improve the ranking of your site in search engines.

SEO articles are quite helpful in getting your website to appear in top search results. However, its equally important to make them more readable and people friendly. By first writing your article for people and then modifying it to include proper related keywords, you will have one good SEO article. This way, you will be able to get all the benefits of article marketing.

Releasing your software : Delivery model confusion

Software applications, once they are developed have to be released so that people can use it as per their needs. Long back, I used to think that, one day I will develop some good software and sell it. Few years later I came across GNU/Linux which introduced me to the world of open source system. Soon, I came to know the advantages of open source model and thus, changed my mind to release my “To be developed” software application as open source. I had totally made up my mind to release it as open source until I came across SaaS.

Software engineering is constantly evolving field. Every now and then, you will hear about some new programming practices, some new development or testing models and some new delivery models too. SaaS is one such new delivery model that is becoming popular with increasing growth of internet and decreasing cost of internet access.

In SaaS, your application is released as a kind of web application or web service. You don’t actually sell your application, but allow people to use it and charge them based on usage. Just like your mobile company where you are allowed make as many calls as you want and pay the bill which is calculated from the number of calls and the duration of each call you make.

So why should one release his software as service? Technically speaking, I feel that fixing bugs will become much easier as whole application exists on central server. In commercial viewpoint, you can make more money if your application is used frequently. Also to some extent, it will make software applications more platform-independent and thus people will get access to good software without worrying about its platform.

As the software industry grows, new development and delivery models will come up. The more number of delivery model means that you will need to think more to decide how to release your software application. The more you think, more confused you will get. Thus, I feel that we should stop thinking in terms of models and just focus on providing clients with solutions to his problem.

Why software projects fail?

Developing of software project is not just a task related to computer programming. Software development involves of lot planning, understanding of requirements, proper design, maintainability and of course, programming. As software planning involves so many tasks, it should be very easy to guess that software projects don’t fail just because of wrong programming, but mostly because, other tasks involved in software development are not handled properly. Recently, I got a chance to review some projects that are being developed in one educational institute in Goa. In this article, I will try to look at some faults that will eventually render these projects useless practically.

Database security: One of the projects developed inside the institute is to get the marks of students and prepare the report of failed students. The application is totally window based program developed in C# which connects to the central database. User need to start the program, login with his username as password, enter the marks for students and create report based on it. Looks like a perfect piece of software. But there is one major security loophole.

Management feels that the software is quite secure as no one can enter or change the marks unless the user logs in with his username and password. The biggest fault being overlooked here is an access to the central DBMS. The connection string required to connect to the central database is stored in a ‘application_name.exe.config’ file which is present in the same folder where application is installed. In other words, this simple text file is installed on every single client machine and any user can read it. Any student can directly login to the central database using the username and password mentioned in the connection string, and can change his marks or delete all records.

This problem could have been easily handled by creating a web service to handle the database tasks and by making the application use this web service. In this way, the connection string would have been in the ‘web.config’ file on the central server and away from any third party access.

Password storage: Care should be taken while user information is stored in the database. User sensitive information should be stored as securely as possible. This is one reason why normally people use MD5 to obtain the hashed password which is then stored in the database. MD5 is one way hash and it is not possible to obtain the original password from hash. People normally keep the same password for different accounts. For example, an user can have same password for his Gmail as well as Yahoo mail account. If the password is stored directly, an administrator having access to yahoo mail’s central database can easily obtain the password of the user and hack his gmail account.

There is another project being developed called inventory management system for the departmental stores. Here, the lead person wants the password not to be hashed but to be encrypted so that it could be retrieved back. Clearly, there is a big security loophole.

Improper use of software development concepts: Software could be programmed either in procedural way or in object oriented way. The program is being written in objected oriented language like C# doesn’t mean that program is object oriented. Program becomes object oriented when the whole program is designed using classes such that there is code reusability along with use of abstraction. Care should be taken that internal structure of class is not exposed. When software is developed in this way, it makes code more maintainable and extendable. Handling of bugs becomes much easier this way.

However, the lead person who is in charge of inventory management system wants the system to be developed neither in procedural nor in object oriented way. He wants to use something that he calls as “Hybrid” way of software development. I have never heard or seen any projects developed in this way. If someone knows, please let me know.

Software programming could be an easy task, but software development is definitely not an easy task. It needs lot of effort to design a software application and plan its development. Care must be taken while developing applications where security is going to play a key role. We should keep our mind open to learn from others mistakes and also from the approach followed by successful software developers. It takes time and hard work to develop a software application and thus, it’s the responsibility of every person involved in the project to develop it properly. Software should be designed to survive and not to fail.