Electricity bills and heating (by )

We changed electricity supplier recently, which is great, but the downside is that I've just noticed a bounced direct debit from NPower (the old one) for £661 on our joint account, to clear our remaining balance 🙁

We were paying a regular direct debit of £130 a month, which we tried to keep to by not being wasteful with the hot water (electrically heated) and by rationing the use of the fan heater (which at 3kW costs just under 50p an hour to run, which at the planned four hours a day comes out to £60 a month, the rest being our normal 'summer' power consumption)

I've no idea how we've gone £661 over in the past year 🙁 I can't find my old workings, but I know my estimate of our summer power consumption involved a lot of guesswork, and I was uncertain as to how many months of the year we'd run the heater for... but it looks like we won't be able to afford to run the fan heater at all this winter; thankfully, we've managed to plug a lot of the draughts in the house, and I'm going to try and arrange secondary double glazing (be it nice sheets of plastic mounted properly... or bubble wrap pinned to the window frames), so hopefully we'll be able to get by with the coal fire downstairs, which normally gets through something like £5 worth of coal a day.

I'll be more frugal with the gas heater in my office, too - last winter, it was used to great effect (especially once we'd managed to close the warped window properly so there wasn't a huge draught), but the office is a high-ceilinged room so a lot of empty space has to be filled with warm air before I feel much of it. I budgeted for one £15 cylinder a month, but we ended up using one about every ten days, from memory.

By comparison, Sarah's electric blanket only uses a sixty or so watts, and keeps her toasty warm all night! Which just goes to show how much of the heat from a room heater goes to heating the walls and air, rather than heating us. I need to get some time to refit Sarah's heated jacket with a cable to plug into a plugtop PSU so she can be kept warm without needing to get through batteries like they grow on trees...

Portable computers (by )

I like the iPad hardware; shame about the crippled iOS software. Similarly, I like the Kindle hardware - shame about the restrictive DRM system.

But the biggest shame is that I'm actually tempted to own three or more different computing devices, purely because of different situational specialisations in the hardware. A smartphone (or, more ideally, a wearable computer) for real-time pervasive tasks. A tablet device for portably viewng stuff on (whether it's ideally electronic ink or a nice colour LCD really depends on what I'm viewing) . A laptop for actually working on... ideally a small one for portability and a larger one for power (both in terms of CPU+RAM and in terms of more screen real estate). Plus remote servers that store a significant part of my data since it needs to be available to others in some way (this blog, my email, etc).

But this sucks - there's a lot of duplication of hardware (mass storage and CPU power) there, when I'll only really be using one device at a time. And there's an annoying duplication of data that needs to be "synched" between things. And an annoying variation of user interface, as different devices often have very different models of storage management.

Here's what I'd love to have:

In my pocket sits a smartphone. It might have a Blackberry-style keyboard or an iPhone-style touchscreen, depending on taste. It has a small computer to run its apps, and a battery, and the usual Bluetooth/USB/GSM/etc interfaces. And it has a wodge of Flash to store my stuff.

Maybe it has enough Flash to store all my stuff. Maybe it doesn't in which case, I might also carry a featureless cuboid that contains batteries and a lot of flash, or even a hard disk, or some combination of the two. In which case, my phone is slaved to it - using its own internal flash to cache resources fetched from the storage box, and accessing it via Bluetooth or some more advanced personal-area radio network; but when it's plugged into the storage box via USB, it can access it more speedily, and suckle power from the larger battery.

Perhaps I'm lucky enough to also possess a head-up display (which also functions as a headset for audio), and/or a chord keyer, that talk to the smartphone via radio or wired links. They're just extra I/O devices that plug into it, though.

But maybe I own a tablet computer, or an electronic paper device. They might have their own internal storage, but I'd slave them to my phone, or direct to my storage box (slaving to the phone, if the phone is slaved to the storage box, just slaves them to the storage box, in effect), and use their local flash as a cache. Also, if I don't like their file-browsing interfaces, I can just use the phone to select a file and "send" it to any willing device reachable through the slaving relationships, which causes it to access the file (from the original source) and open it up. The file isn't actually "sent", it just seems that way (except faster, and with a single central copy if I start editing it).

But what of the laptop? Or my big, powerful, desktop machine? Let them be slaved to my phone or my storage box, too. Take my home directory and installed apps from my central storage. Then there's no synching of address books and all that. There might be files in my phone that only laptop-scale software can manage, which I then can't open on the go, but I can at least use my portable devices to email a copy to a colleague who needs one, and to open simpler types of files that happen to be associated with the same project. They can talk to my storage box via a wireless link within range, or I can hook my storage box, phone, etc. up to it via cables for high-speed communications and power distribution.

What will it take to do this? Some cleverness to negotiate which device should give which power when they're joined by a cable (easy if one of them has access to mains power, trickier to decide if they're both battery devices; perhaps the default should be to not share power at all unless asked to by the user or unless the battery of one device is flat, turning it into a non-self-powered device). But it's mainly down to standardising file systems and protocols. Working at the "USB mass storage device" level is a bad idea, as only one device can have such a filesystem mounted. It needs to be more like NFS. And, mainly, devices and desktop OSes need to let go of managing their own filesystem and learn to use a shared standard for home directory layout - which will NEVER happen for legacy systems, but at least they can mount your mobile data store as "My Documents" or something like that, and perhaps make some effort to invisibly sync between their own personal-information databases and whatever's in there.

There'll still be some need for syncing - my email and blog, and shared work stuff like Git repos and group calendars, have to be on servers somewhere. And there's a good reason to mirror my portable storage to somewhere else whenever I can, as a backup. But the less syncing, the better!

Syntax diagrams (by )

I've always liked syntax diagrams as a way of describing languages. They make it clear what options are legal in any given situation.

However, drawing them by hand is tedious, so after a moment's thought, I realised it would be pretty trivial to design a reasonable layout algorithm to generate them automatically.

And so, on a train journey, banterpixra was born!

It's quite simple. It takes a BNF-esque grammer, encoded in s-expressions like so:

(rule
 . (choice
    rule-label
    literal
    (seq "(elidable" " " literal ")")
    (seq "(optional" " " rule ")")
    (seq "(zero-or-more" " " rule ")")
    (seq "(one-or-more" " " rule ")")
    (seq "(seq" (one-or-more (seq " " rule)) ")")
    (seq "(choice" (one-or-more (seq " " rule)) ")")
    (seq "(optional-choice" (one-or-more (seq " " rule)) ")")
    (seq "(comment" " " literal " " rule ")")))

...and it turns it into a nice syntax diagram, rendered as an SVG file. I found producing an SVG to be a very easy way of generating vector images - SVG is quite a decent format to generate, and inkscape will happily convert .svg files to .png and .pdf from the command line, so it's easy to automate rendering.

The layout algorithm is quite easy. The BNF is parsed, and a tree of layout objects generated from the bottom up. Layout objects may contain other layout objects, recursively, and cover a rectangular extent of the two-dimensional plane. New layout objects are created at the origin, and then the parent layout looks at the sizes of the child layouts within it, and relocates them to appropriate locations within itself. When the layout object tree has been generated, it's processed top-down to generate actual SVG. Each different type of layout object renders its children recursively (unless it's a terminal, in which case it just renders itself at the chosen location), then it adds the arrows and lines that join the children together.

That's really all there is to it.

The output is quite decent, if your browser supports SVG!

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.

WordPress Themes

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