- Compass/Sass: A huge win over doing css by hand. This combo helps organization, factoring out common css, managing product display variations, making everything cross browser. Then everything can be combined and minified with one command.
- Rails like frameworks: When I started contracting, my first projects was Rails based. I was previously developing in Java for a CA based Internet Co (Alexa top 20) and, no exaggeration, I was easily more productive as a Rails newbee than the 10 person Java dev team I had recently left. There are a lot of Rails like, dynamic language based, frameworks out there, they are all quite good. I would never go back to Java at this point unless it was specifically requested by a customer.
- Virtualbox: I have a couple of base VM's that have all my essentials (git, emacs, java, ruby, chrome...) pre-installed. I use these as a starting point for each project. Keeping projects separate eliminates a lot of costly environment gotchas that are great for sucking up huge amounts of time, at the wrong time. Also VM's are great for transferring projects to new developers - also a potential time suck.
- Rake - I used to do all my build work in Ant (and Maven), I cant justify working with Ant anymore. As projects get more complicated the cost of getting Ant to do exactly what I want increases exponentially. Rake has been a lot more flexible for me. I have better build systems ,that take up less of my time, and that I can unit test as well.
- XMondad with a 27" monitor - any window manager with one extra large monitor is a nice setup. Now that I am accustomed to this setup, when I work outside the house (w/o my big monitor) my productivity drops ~75% and my frustration level goes up by about 25%.
Yours?