Aim: A manageble and transparent OSX setup for all things data at NL Healthcare. This OSX configuration also aims to mimic the server environment (CentOS 7) as much as possible, for maximum portability of the data analytics stack.
Main stack:
- OSX (Yosemite at time of writing, El Capitan has just been released)
- Python 3.4 via conda package manager. Anaconda distribution by Continuum Analytics is our standard base-Python stack. jupyter notebook is our preferred analytics environment for interactive computing in various languages
- PostgreSQL 9.3, using MacPorts as the preferred package manager. In case an app is not available in MacPorts, we will use homebrew as a fall-back package manager
- Optional interactive computing languages: R, julia or any of the supported languages incl. bash
- Encrypt harddrive with FileVault:
System preferences > Security & Privacy > FileVault
- Turn firewall on:
System preferences > Security > Firewall
- xcode libraries since they are required by the data science tools that we use
- I advise to stick to international encoding and charactersets as much as possible, i.e.
en_US.UTF-8
and do transformation to local setting (e.g. ',' as decimal separator) as late as possible in your whole workflow.
- Turned on tab for dialog boxes:
System preferences > Keyboard > Shortcut > All controls
- Silenced startup sound:
sudo nvram SystemAudioVolume ="%80"
- PyCharm as recommended Python IDE
- DbVisualizer fro daily SQL-ing, database management etc
- GitHub with the ZenHub as-in
- Office 2016 for Mac
- alfred great productivity app for keyboard shortcuts and automation
- CleanMyMac to keep your prized MacBook snappy and clean
- jupyter notebook for interactive computing
- atom or TextWrangler for basic text editing
- GitHub and, if you like, GitHub desktop which is our main versioning and online collaboration platform
- Google Chrome as the standard browser, particularly because of the many apps and extensions
- Speed Dial 2 for managing bookmarks and start-up tab
- Journey as your cross-platform notepad with Markdown for easy publishing to websites and internal wiki's
- Ghostery for blocking pop-ups and trackers
- iTerm2 to replace the standard Terminal with more features
- yEd for diagramming
- Archi for developing Archimate models of the enterprise architecture
- Another OSX setup
- Mac webdeveloper must haves
- Unix Filesystem Hierarchy Standard for some background to standardize where you put what in OSX
- http://www.dowdandassociates.com/blog/content/howto-set-an-environment-variable-in-mac-os-x-terminal-only/
- A tutorial to get started with customizing .bash_profile:
- Install Python 3.4 with conda in /opt/anaconda. If you are already running an older version of Python with conda, you can upgrade like this. Cloning your exisiting setup is recommended with
conda create -n <name> --clone root
- Install freeTDS driver for MS SQL with `sudo port install freetds'
- NB: took me an evening of hacking, but make sure your freetds.conf file has
tds version = 8.0
althoughtsql -C
showsTDS version: 5.0
. See http://stackoverflow.com/questions/6973371/freetds-problem-connecting-to-sql-server-on-mac-unexpected-eof-from-the-server
- NB: took me an evening of hacking, but make sure your freetds.conf file has
- Optional libraries for generating documents
- MacTex for converting notebooks to Tex: https://tug.org/mactex/
- Pandoc for pdf processing: https://github.com/jgm/pandoc/releases
- Install MacPorts. Note that MacPorts puts everthing in /opt. We will use this location to install everything that is managed by MacPorts and conda
- Install PostgreSQL 9.3 with Macports as decribed here. Note the following:
- Take note ofthe layout for the database files. Using Macports' standard for Postgres, I choose to put the database files in
/opt/local/var/db/postgresql93/defaultdb
- When this process has completed, you need to start the server
- By default, a superuser 'postgres' with no password has been configured with default database 'postgres'
- Take note ofthe layout for the database files. Using Macports' standard for Postgres, I choose to put the database files in
- Make sure you have already installed PostgreSQL via macports and the server is running. This prevents brew from installing another PostgreSQL version
- We follow installation procedure from https://github.com/dimitri/pgloader/blob/master/INSTALL.md
- NB1: install clozure-cl with brew
- NB2: compile with 'make CL=ccl' did the trick. Using sbcl (installed with Macports) got errors since it couldn't find certain libraries