Vista SP1インストール。特に問題なし。
2008年2月のエントリ
昨日書いていたロビーから落とされる現象について。どうもファイルの入出力に時間がかかっていることが分かり,その辺を改善して,しばらく様子見。
様子見がてら,久々にロビーに入り浸ってみる。TOD2(サ・タイピング・オブ・ザ・デッド2)体験版の話題が多いのだが,スペックが足りない人が続出しているっぽい。多分ゲーマーにとっては当たり前のスペックなんだろうし,SEGAも普通のゲームと同じ感覚で作ってるんだと思うが,TOD2に関してはタイピング練習が目的の一般的なユーザも買うわけで,そこにずれが生じそう。製品版はどうなのだろう。
その他既にいろんなところで言われていると思うが,箇条書き。
- Loadingが長い。家のノート(Core2 Duo 2GHz/NVIDIA GeForce 7950 GTX 512MB)だと37秒。ゲームが始まってしまえば快適なのだが,ドリルが一回終わる度にLoadingが必要なのでめんどくさい。
- ドリルの途中キャンセルができない
- 他のノート(Core2 Duo 1GHz/945GMS Express)だとカクカク。まあオンボードだからそれでもいいんだが,スペックが遅いとゲーム内時間も遅くなって,とんでもなくいい結果が出る。これだとネット偏差値とかとっても意味ない気が。
#その後製品版でAlt+F2でドリルキャンセルできるのを確認。体験版はどうだったかなあ。
ロビー。1年くらい前から出ている,ロビーから落とされる現象を調査しているが,未だ原因分からず。とりあえずここにコードを載せてみる。いろいろ省略してるけど,イメージ的にはこんな感じ。ロビーのユーザ名とパスワードを管理するクラス。
public class LobbyTable { Map _users = new HashMap(); public LobbyTable() { // ファイルからユーザ名とパスワードを読み込んで_usersを初期化。 // 実装は省略 load(); } public synchronized boolean login(String name, String password) { if(_users.get(name) == null) { _users.put(name, password); // ファイルにユーザ名とパスワードを書き込む // 実装は省略 save(); } else { if(password.equals((String)_users.get(name))) { return true; } else { return false; } } } public synchronized void changePassword(String name, String password) { _users.put(name, password); // ファイルにユーザ名とパスワードを書き込む // 実装は省略 save(); } }
で,発生するエラーが以下。
java.lang.NullPointerException at Lobby.LobbyTable.changePassword (LobbyTable.java:91) …
HashMap.putの引数は2つともNULL可なのでnameとpasswordは関係ない。実際デバッグコードを入れてもNULLにはなっていない。java.util.HashMapのソースコードを見ても特にNullPointerExceptionが発生しそうなところはない。残るのは_usersがNULLの可能性だけだが…。同期処理で失敗して,っていうのが考えられそうだが,それだとsynchronizedMapを使えば解決するのかもしれない。でも原因が分からないまま変えるのも気持ち悪い。
発生確率はかなり低め。ロビーが混んでるときに起こりやすいかも知れない。Javaのすごい人からのツッコミを期待して…。
Visual Studio 2008 英語版を使用しているのだが,いつからか,日本語を入力すると,変換中の文字のフォントが小さくなるようになった。変換が確定すると普通の大きさになる。とりあえずVisual Studio 2008をImmSetCompositionFontでブレークしてみる,どうも本来はMSゴシックが使われるところが,メイリオが使われているっぽい。HKCUレジストリのVisual Studio 2008関連を削除しても直らないので,Vistaの何かの設定を見ているようだが…。原因不明。
何もネタがないのでMSDNネタ。Windows Server 2008が出た。日本語版も同時なので落としてみたいところだが,2.7GBはちょっと。にしても使用可能ライセンスが1500本になってるけどホントかなぁ。Vista Enterpriseは15ライセンスなんだけど…。