Well, the last couple of days have been pretty hectic getting the kitchen sorted and taking the car in for a service. The kitchen is now complete, obviously we still need to decorate but we now have a working kitchen again 😀

On Friday we went across to Birmingham to have the car serviced at Motor Mech which went pretty well. It was the first time I’d taken it there but Paul was very friendly and told me lots of little things that need doing. I wanted Paul to fit the Squadra chip at the same time but unfortunately my wife got a bit bored walking around Birmingham and wanted to get back and see her new kitchen. I asked Paul to skip fitting the chip and just do the service which he was more than happy to do. So, today I fitted the chip myself (with a little help from my friends) which was reasonably easy although getting the ECU open is really quite difficult. I still haven’t had a chance to fully test it so although I have given it a little run and there is definitely more power there!

Back to work tomorrow, it feels like I’ve been off for ages. We have a new employee starting tomorrow too.

Comment spam stopper

I’ve just installed a very nice wordpress comment spam plugin which is now active on all comments. Just enter the code with your comment.

Squadra arrival

My squadra chip arrived today so I can’t thank Stephan at Squadra Tuning enough (and the postman)! Hopefully I’ll have it fitted tomorrow and will have an update on the performance improvements 😀

Better today

I’m feeling much better today, woke up still feeling a little under the weather but definitely better. Talking of weather, we had snow over night and it was still showering with snow in the morning. I knew I had to drive to Leicester to pick up my business partner so was rather concerned about the state of the roads. I decided to just go for it only to find my ABS light came on straight away and rather worryingly stayed on for the entire journey. I’m not quite sure why the light came on, I can only assume it had detected a fault with the brakes (probably something frozen) and had come on to warn me of that, it cleared on a subsequent journey anyway. We headed straight back to Cov pretty soon after I arrived as we had no milk at his place 😦 We had our scheduled exit interview for our departing employee which went OK, it was more of a chat over a pint really which is probably how things like that should be.

Kitchen is now really coming along although today threw up a couple of surprises. Firstly I came home at one point today to find my father and the builders mopping up large amounts of water from the kitchen floor… they had managed to burst a radiator pipe an half flood the kitchen! Secondly my father called me later in the day to tell me he’d discovered a slight miscalculation in the units we had purchased for the new kitchen. Basically a 1000mm corner base unit isn’t actually 1000mm as it needs to situated 400mm from the wall! I therefore had to call in to the DIY store on the way home to purchase a replacement cabinet that we could swap out further along the run of units to reduce the space appropriately.

Work wise, today went pretty well as I managed to do some chargeable work this afternoon which is very rare for a Wednesday as these are normally our ‘management catch-up days’ which although necessary rarely produce chargeable work.

SPF compliant CDO message

I wrote this a while back as I couldn’t find a nice example anywhere for sending SPF compliant CDO.message emails. It also copes with setting message importance which is another awkward thing. Let me know if you have any problems or have any suggestions to improve it.

Sub sendemail(strFrom, strTo, strSender, strBcc, _
   strSubject, strBody, intType, intImportance)
Dim objMessage ' As CDO.Message
objMessage = Server.CreateObject("CDO.Message")
With objMessage
   .Fields("urn:schemas:httpmail:importance").Value = intImportance
   .Fields("urn:schemas:httpmail:priority").Value = intImportance - 1
   Select Case intImportance
      Case 0
         .Fields("urn:schemas:mailheader:X-Priority").Value = 5
      Case 1
         .Fields("urn:schemas:mailheader:X-Priority").Value = 3
      Case 2
         .Fields("urn:schemas:mailheader:X-Priority").Value = 1
      Case Else
         .Fields("urn:schemas:mailheader:X-Priority").Value = 0
   End Select
   .Fields("urn:schemas:mailheader:X-MSMail-Priority").Value = intImportance
   If Not isNull(strSender) and strSender  strFrom then
      .Fields("urn:schemas:mailheader:return-path").Value = strSender
      .Fields("urn:schemas:mailheader:reply-to").Value = strFrom
   End If
   .To = strTo
   If Not isNull(strSender) and strSender  strFrom then
      .Sender = strSender
   End If
   If Not isNull(strBcc) Then
      .BCC = strBcc
   End If
   .From = strFrom
   .Subject = strSubject
   If CInt(intType) = 1 Then
      .TextBody = strBody
      .HTMLBody = strBody
   End If
End With
objMessage = Nothing
End Sub

This is generally useful for web generated emails (like send a friend forms etc.), simply specify the users address as strFrom and a generic local address (noreply@mydomain.com) as strSender.

More generally, here are some good CDO examples.