« 2006年6月 | トップページ | 2006年9月 »

2006.08.24

げんしけん 8

木尾士目著、『げんしけん (8)』、アフタヌーンKC、2006年を読む。

帯がすごい。

オタクだから、恋をした。

オタクのダメさを、ダメな側に立って、そこにあるしあわせを描いてきた『げんしけん』も、単行本完結直前で、とうとうオタクカップルの成立に。

しかも、サークルの夏合宿

しかも、オタクが原因のトラウマとそこからの回復ストーリー。

ここまで、オタクのしあわせを描いてしまうというのも、すごいというか、なんというか。 もともと、(少なくとも片方が)重度のオタクなカップルが2組存在しているという、すごい話だったわけで、こういう方向は最初からあったのかもしれない。

しかし、ここまで、大学のオタク系サークルのしあわせを謳歌しちゃっていいのか?

などと思ってしまうのは、わたし自身のトラウマですか、そうですか…

| | コメント (0) | トラックバック (0)

2006.08.23

映画「時をかける少女」

映画「時をかける少女」を観る。

本作は、アニメ作品で、小説や過去の映画の「時をかける少女」の続編という形になっている。 過去の作品の主人公・芳山和子は、今作では主人公のおばとして登場し、ちょっと(?)変わったおばさんとして活躍している。

少なくとも映画「ゲド戦記」と比べると、何をどうしたいのかはよくわかるし、おもしろい作品だった。 設定の整合性とか、コードが積極的にオタクでないとか、狙い過ぎているような気がするところは、気にならないでもなかったけれど。

夏の思い出として、楽しく観られる作品だった。 細かいことを気にせずに、元気な少女の青春映画を観たい人におすすめ。

| | コメント (0) | トラックバック (0)

2006.08.21

USBメモリからKnoppixのブート

USBメモリも安くなって、1GBのものが数千円で手に入るようになった。 というわけで、最近、雑誌で話題のLinuxのUSBブートに挑戦してみた。 Linuxのディストリビューションとしては、DebianベースのKnoppixとFedora CoreベースのBerryを選択してみた。

まず、「日経Linux」の2006年9月号の特集「Linuxを持ち歩こう!」のPart3「USBメモリーにはまだまだ工夫の余地がある」を参考に、Knoppixに挑戦したのだけれど、これだけでは、USBメモリからうまく起動しない。 USBメモリに入れるべきファイル自体はOKなのだが、どうやらUSBメモリのパーティションがうまく設定できていないようで、それについては記事では触れられていない。

結局、まとめると以下の方法で実行した。

  1. ELECOMのMF-AU2シリーズの1GBのUSBメモリを用意
  2. USBメモリから、フォーマットのユーティリティFORMAT.EXEをPCにコピーする
  3. FORMAT.EXEを起動して、1パーティションでUSBメモリをフォーマットする
  4. HPのDrive Key Boot Utilityで、USBメモリの領域を確保し、最低限起動可能なLinuxをインストール(ちなみに、USBメモリを挿したマシンはHPのデスクトップ。)
  5. USBメモリの中のファイルを全部消す
  6. 後は、記事通りにKnoppix5.0.1のCDの/boot/isolinuxの中身をUSBメモリのルートにコピーし、isolinux.cfgをsyslinux.cfgと名前を変え、ファイルの中のisolinuxの部分をsyslinuxに変更。 また、/knoppix以下をUSBメモリの/knoppix以下にコピー

以上で、BIOSの設定を変えるとKnoppixは起動するようになった。 HPのDrive Key Boot Utilityで領域確保するとうまくいったのは、USBメモリを挿したマシンがHPのマシンだったからかもしれない。 ちなみに、他にも3台くらい古いPCで試したけれど、USBメモリをBIOSの段階で認識しなかったりしてダメダメだった。

