Friday, 15 May 2015

What you can do to help Linux?


Let's face it today there are many people who are very enthusiastic about cutting edge technologies like GNU+Linux. However many of them have only vague ideas about how they can contribute to Linux and how they can help Linux establish a better position on the desktop market.
Well don't worry,there are many. Here are some in a top 10 list.

1) Write documentation

If you are a programmer(even not the most experienced one) the best thing you can do is to write proper documentation for your software. The reason for this is that by doing that you lay the groundwork for the rest of this list,especially for number 2. Also it does not have to be your own software. In the Linux world there are many libraries, API's, SDK's. In fact most good Linux developers are accustomed to using their actual Operating system as their development environment. However the problem is that many libraries, API's and SDK's and such are not well documented. Sometimes not even documented at all. This presents a hurdle for anyone developing third party applications who is not at least a seasoned programmer, and even they find it highly uncomfourtable. By writing documentation you are immensely helping other programmers. Don't forget to write many code examples in your documentation. Everything from hello world examples to complex algorhythms.

2)Program

Another great way to contribute to Linux is to write software for it. Just think about how nice it would be to have an application that does this and that and start writing. Or if you aren't up to writing a whole new application you can just join the developers of some other application if it is open source,or you can fork other applications as long as you credit the authors. Of course all of this in the case that the application is open source. Or you can join the developers of a Linux distribution. You know a great CLI program but want an interface for it? Why not write one yourself? Or if you feel up to it,the Linux kernel and base system developers are always looking for fresh recruits. However the main issue right now for desktop Linux is the lack of 3rd party support. So ideally you should develop 3rd party applications, and ideally provide an API from your application and its libraries.

3)Package

Pacakging is the process of transforming software from it's source code form into a more easily installable software package. The most common Linux software packages are known as .deb and .rpm.
Linux is very convenient for installing software. You just open up your software center, look around for your desired application for a bit and click install. Installing software on Almost every Linux distribution is no harder that installing software on your smartphone. Then for some software which is packaged but not on your software center, you have to use some google-fu, download the right package, double click on it and install it. However once in every while you will find some unpackaged software and to install such software, it can be a hassle. Especially for novice users. If you decide to do some packaging work by packaging some as of yet unpackaged software you will make the life of many Linux users a lot simpler. You can even go a step further and try to submit your packages to software repositories of some of the more popular Linux distributions.

4)Spread the word

Desktop Linux is still not a common household name.Most people outside of technology circles still don't even know it exists. Go out there on the internet, write blogs, communicate with people who are not Linux users. Of course,don't be annoying with it, however as soon as the topic arises or when you see an opening to start the topic, why not? Tell them how it is free(as in freedom and very often as in free beer), stable and secure. How people who invest a few minutes are able to find Linux distributions tailored for them, and how when using open source it is the computer that serves the user, not vice versa. Just remember, more users means more developers and more power users. If those developers are able to create something of value on closed platforms, just imagine what beauty could they make on an open platform like Linux.

5)Send bug reports

Some people have a preconceived notion that programmers don't want bug reports. They could not be more wrong about it. A good programmer really loves well written bug reports. Usually he will try to help even with not well written bug reports,but most of the time that is just not possible. Most Linux distributions have implemented bug report systems that do most of the work for you. In a well written bug report you provide detailed information about your hardware, the software you are using, the operating system you are using it on and detailed steps on what you did that triggered the bug. This allows the developer to reproduce the bug and subsequently fix it. And by sending bug reports you may accidentally even find out that the bug was already fixed or a workaround for it exists if many people already encountered the same bug as you did.

6)Donate

Most open source software is given to the user for free(as in free beer).However developers also need food. And there are usually other costs, like server upkeep. Although open source developers have other options for income(like ads or selling support for their software), donations can help greatly as well. And if you want a developer to support a certain device, you can even donate that device.

7)Translate

Even if English is the most widespread language in the world.Even if English is the language of the Internet, some people are still quite uncomfourtable with using software that is not in their mother tongue. And while most Linux distributions offer translations to most of the worlds languages, most 3rd party software is not translated, and if it is the quality of the translations is debatable.

8)Write tutorials

There are many new users on Linux every year. Also often software changes, which changes the users workflow. So many users will always appreciate a well written tutorial. Remember that when writing a good tutorial it is always better to guide the user by his hand.

9)Help people use the software

Because every moment Linux gains so many new users, those users often encounter problems. It would be beneficial if you would roam the forums or various help websites for Linux and try to answer some of the many calls for help Linux users have.

10)Be part of the community

Remember that Linux is a community driven project. In fact it is often better described as a movement than as a single operating system(which it isn't,every one of the 1000's of Linux distributions is its own system). Go out there and let your voice be heard. The different people leading software projects based on Linux usually keep track of the opinion of the community. In fact the community itself is usually punishing to those who don't listen. So your opinion might change the Linux world for the better! Just go out there, roam the forums, write blog posts like these etc...

So those are only guidelines. However if you do follow them, you are probably doing the right thing. And who knows,maybe one of those open source companies notices you or a company in need of a Linux administrator notices you as well, so you finally get your Linux dream job! ;)