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"
<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
<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;