一方、Berryの方は、Berry 0.72のCDを作成し、WindowsからCDを起動し、HPのDrive Key Boot Utilityの処理まで終わったUSBメモリを挿し、「Berry OS をUSBメモリーにインストール」という項目を選べばインストールはOKなのだろうか? これでブートしようとすると、vmlinuzがないと言われてしまってブートしない。 というか、確かに見当たらない。 もしかすると、アーカイブされたイメージの中にはあるのかもしれないけれど。 仕方がないので、Berry OSをCDから起動して、/boot以下のファイルを適当にコピー(記憶があやふやだがvmlinuzとinitrd.gzあたり。この辺はちょうど「日経Linux」の「進め!カーネル探検隊」の連載の第9回「ブート・シーケンス」が参考になった。)してみたところブートするようになったけれど。 もしかするとインストールの方法を間違えているのかも。

| | コメント (5) | トラックバック (0)

2006.08.20

映画「ゲド戦記」

というわけで、映画「ゲド戦記」を観てきた。

話に聞いていたほどひどくはなかった。 だけど、これは、アニメに熟練した人が作ったようには感じられない作品だったというか。 いや、実際そうなんだから、しようがないというかなんというか。

うーん、これを原作者に見せたのはすごいと思う。

個人的には、こういう大作にならなければならなかった作品を1作目でやるのは、望ましくないのではないかと。

| | コメント (2) | トラックバック (0)

2006.08.18

彼女と彼女の猫

新海誠の来年公開予定の新作『秒速5センチメートル』のプロモーションサイトで、初期作品「彼女と彼女の猫」が公開されていた。

DVDの『ほしのこえ』にも収録されているこのモノクロの5分程度の作品は、猫の視点から、自分を拾ってくれた女性を描いている。 非常に短い作品なのだが、猫の視点を通じて、女性の生活や心情がうまく表現されている。 猫の映像表現は浮いているというか、インパクトがあるのだけれど、それはそれで。

ちなみに、Mac OS Xの場合、Windows Media Playerはver.9.0で開発が止まっていて、これではこのストリーミング画像を見ることができない。 VLC media playerなどを使えば、視聴することは可能だった。

| | コメント (0) | トラックバック (0)

2006.08.17

映画本編よりも場外乱闘の方が

とうとうアーシュラ・K・ル=グウィンのオフィシャルなコメントが出てしまった映画「ゲド戦記」。

もはや、映画はどうでもいいような気がしてくるくらいおもしろい、宮崎駿の情念、宮崎吾朗と父・駿の確執、ル=グウィンの間の悪さ(と母子の確執??)。

あるいは、ずっと前に、ル=グウィンが宮崎駿の申し出を受けていれば、この事態は避けられたのかもしれない。 しかし、運命はおもしろい。

「となりのトトロ」をみせたヴォンダ・N・マッキンタイヤさん、いい仕事してます。 ああ、マッキンタイヤの『夢の蛇』はよかったなあ。

…って、気分になってくる。

なにしろ、わたしは、《ゲド戦記》をはじめとしたル=グウィン(とマッキンタイヤ)、宮崎駿のいくつかの作品のファンだ。 重苦しい『所有せざる人々』だって、結構好きで、何度も読んだもんだ。

毒食わば、皿まで。 後は、映画本編を見れば完璧か? しかし、映画本編よりも、現実世界の方が、遥かに豊かで現実的で重要なテーマ(問題)を語りかけてくれているように思えるところが、今回の話のおもしろいところである。

| | コメント (0) | トラックバック (0)

2006.08.16

日本の四次元地帯駒木野の真実

「Spファイル」という同人誌があり、今回のコミケでは3号が販売されていた。

この特集は「日本の四次元地帯駒木野の真実」であった。 駒木野は昨年の夏に発売され、本ウェブログでも取り上げた篠田節子著、『ロズウェルなんか知らない』、講談社、2005年で登場する町である。

