Extending colborder in Blueprint CSS

Blueprint

For the last few months, when time has allowed, I’ve been working on a new CSS framework combining my favourite elements from Blueprint CSS framework and 960 Grid System but this week I ran into a problem.

I’m developing the adapted framework to use when I redesign my website later this year. When it’s completed I will also make it publicly available on my website to whoever wants to use it and adapt it.

This is what I want

On Friday night, while testing it, I spotted something about the original Blueprint framework that I hadn’t noticed before.

It was to do with the colborder rule. What if I want to do this:

12 columns of text

That is create two blocks of text, the first spanning six columns with two blank columns appended on the end, then a colborder (which as the name suggests is a border that span an entire column) and finally the second block of text which spans three columns.

Just to be clear, in this example I’m using an adapted Blueprint grid. The default grid uses 24 columns, but in this example I’m using 12 columns as fewer and wider columns make it easier to demonstrate what I’m talking about.

The code, I initially thought, would look like this:

45
46
47
48
49
50
51
52
53
<div id="column1" class="span-6 append-2 colborder">
  <h2>span-6 append-2 colborder</h2>
  <p>Lorem ipsum dolor sit amet, ... </p>
</div>
 
<div id="column2" class="span-3 last">
  <h3>span-3 last</h3>
  <p>Lorem ipsum dolor sit amet, ... </p>
</div>

My blank columns have disappeared

But testing this out, what this code actually gives you is this:

Six columns, a line, three columns

Hang on! Where are my two appended columns in the first block, the ones that should appear after the span-6 and before the colborder?

append-x and colborder don’t mix

To answer that I had to take a look at the Blueprint source code. As these three classes are to do with the layout grid these CSS rules span-6, append-2 and colborder are all defined in (my adapted) blueprint\src\grid.css:

58
59
60
.span-6 {
  width: 460px;
}
106
107
108
.append-2 {
  padding-right: 160px;
}
138
139
140
141
142
.colborder {
  padding-right: 49px;
  margin-right: 50px;
  border-right: 1px solid #eee;
}

So, in order:

  1. span-6 class is setting the width of the content to 460px.
  2. append-2 class is setting a padding-right of 160px.
  3. colborder is then overwriting padding-right with a width of 49px thereby making our appended two columns effectively disappear.

A new rule is required

I really wanted a solution that didn’t require any extra mark-up. Because I realised that this could be achieved with this code:

45
46
47
48
49
50
51
52
53
54
55
<div id="column1wrapper" class="span-8 colborder">
  <div id="column1" class="span-6 append-2">
    <h2>span-6 append-2</h2>
    <p>Lorem ipsum dolor sit amet, ... </p>
  </div>
</div>
 
<div id="column2" class="span-3 last">
  <h3>span-3 last</h3>
  <p>Lorem ipsum dolor sit amet, ... </p>
</div>

but that has an extra level of div tags.

After a little pondering, and a little scribbling on a scrap of paper, I realised that the solution lay in writing a new CSS rule that would prepend a colborder before the second block rather than append one after the first block.

In keeping with the append/prepend terminology of Blueprint I decided to call the new rule precolborder. The 12-columns version looks like this:

145
146
147
148
149
.precolborder {
  padding-left: 49px;
  margin-left: 29px;
  border-left: 1px solid #eee;
}

The 24-columns version (compatible with the default Blueprint CSS framework) looks like this:

165
166
167
168
169
170
171
/* Border with more whitespace on left hand side
    of a column, spans one column. */
.precolborder {
  padding-left: 24px;
  margin-left: 15px;
  border-left: 1px solid #eee;
}

and so our HTML now looks like this:

45
46
47
48
49
50
51
52
53
<div id="column1" class="span-6 append-2">
  <h2>span-6 colborder</h2>
  <p>Lorem ipsum dolor sit amet, ... </p>
</div>
 
<div id="column2" class="precolborder span-3 last">
  <h3>precolborder span-3 last</h3>
  <p>Lorem ipsum dolor sit amet, ... </p>
</div>

which looks like this on the rendered page:

Text spanning six columns, two blank columns, a border and then text spanning three columns

