2009-09-05

_ (第3回)Zope/Plone開発勉強会に行ってきた

Localizerの件は本家に取り込まれて、一段落ついたので、今回は別ネタを始めることにしました。

できていないもの(vaporware)をエラそうに喧伝するのは恥ずかしいと思っているので、どんなネタかはまだ伏せてますが、 そのために全文検索が欲しくなったので、 groonga をいじることにしました。

本当は勉強会よりも前から夜帰宅してからちょこちょこ触ってはいたのですが、 毎回バグに遭遇してしまい、 遅々として進んでいませんでした。 そのため、今回はtrunkについて行くのはやめて、 手元のリビジョンで一旦止めることにしました。

ひとまず、やることとしては、Pythonからいじりやすいように、 バインディングを作ってしまうことでした。 groonga自体にも、QLのAPIのラッパーはあるみたいなんですが、 Ruby/groonga のように、DB APIを触りたかったので、 自分でやることにしました。

ただ、残念ながら、私はここ最近この手の仕事から離れていたので、 PythonのC APIが思い出せず、ひたすら Extending and Embedding the Python Interpreter とか Python/C API Reference Manual を眺めながら格闘してました。 おかげで、まだ成果としては、中途半端です。 setuptoolsやbuildoutで構築できる、 groongaを初期化して、エラーを例外処理できる、 という程度です。

さすがにこれぐらいの規模のバインディングを作るのは結構骨が折れるので、 素のCで作るのはやめて、 Cython でやり直そうかと考えてます。 余計な依存が増えるのは面倒くさくなるので、出来れば避けたいと思っていましたけど、作るのが楽なことには逆らい難いというか。

[]

トップ «前の日記(2009-08-31) 最新