247 karma · joined April 28, 2011
I run iTerm2 in full screen with Vim split alongside 2 or 3 console panes; I find the separation from the rest of my OS a blessing. The second screen I use for Chrome, HipChat, Flint, Sparrow etc; I still notice chat notifications, and to keep a eye on my dock (which displays all notification counts across my multiple programs) is a simple key combination if I'm in 'the zone' and don't wish to break out of my programming environment (iTerm2).
I've tried larger screens in the past, and found myself physically looking around the screen a lot more, simply due to having all my content splatted together.
Combine this with a keyboard-based window manager and the 1/2 - 1/4 screen segmenting and I feel much more organised and efficient than trying to manage a 30"+ monster of a screen.
After I've got a strong enough grasp as to the overall requirements, then I throw away this spiked code to start fresh, working along similar lines to 'programming by wishful thinking' whilst keeping the original spiked out structure in mind.
By following a strong TDD philosophy, it's easier for me to throw away my initial 'spiked out' code base for a couple of reasons:
1. Personal experience of how much better a test-driven code base can be than ones I've later tried to wrap tests around/dismantled in the process. 2. Having the understanding from the get-go that this code is not 'production-ready', and should not be considered reliable, but as a very fast learning experience. 3. Knowing that I've spent a small time prototyping as preparation, and having this laid out as an overall part of the process means I'm not considering this time 'wasted'.
I have pretty much free-roam of where I am, considering I work remotely and have flexibility over which hours I work due to clients in numerous time zones, however my girlfriend is a micro-biologist which makes where she can work rather limited to Universities and other research locations.
My colleague was using the ST integration, and found that sometimes he would be locked out of a file completely after I'd done some visual block changes. I'll give it another whirl some time and provide proper feedback if it still exists.
EDIT: Scrap the swiping, just pressing back and forward on the site break it.
Try out ZSH if you want to try something slightly different to Bash
Package Manager: Homebrew - https://github.com/mxcl/homebrew
Terminal/Emulator: iTerm2 - http://www.iterm2.com/
Vim running in iTerm2 via Homebrew
Chat Client: Adium - http://adium.im/
MySQL DB GUI: Sequel Pro - http://www.sequelpro.com/
Mail: Sparrow - http://sparrowmailapp.com/
Git GUI: GitX (L) - http://gitx.laullon.com/
Window "manager" : Shiftit - https://github.com/fikovnik/ShiftIt
General productivity: I love QuickSilver, however it's been crashing
quite frequently on me since I installed Lion, so I'm giving Alfred a try at the moment.
Note: all of the above are at least free (lite), if not completely free. I was thrown completely in the deep-end with terminal vim and just took to it as part of my "getting used to Mac" steps, which I think benefited me with respect to getting down with the nitty gritty of it and not complaining it was different to my Notepad++ experience prior on Windows. ack -l "Deterimes" | xargs perl -pi -E "s/Deterimes/Determines/g"
in your root if you don't want to search for them manually.Note: requires ack installed (like grep, but typically much faster and nicer to use, for me at least).
This is what I find the major advantage of a comprehensive test-suite to be, I don't have to worry as much about breaking any part of the system as a whole - if my suite passes, then I know everything I've worked on so far works, not just the bit I think I changed.