The dog ate it

I’ve had a lot of reasons not to launch our new control panel over the last 6-8 months that I’ve been working on it: not good enough yet, useless contractors, distracted by marketing, overambitious design that I just had to get right however many months it took, and so on… today I got tantalisingly close but came up with a new reason: water coming through the walls!  After 20 minutes of monsoon in central York this afternoon, about six feet of carpet became… squelchy.  We’ve shuffled our desks over to one side of the office, huddled together closer than usual while our landlord’s minions start to fix it for us.  Nice to find out today that this had happened before in our office, and the site owners continued to hope for good weather rather than making their shonky building watertight 🙂  My  only real worry was for the server building, but we have aircon & dehumidifiers working overtime, plus there is a lot of soggy carpet dumped on the front step ripped up and dumped on the front step.

Since it really is quite close now, our new control panel will adds one simple, but hard-to-get-right feature: domains.  Registering, renewing, editing, automatically, with automatic billing.  We’ve been handling domain requests manually pretty much since day one, but they’re probably the largest number of support tickets we handle, and they really needed some automation.  First we needed an accounts system that didn’t suck, followed by a lot of web services glue in the middle, a Ruby library to talk to OpenSRS, some guesstimated matching of domains to accounts, and finally a control panel that didn’t actually punish its users for making a mistake in a form.  A lot of bootstrapping has gone on in the last 9 months in terms of rewrites of group development practices; while it’s been slow to deliver, I’m starting to get a warm glow about it all again.

I’ll make a fuller post once the panel is (re) launched, and will also spill the beans on some more of our hand-built systems that are dangerously close to being useeful.