Free Open Source

What is open source

In as few words as possible, open source is software where the source code is freely available to the public. Depending on the license, the public are able to modify the source code and provide the modified version back to the community so that others can benefit. Modifications can include anything from bug fixes, to enhancements, to a complete rewrite of the program.

It's important to note here that open source does not mean that the software is free. Most open source software are free, however, certain projects run by large commercial organisations may license the software for commercial use. Others provide a non-community version usually called the Enterprise version for a fee which is usually much lower cost than proprietary versions of similar software. Most Enterprise versions come with support, so you are not only paying for additional enhancements but you are getting commercial support for the software as well.

Even though open source software allows anyone to modify the code and use as they wish, most of the licensing terms require you to release the source code if you decide to modify and redistribute the code to your customers. Some licensing terms prohibit you from charging for the redistribution of the software while others have no limitation whatsoever. For more information about open source and the common license models, you can visit the open source web site.

Why Free Open Source

There are a number of reasons why open source can be better than proprietary close-source software and protocols.

  • Integration and interoperability: protocols and interfaces are available to the public for integrating with other applications.
  • Lower business risk: you are not locked into a single vendor and because everything is transparent, you are free to migrate to another vendor.
  • Higher quality: the source code is public and is often reviewed by a large number of companies and individuals.
  • Better security: security patches are developed and released far quicker than closed source as researchers can patch the software themselves.
  • No up-front costs: there is usually a free open-source software to fit almost every business need at no cost.
  • No ongoing fees: depending on the size of your company, proprietary software can cost you millions on licensing and ongoing maintenance fees.
  • Customization: because you have access to the source code, you may change the software anyway you like to better fit your business needs.
  • Faster releases: as you have access to the source code while it is being modified, you are free choose your upgrade frequency.
There are also reasons why not to use open source for SOME project, but the reason depends on whether or not a good enough solution exists. There are so many projects to choose from and if you select the wrong solution you may end up with the following problems.
  • Poor quality: the Internet is flooded with open source software, but some of them are released by individuals and can be non-functional.
  • No support: smaller projects have very few developers familiar with the source code, so if you run into a problem, you are on your own.
  • Higher TCO: poor quality software will inevitably lead to higher maintenance costs.
  • Difficult to use: some open source software is very difficult to setup, configure and use because it the developers didn't involve end users.
  • Poor documentation: documentation is usually left last so many open source projects have little or no documentation so you need to read the source.

How can we help?

Dewlock has experience implementing open source and we also make contributions to several open source projects. Don't pick the wrong open source project, contact us to help to select and implement the right open source solution. We can also help you reduce costs by migrating your existing applications from proprietary software to free open source software. Our recommendations include:

  • Application server: JBoss is without a doubt the most complete high performance application server for Java development.
  • Big Data: We recommend Cloudera distribution, HortonWorks or MapR.
  • Data mining: R, Mahout, and Weka are highly recommended. Use Mahout for Hadoop integrated projects.
  • Databases: PostgreSQL and MySQL are the leading databases in this space although some arguments are against MySQL because of commercial influence from Oracle.
  • Development: Java, Python, Javascript, C++ and Ruby. We recommend using Eclipse or Netbeans as the free IDE.
  • Email servers: We recommend dovecot with postfix, spam-assassin and AVG anti-virus integration.
  • Enterprise Search: Apache Lucene/Solr are powerful free open source projects for search.
  • NoSQL: There are several good projects here including MongoDB, PostgreSQL, HBase, Riak and Datastax to name a few.
  • Lightweight proxy: HA Proxy is a great project available for free with support for pattern matching, redirection and SSL certificates.
  • Server operating system: We recommend CentOS as the primary free open-source platform.
  • Source control: GIT is the source control product we recommend which is also used to develop the Linux kernel.
  • Web servers: Apache and NginX are the two leading open source web servers with NginX used for high performance applications.
There are many other categories and notable open source projects you can use for your business. The above list is only a subset of the projects we use for our clients.