Saturday, 29 August 2015

The crossed zero!

This is one of my pet hates, and I am not sure I have blogged it before, but this is a pet hate that pre-dates my blog by many years.

There is a wikipedia article on this [here], and it is interesting reading.

What is a crossed zero?

The basic problem is fonts, usually very low resolution fonts such as 5x7 or 5x9 pixel based character sets on simple displays, which insist on making the zero character distinct from the letter "O" but making the zero have a diagonal line through it.

However, the issue is slightly more than just a crossed zero. As the wikipedia article points out, IBM chose to cross the letter "O" and leave the zero as is, but other computer systems (ICL being the main one I think) crossed the zero. Some even dotted the zero or used other ways to tell it from a letter "O".

History

Whilst the wikipedia article does state that the idea of crossing a zero is older than computers, the main issue does indeed come about with dawn of computer systems.

I am old enough to remember a mechanical typewriter - one that did not have a zero, because you had the letter "O" and used that. Indeed, I think it did not have a one either as that was a lower case "L". For type written documents, just as hand written documents, the use of digits was almost always obvious by context and the distinction of zero and "O" or one and "l" did not matter. As I understand it, historically, some writing systems did not have separate "digits" at all, and used letters.

However, for computers it matters, so we now have zero and the letter "O" very clearly different characters in the character sets like ASCII. In the early days of computers one would have "coding sheets". I actually used these in secondary school to submit CESIL code to be put on punched cards and submitted to a mainframe. This was before the school had a computer. This is when I first met the crossed zero. The people punching the cards had no real idea of what they were keying (as was very apparent a week later when the code run print results came back) and you had to have a way to be clear if you meant zero or "O".

When display technology started to allow matrix character sets (5x7 for example), the zero was coded as distinct from the "O" and had a line through it.

As the wikipedia article points out, this has a lot of problems. For a start, even in American character sets the crossed "0" looked a lot like an "8". But in some languages there is a crossed "O" letter that is a distinct letter "Ø". The wikipedia article highlights several more clashes as well.

My battle with the marketing department at Nokia

I used to work for Nokia, and I was a key developer on one of their last analogue mobile phones. I did a lot of the UI work, even drawing the new LCD layout myself. It was a two line display with 5x7 characters, and used a standard display controller which had a 5x7 font. This was before any "text messages" were possible, and the display was mainly for showing phone numbers. If I recall it was limited, maybe 2 lines of 8 characters or some such. So was used for menu items as well.

The default 5x7 character set had a crossed zero, but I insisted that this was wrong. This was not a coding sheet for entry in to a computer, but a consumer device - shown to people who had never seen a crossed zero and had no reason to differentiate a zero from an "O" anyway.

I did my own tests on those with poor eyesight and found, as I expected, that 0 and 8 looked the same.

At one point the other s/w developers argued and insisted that they always crossed their zeros, and it was "normal". Apart from the idea that s/w geeks in a mobile phone company were in any way typical customers, I challenged them - we had log books (paper) on which we wrote notes and I said "show me". Without fail they all found that they were writing zeros in their log books without crossing them. I won that argument.

Oddly, marketing were not impressed with me. They finally agreed for one model in one country, they would allow me to replace "0" with "O" on the display. This was, oddly, the UK, not countries in which Nokia marketed phones that used a crossed "O" character "Ø", which is crazy logic in itself.

The only real vindication of my stance came in a review of the phone, where they were really impressed with how much bigger and clearer the display was than the previous model.

In reality the display was identical in size, but I had instigated two changes. One was the uncrossed zero, and one was spacing out UK phone numbers (it was the time of OFTEL Phoneday, and I was hassling them over number layout rules). The result was that phone numbers were indeed massively easier to read.

Modern day

Times have changed, well, sort of.

For a start, mostly, people are not looking at old 5x7 character sets, and have much higher resolution in which to express the subtleties of different characters. Most fonts sensibly have a different style of "0" and "O". Indeed, fonts often try to make all digits the same size (not always, especially for "1") and the "O" is wider.

However, the crossed (or dotted) zero is still with us, and is a legacy that hangs on in there.

Why did I post this now - well, setting up security for the man-cave, and the camera overlays the time and date. It has dotted zeros. Why? Why? Why? Context if everything, and no reason to make it harder to read and confuse "0" and "8" is there?

Can we please kill the crossed zero - it either needs a subtlety different appearance or is clear from context whether a "0" or an "O".

5 comments:

  1. Hey, I worked for Nokia in R+D, for about one week. :-) The company I worked for became something called Symbian (rip), part-owned by Nokia, Ericsson, Psion and others, so I found out suddenly that I had been sold. I left shortly after.

    ReplyDelete
  2. The crossed v. dotted 0 on different but related computers when I was at school surprised my Computing teacher - he hadn't noticed the difference. It is mostly an oddity from history now.

    ReplyDelete
  3. I do wish you hadn't posted this article. It's reminded me of some kit I worked on years ago where I discovered that the official character set should have the letter O displayed as a "hooked O" (if I have the right name) - i.e. rather like a capital letter Q reflected about the vertical axis.

    Our kit didn't comply with this, but now I can't even remember what sort of kit it was, let alone who the spec was from. And the fact I can't remember is worrying me :-(

    ReplyDelete
  4. In the same kind of weird character logic, I have been on site to a Turk customer and what looks like an i on Turkish keyboard is actually ì but the difference is not obvious in some/most fonts. Never spent that long editing config files....

    ReplyDelete
  5. The BBC Micro's Mode 7 used a different shape for 0 to distinguish it from O. The "Bedstead" font faithfully recreates this.

    ReplyDelete