昼前起床。
ドラマの再放送アワー。ドラゴン桜の再放送見ながらペットボトルを潰したり。
結局、掃除で一日終了。年々増える本の置き場にそろそろ困り始まった予感。
来年辺りは微妙に邪魔になってくる感じがするなぁ。
ドラえもん見たり、超常現象番組みたりしながらぐうたら過ごして終了。
そんな所で、今年を振りかえり。節操無いのはいつも通りですが、今年はD言語率が
高かった感じでしょうか。色々バグっぽいものを踏んではそれを調査というのは
毎年やっている感じですね(^^; 今年は本物お仕事の方が今まで以上に忙しかった
というのもあるのですが、それにしても実験成果物が少なかったのがイマイチだったかも。
来年はもう少し何か作れるようにしたいなぁと思っているのですが、来年もまた
本物お仕事の方が厳しい感じになる事が予想されるのでどうなることやら。
あ、そうそう、来年はもう少しCG描くようにしたいかも。SAIのバージョンアップに
イマイチついて行けて無いので(^^;
そんな所で、今年の更新はここまで。それでは良い御年を。
昼過ぎ起床。
ドラゴン桜の再放送を見たり。
電気カミソリがいきなりぽなくなり。しかたないので買いに出かけたり。
ついでにハンテンを探した所やっとこ発見。思ったよりも値段の方が....
と思いながらも購入。
ゲーセン寄ったり。ガルーダIIの上手いの見たり。返し撃ちを何度も
覚醒消ししてたりで、これが稼ぎのキモらしい。
そんな訳で早速ハンテン装着! ぬく〜〜、
そんな感じ。これでちゃんと起きて色々活動出来るぜ!と思ったのも
束の間、あまりに暖か過ぎて普通にしてても眠くなったり(<ダメじゃん)
回転(開店)livedoorAUTO。社長も大変だのう(<ひとごと)。
形状データを読んで、faceの頂点接続構造の間にバネを仕込んでみたり。
実験なので、OBJ形式を外付けのプログラムでプリプロセスしたりと
少々汚いのですが、取りあえず仕込み完了。球状オブジェクトの
ある頂点を固定して重力を与えてみた所、しぼんだ風船のようになってみたり。
正しそうな予感。
昼頃起床。ぐうたら過ごして一日終了。
先日のスナップショット置き場の件はよく見てみると12/24,12/26分も
置かれていたり。勘違いだったのかしら?
一番近所の西友を探してみるもハンテンは見つからず。
本日で仕事納め。
飯食いながらファミ通WaveDVDを見たり。
そういや少し前からCygwinのスナップショット置き場が、
12/22以降上書きで置かれるようになってます。しかし、changelog差分は
12/22との差分ではない為、数日分の更新についてウォッチしてないと
何が変わったか判らなくなってます。適当な期間で固めるような方式
になったのかしら?
昨日のサイエンスZEROの予告で、「高専プログラミングコンテスト」の
再放送を今日放送するという事で見てみました。
競技部門で、予め出された課題を解くプログラムを持ち込んで、その場で
実際に答えを求めるというのをやってたのですが、これがまた、むずい課題
だったりするのに驚いてみたりしました
(オフィシャルページから
第16回競技内容の概要)。
画像検索プログラムという事なのですが、検索元の画像が回転させられてたり
加工されてたりするので、ピクセルの完全一致を探し出すのでは全然ダメ
な感じ。しかし、全てをプログラムで出す必要は無く、人力で探して答えるのは
アリなのです。実際、プログラムで大体の位置を探して、詳細は人力で一致を
見るといった手法を取り入れたりしていたのですが、
「完全にプログラムで答えを求める」という頭で考えてしまったTANEと
しては斬新に感じました。最後に、ナビゲータの眞鍋かをりが
「プログラムと人間の能力を足して最高の結果が得られるならそれが
一番良いのでは。プログラムは人間をサポートするものであって欲しい」
という感じの事を言ってましたが、これ、個人的に凄く響いた感じがしました。
少し早めに帰着。
寒くて布団にもぐり込んでTVを見ていたらいつの間にか寝てたり。
起きたら日付けが変わっていたので、風呂に入ってうだうだと過ごして
いたら、たまたまザッピングしたNHK教育チャンネルで「サイエンス ZERO」
の再放送をやっていたり。地震の長周期振動の回と宇宙の謎の回を連続
で見たり。土星衛星タイタンの探査で打ち上げられたカッシーニが、
惑星の重力を利用して太陽の重力を振り切る為の加速を得る、スイングバイ
という方法を使ったというのを知ったのですが、金星に2回と地球に1回
接近したというのに驚き。一回でも難しいように思うのですが、太陽の
周りを地球などと同じように三周した上、三度惑星接近するなんて、
狙ってもできないように思いました。
少し早めに帰着。
本物お仕事用実験コードを書いたり。
クロスシミュレーションコード。先日の固いバネの話の続き。
単位時間で見た時の移動量が大きい時、バネが固いと想像以上の
力になる訳ですが、時間の刻みが十分に小さければ、見かけ上
重力とバネの力が釣り合う点があるハズです。速度や加速度を
積分するのに、単位時間辺りの力を足していく基本オイラー法と
いうのを使ってますが、ここんところを改良すれば良いらしい。
取りあえず、時間を10倍細かくした所、簡単に発散していたシミュレーション
結果が十分安定するようになりました。そういう事らしい。
昼頃起床。
ちょろり買い物に出かけたり。あまりにも部屋に居ると寒いので、
ハンテン的な部屋着で強化しようと思ったのですが、近所で見つけられず。
むーん。仕方ないので、年末年始消化用にソウルキャリバーIIIを購入(<ハンテン
と関係無いじゃん)。
クロスシミュレーションの続き。コード自体は
「ゲーム開発のための物理シミュレーション入門」のコードを、Dに書き直した
だけなのですが、まずはそれの置き換え間違いが何点かあったのが原因の一つ。
もうひとつは、章の最後の方にバネ定数を大きくする(固いバネに設定する)と、
硬直方程式というものになり、値が安定しなくなるという点にハマっていたと
いう点の二つの原因がありました。
後者、硬直が何故起こるのかイマイチよく判らなかったのですが、なんとなく
こういうことらしい。質量を持った粒子をバネで格子状につないだモデルな
訳ですが、重力を加える時にバネの固さに関係無く、粒子に重力を加えて
位置計算を行なっています。そしてその結果の粒子間距離をバネの伸びとして使用している
訳ですが、バネの固さに関係無く重力だけを加えて初期位置を計算してしまった
為、本来そのバネの固さでは動きえない位置に粒子が動いてしまった結果、
まともにバネ定数をかけてしまうと、とんでも無いバネの力で引き戻されて
しまい、結果、粒子が吹き飛んでしまうという事になっているみたい。
しかしながら、固いバネ(最悪鋼鉄の棒)で粒子を繋ぐと、それはもはや剛体
シミュレーションのモデルの方が合っている感じになると思いますので、
ある程度固いバネを用いたい場合は、バネ以外の要素で粒子間の距離が遠くなり
過ぎないように制限をかける必要がありそうです。
デバッグの過程でゴム紐のモデルも試していたのですが、バネを
調節すれば、思いのほか良い感じにプラプラ動くのに感心してしまいました。
昼頃起床。ぐうたら過ごして終了。
クロスシミュレーションのコードを書いていたのですが、
何故か簡単に発散してしまって期待通りの動きにならず。
なるほど、確かに、CGIに書き込みデータとして渡せれば良いのですから、
自動化は可能ですね。んじゃまぁ、こころおきなく消せるという事で。
寒くて布団にもぐったまま一日終了。
「お姉チャンバラ2」のTVCMが流れていたり(と言っても
めちゃくちゃ深夜ですが)。てゆーかSIMPLE2000シリーズのTVCM自体を
初めて見たかも。
少し早めに帰着。
バーンアウトリベンジ消化したり。
Web巡回して終了。
少し早めに帰着。
バーンアウトリベンジをちょっこり消化したり
ちょろっとコーディングしたり。
少し早めに帰着。
ちょろっとコーディング。
寒くて布団にもぐり込みながらアカギ観たり。
早めに帰着。
バーンアウトリベンジなど消化しながら過ごしたり。
ちょろっとコーディングして終了。
昼頃起床。TVを見ながらぐうたら過ごしていたらいつの間にか寝てたりして終了。
SAIの新しいのを試してみたり。個人的にペンレイヤーの
制御点制御の描画高速化が一番グっときました。こうなると、
制御点の選択やら移動やら、ペンレイヤー内での拡大/縮小/回転とか、
色々欲しくなってきたりしますよ(^^;
起きたら夕方。寝過ぎ
本物お仕事用実験。
ちょっこり本屋に行くついでにゲーセンに寄ったり。
「鉄拳5 DARK RESURRECTION」。新キャラが加わった鉄拳5で、
基本は鉄拳5なのですが、背景グラフィックとか思いっきり入替えられて
ます。昼夜が逆転しているものもあるので、ちょっと見ると簡単に
差し替えられているように見えなくもありませんが、そんなことは
無くて、全部調節しなおしてるのだと思われます。
鉄拳5は個人的にハマり度が高かったと思う(というか、飽きずにしばらくやって
られる)のですが、その感覚を踏襲しつつマイナーチェンジという感じ
なので、またしばらくインカム頭となるのではないでしょうか。
英二郎によると「resurrect」には、「復活」とか「蘇る」以外に、
「(死体を)掘り出す」なんて意味も含んでいるようで、後者の方に
今回追加の新キャラ2名をかけているような予感がします。
本当の所はよく判りませんが。これから考えると、「平八」は
後者的というか、殆ど奴はゾンビだよと思えなくもありません。
少し早めに帰着。
SAIの新しいのが出てたり。
タモリ倶楽部を見終わったところで寒くて死亡。
少し早めに帰着。
コーディングをちょろり。
飲み会。
風呂に入ってTVを見てたらいつの間にか寝てたり。
少し早めに帰着。これからしばらくは普通に帰れそうな予感。
寒くて布団にもぐっていたらもう出られなくなったり。
アカギを見て終了。
日付け越え少し前に帰着。
先日のgcc-3.4.5ビルドはエラー無く終了。Cygwinの方も大丈夫そう。
ちょっこりWeb巡回したところで寒くて死亡。
昼過ぎ起床。
TV見ながらぐうたら過ごしたり。てゆーか、寒くて動けず。
ヲレは動物ですか?
ちょこりお出かけ。ついでにゲーセンに寄ってみたり。
ガルーダIIを初めてやってみたり。結構弾量多めという気も。
覚醒の使い方をすっかり忘れているので全然ダメダメ。そんな
感じでまだよく判らず。
D言語の最新マニュアルを拾ってみたり。その中に、コードのカバレージに
ついての項目がありました。ソースコード中の各行が実際に実行
されているかどうかを調べる為に、各行毎に実行カウンタを持った実行バイナリ
を生成し、実際に実行した所で、実際に各行を通っているか?とか、
普通に使ったのでは通らない場合(例えはエラー処理とか)のテストケース
を考えるだとか、そういうのに使用するという感じ。
ここで初めて知ったのですが、gccではオプションを付けてコンパイル
した後、gcovなるツールを使えば同じ事ができるようになっているようです。
で、gdcでそれを試してみたり。man gcov 内に実行時コマンドラインの例が
載っていたので、その通りに実行してみたり。
gdc -fprofile-arcs -ftest-coverage test.d ./a.exe gcov -a test.d
昼過ぎ起床。
バーンアウトリベンジなど消化しながら、ぐうたら過ごして一日終了。
isspace()。localeに関連する点から辿ろうとしたのですが、そもそも
localeの事がよく判っていないというのに気づき、Webで調査してみたり。
その中で、isspaceのmanページを調べていると、単に半角スペース以外にも、
改行やタブ文字もtrueを返す対象になっていることを知ってみたり。へぇ。
だから変なマスクテーブルを引いているのかしら?これとは別にC99では
isblank()というのもあるようですが、こちらは半角スペースとタブ文字だけが
trueを返す対象で、「空白文字を判定する」という意味から言うと、
isblank()の方が直感に合うという感じみたい。でもまぁ、lexなんかを
使った場合、これらisalhpa()系関数とは無関係に文字判定が行なわれる
と思いますので、isalpha()系関数で真面目にlocaleを考慮したところで、
恩恵を授かるプログラムは殆ど無いのではなかろうかと思ったりします。
いつもより少し早く帰着。
あまりに眠くて死亡。
日付け越え。
ちょろっとWeb巡回して終了。
そういや、うちの掲示板にちょいちょいゴミ書き込みがありますが、
こういうのってどうやって行なわれてるのかしら?と思ったり。
人力アルバイトという話も聞くのですが、それって本当なのかしら?
そうだとして、こんなWebのはずれにあるページの掲示板に書き込みと
いうのもご苦労な事です(と思いながら管理者削除する訳ですが(^^;)。
日付け越え。
Web巡回して眠くて終了。
SAIの新しいのも出てるのに、全然試せてなくてスマンです。
日付け越え。
本物お仕事の実験して終了。
「やぐちひとり」に高橋名人が出てたり。頭を丸めているせいか、
見た感じ、あまり年がいってないようにも見える不思議。
日付け越え少し前に帰着。
本物お仕事の実験して終了。
昼頃起床。寒くて死亡。
先日のgdcビルドはエラー無く終っていたので、make installしてみたり。
手持ちソースをコンパイルした所では取りあえず問題は無さげ。
isspace()問題を調べてみたり。ヘッダを追いかけていると、何やら
スレッドに関するヘッダが関係している予感がしてきました。
確かに、今回glibc-2.3.6をビルドするにあたって、前回は入れなかった
add-onパッケージであるlinuxthreadsを指定しました。というのも、
これを入れないとスレッド関連ヘッダが無くてエラーしまくるのと、
指定すればエラーしなかったというのが入れてある理由だったり
します。
Webで少し調べてみた所、どうやらctypeのisなんちゃら系は
localeを見ているようで、そこんところにバグがあったりした事も
あったようで、実際にisspace()が上手く動かなかったという例も
あったようです。localeを見ないものに差し替えるとかの回避手段
を使うのもありとの事ですが、はて、どうしたものやら。
起きたらBLOOD+が丁度終ったところだったり。寝過ぎ。
gdc-0.17が出ていたので、ビルドしてみたり。
終りそうにないので、ファミ通WaveDVD見たり。バイトヘル2000に
思わず笑ってしまったり。
そういやXbox360のCMで「ハイデフ」という言葉が出てきますが、
ハイデフって何?と思い調べてみたり。high-definitionの事
みたいで、高画質とかそんな感じの意味みたい。そんな事を
調べていると、
ランブルローズXXの開発者blogのページを見つけてみたり。
「水着にハイデフ使ってみました」のくだりに引っかかった模様(^^;
日付け越え前に帰着。
タモリ倶楽部の菌-1グランプリ。細菌の増殖する映像を専門に撮っている
会社があるのを知ったり。それにしても、こういう企画は一体誰が考えて
いるのだろうと、いつも思います。
isspace()が正しく動いてなさそうな件の調査。簡単なマクロなのかと
思ったら、一体何をしているのか判らなかったりする罠(汗;
どうやらisspace(' ')は
「((*__ctype_b_loc ())[(int) ((' '))] & (unsigned short int) _ISspace)」
てな感じに置き換えられるようで、_ISspaceは0x20という定数になるようです。
0x20はASCIIスペースなので、andを取って一致ならば0以外を返す事になると
いう仕掛けみたい。
で、「(*__ctype_b_loc ())[(int) ((' '))]」がどうやら常に0を返して
いて、必ず「スペースでは無い」となっている様子。
__ctype_b_locは関数のようなのですが、ソースに実体が見つからず意味不明。
因みに逆アセンブルした頭の所を見てみると、
10000a28 <__ctype_b_loc>: 10000a28: 3d 20 10 08 lis r9,4104 #r9に値を入れたかと 10000a2c: 39 29 0a 68 addi r9,r9,2664 #思いきや 10000a30: 3d 62 00 00 addis r11,r2,0 # ↓ 10000a34: 3d 22 00 00 addis r9,r2,0 #使わずに上書き 10000a38: 39 09 90 14 addi r8,r9,-28652 10000a3c: 39 6b 90 00 addi r11,r11,-28672 10000a40: 80 08 00 00 lwz r0,0(r8) 10000a44: 7d 03 43 78 mr r3,r8
日付け越え前に帰着。
ppcクロスpovrayが動かなかったのを調査。どうやら
isspace()が正しく動いていない予感。何故正しく動かないのかが
すぐ判らず。