]> git.sesse.net Git - foosball/blobdiff - www/index.xml
Shorten the headings a bit.
[foosball] / www / index.xml
index df12da814e206a36603197a8bd6bc43d03f6995b..13299dd5dc7e715d035f2e66c676e1cc556b5017 100644 (file)
   <head>
     <title>Foosball!</title>
     <link rev="made" href="mailto:sgunderson@bigfoot.com" />
+    <link rel="stylesheet" type="text/css" href="foosball.css" />
     <meta name="MSSmartTagsPreventParsing" content="TRUE" />
   </head>
   <body>
-    <h1>Foosball!</h1>
+    <h1>...on a clear day, you can play foosball forever</h1>
     
-    <h2>Add a singles result</h2>
+    <div class="box" id="addsingle">
+      <h2>Add a singles result</h2>
 
-    <form method="post" action="add-single-result.pl">
-      <table>
-        <tr>
-         <th>User name 1</th>
-         <td><input name="username1" value="" size="10" /></td>
-       </tr>
-        <tr>
-         <th>User name 2</th>
-         <td><input name="username2" value="" size="10" /></td>
-       </tr>
-       <tr>
-         <th>Score</th>
-         <td>
-           <input name="score1" value="" size="2" /> -
-           <input name="score2" value="" size="2" />
-         </td>
-       </tr>
-       <tr>
-         <td colspan="2"><input type="submit" /></td>
-       </tr>
-      </table>
-    </form>
+      <form method="post" action="add-single-result.pl">
+        <table>
+          <tr>
+            <th>Player 1:</th>
+            <td><input name="username1" value="" size="10" /></td>
+          </tr>
+          <tr>
+            <th>Player 2:</th>
+            <td><input name="username2" value="" size="10" /></td>
+          </tr>
+          <tr>
+            <th>Score:</th>
+            <td>
+              <input name="score1" value="" size="2" /> &#8211; 
+              <input name="score2" value="" size="2" />
+            </td>
+          </tr>
+          <tr>
+            <td colspan="2"><input type="submit" value="Add result" /></td>
+          </tr>
+        </table>
+      </form>
+    </div>
     
-    <h2>Add a doubles result</h2>
-
-    <form method="post" action="add-double-result.pl">
-      <table>
-        <tr>
-         <th>Team 1 (usernames)</th>
-         <td>
-           <input name="team1_username1" value="" size="10" /> and 
-           <input name="team1_username2" value="" size="10" />
-         </td>
-       </tr>
-        <tr>
-         <th>Team 2 (usernames)</th>
-         <td>
-           <input name="team2_username1" value="" size="10" /> and 
-           <input name="team2_username2" value="" size="10" />
-         </td>
-       </tr>
-       <tr>
-         <th>Score</th>
-         <td>
-           <input name="score1" value="" size="2" /> -
-           <input name="score2" value="" size="2" />
-         </td>
-       </tr>
-       <tr>
-         <td colspan="2"><input type="submit" /></td>
-       </tr>
-      </table>
-    </form>
+    <div class="box" id="adddouble">
+      <h2>Add a doubles result</h2>
 
-    <h2>Singles score board</h2>
+      <form method="post" action="add-double-result.pl">
+        <table>
+          <tr>
+            <th>Team 1:</th>
+            <td>
+              <input name="team1_username1" value="" size="10" /> and 
+              <input name="team1_username2" value="" size="10" />
+            </td>
+          </tr>
+          <tr>
+            <th>Team 2:</th>
+            <td>
+              <input name="team2_username1" value="" size="10" /> and 
+              <input name="team2_username2" value="" size="10" />
+            </td>
+          </tr>
+          <tr>
+            <th>Score:</th>
+            <td>
+              <input name="score1" value="" size="2" /> &#8211; 
+              <input name="score2" value="" size="2" />
+            </td>
+          </tr>
+          <tr>
+            <td colspan="2"><input type="submit" value="Add result" /></td>
+          </tr>
+        </table>
+      </form>
+    </div>
+    
+    <div class="box" id="assesssingle">
+      <h2>Assess a singles match</h2>
 
-    <table>
-      <thead>
-        <tr>
-          <th>Username</th>
-         <th>Rating mean</th>
-         <th>Rating deviation</th>
-         <th>Conservative estimate</th>
-         <th>Change since yesterday</th>
-       </tr>
-      </thead>
-      <tbody t:id="singletop">
-        <tr>
-         <td><t:username /></td>
-         <td><t:rating /></td>
-         <td><t:rd /></td>
-         <td><t:lowerbound /></td>
-         <td><t:trend /></td>
-       </tr>
-      </tbody>
-    </table>
+      <form method="post" action="assess-single.pl">
+        <table>
+          <tr>
+            <th>User name 1</th>
+            <td><input name="username1" value="" size="10" /></td>
+          </tr>
+          <tr>
+            <th>User name 2</th>
+            <td><input name="username2" value="" size="10" /></td>
+          </tr>
+          <tr>
+            <td colspan="2"><input type="submit" value="Assess" /></td>
+          </tr>
+        </table>
+      </form>
+    </div>
+    
+    <div class="box" id="assessdouble">
+      <h2>Assess a doubles match</h2>
 
-    <h2>Doubles score board</h2>
+      <form method="post" action="assess-double.pl">
+        <table>
+          <tr>
+            <th>Team 1:</th>
+            <td>
+              <input name="team1_username1" value="" size="10" /> and 
+              <input name="team1_username2" value="" size="10" />
+            </td>
+          </tr>
+          <tr>
+            <th>Team 2:</th>
+            <td>
+              <input name="team2_username1" value="" size="10" /> and 
+              <input name="team2_username2" value="" size="10" />
+            </td>
+          </tr>
+          <tr>
+            <td colspan="2"><input type="submit" value="Assess" /></td>
+          </tr>
+        </table>
+      </form>
+    </div>
 
