dullhikoのだるいブログ

殆ど日記のだるいブログ

C#ってどうよ。とか

2005年05月20日 | プログラミング
FreePascalを得て思ったのだが
Pascalにはいくつか悲しい点がある。

1) VimでC用の便利なキーコマンドが使えない(di}とか%とか)
2) ctagsが吐くタグがちょっと変

そこで思ったのだが
C#ってどうよ?と。
コンパイルは速いようだし( C++で2分40秒ほどかかる規模のソースファイルを、C#では7秒という話を読んだことがある )、文法はC++に似ている。そしてdllも簡単に呼べる。
だが、俺としてはdllを呼べるというのは最低条件。できればCの吐くobjファイルがリンクできればいいのだが…。
さらに言えば、実行速度はだいたいC++の80%程度らしい。コンパイル速度の速さを考えれば20%のパワーダウンは十分納得行く話だ。
そして、LinuxでもmonoというC#処理系があるのは大きい。

まあ、必殺最終兵器として、C#→C++コンバータ書いたらどうかなーと思った。完成後に機械的にコンバートすれば(できれば)、開発速度も最終バイナリの速度も満足いくものになるはずだ。

…とかいろいろ妄想してみたが、いくつか気に入らない点もある。
ひとつは、デストラクタを明示的に呼ぶのが難しいことだ。
というか、呼ばないらしい。
C#→C++コンバータは、デストラクタを呼ばないのでちょっと難しい?という気もしてきたわけだが…まあ、using節やローカルスコープは検出可能なのだから、考えるほど無茶な話ではないのかもしれない。あるいは、自分ルールで空の擬似デストラクタを呼び、コンバート時にそれを実際のdelete呼び出しに繋げる、というのもアリか。

あと、まだOpenGLが無いらしいんだよなぁ。一応CsGLというのがあるのだが、開発が止まってしまっているようだ…SDLは、これはSDL.NETというのがあるらしいので、monoなLinux環境に移行しても、これはさほど問題ではないと思われ。

さて、どうしたもんだか。

FreePascalが2.0になっていた

2005年05月20日 | プログラミング
ふと巡回してみたらFreePascalが2.0になっていたのでゲット。
入れてみたがふむ、動くね。ちゃんと。

さらにさらに。
昔はOpenGLのサンプルをコンパイルしてもヌルポインタなエラーが発生して落ちていたのだが、どうもこれはおれのPCがGLUTが存在しない環境だったかららしい。
というのも2.0のサンプルではGLUTが無いと、エラーで落ちるのではなく、ちゃんと「無い」と言ってくれるようになったのだ。
そういうわけで拾ってきて入れた。おお、動くじゃねぇか…ものすごく感動。

Gladeってのを少しだけ触る

2005年05月18日 | プログラミング
GTKのGUIビルダのGlade。
前回の日記で少しだけ書いたブツ。よく考えるとこれは先日のハマリには殆ど関係がなかった。
iconv.dllの干渉で動かなかったというだけのことである。

それはさておき。
Win32にもあったんで、まあなんとなく入れてみた。
まあ、それなりに便利かな、とか思った。というか。
Win32でGTKを使っちゃいけない法律があるわけでもないので、ガシガシ遣わせて貰えばいいじゃん、と。ま、そんなに何か作るわけじゃないけど。

PyGTKとGladeとGTKとGimpなどでハマリにハマル

2005年05月17日 | ソフトウェア
PyGTKを試そうと思って入れてみた。

が…
動かん!!
import gtkでエラーを出すのだ。DLLにそんな関数ないよ、みたいな。
何が悪いのかと思っていろいろやっていて、GTKを2.4.14から2.6.7に入れ替えることにした。

すると。
今度はGimpがScript-Fuで落ちる。
その上、PyGTKも変わらず。
さらに、Gimpの日本語がおかしくなってしまったので、わざわざ手打ちで直すのも面倒なのでgtk2_prefs.exeをゲット。ところが。
こいつも動かない。
iconv.dllにそんな関数ないよ、と。
調べてみたら、どうもtclについてきたやつと干渉してるらしい。
というわけで、リネームして消し去ってやった。(いいのだろうか…)
すると、PyGTKもgtk2_prefs.exeも動くようになった。
感動で泣けた。

でも、
Script-Fuが落ちるのだけは直らないっと。なんか、.moファイルを弄ればいいらしいが。
俺には難しすぎる。

まあ、2.4.14に戻せばいいんだが。ダウングレードは好きじゃない。
仕方ないので、Script-Fu.exeをパージしてTiny-fuを入れた。
今後はTiny-fuだけになるって話もあるし、まあいいかとは思うが。
なんか起動遅くない?

Python Challenge

2005年05月16日 | プログラミング
Pythonやってる人には既に既出もいいとこだろうがPythonChallengeをやってみている。
Pythonがあると便利に解けるクイズのようなものだ。最初のは関数電卓とかでも解ける。
しかし、ヒントを見ないとlevel0からいきなり挫折しそうだった。
うーん、難しい。
ちなみにlevel0は力こそパワーだということに気づけば解けるはず。
つか、普通は2はもっと大きく書く。(って殆ど回答だ…)

あと印象に残ってるのはpicle使うのとか、メスとオスの区別があるのとか、画像に本当に文章が埋め込まれてるやつとか。(印象だけで語っているので順不同)
level8なんかは簡単と言われていたが、結構苦しんだ。あのままあのモジュールに突っ込めるとは知らなかった。


そんなこんなでようやくlevel12までたどり着いたが、与えられたファイルから二枚の画像を抽出したのだが、その後がどうにもならん。
ヒントを見てもわからない。二枚じゃ足りないんだろうか。まあ、小さいの合わせれば4枚出るんだけど、画像が小さいだけで内容は同じに見えるというか、サムネイルが内蔵されてるだけかってとこなのだが。もしかすると、ほかの画像も埋まってるんだろうかね。

まあ、正直、ここまで来るのにヒントを見まくったとはいえpythonに結構親しんだので、PythonChallengeについてはここで諦めてもそれなりに得るものはあったからいいかって気分。

しかし、Pythonはいろんなことができるんだなぁ。

「28日後」と「28日間」の違い

2005年05月15日 | テレビ/ラジオ/映画
先日、WOWOWで「28日後」(原題 : 28 Days Later...)という邦題の洋画をやっていたわけだ。
映画に疎い俺も999円DVDにこの映画の宣伝が入っていたので知っていたのだが、何か疫病みたいのでモンスターみたいになって暴れるバイオハザードっぽい話。
ちょっと見たいなとは思ってたのだが録画も視聴もすっかり忘れていた。

で。

今日、番組表を見たらテレビ愛知で「28デイズ」やってんじゃーん!昼間にこんな映画やるなんて豪華になったねテレビ愛知も、見忘れたからありがたいぜーなんて勘違いして見てたわけだが

28days later...ではなく28daysだった。

紛らわしすぎるぞ、おい。
アルマゲドンに出てたイカれた人が真面目な役をやっている。まあ、どうでもいいけど。

何か中毒患者の矯正施設の話らしいのだが、途中まで「矯正施設でウィルスが蔓延するのが導入部なんかな~」とか思って見てた自分が

WOWOWから録画したマトリックス・リローデッドを見る

2005年05月13日 | テレビ/ラジオ/映画
GWは山に行っていたので録画しておいた。そういや、日記も久々だ。
マトリックスは大変お気に入りだったので、正直続編を見て落胆する(よくあるパターン)のが嫌で放置していたのだが、WOWOWに加入したこともありなんつーかとりあえず録画してみた。DVDも安いんだが、DVDではHDTV画質ではないということもあり。

思ってたよりCG丸出しなのが萎えた('A`)
集団スミスとの戦いはどこがCGかはすぐにわかるような出来で、あれ、こんなもんだったかな、というか。よくこんなもの通したなとある意味感心。2003年の作品のはずなのだが…
話の筋はまあ漏れ聞く風評などから思ってたよりは面白かった。

ちなみにマトリックス系はWOWOWはいつも流しているらしく、レボリューションズも録画するつもり。

ActivePythonのPythonWinは便利である

2005年05月06日 | プログラミング
つーか、山で暇つぶしにIDLEを使っていて知ったのだが
-nオプションをつけていると、pygameでもウィンドウが凍らないということは以前にも書いた。
まあ、これはいいとして。

-nオプションをつけていると、今度はthreadを開始するとハングしてしまう。
つまりこちらを立てればあちらが立たない状態なのだ。
こまったなーと思いつつ。

山から帰ってきてふと唐突にActivePythonを入れてみたわけだが。
こいつは
使える。マジで。
何も考えずともpygameもthreadも問題ない。
こいつは、最高だ。

ちなみに、特にActivfePythonの特殊な仕組みがあるという姑息なわけでもなく堂々とした作りであり、PythonのWin32モジュールを入れれば別に他の配布版でも普通に使える、ようだ。