Restoring a Classic Bike

My new project arrived in a box last night. It’s a thing of beauty but is destined to cause cursing and consternation in the household.

I’m not known for my mechanical skills but I am known for flitting from one project to the next with only a book for guidance.

The book didn’t help me much last night. Mostly because it was upstairs under the bed while my workshop is in the front room. I spent two hours with my fingers trapped under the saddle guide rails trying to attach it to the seat post. I scared the kids with my swearing but finally achieved some success only to discover, as I collapsed into bed, that I’d attached the post in a back to front fashion.

This is going to be a palaver of monstrous proportions.

The bike is an old custom build from Walvale Cycles in Liverpool. It is made from Reynolds 531 tubing, although there are no transfers and it has 3/4 chromed forks and rear triangle. I haven’t found out much about Walvale Cycles, they are mentioned in Classic Lightweights but aren’t famed in the same way as other frame builders such as Holdsworth, Dave Yates or Mercian.

My plan is to source some classic campagnolo components and recreate the dream bike of my youth.

Today’s task was to fathom out how to shift the rust marks from the chrome.

I’ve had impressive results with fine steel wool and oil but I may attempt the aluminium foil and coke trick tomorrow.

By the end of day 2, I have a frame that is beginning to look rather like a bike. I’ve attached every component that required only a few turns of an allen key. I’ve got the stem, handlebar, seatpost, saddle and the brakes attached. I haven’t ventured anywhere near cabling so of course nothing works but I’m already feeling as though I’ve missed my vocation in life. I’m clearly a bike mechanic at heart.

Now I need to return to ebay to find some wheels, I haven’t a clue what I need and what will work with the rest of the components but I need wheels urgently. It won’t be til then that I can confirm that this bike will fit me.

Waterfall Charts and the X-Axis

Waterfall charts have become all the rage in the office of late. They are popping up all over. I suppose it is no surprise, it’s springtime and we are well into the planning process and a waterfall chart is the perfect way to demonstrate how a starting position either increases or decreases through a series of changes.

So in our case, when planning for next year’s acute healthcare budget, we may start with the forecast outturn for the current year, throw our hands up in despair and then work through a series of savings initiatives that would hopefully bring us back to a position of affordability.

This can be easily demonstrated by the use of a simple waterfall chart which is a version of a stacked bar chart with some elements formatted so that they are not visible.

Here you can see the driving table and the series clearly visible before formatting.

Life in the waterfall chart world becomes a little more difficult if your movements are going to take you either above or below the x-axis.

You can imagine this happening if instead of starting with forecast outturn we model the affect on the planned deficit/surplas. The chart below shows the starting position before QIPP or savings programs and the incremental affect of appyling each projected saving.

The table required to generate this chart is quite complex but it does at least illustrate the position accurately if the data crosses the x-axis. The simple model shown above would display the data incorrectly.

You can download the spreadsheet I used to draw up these examples which will show all the relevant formulas Waterfall Chart.xlsx but I would also recommend that you take a look at the excellent Peltier website which explains the creation of both simple and complex waterfall charts in more detail and describes the formatting process step by step – I used this site to learn the techniques.

Managing Version Control in Excel using Macros

If you work with spreadsheets that are regularly being updated and amended by multiple users then you will know something about version control. If you then add to this mix, the need to periodically distribute the updated spreadsheet for public viewing you will be more than well aware that Microsoft Excel isn’t really designed to handle version control very well.

I’m currently working with NHS contract proposals for the new financial year. The models are complex and the figures involved are high. We are up to version 20 already and the first cut hasn’t even been published. Between each issued version I know I will be inundated with emails asking what has changed and why.

I’m getting twitchy just thinking about it and I’m already dreaming about version control.

I’ve put together a few macros to enforce some rules for version control and to maintain an audit trail of changes and versions.

Methodology for Controlling Versions in Microsoft Excel
My spreadsheet includes tabs of data related to patient care, but it will work for any model that you wish to maintain a version trail for.

You need a tab for documenting the changes between each version. Mine is called Version Control but then I’m an accountant and don’t really do imagination.
On this sheet are two named ranges, VERSION and FILENAME (in B7 and B9 respectively) and two macro buttons for running the save options.