Which, if I’m not mistaken, is just what I wanted.

Feel free to use it if you like.

Social networks

Workgroup list of 3 computers

Now, there’s a happy sight: all 3 main computers at Potting Shed HQ happily talking to one another on the local area network.

The two laptops (Gareth-laptop and Jane-laptop) are both running Windows 7 Release Candidate (build 7100), the desktop (Study) is still running Windows XP SP3.

At first my laptop wouldn’t appear in the list of workgroup PCs on the study PC, and vice versa — although each could ping the other and connect successfully by entering the UNC address (e.g. \\computername\foldername). I wondered if it was an issue with the NodeType setting in the registry.

As soon as I changed the NodeType setting on the XP machine it was picked up on my laptop. It could very well be co-incidence but I’m not complaining.

A reboot of all three PCs certainly didn’t do any harm.

So … I wish I could have categorically reported what I did to make it work, but as with so many things in life it appears that all I had to do was switch it off and switch it back on again.

For humans, I believe, they call that ‘sleep’. I’m retiring to bed now to switch myself off for the duration of the night.

Are you listening Reuben and Joshua? ;)

Dealing with spam

Junk E-mail folder

There’s a really interesting article in this month’s PC Plus magazine about the war against spam which gave me the impetus to try to do something about those annoying spam messages that appear in my inbox with my email address in the ‘from’ field, like this:

123greetings.com [gareth@garethjmsaunders.co.uk]

Anti-spam software

I use Cloudmark Desktop, a spam blocking add-in for Microsoft Outlook 2007. It’s unobtrusive and pretty reliable, eliminating about 99% of all spam that gets delivered to my inbox. (In the last 4 days I’ve received 166 junk mail messages.)

But it has been those last 1% of messages that have been really annoying me these last few weeks, the ones that have been sent out to look as though they have come from my email account.

So I did a bit of investigating and have discovered a way that I can also send those messages to the Junk E-mail folder while retaining those emails that have genuinely been sent my myself (test emails or those that I’ve CC-ed or BCC-ed to myself for archiving purposes).

Outlook rules

Like most email clients Outlook allows you to define rules (sometimes known as filters).

Rules help you manage your e-mail messages by performing actions on messages that match a specific set of conditions. After you create a rule, Microsoft Outlook applies the rule when a message arrives in your Inbox or when you send a message.

1. Rules and Alerts…

In Outlook 2007 you can access the rules wizard by going to Tools > Rules and Alerts…

Outlook rules

Not surprisingly, this brings up the Rules and Alerts window:

Rules and Alerts

2. Email headers

And now for the science bit… It occurred to me that I needed to create a rule that did two things:

  1. Flag any emails that have my email address in the sender’s address.
  2. Check to see if I really did send those or not.

So within any message supposedly sent from myself I needed to look for some kind of unique value that could prove to Outlook that I really did send those emails. For that information I turned to the email headers.

In Outlook 2007 these are located on the Options panel, by clicking the tiny arrow at the bottom right of the panel:

Viewing Internet headers in Outlook 2007

As well as the information that you can immediately read within an email there is a lot of hidden data, known as ‘headers’, also transferred with each email; information such as where the email message was sent from, its return path (where the email should be sent if the recipient presses “Reply”).

Here’s an example from a random item of spam I received yesterday:


X-POP3-From: surveyingxq@rossiter.com
Return-path: <surveyingxq @rossiter.com>
Envelope-to: gareth@garethjmsaunders.co.uk
Delivery-date: Mon, 12 Oct 2009 13:17:47 +0100
Received: from laubervilliers-000-11-22-33.w444-555.abo.wanadoo.fr ([123.145.156.178]:25793 helo=SpeedTouch.LAN)
by server.mymailhost.co.uk with esmtp (Exim 4.54)
id 1MxJqT-0000Xc-4O
for gareth@garethjmsaunders.co.uk; Mon, 12 Oct 2009 13:17:46 +0100
Received: from 123.145.156.178 by mail.rossiter.com; Mon, 12 Oct 2009 14:17:43 +0100
Message-ID: <000d01ca4b36$00064ad0$6400a8c0@surveyingxq>
From: "123greetings.com" <gareth @garethjmsaunders.co.uk>
To: </gareth><gareth @garethjmsaunders.co.uk>
Subject: You've received a postcard
Date: Mon, 12 Oct 2009 14:17:43 +0100
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_NextPart_000_0006_01CA4B36.00064AD0"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.2180
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180</gareth></surveyingxq>

