MySQL big table migration helper
June 25th, 2010
With MySQL 5, altering large tables, including adding or dropping indexes, can be painfully slow. In order to alter the table, MySQL normally creates a temporary table with the new structure and copies rows into it, one-by-one, updating the indexes as it goes. Searches for “mysql slow index creation”, “mysql copy to tmp table” and “mysql alter table slow” will reveal all the gory details, but I'm going to concentrate on a workaround for Ruby on Rails applications.
» read more
Capistrano Lighthouse integration
May 14th, 2010
In my previous post I explained how I added some git hooks to ensure that we have lighthouse ticket info added to our git commit and merge messages. This means that when we push to github, the lighthouse service hook updates the tickets in lighthouse and anyone watching the ticket gets updated. This is only half the story though, we also update the tickets both when code is deployed to the staging server or the production system. Doing this manually is a pain in the behind, so I took the time to automate it...
» read more
Commit and merge hooks for Github and Lighthouse
April 30th, 2010
Github includes a service hook to allow commit messages containing Lighthouse ticket info trigger an update to the relevant tickets when you push changes. We use Lighthouse to keep track of bugs and feature requests, and were adding the ticket info to commit messages manually, but found ourselves both forgetting to do it, and making stupid typos. So, to make up for our incompetence, I automated the addition of ticket numbers and state to the commit messages using a couple of githooks…
» read more
Gittest - love child of Git and Autotest
March 10th, 2010
Continuous testing with autotest is great, especially when working on an existing application. Autotest runs in the background, and when you save a file, runs any matching tests and tells you if you've broken something, fantastic! Thing is though, there are lots of reasons why you don't want tests to run every, single time you make some little, tiny change to your code.
» read more
Forked Campfire plugin for Hudson
February 15th, 2010
Sometime before Christmas, we decided we'd had enough of CruiseControl.rb and needed a better continuous integration solution. We use Campfire to keep in touch with each other during the day and we'd always had build notifications from CC.rb sent to Campfire, so a similar feature was considered essential in any continuous integration solution that could be considered as a replacement.
» read more
ColdFusion is not UTF-8 encoded
August 10th, 2009
Yes, it's true, despite what you may have assumed, not all text within a ColdFusion application can be assumed to be UTF8 encoded unicode. While I was aware of this myself, I'd frequently forget the details, so I wrote it down and I've pasted it here so you can read it too (aren't you lucky!). If you had assumed that you were always dealing with UTF8 encoded unicode, or you're not even quite sure what UTF-8 encoded unicode means, you might just find this post interesting.
» read more
Upgrading Postgres/tsearch2 on CentOS 5
July 23rd, 2009
For anyone using the tsearch2 module with postgres version 8.1 included with CentOS 5, upgrading to 8.3 or later can be a little tricky and IMO, the official documentation and a number of blog posts I've read skip over the details. I documented what I did when I first upgraded one of our servers from 8.1 to 8.4, and I've posted an edited version here for anyone that might find it useful. The instructions should also be applicable to users of RHEL and Fedora.
» read more