When the document is saved I want the user to overwrite the master document so that it always shows the latest version and I want them to save the file to a version folder and increment the filename to the next version number. So each save process creates one new file and overwrites another.

To ensure this happens just as I want, I need to prevent users from saving the spreadsheet in their own way. I do this by writing a procedure in the workbook object that will run whenever they attempt to save the document.

1
2
3
4
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
MsgBox "When you are happy with the changes, please go to the VERSION CONTROL tab and freeze the document to save"
End Sub

This directs the user back to the Version Control tab where they can either perform a FREEZE save or a temporary save. The temporary save is for convenience in case large changes are being made, it will save a single version with a temporary filename. The FREEZE save creates a new version and overwrites the master document, it also requires the user to enter some notes relating to the changes made.

Here’s the code for the FREEZE save:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
Sub FreezeWorkbook()
'Working in Excel 97-2010
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim Sourcewb As Workbook
Dim wsVC As Worksheet
Dim Destwb As Workbook
Dim VersionFilePath As String
Dim VersionFileName As String
Dim MasterFilePath As String
Dim MasterFileName As String
Dim VersionDate As String
Dim Version As String
Dim CurrentVersion As String
Dim iLastRowVC As Long 'LAST ROW IN VERSION CONTROL SHEET
Dim Author As String
Dim Changes As String
Dim AmendRef As String

With Application
.ScreenUpdating = False
.EnableEvents = False
End With

'UPDATE THE VERSION CONTROL DETAILS
ActiveSheet.Unprotect
Set wsVC = Worksheets("VERSION CONTROL")
iLastRowVC = wsVC.Cells(Rows.Count, "B").End(xlUp).Row

'Current Version
CurrentVersion = wsVC.Range("a" & iLastRowVC).Value

'Insert version
Version = InputBox("Please enter the next incremental Version Number (Current Version = " & CurrentVersion & ")")
wsVC.Range("a" & iLastRowVC + 1).Value = Version

'Insert version date
VersionDate = Format(Now, "dd-mm-yy hh-mm-ss")
wsVC.Range("B" & iLastRowVC + 1).Value = VersionDate

Author = InputBox("Please enter your name")
wsVC.Range("c" & iLastRowVC + 1) = Author

Changes = InputBox("Please enter a brief description of changes made")
wsVC.Range("d" & iLastRowVC + 1) = Changes

AmendRef = InputBox("Enter the ref to the Amendments Document or N/A if none available")
wsVC.Range("e" & iLastRowVC + 1) = AmendRef

wsVC.Range("F" & iLastRowVC + 1).Value = Range("HLACTIVITY") 'Returns a the total activity value from a named range within the spreadsheet
wsVC.Range("G" & iLastRowVC + 1).Value = Range("HLVALUE") 'Returns a the total financial value from a named range within the spreadsheet

'Save the master workbook
Application.DisplayAlerts = False
Set Sourcewb = ActiveWorkbook

'Force the file extension to remain as Excel 97-2003
FileExtStr = ".xls": FileFormatNum = -4143

'Overwrite the master report or create it if it doesn't yet exist
MasterFilePath = "c:\My Documents\2010-11 A&F Contract Templates\Masters" 'Amend to suit your filing system
MasterFileName = Range("FILENAME") & " Master"

Range("VERSION").FormulaR1C1 = Version 'Overwrite the version number on the version control sheet

With Sourcewb
.SaveAs MasterFilePath & MasterFileName, FileFormat:=FileFormatNum, WriteResPassword:="" 'This ensures that the master is not password protected otherwise I get problems overwriting the file
End With
Application.DisplayAlerts = True

'save the version workbook
Set Sourcewb = ActiveWorkbook
'Force the file extension to remain as Excel 97-2003
FileExtStr = ".xls": FileFormatNum = -4143

'Save the new workbook and close it
VersionFilePath = "c:\My Documents\A2010-11 A&F Contract Templates\Versions\RAP"

VersionFileName = Range("FILENAME") & " " & Version
ActiveSheet.Protect

With Sourcewb
.SaveAs VersionFilePath & VersionFileName & FileExtStr, FileFormat:=FileFormatNum, WriteResPassword:="password" 'this sets password protection in place for the version spreadsheets
End With

MsgBox "New version saved as " & VersionFilePath & VersionFileName & " and Master Updated"

With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub

