Whether you bought a new mac, got one at your new job, or just doing a fresh set-up with the newly released OSX version, it can be a pain!
The last time I had to do it, I’ve decided to write down the links, steps and tricks, so I can easily set up the next one. And I’ve decided to share those.
I hope these will come useful to any mac user that comes across and wants to setup his new mac with ease.
In OSX mavericks, you need to accept Xcode’s terms and conditions in order to use some stuff in the terminal. Open terminal and run xcode-select --install
Previously this required downloading xcode, which took forever, but now you can only install the needed GCC components super fast. This little thing makes setting up a new development mac a breeze.
Dropbox is the first app I install on a new mac for a couple of reasons. Firstly, because I use dropbox to sync preferences between all my machines, for instance, iTerm2, AlfredApp, BetterTouchTool and others. Secondly because it syncs in the background, so when I’m done setting up I have a synced dropbox.
Installing dropbox is super simple, just run this line in terminal app
curl -s http://getmacapps.com/raw/6bl | sh
AlfredApp 2 – [link]
Alfred is amazing as a productivity tool (as seen here) and can be also used to speed up setting up a new mac.
After setting up a couple of macs manually, I’ve created an Alfred workflow to let you browse and install apps super easy (download link) , just type install chrome to install google chrome
iTerm 2 – [either using Alfred or here]
You can judge a man by his friends, and you can judge a developer by his terminal setup. Whether you use tmux or zsh, you need a good terminal program. and iTerm is the best of them.
iTerm lets you sync your preferences via any folder, and like previously mentioned, I do this in Dropbox, so synced settings FTW.
In addition to iTerms settings which cover the transparency, size and other great features, there are of course the settings of your terminal as well. Those are covered by .dotfiles (see below)
Dotfiles collections include a LOT of default settings, shortcuts, configurations and otherwise that will make you a pro shell user.
There’s a great writeup on then here and github has even a special page for dotfiles
While those are great, I suggest you fork the repo of Mathias Byens, and tweak it to make it your own. As an added bonus, his repo includes the .osx scripts, which have TONS of sensible defaults for your mac, like speeding up animations, show file extensions by default and a LOT more.
* word of advice, go over the settings in .osx before you run it, and comment out whatever settings you don’t want there. For instance he turns the name of his mac to “mathbook pro”
Homebrew is a MUST for every developer with a mac. Homebrew is a package manager that makes installing and compiling stuff super easy.
Installing homebrew in OSX mavericks is easy, using the built in ruby
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
Afterwards it’s important to run brew doctor, as this will let you know if there are any more steps you need to take in order to fully support homebrew
After installing homebrew you need to add it’s location to $PATH. There’s a good explanation on this here
If you don’t know what $PATH means, it’s the folders in which mac searches for binaries of stuff like git, ruby, python etc’
This is a list of programming languages I set up with a new mac. You can edit to the ones you need to use.
- brew install python
- brew install ruby
- brew install node
- brew install mongo
- brew install git – git should be already installed with GCC in Mavericks, but in case it doesn’t work, it can be installed with homebrew as well.
IDE – PyCharm/WebStorm/Etc’
Obviously if you are a developer, you have your preferred IDE and you will fight to prove that it’s best. I would expect nothing less from you!
I’ve been working with JetBrains software for a while now, and currently am working with PyCharm [link]
The most important setup step after downloading any JetBrains IDE is the IntelliJ Configuration Server Plugin. This plugin servers the purpose of saving and syncing ALL your IDE settings, including themes, key bindings, snippets and everything else.
This can be a HUGE pain to setup from scratch and you will thank this plugin the next time you setup a new machine with a fresh IDE. Worth noting that this plugin works across most of JetBrains IDEs as well. So you can migrate from say Pycharm to Webstorm with ease.
Code Editor – [Sublime – link]
There are a lot of folks who will curse me for this, but I use both PyCharm and Sublime text. While PyCharm is super feature rich, and is a full blown IDE, SublimeText is super quick and easy to use.
It has a LOT of plugins and packages!
First thing to install is the package manager and afterwards you can install anything from new syntax highlights, to git support to everything else SublimeText has to offer
Chrome + Chrome Sync – [link]
Obviously any development machine needs a way to browse. So installing chrome with account sync is a no brainer.
MAMP Pro – [link]
I still haven’t found a better tool to manage my virtual hosts like MAMP pro. Yeah it costs money, but creating a quick local domain like http://mysite.dev is super easy. And it can even work with django sites using mod_wsgi
Dash – [link]
Dash is a newcomer in this list, it just recently became awesome. It’s a collection of documentations for pretty much every programming language out there. And with the Alfred plugin, searching documentation was never faster. Additional bonus, it’s all offline, so you are speeding up the search for documentation.
Password manager – [no link]
If you don’t use a password manager, you should. Especially if you’re a developer. All those SASS sites you are using, should all have different, preferably super secure passwords that you can’t even remember!
I making a slow transition to PasswordBox [link] after 1Password, and quite happy about it.
I’m a web developer so for me graphic software is a must. Since we switched from Photoshop to SketchApp [link] my life became so much easier! I recommend every designer at least gives this little app a go.
This will cover apps that aren’t necessarily for development, but are important as well on any new mac.
Keyremap4macbook – [link]
This is a mega important app, as it lets you define different settings for your man.
My recommended settings are :
- “FN+letter to Ctrl+letter” – this maps the FN button to be CTRL when you use it with a number. This is super handy when you use the laptop keyboard a lot and are used to the bottom most right key to be CTRL!
- “Use PC style Home/End #2” – This simple setting brings back Home and End buttons on external keyboards and brings back your sanity as a developer on a mac!
BetterTouchTool – [link]
Maybe the best and most feature rich App to control and customize your trackpad, magic mouse, regular mouse, leapmotion and keyboard.
You can define gestures, custom keys, and a lot more! There is a nice writeup on it here
To sum up, while setting up a new mac is fun, it’s sometimes is a time consuming process. I hope this little write up will come in handy to every mac developer that comes across this blog post.
P.S. – If you have comments, want more Mac Dev tips and tricks, be sure to join my Facebook group – Devs with Macs