Russian dolls in software development24 Jun 2014
It's been some time since I last posted. Five days a week, I spend 09:00-17:30 working on the next release of my employer's closed-source product, with a two hour commute each way. Add to that the time taken to eat, sleep and keep up with the rest of my life and you leave very little time except some sliver of evenings and weekends for anything else. <!-- more -->When it comes to software, I struggle to come up with ideas for something interesting and useful that hasn't already been done to death.
Occasionally I get a flash of an idea. This would be great if not for the fact that the next thing to inevitably happen is that I then get mired in a swamp of tangential decisions and "best practice". Want to work with Ruby? Great! First, you should set up a Virtualbox VM for your development. No, scratch that, you should use Vagrant! Maybe if you're lucky, there's a pre-prepared box you can use. Ah wait, now Docker is all the rage, use that instead. It's so much better! But remember, if you're on a Mac, don't use the tiny Docker shim-vm installed by default, because there are problems with it (hopefully you found this out before you ran into one of them.) You have to set up your own VM if you want to use Docker on OS X.
Okay, you got that sorted? Now install Ruby. And no, you can't just
apt-get install ruby, you need to use
rbenv to keep things clean, and you need to handle gem dependencies too. Make sure to use
bundler for that. You'll need to install a package manager for OS X to use most of these third-party tools and keep things clean, so go get Homebrew before you do anything else, then use it to install everything - but don't forget you'll need the XCode CLI tools (a rather large download in itself) before anything will work. Oh, you already installed some of this stuff outside of Homebrew's environment? Oh well, messy OS for you! Don't forget that you set it up this way, or you'll make your system messy at some unforseeable point in the future, and break the sandboxing that this stuff made super easy for you.
Maybe, when I've discovered a way to build an isolated, clean development environment that doesn't drive me insane, I'll get to writing something useful.