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