Optimize your Mac for software development

mkn battle station

 Say hello to my battlestation.

This is where I spend most of my days: developing new software; making and breaking hardware via linux;  initiating 100+ EC2 VPCs on the fly for testing; inventing new / optimizing / cracking algorithms; spending countless hours on UX to determine what’s the best color for a button for higher conversion rates; finding security leaks in mobile apps; contributing to open source software, i.e. mongodb, google chrome, facebook, etc; OH and of course lingering on reddit’s photoshop-battles forum (where I was able to claim 2 million hits on my photoshop’s within 48 hours!).

When I switched to linux / unix / mac os back in 2011 (from being a diehard windows XP user) I had to change my daily routines, tricks and commands.  And boy was it worth it, I wish I had made the switch earlier.   5 years later (now  2015), I’ve got everything down to a T for my daily routines –

 

Assuming you’re on Mac OS X Yosemite or later.

 

Immediately update your hot keys

I find myself using Window spaces + Mission Control constantly.  I run a 3x 27″ monitor setup, within each monitor I keep 2-3 spaces (desktops).  By default, to switch between desktops you need to hold control + left or right to init; or two finger slide on touchpad / magic mouse.  When coding, this becomes a hassle, especially when you’re in the middle of a line of code.

Goto Mac Settings -> Keyboard.  Enable “Use all F1, F2, etc. keys as standard function keys”.  You don’t need the brightness as a shortcut key… Then within the Keyboard settings goto “Shortcuts” and jump to Mission Control in the apps list.  Find “Move left a space” and hit F1, then “Move right a space” F2.  This will allow you to slide spaces at the tip of your left hand.  Set “Mission control” (should be the first on the list) to F3 and and “Show Desktop” to F4 — I find myself using F3 and F4 constantly now when I have a barrage of windows open.

Next thing you’ll want to do is reduce the animation time on Mission Control, it’s a little too long for our “need for speed”. Open terminal and enter the command below:

defaults write com.apple.dock expose-animation-duration -float 0.1; killall Dock

 

Keep the dock on the left

This one I’ve been experimenting with for quite some time.  I’ve kept the dock on the bottom for a year, then on the left for a year, etc. I found that keeping the dock on the left side allows greater vertical height for your code editor software.  Code isn’t wide, it’s tall, some folks utilize their monitors at the vertical view, but at the 27″ level it becomes too tall,  I digress.

 

A clean mac is a happy mac

Anyone that knows me knows that I have a zero tolerance policy for “extra” applications running, regardless of device.   My primary machine (at the moment) is a MacBook Pro Retina — 2.3 ghz i7, 16 GB memory, NVIDIA GeForce GT650M gpu.  I don’t think I’ve ever completely consumed the full memory (even running multiple VMs within Parallels).  Regardless of power, I’m extremely picky with what inits at boot or runs in the background.

When you’re developing, testing, and optimizing sofware, you can’t have hiccups at the system level.  I refuse to enable the dropbox app because it will require active packets and memory — this goes for all “other” apps running that doesn’t have to do with your active project.

When you’re “in the zone”, there’s no time for being thrown off.  Get rid of or disable anything but your coding editor / applications!

Programmer Interrupted

 

 

Good lighting

This is a big one for me, you need good lighting in your environment.  I’ve spent a few years going through numerous lamps – then “I saw the light”.

OttLite T59BNR Vero Table Lamp in Brushed Nickel via Amazon (as seen in photo above)

This lamp illuminates “white light”.  It doesn’t strain the eyes at all.  I’ve been on the same bulb for almost two year snow.

 

Get the right chair, you’re going to be sitting on it 6-12 hours / day

I just bought my second version of this chair (as seen in the photo above).  No back pain or strains.  Oh and it’s reasonably priced.  The first version (the black one in the photo) I bought was an experiment, I didn’t have any desire to expense a $1,000 herman miller chair when I began MKN Web Solutions.  The experiment was a success, and now we have two of these bad boys.

WorkPro Commercial Mesh Executive Chair, Grey via Amazon

 

Clutter free desk = less distractions

I just bought my second round of this exact setup.  Again very reasonably priced.  It’s the Ikea Linnmon table top with “whatever legs you desire”.  There are a few different sizes for this one, but GO FOR THE 50×29″ top — trust me you’ll thank me later.  The shorter length one limits monitors and the lengthier one (73″) cuts too much depth.  You want your monitors reasonably distant and aligned with your eyes.

 

My favorite development environment software

Virtualization =  Parallels. $79.99.  I used open source VirtualBox for 1.5 years, but making that small purchase for Parallels meant greater support and better drivers.

Code editor = Coda by Panic.  $99.  Dreamweaver is way too laggy, sublime isn’t too bad but Coda has a better interface and it’s insanely fast.  #Coda4life

FTP app = Transmit by Panic. $34.  I’ve used them all, Transmit takes the throne.  These guys are doing it right, Panic knows what’s up.  They know that developers need fast + simple (yet with all the features needed) software.  Major props to the team at Panic.

Development environment = CentOS. I’ve played with every flavor of linux for the “server world”.  CentOS will always be my go-to environment for both development and production. It’s clean cut and modernized, just make sure you don’t install with the GUI — we always work at the CLI level!  I always develop at the virtualization level, never at the Mac OS level, remember we want to replicate a typical EC2 / vpc server.

 

That sums it up for now.  Till the next post — cya!

 

Leave a Reply