The Perfect Setup
Because guitars are cooler than software, because beer is more refreshing than a windows update, and because things could be so much better, I've been trying to get a suite of open source programs together that will let me work on any computer, regardless of the operating system. This page describes my efforts so far.
Firefox & Thunderbird
This one's obvious, but Firefox is the browser of choice. All my email needs are adequatly met by Mozilla's Thunderbird, which is free, fast, secure, tidy, non-intrusive, and stores your email in files that are easy to import if you need to re-install or move to a different computer. With 5 years' worth of email taking up 7 gigs on my hard drive I'm beginning to wonder if that's a good thing per se. But the program can deal with it easily.
OpenOffice
You know this one too right? Because any new feature in any new wordprocessor since for the last ten years was either a more annoying spell checker or some barely relevant new feature like OLE objects or VBA support. Interestingly this year's version of MS Office saw the first real change since word '97.
The GIMP
Another big one the GIMP is both the poor man's photoshop and the professional's tool of choice. It has tons of features and can do most of what photoshop does, and quite some things it can't. Some features are still lacking like CMYK support and it doesn't have a concept of layer effects like photoshop does, so if you're a professional printer or really like layer effects it's not an option (for now). But for me it works perfectly.
Pidgin
Pidgin works like msn messenger, AIM, ICQ, google talk etc. Because it's so general it doesn't have any webcam features, you can't play any games and you don't get custom handwritten messages from your 16 year old friends. You do get to log in to all your messenging accounts at once, at no cost and with no pop-ups or commercials.
VLC Player
VLC player is my favourite media player. What you do is, you click a file, and then VLC appears and plays it. If you're done you can make it go away again.
I don't know why that's a difficult thing for a media player to achieve but VLC seems to be one of the few players around that doesn't try to manage all your files, download album covers from the internet, or otherwise slow down the most CPU consuming task in everyday personal computing with aqua buttons and a transparent interface. It doesn't bug you for updates, it doesn't scan your hard drive, it doesn't require any special processes to stay activated when it isn't running. It never decides it should be your default browser and it does not ask you if you're sure. It's just this small butt-ugly square box you can double click on to make it full screen and it pauses when you hit the space bar.
Unbeatable.
(Foobar)
The audio equivalent of VLC is Foobar, an audio player with an old-skool windows '95 interface that plays just about everything. Like VLC it has an options menu that lets you change things you never heard of but only if you click the 'advanced' button. Unlike VLC it isn't available for any platform other than windows, which is why I had to leave it out of the list.
LyX
Leaving the realm of programs for every day use, we come to LyX, the most remarkable program so far.
LyX is another wordprocessor, but not for birthday cards or cd covers, LyX is for writing books, book reports, articles, letters, slides and anything you want to give scientific veneer of a LaTeX layout.
People familiar with Latex might cringe at this point, but the beauty of LyX is that it has the beautiful output produced by LaTeX without the extra effort. If you don't try to customise the layout you never even see a single line of LaTeX!
Basically it works like this: You get a screen to type in, a la word, only no options for font selection, making things bold or changing the letter size. Instead you can mark parts of the text as sections, subsections or subsubsections, by selecting them and clicking 'section' like you might otherwise click the '<b>b</b>' for bold or <i>I</i> for Italic. Magically the markup now changes and the section gets a number too.
This takes some getting used to. It takes a lot of getting used to. As a seasoned WYSIWYG user you'll want to change fonts, colours, define your own styles, start a new page etc. And all of that is possibly if you know you're way around LaTeX and can hack your way into document customisation. The beauty of it though, is that you don't have to. After working with LyX for a while you find yourself concentrating solely on the content. Is this section 3.5 or 3.6? Doesn't matter! With LyX you just select the section title and select 'section' from the styles menu, then when you render the output LyX counts the sections and assigns it the right number. If you like it uses the same information to build a table of contents too. Footnotes are inserted at the place you refer to them, and only when you compile the output it gets moved to the bottom of the page. This way you never have to move a footnote!
On the other hand, customisation is simply not an option for beginners and this might bother you for a while. Want to insert two spaces? Nuh-uh! Like html a double space or tab-tab space gets trimmed down to a single one. Want to use a sub-sub-sub-subsection? Nope! In articles, LyX (LaTeX really) reasons, 3 levels is enough. Aren't those page margins way to wide? Nope! says LaTeX, an average 66 characters per line makes your text easier to read.
The whole point is, you type your text focussing only on the content, and let LyX do the rest. It'll always look good and if you need it too look really good you can export the LaTeX code it uses and send it off to a publisher. Pretty much all scientific literature in maths & beta sciences is layed out using LaTeX so you're in good company. For people who need to use mathematical formulas using LaTeX is a must, and LyX makes it incredibly easy.
gnuplot
Gnuplot is a command line interface for making 2 or 3D plots. Beautifully. It's been in development since 1986 and because it can be used straight from the prompt it has been used in many open source math programs. Most famously, it's the program most wikipedia graphs are made in, and if you click them you'll even find the gnuplot script used to create these graphs.
Highly specialised, but pretty cool!
Eclipse
Eclipse is the best program to use for developing java. Once you overcome any initial hostility towards creating 'projects' and using packages it's totally the way to go.
It has auto-complete (I hate it) and auto-formatting (really cool but a pain in the ass to customise, not because it's hard, just because it takes for ever) and way way waaaay to many options and plug-ins. But it's cool, it works and it's been severly tested. Updates regularly too.
(either Crimson Editor or gedit)
One thing still missing from the list is a simple (but expandable) text editor, preferrably with line numbers, simple syntax highlighting and a good replace function. Crimson Editor and gedit meet these needs, but are both OS-specific. If you know a good replacement let me know :)
Apache, PHP and MySQL
For all your server needs. Having a local php test environment is also a must for any serious php development. On linux it's hard to get a distribution without these programs installed, on windows there's the (almost) excellent WampServer that installs all three and sets up the default configuration too. Good stuff!
FileZilla
FileZilla is an FTP client like any other FTP client. But it's free, cross-platform and very professional.
(Google earth)
You know google earth right? It works on every platform but gets parentheses for not having any actual use. Shame that
Solfege
Solfege is free ear training software that lets you practice your intervals and more. Great tool if you need it, works in linux and windows and is 100% open source.
Jul 17th, 2008
Comments
Michael wrote:
Another excellent reason for open source software is that cool little features can be implemented modularly. For example, the google maps app on my mobile phone uses gsm-network data to guess my current location to within a mile or two. Wouldn't it be cool if stuff like this was implemented in a (stable) command prompt kind of way? Say the app was based on a getCoords program that simply returns some geographic coordinates. Then other apps that might somehow benefit from this knowledge could call that app et presto! new functionality without added responsibility.
Modularity kicks ass
Dec 13th, 2008
If you wish to add code to your comment you can use code tags, like this: <code class="php">yourCodeHere</code>.
Quite a large number of languages are supported, although I can't guarantee it'll be pretty. Inside the code tags you can use any characters except for the string "</code>".