Essentials: The Actual Post
After whining about how all the work I did to write this post, I should probably go ahead and write it, no?
The programs I can’t really live without:
- Text Editing: XEmacs. The life of a programmer tends to involve lots of flinging text around. There is nothing better at doing this than emacs. While I’ll use GNU Emacs in a pinch, xemacs tends to be feel a bit better put together. If an IDE perfectly replicated most of the behaviour I’m used to, I’d probably consider migrating to it.
- Operating System: linux, specfically gentoo. It’s solid, it supports (for various values of ‘support’) the hardware I want to use, I can customize it to my heart’s content, it does the job. Honestly though, if Apple didn’t cost more for less power, I’d be a switcher. While I know I can get most things working the way they should, it’s often a pain in the butt doing so; although the way Gnome is going, if I wait long enough, switching might not be necessary.
- Programming Languages: Java & Perl. While I appreciate many of the benefits that Java brings to working on a team, I’ll always have a soft spot for perl, as it’s the first programming language that I really “got” - knowing before you even open your text editor (well, open a new emacs buffer, whatever) exactly how you can solve a problem is a nice feeling, and perl has provided that in spades. That said, I picked up some Python recently for my little bloglines tool, and was reasonably impressed. I’ll probably flirt with it and Ruby until I find a project that I can really sink my teeth into.
- Web Browser: Firefox. Simple as it should be, fast, reliable. I’d only stop using it if it stopped possessing these qualities.
- Shell: Somehow I’ve actually ended up using three different shells on a regular basis: tcsh, bash and zsh. Properly configured they can all behave just about the same; if I had to choose just one, it’s probably be zsh, as it has pretty much the superset of all shell’s functionality, with an amazing completion system.
- Email: The most important thing for me about email isn’t the program I use to read it (currently Thunderbird, but I’ll try anything that can do “IMAP (Internet Message Access Protocol)”). I use a fetchmail + procmail + spamassassin + exim + courier setup that automatically filters mailing lists (thank you procmail lib!) and detects spam. This setup provides a great deal of flexibility and no tie-in to a particular email client. I like evolution as an email client as well, but it’s just a bit flaky.
- Web server: Apache. There is no point in using anything else for serving regular pages. On the java side of things, I use tomcat, which is decent enough.
- IM: gaim. It works, and doesn’t piss me off, which is pretty much what I expect from most applications.
- Aggregator: bloglines. It’s not a standalone application, but it’s quickly become an essential part of how I use the web.
So that’s my toolkit, or at least the parts of it I can think of right now. What I haven’t described is all the little ways I’ve tweaked things to make this setup mine; I think what I’m generally after is to not think about how to make things happen, they should just happen. Something for a follow-up post!
Posted by Bill Stilwell at May 6, 2004 10:18 PM