I can immediately identify a number of values here that prove to me that I didn’t send this email:

  1. The return-path is wrong. It’s not set to my email address. (With some testing, however, I discovered that this isn’t a reliable field to check against as some spammers also populate this with the email address they send the email to, i.e. yours!)
  2. The HELO value is also wrong — “HELO” is the SMTP command that the sending machine uses to identify itself to the receiving machine — it should be set to the network name of my PC, which for arguments’ sake we’ll call ‘GARETH-PC’.
  3. The X-Mailer value is also wrong. I don’t use Microsoft Outlook Express.
  4. I also noticed that this email didn’t have an Organization set in the headers. Now I know that I have set the organization information in my email account, so that’s another value I can check for.

So against any of these four items I can check any message that has been supposedly sent to me and determine whether I really have sent it or not.

3. My rules

So I have built up my rule piece by piece to read:

Apply this rule after the message arrives
with gareth@garethjmsaunders.co.uk in the sender’s address
move it to the Junk E-mail folder
except if the message header contains ‘helo=GARETH-PC’ or ‘my_alternative_isp.com’ or ‘Organization: My organization name’

And that’s it. Remarkably, it seems to work quite effectively. In the last few days that I’ve been using it I’ve had only 1 spam message left in my inbox. Everything else has been suitably and efficiently whisked away to the Junk E-mail folder. Long may that continue.

Fixing Blueprint CSS 0.7.1

Blueprint CSS

Note: Updated Tuesday 24 March 2009 @ 10:00

Blueprint CSS is a CSS framework. The latest version is v.0.8 but a lot of people are still using version 0.7.1, even though there are a number of irregularities in it.

So, this evening I’ve been sifting through the Blueprint CSS version 0.7.1 code and making a few corrections. The bulk of irregularities can be found in the source code (within the /blueprint/src/ folder) and not in the release code (/blueprint/screen.css) but these source files can be very useful so should really be fixed. There is also one error in the ie.css file in both the source and release code.

There may well be other edits, corrections or enhancements that could be made, but these are the obvious ones that I’ve spotted. Note that all line numbers refer to the original, unedited code’s line numbers, i.e. the code in version 0.7.1.

Copy everything

Rather than making changes to the original code, I created a copy of the Blueprint CSS 0.7.1 folder and imaginatively called it Blueprint CSS 0.7.2.

Edit #1: /blueprint/src/grid.css

The problem: a number of classes have been omitted. You simply have to do a compare between the code in grid.css and screen.css to see that .pull-6 to .pull-24 are missing from grid.css.

The solution: Replace the following lines of code:

145
146
147
148
149
150
151
152
153
154
155
.pull-1 { margin-left: -40px; }
.pull-2 { margin-left: -80px; }
.pull-3 { margin-left: -120px; }
.pull-4 { margin-left: -160px; }
.pull-5 { margin-left: -200px; }
 
.pull-1, .pull-2, .pull-3,
.pull-4, .pull-5, .pull-5 {
  float:left;
  position:relative;
}

with this code:

145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
.pull-1 {margin-left:-40px;}
.pull-2 {margin-left:-80px;}
.pull-3 {margin-left:-120px;}
.pull-4 {margin-left:-160px;}
.pull-5 {margin-left:-200px;}
.pull-6 {margin-left:-240px;}
.pull-7 {margin-left:-280px;}
.pull-8 {margin-left:-320px;}
.pull-9 {margin-left:-360px;}
.pull-10 {margin-left:-400px;}
.pull-11 {margin-left:-440px;}
.pull-12 {margin-left:-480px;}
.pull-13 {margin-left:-520px;}
.pull-14 {margin-left:-560px;}
.pull-15 {margin-left:-600px;}
.pull-16 {margin-left:-640px;}
.pull-17 {margin-left:-680px;}
.pull-18 {margin-left:-720px;}
.pull-19 {margin-left:-760px;}
.pull-20 {margin-left:-800px;}
.pull-21 {margin-left:-840px;}
.pull-22 {margin-left:-880px;}
.pull-23 {margin-left:-920px;}
.pull-24 {margin-left:-960px;}
 
