Favourite Free and Open Source Software (FOSS) of Mine
This page documents my favourite pieces of FOSS. You are welcome to check these packages out, and see if they are useful to you as well.
Linux
Linux is a UNIX clone for many platforms including regular PCs. It is fast, stable, powerful and very cool.
Mageia
Mageia is my Linux distribution of choice. In the Linux world, distributions are a collection of the Linux kernel and user-land utilities and libraries in a nice packaging. Mageia is an open-source distribution with good ties into the community, which started as a fork of Mandriva Linux (which in turn used to be called “Linux Mandrake”). It is especially suitable for use on the desktop, but is also suitable for running Internet and Intranet servers.
While not as hyped as other distributions are, Mageia is very decent, and is suitable for both beginner and advanced users.
User-mode Linux
User-mode Linux is a port of the Linux kernel to run as a process on top of a normal operating system. This is very useful for virtualisation, security, and kernel development. It is now an integral part of the Linux kernel. There’s a port to Windows 32-bit available as well.
VirtualBox
A great cross-platform x86 virtual machine emulator that allows one to run virtual machines of operating systems, with graphics, networking and everything else. A complete life-saver, and it’s free and open-source.
Desktop Applications
KDE - The K Desktop Environment
KDE is an attractive and powerful desktop environment for UNIXes.
Firefox
Firefox is a cross-platform web-browser which is standards-compliant and has many powerful features.
Plug-ins for Firefox
- Web Developer Extension
- Site Navigation (Links) Bar - Up/Prev/Next/etc. navigation aids and other rel/rev links. Supercedes the unmaintained Link Toolbar.
- LinkVisitor - mark links as visited or unvisited.
- Googlebar
- Adblock
- Greasemonkey - allows one to attach JavaScript snippets to pages altering their behaviour.
- Flashblock - disables all Flash applets until you explicitly click on them. Useful for getting rid of the annoying animated Flash advertisements and promos.
- Venkman - the Mozilla JavaScript debugger - incredibly useful for debugging browser JavaScript and Mozilla chrome JavaScript.
- Split Browser - allows the window to be split into several panes, similar to Konqueror. Spotted on Linux.com.
- Firebug - a great development tool, that allows to edit, debug and monitor the various aspects of web-design.
- Uppity - Provides an Up button which moves to upper levels in the sites’ URL.
- Tab Mix Plus - enhances the Firefox tabs experience. Allows to duplicate tab, a per-tab progress bar, etc.
- NoScript - an extension that prevents running unauthorised JavaScript, Flash, Java, etc. except from white-listed sources.
Konqueror
Konqueror is a nice web-browser and file manager for the KDE environment.
XChat
A nice IRC client for X-Windows and Microsoft Windows. HexChat is a more actively maintained fork, which I now prefer.
IceWM
IceWM is a lightweight but functional window manager for X-Windows. Maintenance of it resumed recently (February 2020).
JWM
JWM (Joe's Window Manager) is a lightweight window manager for X-Windows.
Xfce
A lightweight desktop environment for X.
Pidgin
A nice and convenient multi-protocol instant messaging client for Linux and other platforms. For a while I’ve preferred to use the KDE-based Kopete, but it was too slow and buggy, so I returned to Pidgin.
Development
Perl
My favourite language by far. Perl is a high-level language with many powerful features and a very rapid development time. It has a very rich and comprehensive culture around it, and is good for use in many diverse areas.
GCC - the GNU Compiler Collection
A powerful, portable and reliable C/C++/other languages compiler. A must for any programmer on a UNIX system.
Vim - VI Improved
A powerful, portable editor which is very lightweight and nice.
Apache Subversion
This is a version-control system with style. Runs on UNIXes and Windows. Note: due to recent trends it is recommended to use Git instead.
GDB
A powerful, cross-platform, scriptable, and open-source command-line debugger for binary programs (C, C++, Assembly, etc.). Made debugging and fixing many hard-to-catch bugs in my C/C++ programs much easier.
LLVM
A compilation and toolchain project that provides a bitcode, a C compiler ("Clang") and other tools.
Emscripten
Emscripten compiles C, C++, and other languages with an LLVM frontend, to JavaScript so they can be deployed inside web pages.
Ack - “Better than Grep”
A nifty command-line utility for quickly searching source trees for information. Complements the ubiquitous grep utility.
There are some similar tools such as ripgrep or the Silver Searcher which may be faster.
CMake
A very good build-system for cross-platform builds, that generates makefiles or IDE project files, and allows one to compile complex projects on Windows, Mac OS X and many flavours of UNIX. Also see my page about “GNU Autohell” (= the GNU Autotools) and why you should use CMake instead.
Valgrind
A sophisticated memory debugger for x86-linux and other platforms. Helped diagnose a few hard-to-catch bugs in my projects and is now also used as part of the automated tests' suites.
American Fuzzy Lop
A fuzzer.
Web Development
The Apache Web-server
A powerful, secure and reliable web-server for many platforms including UNIX and Win32.
mod_perl
A Perl subsystem for Apache, that greatly accelerates it and provides other capabilities.
Website Meta Language
A static site generator which is powerful, but slow and quite quirky. I'd recommend against using it, but I have some legacy code in it.
Libwww-perl (LWP)
LWP is a very powerful Perl framework for retrieving documents from the World Wide Web. It’s a must if you want to automate web processes in Perl.
cygwin
cygwin is an open-source Linux-like environment for Windows, that enables one to run many UNIX programs and libraries on top of Windows. Make using Windows much more bearable.
Improved Windows Console
The so-called “Console” is a great replacement for the dysfunctional Microsoft Windows’ console window (so-called “DOS Box”) that has tabs, allows one to have presets for several different shells and programs, is very customisable and is great for all those people who are using the command-line on windows.
And naturally, it’s also free and open-source.
Multimedia
The GIMP - The GNU Image Manipulation Program
A powerful image-processing application.
VLC
A usable, attractive, and cross-platform, media player which sports a convenient GUI.
mpv
A capable multimedia player that can play almost any video or audio format under the sun. An improved fork of mplayer.
MikMod
A great player for many popular variants of MOD files with excellent quality, wonderful portability, and very good performance.
Extended Module Player (XMP) and libxmp
A fast and portable module player that supports many formats, with a JavaScript/HTML5 version.
Inkscape
A very nice cross-platform vector graphics program.
youtube-dl
I often get referred to or find videos on YouTube, but they are relatively inaccessible, because of my Linux configuration. However, using youtube-dl, I can easily download the video files to my home computer, where I can conveniently play them using such media players as VLC, and also keep them on my hard disk for posterity. Highly recommended.
Amarok
Amarok is a superb music player for the KDE desktop environment. It’s the best music player I’ve encountered so far with many nice features, and very good customisability. Also see what I wrote about it on my blog.
Kflickr
A wonderful program for KDE for uploading photos to Flickr. Best I’ve seen and it actually works flawlessly.
optipng
Compresses PNGs (= “portable network graphics”) to a smaller size without losing information.
Office
LaTeX
A high-quality type-setting system.
DocBook
A document preparation system that can create HTML, PDF, Word RTF - all from the same source.
LibreOffice
A feature-rich cross-platform office suite.
Gnumeric
A free, fast, and accurate spreadsheet program.
Games
PySol Fan Club Edition (PySolFC)
A comprehensive, and feature-rich collection of Solitaire games. It’s written in Python and so is cross-platform.
Hex-a-hop
An open-source puzzle game based on hexagonal tiles. Great graphics and great playability.
Networking
KMail
A powerful and easy-to-use mail client for the KDE environment. Has excellent internationalization.
claws-mail
I switched to using it after KMail became unusable after version 2.x.
SpamAssassin
A very nice Junk E-mail filtering mechanism that makes reading the inbox much more enjoyable.
wget
A command-line utility for fetching URLs and documents from the Internet through various protocols. Very powerful and feature-rich.
cURL
Another command-line URL fetcher which has proven useful. Also a library for use within your C programs.
Mail::Box
A set of Perl modules that enables one to manage the E-mail folders, prune old messages, etc. Very very nice, but kinda slow.
procmail
A useful UNIX utility that can be used to sort and process incoming E-mail messages.
rsync
A feature-rich tool for incremental remote transfer of files. Also see zsync which is similar but based on HTTP-1.1.
Wireshark
A graphical tool for recording, analysing and displaying network conversations. Very useful for debugging networking protocols and for other purposes.
Clam AntiVirus (ClamAV)
ClamAV is an open source anti-virus that can help filter out email messages containing viruses that are sent to you. It is regularly updated.
QClam
If you’re unfortunate enough to use qmail for some of your mail accounts, and still wish to filter out all the viruses that arrive at your account, then Qclam may be the right solution for you. QClam is a program that feeds the message to ClamAV, and reports the verdict in a way that dot-qmail files can understand.
OpenSSH
OpenSSH, which is a free implementation of the SSH protocol, allows one to establish secure and authenticated connections to a different computer over the network. It allows one to login and execute remote commands, and transfer files from one host to another.
TightVNC
VNC is a cross-platform remote desktop utility that enables viewing a desktop on a different machine from a different networked computer. It is very easy to set up. TightVNC is a popular open-source implementation of it. Also of interest is UltraVNC.
rdesktop
A Windows’ remote desktop protocol client for UNIXes that enables one to work on a remote Windows computer from them.
System
tmux
A terminal multiplexer for UNIX. I use it to run shell processes in the background where they won’t be interrupted, but it allows for much more.
htop
An improved top-like process viewer for Linux with better usability.
GNU Parallel
Easy command-line parallelisation.
Security
Gringotts
Gringotts allows one to keep password and other sensitive information encrypted. It has a Gtk+ interface. Note: while it was originated by Germano Rizzo, I am Gringotts’ current maintainer.
Other Lists
Here are some other high-quality lists of open-source software on the Web:
Open Source Windows - a simple list of the most prominent choices, which isn’t very detailed, but very attractive.
Wikipedia’s List of free and open source software packages - a very comprehensive list - for all platforms (including non-portable software).
List of Open Source Programs (for Windows) - LOOP - a comprehensive wiki page (world editable) that lists the programs with their possibly more familiar proprietary alternatives.
“The Top 50 Proprietary Programs that Drive You Crazy — and Their Open Source Alternatives” - a comprehensive list on WHdb.
“21 Awesome (But Lesser-Known) Open-Source Applications for Windows” - on the “Tips For Us” site.