Have your cake and eat it too

I was recently accused of “getting work done on a Mac.” As a Mac user in a mostly Windows work environment, I took that as quite a compliment.

If you work on the web long enough, sooner or later you’ll cross paths with a Microsoft .NET project and all of the tooling changes that come with it. Visual Studio, IIS, Internet Explorer, and God help you – TFS. The Microsoft development stack is flexible, capable, and powerful. However, they are a 180° shift from the lightweight tools that most Mac developers have come to fiercely love.

When working on projects at Improving, I consider myself a fully integrated (web) developer with a few exceptions:

  • I don’t use the debugger (in Visual Studio)
  • I rarely need to compile
  • I never touch a database
  • I don’t need IntelliSense or other IDE helpers
  • I test against IE, but don’t use it otherwise

I don’t need all the functionality provide by Visual Studio and other Microsoft developer tools. So why deal with all the overhead (and remembering to alt-tab instead of cmd-tab)?

Recently I discovered (with the help of my team) the perfect environment for me. It eliminates (most of) the need to fumble around in Visual Studio and puts me back in front of my go-to tool: Textmate. (Click here for some of my favorite TextMate features).

Maximum Cake


This configuration looks a bit complicated, but it’s not.

  • All of the project source code lives inside of a Windows 7 virtual machine and is managed via Subversion
  • IIS is pointed at my source directory and serves up the web project via HTTP, making it accessible via localhost and outside of the virtual machine
  • My source directory is mounted in OSX via an SMB share and pulled into TextMate

Essentially, I use Windows as web server, a file server, and as an occasional compiler. That’s it.

This is nirvana for me.


  1. Matthew Irish said:

    So how do you get IE6 in that setup? Last time I tried, Windows wouldn’t let me run a VM in a VM.

  2. Travis Isaacs said:

    @Matthew – IE Tester runs on Windows 7 now: http://my-debugbar.com/wiki/IETester/HomePage

  3. Pete Jones said:

    Do you trust IE Tester? I’ve had a few occasions where I have had pages render differently in IE Tester than IE6 on a test machine (can’t remember the specific cases, but I want to say it was JavaScript related).

  4. Travis Isaacs said:

    @Pete – if I were wanting to ensure pixel-perfectness in IE6, I would *not* rely on IE6 tester. In most cases it’s good enough for functional IE6 support.

  5. Geof Harries said:

    How do you deal with all of the .DS Store and duplicate _name files kicking around in directories? More importantly, how do your Windows-based co-workers feel about them? I love OS X, but had to switch to Windows a year ago for these reasons (and others).

  6. Travis Isaacs said:

    @Geof – so far no issues. Have you tried adding .DS store to your ignore list in what ever version control you are using?

  7. Geof Harries said:

    No, that’s a good idea. I wonder if this approach would work for the duplicate files and MAC_OSX directory litter as well.

  8. Matthew Irish said:

    @Geof, in addition to ignoring .DS_Store files, if it’s still a problem you can follow the directions here: http://support.apple.com/kb/HT1629 to disable writing them to network mounts.

  9. Brent O'Connor said:

    So when you need to compile do you use Visual Studio or do you use a a command line compiler?

  10. Travis Isaacs said:

    Brent, I use Visual Studio, but the .NET command-line compiler would work too. You wouldn’t even need to open VS.

  11. Geof Harries said:

    Matt – Thanks, that works great!