It took 13 years to notice my invalid vehicle registration certificate!

In 2014 we bought a car1, registered in my name. It’s a little long in the tooth now and we’re thinking about what might replace it, but for the time being it’s a useful workhorse and especially valuable when we need to move the entire family and still have space for luggage.

A large red car is parked inside an enclosed car-transporting train. Alongside it Dan, a white man with a goatee beard, takes a selfie.
This large car was super helpful for a trip to France via the Channel Tunnel earlier this summer… at least, once I’d hacked Le Shuttle’s API to work around their inability to cope with us bringing home different adults than we took on the outbound leg!

This week, I renewed my driving license2. While doing so, I was invited to connect the records of the vehicles I own. This would allow, for example, email notifications when my Vehicle Excise Duty is due on them.

How to register a car “wrong”

The newer of our two cars was easy to add: I provided the number plate; the website did some kind of lookup; and it was done. But when I tried to add the older car, I got an error message:

Screenshot of a gov.uk web page, showing the error "You cannot add this vehicle to your account. DVLA cannot match your details to the registered keeper details on the V5C (logbook) for the vehicle DQ26 ABC"
I’d have probably just treated this as “just one of those things” and ignored it, were it not for the fact that our other car was added without any difficulty! Why the disparity?

The website claimed that the details on my V5C – the vehicle registration certificate or “logbook” – didn’t match my personal information. So I pulled out the papers for both cars… and discovered that the personal information sections were identical. The front of a V5C has a section that shows your name and address, and on both my certificates looked the same: my name, followed by my address. So why was one failing to work?

I sat in a queue for their webchat service, and – after a lot of back-and-forth – the operator and I came to a conclusion about what was wrong: for this car only, my name had been entered into the “company name” field in their database, rather than the “name” field.

Mockup of Dan Q's V5C, with the name "Dan Q" labelled as being the space for a name OR a company name.
It’s impossible to tell conclusively from a paper certificate whether the first line represents a person or a company: they’re both displayed identically.

From the looks of things, this is what happened in 2014:

  1. The dealership filled the V55/4 form to register the car to me.
  2. The DVLA saw my unusual name3, figured “that can’t be a person’s name; it must be a company name”4, and put it into the “company name” field.
  3. The DVLA database differentiates between company name and person name, but the paper version just prints whichever one is present at the top of the address: information is lost in the translation to paper.
  4. So: the database was wrong, but the paper copy didn’t show that it was wrong.

Getting the problem fixed

Apparently if I send my V5C to them with the details “corrected”, with an accompanying letter explaining the the correction is to which field they should be storing the data in, then they’ll correct it within a month or so

And then they’ll issue me with a new paper copy. Which will, naturally, look identical to this one. The only change will be in their database.

What can we learn from this?

I wonder if there’s anything that could have been different to prevent this confusion? A simple change would be to improve the layout of the third page of a V5C certificate.

Close-up of page 3 of a V5C form, with personal information blurred.
This is the part of the form I need to “change” by entering a first and surname, representing no actual change to the paper version but a significant difference to DVLA’s database.

Perhaps instead of re-listing the name and address in the same format as on the front page, this page could list each field separately, perhaps with each alongside the corresponding field for changing it. This wouldn’t need much space, less than would be saved by consolidating submission instructions (which are repeated at least five times in some form or another, across the form).

There are other ambiguities and redundancies that could be cleared-up at the same time. For example, the company name field does double-duty as the title field, which is an unnecessary complication that I’m sure must make data entry harder. And the registration number and document reference number are duplicated many times on this page, even though the instructions prohibit separating the parts.

Maybe there’s something to be learned from this for all of us who work with databases and forms. Do you have any fields that serve double-duty? Do you produce output by concatenating fields in such a way that might result in ambiguous provenience? Do you have a process to validate that data has been entered into the right column? Are you unable to make changes without re-generating secondary resources (like paper hard copies), the the secondary resources are functionally unchanged?

But for now, I probably ought to get this form sent back to the DVLA. So they can change their database and send me back a near-identical form. Such bureaucracy!

