Systems

The server you are using is my older PC, which sits beside my desk and hums quietly. It's the white one in the picture. It is named "HAL9000" after my favourite character in my favourite film.

Hardware

This covers my primary systems on the HALPlant network.

My trusty old Gateway G6-266M PC which served all my needs died during the last of many hardware upgrades when, while attempting to install a new video card, something on the motherboard failed and rendered the system unbootable.

My "new" system, which is the beige box with the open drive bays in the picture, is a Micron Millennia MME, kindly donated by a generous sympathiser. It has a few extras (for which I have made links) transplanted from the Gateway. My hardware setup includes these components:

HAL9000

My desktop, which is the black one you can just about see in the picture, is a custom built fast 'n' cheap model purchased from the nice folks at (the now defunct) Monarch Computer Systems. As with HAL9000, I've added and changed a few components.

HAL10000

I've recently replaced my Altec Lansing ACS41 speakers and ACS251 subwoofer with my TEAC REF-130 audio system.

As you can see from HAL9000's status page, I like to keep the system busy. HAL9000 is my former desktop, mail server, web server, file server, IRC proxy and code cracker. HAL10000 has taken over from HAL9000 as my desktop, though I also keep its CPU busy with more code cracking.

Software

I like software, but I'm not a programmer despite having written a few lines of Fortran for real work. Programming is a skill and an art which I don't have the talent to do really well. Fortunately for me, there are many others who are good programmers and who make their software available for free.

I have no objection to paying for software. I will happily pay for a product which I wish to use and which does the job to my satisfaction. So far, this has amounted to nothing more than a couple of shareware programs. The plain fact is that the best software is free.

It may be of interest to some that I've run almost exactly the same collection of software on a Sun Ultra 5 desktop, running Solaris, the only differences being that I used the native X11 (OpenWindows) and Mozilla.

Here is a selection of the server software I run.

Operating System: FreeBSD

Of all the OSs I've used (and I've used a few), this has become my favourite as both a workstation and server.

I track the FreeBSD 4.x on HAL9000 and STABLE branch on HAL10000. To help automate the task, I have a couple of scripts - update_fbsd and install_fbsd which do as their names suggest.

FreeBSD achieves several desirable goals which are rarely found together. It is simple to admin yet extremely configurable; lean, fast and highly customisable and tunable, yet stable, robust and tolerant. Insofar as a computer system is a collection of tools, FreeBSD is a great toolbox.

The FreeBSD community is also one of the most supportive and technically able with whom I have had the pleasure of interacting

Web Server: thttpd

There are a large number of web servers available for many platforms, many of them very good at many things. For serving HTTP, I have chosen thttpd because its design is focused strongly on that goal alone and the resulting product is a clean, small, simple to configure and fast web server.

I wrote and maintain the thttpd FAQ

Mail Server: Postfix (with Procmail as MDA)

Anyone in the field of systems security should know the name Wietse Venema. They probably also know the history of (and difficulty configuring) one of the most important pieces of software ever written - sendmail. Putting these two together gives us a dream come true - a fully featured, highly configurable and exceedingly well-designed MTA.

IMAP Server: Dovecot

For remote mail access, I use the popular, capable and nicely configurable Dovecot POP and IMAP server. For a server capable of so many functions, it's surprisingly simple to configure and run.

