You can’t get the staff these days! (by )

We've got houseguests over, and we left them at home while we went for a walk in the countryside.

However, when I got home, I found they'd decided to go to Tesco many hours previously, and had gone off leaving:

  • Jean's rabbit outside in his run
  • The shed unlocked
  • The front door of the house wide open

When asked why, they said "Oh, Barbara (the next door neighbour, my aunt) was around"...

Had it not occurred to them that Barbara might decide to go out herself, and is not supposed to be responsible for locking up our home? Or that Barbara might not actually take it upon herself to guard our open doors from passing opportunists, and sit watching, but might have her own things to do?

sigh

Adrian Brown and The Cheap Car Trade Centre (by )

Earlier this year, Sarah and I spent my bonus pay on a second-hand car from The Cheap Car Trade Centre in Gloucester.

Sadly, they neglected to buy it a tax disc before I picked it up, so I couldn't drive it (other than the quick trip) home for a couple of weeks while the papers went through to make me the registered keeper. However, even on the trip home, the engine started to overheat, and the engine started to run badly; as the car had been stationary for a while, and had been almost entirely out of fuel, I was suspicious but it might have just been sludge from the fuel tank washing into the engine; I looked into the cooling system and found a syphon tube had become disconnected, so the engine could blow out excess coolant into the reservoir when the pressure was high, but could not suck coolant back in. Sure enough, although the reservoir was full, the cooling system was very low, so I flushed it out and filled it up after replacing the syphon hose.

All was well for a few days, but then it started overheating again. I was dropping Sarah off in Cheltenham at the time, so I stayed in the car park to let it cool down before heading home; however, it quickly overheated again, and again, and started to emit white smoke from the exhaust, and steam from under the bonnet. I pulled in another car park, and rang the RAC, who came and told me the head gasket was leaking badly.

So I rang the warranty company, who said that head gasket failure wasn't covered. So I rang The Cheap Car Trade Centre and explained the problem, but they disavowed any responsibility, so I informed them that the Sale of Goods Act made them responsible for the goods they sell being fit for the advertised purpose, which includes a reasonable life expectancy, even if they are second-hand; and this car was sold to me as "ready to drive". They told me I'd have to take them to court in that case.

So I sent them the required two warning letters, then tried to take them to court. This was hampered somewhat by them refusing to say who owned the business, which is an obligation under the Business Names Act, so I rang Gloucester Trading Standards, who pointed me at:

Office of Fair Trading Investigation into The Cheap Car Trade Centre

Which led to:

Formal Undertaking against Adrian Brown, Sole Director, Adrian Brown Limited

So Adrian Brown was the man behind the business, using his limited company, Adrian Brown Ltd, company number 04831719, which is registered as being at The Cheap Car Trade Centre's premises.

A look on the Companies House web site reveals:

REGISTERED OFFICE CHANGED ON 16/09/09 FROM: SUNNYLEA ASH LANE DOWN HATHERLEY GLOUCESTER GL2 9PS

...that's five days after his "formal undertaking" with the OFT. I suspect he changed it from his home address to his premises to divert unwanted attention at home. However, Companies House remembers all. I wonder if he still lives there. I would discourage my loyal readers from jumping to the conclusion that he does and inundating the address with junk mail or any other forms of harassment, in case he doesn't.

Anyway, knowing who to sue, I proceeded to activate the county court system.

They answered my claim with a defence (stating that it must have been me driving the car while overheating that broke the head gasket), so I was waiting for a date for the hearing when I received my last letter to them returned unopened, with "THE LTD CO THAT TRADED AS 'THE CHEAP CAR TRADE CTR' HAS CEASED TRADING AND IS INSOLVENT WITH NO ASSETS, AND HAS VACATED 333 BRISTOL RD GLOUCESTER".

I got back in touch with the Trading Standards folks, who said that they knew the company was closing, but that this action was suspended as there were county court cases in progress, so my case would probably still proceed, even though I might never be able to extract any money if the company was truly insolvent.

However, I'm still going to try. Limited companies protect their shareholders and directors by limiting their liability; the company is sued, not the people. But there's a limit to the limit. If a director can be shown to have acted fraudulently or incompetently, then they can be personally liable.

It looks like I won't get my money back, which will leave us carless until I get another bonus or something - but I'm hoping that, perhaps, the courts might find Adrian Brown personally liable. Given the involvement of the Office of Fair Trading and Trading Standards, it would appear that I'm not alone in having suffered from his business practices (the OFT judgement explicitly mentions him attempting to avoid the Sale of Goods and Business Names acts).

