Catalyst::Model::Estraierでつかっているindexが壊れたっぽい
U隊長がオーブンとドライヤーを一緒に使ったら局所的にブレーカーが落ちて、とばっちりでサーバーが落っこちた。
以前にちょっと色々やっててサーバーの電源をUPSのバッテリ側に差してなかったっていう僕の落ち度もあるんだけど、Estraierのindexが壊れたっぽい。
今日はもうやる気が起きないので、来週なんとかする。
Lingua::JA::TFIDFとCatalyst::Model::Estraierで類似エントリを探す
こんな感じで過去に書いた類似のエントリ出すようにしたい。
TF-IDFで特徴語を抜き出す。
my $calc = Lingua::JA::TFIDF->new;
my $result = $calc->tfidf($text);
my $query_keywords = "[SIMILAR] ";
for (@{$result->list(5)}) {
my($key,$val) = each(%$_);
$query_keywords .= "WITH " . int($val) . " $key ";
}
とやってクエリをモデルのほうに渡せばOKっぽいんだけど、Hyper EstraierのほうをP2Pで動かしてないんだったヨ。
イントラでクローラはしらせているのでじゃぁperlバインディングからでもと思ったが、ちゃんと入ってないっぽくてこけてる。
そのうちP2P対応させようということで、途中までのメモ。
DrkcoreにTypePad Connectのコメント機能導入
TypePad Connect Betaを入れた。
コメントっていうのは結局URIに対するコメントなんだから(はてなブックマークなんかはそれが顕著にでている気がする)、それを担当する外部のサービスはなんか出るんだろうなぁなんて漠然と考えていたけど、実際でてみるとなかなかいい感じ。
あとは、コメントサービスを押さえたとしてどういったメリットがあるんだろうか的なあたりに結構興味があったりしますな。トラックバックよりは緩いつながりに関する情報が手に入るってことなのかな。
レイアウトなどを変更
javascript周りをjQueryに変えようとごそごそいじってたのだけど、途中でレイアウトいじりだしてしまった。段落の始めにインデントが入ってないのが前から気になっていたのだけどそれもついでになおした。
openidが気になったので調べてみた
突然、無性に気になって仕方がなくなったので。
OpenIDの仕様と技術を一通り読んだ。連載は分かりやすかったが、 第5回がちょっと理解できていないのであとでもう一度。あと、自分で実装してみないと本当に分かったんだか、分かったつもりになってるだけなのか分からないよねってことで、このblogのurlをvoxにdelegateするようにしてみた。
で、bloggerにテストコメントしてみた

上が、kzfm.vox.comで下がblog.kzfmix.com。なんかユーザー名がblogとなっていて気持ち悪い。yahooのopenidだと長い文字列の羅列でさらにアレな感じが漂っていた。
そしてdrkcoreもCatalyst::Plugin::Authentication::Credential::OpenIDを入れてopenidでコメントできるようにいじる。
ところで、openidってのは、urlに人格っていうかヒトっぽいものの個性みたいのがくっついてるから面白いのかなーなんて思うのですよ。だからイントラでの使用ってのはちょっと想像しにくいですな。例えば顔もあわせたことのない巨大な企業とかで、大多数がイントラブログを書いてる状況とかだと有効なのかななんて思うのだけど。そういう認識でいいのだろうか。
それから、研究シーンとかだと、論文業績を個人ごとに集めたurlをpubmedなり出版社なりがopenidにしといたうえで、ヒトの論文にコメントできるようなサービスを構築すればいいのにと思ったり。結局もうちっとパブリックな査読のシステムとか必要なんじゃないの?とか思うことが多かったりとかするし。
雑誌にIFつけるんじゃなくて個々の論文に対するIFみたいなものつけないと駄目だよねとか思っているので、コメントする側のバックグラウンドとかはっきりしてれば、なんか面白そうな気がするけどねー。
Catalyst本の4章
4章は3章でつくったアドレスブックに色々つけていく
Catalyst: Accelerating Perl Web Application DevelopmentJonathan Rockway
Packt Publishing / ¥ 4,529 ()
通常24時間以内に発送
セッションと認証を入れて、検索とページングを実装。
検索以外はdrkcore作るときにやったのをちゃんと覚えてたので流し読み。検索はDBICのクエリの作り方が参考になった。今度これにも実装してみよう。
flickrの上限いったのでどうしようかと悩んでいる
flickrにパスタの写真を置いたら200枚超えた。これ以上は有料らしい。うーん別にproアカウントにしてもいいんだけど、サーバー立ててるからそっちで管理するようにしてもいいんだよなー(blosxom使ってたときみたいに)。
で、なぜflickr使ってたんだろかって思い返してみると、flickr uploaderはドラッグドロップするだけでいいから便利だったんだと。
つまり、ドラッグドロップできるクライアントを書けばいいんじゃないかってことだ。wxpythonかAIRでやってみれっていう神のお告げに違いない!早速flex3を入れてみたらfcshが同梱されていた。
さらに、ここはひとつCatalyst::Controller::Atompubと組み合わせるべきかもな気がしてきた。
とぅるっとぅー(だっけ?今朝の目覚ましでやってたのは)
といってもDrkcoreにはCatalyst::Plugin::AtomServerを使っていたのだった。
さてこれもどうしようかなぁ。
Catalystでrobots.txt
アクセスログをみてたらDrkcoreのrobots.txtへのアクセスが404なのが気になったので、Catalystでrobots.txtを扱う場合にはどうすればいいんじゃろかと調べた。
単にroot以下に配置すればいいらしい。
早速設定した。
drkcoreにタグのサジェスト機能を入れた
suggest.js - 入力補完ライブラリを使って編集時のタグを候補から選択できるようにした。
これで編集するのは結構楽になった。
あとコメント機能はどうするかなぁ、、、、悩む。個人的にはこんな風に考えていて、特に問題ないだろと考えていたんだけど、、、、これは、プログラマー的な視点というか、多少なりともWebAPIを使う側のかなり一方的な視点なんじゃないかと思わされる出来事が続いた。
なんつーか、Mosaicの頃から全体のリテラシーとしては対して変わってなくて一部だけがのっぺりと。イノベータとアーリーアダプタだけがどんどん先に行ってて、対数正規分布みたいな形になってんのかなぁ。
結局、コメントも実装しといたほうがいいのかなぁ。その場合はhttp://blog.kzfmix.com/comment/1192876427みたいに名前空間きっといてJSON返すようするかなぁ。うーん、commentもモデルとして捉えればいいかな。
WebService::AudioscrobblerをCatalystのModelに
Catalystのモデルを書くの面倒だなーと思っていて、Catalyst::Model::LastFMがあると便利な気がしてたんだけど、微妙に放置してた。
が、Catalyst::Model::Adaptorを使ってみたをみて、コレだーって思った。
$ script/drkcore_create.pl model LastFM Adaptor WebService::Audioscrobbler new
とやるだけで、WebService::AudioscrobblerがCatalystのモデルになる。らくちんだ。
last.fmのチャートを表示するようにしてみた。
おーblur意外に聴いてんな。On The Way To The Clubヘビーローテしてたからかな。
OMRON BZ50T UPS(無停電電源装置)


Think Tank