たけまる / 2007-08
2007-08-31 Fri
_ Catalyst Internals - 処理フロー [perl][catalyst]



今まで Catalyst の内部実装はみないでいたのですが,Atompub を実装するときに目を通さざるを得ませんでした (意外に簡単だった,もっと早く
見とけばよかった…).
今さら Catalyst かよ,という感はあるのですが,ネットに出回ってる情
報は少し古かったりするので (Catalyst::Base が使われていた頃が多い),
少しは意味があるかなと.
長くなるので,数回に分けて書きます.今回は処理フローのメモです.
《続きを読む》
2007-08-30 Thu
_ マルチキャストの歴史に学ぶ研究開発戦略



めずらしく,Atom でも microformats でも Senna でもない話題です.6月に母校で行った講義スライドが公開されていたので紹介です.昔とっ
た杵柄でマルチキャストや Peer-to-Peer を題材としていますが,なぜか
Management of Technology (技術経営) っぽい内容だったりします.
# そういう教育を受けたこともないのに,いいのかなぁ..
キーワードは,"イノベーションのジレンマ" とかでしょうか.ちなみに,
イノベーションのジレンマについては,↓がわかりやすいです.
Life is beautiful: 図解、イノベーションのジレンマ
概要はこんな感じ.
マルチキャストの世界では,他分野で起きた破壊的イノベーションによっ
てメインプレーヤが変わりつつある.マルチキャストは 20年にわたって
研究開発が行われてきた技術分野であるが,その歴史は決して順調であっ
たとはいえない.現在から振り返ると不合理にみえる戦略が,当時どのよ
うにして選択されたのか.イノベーションが他分野で起こったのはなぜか.
技術経営 (Management of Technology) の知見を交えながら,マルチキャ
ストの研究者が採り得た戦略について検討する.さらに,自らが戦略を立
てるときの考え方を紹介する.
情報学科 修士 の学生が対象でした.アンケートをみる限り,評判はよかっ
たようです.こんな話でよければ声をかけてください.喋りにいきます.
スライドは↓です.
マルチキャストの歴史に学ぶ研究開発戦略
2007-08-24 Fri
_ Senna - BOOLEAN MODE で Can't find FULLTEXT index を回避できる? [senna]



[2007-08-06-1] で,"Can't find FULLTEXT index matching the columnlist" エラーを回避する方法を紹介しました.このエントリに対して,
id:aki77 さんから,はてブでコメントをいただきました.
はてなブックマーク - たけまる / Senna - 2ind 機能の奇妙なノウハウ
"Can't find FULLTEXT index matching the column list"のケースは
AGAINST('*D+ abc' IN BOOLEAN MODE) で回避できるかも
試してみましたが,うまくいきませんでした.
CREATE TABLE tb (
id INT,
tx TEXT,
PRIMARY KEY (id),
FULLTEXT INDEX USING NGRAM (tx)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO tb VALUES (1,'abc');
INSERT INTO tb VALUES (2,'def');
SELECT * FROM tb FORCE INDEX(PRIMARY)
WHERE id = 1 AND MATCH(tx) AGAINST('*D+ abc' IN BOOLEAN MODE);
1件がヒットするはずですが,1件もみつかりませんでした.2ind_patch
が働いていないのかもしれません.
思い付きで,このクエリの前に,Normal インデックスのみを使うクエリ
を追加してみました.
SELECT * FROM tb WHERE id = 1;
SELECT * FROM tb FORCE INDEX(PRIMARY)
WHERE id = 1 AND MATCH(tx) AGAINST('*D+ abc' IN BOOLEAN MODE);
この順であれば,正しく 1件ヒットします.ただし,AND や OR 検索では
正しい結果を返さなかいようなので,BOOLEAN MODE で使うのは難しそう
です (そもそも実装してないのかも).
2007-08-22 Wed
_ microformats - 電子メールを表す microformats がない? [microformats]



Atompub にかかりっきりで microformats のことをすっかり忘れていたのですが,Big Sky さんのとこで盛り上がっているようなので,また書いて
みます.
Big Sky :: 今さら聞くのは恥ずかしい「microformatsとは何か?」
さて,これまでに,まとまった情報を表す microformats として,hCard
[2007-06-16-1], hCalendar [2007-06-21-1], hReview [2007-06-29-1]
などをみてきました.これら以外にも,hResume (履歴書), hAtom (フィー
ド) などがあります.メーリングリストでは,hAudio, hAlbum, hMovie
hRebuttal, hEvidence, hSource, hConclusion, hArgument, hSet なども
議論されているようです.
The microformats-new Archives
ところが,電子メールを表す microformats って定義されてないんでしょ
うか? 古い技術とはいえ,メールはまだまだ使われると思うし,アーカイ
ブもたくさんあるので,microformats で表せないのは不便です.少し調
べてみた感じではなさそうだし,メーリングリストでも議論されてないよ
うです.
# ご存じの方がいましたら,是非コメント欄にお願いします
というわけで,考えてみました.
《続きを読む》
2007-08-12 Sun
_ Perl - Atompub 0.0.1 リリース [perl][atompub]



Atompub モジュールの使い方シリーズ(2007-09-12 追記) このエントリは,v0.1.0 [2007-09-12-1] の変更に合
わせて修正済みです
[2007-07-31-1] で予定していたように,Atompub 0.0.1 をリリースしま
した.
Atompub
Atompub には,Atom Publishing Protocol (AtomPub) を実装したクライ
アント (Atompub::Client) とサーバ (Atompub::Server) が含まれていま
す.この実装は,先日行われた InteropTokyo [2007-07-30-1] でテスト
されていますので,大きな問題なく動作すると思います.
このエントリでは,Atompub::Client モジュールの使い方を紹介します.
サーバの機能を単体モジュールとして実装するのは難しいので,
Atompub::Server には,mod_perl として動作させるためのハンドラや認
証処理のみを実装しました.残りのサーバ機能は,後日 Catalyst プラグ
インとしてリリースする予定です.
(2007-09-13 追記) Catalyst::Controller::Atompub をリリースしました [2007-09-13-1]
《続きを読む》
2007-08-06 Mon
_ Senna - 2ind 機能の奇妙なノウハウ [senna]



MoSQL [2007-07-04-1] をインストールしてから,全文検索エンジンのSenna を使っています.
2ind 機能とは,
MySQLではクエリを実行する際、1つのテーブルに対してFULLTEXTインデッための機能です.2種類のインデックスを利用するので,"2ind(ex)" とい
クスと他のインデックスを組み合わせて利用(インデックスマージ)する
うようです.たとえば,全文検索結果を日時でソートするときなどに使え
て便利です.
ところが,まだβ版ということで,奇妙な振る舞いをすることがあります.
それを解決するためのノウハウを紹介します.
以下,Senna のインデックスを FULLTEXT インデックス,他のインデック
スを Normal インデックスと呼びます.
目次
- テストした環境 - 2ind 機能の使い方 - "Can't find FULLTEXT index matching the column list" エラーを回避する - 複数の Normal インデックスを使う - まとめ
《続きを読む》
