]> git.sesse.net Git - foosball/blob - www/index.xml
Support double assessment, now that it's fast.
[foosball] / www / index.xml
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE
3   html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
4   "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
5 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" xmlns:t="http://template.sesse.net/">
6   <head>
7     <title>Foosball!</title>
8     <link rev="made" href="mailto:sgunderson@bigfoot.com" />
9     <meta name="MSSmartTagsPreventParsing" content="TRUE" />
10   </head>
11   <body>
12     <h1>Foosball!</h1>
13     
14     <h2>Add a singles result</h2>
15
16     <form method="post" action="add-single-result.pl">
17       <table>
18         <tr>
19           <th>User name 1</th>
20           <td><input name="username1" value="" size="10" /></td>
21         </tr>
22         <tr>
23           <th>User name 2</th>
24           <td><input name="username2" value="" size="10" /></td>
25         </tr>
26         <tr>
27           <th>Score</th>
28           <td>
29             <input name="score1" value="" size="2" /> -
30             <input name="score2" value="" size="2" />
31           </td>
32         </tr>
33         <tr>
34           <td colspan="2"><input type="submit" /></td>
35         </tr>
36       </table>
37     </form>
38     
39     <h2>Add a doubles result</h2>
40
41     <form method="post" action="add-double-result.pl">
42       <table>
43         <tr>
44           <th>Team 1 (usernames)</th>
45           <td>
46             <input name="team1_username1" value="" size="10" /> and 
47             <input name="team1_username2" value="" size="10" />
48           </td>
49         </tr>
50         <tr>
51           <th>Team 2 (usernames)</th>
52           <td>
53             <input name="team2_username1" value="" size="10" /> and 
54             <input name="team2_username2" value="" size="10" />
55           </td>
56         </tr>
57         <tr>
58           <th>Score</th>
59           <td>
60             <input name="score1" value="" size="2" /> -
61             <input name="score2" value="" size="2" />
62           </td>
63         </tr>
64         <tr>
65           <td colspan="2"><input type="submit" /></td>
66         </tr>
67       </table>
68     </form>
69
70     <h2>Singles score board</h2>
71
72     <table>
73       <thead>
74         <tr>
75           <th>Username</th>
76           <th>Rating</th>
77           <th>RD</th>
78           <th>Lower bound</th>
79           <th>Since -1d</th>
80         </tr>
81       </thead>
82       <tbody t:id="singletop">
83         <tr>
84           <td><t:username /></td>
85           <td><t:rating /></td>
86           <td><t:rd /></td>
87           <td><t:lowerbound /></td>
88           <td><t:trend /></td>
89         </tr>
90       </tbody>
91     </table>
92
93     <h2>Doubles score board</h2>
94
95     <table>
96       <thead>
97         <tr>
98           <th>Username</th>
99           <th>Rating</th>
100           <th>RD</th>
101           <th>Lower bound</th>
102           <th>Since -1d</th>
103         </tr>
104       </thead>
105       <tbody t:id="doubletop">
106         <tr>
107           <td><t:username /></td>
108           <td><t:rating /></td>
109           <td><t:rd /></td>
110           <td><t:lowerbound /></td>
111           <td><t:trend /></td>
112         </tr>
113       </tbody>
114     </table>
115
116     <h2>Last ten games</h2>
117
118     <table>
119       <thead>
120         <tr>
121           <th>Registered</th>
122           <th>Type</th>
123           <th colspan="2">Opponents</th>
124           <th>Score</th>
125           <th colspan="2">Rating diff.</th>
126         </tr>
127       </thead>
128       <tbody t:id="lastgames">
129         <tr>
130           <td><t:gametime /></td>
131           <td><t:type /></td>
132           <td><t:username1 /></td>
133           <td><t:username2 /></td>
134           <td><t:score1 /> &#8211; <t:score2 /></td>
135           <td><t:diff1 /></td>
136           <td><t:diff2 /></td>
137         </tr>
138       </tbody>
139     </table>
140     
141     <h2>Assess a singles match</h2>
142
143     <form method="post" action="assess-single.pl">
144       <table>
145         <tr>
146           <th>User name 1</th>
147           <td><input name="username1" value="" size="10" /></td>
148         </tr>
149         <tr>
150           <th>User name 2</th>
151           <td><input name="username2" value="" size="10" /></td>
152         </tr>
153         <tr>
154           <td colspan="2"><input type="submit" /></td>
155         </tr>
156       </table>
157     </form>
158     
159     <h2>Assess a doubles match</h2>
160
161     <form method="post" action="assess-double.pl">
162       <table>
163         <tr>
164           <th>Team 1 (usernames)</th>
165           <td>
166             <input name="team1_username1" value="" size="10" /> and 
167             <input name="team1_username2" value="" size="10" />
168           </td>
169         </tr>
170         <tr>
171           <th>Team 2 (usernames)</th>
172           <td>
173             <input name="team2_username1" value="" size="10" /> and 
174             <input name="team2_username2" value="" size="10" />
175           </td>
176         </tr>
177         <tr>
178           <td colspan="2"><input type="submit" /></td>
179         </tr>
180       </table>
181     </form>
182
183     <h2>About the ratings</h2>
184
185     <p>The rating system in use is called <em>FoosRank</em>, and is specially 
186       designed for this site. It is a Bayesian rating system, inspired by
187       <a href="http://math.bu.edu/people/mg/glicko/">Glicko</a> but re-worked
188       out from scratch with a statistically sound model of non-binary results,
189       and adjusted for teams (with some ideas from Microsoft's TrueSkill
190       system). For those not familiar with Bayesian ratings, the most important
191       parts are:</p>
192
193     <ul>
194       <li>Your rating is a <em>statistical estimation</em> of your true skill.
195         It has a mean (the point estimate of your skill) and a deviation
196         (measuring the uncertainity of the estimate), called the RD. It is approximately
197         Gaussian.</li>
198       <li>When you win or lose a game, your rating will change accordingly,
199         based on your score and your opponent. <em>You do not get 'points'
200         for winning or losing, the estimate is merely getting more accurate.</em>
201         In the process, the RD gets lower as you play. However, the RD increases
202         with time, opening up for the fact that your true skill can change.
203         (Glicko 2 also supports a volatility measure, which better models change
204         in true skill, but it has not been implemented here.)</li>
205       <li>The score board is sorted by a conservative estimate of your rating
206         (mean - 3 * RD). This makes it non-attractive for people with artifically
207         high ratings (especially newcomers) to avoid playing to stay high up in
208         the score board.</li>
209       <li>The single and double rankings are separate. Even though you play as a
210         team and all four players' rankings and RDs influence the rating adjustment,
211         you are ranked as an individual, as we do not usually play with fixed
212         teams.</li>
213     </ul>
214
215     <p>For the more technically minded, a 
216       <a href="http://home.samfundet.no/~sesse/foosrank.pdf">very rough writeup
217       on the mathematics behind FoosRank</a> is available in PDF format. It is,
218       however, by no means finished.</p>
219   </body>
220 </html> 
221