Initial commit with README
Add initial sample TCP server

This sample TCP server just echo back and convert the string send to
uppercase. To test out, just run

In one terminal, just run
$ python counterserver.py

In another terminal, just connect to the server and type anything.
$ telnet localhost 5263
Add license info to the README file
Create CounterServer wrapper for TCPServer

This wrapper class helps us to do unit testing and adding more
additional features later.
Quit the server without traceback

Do not print traceback when we want to stop the program using Ctrl-C.
Extract and move code block in __main__

Just following idiomatic Python approach.
Add initial unit test

For the test cases to work, we need to use threading and enable
allow_reuse_address = True attribute to the server to as the socket is
still listening on the port with "TIME_WAIT" status.
Use multiple client instances during unit test

Corresponding the the threading feature of the socket server.
Ignore Vim's .swp file

So that I won't accidentally added these files.
Fix wrong receive size, 2014 instead of 1024
Keep the server running using threading

Spawn each thread for each request or connection while keep it running
waiting for connection.
Display connection info in CounterServer

Show the connection or disconnection details while running the
CounterServer.
Fix KeyboardInterrupt exception ignored

Add some delay to the while loop so the main process will capture the
KeyboardInterrupt (Ctrl-C) exception instead of leaving the try...except
block too early.
Dispatch command to handler class method

Delegate the command receive to its corresponding method in
CounterServerHandler class. Also, added the placeholder unit test cases
for each command.
Implement CREATE_COUNTER command

We're using Python's shelve as our default file storage to keep track of
the counter.
Implement INCREMENT_COUNTER and GET_COUNTER_VALUES commands

Add the basic implementation details of both commands and the relevant
test cases. Also, refactor the unit testing so that each test case is
independent of each others.
Implement AVERAGE_COUNTER_VALUE command

Add the command to count the average counter values for a label within
minutes.
Remove second for each timestamp

Set the counter timestamp value until minute precision for each
comparison later.
Implement date range for GET_COUNTER_VALUES command

Accept the start date and end date from the command and return as a
sequence of string of count.
Implement date range for AVERAGE_COUNTER_VALUE command

Filter and find the average of all counter within a start date and end
date.