From time to time, I make a mistake.
Let me tell you a story, a tale of how I learned to use Free Software for my clients.
Last summer, I built a used car dealer’s Website. I labored endlessly on the back-end code, turning away several other jobs in favor of my labor on my client’s inventory system. The final product was beautiful, and I was proud of it. I collected my money and continued merrily on my way. Several weeks later, I realized something that changed everything.
While browsing the Freshmeat software repository, I came across a similar collection of code that also handled an inventory system. This code was not for sale. It was Free Software licensed under the GNU General Public License (GPL). Had I chosen to use it, I would have been able to download the code and implement it with few changes. I was so upset I could have slapped myself with a mouse-pad. Using this software would have saved me effort, time, and money. I would have been able to take those jobs I turned down or relax and have fun.
But it was too late. The job was over.
Fortunately, I rarely make the same mistake twice. I decided to find out how I could use Free Software to benefit my Web design business. Here’s what I found.
Free Software: The Freedom to Code
At the time I developed the used vehicle Website, I was no stranger to Free Software, having already switched my operating system to GNU/Linux. GNU/Linux is Free Software, which means that anyone can take it, modify it, and distribute it. The ‘Free’ in Free Software refers to the freedom to do exactly that; another popular term for this type of software is "Open Source". Although Free Software’s source code is available for free, many companies distribute binary(executable) versions of this software for a small fee. Others charge fees for tech support or make money on hardware sales. As funny as it sounds, Free Software is a wonderful way to make money.
Free Software on the Server
Those who host sites can save money and hassle by using Free Software on their servers. The Apache web server has gained wide acclaim as the most-used Web server, known for its stability and security. Popular scripting languages such as Perl, PHP, and Python are also Free Software. Database servers, such as mySQL and PostgreSQL provide high-quality database solutions for most Websites’ needs. Special server software, like Zope and the ArsDigita Content System, roll the Web server, scripting language, and data-storage into one tool. These systems simplify design and make site maintenance much easier. The previous are but a small listing among the basketfulls of Free Software written for servers.
Free Software for Your Clients
Using and modifying Free Software for one’s clients is a win-win situation for those who get paid per job, have little time, or are paid to continually maintain and improve a client’s site. After all, why should anyone have to re-invent the wheel if someone else is willing to give away the blueprints for free?
Much of the Web-site-specific Free Software has been developed for a site’s back-end, but sites like Open Source Web Design (OSWD) are changing that. OSWD allows anyone to post HTML layouts for free distribution to other designers. In fact, I often use OSWD designs as the starting point for complex layouts. Other, similar sites offer freely-available DHTML scripts or Java applets.
Software licensed under the GPL or one of the other Free licenses is not just free of cost; no restrictions inhibit anyone from modifying it. Many people think that the GPL prohibits anyone from charging for derivations of GPL-ed software. This view, however, is flawed.
For example, let us say that J. Random Hacker takes project Foo(which is GPL-ed) and improves it for use in a company’s Website. This work is not considered a distribution, since it was written for one company’s use. In fact, J. Hacker does not have to make the source of FooI(Foo Improved) available under the GPL unless he starts selling copies or allows people outside of the company to download and use the finished product.
Allowing others to download one’s code helps tremendously, however. In fact, while I was writing this article I received a call from another used vehicle dealer who wanted to use my inventory system. Instead of taking the job myself, I suggested a friend of mine, who is now happily implementing my code for his new client. He will undoubtedly send any bug fixes my way, making me and my employer happy. This type of cooperation helps everyone involved. Mutual co-operation works very well and has produced the high acclaim Free Software has for quality, stability, and security.
When Not to Use Free Software
As much as my zealot self hates to say it, I admit that there are times one shouldn’t use Free Software. The problem? Deadlines. When you’re given a short time to restructure a Website written using non-Free software, your best choice is to rework the existing code. Trying to change the site’s server to Linux or rewriting the code in another language is not a good idea when you’re crunched for time. It might not be pretty, but it works.
Fortunately, I usually have the luxury of starting from the very beginning, when I can easily make room for Free Software in my designs.
Free Software can boost your business by reducing costs, saving time, and even providing free bug-fixers for your existing code. It provides stability and security to the server, often saves development time, and cuts costs by relieving you from reinventing the wheel. So do as I say, not as I do, and your business will flower, you’ll be more satisfied with your job, and you’ll make millions before you’re forty.
Jump Start Git, 2nd Edition
Visual Studio Code: End-to-End Editing and Debugging Tools for Web Developers