ブログ  前の月  次の月 

たけまる / 2007-08


2007-08-31 Fri

_ Catalyst Internals - 処理フロー [perl][catalyst]

今まで Catalyst の内部実装はみないでいたのですが,Atompub を実装す
るときに目を通さざるを得ませんでした (意外に簡単だった,もっと早く
見とけばよかった…).

今さら Catalyst かよ,という感はあるのですが,ネットに出回ってる情
報は少し古かったりするので (Catalyst::Base が使われていた頃が多い),
少しは意味があるかなと.

長くなるので,数回に分けて書きます.今回は処理フローのメモです.

続きを読む

Referrer (Inside): [2007-09-02-1] [2007-09-01-1]

2007-08-30 Thu

_ マルチキャストの歴史に学ぶ研究開発戦略

めずらしく,Atom でも microformats でも Senna でもない話題です.

6月に母校で行った講義スライドが公開されていたので紹介です.昔とっ
た杵柄でマルチキャストや Peer-to-Peer を題材としていますが,なぜか
Management of Technology (技術経営) っぽい内容だったりします.

# そういう教育を受けたこともないのに,いいのかなぁ..

キーワードは,"イノベーションのジレンマ" とかでしょうか.ちなみに,
イノベーションのジレンマについては,↓がわかりやすいです.
Life is beautiful: 図解、イノベーションのジレンマ

概要はこんな感じ.

マルチキャストの世界では,他分野で起きた破壊的イノベーションによっ
てメインプレーヤが変わりつつある.マルチキャストは 20年にわたって
研究開発が行われてきた技術分野であるが,その歴史は決して順調であっ
たとはいえない.現在から振り返ると不合理にみえる戦略が,当時どのよ
うにして選択されたのか.イノベーションが他分野で起こったのはなぜか.
技術経営 (Management of Technology) の知見を交えながら,マルチキャ
ストの研究者が採り得た戦略について検討する.さらに,自らが戦略を立
てるときの考え方を紹介する.

情報学科 修士 の学生が対象でした.アンケートをみる限り,評判はよかっ
たようです.こんな話でよければ声をかけてください.喋りにいきます.

スライドは↓です.
マルチキャストの歴史に学ぶ研究開発戦略
Referrer (Inside): [2008-01-31-1] [2007-09-07-1]

2007-08-24 Fri

_ Senna - BOOLEAN MODE で Can't find FULLTEXT index を回避できる? [senna]

[2007-08-06-1] で,"Can't find FULLTEXT index matching the column
list" エラーを回避する方法を紹介しました.このエントリに対して,
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 インデックスを使う
- まとめ

続きを読む

Referrer (Inside): [2007-08-24-1]