.pull-1, .pull-2, .pull-3,
.pull-4, .pull-5, .pull-6,
.pull-7, .pull-8, .pull-9,
.pull-10, .pull-11, .pull-12,
.pull-13, .pull-14, .pull-15,
.pull-16, .pull-17, .pull-18,
.pull-19, .pull-20, .pull-21,
.pull-22, .pull-23, .pull-24 {
  float:left;
  position:relative;
 }

Edit #2: /blueprint/src/grid.css

The problem: a number of classes have been omitted. You simply have to do a compare between the code in grid.css and screen.css to see that .push-6 to .push-24 are missing from grid.css.

The solution: Replace the following lines of code:

157
158
159
160
161
162
163
164
165
166
167
.push-1 { margin: 0 -40px 1.5em 40px; }
.push-2 { margin: 0 -80px 1.5em 80px; }
.push-3 { margin: 0 -120px 1.5em 120px; }
.push-4 { margin: 0 -160px 1.5em 160px; }
.push-5 { margin: 0 -200px 1.5em 200px; }
 
.push-0, .push-1, .push-2,
.push-3, .push-4, .push-5 {
  float: right;
	position:relative;
}

with this code:

157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
.push-1 { margin: 0 -40px 1.5em 40px; }
.push-2 { margin: 0 -80px 1.5em 80px; }
.push-3 { margin: 0 -120px 1.5em 120px; }
.push-4 { margin: 0 -160px 1.5em 160px; }
.push-5 { margin: 0 -200px 1.5em 200px; }
.push-6 {margin:0 -240px 1.5em 240px;}
.push-7 {margin:0 -280px 1.5em 280px;}
.push-8 {margin:0 -320px 1.5em 320px;}
.push-9 {margin:0 -360px 1.5em 360px;}
.push-10 {margin:0 -400px 1.5em 400px;}
.push-11 {margin:0 -440px 1.5em 440px;}
.push-12 {margin:0 -480px 1.5em 480px;}
.push-13 {margin:0 -520px 1.5em 520px;}
.push-14 {margin:0 -560px 1.5em 560px;}
.push-15 {margin:0 -600px 1.5em 600px;}
.push-16 {margin:0 -640px 1.5em 640px;}
.push-17 {margin:0 -680px 1.5em 680px;}
.push-18 {margin:0 -720px 1.5em 720px;}
.push-19 {margin:0 -760px 1.5em 760px;}
.push-20 {margin:0 -800px 1.5em 800px;}
.push-21 {margin:0 -840px 1.5em 840px;}
.push-22 {margin:0 -880px 1.5em 880px;}
.push-23 {margin:0 -920px 1.5em 920px;}
.push-24 {margin:0 -960px 1.5em 960px;}
 
.push-1, .push-2, .push-3,
.push-4, .push-5, .push-6,
.push-7, .push-8, .push-9,
.push-10, .push-11, .push-12,
.push-13, .push-14, .push-15,
.push-16, .push-17, .push-18,
.push-19, .push-20, .push-21,
.push-22, .push-23, .push-24 {
  float:right;
  position:relative;
}

Edit #3: /blueprint/src/typography.css

The problem: the .left class has been omitted, which can cause unexpected results.

The solution: Replace the following lines of code:

40
p img { float: left; margin: 1.5em 1.5em 1.5em 0; padding: 0; }

with this code:

40
p img.left { float: left; margin: 1.5em 1.5em 1.5em 0; padding: 0; }

Edit #4: /blueprint/screen.css

The problem: As above, the .left class has been omitted, which can cause unexpected results. Do exactly the same in the release code, i.e.

The solution: Replace the following lines of code:

