Up to Main Index                           Up to Journal for October, 2016

                    JOURNAL FOR SUNDAY 16TH OCTOBER, 2016
______________________________________________________________________________

SUBJECT: When is 'Jаne' <> 'Jane'? Plus an update!
   DATE: Sun 16 Oct 21:53:30 BST 2016

Warning! This article uses some Unicode characters which your browser may not
be able to display depending on the fonts you have installed. In which case it
would further illustrate the issues I'm describing.

First of all though, I've Just pushed a number of changes out to the public
dev branch :)

The changes are mostly to do with cleaning up the code for the frontend. The
frontend struct stash field has now been dropped and the frontend code is now
split into separate sub frontends each with their own type and local storage.
So no more stuffing random data into a map[string][]byte bucket!

There is also a bug fix for the RecordJar.Read method for reading .wrj files.
Specifically it deals with having leading blank lines in the free text block
after the initial blank line separator. Before this fix the wrong number of
blank lines were added to the text block.

When creating accounts and players the frontend now checks to make sure that a
player's name only contains the letters 'a'-'z' or 'A'-'Z'.

There is a simple reason for this - you need to be able to type a player's
name in order to be able to interact with them! For example if a players name
had diacritics as in Zoë how many people could type that on their keyboards?
Or how about a name with foreign characters like Александр? It might be easy
for someone if they use a native language keyboard but not so easy for others.

Then there is also the issue of fonts. Would people even be able to display
all of the characters properly in Александр? How about 芳? The last one is
also a wide character which would probably mess up formatting as it should be
double width.

There is also the issue of homographs[1] - letters which look the same. An
example is 'Jаne' and 'Jane' which look the same but are different. In the
first a Cyrillic 'а' is used. In the second a Latin 'a' is used.

Then there is the issue of Unicode normalisation. For example is 'é' a single
rune or a latin 'e' combined with an acute accent as in 'é'? Unicode
normalisation goes some way to solving this particular issue[2].

When you start looking at text you soon realise there is no such thing as just
'plain' text. What we mean by plain text is really ASCII text. Printable ASCII
characters from a space (' ' or ASCII 0x20) to a tilde ('~' or ASCII 0x7E).

A measly 95 ASCII characters: a-zA-Z0-9 plus !"#$%&'()*+,-/:;<=>?@[\]^_`{|}~ .

There is also no need for numbers in names. Instead of having to use John7
there can just be seven Johns.

Name also don't have any whitespace. For now the name should just be the
players first name. There are plans to add family names at a later date.
Family names would allow for lineages, family trees, heirs, heirlooms and a
host of other exciting features. So please don't try to be clever and use
something like JohnSmith as a name!

Only 14 days left till Halloween... /\oo/\

--
Diddymus

  [1] Homographs: https://en.wikipedia.org/wiki/IDN_homograph_attack

  [2] Go Blog, text normalisation: https://blog.golang.org/normalization


  Up to Main Index                           Up to Journal for October, 2016