db(); $openidname = $_SESSION["sess_openid_auth_code"]; ?>

« April 2004 | Main | June 2004 »

May 2004 Archives

Thursday, 6 May 2004

No place like home

What a busy week.

I arrived in Amsterdam on Thursday, the 29th. I dumped my stuff, hired a bike (what a bloody rip-off; it would have been better to buy, but I'd have to leave it behind, anyway) and went to get my hair cut.

The next day, Koninginnedag, went off very well. The weather cooperated and Amsterdam quickly filled with people. Sarah and I spent the morning in De Jordaan, later heading down to Het Spui and Het Museumplein. It was too busy to hang around there for long, however, so we continued walking to De Pijp, where things were a little calmer.

While walking around Amsterdam, we ran into my barber, who informed me that Google had finally registered their intention to go public the day before. Thank Christ for that! At last, the press can stop pouring grain onto the rumour mill. It seems funny to have been in the eye of the hurricane for so long, at the very centre of all the commotion. Then, I fly to The Netherlands and end up finding out about the filing from my Dutch barber.

The next day, we took a train to Nijmegen, where we were met by Jules and Linda. We spent a pleasant evening, eating tapas, talking about the good old days at Sonera and speculating on the future. On Sunday, we all went walking in the woods around Nijmegen. It was nice to be out of an urban environment for a while.

Monday morning saw us up bright and early for an appointment with Ernst & Young, where we received some tax advice on our awkward Dutch-American affairs. Finally, we have some actual knowledge on which to base our decisions, rather than just hearsay and seemingly logical deductions. The situation actually turns out to be quite favourable for us, but will likely require me to dump my American green-card next year. It's complicated.

We spent the rest of the day biking around the Amstel, through the villages Ouderkerk a/d Amstel, Nes a/d Amstel and Uithoorn. On the way back, we rode through the Amsterdamse Bos and stopped at the geitenboederij, where we fed some goats and enjoyed an ice-cream in the sun. The simple pleasures are the best.

On Tuesday, we went to Keukenhof, near Leiden, an expensive and typically touristic destination, showing off Dutch flowers in all of their variegated glory. There were some nice fields of blooming bulbs during the train journey, too. I felt rather embarrassed to be there with all of the other tourists, but there were quite a lot of other Dutch people, too, so I suppose it's not such a tourist trap after all.

The next day saw us make a long bike trip across the river IJ and then up to Broek-in-Waterland, before travelling on to Monnickendam, Katwoude, Volendam, Marken, Uitdam, Durgerdam and Nieuwendam. This used to be one of my favourite routes, but I've aged a bit since then. It was also extremely windy on top of the dike between Marken and Durgerdam, which was good for working up some heat and strengthening those thigh muscles.

After a visit to my favourite eetcafe, Cambodja City, we biked down the Amstel to enjoy the Bevrijdingsdag concert on the water. Sarah was rather excited to be able to wave to Queen Beatrix and the Dutch prime-minister, Jan-Pieter Balkenende. There was a great atmosphere at the concert, aided by yet another day of dry weather.

Today has been spent walking around town and imagining how it will feel to be back here for good next year. It's rather odd to walk around a city all day, a city you once lived in for a decade, but then have no home to go to at the end of it. Still, at least we have the flat we're renting, which gives us a more homely feeling than staying at a hotel would. We can come home and watch AT5 with a glass of Chocomel and a gevulde koek. Like I said, I'm easy to please, when you get down to it.

Much warme chocolademelk met slagroom has been consumed on this trip, along with saucijzenbroodjes, vlaai and -- at long last -- some decent koffie. We haven't met up with as many people on this trip as last year (hardly any, actually), but that's been nice for building up an impression of how it will be to live here again. That's especially useful for Sarah, of course, who has never lived here.

We have one more day in NL before flying home, but we haven't yet planned how we're going to spend it. I can't say I'm looking forward to getting back.

Thursday, 13 May 2004

Next moves

I was thinking about the future today. To make any reasonable judgement about the future, one must demonstrate some wisdom with regard to the past.

When I was in my twenties and dissatisfied with my first few jobs, I can remember thinking that I was simply experiencing a bad run of luck. All my jobs had sucked in some way or other and if I could just jettison this lousy company, all would be well, because my next job would surely see me at a company where people do things the right way and I wouldn't have to be frustrated by the futility and wastage any more.

Sooner or later, though, you realise that it's impossible to roll the die a hundred times and see the 1 come up on top every time. The law of averages has to kick in somewhere, right? Rather reluctantly, one must ultimately conclude that inefficiency, wastage and futility are not the diseases of an ailing company; rather, they are endemic to the working environment itself and all companies suffer from these ailments to some extent.

A problem with the field of system administration is that it's hard to convince people of the necessity of good procedural methodology. All too often, young managers mistake their strong intuition for actual experiential wisdom. In other words, when they tell you which approach to take to a problem, be it technical, political or whatever, frequently they think they are drawing on experience in a similar situation, when really they are simply following a hunch. Balancing self-confidence with a healthy sense of one's limitations is quite a feat of acrobatics for many.

What I'm getting around to saying here is that there will always be particular kinds of frustrations when one is in the employ of another. One can either resign oneself to these frustrations, seek another line of work, or seek to liberate oneself from the yoke of toil in the service of another.

All of which simply brings me back to the beginning of this entry: I was thinking about the future. With the prospect of some modest financial reserves at my disposal within the next year or so, the notion of becoming my own boss becomes a very real and attractive possibility.

But what to do? If you are going to start a successful company, you need a good idea, funding, a certain measure of luck, conducive market conditions and expertise. The most important market condition is that there is a genuine need for the service or product you intend to offer.

I've always wanted to write a book related to the field of system administration, but the biggest problem there is identifying a gap in the market and coupling that with the need for expertise. It's hard enough to come up with an area of the field that hasn't already been published to death. If you succeed, you need to be pretty lucky to also happen to have strong expertise in that area.

I could write a bad book on several different topics. I am knowledgeable on all of them, but my book would not stand out from the crowd, because I am not a true expert in those fields. There are one or two areas in which I am fairly strongly skilled, but those areas are already represented by strong books covering the field. And that's why I haven't yet published a book: because I don't want to be a mediocre author.

Anyway, that was another digression, simply because it's analagous to deciding whether it makes sense to set up one's own company.

I can think of a massive gap in the market: a decent calendaring system that runs on Linux. Decent is a subjective notion, of course, and I won't go into it here. Suffice it to say that all solutions I've seen in the last ten years have been inadequate in one or more ways, sometimes hopelessly so.

So, why not set up a company to produce a decent calendaring package for Linux? Because I don't know enough about it. I'm not a talented software engineer, so I'd need to find someone else to do the actual work. I think a company has its greatest chance of success when started by a founder who, himself, has actual expertise in the field into which he is entering.

How about Linux consulting? Well... A packet-filtering firewall for customer X; a Web server for customer Y; e-mail infrastructure for customer Z. It's all very nice, but it's yesteryear for me. Been there, done that, etc. It just doesn't excite me any more.

Perhaps that lack of excitement is burn-out; perhaps I'm simply jaded with my profession. I suppose I won't really know until I've been out of work for several months and able to recuperate. I've met some great people in my career, however, and the thought of starting a company with them is very appealing. Of course, they, themselves, would have to be amenable to the idea, too, but I already know of a couple who would be.

So, it's really just a question of coming up with a good idea and being knowledgeable enough about the associated field to have the confidence and wherewithall to succeed. Easier said than done, though.

While on the subject of calendaring software, I released version 0.2.1 of Ruby/CorporateTime tonight.

Get new entry notifications via e-mail

There's now a small form in the sidebar on the left, where you can sign up for e-mail notification of new blog entries. Just fill in your e-mail address, click the button and you'll be signed up.

Monday, 17 May 2004

The war on spam

I spent a chunk of the weekend working on impoving caliban.org's anti-spam measures. I'd been running with the same configuration for quite a while, which was basically a basic Postfix configuration on the front-end and SpamAssassin on the back-end.

This worked well, but I decided it was time to consider using some real-time blackhole lists (or RBLs, as they're called). Since MAPS turned into a subscription-only service, I haven't been using blackhole lists for the outright rejection of mail, as I didn't think any of them were as trustworthy as MAPS.

I haven't had to do much professional SMTP server administration since 2000, so it had had been quite a while since my last assessment of other RBLs. In light of this, I decided to have a look at how professionally the currently active RBLs are administered.

I was pleased by what I found. A few of the lists appear to be very professionally administered, so I decided to use them for front-end mail rejection as opposed to just back-end spam tagging. Previously, I was using several blacklists in combination with SpamAssassin to tag messages as possible spam, but the messages were then subject to many other tests to determine whether they exhibited other spam-like characteristics.

Using up-front rejection, however, the mere presence of the sending host on one of these lists results in an immediate rejection of the message being offered. There's no second chance to inspect the actual header and body of the e-mail, so one needs a very high degree of confidence in the quality of the blackhole lists being used as the basis for this decision.

SpamAssassin's use of blacklists is a little different, anyway, as it will check the host in the chronologically first Received line to see whether the originating host is on a blacklist. Envelope-time rejection, however, as performed by an MTA, checks only the IP address of the connecting host and possibly the domains that it claims in the HELO and MAIL FROM lines.

I upgraded to Postfix 2.1 a few weeks ago. After this weekend's fine-tuning, the relevant part of main.cf now looks like this:

strict_rfc821_envelopes = yes
strict_mime_encoding_domain = yes

# Use this when reject_unknown_hostname is true
unknown_hostname_reject_code = 550

# Use this when reject_unknown_sender_domain is true
unknown_address_reject_code = 550

# Use this when reject_unverified_sender is true
unverified_sender_reject_code = 550

smtpd_client_restrictions = permit_mynetworks
# Lots of 'good' sites have broken reverse DNS
#                           reject_unknown_client

smtpd_helo_required = yes

smtpd_helo_restrictions = permit_mynetworks
                          reject_unauth_pipelining
                          reject_invalid_hostname
                          reject_non_fqdn_hostname
# This traps too many poorly configured good guys
#                         reject_unknown_hostname

smtpd_sender_restrictions = permit_mynetworks

smtpd_recipient_restrictions =  permit_mynetworks
                                reject_unauth_destination
                                check_recipient_maps
                                reject_multi_recipient_bounce
                                reject_non_fqdn_sender
                                reject_non_fqdn_recipient
                                reject_unknown_sender_domain
                                check_client_access hash:/etc/postfix/client_access
                                reject_rbl_client bl.spamcop.net
                                reject_rbl_client dnsbl.sorbs.net
                                reject_rbl_client rhsbl.sorbs.net
                                reject_rbl_client sbl-xbl.spamhaus.org
                                reject_unverified_sender
address_verify_map = btree:/etc/postfix/verify

In the above, I have optimised the order of the controls for network traffic and, by extension, response time. For example, there's no point running most of the tests if we already know that the intended recipient does not even exist. For this reason, most tests are deferred until the RCPT TO comes in.

First of all, we require an SMTP HELO and demand that the other side strictly comply with RFC821. For good measure, we also disallow unauthorised pipelining of SMTP commands. This, alone, will catch some very poorly written spamware in the act.

Next, when the HELO arrives, we check for a validly formed, fully-qualified hostname. Again, a few clueless spammers may be caught out here, but there are no significant gains. Ideally, we'd also reject anyone who passes us a hostname with no matching A record in DNS, but plenty of good sites don't have their act together here and it quickly became apparent that I was going to reject a lot of good mail with this in place.

Next, we let the MAIL FROM stage pass without action, as we are waiting for the RCPT TO before performing our main suite of tests. Once we get the data from the RCPT TO, we'll perform our MAIL FROM checks only if we decide we still need to.

At the RCPT TO stage, we order the tests for minimum network load and processing. We check that the remote side is not trying to relay and then the intended recipient does, in fact, exist. Next, we check for a fully qualified sender domain in the MAIL FROM as well as a fully qualified recipient in the RCPT TO. We also refuse any e-mail that is a multi-recipient bounce, which is another technique used by spammers for squeezing their messages into your server on a technicality. None of these checks requires any additional network traffic.

Next, we check DNS for an A record for the sender domain. If we find one, we then check a whitelist of domains that we always want to accept mail from. Basically, we want to spare them from the upcoming tests, which we can't guarantee they will pass and we always want to receive e-mail from these systems.

Now, the tests get a little heavier on the network. In turn, we check SpamCop, SORBS and Spamhaus for the IP of the remote host. If found, we reject the message on the spot. From my research, these lists demonstrate that they are fairly administered and that the chance of false positives is small. That wasn't always the case with SpamCop, but they seem to have improved a lot in recent times.

Any mail that has made it this far is doing pretty well, but there's one final test we subject it to at this point. We take the address in the MAIL FROM and use it to make an SMTP connection back to the sender, going as far as issuing a RCPT TO with that address, but not following up with the usual DATA section.

The purpose of this exercise is to ascertain whether the ostensible sender has a real account that can be delivered back to. A sender who cannot receive replies is considered spam and we reject the original incoming message. A cache of legitimate sender addresses is built up in order to minimise the amount of work that is needed for the verifcation process.

The directives that set reply codes to 550 are there to ensure that all rejections are permanent. Postfix defaults to a 450 response on these types of rejections, which signifies a transient error. That means the remote host is basically told to correct the problem and try again. Of course, that will never happen, so we cold-heartedly reject the message as soon as we find a problem with it. Otherwise, the remote side will periodically try to resend it and we will keep on needing to check it and reject it.

Since instituting these changes, I've been rejecting an awful lot of e-mail. Some of it is e-mail that SpamAssassin would previously have trapped anyway, but now I'm preventing it from ever entering the system. It's better to reject spam at SMTP-time, rather than accepting it into the system, as the latter course of action is rightfully interpreted by spammers as successful delivery. They don't care that the mail was later filtered and not read; they care only that it was accepted by the receiving server.

Postfix really is a superb piece of software and I highly recommend it. Few MTAs offer so much fine-tuning in the fight against spam, whilst still maintaining legible configuration files.

Tuesday, 18 May 2004

New notification mechanism

The old notification mechanism has been replaced with a new one in the shape of a Mailman mailing-list.

The old Movable Type notification facility did not require confirmation when subscribing to notifications, which could result in falsely subscribed users with no easy way to unsubscribe themselves. A Mailman mailing-list puts paid to that worry and also makes it possible for users to unsubscribe themselves at will.

So, if you want to receive a brief e-mail whenever an entry is posted to this blog, just subscribe to the mailing list.

Thursday, 20 May 2004

Taken for granted

It's so easy to take the good things in life for granted.

Now, I'm not saying that my job is perfect (shit; no job is perfect), but how many companies will bring in a team of professional mechanics to fix your bike, feed you a barbecued lunch outdoors in the sun, and hire a band to play chilled out ambient music for you while you eat?

And how many companies will do all of that for you on the same day?

The old folk like to tell us that we young folk don't know we're born. Although I'm not exactly young any more, I think they're right. In so many ways, we've never had it so good. Sometimes it's hard to remember that this is a job, not just some place to hang out, eat and chat with friends.

Friday, 21 May 2004

Accounting for spam

Since I wrote about my new anti-spam measures, the spam has been furiously banging up against my virtual front door.

Talking to a colleague on IRC tonight, I was inspired to write a quick Ruby script to report the progress since last Sunday:

 #!/usr/bin/ruby -w

 reject = Hash.new( 0 )

 while line = ARGF.gets
   case line
   when /un(verified|deliverable) address/
     next
   when /554 Service unavailable.* (blocked using .+?);/
     reject[$1] +=1
   when /NOQUEUE: reject:(?:.+?:.+?: )(.+?)[;:] from/
     reject[$1] +=1
   when /reject: header .+helo=.+?: (.+)$/
     reject[$1] +=1
   end
 end

 total = 0
 reject = reject.to_a.sort { |a,b| a[1] <=> b[1] }
 reject.each do |x|
   printf( "%-74s%5d\n", x[0], x[1] )
   total += x[1]
 end

 printf( "\n%-74s%5d\n", "Total blocked:", total )

Here are the results:

Bad attachment with file name extension: bat                                  1
Bad attachment with file name extension: cpl                                  1
Sender address rejected: need fully-qualified address                         2
Sender address rejected: Improper use of SMTP command pipelining              3
Bad attachment with file name extension: exe                                  5
Bad attachment with file name extension: com                                  8
Relay access denied                                                           9
Bad attachment with file name extension: scr                                 12
Bad attachment with file name extension: pif                                 25
Helo command rejected: Improper use of SMTP command pipelining               27
blocked using sbl-xbl.spamhaus.org                                           30
Helo command rejected: Host not found                                        58
Helo command rejected: need fully-qualified hostname                        124
blocked using dnsbl.sorbs.net                                               155
blocked using bl.spamcop.net                                                290
Sender address rejected: Domain not found                                  1619
Recipient address rejected: User unknown in local recipient table          6659

Total blocked:                                                             9028

All in all, I'm very pleased. Very little spam is making it through now. For the spam that does make it into the system, I also upgraded to a recent CVS snapshot of SpamAssassin this afternoon, so most of it still gets zapped before making it to the in-box of any of my users.

Sunday, 23 May 2004

System upgrade

After upgrading my laptop to Fedora Core 2 earlier this week, it was the turn of my workstation, file server and mail/web server today. The dirty deed is now complete and all of my systems are now finally running a 2.6.x kernel.

When I've got a bit more time, I'll be looking at the possibility of running SELinux on the servers.

Monday, 24 May 2004

Flower power

Sarah has put up photos of our recent trip back home to The Netherlands. She's also included some photos taken in London, where she was on business for a few days leading up to my arrival in Amsterdam.

If you like flowers, you should be particularly sure to look at our Keukenhof gallery. The Keukenhof is a large botanical garden full of beautiful tulips and hundreds of other types of flowers. It's located in Lisse, about 15km from Leiden.

The Dutch spring really shows off the flowers in all of their natural glory and the photos turned out really well, thanks to the vivid colour pallette option of our digital camera. This is the first time we've used it.

Friday, 28 May 2004

Kill Bush... Aw, it's only a game

Since ridding the world of this madman would cost you your liberty and most probably your life, you can, instead, act out your fantasies with the Anti-Bush On-line Video Game.

Føroyar

Here's a nice little webcam view of the harbour of Tórshavn, which is the capital of the Faroe Islands. This is where Sarah and I will be spending our summer holiday in August.

While I'm at it, I found quite a nice page of Arctic webcams on this Greenlandic site. Check out the views of Iceland, Greenland, Alaska, Svalbard and more.

Conspiracy theory

This is old news now, but since no mainstream news sources have picked up on the story, I thought it was worth mentioning here.

Basically, there is evidence to suggest that Nick Berg was, in fact, beheaded in the Abu Ghraib prison in Baghdad. Yes, the very same prison in which the American military has been torturing Iraqi citizens.

This conclusion was reached after analysis of the infamous beheading video.

Another suspicion that is doing the rounds is that the victim was actually already dead before he was beheaded. Before I heard this rumour, I had already wondered the same thing myself after watching the video, as there is no arterial gushing as the alleged killers cut into Berg's neck. Rather, the blood simply pours out, as if not under pressure.

There are numerous other sources discussing the matter and reaching their own conclusions, some quite calm and rational, others a little more excitable and based on a lot of circumstantial evidence.

Anyway, as I said, the mainstream media seem to be staying away from this for some reason. There's a lot of smoke there, but there's some fire, too, and some of these findings should have you demanding answers to the the questions they raise.

Saturday, 29 May 2004

Rambling again

Sarah and I are always saying to each other how we should get out of the house more, how we will regret not having taken the opportunity to see more of California during our years here once we a are back in Europe.

Today, we mustered the resolve to venture up along Page Mill Road towards Russian Ridge Open Space Preserve. Once there, we walked around Bay Area Ridge Trail to Ancient Oaks Trail and from there to Alder Spring Trail, then on to Hawk Ridge Trail before returning via Bay Area Ridge Trail.

On the way, there were lovely views of Pescadero Valley and Mindego Hill from atop Borel Hill. Dappled sunlight shone through the treetops and scattered the ground before us. It was very quiet and few people passed us on the trail. The sound of grass whispered all around us.

Why the hell don't we do this kind of thing more often? I love nature and can't get enough of it when on holiday, but back at home, the lure of the computer is often all too powerful and I end up stuck in front of it for hours on end, sucking on the cathode ray nipple. (Well, I have an LCD monitor, but couldn't find a decent metaphor for that.) Computers really are a form of addiction, especially when they're networked.

We really should work harder to enjoy more of California and the great outdoors in general. Before we know it, we'll be living somewhere again where the sun just doesn't shine for most of the year. Even if it did, there's so much unique scenery here, that I really feel we're squandering our time by not enjoying more of it more of the time.

It's sometimes quite hard to strike a healthy balance in life.

Sunday, 30 May 2004

Taken for granted, pt. II

A while back, I wrote about how it's easy to take the good things in life for granted. Nowhere is this more true than in the case of things that have been consistently present in one's life since the very beginning. Case in point: one's health.

As I've mentioned before, I'm lucky enough to work for a company that holds a health fayre each year. These have grown over the last three years, but basically they're a way for everyone from fitness club owners to nutrition advisors to come and ply their wares to Google's snack-bin pillaging hordes.

One of the perennials of the health fayre is the cholesterol check stand, which I have been to the last two years that the fayre has been running. This year, it was being offered again, so I thought I'd attend as usual and make sure that everything was still ship-shape and Bristol fashion.

Anyone who knows me will testify to the fact that I'm not exactly a healthy eater. I'm not the worst, by any means, but I could do a lot to improve my dietary intake. All too often, the stodgy gastronomic charms of the Back to Albuquerque Mexican station in the Google café (a.k.a. Charlie's Place) is too much to resist and I find myself clocking up yet another quesadilla in evidence against me.

Apart from poor eating habits, I don't engage in much regular exercise, either. I bike to work every day, which treats me to two bursts of respiratory exercise, lasting fifteen minutes a piece. Again, I could do a lot to improve, but I'm not the flabbiest specimen waddling along the corridors of the Plex each day.

I've never really thought much about my health. Apart from a bad bout of gastroenteritis when I was about eight years old, I've never really been floored by illness for any length of time. Indeed, I haven't had a single day off work in over four years of working in the US, which is possibly partially thanks to the warm Californian climate. I certainly didn't have quite such a good record back in Europe.

Anyway, the point I'm making is that I'm generally quite healthy. I'm never sick, never visit a doctor, never get a check-up; never even pop an aspirin if I get a mild headache. And, until I came to the US, I'd never had a cholesterol check, either.

As I said, the last two years I've had my cholesterol checked, simply because the test was available right there, for free, under my nose at my place of work. Sarah had also urged me to take the test, fearing a high result, on account of my fondness for fried food.

It's a pin-prick test, not a proper blood test, so there's some margin of error to be expected. It's also not a requirement to fast beforehand. Nevertheless, the past two years, my results have been good, at around the 160 mark. For European readers, I have no idea what that translates into in terms of European measurements, as I have never had my cholesterol measured back home.

Anyway, this year, a split measurement was being offered, one which subdivided the cholesterol check into two separate measurements, one for HDL and another for LDL.

I'm no expert, but the basic premise is that you want your LDL reading to be low, preferably under 130, whilst you ideally want an HDL readin of 45 or more. That's right: most people think that high cholesterol is bad, but apparently there are two types, good vs. bad, and you want your good cholesterol to be high.

So, I went along, my finger was pricked and the test was done. The result was that I had an LDL reading of 89, which is good, and an HDL reading of 16, which is remarkably low. My combined reading, which is more than just the sum of HDL and LDL, was 115. Then came the surprise...

The bloke who conducted the test revealed to me that, if I didn't take immediate action in the form of radical exercise, I could expect to suffer a stroke within the next five years. He was quite serious. I was rather taken aback and spent the rest of the day feeling somewhat dazed and distracted.

I'm not actually afraid to die, but this guy really caught me on the hop. Popping down to the company café for five minutes during the work day was not something I expected to result in such a mortal revelation, but there I was, forced to suddenly comtemplate the shuffling off of this mortal coil within a not too distant timeframe. Whilst not afraid, my predicted demise seemed untimely. After all, there were so many things left unfinished. Shit, there were so many things left unstarted!

I spoke to the company doctor that afternoon (yes, we're actually lucky enough to have an on-site doctor), who told me that my HDL reading, if true, would be the lowest she'd ever heard of. This reassured me somewhat, but she told me to go and get a real blood test done, anyway, so that I would know for sure.

What a hassle. I wasn't even registered with a doctor. Sarah recommended hers to me, so I fished around at home for my insurance details, which I have never needed, eventually located them and contacted the insurance company with a view to registering with Sarah's doctor, here in Mountain View.

Once that was done, I made an appointment with her and then pretty much had to put the matter out of my mind for more than a week, as that was as soon as I could get to see her. I'm not much of a worrier, though, so I slept soundly and really didn't think about the issue much at all.

Last Thursday, the appointment came around, so I headed down to Castro Street for the blood test. The doctor told me that she, too, had not heard of an HDL reading so low, which encouraged me further. She drew blood and off I went, putting the matter out of my mind again for a few days until the results of the test came back.

Yesterday, Saturday, the doctor called me with the results. As expected, the results of the first test were proved inaccurate. My LDL was measured at 90, which was actually just one point removed from the original test, so I can't complain about that. My HDL, however, was 38, not 16 as originally reported. This gives me a combined result of 143, which is very good.

Basically, I have fuck all to worry about. Not only am I highly unlikely to collapse and die in five years, my cholesterol levels are actually very good and I have nothing to fear at all. Of course, I could stand to increase my HDL levels a little, and the doctor recommended to me a glass of red wine each evening or a 50mg niacin supplement each day.

So, I'm not going to snuff it and might actually be able to realise a few of my goals before the lights go out. While never truly anxious, I'd be lying if I didn't admit to feeling a certain amount of relief at hearing the news. I'm not ready to log out of life's great time-sharing system just yet.

I'm still a little pissed off at the fucker who originally bore the bad news, though. What was he thinking? According to the doctor, even if I had had an HDL level of 16, that would still not have indicated the impending doom that was conveyed to me. She described the test conductor's comments as "outrageous".

I've a good mind to lodge a complaint about him. Like I said, I'm not a born worrier, but the same news in someone else's ear might have set them off on a spate of sleepless nights and tormented, anguished days, all for naught. Fucker!

On the positive side, being forced to contemplate the notion that my body might be preparing to rise up in mutiny against me, also inexorably led me to ruminate on the good things in my life and consider what really matters to me and what I would like to achieve during the remainder of my days on this earth.

I thought about my pet peeves, my countless marital squabbles and all of the shit I complain about with an almost daily frequency. You know what? None of it matters; none of it whatsoever. There are large issues that piss me off and that should continue to cause me consternation until I rectify them, but there's also a wealth of minor irks that really shouldn't raise the slightest blip on my spiritual radar. In the grand scheme of things, they simply don't matter.

And that's the one good thing to come out of all of this: a better perspective. Some things simply don't matter and it's good to be able to tell the difference between a big issue and a minor annoyance.

I think I'm a little wiser for the experience.

About May 2004

This page contains all entries posted to Caliban - Opinion and Righteous Anger in May 2004. They are listed from oldest to newest.

April 2004 is the previous archive.

June 2004 is the next archive.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.34