34
p img { float: left; margin: 1.5em 1.5em 1.5em 0; padding: 0; }

with this code:

34
p img.left { float: left; margin: 1.5em 1.5em 1.5em 0; padding: 0; }

Edit #5: /blueprint/src/typography.css

The problem: the h4 tag has an incorrect height declaration, which breaks things if the h4 line wraps a line. (Thanks to Steve Yorkstone for spotting this one.)

The solution: Replace the following lines of code:

26
h4 { font-size: 1.2em; line-height: 1.25; margin-bottom: 1.25em; height: 1.25em; }

with this code:

26
h4 { font-size: 1.2em; line-height: 1.25; margin-bottom: 1.25em;}

Edit #6: /blueprint/screen.css

The problem: As above, the h4 tag has an incorrect height declaration, which breaks things if the h4 line wraps a line.

The solution: Replace the following lines of code:

29
h4 {font-size:1.2em;line-height:1.25;margin-bottom:1.25em;height:1.25em;}

with this code:

29
h4 {font-size:1.2em;line-height:1.25;margin-bottom:1.25em;}

Edit #7: /blueprint/src/ie.css

The problem: Legacy code from version 0.6 has been left in. It needs to be replaced with the current way of defining the grid, namely a div.span-x for each column.

The solution: Replace the following lines of code:

15
* html .column { overflow-x: hidden; }

with this code:

15
16
17
18
19
20
21
22
23
24
25
26
27
28
* html div.span-1, * html div.span-2,
* html div.span-3, * html div.span-4,
* html div.span-5, * html div.span-6,
* html div.span-7, * html div.span-8,
* html div.span-9, * html div.span-10,
* html div.span-11, * html div.span-12,
* html div.span-13, * html div.span-14,
* html div.span-15, * html div.span-16,
* html div.span-17, * html div.span-18,
* html div.span-19, * html div.span-20,
* html div.span-21, * html div.span-22,
* html div.span-23, * html div.span-24 {
  overflow-x:hidden;
}

Edit #8: /blueprint/ie.css

The problem: As above, legacy code from version 0.6 has been left in. It needs to be replaced with the current way of defining the grid, namely a div.span-x for each column. Do exactly the same with the release code, i.e.:

The solution: Replace the following lines of code:

16
* html .column { overflow-x: hidden; }

with this code:

16
17
18
19
20
21
22
23
24
25
26
27
28
29
* html div.span-1, * html div.span-2,
* html div.span-3, * html div.span-4,
* html div.span-5, * html div.span-6,
* html div.span-7, * html div.span-8,
* html div.span-9, * html div.span-10,
* html div.span-11, * html div.span-12,
* html div.span-13, * html div.span-14,
* html div.span-15, * html div.span-16,
* html div.span-17, * html div.span-18,
* html div.span-19, * html div.span-20,
* html div.span-21, * html div.span-22,
* html div.span-23, * html div.span-24 {
  overflow-x:hidden;
}

Changelog

The last thing I do is update the changelog file to record the edits made, and change the version number in screen.css to 0.7.2 so that I know that this is my updated version.

I hope that helps someone.

Updates to version 0.8

I’ll blog later about things I’ve spotted need fixing in version 0.8.

Fixing ActiveSync woes with Outlook 2007

Microsoft ActiveSync

Now here’s a remarkable (even blogable) thing: my slow Windows Mobile to Outlook ActiveSync synchronization woes now appear to be a thing of the past. But not before running into some difficulties.

After I upgraded from Microsoft Outlook 2003 to Microsoft Outlook 2007 ActiveSync point-blank refused to connect to my beloved O2 Xda Orbit.

Not only had I upgraded Outlook itself, I’d also moved from the older “Outlook 97-2002″ PST file format to the newer “Outlook 2003-2007″ format. I didn’t even realise that I had been working with the older format. That must go back to my upgrade from Outlook 2000 to 2003.

My usual solutions did nothing to help:

  • Remove the Windows Mobile 6 device from the cradle and then reseat it.
  • Reboot the Windows Mobile 6 device.
  • Reboot the Windows XP device.
  • Run scanpst.exe on my Outlook.pst file.