『ロズウェルなんか知らない』で描かれる駒木野は、UFOで村おこしの福島の飯野町のように、超常現象で村おこしに挑んだ群馬のうらぶれた温泉町だ。

この「Spファイル」の3号では、その駒木野が特集されており、村おこしの仕掛人である駒木野青年クラブのメンバーの一人で山師くさい鏑木という人物にインタビューした記事や、駒木野円盤フェスティバルの参加記録、「舟岩」に関する考察、駒木野の超常現象に関するイカレタ研究家の投稿などが掲載されている。

って、あれ? 前に調べたときに駒木野って場所はなかったと思ったんだけど…。 円盤フェスティバルの参加記録には、乗った列車名や下車駅まで書いてあるし? レイラインの解説では、駒木野の位置までおおよそわかるように書かれているし??

ええ、一瞬、だまされそうになりましたよ。

この事件が大々的にテレビなどで取り上げられていたというが、記憶に全くない。 もっとも、最近テレビは全く見ていないしなあ…。 検索しても駒木野なんて地名は出てこない…。

ついには、JR三坂駅なるものが存在しているかどうかチェックするために、検索して、特急水上1号の時刻表を確認してしまった。

ええ、おもろいです。 こういう企画。

他にも、《東日流外三郡史》とか、いろいろ楽しい記事があった。 今、オカルト系でおもろしろい同人誌かも。 ちなみに付録もついていて、前号の付録に至っては「コンタクティのビリー・マイヤーがインチキ撮影に使った円盤のペーパークラフトwith釣り糸」だった。

| | コメント (0) | トラックバック (0)

2006.08.14

グルジェフの残影

ちょっと旅立ってしまったので、重くて旅行には向かない"Programming in Objective-C"はお休み。 しばらく文庫の紹介に。

小森健太朗著、『グルジェフの残影』、文春文庫、2006年を読む。

本書は、『Gの残影』を文庫化した作品。 グルジェフに帰依していくウスペンスキーを、ウスペンスキーに心酔する男の眼から見た物語である。 そして、物語の本当に終わりになって殺人事件とその謎解きが行なわれるが、そこから物語全体の謎へと逆流していく物語でもある。

物語の語り手は、ウスペンスキーが「人生のやり直しとその失敗」として書いた「イヴァン・オソーキンの不思議な生涯」の主人公にちなんでイヴァン・オスロフと名付けられた架空の人物である。 そして、帝政ロシアの崩壊の中、ウスペンスキーがどのような遍歴を辿ったのかが、本書のメインテーマとなる。

「どこかに実践的な真の叡智を伝えてきたグループが存在する」というウスペンスキーの確信が、グルジェフとの蜜月を招く。 グルジェフの言っていることは乱暴で、それでいて何か凄いものを感じさせるところがあり、度々、弟子を試みにあわせる。 弟子たちは、グルジェフが実は山師で低俗な人物なのか、それとも深遠な叡智を持ち、弟子たちの成長のために敢えて逆説的な試みにあわせているのか区別することができない。 麻原彰晃のマハームドラーや、ラジニーシの試みと、この構造は非常によく似ている。

それはともかく、文庫の帯の「二十世紀最大の神秘思想家が遺した「グルジェフ・コード」が世界の謎を解きあかす。」というのは、ちょっと違うような。

| | コメント (0) | トラックバック (0)

2006.08.13

彼の地

彼の地は、今日は蒸しっぽかったが、概ね平和な気候だった。

20060813

それはともかく、今日、2006年5月24日のイベントを記録したとある本を買ったが、奥付の日付が2006年3月18日になっていた。

うーむ。

| | コメント (0) | トラックバック (0)

2006.08.12

Programming in Objective-C (7)

前々回の続きで、第7章「More on Classes(より詳しいクラスの説明)」。 内容はファイルの分割、複数の引数を持つメソッド、ローカル変数、static、self、メモリリーク(メモリの解放忘れ)に関して。

