Notes

Week 152

This is always a strange week in my annual calendar.

So much of my work is focussed around Greenbelt—which is now less than a week away—that many, many projects are approaching their culmination. Good news this week is that we’ve got a little of the funding we need for this year’s newspaper, that the GPD is once again paying off as preparations to sell talks online were easier by several orders of magnitude than any time in the past decade, and that the festival iPhone app was approved and is now on sale.

This year the week was that little bit stranger because of a rush project that came in on Monday, was due at 9am on Thursday, and the launch of which has now been pushed back to Monday. It’s for a very exciting client, and even though in the end we didn’t get nearly the freedom that we were initially led to expect I’m delighted that we’re associated with it.

Other than that, one of the long lingering projects finally seems to be signed off (note to self: in future don’t agree to support installation before knowing the server platform being used), another had a successful client demo mid-week and we now move on to a workshop and planning for a second phase of work, and I found someone to take over working with a client who need more time than I can offer.

Quite a good strange week, really.

Week 151

A calmer week at last. I tend to find that I’m especially prone to procrastination in weeks like this one, when there’s finally some breathing room after an intense period. I guess that’s okay, but it can lead to nasty surprises.

It’s largely been a week of “tidying up”. We got a whole range of small fixes made to a range of client sites and deployed them for testing. That led to some server wrangling, and in one case to lots of back-and-forth with a client’s internal IT person as we tried to figure out their rather complex Windows/IIS server setup and an awkward API that required an interface script be placed at a very specific URL.

I invested a good chunk of Monday getting the iPhone/iPad app that pab has built for Greenbelt packaged up and submitted for approval. Now that I’ve completed battle with iTunes Connect, we simply have to wait (watching the clock impatiently) and see what Apple say.

It’s been great to see the way that the Programming Database (referred to last week, generating contracts) can quickly feed the iPhone app and can be used to generate updates that can be downloaded over-the-air. For years we’ve talked about automating these sorts of systems, and this year we’ve made significant progress. The programming database/iPhone app combo is feeling quite compelling, and it’s becoming clear that they could be adapted and applied to a wide range of events. That deserves more consideration in the coming months.

Bundler and Monit playing nicely together

I’ve been setting monit up to keep an eye on the various parts associated with a Rails app (2.3.x but patched to use Bundler for gem management) and ran into a problem getting my Gemfile recognised properly.

The essential piece I’d missed was the BUNDLE_GEMFILE environment variable. So for, say, delayed_job what was needed was:

start program = "/usr/bin/env RAILS_ENV=production \
BUNDLE_GEMFILE=/var/www/my_app/current/Gemfile \
PATH=/opt/ruby/bin:$PATH \
/var/www/my_app/current/script/delayed_job  start"

Hopefully that’ll save someone a few minutes.

Week 150

Another week down and once again I can’t quite remember what was achieved. Uppermost in my mind is a client meeting from Wednesday that seemed very positive — everyone on the same page, clear targets and achievable (if tight) deadlines — but was shortly followed by an email that threw the whole project into confusion. The coming week will require that we resolve that.

There’s a new look in place for the the Ninja XX site that better fits with the print design they’ve recently had completed. The arrangements for our increasingly popular office are tidied up. My team of Greenbelt volunteers are all in place and the Programming Database we built for them is churning out contracts, saving people lots of time. We have Suite 4 in progress. Our new standard Ts&Cs are being finalised by the solicitor. Other projects are moving along. I’ve begun on plans to hand others over to new teams who could drive them forward over a longer term.

That second paragraph really helps offset the frustration of the first. More that to come, I hope.

Delayed Job dying silently

I’ve just completed migrating a client site from BackgrounDRb to delayed_job (which is a huge relief on several levels). I had hoped to complete the process this morning, but the delayed_job process kept dying on me without any apparent explanation in the usual logs.

Thankfully the RPM log in my app turned out to be capturing one vital detail — the MySQL server had “gone away”, Armed with that knowledge I was able to find this thread on github and from that Brandon’s pointer to the ‘reconnect’ option in database.yml. Setting that appears to have solved that last lingering problem.

And since it took a while to track down, it seemed worth sharing.