and the Temporary Save code which saves the file in the versions folder with a “Temp” suffix:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Sub TempSave()
'Working in Excel 97-2010
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim Sourcewb As Workbook
Dim Destwb As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim TempVersion As String
With Application
.ScreenUpdating = False
.EnableEvents = False
End With

Set Sourcewb = ActiveWorkbook

'Force the file extension to remain as Excel 97-2003
FileExtStr = ".xls": FileFormatNum = -4143

ActiveSheet.Unprotect
TempFilePath = "c:\My Documents\2010-11 A&F Contract Templates\Versions"
TempVersion = Format(Now, "yy-mm-dd hh-mm-ss")
TempFileName = "Temp " & Range("FILENAME") & " " & TempVersion
Range("VERSION").FormulaR1C1 = TempVersion
ActiveSheet.Protect

With Sourcewb
.SaveAs TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum
End With

MsgBox "New version saved as " & TempFilePath & TempFileName

With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub

I’ve used the plugin Syntax Higlighter to display the VBA code. It looks great but unfortunately it doesn’t copy and paste well. You can download a working spreadsheet that includes the modules above if you want to copy them – Excel Version Control Example V1 the password to open is NCL.

As usual I have botched this macro together from many hints and tips found elsewhere on the interweb, this page from Ron de Bruin was particularly useful.

I think I need to add some loops into the input box code because users can choose not to enter any comments or an appropriate version number at the moment and I have no means of controlling the errors.

I’ve also had to run this without any password protection on the master file. If I password protect it the macro fails with a write protection error. I’m not sure if I ought to be able to get around this or whether it is not actually possible to save over a write protected file. Dunno.

Excel Pivot Table or CrossTab to Flat List

Excel to CrossTabI often find myself struggling to deal with data that has been rendered almost unusable by the data provider who has converted it to a cross tab format. Usually they think they are helping and have probably started with a nice flat list then spent ages formatting it so the data spreads out across the columns. Sometimes they have achieved this by putting the data into a pivot table but then have pasted the table as values and removed all links to the underlying data. Very helpful.

[GARD align=”center”]

Yesterday I had to deal with a data file that looked a little like this only  it spread out across 455 columns and was frankly useless.

 

I wrote a post a while back that demonstrated how to convert a simple cross tab back to a manageable data list but I wanted to expand this with a slightly more complex example which had more field headings.

So starting with the table above which was probably a pasted copy from a pivot table I applied a little bit of formatting to achieve the following starting table.

What I have done is remove the grouping that the pivot table applies and ensured that I have the relevant  week number, project and department details against each name

I often wish to convert pivot table outputs back into a data file and the way I fill in the blanks caused by grouping data is to prepare a sheet with formulas that copy values from above (or the side as appropriate):

I then copy the pivot table data and then use the paste special command selecting paste values and skip blanks as the options.

This results in the following output, which I then copy and paste over itself as values, to give me the desired structure.

 

Having spent a bit of time on the structure of my starting file I can run the macro that will work through each row and transpose the data from a columnar layout to one based on rows.

The advantage of this format is that I can now create my own pivot tables and cut the data as I see fit to produce multiple summary formats according to my audience.

 

Here’s the macro I use:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Sub CrossTabToList()

Dim wsCrossTab As Worksheet
Dim wsList As Worksheet
Dim iLastCol As Long
Dim iLastRow As Long
Dim iLastRowList As Long
Dim rngCTab As Range 'Used for range in Sheet1 cross tab sheet
Dim rngList As Range 'Destination range for the list
Dim ROW As Long

Set wsCrossTab = Worksheets("Sheet1") 'AMEND TO SHOW SHEET NUMBER WITH THE CROSS TAB
Set wsList = Worksheets.Add

'Find the last row in Sheet1 with the cross tab
iLastRow = wsCrossTab.Cells(Rows.Count, "A").End(xlUp).ROW

Set the initial value for the row in the destination worksheet
iLastRowList = 2

Find the last column in Sheet1 with the cross tab
iLastCol = wsCrossTab.Range("A2").End(xlToRight).Column

'SET THE HEADING TITLES IN THE LIST SHEET
wsList.Range("A1:F1") = Array("NAME", "PROJECT", "TYPE", "PLAN/ACTUAL", "WEEK", "HOURS")

