Introduction

It is possible to dump Windoze altogether and use a FREE operating system with open-source applications. I spend most of my on-line and development time on my Linux box - whenever possible I use cross-platform software to maintain a familiar interface for the (increasingly rare) occasions that I have to use my Windoze box.

The majority of the software listed here is cross-platform - it will run just the same across Windoze, Linux and Macs. I've only indicated whether the software will run on Windoze and Linux (I don't have a Mac); it is probable that it will run on other platforms too. This is especially likely for open-source projects.

General Sites

Free Software Foundation

Quote From Site: The Free Software Foundation (FSF), established in 1985, is dedicated to promoting computer users' rights to use, study, copy, modify, and redistribute computer programs. The FSF promotes the development and use of free software, particularly the GNU operating system, used widely in its GNU/Linux variant.

The GNU Operating System

Quote From Site: The GNU Project was launched in 1984 to develop a complete UNIX like operating system which is free software: the GNU system (GNU is a recursive acronym for "GNU's Not UNIX"; it is pronounced guh-noo, like canoe).

Wikipedia - Free Software Portal

Quote From Site: Free software is software which can be run, studied, examined, modified, and redistributed by everyone who has a copy. This type of software, which was given its current name in 1983, has also come to be known as "open-source software", "software libre or libre software", "FOSS", and "FLOSS". The term "Free" refers to it being unfettered, rather than being free-of-charge. In this sense, it is the user who is free.

The free software movement was launched in 1983 with the primary tactic to write free software replacements for the non-free software that society relied on.

My Comment: Another great starting point for all those people who haven't tried open source software before.

2D Graphics

GIMP

Quote From Site: GIMP is the GNU Image Manipulation Program. It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.

POV-Ray

Quote From Site: The Persistence of Vision Raytracer is a high-quality, totally free tool for creating stunning three-dimensional graphics. It is available in official versions for Windows, Mac OS/Mac OS X and i86 Linux. The source code is available for those wanting to do their own ports.

FLAC

Quote From Site: FLAC stands for Free Lossless Audio Codec, an audio format similar to MP3, but lossless, meaning that audio is compressed in FLAC without any loss in quality. This is similar to how Zip works, except with FLAC you will get much better compression because it is designed specifically for audio, and you can play back compressed FLAC files in your favorite player (or your car or home stereo, see supported devices) just like you would an MP3 file.

My Comment: Wherever I can, I use this format instead of the Windows WAV file format. FLAC is lossless (as is WAV) but usually produces files that are less than 50% the size of the equivalent WAV files. This is great for backup purposes but for jukebox audio files I recommend you use the Ogg-Vorbis format.

MPD - Music Player Daemon

Quote From Site: Music Player Daemon (MPD) allows remote access for playing music (MP3, Ogg Vorbis, FLAC, AAC, Mod, and wave files) and managing playlists. MPD is designed for integrating a computer into a stereo system that provides control for music playback over a local network. It is also makes a great desktop music player, especially if you are a console junkie, like frontend options, or restart X often.

My Comment: If you want to create your own jukebox server, then this is what you need. Put all your audio in one place, set up a shoutcast service and then stream it over your home network to any computer via the browser.

Ogg Vorbis

Quote From Site: Ogg Vorbis is a completely open, patent-free, professional audio encoding and streaming technology with all the benefits of Open Source.

My Comment: I use this audio format rather than mp3 because it's open-source and patent-free. This format is favoured by the Linux community and although it's not as popular as mp3 it has been proven to provide better quality audio than mp3 at lower bit-rates.
Anyone writing an mp3 encoder/decoder has to pay a licence fee to the mp3 patent-holder - in theory this cost is passed on to the end user. No such costs are associated to ogg-vorbis as it's patent-free.

The downside of the ogg format is the current lack of cheap portable hardware players - there really is no reason why hardware manufacturers should omit this format from their players (especially since Vorbis produces higher quality audio at lower bitrates when compared to mp3) and in fact the situation is gradually changing as indicated by this page.

For a free lossless audio format useful for backing up audio files, see FLAC.

QCD / QMP

My Comment: I prefer this player when using windoze mainly because it doesn't favour mp3 over ogg-vorbis (unlike windows media player). QCD is the stable audio player, whereas QMP is an all-round media-player and at the time of writing, is still in beta release (but perfectly usable).

Vorbisgain

