2008年02月26日 20:57:16
表題の通りです。
ネットで感想を読んでいたら、性別の判定に失敗した人が、性別判定を手動でも選びたいと書いてあったので対応しました。
ボタンの下にある[(オプション)]というリンクをクリックすることで、オプション設定が開き、性別を選択できるようになります。
JavaScriptをONにしておく必要があるので注意して下さい。
IE、FireFox、Operaで試したので大丈夫なはずです。
さて、数日経って、概ね反応を把握しました。
まず、感想で一番多かったのは「面白い」でした。好評だったので安心しました。
次に多かった感想は「似てる」「似てない」という話です。
これは、まあそっくり同じになることはまずないと思います。
「名前の雰囲気」に合わせた似顔絵を描いているだけで、「名前から全てを見通している」わけではないですので。
名前の分布などから、肌の色や顔立ちは当てはめていますが、それもぴったり合うわけではありません。
というわけで、分かったことは、「似顔絵を見せられた人の反応は、自分と似ているかどうかをまず気にする」ということです。
まあ、似顔絵だから当然そうでしょうが。
その次に多かったのは「本人よりもハンサム」です。
基本的に、あまり癖のない顔にするようにしていたので、そういった反応になったのだと思います。
人間は、平均的な顔立ちを美しいと認識するので、あまり平均的なところから外れないように画像を作りました。
そのため、顔の輪郭なども極端にしてはいません。だから、そういった反応になったのだろうと思います。
反応以外にも、いくつか課題が見つかりました。
それはサーバーのCPUパワーです。一番アクセスが集中した時に、全自動4コマが動いていなかったという感想が上がっていました。
たぶん、CPUパワーが足らずに、処理落ちしていたのだと思います。
これの解決には、画像サイズを小さくするという対応方法が考えられます。画像を縦横半分にすれば、処理に要する時間は1/4になりますので。
ただ、これは当分は放置しようと思います。
今、新しいサーバーに乗り換える準備をしていて、そちらの方が最新なので、スペック的にはアップするからです。
たぶん、CPUパワーに物を言わせてどうにかなると思います。
公開直後ほど負荷が集中することはそうそうないはずなので大丈夫だと思います。
あと、現在いろいろと試行錯誤しているのは、CGIの生成結果のキャッシュの持ち方です。
とりあえず、HTMLファイルはキャッシュを保存してそれを返すようにして、画像はキャッシュを持たないようにしています。
なぜそうしているかというと、WebブラウザにHTMLファイルが表示されると、WebブラウザがGoogle AdSenseのサーバーにアクセスし、そのGoogle AdSenseのサーバーがCGIのあるサーバーにアクセスしてくるからです。
箇条書きにすると、以下のようになります。
・WebブラウザがCGIのあるURLにアクセス。
・CGIがHTMLファイルを生成して、Webブラウザに返す。
・Webブラウザが、HTMLファイルをレンダリングし始める。
・Webブラウザは、Google AdSenseの広告を取得しようとして、Google AdSenseのサーバーにアクセスする。
・Google AdSenseのサーバーは、Webブラウザから、HTMLファイルのURLを取得する。
・Google AdSenseのサーバーは、同一のHTMLファイルを入手するために、CGIのあるURLにアクセスする。
・Google AdSenseのサーバーは、HTMLファイルを入手して解析するまで、広告をWebブラウザに返さない。
・CGIがHTMLファイルを生成して、Google AdSenseのサーバーに返す。
・Google AdSenseのサーバーは、HTMLファイルを入手して解析すると、広告を生成してWebブラウザに返す。
・Webブラウザは、HTMLファイルのレンダリングを再開する。
・Webブラウザは、HTMLファイルのレンダリングを終了する。
全てのWebページに対してこういった挙動をしているかは調べていませんが、「全自動似顔絵」に関してはこうなっているようでした。
これは、毎回違うURLでページが生成され、それが世の中で最初に生成されるページだからだと思います。
こういった理由があるため、ブラウザーに生成結果を返す直前に、生成結果をファイルに保存して、Google AdSenseのサーバーには同じ内容のものを返すようにしています。
これだけで、体感速度がかなり違います。
対して画像は、キャッシュを持っていません。
今回の「全自動似顔絵」は「顔」というパーソナルなものなので、同じ画像に瞬間的に何度もアクセスがあるとは考えにくいので、その都度生成するようにしています。
サーバーの容量の都合もあるので、キャッシュを持ちまくればいいというわけにもいかないので。
画像に関しては、今後のユーザーのアクセス挙動を見ながら、キャッシュを持たせるべきかどうかを検討していこうと思います。
たぶん、公開直後のアクセス繁忙期以外は、ほとんど必要のない処理のはずなので。
というわけで、「全自動似顔絵」に少し手を加えました。
本当はこのWebアプリは、他のWebアプリの部品だったので、早くそちらを仕上げてしまおうと思います。