If you use chef-solo to provision your production servers, Vagrant makes it easy to set up a production- like environment on a local VM for testing purposes. It can however seem like wasted time to have to manually replicate the contents of your node definition in your
Vagrantfile and more importantly it's easy to make a change to either the
Vagrantfile or the node definition and forget to update the other to match. In this post I'll look at a simple method of automatically generating Vagrant machines based on node definitions.
Onboarding new developers to a Rails projects is still a far harder task than it should be. A big part of this is that setting up a development environment for an app or suite of apps, getting the correct ruby versions, database versions etc running locally, can in many cases take upwards of a day. A combination of Vagrant and Docker can make this a thing of the past.
If you purchase a Geotrust SSL Certificate from DNSimple for your domain, there's a small amount of setup required to get the certificate in a format you can use with Nginx. This post includes an overview of the process and a simple bash script to automate it.
When deploying with Capistrano 3, it's often useful to be able to start a rails console without having to ssh into the target host and set it up manually. This can be particularly challenging if you're using rbenv as you have to ensure that
rails console is called with suitable environment variables set set to ensure that the rbenv Ruby is used not the system Ruby.
Git merge conflicts are something any developer who works in a team bigger than one, has to deal with from time to time. It's surprisingly common it seems to deal with these without really understanding what's going, I did for years and I know many others who still are.
Recently I've been experimenting with ways of teaching people to code which match the way I and other succesful developers I know have learnt. These focus less on theory and syntax and more on problem solving and "hacking things together". Now I'm looking for five people who want to learn to make stuff with Ruby to teach.
One of the most popular posts on this blog is on how to use Capistrano 2 to deploy Rails applications to a VPS, including the scenario when you want to run several different applications on the same server. Capistrano 3 has now been released and having upgraded several large production applications to use it, I've found there to be a lot of worthwhile improvements over v2. This post explains, with sample code, how to use Capistrano 3 to deploy one or several Rails applications to a VPS.
When deploying Rails Applications with Capistrano 2 it was common to
have tasks to tail log files on production servers so that
they could be viewed locally without sshing into the remote
machine(s). In this post I'll cover how to do this with Capistrano 3.
When I announced the release of my book, deploying rails applications, one of the most common questions I got was whether it covered deploying multiple apps to a single VPS. It does and since there was so much interest, I've put together a brief tutorial and sample code on the basics.
Vagrant makes it easy to manage and distribute virtual machines. Vagrant is an extremely powerful tool in itself with a particular strength of making it easy to distribute local testing environments to developers which (almost) perfectly mirror your production configuration.
This is a brief overview of how to use chef to automate the provisioning of a server for a Ruby on Rails application. Sample code is provided as a starting point at https://github.com/TalkingQuickly/rails-server-template
2021 Update: a revised version of this tutorial is available here
I’ve always been intrigued by books like “Reminiscences of a stock operator” where trading is based on continually watching a market and developing a “feel” for it. Having spent a lot of time experimenting with them, i’m generally skeptical of automatic rule based trading systems but remain intrigued about entirely discretionary, immersion based systems.
When coming from Mongoid from an Activerecord background, there are some
subtle differences around uniqueness and indexes which can cause hard to
There are a multitude of burning things I really need to do now. ShopOfMe is launching a huge new feature in five weeks, inbox zero has become “inbox less than three pages” and having just spoken to the doctors surgery I’ve been going to since I was a child, they’ve advised me I can't have an appointment because I don't exist.
At the start of 2012, my goal was fairly simple, remain solvent for a full year relying only on consulting income while leaving enough time to bootstrap ShopOfMe and InGuide. No-one has yet repossessed the computer I’m writing this on so it’s fair to say I got at least half way there.