2010年4月24日土曜日

Solrの創始者によるチュートリアルに参加 はてなブックマーク



22日(木)に、麻布十番近くの国際文化会館で、 次世代サーチ・テクノロジー・フォーラム2010があった。

その前日、21日(水)には、プレイベントとしてSolrプロジェクト創設者のヨニック・シーリー(Yonik Seeley)氏のチュートリアルがあった。来日して講演というのはなかなかない機会なので、両日とも参加してきた。

ちなみに21日のチュートリアルは25,000円、22日のフォーラムは無料。

Solrチュートリアル


参加者は二十数名だった。
一般的な相場と比べても参加費がそれほど高いわけでもなく、すべてのオープンソースプロジェクトの中でもトップレベルの人気があるというSolrの、開発者直々のチュートリアルにしては、少ないように思える。

日本でのSolrの知名度の低さもあるだろうが、告知がうまくいかなかったのかなと思った。内容がよかっただけに、もったいない。

でもその分、参加者はモチベーションが高い人が多かったようで、既にSolrを使っている人も多く、質問も活発だった。

外国人の参加者も数名いた。翌日のフォーラムに参加していた会社の人達だったみたいだ。

講義は逐次通訳で行われた。内容が難しくなると、翻訳するのが大変そうだった。

アジェンダ

・Intro to Solr
・Basic Indexing
・Basic Searching
・Basic Faceting
・Faceting Deep Dive
・Trie Fields
・Distributed Search
・1.5 Preview
・Questions and Answers

Solrで驚くのは圧倒的なパフォーマンスとスケーラビリティだ。

最後のQ&Aでは、実際に動いている最大規模の構成について話があったのだが、
100個のシャード(shards)に分割して、56億ドキュメントを扱っている事例があるそうだ。
この規模でも、1秒以内で結果を返すらしい。

Solrでは1.4から分散検索(Distributed Search)という仕組みが導入されたのだが、シャードというのはその分散したひとつひとつのサーバーインスタンスのこと。

また、Wikipediaのデータを使って、10億ドキュメントを生成し、100シャードに分けてEC2上でテストしたときは、平均のレスポンスが50ms未満だったらしい。

Solrは扱いやすく、高性能、高機能で、他のオープンソース検索エンジンとは一線を画す検索エンジンだ。
日本ではSennaやHyper Estraierが有名だが、数百万の文書ならともかく、もっと大規模な検索を扱うのは厳しい。これからはSolrやLuceneがどんどん使われていくようになると思う。

ただ、国産プロジェクトとは違って、日本語の情報が少なかったり、日本語を扱うノウハウが必要だったりするところがあるのも事実ではある。

僕はなんだかんだで2年くらいSolrを使っているし、数千万件のデータを扱うECサイトにSolrを導入したりしているわけで、そのへんのノウハウもある。Solrの講義や導入コンサルみたいな仕事をすることもできるんじゃないかと、ふと思ったりした。

長くなったので一旦このへんで。

2010年4月19日月曜日

Kindleが早くも故障。そして電話サポートを受ける はてなブックマーク



Reworkを購入して、本格的にKindleを使いはじめた矢先、なんと早くもKindleが故障してしまった。

液晶の上のほうがきれいに長方形の形で白くなってしまって、何も表示されず。

交換してもらえるらしいが、他の人のブログを見ていると、どうもAmazon.comのカスタマーセンターと電話でやり取りしなければいけないらしい。もちろん英語で。英語の勉強をはじめたばかりの自分としては、いきなり高いハードルだ。


ということで、英語でサポートを受けてみた。
しかし、見事に全く聞き取れない。
ゆっくりしゃべってくれとお願いしたのだが、十分速い。
ところどころ聞こえる単語だけをたよりに話す。
伝える方も、ブロークン英語もいいところで、きちんと伝わったのかどうかわからないうちに終了。

