Glossary of Terms

[ACPC Dealer] The program used to deal cards and manage poker matches. It is the official program used by the Annual Computer Poker Competition to run its matches.

[action] A method in a controller[http://guides.rubyonrails.org/action_controller_overview.html], to which a route is mapped.

[Apache[http://www.apache.org/]] A commonly used production-grade web server that is also used by this application.

[background process server] A server to run jobs in background. Background processes are necessary because a TCP socket needs to be persisted in order to communicate with the ACPC Dealer.

[Beanstalkd[http://kr.github.com/beanstalkd/]] The background process server implementation currently being used to run jobs in the background.

[bot] An automated agent that can play matches against other competitors without input from a human user.

[Player response] A matchstate string with an appended action, according to the format specified by the ACPC Dealer.

[competitor] A user operating a browser or a bot. A competitor can participate in a match.

[controller[http://guides.rubyonrails.org/action_controller_overview.html]] A class that inherits from ApplicationController, contains actions that render views to the browser, and delegates business logic to models and background processes.

[CPRG[http://poker.cs.ualberta.ca/]] The University of Alberta's Computer Poker Research Group.

[gem[http://docs.rubygems.org/read/chapter/1/]] A plug-in-like Ruby library or application that adds functionality to another Ruby application. Gems are listed in Gemfile and are installed by running bundle install from the application's root directory.

[Javascript template] Javascript embedded in an ERB or HAML format template. It usually has an .js.erb or .js.haml extension.

[match] A sequence of poker hands managed by the ACPC Dealer and played by competitors.

[match state] The state of a match on a certain turn during a particular hand. Strings describing the match state are sent to participants by the ACPC Dealer.

[model[]] A class that works with data from, and provides results to, controllers.

[partial template or partial] A snippet of template code (+ERB+, HAML, etc.) that can be inserted into full templates at run time. By convention, partial template files begin with an underscore ('_'). See Layouts and Rendering in Rails for more information.

[participant] A competitor who joins a ACPC Dealer hosting a match.

[Phusion Passenger] Integration manager between Rails[http://rubyonrails.org/] and Apache[http://www.apache.org/].

[route[http://guides.rubyonrails.org/routing.html]] A map between URL parameters and controller[http://guides.rubyonrails.org/action_controller_overview.html] actions.

[template] A file that can be interpreted into an HTML page, which can be displayed in a browser. It is usually written in ERB or HAML and is a file with a .html.erb or .html.haml extension respectively. See Layouts and Rendering in Rails for more information.

[view] A set of templates that can be rendered by controller[http://guides.rubyonrails.org/action_controller_overview.html] actions to the browser. See Layouts and Rendering in Rails for more information.

[worker] A process running on a background process server. The worker script for this application (+lib/background/worker.rb+) is based on the Stalker gem and runs on Beanstalkd[http://kr.github.com/beanstalkd/].