Get Deleware company registration data!
+++++++++++++++++++++++++++++++++++++++++++++

It might be nice if it were easy to get data about company registrations.
Much information is available through the
`General Information Name Search <https://delecorp.delaware.gov/tin/GINameSearch.jsp>`_
site, and the present program queries this website for information.

Installing the worker
=========================
The present program is separated into *worker*, *manager*, and *reader*
components. This is done so that many different workers can be run at once,
coordinated by a single manager.

You probably just need to install the worker and run it; by default, it will
receive its directions from a manager running on one of Tom's computers.
It will periodically contact the manager for directions, and it will query
Delaware's General Information Name Search accordingly.

Two ways of installing are explained below.

Standalone installation
    For most people
Installing with Pip
    For people who know what Python and Pip and terminals are

Standalone installation
--------------------------
I am going to make a package with `PyInstaller <http://www.pyinstaller.org/>`_
and put directions here as to how to install it. So this installation method
isn't available yet.

Installing with Pip
---------------------
If you are used to using a terminal and already have Python and Pip installed,
you can just run this command. ::

    pip install delaware

If that gives you an error about permissions, try this command. ::

    sudo pip install delaware

Running
=======================
Once you've installed the program, type this into a terminal. ::

    delaware

It'll ask you a few questions the first time you run it, but you can totally
ignore it after that.

How it works
=================
When you run ``delaware``, you are running the *worker* program. Tom is
running the *manager* program. When it starts, your worker contacts Tom's
manager for directions.

Why would I make such a complicated program?

I've told that some people much difficulty in acquiring the data, and I
made the present program to deal with the most annoying of difficulties.
The difficulty is, supposedly, that the website only allows a single IP
address to make so many requests. One person told me that the limit was
a few hundred requests per IP address, and another person told me that
the limit was 3000 requests.

Having used the site myself, I don't think that such a limit exists;
I haven't managed to hit any of these limits myself, and the Delaware
Division of Corporations told me that there is no limit. So maybe this
complicated thing wasn't necessary, but I already wrote it.

But in case there is a limit, the idea is that we can get a bunch of
different people each to download a small piece of the data, staying
within the limits for each IP address.

If errors come up
========================
If the program stops running, please send the error message to
_@thomaslevine.com. Also, please don't delete the ``~/.delaware`` directory,
as it contains files that can be helpful for figuring out what went wrong.
