2009年06月18日
INDRIのJavaインターフェイスコンパイルエラー
仕事でINDRIと言う新しめの検索エンジンを使うことになった。
言語モデルと推論ネットワークを組み合わせて、良くなったぜ的なものらしい。
C++で書かれているが、JavaやPHPで使用できるラッパーがある。
で、そのJavaAPI部分のcompileに失敗していたので解決方法を。検索しても英語の情報すら出てこなかったので誰かの役に立つことを願ってメモしておく。
普通にlemur-4.9を落としてくる。
$ ./configure --prefix=$HOME --enable-java --with-javahome=$JAVA_HOME --with-swig=/usr/bin/swig
としてmakeするが、次のようなエラーが出る。次のエラーメッセージは4.6のものだけど、まぁこんな感じでJavaのコードがめちゃくちゃになってる。
/JAVA_HOME/javac -classpath java -d ../obj/java java/lemurproject/lemur/ArrayAccumulator.java
java/lemurproject/lemur/RetrievalMethod.java:12:
public abstract class class RetrievalMethod {
これはJavaのコードを自動生成したswigのバージョンが古いからのようだ。ちなみにCentOS4.4に最初から入っているswig1.3.21でおかしいコードが自動生成されているようだ。
最新のswig1.3.39を入れてmakeすると正しくinstallすることができた。
2009年06月16日
世界には10種類の人間がいる。バイナリを理解できる人間と、そうでない人間だ。
さぁあなたはどっち!? と、そんなわけでBinary Hacks ―ハッカー秘伝のテクニック100選
を今更読みました。
バイナリーハックと聞くとすごい難しそうな事が書いてあると思ってしまう。
ハッカー秘伝のテクニックと聞くと初心者には関係のない本のように思えてしまう。
が、Linuxでのプログラミング初心者にこそ必要な本であると思った。
Cでプログラミングしている時に、segmentation faultが発生して原因がわからず困っているとき。
どこかでメモリリークを起こしているんだけど、その場所の特定の仕方がわからないとき。
実行するのに共有ライブラリが必要なんだけど、共有ライブラリを後からスタティックリンクにしたいとき。
どこかでバッファオーバーフローを起こしていて、データ破壊により不特定の場所で落ちる原因を調べたいとき。
そんなよくある問題に、解決方法への道しるべをこの本は教えてくれる。
もちろんプログラム実行中に、自分自身を書き換えて動作を変えてしまう方法や、オブジェクトファイルを自力でロードするなどいかにもハック的な知識も豊富だ。
この本を読むまでバイナリの世界はとても難解な世界で、偏屈な人間がもてあます暇も費やし探求する世界だと思っていた。
しかし本当はそうではなく、この本を1冊読むだけでどんな景色かを見渡すことの出来る世界だと言うことがわかる。
それはバイナリの世界の底が浅いと言うことではない。
とてもシンプルなルールに基づいている世界という意味だ。
そんなシンプルな世界では禁止されている事がほとんど無い。
そのシンプルなルールに則れば何だって出来る。それがハックなんだろうな。
死に至るバグ
ひどいセキュリティホールが原因で自殺者まで出た一件。
英ISPのVAserv、zero-day攻撃を受ける。脆弱性を突かれたソフトウェアの会社社長は自殺
話をまとめると、サーバ仮想化インフラがセキュリティホールだらけで、世界中で10万のサイトが削除されちゃって、それが原因かどうか知らないが開発元の会社の社長が自殺したという話。
攻撃方法の詳細はこちら。
何というかコレはひどいの一言。
でもセキュリティのことを一切考えず作ったらこうなっちゃうんだろうなと思う。
shell codeで穴をついて攻撃!とか一切無くて、すべてド直球の攻撃ばかり。
なんだか90年代の香りがするセキュリティホールだ。
一番笑ったのは次の攻撃。
ISSUE #16 - remote CPU and mem usage DoS
攻撃対象にtelnetしてすぐ切断するだけで、CPUとメモリを消費してサービス不能にw
サーバ側で無限ループして命令を待っているんだろうなぁ。
つか切断時の処理ぐらい書いておけよ。
シンボリックリンク攻撃が有効活用されまくりなのも興味深い。
やっぱルート権限で動作するアプリは怖いな。
しかしこの件は対岸の火事では無いので気をつけねば。
2009年06月14日
陶芸体験してきた
今日は京都観光の案内をすることになったんだけど、見るだけじゃつまらないよねと言うことで陶芸体験をしてきた。
陶芸ってなんとなく面白そうだしやってみたいけど、機会がないしなかなか敷居が高そうだ。
と思っていたけど清水周辺は清水焼で有名と言うことで陶芸体験ができる場所が多く、結構簡単に陶芸体験ができる。
今回行ったところは朝日堂 美器工房。手ひねり作陶コース、値段は3500円だ。一応1時間コースなんだけど、ずいぶん時間をかけて結局2時間半ほどおじゃまさせていただいた。たぶん後ろに予約が無かったからそこまで時間をかけさせていただいたんだろうけど、せかされることもなく気持ちよくコネコネすることが出来た。エプロンも貸してくれるので、手ぶらで行って手ぶらで帰ることが出来る。作品は後日郵送とのこと。
コネコネ中、形を整えているところ。

コネコネ完了!!

桜の花のスタンプを入れて、湯飲み全体は白なんだけど桜の部分はピンク色にしてもらうようお願いした。釉薬は2種類まで指定ができ、絵を描いてどこにどんな色をどのように付けるかを指定することができる。
焼き上がりが楽しみだ!
帰りに友達と会う。
「今日は陶芸してきた」と言うと、「写真の次は陶芸か。どれだけオッサンやねん」的な事を言われた。
2009年06月08日
今までと同じ考えや行動を繰り返して異なる結果を期待するのは狂気である
と、あっかんべーが上手な老人が教えてくれたので肝に銘じる。
開発が止まっているプログラムを完成させないとな。
例のサイトはずっと開発停止だったので今は止めているけどまずはコレを軌道に乗せねば。
正直技術を使おうとしたり作れる物を作ろうとして出来た物なので微妙だ。
もっとどのような物が必要なのか、それをどう実現するかを考えて設計しないとな。
DEBUG HACKSを発売日に購入したのだけれど、これはなかなか面白い本。
ディープすぎて今の仕事にはあまり関係がないが、面白い。
あまりにディープすぎてほとんどの人は1章、2章と4章の一部の内容だけで十分なぐらいだ。
他の章はいったいどれぐらいの人が幸せになる内容なのか不明なぐらいディープすぎる。
組み込みのLinuxで開発している人とかには嬉しい知識なのかな。
ハルヒの新作を今頃見る。
絵がけいおんぽくなっていた。
古泉がよりイケメンになっていた。
これはこれでアリかも。