Whats in Your Toolkit
This post is old, and may no longer reflect my current way of doing things or my current opinions. It may eventually be deleted or removed. Try this instead: Switching to Nixos.—
Every programmer, or general knowledge worker, has a toolkit. Often times, this toolkit is customized for the user, such that any other user may not be able to use it.
These toolkits often contain many things:
a text editor
an operating system
a selection of programming languages
a selection of scripts
a set of custom functions
So, here is what is in my toolkit:
Yes, I admit it, I use EMACS. Sue me. I happen to like it for the very fact that it is so extensible. Aside from that, I like the utter simplicity and correctness of the interface.
OK, so I read my email in Emacs too, I also blog from it, and just about live in it. But the thing about GNUS is intertwingularity. Essentially, this means that GNUS works with my address book, personal notebook, todo list and just about everything else.
OK, I've posted about Org-mode before, but I must mention it again. Org-mode allows me to keep notes, link between them, other files, emails, contacts, Git revisions, elisp functions and more. Again, intertwingularity, and the fact that I can use org-mode for Literate Programming, which makes my code much, much easier to read down the line.
OK, I use Fedora, I've had issues with other distros in the past, and for my use, I've always found Fedora to be the best for a personal machine or laptop. Now for servers, I use CentOS, but that's beyond the scope of this post.
Yes, Python, one of the most popular/common programming languages according to TIOBE. Aside from that, it's readable, and more universally well known than perl.
Yes, I use Common Lisp, and when given the chance, I will try to implement something using it. However, my skills are not that great, though I want them to be better.
Perl is a beautiful language, though often very hard to read later. I used to use perl for everything, however, I've found that I can best use it for automation and small tasks.
The Awesome Window Manager
OK, I've used WindowMaker, FVWM, FVWM2, GNOME, KDE and even XMonad(I don't like the Haskell based config file), and every other one of them was nice — in ways. I liked the look of WindowMaker and its ease of configuration, and the same goes for GNOME and KDE. FVWM and FVWM2 were nice looking, but config was almost worse than Sendmail. XMonad had the tiling features that I like about Awesome, but it uses Haskell, a language with funky syntax. Awesome has the best parts of all of these, and the fact that Awesome uses an actual programming language(Lua) to configure it is just the icing on the cake.
OK, I like ZSH, I've used Bash, Fish, CSH, and even the Korn Shell, however, for interactive use, ZSH is the best. Especially the completion, it's almost as good as Emacs.