Saturday, June 28, 2008

Pimp my shell


When I switched over to Ruby development, I said goodbye to Eclipse and IDEA. I was never one to shy away from a terminal so the transition back to a text editor (I tend to use TextMate and ViM) and iTerm was an easy one.



At ThoughtWorks I worked on one client project at a time, and maybe one or two open source ones. Now at Relevance there are weeks when I work on four client projects and a half dozen open source projects (thanks to open source Fridays). To make things more difficult, I've got a mix of Subversion and Git projects.



To ease the transition back and forth between projects I:



None of these was especially difficult but each of them has improved my shell environment. Thanks to Alan Cooper and Edward Tufte, I am beginning to understand that good usability doesn't necessarily require difficult technical solutions. Indeed, coming up with each idea and a seamless UI for it was harder than implementing it.



The features described above came down to making my shell environment:


  • Tell me about my current context.

  • Adjust based on the context.




I think that part of the reason we use MacOS is because it does some of this for us. It changes the menus based on which app is in focus. CoverFlow gives us a visual indication of where we are in the stack of files we're looking at. Maximizing a Safari.app window only maximizes it as far as it needs to in order to horizontally fit the content.



What else do you think your shell environment should do for you? Why?

1 comment:

Anonymous said...

Some more Bash nuggets over at codesnippets!

http://codesnippets.joyent.com/tag/bash

Thanks for the useful tips!