ポプとものあれにならって書いてみる。
一言二言三言
質問の回答
以下 自分用メモ帳。なんか突っ込みあったらどうぞ。
*やることやったら取消線でも引く*
システムの概念とか目標
投票 = 難易度投票という概念で考えない。投票用のフレームワークを作成する。
PCや携帯などどの端末でも投票を可能なWebページとすること。
多重投票を防止する機能を実装する。 良い案があればコメントお願いします
PukiWiki上の投票機能の問題点
多重投票が可能で、いたずら投票によって正確な投票が不可能。そういうのを防止するプラグインがあるが、導入する気にはなれない。
投票したデータを編集するのが超絶面倒。毎度編集するのは相当な労力が必要となるため、システム化(RDB化)することで利便性(殆ど自分の都合)を図る。
@wiki時代の投票機能の問題点
PukiWikiのプラグインと同様のため割愛
このサイトで一度行った投票についての問題点
下記に反省するための記述あり。割愛。
仕事場から見るような不届きもの用です*4。w3m以外のテキストブラウザはUser-Agentわかんないんで対応していません。まぁテキストブラウザっていったら殆どw3mだと思ってるんですが・・・
以下xyzzy-lispで実装してみる。間違ってたらコメントから添削してね。
;; 分散とか?
(defun calc-variance(jaku chu kyo)
(let ((zentohyo (+ jaku chu kyo))
(shisu (/ (+ (* -1 jaku) (* 0 chu) (* 1 kyo)) (+ jaku chu kyo))))
(float (/ (+ (* jaku (expt (- -1 shisu) 2)) (* chu (expt (- 0 shisu) 2)) (* kyo (expt (- 1 shisu) 2)))
zentohyo))))
;; 偏差とか?
(defun calc-deviation(jaku chu kyo)
(sqrt (calc-variance jaku chu kyo)))
;; 下のエーゲEXあたりから参考に
(calc-variance 60 34 4)
0.3265306
(calc-deviation 60 34 4)
0.7462247
xyzzy-lispが分からないらしいのでWSH(JavaScript)で実装してみる。
$W = WScript;
// 定義
function CalcVariance(jaku, chu, kyo) {
var zentohyo = jaku + chu + kyo;
var shisu = ((-1 * jaku) + (0 * chu) + (1 * kyo)) / zentohyo;
return (jaku * Math.pow((-1 - shisu), 2) + chu * Math.pow((0 - shisu), 2) + kyo * Math.pow((1 - shisu), 2)) / zentohyo;
}
function CalcDeviation(jaku, chu, kyo) {
return Math.sqrt(CalcVariance(jaku, chu, kyo));
}
// 実行
// jsファイルに保存してwscript ***.js arg1 arg2 arg3で実行
// cscriptでもいいかもね
function Main() {
if ($W.Arguments.Unnamed.Count != 3) {
$W.Echo("arg1: 弱\r\n" +
"arg2: 中\r\n" +
"arg3: 強\r\n");
} else {
var jaku = parseInt($W.Arguments.Unnamed.Item(0));
var chu = parseInt($W.Arguments.Unnamed.Item(1));
var kyo = parseInt($W.Arguments.Unnamed.Item(2));
$W.Echo("分散:" + CalcVariance(jaku, chu, kyo) + "\r\n" +
"偏差:" + CalcDeviation(jaku, chu, kyo));
}
}
Main();
結論:どっちが良いか誰か表でも作って教えて・・・・ 
1年以上前に実装したものはよく覚えていません。分散にした理由は実装が簡単だからとかそういう理由じゃないかなと。
分散=平均からの誤差のばらつき、偏差=√分散
コメントにつっこみあったから見直したら色々ぼろぼろだた。
結局どっちが良いか分かっていない 
全部再計算して考えてみる。今度やってみることにする。
http://www.konami.jp/bemani/popn/music17/ht/ht_poptomo.html
に記述のあった通りに順に実行してみる。
次の項目で挫折。
コナミネットDXからe-AMUSEMENTのリンクに飛んで、さらにログイン後にポップン17サイトとやらを探し出して、そこまで行く必要があった。私の理解力ではコナミネットDXのポップン17サイトというのは見つけることは困難でした。
他の人は迷わず行けたのかな?
普通にやれば2~5までは失敗しないはず。
誰彼を登録するところとかは疲れたので、とりあえずIDだけ晒してまた今度登録しよう・・・と思う。
以前にご意見箱に犯罪予告云々でアクセス禁止に出来る云々を書いたんですが、このアクセス禁止は、大まかに特定のプロバイダ単位になります。当然他の人も影響を受けます。
以下対処法
時間をおいて(落ち着いてから)ページを復活させる。気がついた人が直してくれると助かります。報告はご意見箱か会議室あたりに書き込むこと。
RecentDeletedに最近削除されたページが表示されると思います。削除が大量にあったりした場合は、削除されたページ一覧から復帰できます。
バックアップから復帰してください。
バックアップは即座にやっていません。即座にやっていない理由は、パフォーマンスの件もありますが、データを復帰するときに必要なデータさえ復帰できれば良いという思想から来ています。コメント合戦や、編集合戦の時の書き込みで削除されたとしても、それはそこまで重要なことではないと思っています。
以前削除となったコメントというページを会議室のほうで作成していただいたのですが、こちらのページの運用を決めました。細かい調整は会議室でお願いします。
以下所感
基本的にwikiの思想が性善説になっているので、サイト利用者が多くなるとこういう事態も多くなります。コメントは周りに迷惑の掛からないようお願いしますと注意書きをしておいても、空気の読めない子が沸いてきます。もう少し心にゆとりを持ってコメントとか編集すると良いかもね*8。
情報交換&雑談は、そもそもwikiの思想から外れているんでここまで大きくするつもりは無かったんですが、収まりがつかない(?)んで色々解決策を考えてます。また今度。
そろそろアドベンチャーの曲も出揃ってきた*9ので新しい投票方法について考えてみました。
前回*10の投票では見切り発車的な投票になってしまいました。私が思った問題点としては以下の通りです。
改善する場合は以下のようにしたいと思っています。
投票の「弱、中、強」は「中」が表記Lvで妥当だと判断出来るもの、「弱、強」は妥当よりも簡単or難しいという判断です。弱、中、強の判断材料としては各個人で思うものを選択します。周りの意見などに合わせる必要はありません(ドラムンフライHが妥当だと思えば中にしても何も問題はない)。
指標が3段階だった理由は管理している人が大雑把だから特に理由はありません(というより覚えがない、考えたこともない)。指標の取り得る値の範囲が -1≦指数≦1 だった理由は、表記レベルよりも↑か↓か妥当かを知りたいだけで、「この曲はLv39ではなくLv41だ!」*14なんて極論を投げるつもりはないということです。
分散は下にも書いてある通り票のばらつき具合。個人差属性の判断基準にどうかと思っています。ただ、どれくらいが個人差として分けるべきかは議論する余地がありそうです。分散が8以下のものを個人差にした理由は、よく個人差譜面と言われているものがそれくらいだったからということです。
用語解説に書いた方が適切かもしれませんが、一応ここで補足(私はあまりこの表現を使用しませんが・・・)。その表記レベルの曲を安定してクリア出来る位の実力という意味(だと思う)で使っています。
オジャマ(ノルマ)はなし。デフォルトでつけることのできるオプションに関しては、特に指定はしません。ただし、譜面を変更するオプション(RANDOM,S-RANDOM)に関しては、MIRRORオプションのみOKとします。RANDOM、S-RANDOMでは運要素が絡む為、考慮しないようにしてください*15。ぐだぐだ長文になりましたが、要するに正規譜面(またはミラー譜面)で投票ということです。
アドベンチャーの隠し曲が全て解禁してから1週間後を目安として投票を開始したいと思います。
現在の区分は実質「逆詐称、弱、中、強、詐称」のような5段階評価になっています。別区分として分散の大きいものを「個人差」にしています。流れ的には、今回も指標で一定の閾値を設けて、それ以上・以下のものに関して逆詐称・詐称をつけようかと思います(結局前回と殆ど変わりなし)。もしも、これ以上区分を増やすなら10段階区分(数値区分)で「0.1刻み」になりますが、投票後に指標も一緒に表記するのであまり意味はありません。
コメントを参考に「クリア難易度(確定)」と残り「スコア取得難易度」「BAD数」(「体力」?)の2つ位にするやもしれない。確かに1曲につき3つも選ぶの面倒じゃないのか?と思いました。
細かい点は前回の引き継ぎで作っていくつもりです。説明もそこらへんをご参考に。