The setup
Over the past couple of years I have had the fortune to pick up some great habits from great people. It is time to share an updated setup. These are the things my work-life currently depends on.
Python
Life environment: OSX, iMac, MacBook Pro, and recently back to iPhone.
Dev environment: VirtualBox. I still like free, and VBox works just fine.
Dev OS: Ubuntu Server. No more esoteric nonsense like Arch. The skinnier Server Edition is preferred as I need very little graphics capability from my Linux. Cannot stand Linux GUIs.
Now, how it all works together:
- Linux runs the code and manages packages. All the dev stuff stays there. Linux runs in headless mode.
- OSX runs the editor (Sublime Text), terminal (iTerm), browsers, etc. and keeps my senses happy with beautiful fonts.
sshfs: the sanest way I know to share files between host and guest OSes. I keep a virtual directory mounted locally on OSX and point the editor there.
X11: always ready when I do need to bring up a GUI tool over a tunnel (I always ssh -X into my virtual machine), which are:
- git gui, gitk: if they are not part of your git-fu already, you are missing out
- tig: very useful for a quick history browse
- IPython+Notebook: I often run my code as I'm testing it, and IPython is the way to interact with the interpreter. As the experiment grows or whenever working with data plots, firing up Notebook is worth the hassle.
- nose+mock: I finally learned to stop worrying and love the tests. Yes, tests are always worth having.
- Sublime Text: this probably deserves a separate post. In short, breaking away from the IDE land has been a happy change.
- pianobar