Everyone uses their computer differently (vim vs emacs!) and its no different on OSX, so this is really just my opinion:
To compile anything worthwhile, you need XCode and Command Line Developer tools, but before you can get that you'll need a Developer Account. https://developer.apple.com/xcode/download/
You don't need to be part of the Apple Developer Program (which is $99 a year), but rumor has it that's about to change as Swift2 becomes more mature.
This should really be the absolute first thing anyone does, since many things get linked to XCode's libs, so installing XCode later may mean reinstalling things later. Once both are installed you need to agree to the XCode licencing agreements, stipulating that Apple may call upon you to sacrifice your first born son as a test of your faith. You can do this from the terminal by running "sudo xcodebuild -license"
With that done, you should really get Macports and then Homebrew. Macports, in my experience, is a pain to install from source. Far better to install the precompiled package. If that doesn't work, reboot, sleep on it, and try installing it again later, rather than from source. Source should be the last option, as you can easily half-install Macports, and that will lead to a huge headache down the road.
Installing Homebrew however is a piece of cake, provided your cool with executing whatever a webserver happens to reply with. Fortunately, unlike Macports, Homebrew doesn't require you to be root to install, (or install most things via it), so use of Homebrew is always recommended over Macports. Installing/Uninstalling is waaay easier in Homebrew, as is updating.
With those out of the way, I would next get xquartz, which is X11 for OSX. This is good if you want to use IGV/R from a remote machine with x-forwarding over ssh.
For programming languages/intepreters, it's always best NOT to use the system version and instead reinstall them in a virtual environment. There's many ways to do this but i'll go through doing it for Python:
sudo apt-get install python-dev
# Just found out that this is an unmentioned dep. for pysam and htspython
sudo easy_install pip
sudo pip install virtualenv
mkdir /path/to/personal/python
virtualenv /path/to/personal/python
- now would be a good time to also get pypy - python thats 3-4x faster than CPython. Do the same as the above but with a different dir and run
virtualenv -p /path/to/pypy/download /path/to/personal/pypy
.
- To use your personal python run
source /path/to/personal/python/bin/activate
. For that terminal session (and other sessions after running source again), anything you install via /path/to/personal/python/bin/pip will not interfere with the OSX system python. Add the source command to your .bash_profile
to do this automatically for every terminal. I think 'pip' and 'python' also get re-aliased to whatever is in /path/to/personal/python/bin/..., so it's like you never even notice the difference. I recommend doing this sort of process for any programming thing you use that might interfere with the system version.
I highly recommend Sublime Text 3 as an IDE/text editor. Its syntax highlighting is great, and its very fast/low memory. Currently free but maybe not once it's out of beta.
Keka is one of the best compress/decompressors, and its free.
iTerm is a great replacement for the default OSX terminal emulator. It has a cool quake3 style "visor" mode which is handy.
If you need to interact with Linux filesystems (ext) at any point, you'll need osxfuse. There are two packages, oszfuse and SSHFS. Make sure to install them in that order else there will be troubles :/
Quicksilver is another good helper program. It basically works like the locate command in linux (keeps a database of files and their locations on disk), and is significantly better than the OSX finder bar.
Github Desktop is nice, but a little buggy. Certainly looks nice though.
Thats pretty much all I can think of that OSX specific. Plenty of Bioinformatics things, but not really relevant for OSX.
the tweet mentions 8k per line.
You're right, I mistyped. It's still scary!
Really good to know, I didn't know that about the Mac uniq command at all. Luckily I never used it on my Mac, always when I was remote in to a linux server. That is pretty terrifying.
But yeah, I think Xcode w/command-line tools and Homebrew pretty much covers it for your base install and configuration.
Crap, I've been using the wrong uniq and sort all this while!