まず、ファイル分割。 @interface部はクラスが外部からどう見えるかを記述したもので、これは従来のCのヘッダーファイルに相当し、「クラス名.h」というファイルに入れる。 それで、そのクラスを利用するファイルで#import "クラス名.h"としてインポートする。 次に@implementation部は「クラス名.m」などというファイルに分割してやる。 コンパイルするとき、一つのファイルしかなかった場合と違うのは、「.m」ファイルを複数並べて指定すること。

次に、複数の引数を持ったメソッドは「メソッド名:引数2を表すキーワード:引数3を表すキーワード:...」と表される。 宣言は以下のようになる。


メソッドの種類 (返り値の型) メソッド名: (型)仮引数1 引数2を表すキーワード: (型)仮引数2  引数3を表すキーワード: (型)仮引数3...;

実は、この引数を表すキーワードはなくてもいいのだが、あった方がわかりやすい。

それから、メソッドの中で、処理を行なうために、変数を宣言して使うことがある。 この変数は、普通に宣言すると、ローカル変数となり、これはそのメソッドの中で使うことができ、メソッドが呼ばれる度にメモリ上に確保され、メソッドが値を返すと消えてしまう。 メソッドの引数もローカル変数で、引数の元の値が、仮引数にコピーされて使われているので、メソッドの中でいくら値を書き換えても、メソッドを呼び出した側には何も影響しない。 ただし、変数が参照型だったりして、それを使って参照先を直接いじるようにプログラムを書くと、メソッドの外にも影響を及ぼす。 まあ、これはCのポインタの場合と一緒。 また、メソッドの中で変数を宣言するときにstaticを付けてやると、この値は静的にメモリ上に確保され、メソッドが値を返しても消えない。 なお、staticを付けても、この変数の値は、変数が宣言されているメソッドの中でしか使えないことには注意する必要がある。

それから、メソッドの中で、(他の)オブジェクトのメソッドを呼ぶことができる。 自分自身のオブジェクトのメソッドを呼ぶには、オブジェクトにはselfを指定してやればよい。

最後にメモリリーク(メモリの解放忘れ)について。 Cでは、メモリ管理は自分で自覚的に行なう必要がある。 それで注意しなければならないが、オブジェクトにfreeをし損ねることだ。 また、メソッドの中でオブジェクトを作って処理をすることがあるが、そのメソッドが再帰呼び出しされていたりすると、次々とオブジェクトが作られ、どんどんメモリを消費してしまう。 これを解決する万能薬はなさそうで、注意してプログラムを書く必要があるということで。

| | コメント (0) | トラックバック (0)

2006.08.11

思い出の人々@2ちゃんねる

ちょっと、連日、体力消耗系イベントが続いたので、今日は"Programming in Objective-C"はお休み。

自分の名前や昔の知人の名前で検索をかけたことがあるだろうか?  わたしはある。 そして、ネットでそれなりに活動していれば、検索にかかるのは当然だ。

検索してみると、幾人かの知人は、2ちゃんねるで実名でスレッドがたっていたりして感慨深い。 それで、当然というかなんというか、それらでは、ウォッチングの対象になっていたりする。

彼らは、いずれも極端な人物で、思い出してみるに、たとえば無闇にけんかを売りまくるとか、あるいは言動が一般的常識の範疇をはずれていたりした。 それで、今現在のスレッドを読んでみると、ああ、未だにあなたはあの頃のあなたのままなんだねと、そういう思いがわいてくるのだった。

そんな思い出の一人は、とうとう、自分でスレッドをたててしまった。

むかし、彼は自分のことを天才だと思っていた。 いや、でも、当時、同級生の一部は、自分のことを天才…かどうかはともかく、少なくとも秘めた才能があるくらいには思っていたと思うし、そして世界的な人物になるつもりさえあったと思う。 かくいうわたしも、そういう自惚れた連中の一人だった。 そんな自惚れは、今にして思えば、思い上がった若者の青臭さ以外のナニモノでもないのだけれど、それでも、いろいろなことに一生懸命取り組む原動力にもなっていた。

