2006-11 << 2006-12 >> 2007-01

そろそろ本当に忙しくなってきた.

2006-12-31 (日)

  • 今日は蟹

*DirectXとVsyncと液晶と

X60の液晶のリフレッシュレートが50Hzとかに固定されてるので,vsyncを待つソフトが遅くなる.というか,DirectShowのVideo Rendererがvsyncを待つので,動画の再生で問題が出る(わけあって90fpsくらい出ないと困る).

仕方ないので,DirectXを無効にしてみたら,問題が無くなった.DirectXがDirectDrawを使うのだけ禁止できないのかな.OpenGLについては,ビデオカードの設定に垂直同期を無視する設定があるんだけどなぁ.

そういえば,昔のVideo Renderには設定項目がいくつかあったぞと,思い出して調べて見ると,どうもインストールはされているっぽい.DirectShowの設定なんかしたことが無いけど調べたらすぐに出てきた.現在のよりメリット値が低いみたいなので,DirectShow Filter Toolを使ってメリット値を変えてもうひとつのVideo Renderを使うように.見覚えのある設定画面が見れるようになった.やっと問題が解決した.

っと思ったけど,ffdshowが勝手に違うフィルタを使う.仕方がないからffdshowの設定でオーバーレイを使わないように.

*大晦日

今年も今日で終わりみたいですね.忙しくて実感ないですが.というか,ぜんぜん仕事が進んでないし.今年中にやらなければいけないことはいくつあったっけか?1時間にひとつ終わらせてけば余裕だな

2006-12-30 (土)

X60のためにノートパソコン用のケースを買う.第二書庫にIrssiについて追加.

spamが多いので,ためしにメールアドレスをHTMLの実体参照を使って書いてみる.すでに出回ってしまったアドレスに対してやっても効果があるか疑問ですが,様子を見てみる.

2006-12-29 (金)

  • ジグソーパズル
  • うわっ,ThinkPadのFnってオートリピート効く?

*X60のキーボード

X60に環境を移行する.とりあえず,Fnキーを連打でランチャが起動するだけで作業効率が上がる….ただ,FnキーとCtrlが逆になったので使いにくい.Ctrlキーはキーボードの端にあるべきだと思います.あと,ESCもVAIOと違う位置にある.

今思うと,VAIOのPgUp/PgDnがFn+カーソルキーだったのは意外と使いやすかった.普通のキーボードはPgUp/PgDnが遠い.

OpenOfficeとか,VC++とかも入れる.それよりも,Judeを入れとかないと先生に怒られてしまうな.

2006-12-28 (木)

ジグソーパズル

*Irssi

コンソール上で動くCUIなIRCクライアントをいろいろと調べていたのだけど,Irssiが使いやすいとMRI経由で誰かから聞いたので使ってみる.文字コード変換ができないみたいなので,Perlでプラグインを書いてみる.とりあえず,メッセージはUTF-8な環境で表示できるようになった.トピックが化けるけど,これはprint textシグナルじゃないのかな?

とりあえず,某サーバ上で動かしておく.

2006-12-27 (水)

家賃を払う.

*研究::打ち合わせ

そろそろ,卒論の内容が見えてきました.

*帰省

実家に帰ります.

打ち合わせのあと,急いで駅に行って新幹線に乗る.熊谷に止まる新幹線が見当たらなかったので,高崎で乗り換えることに.そしたら,高崎で30分近く待つ羽目に.

2006-12-26 (火)

*ThinkPad X60

Knoppixのqtpartedでパーティション構成を変えてDドライブを作ったのだけど,リカバリ用のシステムが「NTLDR is missing」と表示されて立ち上がらなくなった.

ってか,リカバリ用の領域FAT32なんですけど.もしかして,単純に2番目の領域から起動するようになってる?試しにDドライブを消してみたら,起動した.

変なソフト(では無いと思うのだけど)でパーティションを弄ったのが原因かと思って,リカバリ時にパーティション構成を変えてみようと思ったけど,そんな設定無い.調べてみると,リカバリ時にパーティション構成も初期化されてしまうみたい.

*プリン

昨日のプリンを食べに行く.なんか,人がたくさんいました.

2006-12-25 (月)

*ThinkPad X60

やっと起動してみる.起動が遅いのは色々起動しすぎなのか.

*プリン

また夜中にSangoのところでプリン.作っただけで,そのまま寝る.

2006-12-24 (日)

今日も東京駅周辺とか池袋とか秋葉原とか新宿とか.新宿の駅はわかりにくい.いい加減な階段を上ると変なところに出るし.

夜中に帰ってくる.

2006-12-23 (土)

*秋葉原

鈴商に行ったら,見慣れない薄いリレーを見かけたので買う.tycoのPCN-105L3MHZというのだけど,5Vの1aリレー.3A 30VDC/250VACでこの薄さに惹かれたのでいくつか買おうとすると,鈴商のおじさんに「よく気づいたね」と言われた.やっぱり珍しい物で最近入荷したらしい.というわけで,2個追加.

