My Development Setup/Flow

Developers seem to love to hear about how other developers work, so I thought I’d try to capture my entire environment, from end to end, in a single post. This will change (has changed) over time and depending on the project/company/whatever, but this is how things are for me right now. A couple of points up front:

  • I work for Automattic, so a lot of this is influenced by our internal policies/security/workflow.
  • I don’t always use all components of this “system”. I’ll try to detail when I do/don’t use certain parts of it as I go.

OK, here goes.

Note: This turned into a little bit of a summary of how we work internally at Automattic as well. Oh well, maybe it’ll provide some inspiration, I think we do some pretty cool things.


Mounting Remote Filesystems in OSX


Most of my work for Automattic is done on a remote sandbox machine, somewhere in Texas. I’ll often jump in and make smaller edits over SSH via vi, but when I’m doing something bigger I much prefer to work locally, using TextMate (I’m on a Mac, obviously). To do that, I need to be able to access files as if they were local, which means either duplicating them to my machine (lame, annoying) or mounting them directly.

I’ve been doing that via one of the following options, and I’m wondering if anyone out there has a better solution.

I’ve tried both for a while now. They both work. Except for when they don’t. Here’s what I’d found:

  • Transmit seems more responsive, when it’s working
  • Macfusion often crashes Finder the first time I access a newly connected filesystem (and is then reasonably stable)
  • Transmit much more randomly just stops working and gives no indication, I just can’t browse any more and have to disconnect/reconnect
  • Macfusion allows you to easily customize a neat icon for each filesystem
  • Transmit seems to have more aggressive caching (or a longer TTL on it) of filesystem details (part of what makes it feel more responsive)

So, have you used one of the following methods? Is there a configuration option I’m missing? How do you go about solving this problem?

UPDATE: I should have mentioned that I need to be able to do this over the open internet (securely), where I’m not connected directly to the same network as the server.

Mounting a remote filesystem via SSH on a Mac

The other day, I installed an app to try it out, and noticed that it came packaged with MacFUSE. When I uninstalled the other app, it left MacFUSE behind, and I figured I’d leave it there until I had a reason to remove it. Turns out I have a reason to actually keep it.

On a project I’m working on right now, I wanted quick, “local” access to a remote server. Using MacFUSE, I can mount a directory on a different server on my local machine and access it as if it was just any other local directory. Very cool.

mkdir /Volumes/MOUNTNAME
/Users/beau/util/sshfs-static-tiger USER@HOST:/PATH/TO/DIR /Volumes/MOUNTNAME -oauto_cache,reconnect,volname=MOUNTNAME