しかし、そんな妄想は長くは続かない。 実際にいろいろやってみれば、恥ずかしい失敗はするし、自分よりずっとできるヤツはいるし、あれれれとなってくる。 それでも、もがいた分は何がしかを残してはくれるものだけれど。

ところが、彼は変わらなかった。 冷静に見て、彼は同級生の中では、決してその道の専門的才能にあふれていたわけではなかったし、成功もしていないと思う。 彼が他の人と大きく異なっているところは、それでも自分が優れていると思い続けているところだ。

今後、彼にとっては、パウロに相当する人物が現れるかどうかが、ポイントになるだろう。

そして、それは必ずしも客観的には幸せなことではないだろう。

| | コメント (0) | トラックバック (0)

2006.08.10

Programming in Objective-C 番外編

今回は、番外編ということで、Kathy Sierra、Bert Bates著、夏目大訳、『Head First Java第2版』、オライリージャパン、2006年の前半のプログラムの課題をObjective-Cで作成してみた。

…してみたのだけれど、実は"Programming in Objective-C"の前半では、主に数値を使ったプログラムばかり書いていたことがわかった。 たとえば、文字列を扱う方法は、まだ出てこなかったりする。 ところが、結構、実際のプログラムでは、この文字列の処理がポイントだったりする。 それで、Objective-Cはともかく、Cで文字列を扱うには、文字の配列を用意したり、文字の配列へのポインタを使ったりするのだが、これはなかなか最初はわかりにくい話だったりする。

Javaの場合、Stringクラスを使うとそれなりに安直に文字列を扱うことができて、『Head First Java』の課題では、文字列を使ったものが多い。 そんなこんなで、記憶と確認と定着のために、JavaをObjective-Cに置き換えて、練習しようという目論見ははずれ、ほとんど普通にCでプログラムを書いているのと大差ないハメに陥ってしまった。 それから、Cでは、無理に文字列を使うよりは、整数値を使った方がプログラムとしてはきれいになったりする場合もあり、結構、書き直す感じになった。

たぶん、後の方でNSStringとか出てくるらしいので、それを使えばいいだろうけれど、とりあえず今回はCの作法でという感じ。 それでも、Objective-Cについて、あやふやな理解をしていたところの復習には十分なった。

| | コメント (0) | トラックバック (0)

2006.08.09

Programming in Objective-C (6)

前回の続きで、第6章「Making Decisions(判定を行なう)」。 内容は、if、else、switch、条件演算子で、基本はCと同じ。

それから、ブール値YESかNOという値を取るBOOLという型があり、これはマクロで定義されている。 調べてみると、Xcode2.3では、objc/Object.hをインポートしておけば、インポートされるobjc/objc.hで以下のように定義されていた。


typedef signed char BOOL;
#define YES (BOOL)1
#define NO  (BOOL)0

| | コメント (0) | トラックバック (0)

2006.08.08

Programming in Objective-C (5)

前回の続きで、第5章「Program Looping(繰り返しのプログラム)」。 内容は、for、while、do〜while、breakとcontinueというもので、Cの場合と一緒。

C99では、Javaみたいに、プログラムの途中でいきなり以下のように変数を宣言して使うことができ、これはgccでコンパイルするときには-std=c99とかオプションを付けると通るようになる。


for(int i=0; i<10; i++) {
  処理
}

それから、最大公約数を求めるユークリッドの互除法。 きちんと覚えているわけではないので、メモ。

uとvの最大公約数(gcd = greatest common divisor)は以下の繰り返しで求められる。

  1. vが0になったら、gcdはuである。
  2. temp = u % v、u = v、v = tempを実行し、1に戻る。

本書では、分数を扱うプログラムをだんだん完成度を高めていっているが、ユークリッドの互除法はたぶん後で通分したりするのに役に立つはず。

