binmode STDOUT, ':utf8';
-# Find auxillary parameters.
-my %params = ();
-my $q = $dbh->prepare('SELECT * FROM ratings WHERE id < 0');
-$q->execute;
-while (my $ref = $q->fetchrow_hashref) {
- $params{$ref->{'id'}} = $ref->{'rating'};
-}
-my $match_stddev = $params{-2} * sqrt(2.0);
+my $cgi = CGI->new;
+my $locale = wloh_common::get_locale($cgi);
+
+my $aux_parms = wloh_common::get_auxillary_parameters($dbh, $locale);
+my $match_stddev = $aux_parms->{'score_stddev'} * sqrt(2.0);
print CGI->header(-type=>'text/html; charset=utf-8', -expires=>'+5m');
POSIX::setlocale(&POSIX::LC_ALL, 'nb_NO.UTF-8');
-printf <<"EOF", $params{-3}, $match_stddev;
+print <<"EOF";
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE
html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="no">
<head>
<title>WLoH-rating</title>
- <link rel="stylesheet" href="/style" type="text/css" />
+ <link rel="stylesheet" href="style" type="text/css" />
</head>
<body>
+EOF
+
+wloh_common::print_navbar($cgi, $dbh, $locale);
+
+printf <<"EOF", $aux_parms->{'rating_prior_stddev'}, $match_stddev;
<h1>WLoH-rating</h1>
<p><em>Dette er et hobbyprosjekt fra tredjepart, og ikke en offisiell del av
for tilgang!), og oppdateres
hver hele time. Den er fullstendig uoffisiell, og har ingen innflytelse
på WLoH, men brukes for å estimere vinnersannsynligheter i
- <a href="/">sannsynlighetsberegningen</a>.</p>
+ <a href="index">sannsynlighetsberegningen</a>.</p>
<p>Modellen kan endre seg når som helst når jeg føler for det :-)
Ikke ta ratingen alt for alvorlig, selv om den er basert på
<h2>Modellparametre</h2>
<p>For de som vet litt om slikt. Det finnes også en lengre, mer detaljert
- <a href="/ratings-explained">forklaring</a> beregnet på ikke-matematikere.</p>
+ <a href="ratings-explained">forklaring</a> beregnet på ikke-matematikere.</p>
<ul>
- <li>MLE-basert modell med én skalar (styrke) per spiller og to globale skalarer (begge standardavvik, se under), løst med syklisk MM (minorization-maximization). Antall iterasjoner før konvergens: $params{-1}.</li>
+ <li>MLE-basert modell med én skalar (styrke) per spiller og to globale skalarer (begge standardavvik, se under), løst med syklisk MM (minorization-maximization). Antall iterasjoner før konvergens: $aux_parms->{num_iterations}.</li>
<li>Rimelighetfunksjon, prior: Normalfordeling med µ=500, σ=%.1f (est.)</li>
<li>Rimelighetfunksjon, per kamp: Normalfordeling med µ=(score1 - score2), σ=%.1f (est.)</li>
<li>Vekting: Inneværende sesong samt de tre siste vektes fullt ut
</tr>
EOF
-my $season = wloh_common::get_max_season($dbh);
+my $season = wloh_common::get_max_season($dbh, $locale);
# Pick up all the subdivisions' ratings.
my %subdivision_ratings = ();
-$q = $dbh->prepare('SELECT divisjon, avdeling, serie_id, AVG(rating) AS avg_rating FROM ratings NATURAL JOIN siste_divisjon WHERE sesong=? GROUP BY divisjon, avdeling, serie_id ORDER BY divisjon, avdeling');
-$q->execute($season);
+my $q = $dbh->prepare('SELECT divisjon, avdeling, serie_id, AVG(rating) AS avg_rating FROM ratings NATURAL JOIN siste_divisjon NATURAL JOIN spiller_kultur WHERE kultur=? AND sesong=? GROUP BY divisjon, avdeling, serie_id ORDER BY divisjon, avdeling');
+$q->execute($locale, $season);
while (my $ref = $q->fetchrow_hashref) {
my $division = $ref->{'divisjon'};
push @{$subdivision_ratings{$division}}, [ $id, $rating ];
}
-$q = $dbh->prepare('SELECT divisjon,AVG(rating) AS avg_rating,STDDEV(rating) AS stddev_rating FROM ratings NATURAL JOIN siste_divisjon WHERE sesong=? GROUP BY divisjon ORDER BY divisjon');
-$q->execute($season);
+$q = $dbh->prepare('SELECT divisjon,AVG(rating) AS avg_rating,STDDEV(rating) AS stddev_rating FROM ratings NATURAL JOIN siste_divisjon NATURAL JOIN spiller_kultur WHERE kultur=? AND sesong=? GROUP BY divisjon ORDER BY divisjon');
+$q->execute($locale, $season);
my $i = 0;
while (my $ref = $q->fetchrow_hashref) {
FROM ratings
NATURAL JOIN kanonisk_navn
NATURAL JOIN siste_divisjon
+ NATURAL JOIN spiller_kultur
+WHERE kultur=?
ORDER BY rating DESC');
-$q->execute;
+$q->execute($locale);
$i = 0;
while (my $ref = $q->fetchrow_hashref) {
</html>
EOF
-$match_stddev = $params{-2} * sqrt(2.0);
-
$dbh->rollback;