Diving in

I’m about to crash. It’s been a long time coming. I’ve felt myself teetering on the edge for a while.

Don’t try to rescue me. Don’t try to comfort me. Don’t try to make it all right. It isn’t.

Don’t try to stop me crying. The tears need to come. Don’t be afraid of my terror. Let my anger be. It’s not about you.

Be there. Be with me. Hold me. But don’t hold me back. I need to dive into this. That is the only way to the other side. It may seem for a while that I am drowning. Know that I will make it.

Assume the worst

I thought it would be a good idea to assume the worst. That way when I got my results if they were good I’d be delighted, over the moon. And if they were bad, I’d have made a start on coming to terms with where that left me. Facing death.

I was wrong.

The worst didn’t happen. My scans were clear. The cancer is contained in my prostate. That means I can be cured. Chop it out and all is well. Except it isn’t. And there’s the problem. I may have made a start with coming to terms with the fact that my life could be much shorter. But whilst I was focusing on that, I neglected to do anything about coming to terms with the consequences of surgery. And actually, they’re just as hard.

I’ll live, but not without cost. I’m facing some huge changes to my quality of life, to my self image and self esteem. This is going to be a rocky ride. Very soon I’m going to get a date. A date that represents the end of the life I’ve known, and the start something very different. The start of a new sexuality.

On not knowing what to say

It’s a phrase I’ve heard a lot in the last week. “I don’t know what to say”. Said with shock, with sadness, with terror, with honesty and sincerity, and so often with more than a hint of guilt. As if you feel you ought to have just the right words there ready and waiting; words that would make it all better; words that would somehow convey that you care so much better than you feel you are doing.

Well here’s the thing. There is nothing to say. No words to ease my terror. No words to soothe my anger at this massive injustice. There is no reason that you should know what to say. You have no more power to change this than I do. I wish you did. And I know you don’t.

What matters is that you care. And when you say “I don’t know what to say” there’s a beautiful honesty in that that says you care more than anything else can. There is no need to say more. No need to feel bad that you can’t say more. When I tell you that I have cancer, “I don’t know what to say” is exactly the right thing to say.

It’s not the waiting…

…it’s the fear that gets you. I’ll own that. It’s the fear that gets me. I’m fucking terrified.

Five days in and the numbness is wearing off. I cried about it for first time today. Away from distractions, things to keep my mind off it, in the still calmness of the bath. Why is it so difficult to cry? Is that about fear too?

Waiting is easy. I’ve been waiting months for the results from my final college assignment. But I know I passed that. I probably got a really good mark. And if I didn’t, so what? But this is different. This is fear. Every little ache in my body becomes a portent of bad news. A week ago I would have just brushed it off as a sign of my ageing, of not being as fit as I used to be. Today that twinge in my back absolutely fucking terrifies me.

Pull yourself together Chris. You lugged two boats about this afternoon, twisted badly to get them down the side of the house, loaded them onto the car. Of course your fucking back hurts! But in my mind this is the end. This is a sign that the wait will end in the worst news. It probably won’t. But you can’t reason with fear.

A new journey

Today is my first full day of knowing that I have cancer.

The knowledge changes everything. And yet it changes nothing. I still woke up at the normal time this morning. I’m still about to go off to work. By the time I finish writing this I’ll have come home from work, probably eaten my supper as usual. There is no denying it though; today is the first full day of a new journey. A journey I never wanted to take, but one that I can not avoid.

Yesterday a consultant perched on the end of a couch in front of me and told me in a very matter of fact way that I have cancer of the prostate. It wasn’t what I wanted to hear, but it didn’t come as a shock. It’s taken a while to get to this point. Blood tests. More blood tests. Biopsy. Waits for appointments. Waits for results. Much of that while it’s seemed the pointers were towards infection—even my response to the biopsy (huge discomfort) seemed to be suggesting infection. But by the time I walked into the consulting room yesterday, the clues were different.

When the hospital rang on Monday evening to ask me to come in  on Tuesday I was at least expecting a definitive resolution to the question. To know where I stand, and to get on and deal with it. What became clear in the moments following the news that the biopsy had found cancer is that I’m still far from that point. Now we need to find out if it has spread beyond the prostate, and that means more tests. More waits for appointments. More waits for results. More uncertainty.

And it’s the uncertainty which is the real horror in all of this. This is the journey I am embarking on. Venturing into the unknown. Out of control. Waiting for things to happen. For results to come back. For appointments to be made. For treatments to work. The shitty day that was yesterday will be just the first day of a shitty year or two. There’s a good chance at the end of all this I’ll be cured, but it’s all set to be one hell of a ride.

Dialing from Thunderbird’s address book: TBDialOut

I’ve had my first go at developing an extension for Thunderbird, the open source email client from Mozilla. The unimaginatively named TBDialOut is an extension that enables the user to place a phone call direct from Thunderbird’s address book.

I’ve actually been using an extension that does this for quite a while—VOIP3Dialer 1.1. But I recently upgraded to Thunderbird 3.1.7 from 2.something-or-other and VOIP3Dialer didn’t work with TB3. I really wanted to keep the funcionality that VOIP3Dialer offered, and with it not having been updated since July 2008, and its support web page gone it seemed there wasn’t much option but to learn how these extensions things work.

