My MacBook

Welcome to my MacBook Setup.

This page is intended to document my current setup on my development MacBook, right down to my “down-time” software. It should act both as a reminder to myself come the dreaded day I need to set up from scratch, and as a quick guide for anyone curious how I have things set up if they would like to do something similar.

Quick Note: I use Chrome as my primary browser, with synching enabled, which means all of the apps from my ChromeBook are available quickly and easily on my MacBook as well and I use them regularly. Check my ChromeBook setup for more on that.

Contents:
Hardware
Software
    First Steps
    MySQL
    Scala
    Python
    PHP
    Other Software
Gaming

Hardware

MacBook Pro 15″ Retina
2.3GHz quad-core Intel i7 (Turbo to 3.5GHz)
NVidia GeForce GT 750M (2GB GDDR5)
16GB DDR3 RAM
512GB Flash Storage

Accessories
MadCatz R.A.T. M BlueTooth Mouse
Apple BlueTooth Keyboard

The Rundown
Everyone has their own preferences when it comes to how to purchase. In my case, this model is fast and powerful right now, and should last me a few years easily. On top of that, it’s portable enough to take to work and bring home. I had considered a Mac Mini, but the setup/teardown would have been much more painful.

As for the accessories – even if you don’t believe in pair programming, I highly recommend having a spare mouse and keyboard available at all times. You never know when you’ll want to collaborate with another programmer, and sharing a laptop keyboard is a huge pain.

(The last question, why an nVidia model, is answered below. It was a small extra investment, and I didn’t have a gaming-capable PC to play with my friends. Now I do ;P)

Software

First Steps

Start by installing the following useful software packages.

HomeBrew

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

Note that you may need to run brew doctor before using homebrew.

JDK 7
Just get this straight from Oracle’s site. (Google if you’re having issues.)

Apache 2
By default, apache is already installed. Just start it up with sudo apachectl start

You can also uncomment Include /private/etc/apache2/extra/httpd-vhosts.conf in your conf file. I use the following Virtual Host:

<VirtualHost *:80>
	DocumentRoot "/Users/Crias/Web"
</VirtualHost>
<Directory "/Users/Crias/Web">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

There are other ways to accomplish this, but this has the fewest modifications to existing configurations and allows me to serve web traffic from the Web folder in my home directory.

MySQL

MySQL can be installed with HomeBrew. After installing, pay attention to the output for extra instructions on setting up the launch daemon.

brew install mysql
mysql.server start #To start MySQL
mysql.server stop  #To stop MySQL
mysql -uroot       #To connect as Root

#Set the root password to 'password' (phpMyAdmin will want this)
mysql-admin -uroot password password

Scala

Scala is easy to set up. In fact, it can be condensed down to a single command:

brew install scala sbt maven giter8

Python

Python is also installed by default. However, to do web-development (like Django) you may need wsgi.

To install mod_wsgi simply:

brew install homebrew/apache/mod_wsgi

When I first did this it gave me an error relating to the XCode Toolchains. If you get this error, install XCode and then execute the following command first:

cd /Applications/Xcode.app/Contents/Developer/Toolchains/ && sudo ln -s XcodeDefault.xctoolchain OSX10.9.xctoolchain

Now all you have to do is edit your /etc/apache2/httpd.conf and add the following line:

LoadModule wsgi_module /usr/local/Cellar/mod_wsgi/3.4/libexec/mod_wsgi.so

Use sudo apachectl -t to make sure it worked. (If not, check versions.)

PHP

PHP also comes pre-installed, so we’re just going to add it to our Apache instance.

To do this, edit /etc/apache2/httpd.conf and remove the hash-sign at the start of the LoadModule for php5.

Once that’s done, you should try to run a script like the following to ensure PHP and MySQL can talk:

<?php
    mysql_connect("localhost", "root", "password") or die(mysql_error());
?>

If that doesn’t work, you probably need to run the following commands:

cd /var 
sudo mkdir mysql
sudo chmod 755 mysql
cd mysql
ln -s /tmp/mysql.sock mysql.sock

Lastly, I recommend installing phpMyAdmin. It should be as simple as downloading and unzipping to your web folder. You can have a more complex setup, but that should get you started.

Other Software

I also recommend looking into the following software

QuickSilver
Similar to spotlight, but I prefer it. I usually disable spotlight shortcuts and use this instead.

iTerm2
I prefer this to Terminal. At one point I’ll add a handy script here that I use to color-code environments I SSH into using profiles.

SublimeText 2
Useful text editor, opens files as well as directories and very powerful.

Simplenote
Great for keeping notes synchronized across multiple machines. In fact, it’s how I kept all of the details on this page until I put it up here.

IntelliJ IDEA
Powerful IDE for Java, and the Community Edition is compatible with Scala and Python. Full version handles PHP, Node.js, Ruby, and everything else you could need.

Down-Time: Gaming

Bonus Accessories
SCUF Gaming XBox 360 Stealth (Wired)
TurtleBeach PX21 Headset

Applications
SteerMouse
Joystick Mapper
360Controller by MICE

Games
CounterStrike: Global Offensive
Left 4 Dead 2
Diablo III

The Rundown
Ok, I admit it. I’m a console gamer. Don’t worry though, I’m not about to tell you I play FPS with a controller. At least, not how you’re thinking…

My biggest issue is I can’t use two unfamiliar controls (mouse/keyboard) at the same time. I end up either standing still and aiming, or spraying wildly while I strafe. To get past this, I use a strange Hybrid setup. My RAT mouse in my right hand to aim, and a shiny (ok, matte) black two-paddle SCUF in my left. This lets me just move naturally the way I’ve spent years learning to, while still getting the precision of a mouse for aiming.

For the software, “360Controller” acts as the driver for the controller and “Joystick Mapper” lets me map any extra buttons that games don’t recognize. My RAT mouse also isn’t recognized by some games, so “SteerMouse” lets me map all of my buttons appropriately.

Advertisements

One comment on “My MacBook

  1. It’s hard to find your posts in google. I found it on 14 spot, you should build quality backlinks , it will help you to get more visitors.
    I know how to help you, just type in google – k2 seo tricks

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s