鉄道スピードテスト」を公開。ユーザーの方は是非、速度を測定して結果をご登録下さい。鉄道スピードテストの仕組み的なところなどを。大まかな流れは、予め路線&駅のデータベースを用意しておき、ユーザーの結果登録の際には、選択肢から路線や駅を選んでもらう。結果が投稿されたら、データベースに登録すると共に、駅別・路線別での集計を行う。基本的な設計思想は、「なるべくサーバーに負担をかけない」。無料レンタルサーバーなので、重い処理をやらせると本当に重くなってしまいそうだったのと、下手するとアカウントを消されてしまいそうなので。そのため、集計ページにアクセスされる度にデータベースを読んで、ダイナミックにページを生成する方式は却下。実装にして、サーバーに負担を掛けないようにしている。カテゴリになっているのも、実は負荷軽減のため。カテゴリにまとめてしまうと、路線数がかなり多くなってしまい、更新に時間がかかってしまう。右側メニューの「最近の登録」は、実はインラインフレーム。正攻法でいくと、測定結果が登録されたら、既存の全てのページの「最近の登録」を書き換えないといけないが、これはとてもとても重すぎる。インラインで読み込んでいる。ブログシステムは「最近の記事」をどうやって処理してるんだろう。記事登録ごとに全ページ更新はやっていないのではと思うのだけど。キャッシュ機構を導入して、初回表示時に「最近の記事」を合成する、とかなのかな。負荷以外の面で言えば、路線ごとのつながりをちゃんと管理しているのがポイント。山手線では、大崎駅で埼京線などに乗り換えができる旨の表示を行い、ワンクリックでその路線の結果を見ることができるようになっている。表示で苦労したのは、速度の棒グラフ。グラフ自体は簡単なんだけど、グラフに数字を重ねるというのが難しい。毎回グラフの長さが違うので、グラフを背景画像にするというわけにはいかない。行で表示し、棒グラフは行半分だけ下にずらし、数字は逆に行半分だけ上にずらすことで、重ね合わせを実現している。この方法であれば、乗り換えセルが複数行になっても、棒グラフはきちんと重ね合わせが維持される。単純そうなサイトだけど、意外とそれなりに苦労しているのであった。