This page validates as XHTML 1.0, and will look much better in a browser that supports web standards, but it is accessible to any browser or Internet device. It was created using techniques detailed at glish.com/css/.
Oh no! Clea has just started shedding. Samoyeds don't moult
much, unlike other dog breeds but to make up for that once or
twice a year they shed all their inner coat. This is a very fine short
thermal layer and it gets everywhere for a few days. The outer coat is
like teflon, designed to insulate, if they get dirty you let it dry,
give them a brush and they should be back to being white. So now
I have two carrier bags of fine dog fur, one more bag and I will have
enough for some exceptionally warm gloves, Finn should lose his puppy
coat in a few weeks.
Made no progress on the bathroom although my wife and I have worked
out what we want. Just got to find it somewhere. Trying to persuade my
eldest that revision is a necessary evil, not sure I succeeded.
Spent the day trying to understand a customer's problem, eventually
at 6pm this evening I worked it out. They were using the fact that "sar 15" sometimes has 16 seconds
between the timestamps as indicative of a system slowdown or a
scheduling problem. A quick read of the source code shows that sar when
run live and not from a data file just forks and exec's sadc and keeps
a pipe in between. sadc does all the kstat gathering and timing thus..
while (1) {
read the kstats
get the current time.
pass the time and kstats down the pipe with a series of reads and writes to sar.
sleep(15)
}
So if kstat gathering and the data passing take 0.2 of a second then
the whole loop takes 15.2 seconds, but the time is printed out with a
granularity of 1 seconds so after 5 times round the loop it will
look like sar was delayed by an extra second and the reported time will
be 16 seconds not 15. Whilst not the most important thing it has
mislead the customer and I . So now I have written a test program that
brackets a call to sleep(1) with gethrtime() calls, subtracting these
allows us to see exactly the nanoseconds spent in the sleep() call.
Lets see if that shows any irregularities in the kernel realtime timer
subsystem, to minimise sheduling issues it should be bound to a non
interrupting cpu and run in the RT scheduling class.
0 miles in the smart.
15 miles on the bike, damp this morning, It has really warmed up
here, from snow last week to ten degrees this week. I was too warm even
in a short sleeve jersey, time for shorts - look out world. One problem
with this time of year is that I have a lead acid battery in the water
bottle holder for the lights but I could do with some water. You spend
a lot on an ultra light bike and then you load it up with lights until
it weights as much as your mother's old sit-up-and-beg bike..Roll on
the long summer days.
Today title is "nearly a smear", as you approach the Sun campus at junction 4a of the m3 there is a roundabout, straight on into the campus, left to Reading, right onto the M3 north bound. So it is rush hour this morning every one is intent on getting to work and damn the road traffic act, I am coming down the hill to the roundabout, it is clear so lets accelerate. 40 yards to go and a car seems to be trying to overtake, or maybe they are turning right. Strange the car has its left indicator on but it is on my right and I am going straight on.... So the driver of the red Vauxhall Astra does turn left across me, Lots of Anglo Saxon explitives from me and surprisingly they give me that lovely gesture to tell me I am Lance (number one in the world) Armstrong!
What were they thinking? I was thinking they need to redo their
driving test before they kill someone!
And just to avoid being sexist the journey home was nearly ruined by a BMW driver passing me and then drifting toward the kerb whilst alongside... whilst he read a map on his lap...