| | コメント (0) | トラックバック (0)

2006.08.07

Programming in Objective-C (4)

前回の続きで、今回は第4章「Data Types and Expressions(データ型と式)」。

データ型は基本はCと一緒。 大きな違いはid型というのがあり、一般的なオブジェクトを表すということ。

演算子の方も、Cと一緒。 ビット毎のXORで値の入れ替えができるのは知らなかったのでメモ。

普通、xとyの値(たとえば整数値)を入れ替えるには、もう一つ変数(たとえばtmp)を用意しておいて、以下のように書く。


int tmp;
tmp = x;
x = y;
y = tmp;

以下のようにビット毎のXORを使うと、tmpが不要になる。


x ^= y;
y ^= x;
x ^= y;

つまりは、x XOR y = y XOR xという関係があるので、x XOR y XOR x = x XOR x XOR y = 0 XOR y = yとなるということで。

それから、複素数用に_Complexと_Imaginary、ブール値用に_Boolという型もある。 ためしに複素数を使ったプログラムを書いてみた(これで適切かどうかは不明)。


#import <stdio.h>
#import <complex.h>

int main(void)
{
    _Complex double z, w;
    z = 1.0 + 1.0*I;
    w = -12.0 + 0.15*I;

    printf("z = %f + %fi\n", creal(z), cimag(z));
    printf("w = %f + %fi\n", creal(w), cimag(w));

    z *= w;
    printf("z*w = %f + %fi\n", creal(z), cimag(z));

    return 0;
}

ちなみに実行結果は、次のようになった。


z = 1.000000 + 1.000000i
w = -12.000000 + 0.150000i
z*w = -12.150000 + -11.850000i

| | コメント (0) | トラックバック (0)

2006.08.06

Programming in Objective-C (3)

昨日の続き。 今回は第3章「Classes, Objects, and Methods(クラス、オブジェクト、メソッド)」。 内容はオブジェクト指向入門。

オブジェクト指向では、プログラムする対象がどういうモノなのかというところに焦点を当てて考える。

たとえば、自分や家族の車を対象とするプログラムを書きたいとする。自分の車や家族の車は、車の一種である(is-a関係)。 言い方を変えると、車というクラス(種)のインスタンス(実例)である。 車には、ボディの色をはじめとしたステートがあり、このようなステートは各インスタンスの変数が保持する。 また、車に対しては、何かを行なうことができるが、クラスやインスタンスに対するアクションをメソッドという。

クラスやインスタンスにメソッドを適用するには、プログラムでは以下のように書く。


[ クラスやインスタンス メソッド ];

これはレシーバにメッセージを送るとも呼ばれ、以下のようにも書く。


[ レシーバ メッセージ ];

メソッドに引数がある場合には、以下のように書く。


[ クラスやインスタンス メソッド: 引数];

プログラムには、@interface部、@implementation部、プログラム部がある。 @interface部は、クラスが持っている変数とメソッドのプロトタイプ宣言を書く。 @implementation部は、メソッドの処理を実際に書く。 プログラム部では、クラスに属するインスタンスを実際に作って、それを使う。

1つのファイルに全部入れる場合、プログラムの構造は以下のようになる。


#import <stdio.h>
#import <objc/Object.h>

@interface クラス名: Object(ないしは親のクラス名)
{
  型 インスタンス変数名1;
  型 インスタンス変数名2;
  …
}

メソッドの種類(返り値の型) メソッド名1: (型) 仮引数名;
メソッドの種類(返り値の型) メソッド名2: (型) 仮引数名;
…
@end

@implementation クラス名;
メソッドの種類(返り値の型) メソッド名1
{
  処理
  …
}

メソッドの種類(返り値の型) メソッド名2
{
  処理
  …
}
…
@end