正しく処理されたか心配していたが、その後、交換品を送ったとのメールが届いたので、なんとかなったみたいだ。

今回は、自分が思ってた以上に英語が話せないということを実感した。
この敗北感をバネに、今年の目標である英語力向上を、気合を入れなおしていかねば。

ちなみに英語は、TOEICをひとつの指標として使うことにした。
直近の5/30に一度受けて、今年最後の11/28にもう一度受けて、成果を測定するつもり。
自分なりに工夫して、成果が出たらノウハウをシェアしていこうと思う。

おっと、TOEICの申し込みは明日までだ。

2010年4月15日木曜日

Kindleで 37signalsの"Rework"を購入 はてなブックマーク



Kindleを入手して、初めて有料の本を購入した。

購入したのは37シグナルズ「小さなチーム、大きな仕事」の原書"Rework"。

面白いという話は聞いていたので、どうせ読むなら英語の勉強も兼ねて原書を読もう、そしてどうせなら手元にKindleがあるのだし、Kindleで購入体験してみよう、ということで、Kindle購入書籍第1号がこれに決まった。

Kindleの本はたいていサンプルが読めるようなので、まずはサンプルをダウンロードして読んでみる。知らない単語はちょくちょく出てくるが、内容は平易だし、薄い本なので、何とか読みきれるだろう。Kindleならその場で辞書も引けるし。

購入はクリック一発。
こんなに簡単に買えてしまうなんて、手軽であると同時に怖い気もする。油断してるとどんどん購入してしまいそうだ。
アマゾンで最初に本を買った時もその手軽さに驚いたけど、配送の時間もなく、こんなに一瞬で本を(しかも洋書を)入手できるというのは、かなり奇妙な感覚だ。


手持ちのiPod TouchにKindleアプリを入れて、使ってみた。
Kindleで購入した本は、Kindle本体とiPod Touch(やiPhone、iPad、PCなどなど)で同期ができる。

操作性はKindle本体よりiPod Touchのほうが断然いい。特にKindle Storeで本を探すのは、iPod Touchのほうが遥かに楽だ。Kindle本体はページの切り替えが遅い上に、なぜか一覧に本の金額が出てこない。このあたりは改善してほしいところ。

長時間読むときはKindleで、ちょっと読むときはiPod Touchで、みたいな使い方はすごく便利そうだ。

しばらく頑張って活用してみようと思う。

2010年4月6日火曜日

Google App EngineでDjangoを使う(インストールから起動まで) はてなブックマーク



Google App Engine Helper for Djangoというものが用意されているので、それを使って、まずはサーバーの起動までやってみる。
Windows環境。

Djangoのインストール


まずはDjangoのインストール。

Python2.5とGoogle App Engine SDKはインストール済み。(SDKのバージョンは1.3.2 - 2010-03-25)

Djangoの公式サイトから、現在最新の1.1.1をダウンロード。

解凍し、コマンドプロンプトでそのフォルダーに移動したら、以下を実行してインストール。

python setup.py install


以下のように、インストールされたバージョンを確認できる。

>python
Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.VERSION
(1, 1, 1, 'final', 0)


Google App Engine Helper for Djangoを使う


公式ドキュメントのとおり、ヘルパーをダウンロードして、mysiteフォルダーに設置。
サーバーを起動してみる。

python manage.py runserver


ところが、ImportError: No module named ipaddrというエラーが出る。
ipaddrというモジュールがうまく入ってないということらしい。

ここから、easy_installをインストールする。Rubyでいうgemにあたるとのこと。

手順通り、ez_setup.pyをダウンロードして、以下でインストール。
python ez_setup.py


それから、Scripts(自分の環境ではC:\Python25\Scripts)にパスを通して、

以下のようにipaddrをインストールできればOK。

easy_install ipaddr



もう一度、

python manage.py runserver


とすると、今度は起動できた。

http://localhost:8000/を開くと、It worked!と表示された!
とりあえずここまで。