Web Proxy Server: Privoxy (based on Stefan Waldherr's version of Junkbuster)

While the web turns into a super-fast permanent advertising channel where the ads play during the programs, relief comes in the form of a filtering web proxy. Its main function is to filter out banner ads, however it is capable of filtering a wide range of content, including pop-ups, nasty JavaScript and other undesirable content.

It works very well and makes web browsing a lot more pleasant and efficient.

DNS Server: dnscache

I use the lightweight local caching DNS server, dnscache, from Dan Bernstein's DJBDNS toolkit, running under his Daemontools process managment software.

The user-level performance increase for name lookup heavy activities such as web browsing and mail service is significantly improved by having a local cache.

IRC Proxy: dircproxy

Rather than have my IRC client keep (re)connecting to all the servers and joining all the channels, I leave the proxy to manage the connections and channels. While I've not compared other proxies, dircproxy did exactly what I wanted first time and with no problems.

Logging: syslog

Logging from all systems on the local network is sent to the log server running FreeBSD's native syslogd. For more advanced syslog service, Syslog-NG is an excellent choice.

UPS Monitor: NUT

To monitor my UPS, I use the flexible Network UPS Tools, aka. NUT, which gives a nice web interface to the UPS' status.

If one reads the many opinions voiced on the subject, one would conclude that the availability of a productive workstation desktop environment running on a unix platform is something between rare, half-baked and non-existent.

I don't see it that way. I like choice - the more the better. My desktop is the best possible desktop for me because I have chosen each piece of it to suit my needs. It probably isn't your best desktop for that same reason.

Don't confuse a good desktop with the one which you see by default when you install a particular platform, whether it be Microsoft Windows running.. um.. Windows, or Solaris running CDE. While easy configuration is a good thing for any piece of software, the effort expended in creating a well-configured desktop is rewarded in efficiency and pleasure of use. The less choice you have in that configuration, the less chance you have of creating a good environment which meets your needs.

Here is a selection of the desktop software I run on HAL. As you can see, I am something of a minimalist, preferring a small set of specific tools for specific jobs to an "integrated" environment with drag-n-drop and such.

Display: X.org

The X.org project provides a free implementation of the de-facto standard screen/display manager for unix systems - The X Consortium's X Window System, aka. "X Version 11", "X Window System, Version 11" or even just "X11", but never "X Windows". X.org has been chosen in preference to XFree86 as the default X11 distribution for FreeBSD.

Focusing on x86 hardware and the video cards available for it, the X.org and XFree86 projects provide support for a wide range of hardware.

Window Manager: Blackbox

Not to be confused with "desktop managers" such as GNOME or KDE, the window manager is responsible for keeping the objects on the screen in order. This includes moving them around, resizing them, making them appear and disappear and creating multiple "virtual workspaces".

There is a wide range of window managers available and I have tried a number of them, including ctwm, dtwm, flwm, fvwm, icewm, olwm, wmx along with others whose names elude me including the one from NextStep.

The one which does everything I want, the way I want it - either by configuration or default, and nothing else is Brad Hughes' Blackbox.

Mail Client: Thunderbird and Mutt (with Fetchmail)

The evolution of mail clients is long and varied. Many have turned from tools for reading, sending and managing mail to multimedia messaging extravaganzas. I use email to communicate with written messages, which means text only. My choice of MUA reflects this.

For impeccable design, superlative standards compliance and support, unparallelled configurability and flexibility I use Michael Elkins' Mutt.

To list all the features which makes Mutt a good choice would take as much space as this whole page, so for now it will suffice to say that this is my favourite piece of software.

For privacy in my communications, I use the strong encryption available with PGP, using the GNU Privacy Guard (GnuPG). Here's my PGP key.

Fetching my mail from the POP server is done using Eric Raymond's Fetchmail.

Web Browsers: Firefox (formerly Firebird, formerly Phoenix), w3m

I could open this description much as the one above. There are two big differences. The first is that I have seen them all. The second is that hardly any of them are any good.

Ok, not quite all. Maybe I will write the long version of this some day, but in short, I used the first web browser to browse the first web server. Since then I have watched a tool for finding particle physics preprints turn into one of the (if not the) most important communications medium ever.

Perhaps because of this revolution, or despite it - I honestly can't say which - the tool which brings this greatest information source to me is the worst software I use and the reason why I use several different programs for essentially the same task.

Galeon is the nearest thing to a good graphical web browser I have used. It does a commendable job supporting the standards which should be what makes the web available to everyone as well as coping well with the kind of excrement which keeps that dream from being fully realised. Based on Gecko (the Mozilla rendering engine) with a GTK interface, the bugs and build issues can be fixed. Other browsers based on Mozilla such as Phoenix are rapidly maturing into decent tools.

w3m is a text browser which does a marvellous job of rendering web pages and providing a decent user interface. Not just a web browser, w3m is a pager and a jolly good HTML to text converter.

Navigator is for the bits which Galeon cannot (yet) manage. That's mostly the abovementioned excrement. It is ironic that the people behind this browser are the ones who were pivotal in making the web what it is today, both good and bad.

Music: Audacious

For playing audio files, particularly OGG and MP3s, from disk or the network and for playing CDs, I use the Audacious - a fork of the Beep Media Player (BMP) player which was based on the X MultiMedia System (XMMS), a very capable, expandable player with a nice GTK based GUI. The eye-candy features such as skins don't detract from it's substantial functionality.

All good players use CDDB to automagically identify CDs and give track listings. For CDDB I use freedb.org exclusively, after the people behind CDDB (now calling themselves Gracenote) abused the good will of its users and effectively stole the data.

Editor: NEdit

This program comes a close second to Mutt on my list of favourite software and is one which I have used for many years without ever seeing anything to rival it. It also operates in a resource-efficient clinet/server mode.

This Motif based GUI editor is extremely powerful and configurable, yet its behaviour and interface are simple and intuitive. The feature list is enormous, including configurable language sensitivity, macros, custom key-bindings, regular expression processing and unlimited undo/redo. Naturally, I am using it right now, with my own HTML macros and tag colouring.

Of course, outside the X environment I use vi.

Terminal Emulator: rxvt-unicode

One of several xterm replacements, urxvt is a successor to rxvt - lightweight but with support for backgrounds, transparency and other goodies. In addition to supporting unicode characters, it also supports XFT fonts, enabling nice smooth anti-aliased fonts in the terminal window

Instant Messaging: Pidgin

Pidgin is the new name for the popular GAIM IM client, following harassment of the GAIM developers by AOL (which is ironic considering the many people at AOL who use GAIM). This GTK based client has a nice interface and supports various protocols via plugins, including the one I use - Yahoo! You can IM me as AJ_Z0.

IRC: XChat

This graphical IRC client provides for easy managment of multiple chat sessions. You can usually find me on FreeNode in ##freebsd, #solaris and other channels.

Pidgin's IRC support is good, but I prefer XChat.

Keeping Busy

As if running all this stuff wasn't enough - and I do run most of the above pretty much continuously - I use my spare CPU cycles to run the distributed.net client.

Running this client, my machines are a part of a huge network of systems which work on computational problems including breaking cryptograms such as RSA Lab's RC5-64 challenge (project Bovine), calculating Optimal Golomb Rulers (Project OGR) and other fun stuff. You can check my past and current OGR-25, OGR-26, OGR-27 and RC5-72 stats.