Live data from Hacker News

Automating the setup of my perfect developer environment on OSX 10.8

vanderveer.be

11–20 of 33 posts

Re: Automating the setup of my perfect developer environment on OSX 10.8

#11

Easier way to get a good development environment and not have to deal with a crippled window manager: http://www.ubuntu.com/ On a more serious note, what is with the fad of running OSX and doing all of your work in a VM? OSX is terrible for anything serious and is enough of a pain in the ass that one must use a VM just to run their web application on their development machine. Why not just use Linux? Why not use Wind…

Not everyone has a say in the environment they use at work, and some people prefer using OSX for certain things. OSX has some decent tools for actually doing the coding in, for example.

Regarding your point about just using Linux. Even if I did run Linux as my desktop machine, I'd still use VMs and Vagrant because it allows me to have an (almost) identical setup to production. It's also much easier to spin up virtual machines running different version of software using this method. Just change one line of config, wait two minutes to spin up and you're good to go. You also don't have all kinds of crap from other projects polluting your environment too.

Re: Automating the setup of my perfect developer environment on OSX 10.8

#12

Easier way to get a good development environment and not have to deal with a crippled window manager: http://www.ubuntu.com/ On a more serious note, what is with the fad of running OSX and doing all of your work in a VM? OSX is terrible for anything serious and is enough of a pain in the ass that one must use a VM just to run their web application on their development machine. Why not just use Linux? Why not use Wind…

He's not running his dev environment in a VM. Just automating the setup of an OS X box for development. It's worth noting that most of these recipes can be easily modified for use on Ubuntu.

That's not true. The author is setting up his development environment on the host machine (OSX)

Re: Automating the setup of my perfect developer environment on OSX 10.8

#13

Great post. I am currently doing something very similar and documenting the process :) I'd recommend chef librarian over soloist though.

I'll admit that I don't see what the advantage of soloist is. What I would probably do is build the runlist via include_recipe statements in pivotal_workstation::default. Then I would create a Berkfile (http://berkshelf.com/) for it, use 'berks install --path' to bundle pivotal_workstation and all its dependencies, and tar that up and upload it somewhere.

The bootstrap then becomes something like

  gem install chef
  echo {"run_list": "recipe[pivotal_workstation]"} > node.json
  chef-solo -j node.json -r http://example.com/pivotal_workstation.tar.gz
The JSON could of course be customized if you needed to set any attributes.

Re: Automating the setup of my perfect developer environment on OSX 10.8

#14

Easier way to get a good development environment and not have to deal with a crippled window manager: http://www.ubuntu.com/ On a more serious note, what is with the fad of running OSX and doing all of your work in a VM? OSX is terrible for anything serious and is enough of a pain in the ass that one must use a VM just to run their web application on their development machine. Why not just use Linux? Why not use Wind…

And what if your development environment is for iOS apps?

How will ubuntu help you out installing xcode? Ubuntu is not the end all of things.

The "fad" of running things in a vm is so that you can validate that you've not forgotten something about your setup and deploy process. If you run it locally on your workstation that you've tweaked umpteen million ways you may have forgotten about some tweak you made and boom your deploy doesn't work. Fully automating a vm build and setup for local use helps work those kinks out. I'm not a web guy but do the same thing for my ec2 setups.

Also some of use prefer not to use Linux or Windows as our workstation. At work now I am typing this on an Arch linux box, but prefer osx for regular use primarily because of the less bs situation. In addition using windows for the base os means things like having to deal with stuff like cygwin/etc.... and their stupid peculiarities and quirks.

Re: Automating the setup of my perfect developer environment on OSX 10.8

#15

Terrific concept. What tools (if any) exist to do this kind of thing on Linux VM? Do they work equally well for non Ruby environments (I'm thinking specifically Python/Django)? I've spent the last week mucking around with VMware/bitnami to try to get a nice clean Python/Django/Pycharm VM for myself (with a template Django project that gracefully does both development and deployment). I'm almost done but what a long h…

roderikvdv's answer was helpful. I also found a long post discussing Django VMs specifically using vagrant:

http://stevelosh.com/blog/2011/06/django-advice/

Re: Automating the setup of my perfect developer environment on OSX 10.8

#17
Vaporware at the moment, but keep an eye out for Github's https://github.com/boxen which purports to do similar with Puppet. Demo'd here: http://www.youtube.com/watch?v=YlKXRdSAZhY While I'm linking up stuff, another take on masterless Puppet is https://github.com/unixorn/miyamoto

So many of these systems are still too big and complicated. I consider myself an amateur, and therefore I bootstrap with manually getting Dropbox, 1Password, and then update babushka links to do the rest from the canonical sources via github.

Re: Automating the setup of my perfect developer environment on OSX 10.8

#18
Great tips. Thanks.

I also use TotalFinder (tabbed finder replacement) as well as Asepsis (prevents .DS_Store files) from binaryage.com.

I'm a Java dev, flipping back and forth between IntelliJ and Eclipse. Using Eclipse since the pre-1.0 alpha, I still find it more comfortable. But IntelliJ's rate of improvement has prompted me to use it more.

I've become good friends with SSH. We do lots of deploy/ops work at this gig. I'd love to figure out how to put the remote host's hostname into the tab/title/prompt. I haven't tried zsh yet, not excited about putting zsh on all the remotes (which are a mix of Windows and Linux).

Our databases are Oracle, SQL Server, some legacy mainframe stuff. I use Squirrel SQL. I don't like it much. I haven't found any generic SQL clients as clean and smooth as MySQL's Sequel Pro client.

Re: Automating the setup of my perfect developer environment on OSX 10.8

#19
post #14

Easier way to get a good development environment and not have to deal with a crippled window manager: http://www.ubuntu.com/ On a more serious note, what is with the fad of running OSX and doing all of your work in a VM? OSX is terrible for anything serious and is enough of a pain in the ass that one must use a VM just to run their web application on their development machine. Why not just use Linux? Why not use Wind…

And what if your development environment is for iOS apps? How will ubuntu help you out installing xcode? Ubuntu is not the end all of things. The "fad" of running things in a vm is so that you can validate that you've not forgotten something about your setup and deploy process. If you run it locally on your workstation that you've tweaked umpteen million ways you may have forgotten about some tweak you made and boom…

The problem of replicating environments was already a solved issue for me. When I'm setting up an environment for the first time, I make note of all of the commands required to set it up and put them in a shell script. I guess it's nice to not have to tweak them when there's an OS upgrade.

The other side of solving this is writing tests to check that, for instance, a particular language extension is loaded. The application should be throwing a fit if something is missing in the environment.

Re: Automating the setup of my perfect developer environment on OSX 10.8

#20
post #14

Earlier quoted context omitted.

And what if your development environment is for iOS apps? How will ubuntu help you out installing xcode? Ubuntu is not the end all of things. The "fad" of running things in a vm is so that you can validate that you've not forgotten something about your setup and deploy process. If you run it locally on your workstation that you've tweaked umpteen million ways you may have forgotten about some tweak you made and boom…

The problem of replicating environments was already a solved issue for me. When I'm setting up an environment for the first time, I make note of all of the commands required to set it up and put them in a shell script. I guess it's nice to not have to tweak them when there's an OS upgrade. The other side of solving this is writing tests to check that, for instance, a particular language extension is loaded. The appli…

No arguments there. All this is is just chef recipes to do basically that.

This blog post is a good start but if you have an osx environment you can setup netboot and have a truly automatic install+setup with chef.

I'm a bigger fan of using chef/puppet/whatever over personal shell scripts as then you can test your automation out in a vm. I just build osx vm's and validate my osx automation with that.

Post reply on HN