The concept of open source isn't new; in fact, it can be traced back to the early 1900s when the Motor Vehicle Manufacturers Association was formed. It was clear that different individuals or companies holding patents for various innovations were holding back the automobile industry as a whole. The MVMA promoted the cross-licensing of patents between its members without exchange of money.
Since then there have been many instances of open software projects, most notably the development of the network protocols leading to ARPANET, the predecessor of the Internet. ARPANET provided the platform for collaboration between various government and academic institutions which further made it possible to freely share software code. IBM was the first company to distribute source code for programs and operating systems through a user group called SHARE, which is still in existence today.
The term open source was created in 1998 as a result of Netscape releasing the source code for its Navigator Web browser. Since that time there have been countless open source projects providing quality free software alternatives to expensive commercial operating systems and applications. Some of those projects include the Linux operating system, Firefox, OpenOffice.org, Apache, My SQL and hundreds of other useful programs written for Windows, Linux and Mac operating systems.
Chances are you are already familiar with, and probably using open source software in your personal or business life, but do you know the official definition?
Opensource.org defines open source software as having: free redistribution, source code, derived works, integrity of the author's source code, no discrimination against persons or groups, no discrimination against fields of endeavor, distribution of license, license must not be specific to a product, license must not restrict other software and license must be technology-neutral.
Can I write my own programs?
Yes, while coding a large software project is out of the core competency of most station engineers, there are some great development tools that can make the job easier. This may be particularly useful if, for example, you are asked about writing an application for a smartphone. The tools are somewhat limited for the iPhone, although Apple has recently decided to open the iPhone app community to more developers. The Android operating system is open source and freely available to developers. In fact, Motorola will provide (free) an excellent and easy-to-use code development environment called MotoDevwhich makes developing apps for Droid phones easy.
Programming languages such as PHP and Java are also open source projects. These languages are extremely useful for everything from making interactive websites to controlling devices and pretty much any other application you can think of. There are also numerous code development tools (also open source) that can be found with a simple search on the Web.
One of the real useful aspects of open source software is that you have complete access to the source code, which means you can also, if you have the proper knowledge, modify the program for your unique needs. It also means that the source code could be compiled to run on different operating systems.
If you decide to develop a new program or modify an existing project, for distribution to the public, there are rules that need to be followed.
Developing open source software
If you decide to write open source software, you will need to comply with the following requirements (from opensorce.org).
- No intentional secrets: The standard must not withhold any detail necessary for interoperable implementation. As flaws are inevitable, the standard must define a process for fixing flaws identified during implementation and interoperability testing and to incorporate said changes into a revised version or superseding version of the standard to be released under terms that do not violate the OSR.
- Availability: The standard must be freely and publicly available (e.g., from a stable website) under royalty-free terms at reasonable and non-discriminatory cost.
- Patents: All patents essential to implementation of the standard must: be licensed under royalty-free terms for unrestricted use, or be covered by a promise of non-assertion when practiced by open source software.
- No agreements: There must not be any requirement for execution of a license agreement, NDA, grant, click-through, or any other form of paperwork to deploy conforming implementations of the standard.
- No OSR-incompatible dependencies: Implementation of the standard must not require any other technology that fails to meet the criteria of this requirement.With so much importance being place on a broadcaster to maintain a connection with its audience on the Internet and mobile device, this is one skill you should develop and add to your resume. It's never been easier to learn and write useful programs that make your day-to-day life easier, more productive and increase your value as an employee.McNamara is president of Applied Wireless, Cape Coral, FL.