秋月で,マトリクスLEDやら加速センサーやらを買っておく.DA変換ICとかも.

他にも変なキットとか,2GBのCFとか,何を買ってるのやら.

2006-12-22 (金)

*研究::打ち合わせ

X60を受け取る.

某サーバの設定をはじめる.とりあえず,FreeBSDをインストールして外からいじれるように.

*Imagine Cup

なんとなくImagine Cup見に行ったら,最初の問題があと20時間で締め切りだ.一瞬,参加してしまいそうになったけど,色々と忙しいし思いとどまる.そもそも,今から参加じゃ間に合わないだろうし.

でも,頭のCPU使用率を半分くらい奪われたままなのですが….

2006-12-21 (木)

NHKロボコン落選?

*忘年会

研究室の忘年会でした.

2006-12-20 (水)

*ゼミ::発表

発表.ボロボロ.

*焼きプリン

焼きプリンを作って食べる.

2006-12-19 (火)

ゼミの発表の準備.

ゼリーを1リットル分作って食べる.

2006-12-18 (月)

午後まで寝る.

久しぶりにサイエンスチャンネルを見る日.

2006-12-17 (日)

次のゼミの発表の内容が決まらない.

2006-12-16 (土)

今日は牡蠣でした.牡蠣鍋とか牡蠣フライとか.

2006-12-15 (金)

先月の給与明細を貰う.普通に卒研してるだけでこんなに貰ってていいのだろうか.

*歯医者

親知らずを一本抜く.残りの二本は,抜くのが大変そうなので,来年ということに.

2006-12-14 (木)

*Code Golf

ゼミが終わった後に少しやる.

99 Bottles Of BeerとSwitchboard.どちらも,かなり頑張って短くしてみたけど,1位には遠く及ばない.

今のところ,平均してトップの1.5倍弱のサイズです.もう少しがんばらないと.

2006-12-13 (水)

ロボ研に行って,賞味期限切れのケーキを食べてくる.

2006-12-12 (火)

*Code Golf

Reverseの問題を文字列のまま正規表現で置換して答えを出そうとして,複雑怪奇な正規表現を書いてみたのだけど,ちょうど100文字もある.

2006-12-11 (月)

*Code Golf

7segの方が少し小さくなったので,送ってみる.今のところ,15位か.あと30バイト以上小さくなるなんて考えられません.今の時点で,文字列にキーボードから入力不可能な文字が含まれているので,バイナリエディタ使ってるし….

Reverseは上位のサイズがありえないと思って,問題を読み直してたのですが.もしかして,最短のパターンじゃなくてもOKですか?試しに,無駄な出力をするものを送ってみたら通ってしまいました.これで,謎が融けました.というわけで,やっとサイズが3桁から2桁になる.

*講演

tmsukの人の講演を聴きに行く.なかなか面白い話が聴けました.流石に製品の製造コストは聴いても教えてくれませんでしたが.「番竜」と「ロボリア」にも触ってきました.ちょっと買うにはまだ高いです.おもちゃでは無いロボットというのを強調してましたが,まだまだ家電並にするのは難しそう.

2006-12-10 (日)

*はじめてのCode Golf

最近流行っているCode Golfをやってみる.Code Golfは以下に少ないバイト数でプログラムを書けるかというゲームです.なんて素晴らしい競技なんでしょうか.

試しに,一番新しいReverseに挑戦してみましたが……これは無理.110バイトの壁が厚いとか思ってたら,上位は50バイト台.半分で書けるのか.あまりいい成績ではないけど,記念に登録してみる.

普通に書いて圧縮するのではなくて,根本的に考え方を変えないと上位は狙えません.

Seven-Segment Displaysの方も少しやってみたけど,157バイト.その後1バイト削れたけど,

2006-12-07 (木)

*ゼミ

発表でした.

*打ちあわせ

Meshiにそそのかされて,新しいノートが欲しいとか言ってみたら,買ってもらえることに.やたらスペックが高いんですが….メモリは1GBが最低ラインだとか,最近はCore 2 Duoだとか言っていたら,凄いことに.

気がかりなのは,タッチパッド派の私がThinkPad使えるのかということだったり.まぁ,最悪マウスを繋ぎますが.

*色々

古いLibrettoを貰う.この小ささはいいけど,MMX Pentium 166MHzだと何に使えるかな?

2006-12-06 (水)

ゼミ…と思ったけど,眠いので自主的に休日.

2006-12-05 (火)

研究のための資料集めと,明後日の発表のために英語で四苦八苦する日.

2006-12-04 (月)

*ロボ研

書類審査用の書類が大体出来たらしいので見に行く.

今年はかなり気合を入れて作ったみたいですが,内容が怪しげ.私とMeshiとA氏にかなり突っ込まれながら説明してもらう.

戦略はかなり練られてて,なかなか良さげ.ロボット自体のアイディアも,かなり堅実で真っ当.ただ,もうちょっと技術なアピール点が無いと,書類審査通過はつらそう.