I went for a solution-hunt on Google, and discovered that disabling the advanced nework functionality might just do the trick. And you know what: it did.

What I did

  1. Click Start > Settings
  2. Click on the Connections tab, and you see this:

Windows Mobile 6 Settings

  1. Double-tap the “USB to PC” icon
  2. Now untick the only option available: “Enable advanced network functionality”.
  3. Click OK button (top right).

Windows Mobile 6 USB to PC settings

Now everything seems to be running faster and more responsive on my O2 Xda Orbit (not just connecting to ActiveSync but accessing menus, calendar data, contacts, applications start faster), and it connects to ActiveSync first time, even straight after a system reboot. Previously it would always object, and I’d need to remove it from the cradle and leave it until after the system had completely booted up.

But …

The only thing is that I’m not entirely sure what “advanced network functionality” is. I’m not sure what I’ve disabled, what I’m missing out on … any ideas?

How I took back my life

Filing

On the whole, over the years I’ve managed to keep myself pretty well organized. As a child growing up I was always reorganizing my room: rearranging the order of books, folders, stationery, … everything! If it wasn’t nailed down I moved it. It’s probably inevitable that I should get a job working as an information architect!

A few friends have been urging me for months to blog about how my organizational method works for me, so here it is. But before I get onto that, here’s a little of the journey that led me to where I am.

A short history of organization

I always knew there was room for improvement. I’d adapt and improve my methods for filing documents, managing tasks, keeping a diary. At Selkirk High School I had my trusty school diary — when it wasn’t being stolen and scribbled on by Phil Graham — which recorded what I should be doing and when.

In 1989 I moved to St Andrews and I bought myself a cheapish Filofax clone, which I loved and cherished and packed full of useless stuff that probably made me less productive. But it did have tabs, and a lot of coloured paper — that’s got to count for something, surely.

In 1996 I bought my first Psion, a Siena 512KB. It was a life-saver: now I could keep everything in it, neatly organized. No more scribbling out entries, no more running out of contact sheets because everyone listed under “S” had moved and moved again.

My Psion became central to how I organized my life. And then I discovered that I could synchronize it with Schedule+, and then Microsoft Outlook 2000. The joys!

Crisis

Fast forward to 2003 and you’ll find that Jane and I have just moved from Inverness to Edinburgh. I’m now working with two parishes and I’m beginning to panic. The organizational methods and techniques that I’ve evolved are now being stretched to the limit and I’m beginning to panic.

Really beginning to panic. I just couldn’t keep on top of everything that I needed to do. I remember one morning where I was sitting at my desk in the study and my head was spinning. I had so much to do, but really didn’t know where to start.

I needed assistance, and I need it immediately.

Take Back Your Life

I found it in a book called Take Back Your Life by Sally McGhee, as documented on my blog entry of 25 January 2005.

Take Back Your Life book cover

It’s a really fantastic book, that draws on David Allen’s Getting Things Done techniques but instead of notebooks and diaries and baskets McGhee advocates the use of Microsoft Outlook and a PDA. Works for me!

So this is what I do:

1. Collection points

From my blog post of 2005:

One of the first steps, McGhee says, is to work out how many collection points we use. That is, how many locations do you collect information and tasks from? I was amazed to discover that I had 28 different locations. I’ve now reduced this to eight, which is far more manageable.

Three years later and I now have four (give or take):

  1. In-tray
  2. Mobile phone/PDA
  3. Telephone/answering machine
  4. Email

In tray

My in-tray at home

Pretty much everything goes into my in-tray at home:

  • all mail
  • books
  • CDs
  • contents of my bag
  • documents
  • magazines
  • scribbled notes
  • telephone messages

Really, whatever I need to deal with or sort or tidy away. It all gets dumped into my in-tray. It’s reassuring to know that anything that I’ve not processed yet goes into my in-tray, into the one location that is my main collection point.

At one point in Edinburgh I had no fewer than eight in-trays in my study. It was totally unmanageable.

You’ll notice that there are two in-tray stacks — the one on the left is mine, the one of the right is Jane’s. My in-tray has three levels:

  1. In
  2. Post out
  3. Waiting for

