Embedded Nirvana

Contributing to Open Source

Why should you contribute to opensource ?

  • Do what you like to do.

Everybody wants to work on “cool” technology and products. In reality most of you might be working on some maintenance project.

So what it is that stops you from doing cool things. You can join any opensource project and start committing code to the project. It gives you wonderful opportunity to do something worthwhile on technology of your choice  and interact with the innovators and very insightful people.

  • Do the real stuff.

Richard Stallman has brilliantly summarised the GNU project in one single sentence, "Free as in thought" . His brilliance not only lies in writing the gcc compiler and allied utilities, but also in his ability to get a whole community mobilised on this project. His work is even more admirable since he did it when there was no Google and Internet was affordable only to defense research or the universities.

Lot of us write code or test, but the life cycle ends there. In most of the cases there is no interaction with the client. Opensource projects are real deal. When you get involved in some form or the other, there would feedback coming from the community and the users, which decides the course of action.

If you write code in opensource domain, there is a big community which would define the course of action and effectively making a complete product out of your idea.  This process is shapes you as a good engineer.

  • Learn from the best:

In high school we were taught human anatomy through a series of experiments on dissecting rats. Same goes for software. If you want to be a great software engineer (not just a programmer), dissecting the code would always be a great learning experience. What better way is there than to start dissecting the opensource code. Some of the opensource projects are the top ranked in their respective domains, like Linux, Apache server, Eclipse, GCC, etc. All this code is available to you for free, you can try it out, make changes, post bugs, get community support. Overall a great learning experience.

Ok ! So why should I be doing this everything for free ?

There are tons of resume which tells the employer about your contact information,  academia, programming expertise, projects you’ve worked on and other such stuff. Well the employer cannot verify any of this unless there is face to face meeting. If you have already done some work in opensource project, it speaks volumes about your skills and eventually reflects in your pay package.

Same logic applies for business or freelancers.

How to contribute to opensource then ?

Contribution to opensource need not mean that you should sit a dark room like Neo and churn out code endlessly.  You can contribute in following ways.

  1. You can try out the code the on your machine and point out what problems you faced on the mailing list. There might be some genuine problem in the code, or you might have missed some configuration setting or followed wrong process. In either cases you would be refining the code. Either the authors/ contributors would fix a bug, or a wiki would be posted in detail how to do the stuff correctly.
  2. You can add comments to the code. Let say you are scanning the hello world code and you didn't understand what -mabi=aapcs  meant. If you dig in and find out what it actually meant you can add your comments there. They would be helpful for the people who might want to build a layer on top of the code.
  3. You can post a wiki on a particular code.
  4. You can do some basic editing as a part of good programming practices  like.
    if(this == that)
    if(this == that)
    if(this == that)
    {can be made more readable likeif(this != that) return
    if(this != that) return
    if(this != that) return
  5. Fix some bugs, if you come across some interesting challenge.
  6. Make the existing code more modular, fast, effective, handsome and what not :D

Our main repository is located at https://github.com/embeddednirvana/
You don't have to be a registered member of Embedded Nirvana to play around with the code. If you have a gmail id, you can login using your openid account. Alternatively you can register with github.

You can refer to http://help.github.com/ for guidelines on how to use it.
If you have any issues regarding downloading or uploading your code, you can always put that on the mailing list.

Posted by admin

Filed under: ARTICLES Comments Off
Comments (0) Trackbacks (0)

Sorry, the comment form is closed at this time.

Trackbacks are disabled.