int main(int argc, char *argv[])
{
  クラス名 *インスタンスを参照する変数名;
  インスタンスを参照する変数名 = [クラス名 alloc]; //インスタンスをメモリ内に用意
  [インスタンスを参照する変数名 init];  //インスタンスを初期化
  処理
  …
  [インスタンスを参照する変数名 free];  //インスタンスをメモリから消す。
  return 0;
}

ここで、メソッドの種類は、「-」ならインスタンスに対するメソッド、「+」ならクラスに対するメソッド。

allocとinitの2行は、以下の1行でもOK。


  インスタンスを参照する変数名 = [クラス名 new];

インスタンス変数の値をクラスの外から参照できるようにするため、インスタンス変数名を持ち、インスタンス変数の値を返すメソッドを用意することもある。

| | コメント (0) | トラックバック (0)

2006.08.05

Programming in Objective-C (2)

前回の続き。

今回は、第2章「Programming in Objective-C(オブジェクトCによるプログラミング)」。 内容は、Mac OS Xのコマンドライン、Xcode、WindowsのMinGWなどのGCC環境におけるプログラムの作成とコンパイルと実行について。

ポイントは、Objective-Cのソースファイルの拡張子は「.m」。 コマンドラインでコンパイルするには「gcc -o 出力ファイル名 ソースファイル名 -l objc」。 Xcodeの場合は「新規プロジェクト」で「Application」→「Cocoa Application」あたりを選ぶ。 Cとの違いは、#include じゃなくて#import になっていること。 あと、printfの変換指定子%dは、%iと書いても同じで、本書では%iの方が使われている。

| | コメント (0) | トラックバック (0)

2006.08.04

Programming in Objective-C (1)

Stephen G. Kochan, "Programming in Objective-C", Developer's Library, 2003を読む。

とりあえず、第1章「Introduction(はじめに)」はObjective-Cと本書の構成の紹介といったところ。

Objective-Cは、NEXTSTEP由来でMac OS Xのアプリを作るのに使われるけれど、1992年からGCCでもサポートされているし、MinGWとGNUStepの組み合わせでも行けるというのが、個人的にはポイントかも。 ああ、そういえば、GCCをmakeするときにobjcも作るように指定していたなあ(使わなかったが)と思い出すのだった。

| | コメント (0) | トラックバック (0)

復帰

なんというか、今年は余裕なさ過ぎ。 やっと復活できたというか、余裕が出てきた。

とりあえず、しばらくStephen G. Kochanの"Programming in Objective-C -- A Complete Introduction to the Objective-C Language"でも読もうという気分になっている今日この頃。

きっかけは、画像を処理するプログラムを書き直そうという気になったこと。 元々はCで非常にまじめに低水準の入出力関数を使って書いてある短いプログラムをもらって使っていた。 これは、Power PCのMacでMac OS X 10.3 Pantherの上でコマンドラインから使っていたのだが、Intel Macに乗り換えたところ、エンディアンが異なったり、Mac OS X Tigerでリソースフォークの扱いが変わったりして、ぼちぼち書き換えた方がいいかもという気になってきた。

ちょうど、Eric Freeman他著、佐藤直生監訳、『Head Firstデザインパターン -- 頭と体で覚えるデザインパターンの基礎』、オライリージャパン、2006年を読んでいたので、Javaで書いて、その練習にでもと思った。 ところが、Javaでバイナリ・ファイルを読み書きするプログラムを書いてみたところ、90MB程度のファイルを読み込んでバイト数を数えるだけで6分近くもかかる。 Cで似たようなプログラムを書くと4秒程度だ。 いっそ、Objective-C勉強しちゃおうかという気になったというわけ。

はっきり言って、この本はプログラミング初心者向けの本なので、斜め読みでも十分理解できそうなんだけど、久しぶりにCの本をまじめに読んでみるのもいいかもしれない。 英語だし。

| | コメント (0) | トラックバック (0)

« 2006年6月 | トップページ | 2006年9月 »