PDA/Outlook

Anything that doesn’t go into my in-tray goes directly into my PDA (O2 Xda Orbit running Windows Mobile 6) or into Outlook Tasks or Calendar — and since my PDA synchronizes with Outlook at both home and work everything ends up in Outlook.

So when I sit down to work out what I need to do I really have to look in only two locations:

  1. My in-tray
  2. Outlook

2. Processing my in-tray

In-tray contents moved to my desk

The next thing I do is begin to process my in-tray. I know from experience that even if the tray is stacked 12 inches high I will still get through it in under an hour. It doesn’t intimidate me how much stuff is in the tray. In fact, quite the opposite, I’m reassured that everything I need to deal with will be processed in one sitting.

I move the contents of my in-tray onto my desk, and starting at the top work through it piece by piece making a decision on every item. There are four options:

  • Do it
  • Delegate it
  • Defer it
  • Delete it

A lot of stuff I can do in less than 5 minutes. Some things just need reading, or throwing into the recycling, or filing away in my filing cabinet:

Filing cabinet

Anything that needs to be deferred for later I add to my Outlook Tasks. Sometimes I’ll add it to Outlook and file the documentation in the filing cabinet (because at least I’ll know where it is when I need to find it later).

3. Processing Outlook Tasks

Usually within 30 minutes I have a clear desk, a few items in my Post Out tray and it’s time to move onto my Outlook Tasks. This is to deal with tasks that I’ve promised to do when I’m out and about, or at work, or have entered into Outlook while processing my in-tray.

Screenshot of Outlook Tasks 2003

Outlook allows you to categorize your tasks, there is also one, default uncategorized group into which any new item is automatically added. Following the guidelines in Sally McGhee’s book I have categories such as:

  • Home Projects
  • Work Projects
  • Blog
  • Computer
  • Desk
  • Home
  • Phone
  • Shopping
  • Waiting for
  • Someday Oneday

Download your head

Before I go any further I often start by ‘downloading my head’: getting out of my head those things that I said I’d do but haven’t recorded anywhere else. This is a great opportunity to stop relying on my memory — that’s why I used to get so stressed.

The first time I tried this exercise I ‘downloaded’ over 85 items … and then was amazed at how relaxed and calm I felt. But it stood to reason that since I was no longer relying on my memory to hold everything it freed my brain to do what it does best: think and plan.

Process

Using similar criteria for dealing with my in-tray I’ll start at the top and work my way through the list, making a decision on each item:

  • Do it
  • Delegate it
  • Defer it
  • Delete it

Some items I do immediately, then delete from the list. Other items get deleted immediately, usually because I’ve decided that it’s no longer a priority. Further items may get delegated to someone else so I’ll either write to them or email them.

If I defer an item in my task list I’ll usually do one of two things:

  • Categorize it within Tasks — these I think David Allen calls “contexts”: where do I need to carry this out? At home, at my desk, on my computer, when I’m shopping? Or …
  • I’ll schedule a time for it by moving it from my task list into my calendar

4. My calendar

This last step was one of the most significant when I moved to this method. Now I have everything in one place: in Outlook (and synchronized on my phone/PDA), I know what I’ve said I’d do (my tasks) and in many case when I’ll do them (my calendar).

Further improvements

I’ve been using this method now for about 3.5 years and I keep refining it, tweaking it to make it a little better and more effective, particularly as my responsibilities change and as I respond to the different tasks and projects that I take on, both at work and at home.

I know when I need to go back to my task list and calendar and start planning again because it’s at those moments that I begin to feel stressed and overwhelmed. It’s during those moments that I realise: I’m not managing my tasks, they’re managing me. Then half-an-hour later once I’ve processed my in-tray and Outlook tasks and scheduled things I feel relaxed and in control once again.

That’s about it in a nutshell. The only really significant thing that I’ve missed out is how I manage my projects within Outlook, but perhaps that could be a post for another day.

Fix for MS Update KB951748 and ZoneAlarm

