Since emacs would do just about nothing except make Java and Python code look pretty, I would generally have two or three terminals along side eclipse just calling rebuild via a few keystrokes. I would wake up the computer every morning would start arranging terminals like flower petals all over the system, in places so I could find them. All that talk people say about metacity 'getting out of your way, so you can get to work' was utter crap. Metacity just wasn't working for me.
Had I known about tiling window managers then, I might have made the switch. Who knows what I could have done, had I had a tiling window manager available to me. I might have been able to finish all the projects I set out to do, I might have even made my group look very good. Who knows? I might even have been able to make that 100 yard pass and cured cancer.
Since then, I've gone back to school, and writing papers really doesn't need all that craziness. (If anything, Hans de Goede's latest patches to gstreamer will make it easier to do my homework without having to go to the labs just to use a windows machine for media.) But being the hip, up to date, thoroughly modern person that I am, I've finally discovered the joy of Monads and X. Wanting to learn more about Haskell at the same time, I started tinkering with it, and so far, I've found it a joy to work with. As a side effect, I'm even noticing better VI habits thanks to the similarity in keybindings. Wanting to see Fedora packages, and learn a little more, I decided to hack cabal-rpm to make it create sane packages. Below are the product of these changes, your very owns set of XMonad packages for Fedora. I'm currently dogfeeding myself with them now. Enjoy!
(Just so you know, this is what Jewish people do on XMas when there are no good Chinese restaurants or good theaters around town. It was far more interesting than tearing toilet paper, which is a major Qabalistic thing, I kid you not. And by Qabalistic, I mean the teachings of the ancient Rabbis passed down by word of mouth from generation to generation, not the packaging system for Haskell packages.n)