Have you ever thought to yourself, “gee, it would be a lot of fun to learn how to write software,” but you didn’t want to shell out money for books or a development environment? Perhaps you’re just curious, or maybe you aspire to be a developer one day. Whatever your reason, thanks to open source software and free documentation, you can pick up the skills required with no cost to you (other than your time, of course.)
Where to Learn
Before you start writing code and playing with a compiler (a program that translates human-readable programs into instructions the computer can understand), you’ll first need to learn a programming language. You could spend anywhere between $30 to $70 on a book. Or, you could instead go online. Not only can you use Google to find countless tutorials for just about any programming language, you can also find sites that offer free e-book versions of published works (for an extensive collection of books in any subject, including quite a few on programming, check out http://www.e-booksdirectory.com/). For most of your programming needs, you’ll find that buying books really isn’t necessary.
As you grow in skill, you’ll find that learning by example is a powerful tool. Fortunately, with open source software, you have a plethora of real world applications, their source code layed bare for all the world to see (source code is the human-readable version of a program.) If you want to look at the implementation of a text editor, for example, you can check out the source code for projects like vim (http://www.vim.org/), nano (http://www.nano-editor.org/) or emacs (http://www.gnu.org/software/emacs/). Do you want to know how various standard library functions are implemented in C, such as QuickSort? Then check out the source code to Glibc (http://www.gnu.org/software/libc/). Are you instead more interested in systems programming? Check out the kernel source trees for Linux (http://www.kernel.org) or FreeBSD (http://www.freebsd.org). You’ll find open source software for just about any need, from web browsers to mail clients, from 3D modeling to audio and video editing solutions. Whatever you want to look at, you’ll more than likely find examples written by others that can help you learn for your own projects.
Where to Get the Software
So, you already have at least some conception of what’s involved in programming, and you want to get your hands dirty by actually writing some code yourself. At the very least, you’ll need a text editor to write your code and a compiler or interpreter to run your programs. You may also desire a more elaborate solution, such as an IDE (integrated development environment), which offers you a one-stop solution for writing code and compiling/running your programs, all from the click of your mouse.
Either way, open source once again comes to the rescue. For C, C++ and a few other languages, you have the GNU Compiler collection (http://gcc.gnu.org/). There are also various interpreted languages, such as Ruby (http://www.ruby-lang.org), Python (http://www.python.org/) or Perl (http://www.perl.org/). If you’re looking for an IDE roughly like Microsoft Visual C++ or the like, you’ll find KDevelop (http://www.kdevelop.org), Eclipse (http://www.eclipse.org/) or NetBeans (http://www.netbeans.org/), among others.
For more advanced needs, such as revision control (a means of tracking changes in software), you have applications like Subversion (http://subversion.tigris.org/), Mercurial (http://www.selenic.com/mercurial/) and Git (http://www.git-scm.org/).
There are many more applications for a variety of needs, so whatever you’re looking for, give Google a spin.
It is possible to learn how to develop software without breaking the bank. With free documentation and open source software, you have all the tools you need to learn as little or as much as you want. Here at eRacks, we understand the needs of the developer, and can provide you with a machine pre-loaded with all the software you need to write professional programs. Contact us, and ask for a quote today!
james June 1st, 2009
You may or may not have heard of revision control systems such as Subversion (http://subversion.tigris.org/), Mercurial (www.selenic.com/mercurial) or Git (git-scm.com/). Usually, these applications are used to keep track of revisions in software projects. Each time you change the source code of a project, you check it into your revision control system so that you can browse back and forth through various versions. Revision control systems have many standard features that are very useful, including the ability to display only the differences between two versions of a project.
Revision control is generally associated with software development, but in actuality, its uses extend far beyond. Anything you work on can be checked into a revision control system. For example, at home, I check the stories I write into Subversion so that I can track the changes I make and go back to a previous version if necessary. Even binary files, such as word documents, images, etc. can be tracked this way. If it’s something that you change regularly and if the changes don’t result in very many differences to the structure of its associated files, there’s no reason you shouldn’t check it in.
Since revision control is still primarily associated with software development, there will inevitably be a significant learning curve. However, googling for graphical front ends to projects like Subversion will bring up some results. While it doesn’t make learning the concepts of revision control any easier, it can ease the burden of day-to-day use, since it can alleviate the user of having to resort to the command line.
eRacks is ready and willing to install revision control software per your instructions when purchasing any new system, and even offers consulting services for those times when you need help installing, configuring or using your software.
james February 10th, 2009
eRacks, your premier open-source vendor has been featured in the VAR guys Open Source 50, a compilation of the top 50 open source vendors with partner programs. Its a great honor for us here at eRacks and we are very pleased with it. We are constantly working to increase our partners, and work with like minded individuals and companies to expand the open source movement across the globe. Its been a long road, and we believe we are seeing just the tip of the iceberg in this global movement and we welcome you to join us in our quest! If you are interested in working with us, or if you have any questions please contact us and we will be happy to answer any questions, or work closely with you on any upcoming projects.
admin January 19th, 2009
At one point or another, you’ve probably asked yourself why you continue to spend hundreds (or perhaps thousands) of dollars on Microsoft products, especially in the downward economy we find ourselves faced with today. It could be that you’re worried about having to learn a new and unfamiliar environment. Or, maybe you feel that there aren’t enough applications available for anything other than Windows to justify switching to something else. Perhaps you’ve already invested a substantial amount of money in software that runs on Windows and don’t want that investment to go to waste.
Whatever the reason may be, there’s never been a better time to migrate away from proprietary software and make the move to Linux, a premium open source solution. Not only are the arguments outlined above irrelevant to the current technological climate, there are many other exciting reasons to consider giving Linux a try.
Linux Does More “Out-of-the-Box,” and It’s all Free!
After installing Microsoft Windows, your first task will always inevitably be to install a lengthy suite of applications before being able to do anything productive, and by the time you’ve finished, you’ll have potentially incurred hundreds of dollars in additional licensing costs. By contrast, any popular modern Linux distribution will come bundled with an office suite, fully-featured mail client, system administration tools and a host of other applications, saving you hours of installation time, all at no added cost. Even if you use a commercial Linux distribution with a price tag to match, the software bundled with it is almost always free and open source, meaning that you pay no extra licensing fees.
Thousands of Additional Applications, all Ready To Install at the Click of Your Mouse
We’ve all gone through the lengthy process of installing our initial set of applications, just to discover that we’ve either forgotten something or that we have additional needs. If you’re a user of Microsoft Windows and proprietary applications, you’ll get to fork out even more money, and be faced with the daunting task of manually downloading executable files and/or swapping CDs back and forth, with every installation method differing significantly from the last.
If you’re a user of Linux, with a few clicks of the mouse, you’ll find thousands of applications, all available from a single repository, ready to automatically download and install. Oh, and have I mentioned that they’re all free?
Running Windows Software on Linux
“I want to use Linux, but there’s one crucial application that’s holding me back.” Those of us who have moved away from Windows know all too well the pain of leaving behind old (or perhaps not so old) software investments. Whether it’s an in-house program for your workplace, an office suite or even a favorite game, you don’t want to lose your ability to run legacy Windows software.
This used to be a very good reason for abandoning open source migration efforts, but fortunately, it’s no longer a serious issue. The WINE project (http://www.winehq.org/), which represents fifteen years of hard work and dedication on the part of open source developers across the globe, has grown to be a very mature, nearly drop-in replacement for the Windows environment, and runs quite a few Windows programs out-of-the-box, including Microsoft Office. In addition, those applications that don’t will often run with minimal tweaking, and for those situations where native Windows libraries are required to make an application work, you have the option of using them in place of or in addition to WINE’s own bundled libraries.
For those rare instances where WINE fails to meet your needs, Linux sports a competitive suite of virtualization solutions (for more information, look up KVM or Xen), which will enable you to run a properly licensed Windows installation on top of your Linux environment at a level of performance comparable to that attained by running Windows natively on hardware.
Security and Your Peace of Mind
Anybody who’s had to manage a Windows machine will know what a hassle it is to have to keep up with anti-virus and anti-spyware updates, and how worrying it can be when we learn about new critical vulnerabilities that could result in a malicious third party gaining control of our software.
By using Linux, you have the dual advantage of working on a minimally targeted platform and of working on a platform that was built on a solid, simple and time-tested security model. Unlike Windows, there is little if any real need for anti-virus software (unless you’re running a mail server that hosts messages which might be read by people using Windows.) In addition, due to the rapid pace of open source software development, if a security vulnerability is discovered, a fix follows quickly. Instead of relying on any single organization to inspect and patch their code — a single point of failure, you have an entire global community with access to the source code, eager to support the software they maintain with a passion for writing good code.
With today’s uncertain economic climate, now is the perfect time to consider migrating to an open source solution. The arguments against it continue to dwindle as open source operating systems such as Linux increasingly prove not only to match Windows for functionality, but surpass it.
We here at eRacks specialize in open source solutions, and are ready to cater to your needs. Whether you’re purchasing servers or desktops running open source software, or you’re looking for help with your open source migration efforts, eRacks provides the services you need to get the job done.
james December 19th, 2008
We at eRacks are designing a new model geared specifically toward the developer, and want to hear from you, the customer, about what you would like to see in the system (please leave detailed comments for this blog post!)
We’ve been batting around a few ideas, both software and hardware related, and would like to share them here for your consideration.
1. IDE, Revision Control System and your Operating System of Choice
Our development model would (of course!) come pre-installed with the best in open source development-related software. Do you have a favorite IDE, or do you prefer to simply invoke your text editor, compiler and makefiles directly? Would you like us to install a revision control system such as CVS, Subversion, Mercurial or Git? What’s your operating system of choice? Are you a fan of Linux, FreeBSD, OpenBSD, NetBSD, OpenSolaris, etc.?
2. What Kind of Developer are you?
While there are usually at least some applications common to most developers, a great deal of the software you’d like to be installed will probably depend significantly on the kind of development you do. Are you a kernel developer? If so, we’ll install the kernel source and headers for you. Are you an applications developer? If so, are there any open source libraries you’d like us to pre-install for you? What about you web developers out there? We could, at your option, install a local web and database server for testing purposes, as well as your scripting engine of choice (PHP, Ruby, Python, Perl, etc.) Do you not fit exactly into any of these categories? Have we missed something? Let us know!
Do you prefer to develop on a laptop, or do you like to do your programming on a desktop machine? What would you think about having the option of two or more monitors to help you spread out your work, configured to your unique specifications (would you like 2 or more individual displays, or 2 or more monitors tied together into a single virtual display?)
Anything we haven’t mentioned that you’d love to see in a development-specific model? Again, just let us know! Be sure to leave us a comment sharing your thoughts.
james September 18th, 2008