It didn’t take long to work out what had changed in Thunderbird’s address book to break things. That sorted, I started to look around a bit more and get to understand the inner workings of an extension. I ended up rewriting pretty much all of the functional code in VOIP3Dialer, and then started adding stuff.

TBDialOut introduces various user options, including a choice of URL schema to use and international dial prefixes. I then tackled the user interface. I added clickable links as well as the original context menu items and three buttons and made a few other usability tweaks. Finally, I changed the three buttons for a single, combined button that prompts the user to select which phone number to dial (home, work or mobile (cell phone)).

Screenshot of TBDialOut

TBDialOut in use

TBDialOut basically just passes the selected phone number to which ever programme is configured to handle the URL scheme you’ve chosen to use with TBDialOut. You can choose from sip:, tel:, callto: or skype:. I’m using it with a small Perl script that contacts my Asterisk server to set up a phone call. When I click on a number with TBDialOut the phones in the house ring out. Pick one up and you’re connected to the number you clicked.

Links

Christmas pudding

This is a deliciously tangy recipe for Christmas pudding that’s both sugar free and, if you pick your beer carefully, vegan. I’ve been making it for many years, since my vegan days, and my whole family rate it as the best Christmas pudding they’ve had. Be warned though, these quantities make a lot. That’s why I’m not actually making one this year—I’ve still got one of last year’s in the cupboard!

Ingredients

  • 100g whole wheat flour
  • 200g whole wheat bread crumbs
  • 200g currants
  • 200g sultanas
  • 200g raisins
  • rind of 1 orange
  • rind and juice of 1 lemon
  • 25g ground almonds
  • handful of coarsely chopped almonds
  • ½ teaspoon each of
    • ground ginger
    • cinnamon
    • mixed spice
  • 5 tablespoons sunflower oil
  • 275ml of your favourite dark ale or stout

Method

Mix all the ingredients together. Divide into sensible sized puddings. Roll up each pudding in baking parchment, then wrap  in two layers of tin foil.

Steam in a pressure cooker at full pressure for at least 1 hour.

Reheat by steaming in a pressure cooker for 15-20 minutes.

To serve, poor warmed brandy over the pudding and set light to it.

Ginger parkin

Sophie’s away for the weekend, but she’s been baking and has left me a pile of delicious ginger parkin in the cake tin. Ginger parkin is traditional fare in Yorkshire around hallowe’en/Samhain and bonfire night; at least it was in our house. This gorgeous, dark, sticky recipe comes from my great aunty Maggy. Since it’s an old recipe, it’s all written in old money…

IngredientsGinger parkin

  • 2 cups of flour
  • 1 cup of medium oatmeal
  • 1 cup of sugar
  • 1 cup of black treacle
  • at least 1 teaspoon of ginger
  • 1 teaspoon of baking powder
  • 1 cup of milk
  • 1 teaspoon of bicarbonate of soda
  • ¼lb margarine or butter
  • 1 beaten egg

Method

Cream the butter and sugar together. Add the beaten egg. Mix the bicarb in with the milk and add. Add the remaining ingredients and mix well. Warming the treacle first makes things a lot easier (sit the tin in some hot water).

Pour the mixture into square tins 2″ deep, lined with greaseproof paper. Bake in a slow oven (ie maximum of 150°C/300°F/gas mark 2) for about 1 hour.

Enjoy!

Pifimon: NetStumbler for Linux?

Well no, not really. But Pifimon does do a little of what NetStumbler does.

Pifimon is a small programme to monitor wireless networks under Linux. It is written in Perl and works by presenting the output of iwlist in a more friendly, and constantly updating, way.

The initial screen presents a list of visible access point with a summary of information about them in table format. The list is updated as fast as iwlist can rescan. You can select one access point to monitor and display that access point’s signal strength as a constantly updating histogram. Here are some screenshots:

List of access points

Initial screen: list of visible access points

Signal strength histogram

Monitoring the signal strength of one access point

Pifimon supports several wireless card drivers, and provides a way to extend support to other drivers. You can download the latest version (pifimon-0.4rc2.tar.gz) or get Pifimon from Github.

Why did I write it?

For various reasons I’ve become interested in building antennae to boost wifi coverage. I needed some way to get a constantly updating representation of signal strength to help test and align antennae. The thing most people seem to use is NetStumbler, but NetStumbler only runs on Windows. Most of my machines, and in particular the netbook I plan to use for testing, run Ubuntu.

After a bit of Googling I came across scanmeter, a bash script that processes the output of the Linux `iwlist scan` command to produce a histogram. Just what I needed! Well nearly, but the great thing about open source is that if it’s not quite right, you can change it.

I started playing about with scanmeter. I didn’t want to have to enter a whole MAC ID to select the cell I wanted to monitor. I thought it would be nice to colour code with a third colour for ‘moderate’. I put colours in the signal strength column of the cell list. Then I thought it would be nice if the cell list updated regularly…

By now I was really stretching the limits of my bash scripting. So I decided to rewrite it in Perl. A bit more googling threw up this blog on using Perl to neaten up iwlist’s output which provided some great ideas on parsing iwlist output with Perl. I rewrote that script as a Perl package, largely to allow for easy extending to cope with different wireless drivers producing different iwlist output. A few hours later I had my first stab at Pifimon…

Downloads

Links