Ask HN: What's your programming setup?
I'm always looking for ways to make my programming environment and workflow more efficient. So what setup do you have that you think makes you work as efficiently as possible?
Right now I do all my code editing in OSX, and have a VMware virtual-machine running Ubuntu Server. I have a script running that syncs any changed files from OSX to the virtual machine, so I can run / test in an environment as close to production as possible.
Right now I'm looking into creating a base VM, to copy and store in the cloud somewhere, so I never have to setup again, And I really would like to be able to run it in the cloud and access it from anywhere, but that seems too expensive right now.
9 comments
[ 2.7 ms ] story [ 31.9 ms ] threadBuying tools, even if they only do one thing, is worthwhile as well. For me the price point where I'll buy is around $20. If you have a simple app that does one or two things I need on occasion -- and the app is relatively current and bug free -- then I'll buy it. I've rarely been disappointed with $20 tool purchase.
Beyond that I haven't found that code editors really have that much advantage over any other (I'm an experienced Vim user and I've used a handful of popular editors with project management features). Sometimes you're forced to use an IDE, like Xcode, or have to work on a different computer/OS, so there's not much point in finding the ultimate editor.
As far as 'hosting in the cloud goes', I just uploaded my base-boxes to my FTP server so whenever I lose the image or need it somewhere else Vagrant will just fetch it for me. Running it 'in the cloud' isn't something I feel like attempting, I prefer to be able to work regardless of a working internet connection.
When it comes to editors, I use Vim with a slew of plugins, most noticeably Vundle, python-mode, NerdTree, Powerline, CtrlP and syntastic (which takes care of calling syntax and style checkers when needed). Vim is available just about everywhere and with a carefully crafted .vimrc you can get the same working environment on any system so you don't have to familiarise yourself with a new set of tools every time. However, there will always be cases where you need to switch to different IDE like XCode if you're doing iOS development, or Eclipse for Java/Android.
Another practice I find useful, store your rc-files in something like git. Setting up a new working environment then just comes down to a `git clone` instead of mailing configuration snippets to yourself from one place to the other. You can even have platform or device specific branches that contain small changes for every environment.
I'm fairly new to OSX but my setup works pretty well for me. I think my biggest inefficiency is my text editor; it doesn't have syntax completion (as far as I know) and it can be a bit of a pain to work with more than 3-4 files at the same time. My long-term goal is to totally move to vim.
At home I also have two monitors (A must have in my personal opinion) but I use git for version control and sublime text editor for coding.
Would I recommend what I use to others? Nope. Everyone must find their own path. I tell others what I use, but only if they ask.
1) A jetbrains IDE (I love em)
2) Macbook, connected to large external monitor, wireless mouse/kb
3) Alfred App for quick moving around
4) Divy for resizing windows easily
5) Dropbox where projects rest
6) SourceTree by atlassian with git-flow
7) The hit list (one of my favorites because it requires little configuration, and theres hovering activity timer that keeps you aware of how long youve been working on a feature)
8) Heroku > idea to server in minutes (free addons make starting up a breeze)
2. Chrome visible in external, with inspector/console on macbook
3. Wireless Keyboard and Trackpad(GODSEND!)
4. Sublime Text 2 for coding
5. Bamboo for automated builds using ANT
6. iTerm2 for terminal on steroids
7. AWS for everything cloud
8. DNS made easy for low TTL Domain management
9. JIRA/Bitbucket for Issue/feature tracking connected to git commits
10. I just wanted to make the list have 10 things in it
I highly encourage everyone to try to get something like Bamboo/ANT working to automate your deployment. Its such a timesaver later.
I have VirtualBox set up with an image of Windows XP for IE testing. Other than that, I run all my webdev projects on my MBA, rather than in a Linux VM in VirtualBox. Homebrew is wicked.
I use PyCharm for my dev environment (I'm largely a Django dev at the moment). Say what you will about IDEs vs text editors (but please don't in this thread, really!), it's a great tool - worth it.
I have Linode VPSes running for staging/testing purposes that mirror production systems.