'Start looping through the cross tab data

For ROW = 3 To iLastRow 'START AT ROW 3 AS THIS IS WHERE DATA BEGINS
Set rngCTab = wsCrossTab.Range("A" & ROW, "C" & ROW)'initial value A3 SETS THE RANGE TO

'INCLUDE ALL STATIC DATA - IN THIS CASE NAME, PROJECT, TYPE
Set rngList = wsList.Range("A" & iLastRowList) 'initial value A3

'Copy individual names in Col A (A3 initially) into as many rows as there are data columns
'in the cross tab (less 3 for Col A-C).
rngCTab.Copy rngList.Resize(iLastCol - 3)

'SELECT THE HEADING ROW WITH FORECAST/ACTUAL
'Move up ROW (INITIALLY 3) rows less TWO and across 3 columns (using offset function). Copy.
rngCTab.Offset(-(ROW - 2), 3).Resize(, iLastCol - 3).Copy

'Paste transpose to columns in the list sheet alongside the static data
rngList.Offset(0, 3).PasteSpecial Transpose:=True

'SELECT THE ROW WITH THE WEEK NUMBERS
'Move up ROW (INITIALLY 3) rows less ONE and across 3 columns (using offset function). Copy.
rngCTab.Offset(-(ROW - 1), 3).Resize(, iLastCol - 3).Copy

'Paste transpose to columns in the list sheet alongside the static data
rngList.Offset(0, 4).PasteSpecial Transpose:=True

'Staying on same row (3 initially) copy the data from the cross tab
rngCTab.Offset(, 3).Resize(, iLastCol - 3).Copy

'Past transpose as column in list sheet
rngList.Offset(0, 5).PasteSpecial Transpose:=True

'Set the new last row in list sheet to be just below the last name copied
iLastRowList = iLastRowList + (iLastCol - 3)

'increment ROW by 1
Next ROW

End Sub

I’m afraid the VBA code isn’t rendering very well – you’ll have to replace all the ” and ‘ marks before the macro editor will recognise the code.
Here is a copy of file – you could copy the macro code from here: Excel to CrossTab.xls

Sunglasses and Summer Biker Gear

If I don’t have to use my heated grips in the morning then it is just too darn hot for biking. What possesses these fair weather bikers to dust off their machines just in time to roast in the heat wave?

I’ve seen varied summer fashions, from the Ducati guy with shorts and t-shirt to the Vespa lady with flimsy beach flip flops. I’m sure they are cooler than me but as I followed the Vespa lady into London all I could think about was bone deep scrapes as she put her foot out at each traffic light. I think I’m rather too fond of my skin for summer biking.

I’ve trimmed down for the summer by removing the thermal lining from my jacket and discarding the leggings from under my cordura trousers. It’s still too hot though.

The motorbike sunglasses have helped. I was sent this pair of Neue glasses to try out recently. Well actually not that recently but it’s been wet and overcast for about 8 months solid and I have been mocked on previous attempts to wear them.

I was a little wary about wearing motorbike sunglasses as they steam up very quickly when the helmet goes on top of them. Fortunately with a tiny breeze these seem to remain clear and only fogged up while I was stationary and struggling to squeeze my sweaty hands into my gloves.

I usually look like a prize tool in shades but I think these are fairly stylish, I got a few admiring looks, although that could be down to the gorgeous bike. They curve around the face like the more space age sports sunglasses but look sufficiently understated for a Bonneville rider.

They obviously shade your eyes from the glare but they also provide a reasonable level of protection from the road shrapnel meaning you can leave the visor up and feel the full refreshing effects of the wind in your face.

I like getting free motorbike things, it makes me feel better about unexpected bike related expenses, like this one.

Why do they exclude motorbikes from some stretches of bus lane and how come they only caught me once when I’ve been zipping along this same stretch almost everyday since March? I’m not complaining about the latter bit obviously.

Commuting Reconnaissance Trip

I hope something out of the ordinary happened today because I couldn’t move. I was trapped in maelstrom of push bikes, cars and jackknifed buses.
Bikes were crammed into every available gap, going nowhere but making an ugly disheveled plug.
Others were hopping up on to the pavements looking for escape.
I was sat behind the bus tapping my fingers and wondering if I was supposed to be somewhere else.

