Good Clean Python Install on Mavericks OSX 10.9

I just spent the better part of an hour trying to effectively install version of python that doesn’t affect the rest of my system. This is usually pretty trivial effort according to most online articles. There are a few subtleties you might want to be aware of before you go and and well you know.

I am writing this mostly for myself so pardon the casual nature, and/or grammatical errors.

So you have a clean install of Mavericks, world is beautiful. You have a new beautiful new background and you have sudden inspiration to get some work done.

So many guides will tell you to do simply use system python which comes with easy_install and install pip with sudo.

Don’t do this, For many reasons.

  1. Homebrew always has the most recent version (currently 2.7.5).
  2. Apple has made significant changes to its bundled Python, potentially resulting in hidden bugs.
  3. Homebrew’s Python includes the latest Python package management tools: pip and Setuptools

First thing you do is install homebrew. Then do a little something like this.

brew install python

Once that is done, you will want to update your PATH variable to include the following directories in PATH

  1. /usr/local:
  2. /usr/local/bin:

You want to put local on PATH because it contains other important directories like lib and sbin.

What we are doing here is modifying the PATH variable which your system looks for commands, it will traverse the paths until it finds a match and use that. We want it to use copy of python in /usr/local

You can put these modifications in your .zshrc or .bashrc whichever floats your boat.

Now to test to see if you are using the correct python on your system (you have multiple copies now after the brew install) you want to you use:

which python

If you get /usr/bin/python you either didn’t set the PATH properly or didn’t reload either .zshrc or .bashrc (here is a hint: restart your terminal)

If you get a usr/local/bin/python you are winning. You will also want to make sure you are using the correct copy of pip on your system as well, use the same steps as above.

Never install anything with sudo. Don’t listen to random READMEs online. You make the decision, my son.

Now you install things you want system wide without having to worry about breaking your system’s copy of Python.

Swaggin’.

Everything is Free. Be Happy

It’s an incredible time to be alive. I remember growing up and constantly hearing there is no such a thing as a free lunch and believing it.

It isn’t the case anymore.

Tons of services have a free tier just to get you in the door and they work incredibly well considering you have literally paid nothing for it.

I currently run a screencasting site, a profit generating endeavor, for less than 30 bucks a month. I send emails to 1000+ people every few months. I have an extremely fast site with video hosted on Amazon S3. Extremely frugal web deployments are possible without compromising quality or speed.

All of these things, two decades ago would have cost an incredible amount of money. All you need to do is simply apply yourself and the rest is basically free.

Hosting

An excellent example is Heroku.

  • 1 Free Dyno (per application)
  • 1 Free 10K Rows Postgres Database (per application)

They also enforce providing free tier for all the services on their platform.

This is incredibly awesome. You can do deploy anything you want for free. Be happy.

Cloud Stuff

An excellent example here is Amazon Web Services.

They provide a super generous free tier for one year. One whole year. Holy shit.

  • 750 hours of Amazon EC2 Linux/UNIX or RHEL Micro Instance usage (613 MB of memory and 32-bit and 64-bit platform support) – enough hours to run continuously each month.
  • 5 GB of Amazon S3 standard storage, 20,000 Get Requests, and 2,000 Put Requests.
  • 10 Amazon Cloudwatch metrics, 10 alarms, and 1,000,000 API requests.

It allows you to deploy your site, store user files, and monitor your site all for free. Go here for more details.

You have an army of machines at your command. Be happy.

Open Source

An excellent example is all the code hosted on Github.

For whatever language or platform you choose to use there is a ton of free and open source software available to solve a multitude of problems and challenges. Here are a few:

You can leverage all this work for free. Be happy.

There are some cool initiatives to reward this work like Gittip check it out!

Got a question?

Something not working anymore or are you confused?

An excellent example is a little site called Stackoverflow.

Need a second eye, or just looking for best practices? If you can’t find something on this site or related sister sites, I will personally type up your questions and post them.

The answers you seek are out there.

Be happy.

Getting Organized.

I am not a particularly disorganized person, but I am a person who does avoid organizing things. 

I recently saw the computer of a friend of mine who had everything organized meticulously. I mean to the point where when he works on something he has all related material, all organized by year and by type.

He doesn’t share this information when works openly, but it was awe inspiring. 

This is incredible for two reasons he can look back on what he has done over the years and see how things are being done, and clearly see his improvement, plus all that nostalgia that comes with it. 

But, what really got me is that the mental structure he had for everything, there is very little for your mind to be worried about, no extra decisions to be made, just do what you set out to do. Beautiful. 

I have taken the stance for many years; just keep what i need, don’t hold on to nothing, once it’s served its purpose be done with it. no maintaining, no managing.

"Don’t let yourself get attached to anything you are not willing to walk out on in 30 seconds flat if you feel the heat around the corner." —  Neil McCauley

I used to be the type of guy who use to categorize and label everything, then something just happened, got too busy or whatever excuse is handy and stopped doing it. 

Currently here is a snapshot of my downloads folder. 

image

This would have drove me nuts a few years ago, and everytime I dive in there I always cringe, but I made a decision, and its time to make another one.

So here is to getting more meticulous.