-    <table>
-      <thead>
-        <tr>
-          <th>Username</th>
-         <th>Rating mean</th>
-         <th>Rating deviation</th>
-         <th>Conservative estimate</th>
-         <th>Change since yesterday</th>
-       </tr>
-      </thead>
-      <tbody t:id="doubletop">
-        <tr>
-         <td><t:username /></td>
-         <td><t:rating /></td>
-         <td><t:rd /></td>
-         <td><t:lowerbound /></td>
-         <td><t:trend /></td>
-       </tr>
-      </tbody>
-    </table>
+    <div class="box" id="singleboard">
+      <h2>Singles score board</h2>
 
-    <h2>Last ten games</h2>
+      <table>
+        <thead>
+          <tr>
+            <th class="username">Username</th>
+            <th class="rating">Rating</th>
+            <th class="rd">RD</th>
+            <th class="lowerbound">Bound</th>
+            <th class="trend">Change</th>
+          </tr>
+        </thead>
+        <tbody t:id="singletop">
+          <tr>
+            <td class="username"><t:username /></td>
+            <td class="rating"><t:rating /></td>
+            <td class="rd"><t:rd /></td>
+            <td class="lowerbound"><t:lowerbound /></td>
+            <td class="trend"><t:trend /></td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
 
-    <table>
-      <thead>
-        <tr>
-          <th>Registered</th>
-          <th>Type</th>
-          <th colspan="2">Opponents</th>
-         <th>Score</th>
-         <th colspan="2">Rating diff.</th>
-       </tr>
-      </thead>
-      <tbody t:id="lastgames">
-        <tr>
-         <td><t:gametime /></td>
-         <td><t:type /></td>
-         <td><t:username1 /></td>
-         <td><t:username2 /></td>
-         <td><t:score1 /> &#8211; <t:score2 /></td>
-         <td><t:diff1 /></td>
-         <td><t:diff2 /></td>
-       </tr>
-      </tbody>
-    </table>
-    
-    <h2>Assess a singles match</h2>
+    <div class="box" id="doubleboard">
+      <h2>Doubles score board</h2>
 
-    <form method="post" action="assess-single.pl">
       <table>
-        <tr>
-         <th>User name 1</th>
-         <td><input name="username1" value="" size="10" /></td>
-       </tr>
-        <tr>
-         <th>User name 2</th>
-         <td><input name="username2" value="" size="10" /></td>
-       </tr>
-       <tr>
-         <td colspan="2"><input type="submit" /></td>
-       </tr>
+        <thead>
+          <tr>
+            <th class="username">Username</th>
+            <th class="rating">Rating</th>
+            <th class="rd">RD</th>
+            <th class="lowerbound">Bound</th>
+            <th class="trend">Change</th>
+          </tr>
+        </thead>
+        <tbody t:id="doubletop">
+          <tr>
+            <td class="username"><t:username /></td>
+            <td class="rating"><t:rating /></td>
+            <td class="rd"><t:rd /></td>
+            <td class="lowerbound"><t:lowerbound /></td>
+            <td class="trend"><t:trend /></td>
+          </tr>
+        </tbody>
       </table>
-    </form>
-    
+    </div>
 
-    <h2>About the ratings</h2>
+    <div class="box" id="lastgames">
+      <h2>Last ten games</h2>
+
+      <table>
+        <thead>
+          <tr>
+            <th>Registered</th>
+            <th>Type</th>
+            <th colspan="2">Opponents</th>
+            <th>Score</th>
+            <th colspan="2" class="rightmost">Rating diff.</th>
+          </tr>
+        </thead>
+        <tbody t:id="lastgames">
+          <tr>
+            <td><t:gametime /></td>
+            <td><t:type /></td>
+            <td><t:username1 /></td>
+            <td><t:username2 /></td>
+            <td><t:score1 /> &#8211; <t:score2 /></td>
+            <td><t:diff1 /></td>
+            <td class="rightmost"><t:diff2 /></td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+   
+    <h2 style="clear: left;">About the ratings</h2>
 
     <p>The rating system in use is called <em>FoosRank</em>, and is specially 
-      designed for this system. It is a Bayesian rating system, inspired by
-      Glicko 1 but re-worked out from scratch with a statistically sound model
-      of non-binary results, and adjusted for teams (with some ideas from
-      Microsoft's TrueSkill system). For those not familiar with Bayesian
-      ratings, the most important parts are:</p>
+      designed for this site. It is a Bayesian rating system, inspired by
+      <a href="http://math.bu.edu/people/mg/glicko/">Glicko</a> but re-worked
+      out from scratch with a statistically sound model of non-binary results,
+      and adjusted for teams (with some ideas from Microsoft's TrueSkill
+      system). For those not familiar with Bayesian ratings, the most important
+      parts are:</p>
 
     <ul>
       <li>Your rating is a <em>statistical estimation</em> of your true skill.
        It has a mean (the point estimate of your skill) and a deviation
        (measuring the uncertainity of the estimate), called the RD. It is approximately
-       Gaussian (actually logistic).</li>
+       Gaussian.</li>
       <li>When you win or lose a game, your rating will change accordingly,
         based on your score and your opponent. <em>You do not get 'points'
        for winning or losing, the estimate is merely getting more accurate.</em>
         you are ranked as an individual, as we do not usually play with fixed
        teams.</li>
     </ul>
+
+    <p>For the more technically minded, a 
+      <a href="http://home.samfundet.no/~sesse/foosrank.pdf">very rough writeup
+      on the mathematics behind FoosRank</a> is available in PDF format. It is,
+      however, by no means finished.</p>
   </body>
 </html>