Bit x Bit Where I Ummm...

Welcome Higo, the Configurator

TL;DR Just published a gem for configuration management that creates getter, setter and predicate methods out of the box. Find it at https://github.com/rhodee/higo.

Rubygems serves 72,000 ruby libraries.

Just doing my part :). Thank you all who inspire to keep coding. Higo Rubygems screenshot

On My Mac Setup…What it looks like on my machine

TL;DR Check out my mac setup and my vim config here and dotfiles here.

My computer is my 'meta' workspace. It mimics my desk in some ways; cluttered in some areas and well organized in others. So settling in to my configuration has taken time. I use my computer for family photos, code, writing and the occasional video. For the benefits of folks wandering in and my future self, I decided to share my Mac setup. The post is broken up into how I write and how I code.

Before we begin, I spend most of my time in iTerm. My setup is driven by tools to help me stay in the terminal prompt for as much as possible, but not exclusively.

There are times when this is not possible, and for those times (like during design sessions or working on client side apps) I command-tab my way around.

On writing...

I use nvAlt, a fork of 'Notational Velocity', and sync my notes with SimpleNote. I needed markdown support. For that, install Multi Markdown for Mac. I use tags <Command> + <Shift> T extensively and find the search to be both speedy and accurate.

On crafting code...

I have two tools I use extensively to stay organized. The first is Homebrew. Homebrew is my package manager (if you are coming from linux it is the Mac answer to apt).

My next tool is tmux. Think of it as a session manager for your terminal (at least to start). Working on multiple projects, with multiple windows could not be any easier with tmux. You can grab it with brew install tmux tmux reattach-to-user-namespace.

Once it is installed on your machine you can grab vim using the ubiquitous brew install vim command.

My vim setup is fairly specific to my work and interests (Ruby, Javascript, SASS, Elixir). I designed my setup to be fairly modular, keeping both a local vim config and global one.

Vundle is plugin manager, which is similar to Bundler but for vim scripts. My current favorite color scheme is solarized.

Code completion is important. Vim has out of the box code completion and I extend that using ctags. It can be yours by typing brew install ctags. Once that is setup you will likely want to create a ctags in your home folder, or wherever. Follow along the documentation or check out the ctags example in my dotfiles.

I run for the code, the docs, then Google when I need some clarity. For the Ruby reader, I strongly recommend looking at two gems qwandry. Once it is all set up you can do cool things like qw pstore and gain access to the docs for any code from the standard library (In this case pstore). If you are using bundler, I strongly recommend looking at the Ruby Gems extension gemedit. It provides the gem edit command, which allows you to go to the source of your favorite library by simply typing gem edit gemname, where the gemname is equal to the value used in RubyGems. So gem edit activerecord opens up the ActiveRecord source in your $EDITOR.

On staying connected...

When I write code I prefer to stay focused on the terminal. The tools I use to keep this focus outside of the ones above are mutt, tig and on occassion irssi.

I use mutt to check my email. Mutt is a really nice tool to read and respond to email your terminal-get it with brew install mutt. Next up is tig.

Tig is a git client that is extendable in my terminal. It takes some configuration but if you are seeking a handsfree visual git client this might be good for you-get it with brew install tig. When I am not in the terminal and want something more visual I run to GitX(L). It was introduced to me by a colleague and I have not regretted it.

Next up is irssi. This is a chat client that connects to IRC and XMPP clients (via bitlbee). Get up and running using brew install irssi bitlbee. The documentation was not a great help to me and there are very, very few articles dedicated to setting this up. I honestly don't have a setup I find comparable to Colloquy for IRC and just about anything else for chatting via Gmail. That said I am interested in getting it together. I recommend this article to get as far as I did.

Outside of that, music to my ears is courtesy of Rdio through whatever pair of Sennheiser headphones are nearby.

I keep my vim and Mac setup together generally with git and Rakefiles. This helps me when I move from machine to machine but would like to keep the same setup across each.