Bash: Search and replace across multiple files

I sometimes need to do a search and replace across lots of files. So, I made a function in my .bashrc to make it easy: function find_replace { FIND=$1 REPLACE=$2 echo "Finding $FIND and replacing with $REPLACE" grep -rl $FIND . grep -rl "$FIND" . | xargs sed -i -e ... Read more

Solr, Solango and being IO bound

We just hit a problem where the indexing performance of our Solr instance dropped massively when re-indexing the entire database. At the start it would be doing 100 docs/second but after an hour or so dropped down to 10/second and carried on falling. After looking at iostat I discovered that ... Read more

Google Paying $150m to Employees - Might not be crazy

According to this article on Techcrunch Google have offered $150 million in stock grants vesting over four years to keep two key employees. I think that this could be a clever move by Google. Google are trying hard to get excellent engineers going to Google. There are so many companies ... Read more

Is AWS the right host for us?

Short answer: probably not for 80% of sites out there. But, it is right for us. To find out why, read on. For a quick guide, skip to the conclusions ;-) Question of Cost AWS: generally more expensive for hardware For the hardware, AWS is expensive compared to traditional hosting ... Read more

How we migrated to AWS

A few weeks ago we (Conversocial) migrated our infrastructure from a shared Solaris host to AWS. I'm going to talk about how we did our migration, why we chose AWS is a big enough topic for another blog post. The two goals for the migration were: Migrate a customer at ... Read more

Tea rounds

When starting your first job there is a lot to learn. Especially for a developer. During this learning frenzy it is easy to overlook soft skills that will help you make friends in your new work place. The easiest and most important of these is how to make a tea ... Read more

Goodbye wordpress, hello Mumblr

I've been using a self-hosted Wordpress blog for about two years now. In those two years I've not been very impressed by it. It's easy to extend (sometimes) but it runs so slow and has so much clutter that I felt embarrassed by my blog. So, I've moved to Mumblr ... Read more

MongoDB Performance for more data than memory

I've recently been having a play around with MongoDB and it's really cool. One of the common messages I see all over is that you should only use it if your dataset fits into memory. I've not yet seen any benchmarks on what happens when it doesn't though. So, here ... Read more

Getting a slice of live data (MySQL Partial Dump)

Have you ever needed to get all the data for a single customer from a MySQL database? All their orders, the products they've viewed, their billing preferences, everything. I needed to do this for Conversocial when debugging a problem a customer was having. More recently, I've needed to do this ... Read more

Celery and Sentry - Recording Errors

As part of improving our infrastructure for Conversocial we wanted to add django-sentry. This little app groups together similar errors and makes diagnosing problems far easier. It integrates with django seamlessly, but, it needs a bit of work to get celery sending errors to it. This is not quite as ... Read more

Colin Howe

I'm Colin. I like coding, ultimate frisbee and startups. I am VP of engineering at Conversocial