Quote From Site: VorbisGain is a utility that uses a psychoacoustic method to correct the volume of an Ogg Vorbis file to a predefined standardized loudness. It is meant as a replacement for the normalization that is commonly used before encoding. Although normalization will ensure that each song has the same peak volume, this unfortunately does not say anything about the apparent loudness of the music, with the end result being that many normalized files still don't sound equally loud. VorbisGain uses psychoacoustics to address this deficiency. Moreover, unlike normalization, it's a lossless procedure which works by adding tags to the file. Additionally, it will add hints that can be used to prevent clipping on playback. It is based upon the ReplayGain technology.

My Comment: Brilliant concept - audio normalization without re-enconding. In short, this process ensures that your ogg audio collection maintains relative loudness across an album. If the loudness of your ogg audio collection is uneven then use this tool.

Office

Open Office

Quote From Site: Open Office is a multi-platform office productivity suite. It includes the key desktop applications, such as a word processor, spreadsheet, presentation manager, and drawing program, with a user interface and feature set similar to other office suites.

AVG Anti-Virus - Free Edition

Quote From Site: AVG Anti-Virus Free is a free anti-virus protection tool developed by GRISOFT for home use.

My Comment: I've been using this software for several years - updates are downloaded on a daily basis. AVG was the best for a long time, but there are now several free alternatives available; I may try one of those in future just to see if they're any better than AVG.

Make sure you download the Free Edition not one of the Trial Editions.

Software Development

Gambas

Quote From Site: Gambas is a free development environment based on a Basic interpreter with object extensions.
With Gambas, you can quickly design your program GUI, access MySQL, PostgreSQL and SQLite databases, pilot KDE applications with DCOP, translate your program into many languages, create network applications easily, make 3D OpenGL applications, and so on…

GTK+ - The Gimp Toolkit

Quote From Site: GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable for projects ranging from small one-off projects to complete application suites. GTK+ is free software and part of the GNU Project. However, the licensing terms for GTK+, the GNU LGPL, allow it to be used by all developers, including those developing proprietary software, without any license fees or royalties.

Java

Quote From Site: Java refers to a number of computer software products and specifications from Sun Microsystems (the Java technology) that together provide a system for developing and deploying cross-platform applications. Java is used in a wide variety of computing platforms spanning from embedded devices and cell phones on the low end to enterprise servers and super computers on the high end.

My Comment: If you've never written applications using objects, you may find Java a little difficult to get to grips with. Once you've gotten over the relatively steep learning curve, you'll reap the rewards of the advantages offered such as code reusability, encapsulation, inheritance and polymorphism.

Java isn't yet open-source but is rumoured to be going that way.

Ogre 3D

Quote From Site: OGRE (Object-Oriented Graphics Rendering Engine) is a scene-oriented, flexible 3D engine written in C++ designed to make it easier and more intuitive for developers to produce applications utilising hardware-accelerated 3D graphics. The class library abstracts all the details of using the underlying system libraries like Direct3D and OpenGL and provides an interface based on world objects and other intuitive classes.

The Ogre source is made available under the GNU Lesser General Public License (LGPL), which basically means you can use it however you like as long as release the source for changes you make to the core engine if you distribute your product. The source to your application or to new plugins you create does not have to be released (although it would be nice if you did).

Perl

Quote From Site: Perl is a stable, cross platform programming language. It is used for mission critical projects in the public and private sectors and is widely used to program web applications of all needs.

Pike

Quote From Site: Pike is a dynamic programming language with a syntax similar to Java and C. It is simple to learn, does not require long compilation passes and has powerful built-in data types allowing simple and really fast data manipulation.
Pike is released under the GNU GPL, GNU LGPL and MPL; this means that you can fetch it and use it for almost any purpose you please.

Python

Quote From Site: Python is a dynamic object-oriented programming language that can be used for many kinds of software development. It offers strong support for integration with other languages and tools, comes with extensive standard libraries, and can be learned in a few days. Many Python programmers report substantial productivity gains and feel the language encourages the development of higher quality, more maintainable code.
Python runs on Windows, Linux/Unix, Mac OS X, OS/2, Amiga, Palm Handhelds, and Nokia mobile phones. Python has also been ported to the Java and .NET virtual machines.

My Comment: I really like Python. It's definitely the Swiss Army Knife of software languages - I've found myself using it in all sorts of situations. It takes very little time to create a very useful script. The Film Ratings pages on this site are generated by a Python script that took less than an hour to create.