Footnotes

1 This car is a Seat, and – because we name all of our cars – he’s call Arthur. Yes, for the pun.

2 The driving license renewal was super easy, by the way. Half a dozen clicks on a gov.uk page and it was done.

3 If you’re new to my blog you might not know, but my actual full name, which appears on my driving license and my passport and the electoral roll and (nowadays) my birth certificate is just: Dan Q. It sometimes causes problems with computer systems, leading to me getting strangely-addressed postal mail or being unable to fill out web forms without lying. I’m mostly understanding of the falsehoods programmers believe about names, but sometimes companies mess shit up so badly that if they don’t correct their mistakes they end up paying me to go away. My blog contains lots more stories of my unusual name causing trouble.

4 As far as I can tell, there’s never been a company called “Dan Q”. There was a “Danq”, once, and a “Dan QB” long after, and it makes you wonder why corporate registration of a vehicle doesn’t require as a minimum a cursory lookup on Companies House by the registering officer, but what do I know?

× × × ×

VaultPress to the Rescue

OMG VaultPress Jetpack Backup to the rescue.

One of the best Internet people drew me a picture and when I replied to it, it got scrambled. 😱

But even though I had to modify core WordPress columns to store drawings, the backup respected that and I was able to restore it.

I used to pay for VaultPress. Nowadays I get it for free as one of the many awesome perks of my job. But I’d probably still pay for it because it’s a lifesaver.

SQLite Code Of Ethics (formerly Code of Conduct)

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

  1. Attribute to God, and not to self, whatever good you see in yourself.
  2. Recognize always that evil is your own doing, and to impute it to yourself.
  3. Fear the Day of Judgment.
  4. Be in dread of hell.

In an age when more and more open-source projects are adopting codes of conduct that reflect the values of a tolerant, modern, liberal society, SQLite – probably the most widely-used database system in the world, appearing in everything from web browsers to games consoles – went… in a different direction. Interesting to see that, briefly, you could be in violation of their code of conduct by failing to love everything else in the world less than you love Jesus. (!)

After the Internet collectively went “WTF?”, they’ve changed their tune and said that this guidance, which is based upon the Rule of St. Benedict, is now their Code of Ethics, and their Code of Conduct is a little more… conventional.

Why You Should Never Use MongoDB

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

Disclaimer: I do not build database engines. I build web applications. I run 4-6 different projects every year, so I build a lot of web applications. I see apps with different requirements and different data storage needs. I’ve deployed most of the data stores you’ve heard about, and a few that you probably haven’t. I’ve picked the wrong…

The story of how the Diaspora social network adopted the hip new database technology without for a moment thinking about whether it was the right database technology.

Bovini: A Week Well-Spent

It’s been a busy week. I’ve spent a lot of my time at the office, trying to get the replication model for Bovini working – causing much stress as it failed time and time again. For those of you without a grounding in computer science theory, replication is the art of making data be identical (and editable) in several places at once without the fundamental problems that this goes on to cause, such as data identity conflicts.

In this particular case, we have two master copies of a database, and five smaller copies of a particular one-fifth of the data each (plus a little shared data), split around seven UK sites, and who’s computers can only be made to talk to one another between the hours of midnight and 4am each weekday. So: not only does the program I’ve been writing (and sweating on, crying over, and shouting at, this week) have to pull all the data back together and spread it out, it also has to detect whether two users at different sites edit the same piece of data during the same day, work out who’s most likely to be ‘right’, and ‘fix’ the data accordingly. Or, if it’s not sure, know who to ask for assistance. It’s a clever program.

And now it seems to be done. And working. Great!

Unfortunately, working like a dog on this little project has only taken time (and energy) away from my preferred software project – Three Rings – a program I’m writing for free for National Nightline. I’m likely to have a busy weekend catching up!

Regardless, tonight… will be a night for relaxing – Bryn, Claire, Paul, Kit and I are going to spend the evening in the Ship & Castle, drinking Real Ale and playing Chez Geek. A perfect way to end a week.