I was having filter anxiety.

I was up early-ish today so I could nip out on a practice commute to the new job near Kings Cross, suss out motorbike parking availability and head back to the old job before my boss sent out a search party.

It started well enough, barely 5 minutes in and I had already successfully swerved out of the path of a car who thought he was a bus, then I was picked up by an outrider who held my hand (figuratively speaking) and showed me the ropes as he weaved in and out of cars, first the inside then the outside, all the way to Clapham. I was beginning to relax and then I lost him. I didn’t quite position myself well enough for this erratic side to side motion and thought I had plenty of time and could just wait for the bus to move, but it didn’t. Bikes were roaring past me 2 lanes to my right and I vowed not to get stuck on the inside again.

I eventually pushed and wobbled my way in between the stationary cars and enjoyed an extremely short clear run until a central reservation appeared and I had to make my choices. It was time to rejoin the chaos and get myself wedged into the Vauxhall Bridge roundabout and just pray for Bonnie sized gaps or give up and head back on roads that you could actually ride on. My petrol light came on at the pivotal moment, only 60 miles out of this tank full, and not wanting to add to the congestion by spluttering to a deathly stop I opted to pull an about turn and head back to Tooting.

So much for reconnaissance, I didn’t even make it across the river. At this rate I’ll have to set off at 6am or pull the push bike out of the shed.

It’s Not Just The Bike

Even the kids have taken to pointing out my profligate ways. No. 2 child said the other day

“but it’s not just the bike Angela, it’s all the bike related stuff!”

I feel somewhat victimised in the house, they just haven’t let me forget my last purchase of the “special sponge”.

“Is it a ‘special’ sponge Angela?”

“Yes, it’s a bloody special sponge, it’s got space for your fingers!”

And it is a special sponge, not only does it have finger spaces for cleaning spokey bits in your wheels and protecting your knuckles from graze injuries but it also has a special top for driving all the suds down and onto your bike. I don’t know how I was supposed to resist and it only cost 3 times as much as the standard variety.

I blame the scheming, thieving, marketing types, they shouldn’t be able to prey on people like me. It’s too easy, they just have to mention words like micro, multi, special and I’m reaching for my credit card.

Here’s my latest must have purchase. Apparently they are perfect for building a show quality shine on your chrome work. You can use them new or used and you get 40 sheets in a pack.
40!
That’s got to be 3 years worth and they only cost £1.25.

I’m thinking I might keep the purchase a secret from the family until they’ve forgotten the sponge.

Rides Like a Big Girl’s Blouse

So its official, I’m going to have to toughen up.
I can’t keep treating this biking malarkey as a cosy pastime. There will be no more sitting around toasting my hands around my blazing hot grips – winter commuting is not for pansies.

I arranged to meet Lynn after work yesterday for tea at our favourite vegetarian caff. I set off for the 2 mile trek with heated grips on full blast and pulled up outside the eatery leaving the parking light on to save my lovely Triumph from any unintended crumple incidents.

A couple of hours later we clambered into and onto our respective modes of transport with me quipping that the only thing that could prevent me arriving home first would be a flat battery from my silly parking light.

Cars….Pah!

By the time I’d removed my disk lock, fiddled with my helmet and managed to get my gloves to sit neatly under my cuffs, Lynn was long gone. By the time I’d gone through the start up process a few times, listening to the usual whir and the most unusual click and die, she must have been at least half way home.

Harumph!

Good job I had my phone and breakdown cover and a girlfriend with a car.
10 minutes later, Lynn was back to rescue me and provide shelter from the rain.
3.5 hours later the breakdown recovery vehicle arrived.

He may have taken quite a long time to arrive but I think he was very good value when he finally got there. As a keen biker himself he had to get in a few digs about my “not a proper” Bonneville, which of course is true but I didn’t want a proper 1960’s bike, just imagine how unreliable that would be.

We all mucked in trying to fathom out where the battery would be hidden, we had both side panels off and it took 3 fine minds to work out the intricacies of saddle removal. I feel like I’ve served a mechanics apprenticeship now.

The battery was flat but he had it turning over in seconds. By the time we had reassembled the pieces he was confident that the machine would start up unaided and he was desperate to switch it off again so he could jump on my bike and show me how to bump start it. For someone full of disparaging remarks he was mighty keen to try the Triumph out for size.

