Repo

kjana00@gmail.com

older <-

2013-03-16 01:48:17

今朝は晴れ。朝ごはんはパンとサラダとソーセージ。メールを見てたら作業まだ、なんていうここのホスト元からの催促があったんで、今晩やるつもりだったんですとか返事を出しておく。IP アドレス変えてもらいたいんで、設定直したら連絡してくれっていうメールがちょっと前に来てたん。何となく問題出たら直すでいいやぐらいに思ってたけど、今朝のメールを見てこっちで設定しなかったら向こうは勝手に DNS レコード書き換えるわけにも行かないわなっていうのに思い当たった。思い当たるのが遅い。

今日から気温が上がるはずって言ったところで、晩の内に寒気が去ったっていうだけだと朝はまだ寒いわなと思いつつ仕事場へ。変な夢見るし、そのせいか意味も無く普段着に着替えかけて出掛けるのが微妙に遅れるし、大阪に着いてみると新大阪方面の電車がまた微妙に遅れてるし……でもぎりぎり面倒臭いことにならない時刻に着いて打刻出来た。五分遅れを埋めるには五分余分にいるだけじゃ済まないのが鬱陶しいからねぇ。

みんないるんだから大丈夫なんだろうと思いつつメールで今日はストライキなんていうことがないのを確認。それからお仕事開始。昨日もらってきた宿題を何とかしましょう、と。メール見てたら仕様書には無いけど C コードには入ってる × 100 って何でしょうというのに結論が出てて、ここの係数 100 で割っといて下さい、仕様書に書いてあるのは実は % 単位じゃない割合による計算だからということだったんでさくっと直す。

で、切落したデータ部分も誤差計算に含めましょうっていう話を検討。打合せの場では簡単に見えたけど、そこで思った程簡単じゃないというのにすぐ気付く。リサンプリングかけてる分合わせなきゃいけないやんな。それも切落した境界が整合するように。ちょっとどうしようかと悩んでみて、切落す関数で切落した部分も返して、これを時間軸上で反転した上で他と同じようにリサンプルをかけてわざと重ねておいた最初の点だけ誤差計算から落すということにした。切落した部分の誤差は真面目に計算するんじゃなくて、残りの部分のモデル出力の最初の値との差を積算するっていう仕様なんで反転したのを再反転する必要はない、と。……うん、とりあえずこれでいいみたい。少なくともあからさまにおかしくは見えないし、適当に途中経過を出力してざっくり長方形と台形で近似計算した誤差面積とそれなりに合うようだし。

打合せの時に何か変な気がして確認しますと言っておいたところは、動かしてみるまでも無く昨日、寝る前にもうやっぱりあの係数いらないやっていうのがわかってたんで修正。1 サンプル 1 秒になるようにしてある計算結果なんだから、ベクタの長さが秒単位の時間そのものです。係数なんていりません。

これについて動かしてみての確認をどうしようという話では、適当に間引きしたデータを用意して平均誤差が同じぐらいになるっていうことでどうだろうという話をしてたんでそのように……全然合わないな。何でかっていうと、そもそもモデルがだいぶ違った形になるから。使ってるデータが実動作ログを繰り返し並べて時間を伸ばしただけっていう不自然なものなのも問題なのかもしれないけど……ということで、繰り返し並べられる前の小さいデータを間引いたデータを作ってみて、小さい方二つで比較してみる。こっちの方がだいぶましっぽい。差はそれなりにあるけど。うーん。まあいいか……?

ちょっと時間があるなということで、ついでにスライダー周りのバグについて確認してみる。上下限を指定してやると、パラメータを表示してるエディットボックスへの入力は上下限に丸められるけどシミュレーションは丸められる前の値で走ってるねっていうの。上下限を指定した瞬間に丸められるけど、この時にはそもそも再シミュレーションが走らないっていうのも含めて。他人が書いたコードになるからわからないかと思いきや、十分も見ないうちに前者は直った。単にスライダーによる制限を反映する前にシミュレーション走らせてるのを後に移動しただけ。後者はもうちょっと見て、スライダーの上下限を設定するところに再シミュレーションをキックするコードを追加して出来上がり。……もっと早く見ておけば良かったね……これだけの修正で済むんだったら入れちゃおうか、まあ、相談か……

次にファインチューニングをするツールのスライダーをアローキーで動かすと変っていうのを見直そうとしたら、まだ何もいじってないのに直ってたりする。何だこれ? 納得が行かないもんだからしばらく色々眺めたり追い掛けたりした結果、レースコンディションっぽい状況になってるのかなという結論になる。コールバックが呼ばれるタイミングによって、キーを押してスライダーが動く前の値が読めるか、動いた後の値が読めるかが変わってしまう。変則的な使い方を実装するためにコールバックでスライダーの値を見て動かしてるんだけど、これがどうなるかはタイミングによってずれる、と。デバッガでブレークポイント張っておくとキーを押しても動かなかったりするしね……

スライダーの値そのものじゃなくて、勝手に変化しない変数に前にスライダーにセットした値を保存しておけば変なレースは起こらないように出来る。簡単に直そうと思えば直せるけど、今は動いてるっぽいっていうこと、昨日はこの辺り保留にしておこうかと言ってたこと、これを直すと影響範囲が大きくなってやり直さなきゃならないテストが増えることを考えると放置かな、っていうところ。

その辺りを見てたらパラメータから調整計数を引く表引き関数に渡すパラメータ順序を間違えてるのに気付いてついでに直したり、このツールで調整するとスライダーの上下限を越えた値を設定するから呼び出し元のツールの方で問題が出るのをどうにかしようと思ったらやっぱり簡単に直るのは直るけど影響範囲が広くなり過ぎそうだということで放置することに決めたりという感じで今日はおしまい。

天気はいいし、だいぶあったかくなったしと気分良く帰って、ちょっとブリーを食べたりした後、晩ごはんに鴨汁のそば。おでんに入れた水菜があるし……と言うと "?" が脳裏を過る人が多いだろうなとか思いつつ。山菜の水煮に大根ににんじんに水菜にわかめと入れてたら、そばの汁というにはあまりにも具沢山な感じになる。具沢山っていうか、そばをつける余地があんまり無いっていうか。でも、まあ、なかなかおいしいわけで。

それからここの IP アドレス変更作業へ。単に IP アドレス変えるだけだったら ifconfig の引数変えるだけ、っていうと /etc/rc.conf かと思いつつ、とりあえず /etc で grep -R xxx.xxx.xxx.xxx . とかしたら hosts と rc.conf にしか記述が無かったんでさくっと編集。変なキャッシュとかあっても面倒臭いということで shutdown -r now してしばらく待って、変更後の IP アドレスで ssh 出来ることを確認。で、こんなことしたけどこれで大丈夫? っていう報告を上げて応答待ち。

後は WWW 見たりゲームしたり。ちょっと強くなったところでイークの洞窟の 12 階まで降りてみたら、殺戮のバゼラードなんて手に入って攻撃力が飛躍的にアップ、ということでさくっと 13 階へ。ボルドールは余裕で倒せましたという感じ。ここから鉄獄 12 階のランダムクエストに行くっていうのは辛めだから明日に回そうか。

older <-

goto

hint can be:

Tags

old

2007-05 -- 2006-12

ゲーム関係の古い記録

before 2005-12