in no particular order - here are some notes on the use of OSX for my UNIX dweeb friends who are making the jump.

essential tools / things to get:

go and get the developer toolkit (aka Xcode) - this will get you a working compiler and a kick ass development environment. unfortunately, i haven’t had a lot of time to monkey with Xcode for its primary purpose of developing mac apps. you should be able to install this off of the optional software installation on the OS distribution disk. alternatively you can get this from the [apple developers web site](( note, you might have to create an account on this site to get the latest tools and they are a big download. get it when you’re someplace where you have a solid and fast connection.)

macports - run, don’t walk, to get this one. i’ve messed with fink, i find this to be more complete and more often than not, it just works. to make life easier, you should periodically update your ports collection. this is trivially accomplished via a periodic sudo port selfupdate. note, you’ll need to have a working Xcode installation to get this appropriately installed since, like the FreeBSD version of ports, it will build this stuff from source and resolve dependencies in the process. it’s not a binary build system like fink, et al.


emacs / vim - without taking a religious perspective on this topic it’s good to know that there are first rate implementations of both on this platform. i install both and toggle between the two of them as it makes sense. personally, i’ve toyed with some very useful 3rd party editors as well. i’ll include some additional notes on these as well.

  • emacs - i use this one, there are folks that swear by aquaemacs, but i can’t make the keybindings happy enough for my taste.
  • vim - macvim - need i say more? i used this version for a long time prior to finding an emacs that made me happy on the mac. the new version of macvim is sexy as hell and has tabs and shit.
  • TextMate - this one seems to have all of the web 2.0 folks in a twist. i find it to be a remarkably good editor with emacs-like keybindings that work for most things. (meta-b/f don’t work as expected so that’s a frustration for me, personally.)
  • SubEthaEdit / Coda - i mention these in the same breath. SubEthaEdit is a collaborative text editor which allows folks to simultaneously edit a document, this editor is embedded within the coda web development package.

OSX oddities

su / root account - if you’re used to just su’ing to root, then you’re going to be surprised by the fact that root isn’t enabled by default. instead you use sudo for pretty much everything. if you’re used to running things as root and you feel like doing this all over the place you’re welcome to enable root (done by following these directions), over the past couple of machines i’ve had, i haven’t enabled root.

cron - OSX doesn’t run crond like you’ve seen on other platforms instead there’s launchd. which assumes the responsibilities of a whole host of classic UNIX processes (notably, init and crond). if you use crontab -e a la the classic UNIX interface to crond, then all of the launchd stuff is handled in the background for you. if you expect to just copy over your crontab files from /var/spool/cron then you’re in for something of an awakening. to make all of this just work, use crontab, it will make sure that launchd is updated appropriately.