last update: 2013/09/03

2006/11/07

touch me directly

テクニカルなことは全然やってない、とかいいつつふと思い立ってDirectXの勉強をはじめました。研究のためのプログラムをDirectX使ってみようかなーと。

といっても別にDirect3Dバリッバリみたいなことをやるんじゃなくて(いやそれもやりたいけど)、研究で書いてる特殊ハードウェア(3次元磁気センサやらなにやらの高額機器)を使ったプログラムのマルチスレッドが排他処理してないので、Core Duoにしたらシャレにならないくらい落ちまくるのをちょっとどうにかしようかなと(HyperThreadingだけだとあんまりバリバリ落ちなかったんですが、さすがリアルマルチコア…)。

といってもテストプログラムはふつーのシングルスレッドなイベント処理プログラムだったので、じゃあこいつもDirectInputでスレッド回して排他処理のテストしてみればいいんじゃねーかみたいな感じでちょっとDirectXの勉強を初めてみることにしました。もちろん、DirectX使う必要はどこにもないので、研究のプログラムながらただの余興です、余興。

まぁ、DirectXがいじれればそのうち3次元な表示のプログラムを個人的に書くこともあるだろうし、そういうことを考えれば別に今やっても損ではないというか、学生のうちにやっておきたいというか、そもそも最近オレ自分の中での技術的なイノベーションを感じるプログラミングをしてねぇなーと。イノベーションって言葉の「革新」みたいな意味には「技術的な」っていう意味が色濃く含まれてるじゃないか、これも重言だろうか?

とまぁそんなかんじですが、話がめちゃめちゃ変わって、最近友人の家で「フランスのテレビ局がまとめた日本のシューティングゲームの歴史番組」みたいな感じの動画をみまして、インベーダーゲームから始まり最近の弾幕ブームまでほぼ網羅した内容になってておおすごい、とか思ってみてたんです。

で、そのなかで斜め上45°から見下ろす感じの度視点から進んでいくシューティングゲームがあって「おお、これはなんか縦シューでも横シューでもなくて新鮮」と一番印象にのこったんで、あの視点からのシューティングっぽいのを弾幕をばらまくような感じにしたらもっと新鮮なんだろうなーなんてことを思ったりしてそれもDirectXやってみようかなーとかおもった一因だったり。

別にゲーム作りたいとかそういう話じゃないんです。ただ、コンピュータとヒューマンの間のインタラクションとしてもっとも顕著に研究が進んでる分野ってまぎれもなくゲームだと思うんですよねー。そういう意味で、強く印象に残るゲームシステムとか、ユーザインタフェースとかを見るとどうしてもなんか作ってみたくなってしまうあたり、まだまだオレも若いんだなぁ…っていう結論ではない。決してない。

結局なにがいいたかったというと、オレ例年秋になると「芸術の秋だー、なんかつくりてー」とか言ってるところだったんですが、今年は論文のせいでそんなことを考えるヒマもなく、いまになって芸術の秋成分がオレのなかでじわじわ浸透してきたんだよなー、そんな今日この頃。…というお話でした。無駄にながっ。

Firefox 2.0のはなしのつづき

どこから続いてるかというと、Y.NakamuraさんがFirefox2.0でLZHをダウンロードしたらセーブしかできないよと嘆いていたのでFirefox 2.0からはapplication/octet-streamのハンドリングが厳密になったぽいですねぇと私が突っ込んだところから続いてるんですが、そんなことを知ってる人はごく少数だと思うんで経緯はリンク先のほうをみたほうが早そうです。

で、Firefox 2.0からなんかapplication/octet-streamの扱いが厳密になったぽいみたいな印象を受けたんでそんなかんじですーみたいな突っ込みをしたんですが、もうちょっとよく調べてみると、もうちょっと別の理由もあったようでした。

具体的にはBugzillaのBug 315536 "do this automatically for files like this from now on" often grayed outあたりが該当してる話のようでした。おおざっぱに話をまとめると、

元々は「『このファイルをアプリケーションから開く』ってやつがしばしば選択できないようになっちゃうんだけどー」というバグの話だったんですが、そもそもそうなるファイルはapplication/octet-streamなファイルで、一般的なバイナリファイル。

むしろ、そういうことを考えるとapplication/octet-streamなファイルではこのアプリケーションで開くというのは「この種類のファイルを同様に処理する」でチェックいれて処理しちゃうと別形式のバイナリファイルでも意図せずそのアプリケーションで開いちゃってこれはあぶない。いっそのことapplication/octet-streamなファイルのダウンロード時はこのファイルの処理に関する提案をしないで単にセーブするかキャンセルするかを指定させるようにしよう。

という経緯だったようです。なーるほど。一応、該当するパッチを読んでみたんですが、特に前と同じ挙動になるようなオプションは用意されなかったようです。そんなわけで、これをどうにかするにはやっぱり何からの手段でContent-Typeをいじるしか解決法はなさそうですね。

まぁ、日本のサーバーのくせにLZHにapplication/x-lzhを当ててないサーバが多いのがダメなんですが、そういうbeatsync.netが身をおいているXREAもapplication/octet-streamでLZHが落ちてくるサーバだったりします。しょんぼり。

comments powered by Disqus