Communications with servers - and your privacy
==============================================

The Special Circumstances YPP yarrg client talks to several different
servers for different purposes.

(The information below is true if you invoke the system using the main
`yarrg' program.  If you want to know the relationships between it and
its various helper programs, and the specific behaviours of the
helpers, you'll have to read the source.  Sorry.)


1. YARRG and PCTB servers
=========================

These servers records everyone's uploads of commodity prices and
allows you to search for routes using the PCTB and YARRG websites.

The YARRG data upload server may also distribute the uploaded data to
other searching site operators for inclusion in their databases; your
IP address is not passed on to those other operators.

We upload to the PCTB and YARRG servers if you select one of the
--upload options, and not otherwise - but note that this is the
default.

We also query the PCTB server to determine possible island names, if
we don't recognise the island and want to ask you about it.  It is not
currently possible to disable this behaviour, but if you don't select
an operating mode (like --upload) which needs to know your island, it
won't happen.


2. YPP SC YARRG dictionary server
=================================

This server maintains the master copies of various databases which are
used to assist the OCR and upload process.  Collectively I call these
`dictionaries'.  There are dictionaries of character and island name
images, of (existing and new) commodity names, of notable known OCR
misrecognitions, and of islands and archipelagoes.  These are used for
the commodity screen OCR, for determining your island name, and for
checking whether commodities missing on the servers are real.

By default, we ask the YARRG disctionary server for appropriate
updated dictionaries every time we run; this is done with the rsync
protocol (indeed, by invoking rsync).  You can disable this with
--dict-local-only.

If we find a screen display we don't understand, we will ask you about
it by popping up a window which allows you to select the island (or
provide character set information - see README.charset).  Your answers
to these questions are recorded locally and will be used by your
client in future.

By default, these dictionary updates are also submitted to my server.
That allows me to check them; if they are correct, I will include them
in the master database so that everyone gets the benefit of them.
If there are any incorrect submissions, I can contradict them in the
master database so that your client will automatically behave
correctly anyway.

So, thanks for your help!


Dictionary submissions (uploads) include your pirate name by default
--------------------------------------------------------------------

These dictionary submissions are reported to me along with the ocean
name and your pirate name.

I will only use this to talk to you about your dictionary submissions
(for example, to let you know if you have made a mistake, or to thank
you for your contributions).

However, if you prefer to be anonymous, you can tell your yarrg client
not to mention your pirate name (in the GUI, or with the --dict-anon
option).  In this case I won't see your ocean or your pirate name,
although of course the actual images in your submissions may reveal
your island and thus your ocean.


User interface for privacy
--------------------------

The dictionary submission feature, and whether to quote your pirate
identity, is exposed in and controllable from the dictionary update
GUI, for maximum visibility.  The settings in the GUI are not recorded
anywhere from one run to the next.  If you want to consistently
increase your privacy setting, use the --dict-* privacy options.
See the table of options in the README for details.

Having said all that, please do not upload data to the YARRG and PCTB
servers without also participating in dictionary sharing.  If you
don't update your dictionary, your parses may be wrong and thus the
data you uploads may be wrong.  If you don't submit your dictionary
entries, any mistakes you make will remain uncorrected.


Records kept
------------

I keep a permanent log of all the dictionary submissions, including
date, time, submitting pirate or IP address, and YPP SC yarrg client
version.  This is so that I have enough information to go back and fix
the dictionary if anything goes badly wrong (for example, if a
particular client is broken).

I keep a log of the data uploads including date, time, submitting IP
address, YPP SC yarrg client version but NOT including your pirate
name.  This information (except your IP address) is passed on to any
third parties who've asked to get copies of data updates.

My rsync server (file server) also records your IP address when your
client fetches new master dictionaries; those logs are used only for
debugging the rsync server (which also serves many other files), and
they are routinely expired, currently after about two months.

The information about the source of a submissions doesn't appear in
the dictionaries as available for download, so other people won't
know you're using my program.

I don't know what records the actual PCTB server keeps, but the upload
process tells the server your ocean and island name, and your PCTB
upload client version number (including the fact that it's this Linux
client).  The PCTB server is not told your pirate name.
