Monday, December 15, 2008


So I recently took a trip to India, to attend the wedding of a friend from work. This was great fun and the trip was a hell of a learning experience in its own right (of which more anon).

There was, however, one element of the trip that proved a little... distracting. You see, I wasn't the only one who was willing to hop on a long-haul flight for the chance to see a proper Indian wedding. I had a fellow-traveller. A girl. Who I've had a mild crush on for a while.

I'm fairly sure she has no interest in me, and the trip probably did little to change her opinion given how fish-out-of-water we both were in Delhi. However, it's a demonstrable fact that close proximity to someone enhances one's emotional response to them*. In short, the crush has devolved into full-scale infatuation.

And then comes the office Christmas party. And she's wearing a gorgeous dress, looking incredible, and I'm feeling like the village idiot as I shamble around trying to dance without breaking anyone's toes. I can't even pluck up the courage to make a move. This sucks...

Now at this point you're probably thinking this is going to be another of those pitifully whiney posts I've been coming out with lately. But somewhere between the champagne and the Jack Daniels, I have a join-the-dots moment. I figure out what it is that's making me unhappy.

The girl is a part of it, sure, but I've had the same frustration when faced with my inability to move up the career ladder. It's the feeling that I've hit my limits, that I've found some kind of glass ceiling beyond which I can't progress. I stare out across the impenetrable ocean of my own inadequacies and weep, for there are no more worlds I can conquer.

This is just an organising principle for thoughts that have been percolating for a while, but describing problems helps me find solutions. It occured to me that, as long as I'm improving in one area of my life, I won't care so much about the rest.

And improvement takes less effort than I expected. I've spent the weekend tidying my flat. I've given a load of my old books to charity. I've sorted out dry-cleaning and food shopping and getting various parts of my life organised, and taking a bit of exercise.

Ah, the exercise. I'm very badly out of shape, and the first fifteen minutes of my half-hour jog on Saturday nearly did me in. But I reached the top of a hill, and I felt my muscles start to fall into line, and I got my breathing in check, and I looked at the world spread out before me, and I felt happy.

It's Sunday as I write this and I'm just about to head out for another run. I know it isn't solving all my problems: at some point there will be a reckoning with the girl, if only to give me closure. But I now know that, when the moment comes, I'll be a better person than I am today. And that's enough.

* Or at least that's how I imagine it would look to an outsider. Speaking from the inside of my own skull, I just think she's really smart, attractive, unconventional and generally fun to be around.
Read the full post

Wednesday, December 10, 2008

I don't know what they're smoking, but I want some

So I've just spent a couple of days frantically coding in (you guessed it) Excel/VBA. And I'm actually feeling surprisingly good about it.

This is because the task I'm dealing with involves extracting large blocks of data from various databases and then processing it in Excel. Up until a week ago, this was a truly hideous task for me, requiring a big messy chunk of partially-hardwired code to handle dumping the data into Excel.

Now, though, I'm happy. I've discovered a feature that takes care of all that: the QueryTable object. You just feed it an SQL query, point it at a cell, and it handles the rest. It has its limitations, but is generally rather nice. Apart from one issue.

Yes, there's always something. But this particular problem had me scratching my head in bewilderment: this lovely little feature has only the most cursory mention in the help file. I'd have been using it for months if I'd known about it.

The documentation it does have is likewise minimal. It took me two hours to figure out how to use a parametrised query, and actually getting a system up and running took a full working day.

Why, Microsoft? You actually did something right for a change: you produced a conceptually-elegant tool to solve a clearly-defined and commonly-occurring problem. There is almost nothing about QueryTables that I can complain about. So why the blazes aren't you shouting to the world about it?

Please please get the hang of when it's appropriate to blow your own trumpet. Or alternatively, pass me that spliff.
Read the full post

Thursday, December 04, 2008

Ground Rules

In the great discussion about God, it's quite common for otherwise perfectly sane people, on both sides of the argument, to start frothing at the mouth and claiming that the Other Side wishes to censor, physically injure or otherwise silence them.

In many cases, this is sheer paranoia. Most folks, religious or otherwise, tend to be pretty nice when you get to know them, and are happy to allow space for the beliefs of others.

In many cases, this is not paranoia. Religious arguments tend to attract a worrying number of nutjobs of all stripes. Once the legislators get involved, it's quite easy for little things like free speech to go right out the window.

As such, I would like to propose a code of conduct for religious debate. The purpose of this code is to mark out a middle ground in this debate between the various groups of crazies who want to see all belief systems but theirs forcibly purged from the planet.

Please leave a comment if you agree with this code, or if you wish to suggest changes to the wording. By signing up, you are showing solidarity with folks of other religious denominations who stand against the forces of zealotry in their own ranks.

The Moderacy Manifesto

I hold beliefs that touch on religious topics (henceforth "religious beliefs"). I feel these beliefs are justified. I reserve the right to discuss these beliefs: to present arguments in support of my beliefs, and to critique the arguments of others.

I recognise that other people hold different beliefs on these topics. I acknowledge that these people feel their beliefs are justified. I respect their right to hold and discuss their beliefs, even where those beliefs conflict with mine.

I do not judge an individual's moral character solely on the basis of their religious beliefs. I accept that it is possible to be a good person whilst holding religious beliefs different from mine.

I do not approve of religious discrimination that results in physical, legal or financial hardships. I will not materially discriminate against anyone solely on the basis of their religious beliefs. However, I reserve the right to materially discriminate based on their actions, even when those actions are inspired by religious beliefs. I also reserve the right to discriminate in ways that do not result in hardship.

I ask my government not to censor, fine, imprison or otherwise penalise any individual or group simply for holding or discussing particular religious beliefs. I ask my government not to endorse, subsidise or otherwise support any individual or group simply for holding or discussing particular religious beliefs. This includes individuals or groups that hold the same beliefs as me.

Although I may disagree with other participants in this discussion, I respect their sincerity and I respect their rights. I believe that mutual tolerance, of the form described above, is the best way to demonstrate that respect.
Read the full post