After all, I have little choice but to pursue this - I am scraping by with buses (which run once an hour, and don't run at all after about 5pm), being bankrupted by taxis, and begging lifts from people. This is seriously hampering my ability to live my life.

Society (by )

It's easy to sit and complain that Society Is Going To The Dogs, and hardly any harder to come up with somebody to blame (these days, immigrants and politicians are popular), and still well within the mental capacity of the average Daily Mail reader to come up with some satisfying-sounding radical proposals for what to do about it.

However, a society is a very complex system, and every change you make has complex consequences; nothing is quite as simple as it seems. Further complicating the situation is that any attempt to make your system of laws or government institutions more complex further complicates the analysis of subsequent changes; and, perhaps most pertinently, a society is not some beaker full of bubbling chemicals - the components of a society are sentient, some of them are even intelligent, and they are highly incentivised to make the best of their situation. In other words, people will figure out how to exploit systems, rather than working happily within the spirit of them.

People who are familiar with my approach to engineering solutions to problems will not be surprised to find that I suggest:

  1. Forgetting all the cruft and historical baggage, and sitting down and carefully enumerating what you actually want from the system

  2. Making the system as simple as possible (but no simpler), to reduce the scope for unexpected consequences

  3. Using self-reinforcing negative feedback loops to maintain stability, while injecting noise to prevent stagnation in local maximae

    Read more »

A large rabbit run (by )

Today, I made a run for Jean's rabbit, Blacky. He has a hutch, but rabbit hutches are far too small for rabbits to spend all day in; we'd been letting him run around the house (which requires constant watching, so can only happen for an hour or so), or letting him enjoy the slightly larger possibilities of a large cage with the bottom removed pegged down on the lawn, but we knew it wasn't nearly enough for him; he was always wanting to get out, and when he's in the house, he enthusiastically runs the entire length of downstairs.

So, I built him a run, with some help from Jean (he's her rabbit, after all, but there's only so much use a four-year-old is in this kind of project). Two metres and ten centimetres long, a metre and five centimetres wide, and fifty centimetres high; made out of a wooden frame with rabbit mesh, and a liftable solid door at one end, which also provides some fixed shade.

I relish the chance to do something with my hands, as I usually don't get time to, and end up spending all of my time at a computer. And Blacky certainly seemed happy; he was running around it at high speed, occasionally bounding into the air and spinning round, which is what rabbits do when they're happy. Note the motion blur:

Blacky enjoying his new run

That's not all, though; we've also bought him a lead, so we'll be able to safely take him for walks along the drive.

User Interfaces for Event Streams (by )

Reading Phil Gyford's post about the reasoning behind his Todays Guardian app reminded me of an old interest of mine - the design of user interfaces that show people streams of events.

I hate the fact that I have several systems that have reason to throw notifications at me:

  1. Incoming email (with multiple accounts)
  2. Twitter (with multiple accounts)
  3. RSS feeds I follow
  4. Voicemails/SMSes
  5. Notification of server failures and other such technical problems
  6. Incomng phonecalls, Skype calls, etc
  7. IMs and DMs in IRC, and people mentioning my name in IRC channels
  8. People talking in channels I'm following in IRC
  9. Scheduled alarms (time to stop working and eat!)
  10. Batch processes have finished (I often start a long compilation/test sequence going then browse the Web for five minutes while it runs - then get distracted and come back twenty minutes later)

Many of these event sources are capable of producing events of different levels of urgency, too. It's really quite complex. Some things shout in my face (incoming skype messages cause a huge window to pop up over what I'm doing, for example) while some need to be manually checked (such as email; I get too much spam for the "you've got mail!" noise to mean much to me), and this has little correlation with the relative importance of them.

Obviously, the first thing to do is to have some standard mechanism in the user interface system for notifying me of events. Growl is a start, but it's focussed on immediate notifications, rather than handling a large backlog of events. What I want is something like my email inbox, that has a searchable, scrollable, history, and notifies me when new events come up. But I also want richer metadata than Growl has; I want all IMs, emails, and whatnot from the same person to be tied to that 'source' of events, so I can filter them into groups. I want to have Personal, Work, and Systems events, and to have Personal deprioritised during working and Work deprioritised during personal time. And so on.

The BlackBerry OS goes someway towards this with its integrated Messages system. Any app can register to put messages into the message stream, so when I get emails, BlackBerry IMs, notifications of new versions of software being available, etc. they all appear in the same time-stream and I get a 'new message' notification. I want something similar on my desktop, but with much more advanced filtering and display capabilities. My design for 'user agent' entities in ARGON involves using a standard "send an object to an entity protocol" for all email/IM/notification activities - the same protocol that is used to send print jobs to a printer, files to a backup system or removal storage device, orders to an automated process, and so on; it's roughly the equivalent of "drag and drop" in a desktop GUI. Incoming objects from 'elsewhere' are then combined inside the UA with internal events such as calendar alarms and situations the user agent might poll for, such as things appearing in RSS feeds, into a centralised event stream, by the simple process of translating all internal events into incoming objects like any other; but actually designing a user interface for displaying that is something I look forward to doing...

Phil's analysis of the newspapers interests me, because it's a very similar challenge. You have a stream of events, and the user may want to skim over them to see what's relevant then zoom into particular ones. How do you present that, and how do you help the user deal with an inundation of events, by applying heuristics to guess the priority of them and suitably de-emphasising or hiding irrelevant events, or making important events intrude on their concentration with an alarm? Priority is mode-dependent, too; if you're in an idle moment, then activity in your interest/fun RSS feeds should push out work stuff entirely - apart from important interruptions. And some events will demand my attention to respond to them, in which case they should offer me links to the tools I need to do that - a notification of a problem on a server, ideally, should carry a nice button that will open me up a terminal window with an ssh connection to that server. But some things might require my attention, but I can't give it yet - so I need to defer the task, so it doesn't then clutter my inbox, yet in such a way that it reappears when all higher-priority tasks are done. There are elements of workflow, where events need an initial "triage" to be categorised into "read-and-understood, do now, do later today, do whenever" and maybe prioritised, then later, deferred tasks need to be revisited.

Also, some event streams are shared. Perhaps an event should be handled by the first member of a team to be free, such as a shared office phone ringing, or a bug to be fixed or feature added to a software product. There needs to be some system for shared event pools, with support for events to be "claimed" from the pool by a person, or put back. Perhaps personal event systems should be able to contain proxy objects that wrap events stored in a shared pool somewhere, so they can be managed centrally as well as appearing in personal event streams along with events from other sources. Standard protocols would be required to manage this.

Looking at the relatively crude support for this kind of thing in even the supposedly integrated and smart combined email/calendar apps, I think there's a lot of fun research to be done!

WordPress Themes

Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales
Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales