How to contribute to free software projects

«Beethoven was a good composer because he used new ideas combining them together with old ones. No one, not even Beethoven, could invent music from scratch. It’s the same with computing.»

Richard Matthew Stallman.

The previous sentence is attributed to a famous hacker – not cracker – from the Massachusetts Institute of Technology (better known as MIT). As well as we have the word “present” with double meaning, “free” means both “with no cost” and “free” as in what enjoys freedom, so Dr. Stallman proposed the name free software to highlight the importance of freedom on economic matters. Yes, today I am talking about free software, which encompasses open source, and although they are different, in essence both retain the same spirit: being able to be our own owners (or, if seen in a funny way, “having the upper hand”).

Why is free software necessary?

“Free Software (CONATEL Venezuela, 2019)”

As you all know, this blog is about monitoring and our powerful tool Pandora FMS. I say ours because I’ve already become entangled in the user forum of, where we write down and try to solve the doubts and/or problems of the community version.

However, most of the proprietary applications have such forums with employees paid – with our money – to assist us. That is fine and should continue to exist. The difference with free software (thinking selfishly) is that we can adapt it to our needs. In addition, we have the true possibility of directly proposing solutions to the original developers and even being recognized as authors, no matter how tiny our contribution is.

The latter comes to mind when I found out through the social network Twitter about the eight hundred and forty-third author of the famous curl software, a project that dates back to the last century and that to this day is still widely used in countless applications (Pandora FMS included). I was curious to find out what the contribution was and I was surprised: it was moving a comment to the right place. You may laugh at it, you are free to do so, that is what free software is for: freedom without debauchery. A good laugh brightens the day, encourages us and prepares us for hard tasks such as, for example, surpassing ourselves the contribution that we found funny.

Another thing to highlight is that the repository is hosted with the GitHub company, which, at the time this is written, is owned by Microsoft Corporation®, a leader in proprietary software, which I honestly consider an irony and leads us to the following point.

Git and free software

I have already talked about it in a brief story about Git, the software version control system most used today in all kinds of projects, both free and proprietary. GitHub is revolutionary because it allows you to host your repositories with free software for free, and you earn your income by hosting private repositories.

Good programmers know what to write. The best, what to rewrite (and reuse).

Eric Raymond in his book “The Cathedral and the Bazaar”

His philosophy is to make our lives as programmers easier. For example, the tutorial “Hello world” has been visited – and executed – by millions of people. It is well written in English and captures the purest essence of working with Git. Would you like to “build” your own online website to host your code? That is what GitLab is for, the closest competitor to GitHub but strongly focused on Steady Software Development.

Pandora FMS has been open source since the end of 2002, and uses everything available like the previous ones, in addition to Sourceforge, Word Press (these article that you are reading now) and a big compilation of utilities united by its own code: more than 700,000 lines, 102 contributors representing more than 212 years worth of programmer work at a cost equivalent to about 14 million US dollars. In addition, in the world of free software there are gigantic projects like Red Hat®, to name one that is listed on the US stock exchange.

12 tips for contributing to free software projects

Using free software is not more difficult, it requires matching knowledge. Those who made the effort to learn about proprietary software at the time should do so again today to learn about free software
Linus Torvalds, Author of Linux®

  1. Organize or just promote face-to-face or online seminars dealing with free software.
  2. Extend the tool to meet your needs and then share it as a new feature. Whether the community accepts or disregards it does not matter! Maybe your ego will be hurt, but you have already done your duty: you received something for “free”, you improved it (for your selfish benefit) and then you shared it. Period!
  3. Most likely, you are not a programmer… but just by using free software, finding bugs and properly reporting them, you can be very helpful. If there are many users who report the same, surely it is some important bug that no one dared to report before… or some programmer already has the solution and is waiting to publish it just after reading your report.
  4. If that was your case or if you are just happy with the free software developed, thank the team directly or tag them in the social network of your choice.
  5. Would you like to further show your gratitude? Donate. Most of the projects accept donations and if not they explicitly indicate it (for example PuTTY suggests collaborating through mirror sites).
  6. Also using social networks or forums devoted to that, if you are already an advanced user of a free software tool, you may help answer questions, clarify doubts or even publish tutorials on the matter. The golden rule remains the same: a lot of humility, a lot of patience, and a lot of respect when addressing others. “No one was born learned”
  7. Not only with the general public we can help: if at the time of reading the project documentation, we find a spelling error or something completely illogical, reporting such mistakes in the documentation text can be very helpful. Even checking features that we did not know is useful, since if we find that it does not do or is not capable of doing what the documentation indicates, we can contribute as I described in the third point.
  8. On the contrary, if the documentation is wonderfully written but it is not in your preferred language… help with the translations! I have translated articles not only from English -the most frequent-, but also from French or even sections in Chinese into Spanish. Always read the rules first before contributing: for example, the Python language is extremely rigorous in its syntax and indentation, and it is no less so for its translations!
  9. If you’re feeling really brave you can fork the code; yes, I recommend that you read the project licenses in depth. In essence we must properly and without pettiness credit each and every one of the original authors and contributors, even if it requires a lot of disk space; in 2021 we have a good amount of hardware and memory for these purposes. Also, by using Git all of that is well recorded in the history when branching.
  10. I am an older person, I never get tired of repeating it nor am I sorry to admit it: I feel good reading forums and articles to stay up to date. But I have noticed that because of social networks, and now more so with the COVID-19 pandemic, they publish video tutorials… Yes, the new generation needs “quick solutions and right at their fingertips’ reach” and the immediacy of information has never before been so close. Do you have good diction -and even some charisma- and are you an advanced user of some free software? It is relatively easy to record yourself talking about a specific topic and seven minutes is more than enough. You may even go further and set up your own PeerTube® server, which allows the first visitor to lend their computer to help broadcast your video while it enjoys it (note: this exposes your IP address to third parties and your firewall; if properly configured, it will warn you). There is even something called YouTube® that you might know.
  11. I am a lousy artistic draftsman, but when it comes to vector graphics (SVG format) and assisted design programs (CAD) I consider myself good, I have even successfully passed courses. If web design or graphic design is your thing and you are talented at it, you can contribute to improve a free software project. What’s more, many times there are sponsoring companies that donate prize money for design contests. If you are really good, you may even reach an economic benefit. Who knows?
  12. Many free software projects have test environments and need specialized hardware or equipment with specific characteristics (say, for example PowerPC processors). Donating or lending these devices, as long as they are in good condition and the project members accept and approve their use, is a good way to help. I beg you not to donate something that you are going to throw away, for that there are specialized charities.
  13. Yes, there were twelve but I add one more: share this article, not only for Pandora FMS and its community version but also for the essence of my message. I will be personally very grateful for it.