SDL

Quote From Site: Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used by MPEG playback software, emulators, and many popular games, including the award winning Linux port of "Civilization: Call To Power."

SDL is written in C, but works with C++ natively, and has bindings to several other languages, including Ada, C#, Eiffel, Erlang, Euphoria, Guile, Haskell, Java, Lisp, Lua, ML, Objective C, Pascal, Perl, PHP, Pike, Pliant, Python, Ruby, and Smalltalk.

SDL is distributed under GNU LGPL version 2. This license allows you to use SDL freely in commercial programs as long as you link with the dynamic library.

Tcl/Tk

Quote From Site: Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more. Open source and business-friendly, Tcl is a mature yet evolving language that is truly cross platform, easily deployed and highly extensible.

Tk is a graphical user interface toolkit that takes developing desktop applications to a higher level than conventional approaches. Tk is the standard GUI not only for Tcl, but for many other dynamic languages, and can produce rich, native applications that run unchanged across Windows, Mac OS X, Linux and more.

wxWidgets

Quote From Site:
wxWidgets lets developers create applications for Win32, Mac OS X, GTK+, X11, Motif, WinCE, and more using one codebase. It can be used from languages such as C++, Python, Perl, and C#/.NET. Unlike other cross-platform toolkits, wxWidgets applications look and feel native. This is because wxWidgets uses the platform's own native controls rather than emulating them. It's also extensive, free, open-source, and mature.

Apache

Quote From Site: The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows NT. The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards.

Apache has been the most popular web server on the Internet since April 1996. The November 2005 Netcraft Web Server Survey found that more than 70% of the web sites on the Internet are using Apache, thus making it more widely used than all other web servers combined.

My Comment: Apache isn't just an HTTP server - visit the http://www.apache.org/">Apache Software Foundaton</a> home page to see all the other Apache-related software projects.

Internet Related Technologies

MySQL

Quote From Site: The MySQL database has become the world's most popular open source database and is used in more than 10 million installations ranging from large corporations to specialized embedded applications on every continent in the world.

It's also become the database of choice for a new generation of applications built on the LAMP stack (Linux, Apache, MySQL, PHP / Perl / Python.) MySQL runs on more than 20 platforms including Linux, Windows, OS/X, HP-UX, AIX, and Netware.

My Comment: I'm surprised that MySQL is so popular - in my experience, PostgreSQL is more feature rich and closer to the industry standard databases that I've worked with such as DB2/UDB (Universal-Database) and Oracle.

Open Source CMS

Quote From Site: This site was created with one goal in mind. To give you the opportunity to "try out" some of the best php/mysql based free and open source software systems in the world. You are welcome to be the administrator of any site here, allowing you to decide which system best suits your needs.

PostgreSQL

Quote From Site: PostgreSQL is a powerful, open source relational database system. It has more than 15 years of active development and a proven architecture that has earned it a strong reputation for reliability, data integrity, and correctness. It runs on all major operating systems, including Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64), and Windows. It is fully ACID compliant, has full support for foreign keys, joins, views, triggers, and stored procedures (in multiple languages). It includes most SQL92 and SQL99 data types, including INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and TIMESTAMP. It also supports storage of binary large objects, including pictures, sounds, or video. It has native programming interfaces for C/C++, Java, Perl, Python, Ruby, Tcl, ODBC, among others, and exceptional documentation.

My Comment: Having developed mainframe DB2 applications in a professional environment and used both MySQL and PostgreSQL in personal projects, I would have to say PostgreSQL currently offers a more comprehensive database environment than MySQL - it just seems like MySQL is a lot more widely used.

W3C (WWW Consortium)

Quote From Site: The World Wide Web Consortium (W3C) develops interoperable technologies (specifications, guidelines, software, and tools) to lead the Web to its full potential. W3C is a forum for information, commerce, communication, and collective understanding.

My Comment: Your internet software (especially your browser) ought to support the latest web standards. If you're a web developer you should aim to ensure you code to the standards specified on this site thus ensuring as many people as possible can access your content.

W3Schools

Quote From Site: At W3Schools you will find all the Web-building tutorials you need, from basic HTML and XHTML to advanced XML, SQL, Database, Multimedia and WAP.

My Comment: You can go a long way to developing your own sites just by reading the information and tutorials on this website. I found that once you learn the basics here, a few good books will then progress you into more advanced techniques.