ZoneAlarm Pro version 7.0.483.000
The new version of ZoneAlarm Pro (version 7.0.483.000) now resides happily alongside Microsoft Update KB951748.

I wasn’t online last night otherwise I’d have seen the HUGE number of comments on my last post about the merry dance that the latest Microsoft Update KB951748 caused for ZoneAlarm users: Microsoft Update KB951748 and ZoneAlarm woes. Thanks for all your comments, folks.

Before I go any further, a big hand to the boffins at Check Point, the company who develop ZoneAlarm for their swift action in fixing the issue caused by this recent Windows Update.

ZoneAlarm Update now available

When I switched on my PC this morning I was presented with a ZoneAlarm update notification:

ZoneAlarm Pro Service Agent window

which had a very clear indication why this update was necessary:

A criticial ZoneAlarm Security Update is now available. This update is required to resolve a problem with the Microsoft Update KB951748, which may cause loss of internet access for ZoneAlarm users on Windows 2000 and XP.

You can also download the update manually from the ZoneAlarm website. The update is available for these products:

  • ZoneAlarm Internet Security Suite
  • ZoneAlarm Pro
  • ZoneAlarm Antivirus
  • ZoneAlarm Anti-Spyware
  • ZoneAlarm Basic Firewall

Once installed you will be required to reboot your PC or laptop. I’d recommend that you save your work and close down any applications while you install the update, listen to some soothing music and make yourself a nice cup of tea.

Now install Windows Update KB951748

With Windows happily rebooted it’s now time to install (or re-install) Microsoft Update KB951748. If you’ve not instructed Windows Update to ignore that particular update (which I did, and more on that in a moment) then the little yellow shield will soon appear in the notification area (next to the clock) and likely either go ahead and install the update or prompt you to install, depending on your Automatic Updates settings.

For me, the update didn’t require a reboot.

Windows Automatic Updates

PeterS made a good point in his comment on the last post:

You probably have Windows Updates set to download updates automatically in the background, when you are online. So after you have uninstalled KB951748, Windows will automatically download and reinstall KB951748 again quietly in the background so when you next reboot your PC you won’t be able to go online again.

His recommendation was to switch Automatic Updates from Automatic to “Notify me but don’t automatically download or install them”.

This is actually something that I do every time I reinstall Windows XP, or set-up a new pre-installed machine. I’ve been caught out too many times by Microsoft Updates screwing up either my internet connection or Microsoft Outlook.

Here’s how:

  1. Open Control Panel
    Go to the Start menu and click on Control Panel — it’s in the coloured bar on the right (assuming you’re using the standard Windows XP theme, rather than the Classic Windows 2000 look).
  2. Classic View
    The Control Panel will open in a new window. If you don’t have the Classic View (as shown in the screenshot below) then select “Switch to Classic View” in the panel on the left — I’ve highlighted this area in yellow below. When you do this you’ll see a window-full of icons.
  3. Automatic Updates
    Double-click on the Automatic Updates icon — I’ve highlighted this in green below. It looks like a globe with the Windows logo above it.

Windows XP Control Panel

  1. Offer hidden updates (optional)
    Automatic Updates will open in a new window. Now, if you previously instructed Windows Update to hide KB951748 you can instruct the updater to “Offer updates again that [you've] previously hidden” by clicking on the link at the bottom — highlighted in yellow below. (The option will be greyed-out if it’s not available.)
  2. Notify me
    At PeterS said, you will likely have the radio-button dot against “Automatic (recommended)”, indicating that it is the option selected.

    Instead, click on the radio button beside “Notify me but don’t automatically download or install them“.

    Don’t worry, you’re not switching off Automatic Updates, just asking Windows to inform when they are available and what they are — that gives you the opportunity to look them up before you agree to install them.

Automatic Updates

  1. Click OK to set this option. The Automatic Updates window will also close.
  2. Close Control Panel (by clicking on the red X in the top-right corner).
  3. If you’ve not already installed Microsoft Update KB951748, Automatic Updates will soon notify you to install the update.

I hope that’s useful to some folks.

I hope so because it’s just taken me an hour to write this up! Screenshots, by the way, were taken using TechSmith SnagIt 9.