Luckily the starter motor worked fine because he wasn’t going to get it bump started anytime soon. Seems the trick with bump starts is to get the ignition on, put the bike in 2nd gear, roll with it down a hill with the clutch engaged and then just pop the clutch. We didn’t get further than turning on the ignition as it seems the modern Bonneville prevents you moving beyond 1st gear unless the engine is started.

Basically if you can’t get the engine to start via the electric ignition switch you are stuffed. Bet you didn’t get that with those “proper” Bonnies that came stocked with kick starts and centre stands.

Progress…..Pah!

Outlook 2007 – Creating Search Folders for Combined Categories

I’ve recently gone down the route of setting up my Outlook email system for use with the getting things done (GTD) methodology. This means I work to a zero inbox and have limited context based folders such as @ACTION, @REFERENCE, @READ. I have been religiously categorising my mail before assigning to the reference pile and using Search folders in place of my previous system of dragging the email into a sub-sub-folder that never proved to be the right one when I came to look for it again.

The beauty of the categorise and Search Folder functionality is that I can apply multiple categories to a single email and I no longer have to decide whether to file my email in the “Wandsworth” folder or the “SLA” folder. If I assign it both categories, it will appear in my search folder under both categories.

I wanted to set up a few search folders that would enable me to view emails that were categorised in more than one specific folder using the logical “AND” rather than “OR” that the system defaults to. For example, it is the commissioning period at the moment and it would be handy for me to have a few search folders set up for the next month or so that group together emails categorised as 2010 SLA and a specific borough.

My initial attempts at using the custom search folder dialog box and entering the instruction “1a. Wandsworth AND 3a. SLA 1011” in the “More Choices” tab did not work as it was presumably looking for a single category. I did a bit of a google search and didn’t find anything very promising so having found a solution I thought it might be useful to write it up.

  1. Create a new Search Folder by right clicking on Search Folder and selecting New.
  2. Scroll down to the bottom and select Create a Custom Search Folder and then hit Choose
  3. Give it a name and then hit Criteria
  4. Within the Advanced tab set the field to equal Categories (it’s in the frequently used drop down)
  5. Leave the condition as contains
  6. Write your category names separated by “AND” in the Value field.
  7. Hit “Add to list”
  8. OK your way out of the dialog box and you should have a functioning multiple category search folder.

Pillion Debut plus Screaming and Aggression

I followed the bike dropping incident with a whole host of other bike related ball’s ups but two weeks have passed and I’m still here relatively unscathed so I think my biker chick pieces must gradually be falling into place.

4 mile commutes are barely worth getting togged up for but the miles add up slowly and we’ve covered about 160 miles since pick up. I’ve put the grand sum of £19 in the tank so it’s no eco warrior but maybe that will improve with the new extended commute when I’ll hopefully get to spend a greater proportion of my time out of 1st and 2nd gear.

The Bonneville rides very well, I just need to stop letting it down on my slow speed cornering when I manage to turn a solid dependable bike into a wobbly old crock in need of stabilisers.

I’d noticed the rear wheel skittering around a bit on the white lines and man hole covers littering the bus lanes round these parts but after taking advice from Triumph RAT forum, and then waiting a further 10 days while I fathomed out how to inflate bike tyres, I discovered my tyres were flat.

Turns out you can inflate motorbike tyres with bicycle pumps so long as they have the Schrader valve fitting. This news filled me with unexpected joy as I have an unacceptable glut of bike pumps and now I can nip out with my track pump and keep the bike properly inflated without ever having to risk a petrol station, pump related melt down.

It’s a miracle with all my bike related anxieties that Lynn ever agreed to ride out with me but by yesterday lunchtime we had cobbled together enough additional biker garb to remove most of her pre-existing excuses and delaying tactics. We set off on a major expedition to the old allotment in search of leeks and parsnips. It’s was pretty cold and Lynn noticed my wobbly old crock tendencies on the corners but I think the ability to whizz down the bus lanes avoiding horrendous tail backs through Mitcham and Wimbledon may have sold the biker lifestyle to her.

Actually I don’t think she liked the Wimbledon bit very much, I recollect screaming and aggression there as I threatened to scrape her knee caps between two vehicles but the rest was good.