$blog++

My Dev setup on Mac

Nov/04/2013 9 min read by Marco Monteiro

I've been asked a couple of times about my dev environment: what apps I'm currently using, and how I do use them. I'm going to try and sum it all up, going from terminal to text editor of choice and some of the plugins I have on them.

Text editor

Sublime Text 2 may be downloaded and evaluated for free, however a license must be purchased for continued use. There is currently no enforced time limit for the evaluation.

I haven't updated to Sublime Text 3 yet. Actually, I still don't see the point of upgrading.

Packages:

Settings:

{
    "auto_complete_commit_on_tab": false,
    "bold_folder_labels": true,
    "caret_style": "smooth",
    "color_scheme": "Packages/Tomorrow Color Schemes/Tomorrow-Night.tmTheme",
    "detect_indentation": false,
    "draw_white_space": "all",
    "fallback_encoding": "UTF-8",
    "file_exclude_patterns":
    [
        "*.pyc",
        "*.pyo",
        "*.exe",
        "*.dll",
        "*.obj",
        "*.o",
        "*.a",
        "*.lib",
        "*.so",
        "*.dylib",
        "*.ncb",
        "*.sdf",
        "*.suo",
        "*.pdb",
        "*.idb",
        ".DS_Store",
        "*.class",
        "*.psd",
        "*.db"
    ],
    "folder_exclude_patterns":
    [
        ".svn",
        ".git",
        ".hg",
        "CVS",
        ".hgcheck"
    ],
    "font_face": "Inconsolata",
    "font_options":
    [
        "no_bold",
        "subpixel_antialias"
    ],
    "font_size": 13.0,
    "highlight_line": true,
    "highlight_modified_tabs": true,
    "ignored_packages":
    [
        "Vintage"
    ],
    "line_padding_bottom": 3,
    "line_padding_top": 3,
    "match_brackets": true,
    "match_brackets_angle": true,
    "match_brackets_braces": true,
    "match_brackets_content": true,
    "match_brackets_square": true,
    "rulers":
    [
        95
    ],
    "scroll_past_end": true,
    "show_full_path": true,
    "tab_size": 4,
    "theme": "Nexus.sublime-theme",
    "translate_tabs_to_spaces": true,
    "trim_trailing_white_space_on_save": true,
    "vintage_start_in_command_mode": true,
    "word_wrap": true
}

Version Control

For version control I use Git. Along with that I normally use one git-GUI called SourceTree.

SourceTree is a free Git & Mercurial client for Windows or Mac. I specially like this one because it has Git-Flow already out of the box.

Along with this I also use those two packages for Sublime. Specially when I want to do something quick like a diff or change branches. That way, I don't need to go into my Terminal or SourceTree so often.

Terminal

ZSH is a must have. And if you want to use it like me you'll need the oh-my-zsh awesome sauce.

oh-my-zsh is an open source, community-driven framework for managing your ZSH configuration. It comes bundled with a ton of helpful functions, helpers, plugins, themes, and few things that make you shout…

Here's my ZSH config:

# Path to your oh-my-zsh configuration.
ZSH=$HOME/.oh-my-zsh

#Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
ZSH_THEME="miloshadzic"

# Aliases
alias zshconfig="st ~/.zshrc"
alias ohmyzsh="st ~/.oh-my-zsh"
alias vhosts="sudo nano /etc/apache2/extra/httpd-vhosts.conf"
alias st='/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl'
alias ll="ls -lG"
alias la="ls -AG"
alias l="ls -FG"
alias ls="ls -G"
alias restarta="sudo apachectl restart"
alias update-php="sudo curl -s http://php-osx.liip.ch/install.sh | bash -s 5.4"
alias ctags="`brew --prefix`/bin/ctags"
alias ctagsbuild="ctags -R -f .tags"


# Set to this to use case-sensitive completion
# CASE_SENSITIVE="true"

# Comment this out to disable weekly auto-update checks
# DISABLE_AUTO_UPDATE="true"

# Uncomment following line if you want to disable colors in ls
# DISABLE_LS_COLORS="true"

# Uncomment following line if you want to disable autosetting terminal title.
# DISABLE_AUTO_TITLE="true"

# Uncomment following line if you want red dots to be displayed while waiting for completion
# COMPLETION_WAITING_DOTS="true"

# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
plugins=(git github git-flow brew django node perl rails rails3 mercurial)

source $ZSH/oh-my-zsh.sh
unsetopt correct_all

# Customize to your needs...
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting

Markdown

I write all my blog posts in Markdown. I could do it right on my blog, but I do most of my writing when I don't have a connection. So I need a Markdown app. Mou app is my favourite. One of the best features is that I can include my blog css and see exactly how my post is going to be like while I write it.

PHP Environment

Most developers using PHP probably use MAMP, personally I don't like it. I use a simple binary package where you can install or update your php with just one terminal command using curl.

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.4

Database management

Most of my projects are using mySQL. Installing mySQL is quite easy, but the best free tool for database management is probably Sequel Pro.

Office Apps

These days I actually use the bundle from Apple, since it's free and it's a good alternative to the expensive Microsoft one.

Browsers

Email Client

Sparrow has been acquired by Google, hence the development stopped. However, this is still my favourite email client.

Cloud Storage

Calendar

For calendar I use the calendar app for mac, synced with my Google account, since I use Android there's no need for the iCloud stuff here.

Package manager

Homebrew is the missing package manager for OS X, specially if like me, you had bad experiences with MacPorts.

Social apps

We all need to socialize every now and again. For that I use the following.

Let me know what alternatives you are using besides the ones I listed.

x

Like it? Tweet it.

"My Dev setup on Mac" via @marcogmonteiro