問題は書類で,書くべきことが書かれていなかったり,全体的に日本語が弱そうな雰囲気が漂っている.文章書ける人が校正しないとダメだという話に.あと,ページごとにレイアウトやフォーマットがばらばらで読みにくい.

去年よりはかなり気合が入っているみたいなので,最後まで手を抜かずに頑張ってください.

2006-12-03 (日)

2006年の更新履歴が何も無いのもアレなので,とりあえず何か更新しておくことに.

*更新::kwViewer

K-Viewerを更新しました.今回から名前がkwViewerに変わってます.

  • 名前をK-ViewerからkwViewerに変更
  • 前後のファイルに移動できるように(Alt+Left/Right)
  • 大きい画像をウインドウ内に収める機能追加
  • 前の画像が画面に残るバグ修正
  • SPI読み込み失敗時に落ちるバグ修正
  • 4の倍数以外のサイズで左回転が出来ないバグ修正
  • ステータスバー表示
  • VC++ 2005 Express Editionでコンパイルしてみるテスト

今回から VC++ 2005 でコンパイルしているので,Windows 95では動かないような気がしないでもないです.いまだに Windows 95 を使っている方はいないような気がしますが,いたらご連絡下さい.

*Visual C++ 2005

Express Editionでも一応,最適化は有効なので,どんなものか試してみる.

それにしても,アレですね.色々やっていると一から真っ当なコンパイラを書いてみたくなる(真っ当でないコンパイラなら何度か書きましたが…).プログラマなら,コンパイラとエディタは一度は書いてみたいものですね.

a = (a<<16) | (a>>16);

VC++2005はちゃんとrol命令を使ってくれます.

VC++6.0
	mov         ecx,eax
	shr         ecx,10h
	shl         eax,10h
	or          ecx,eax

VC++2005
	rol         ecx,10h

以前に,何でrol命令使ってくれないんだよ,と思いながらインラインアセンブラで書いた経験があったけど,もう大丈夫.

b = fact(4);

factは同じソース中にある階乗を計算する関数.(pushしてるのは,値が捨てられないように別の関数に渡すため)

VC++6.0
	push        4
	call        00401000
	push        eax

VC++2005
	push        18h

再帰でも非再帰でもfact(10)くらいまでは展開してくれます.ついでに再帰関数をfact(100)とかしても,非再帰のコードが出力されてます.

どうも,非再帰だとfact(10)までで,再帰を使うとfact(11)まで展開してくれる.再帰関数を非再帰関数に変換した時点で,ループの回数が一回少なくなっているようなので,それが原因っぽい.場合によっては再帰関数の方が速いコードが出来上がるのか.

c = sqrt(4.0);

まだ検証中.浮動小数点数の計算は定数に置き換えてくれない?

VC++6.0/VC++2005
fld         qword ptr ds:[4090D0h]
fsqrt

VC++2005(?)
fld         qword ptr [__real@4010000000000000 (402148h)]
call        _CIsqrt (401AF0h)

あれ?fsqrt命令使わない場合がある?何でだろうか.常に使わないわけではなくて,場合によって使わないことがあるみたいです.

2006-12-02 (土)

*研究::打ちあわせ.

4時頃から打ちあわせ.やることたくさん.

*Visual C++ 2005 Express EditionでWin32

とりあえず,K-Viewerをコンパイルしてみる.実行ファイルサイズがかなり小さくなったのは,最適化の進歩かな?

コンパイル時に警告が大量に出てますね.主に,推奨されない古い関数とポインタが64ビットに対応しているせいですね.

文字列操作系の関数が殆ど全滅ですね.修正は面倒くさいので,pragmaで回避.

SetWindowLongでポインタを書き込むと,ポインタをUINTに変換するところで警告が出ます.それならと,SetWindowLongPtrを使って,LONG_PTRにキャストしてやると……今度は,LONG_PTRをUINTに変換しているという警告が.

……32ビット版では,SetWindowLongPtrはSetWindowLongにdefineされてます

この回避不能な警告は酷くないですか?

それにしても,最新のSDKでもデバッガがちゃんと動くのがいい.デバッグが少し楽しくなります(最初はVC++6でもこの状態だったのですが).

2006-12-01 (金)

とりあえず渡された本を読み始める.誰か日本語訳してください.

*奨学金返還関係

夕方,奨学金返還関係の書類を貰って説明を聞いてくる.手続き面倒くさそう.

*Visual C++ 2005 Express EditionでWin32

ぼちぼち,移行し始めたのですが.Win32のリソースエディタが無いことに気づく..NET用のフォームは編集できるのだけど.

.rcファイルをクリックすると,

「リソースの編集は Visual C++ Express SKU でサポートされていません」

と表示される.アイコンや画像もIDE内で開けず関連付けられたソフトが起動する.コンパイル自体は問題ないので,手書きすればOKっぽいけど….

とりあえず,フリーのリソースエディタを探してくるか.