tetraの外部記憶箱

«前の日記(2006-03-05) 最新 次の日記(2006-03-09)» 編集
Category;

2006-03-08

_ [IT][books] 学習とニューラルネットワーク

comment

ヒマ(?)なので、積読状態になっていた本を読み進めている。分量的にも1週間程度で読み終わる内容。ニューラルネットの入門書としては、いちばん取り組みやすい本かもしれない。Cで書かれたプログラムソースも記載されているので、自分で実際にプログラムを書いて確かめられるのも良い。ただし、誤植が何箇所かあるので、注意を要する。

_ [IT] LL侍

LL侍こと早川くんの映像がこんな所に!!

Don'tStopMusic(2004-08-13):[イベント] LL 侍

LL侍のネタ:拙者先祖代々LLっ子でございます

実は、彼は高校時代の親友で、一緒に化学部で実験をしていた仲だ。(彼が部長で、僕は書記)高校卒業後、部活のOB会で2回くらい会ったことがあったが、ここ数年は全く疎遠になっており、その後の彼の足跡については、「ライブドアに入社した」という噂を最後にあまり知らない。(最近、mixiで発見)

当時の彼は、高校の化学教師でさえ舌を巻くほどの「化学少年」であり、放課後になると、いつも化学実験室でアヤシゲな実験に明け暮れていたものだ。とても独特な雰囲気を持つ青年だったが、笑いを取る方に走っていたとはねぇ〜(笑)

_ [EMBOSS][Cygwin] CygwinでEMBOSSがコンパイルできなくなった件

CygwinにEMBOSSを入れなおしていたら、コンパイルで失敗してしまう。

$ make
・・・
ajfile.c: In function `ajFileBuffNewDW':
ajfile.c:3067: error: structure has no member named `d_ino'
ajfile.c: In function `ajFileBuffNewDWE':
ajfile.c:3158: error: structure has no member named `d_ino'
ajfile.c: In function `ajFileNewDW':
ajfile.c:3310: error: structure has no member named `d_ino'
ajfile.c: In function `ajFileNewDWE':
ajfile.c:3399: error: structure has no member named `d_ino'
ajfile.c: In function `ajFileScan':
ajfile.c:5163: error: structure has no member named `d_ino'
make: *** [ajfile.lo] エラー 1

ソース(ajax/ajfile.c)を見比べてみると、どうやらreaddirの構造体へのポインタ'd_ino'が存在しないというエラーらしい。

そこで、readdirのManpageを見ると・・・

readdir() 関数は、dir の指すディレクトリストリームの中で、 次のディレクトリエントリを表す dirent 構造体へのポインタを返す。
ファイルの最後に達した場合やエラーが発生した場合は NULL を返す。
Linux では dirent 構造体は以下のように定義されている:
struct dirent {
    ino_t          d_ino;       /* inode 番号 */
    off_t          d_off;       /* 次の dirent へのオフセット */
    unsigned short d_reclen;    /* このレコードの長さ */
    unsigned char  d_type;      /* ファイル種別 */
    char           d_name[256]; /* ファイル名 */
};

Cygwinの該当ライブラリ(/usr/include/sys/dirent.h)を参照してみると・・・

  ino_t __invalid_d_ino;		/* DO NOT USE: No longer available since cygwin 1.5.19 */

とある。どうやら、Cygwin 1.5.19以降では“d_ino”が廃止されて“__invalid_d_ino”に置き換わっているのが原因っぽい。そこで強引だが、“ajax/ajfile.c”および“ajax/ajfile.c”の“d_ino”を“ino_t d_ino”に置換し、無理やりコンパイルを実行。

$ mv ajax/ajfile.c ajax/ajfile.bak
$ mv nucleus/embdbi.c nucleus/embdbi.bak
$ perl -pe 's/d_ino/__invalid_d_ino/g' ajax/ajfile.bak > ajax/ajfile.c
$ perl -pe 's/d_ino/__invalid_d_ino/g' nucleus/embdbi.bak > nucleus/embdbi.c
$ make

これで、コンパイルが通った。

※追記:この問題は、bugfixを適用すれば解決するみたいです。(2006/3/10)