2006年07月17日

Catalyst 5.7 へのバージョンアップ対策

最新LLフレームワークエクスプローラ 〜Ruby on Rails(Ruby),Maple/Ethna(PHP),TurboGears(Python),Catalyst(Perl) 5大フレームワーク徹底攻略というムックでCatalystについて書きました.書いたときには最新だった5.6902を使っていたんですが,すでに5.7がでてしまい,中身が古くなってしまいました.というわけで,少しづつですが,修正版用のメモを書いてみようと思います.

install方法

今まではBundle::CatalystやTalk::Catalystを使っていたんですが,5.7ではMatt Trout氏が作成したcat-installという専用のスクリプトが用意されています.
# perl cat-install
# perl -MCPAN -e 'install Catalyst::Devel'

そうそう,今まではCatalystというパッケージだったのですが,5.7からはCatalyst::DevelというパッケージとCatalyst::Runtimeというパッケージに分かれています.まだ中身を調べていないのですが,開発時点ではCatalyst::Develを使い,Catalyst::Runtimeを使うってことではないかと.今までCatalystのインストールはエラーとの戦いだったのですが,このやり方ではエラーはでませんでした.試してみたのは,zaurusu+openbsdとmac os xです.

既存アプリケーション利用

バージョンアップに伴う問題といえば,既存アプリケーションが動くかどうかということです.今回のムック用に作ったスクリプトはどうなるでしょう.で,実際にscript/minimojo_server.plを起動してみると,とりあえず動くようです.

> script/minimojo_server.pl
[debug] Debug messages enabled
[warn] You are running an old script!

  Please update by running (this will overwrite existing files):
    catalyst.pl -force -scripts MiniMojo

  or (this will not overwrite existing files):
    catalyst.pl -scripts MiniMojo

でも,こんな↑ワーニングが出てきました.とりあえず,後者を実行してみると
> catalyst.pl -scripts MiniMojo
 exists "MiniMojo/script/minimojo_cgi.pl"
created "MiniMojo/script/minimojo_cgi.pl.new"
 exists "MiniMojo/script/minimojo_fastcgi.pl"
created "MiniMojo/script/minimojo_fastcgi.pl.new"
 exists "MiniMojo/script/minimojo_server.pl"
created "MiniMojo/script/minimojo_server.pl.new"
 exists "MiniMojo/script/minimojo_test.pl"
created "MiniMojo/script/minimojo_test.pl.new"
 exists "MiniMojo/script/minimojo_create.pl"
created "MiniMojo/script/minimojo_create.pl.new"

となりました.あら,新しくできたファイル群,実行権がついてない.それはともかくscript/minimojo_server.pl.newを実行してみると,ワーニングが消えて問題なく動きました.

とりあえず,今日はこんなところまで


k_daiba at 23:05|この記事のURLComments(0)TrackBack(0)perl 

2006年06月14日

WikiCalc

On Off and Beyondを読んで気がついた(そういえば昨日そんなの知らないっていう会話をしてたなと)んだけど,VisiCalcを作ったDan Bricklin氏がWikiCalcのベータ版をリリースしている.使用言語はPerl.

で,さっそくダウンロードしてソースを見てみたら,ものすごく読みづらい.ベースはCGI.pm.あちこちにprint文が入っていて,そのうえ独自のテンプレートを使ってる.Ajaxも使ってるけど,
 // Create a new XMLHTTP request object
 if (window.XMLHttpRequest) { // Mozilla, Safari,...
なんてコードがWKCjs.txtの中にベタで入ってる.

どうしてフレームワーク使わないんだろうなぁ.CPANモジュールはいくつも使ってるみたいなのに.周りに教えてくれる人がいなかったのかしらん.

screencastを見ると,使い勝手はよさそうなので,Catalyst使って作り直してみようかしらん.動くものがあるから,どう作ればいいのかは見当つくだろうし,自分の勉強にもなりそう.でも,似たようなことを考える人はおおいだろうから,もう始めてる人がいるかな.

# 最速の人とか?

Catalyst::Plugin::Prototypeとか使えばAjaxの部分は楽できそうだし,Spreadshee::WriteExcelとかSpreadsheet::ReadExcelとか使えば,CSV使わずにexcelからのインポート,エクスポートもできるだろうしなと.

とりあえず,中身調べて,まとめて見るか…

k_daiba at 15:47|この記事のURLComments(0)TrackBack(0)perl 

2006年05月30日

"_<-e" って何だ?

perlのシンボルテーブル,main::配下に何があるんだろうと思ってふと実行してみた
perl -e 'map{printf "%s!=!%s ", $_, ${'main::'}{$_}}(keys %{'main::'})'

すると結果は
/!=!*main::/
stderr!=!*main::stderr
utf8::!=!*main::utf8::
"!=!*main::"
CORE::!=!*main::CORE::
DynaLoader::!=!*main::DynaLoader::
stdout!=!*main::stdout
attributes::!=!*main::attributes::
!=!*main::
stdin!=!*main::stdin
ARGV!=!*main::ARGV
INC!=!*main::INC
_<-e!=!*main::_<-e
ENV!=!*main::ENV
Regexp::!=!*main::Regexp::
UNIVERSAL::!=!*main::UNIVERSAL::
$!=!*main::$
_<perlio.c!=!*main::_<perlio.c
main::!=!*main::main::
-!=!*main::-
_<perlmain.c!=!*main::_<perlmain.c
PerlIO::!=!*main::PerlIO::
_<universal.c!=!*main::_<universal.c
0!=!*main::0                                                                   !=!*main::
@!=!*main::@
_<xsutils.c!=!*main::_<xsutils.c
STDOUT!=!*main::STDOUT
IO::!=!*main::IO::
!=!*main::
_!=!*main::_
+!=!*main::+
STDERR!=!*main::STDERR
Internals::!=!*main::Internals::
STDIN!=!*main::STDIN
DB::!=!*main::DB::
<none>::!=!*main::<none>::

なんだか予想外に沢山ある.う〜ん,何みると意味がわかるのかしらん.

k_daiba at 00:12|この記事のURLComments(0)TrackBack(0)perl 

2006年05月28日

perl6ベースのCMS

perl6-users MLに流れてたんだけど,perl6ベースのCMSってのがすでにあるらしい.

Kontent is a web content management system written in Perl 6. It is currently executable in Pugs installations with Parrot available; the storage subsystem included in this installation also requires the Perl 5 interop feature, but an alternate system could be written.

p6ベースのwikiを作りたいっていう話から,これをベースにしてみたら,って話がでてきていた.macでp6が動くようになったみたいだし,後2週間ぐらいしたら時間ができるから,遊んでみようかな.

# 2週間経ったら,また別のネタではまってそうな気もするけど…


k_daiba at 00:11|この記事のURLComments(1)TrackBack(0)perl 

2006年05月27日

世界を旅する人向け

今日見つけたサイトにこんなのがあった

Seattle-based Farecast, now in private beta, is an airfare pricing comparision tool that also uses a predictive algorithm to recommend when you buy your ticket. So the idea is to show the user not just who has the cheapest ticket, but whether or not waiting might make sense as well.

エアチケットの比較サイトなんだけど,いろんな会社の価格アルゴリズムを勘案して,一番安く買える時期も提示してくれるらしい.便利だとは思うんだけど,休みの旅行には使えないかな.だって,ホテルが取れなかったらおじゃんだもんね.

2006年05月17日

ビデオの撮り方

ビデオ撮るのって難しいっすね.このビデオならpodcast+pdfの方が実用的,ってのはもっともなご意見です.
  1. スクリーンと講演者を撮って,会場音声をカメラのマイクで
  2. スクリーンの文字が小さくてよく見えないからそっちをアップ
  3. 質疑応答に移ったら講演者にパン
  4. 暗くて講演者がうまく写らなくてばたばた
  5. 資料やdemoでスクリーンを使うと,あわててパン
ってなことをしていました.

カメラは2台あったので,セションが一つのときには,スクリーン専用と講演者専用にしておいて,編集すればよかった,とさっき思いつきました.次にチャンスがあったらやってみよっと.

あ,それともCanon VB-C10(J)ネットワークカメラみたいなのがあればよかったのかな.これなら,カメラ位置をプリセットできるはずだから,ボタン一発でカメラ位置変更可能・・・

だめだ,これにはマイクがない. orz

講演会場に持込で,楽に(人手をかけないで済む)ビデオを撮影する方法ってどんなのがあるんでしょう.ちょっと考えてみるかな.

2006年05月16日

YAPC::Asia 2006 Tokyo の動画をUPしました

archive.orgにYAPC::Asia 2006 TokyoのビデオをUPしました.長らくお待たせいたしました.そして,手伝っていただいた皆様に深く感謝いたします.

ビデオ録画とアップロードは自分からやると言い出したんですが,パソコンで編集したのはひさしぶりだったので苦労しました.デジタルDVからmacのiMovieHDで読み込んだら200GB超えてしまって,慌ててFireWire接続の増設ディスク買ってみたり,圧縮パラメータをどうすればいいのかわからなくて,巨大なファイルを作ってしまったり,逆に圧縮しすぎて何がなんだかわからない映像を作ってみたり.最終的には,ビデオの設定を
  • 圧縮:Sorenson Video 3
  • 品質:中
  • フレームレート:10
  • キーフレームレート:150
  • ビットレート:40キロビット/秒
  • サイズ:240 x 180
音声の設定を
  • フォーマット:QDesign Music 2
  • サンプルレート:32.000KHz
  • 出力:ステレオ(LR)
  • ビットレート:24kbps
として作成しました.

それから,どこにアップロードするかも迷いました.最初はYouTubeを使おうと思ったのですが,著作権侵害問題対策でアップできる尺が10分までになったので,挫折.んで,どこかいいところがないかを探しているときに,miyagawaさんがarchive.orgのことを教えてくれました.アップロード方法を探してみたらccPublisherというツールがあるのを見つけたので,これでアップロードも完璧です.

と,思ったら大間違い.mac用は動かないし,win32用はとろい.orz

そんなこんなで,間違えてWelcomeセッションの動画を2つもアップしてしまいました.これは別に,「DANさん必要ですか」という画面のことを思い出し笑いして,間違ってボタンを押した訳ではありませんw

さらにいうと,間違って登録してしまった動画をどうやって削除するのかわからない.しょうがないので,エラー報告のページで「間違ってアップしてもうたから,消しておくんなまし」みたいなメッセージを投げています.

次にビデオ係をやるときには,もっと計画的にやるぞ! と,心に誓いながら,もう疲れてしばらくやる気がでなさそうなのでした.え〜と,LL Ring企画/運営に全然参加できなくてすみません.m<(_ _)>m

続きを読む
k_daiba at 00:52|この記事のURLComments(0)TrackBack(1)perl 

2006年05月14日

mac での開発方法ってどうすれば?

最近win32からmac os x に生活環境を移しました.だいたい慣れて来たんだけど,開発環境で困っています.私が使っているのは主にperlで,今まではwin32上でActivePerlを,colinux上のdebianでソースからコンパイルしたPerlを使っていました.PerlやCatalystのバージョンを変えてみたいときには,colinux上に複数のdebianイメージを作って作業をしていました.

で,macです.標準で入っているperlとは別にstable版をダウンロードして使っているのですが,いろんなバージョンのCatalystを使いたいと思ったときに困ってしましました.

最初は"Q" をインストールして,その上でdebianを動かせばいいやと思ったんだけど,Perlのコンパイルが通りません.正確には,コンパイルは通るんだけど,make testで引っかかってしまいます.debian標準装備のperlを動かしてみると,YAMLをインストールしようとしたときに,make test がだんまりになってしまいます.雰囲気としては,改行コードかなにかがおかしいような気がするんですが,正体不明.シグナルを待っているような気もします.で,Qemuの問題なのかと思ってVirtualPCを調達し,その上でdebianを動かしてみても同じ問題が発生.

FreeBSDでいうところのjailsのような環境が作れないかと思って,色々ぐぐったんだけど,事例を発見できず.今月一杯ばたばたしていて,時間がとれなさそうなので,しょうがないからパスを変えたperlをいくつかインストールして対応しようとしています.

Professional Mac OS X
買って来たので,「いま知るべきMac OSX」特集読んで,なにかヒントがないか探してみようと思ってます.

Danさんは「HFS+の呪いにやられた!」そうですが,どういう環境を使ってるんでしょうか.なにかいい手がないかなぁ.ちなみに,使っているのはiBookG4です.ppcの問題なのかなぁ〜,それともHFS+か…

2006年05月13日

立花隆はまだいるさ

Danさんがこんなことを書います.

立花隆の真骨頂は、頭にあるんじゃない。足にあるんだ。

ネコビルまで建てて確保した蔵書も、あくまでも食事。それを第一線で活躍する者達への取材という筋トレで肉に変えていたのが立花隆だ。

その彼が取材するのをやめたとき、こうも衰えるのかと愕然としたのが、メディア・ソシオポリティックスだ。

そこまで悲観しなくてもいいんじゃないでしょうか.確かにメディア・ソシオポリティックスだけみてると同じ印象を受けるのですが,SCI(サイ)を見てると,まだまだ「筋トレで肉まで変えてる」という印象を受けます.SCIは学生が作っているサイトですし,NHKの特番についての記事が多いことを考えると,肉体的な衰えをNHKの特番の資金力とか東大の学生の好奇心とかを使って補完しているように思います.

肉体的な衰えは逆行させることができないですから,こういう手法で「自分なりの手法(真骨頂)」を次に残すってのは「あり」かもしれません.とはいえ,もっといいのは誰かと論戦し,撃破されて次の世代に道を譲るってことなんじゃないかと思います.

2006年05月04日

Plaggerが訴えられる日

以前otsuneさんがこんなことを書いていました.

Plaggerはお咎めなしとでも思っているのだろうか?権利処理をまともにやってないのが見え見えなのに

以下の文章を読んでみると,お咎めが来る日は意外と近いのかもしれません.

特定のニュースサイトをクローリングしてRSS/Atom化して、オリジナルのFeedとして勝手に配信したり、自身のアフィリエイトサイトに掲載して金儲けをもくろむ不逞な輩が次から次へと違法行為を働いている

この文章の著者はFeedPath社のCOOで,会社に関しては

朝日新聞の『W杯ドイツ大会特集(URL:http://www2.asahi.com/wcup2006/)』から提供される記事を、GMOアドネットワークスが運営するRSS/Atomフィード(注2)の配信管理システム「FeedBurner Japan(フィードバーナー ジャパン URL:http://www.feedburner.jp)」によって加工し、フィードパスが運営しているインターネットサービス「feedpath(フィードパス)」にのみ配信するというものです。 feedpathでは、記事の著作権に十分配慮した閲覧管理が可能であり、FeedBurnerによって記事自体には広告掲載および、閲覧ユーザー数や利用ブラウザの種類などの効果測定機能が付与されます。

という記事が最近流れています.ここのサイトは,「記事の著作権に十分配慮した閲覧管理」ってことで,Feedの中身をフィルタしないでユーザに全部提示するみたいですから,Plaggerのフィルタリングに相当する機能はないでしょうし,そもそもRSSとしてのGUIがLDのそれに追いつくには時間がかかるように見えます.もちろんbloglinesによりましだとは思います.

で,この会社がGUI面での優位性を確保できない以上,FeedBurnerのようなFeedに権利情報を埋め込むシステムと連携するのが生命線になっていて,
  1. FeedBurnerを通さないでRSSフィードを作るような奴は敵だ
  2. FeedBurnerがつけた宣伝を外すようなフィルタは敵だ
という行動を取っているんでしょう.ってことはPlaggerとは全面衝突.お咎めが来る日がせまってるんじゃないかと想像します.

さぁ大変…

といっても,回避可能だと思います.Plaggerが「FeedPathの生命線になっているFeedBurnerと連携」する機能を持てばいいんじゃないでしょうか.今はFeedBurnerの付けた宣伝を外すフィルタを持っているだけだと思うけど,

FeedBurnerでは、提供しているフィード配信管理システムのAPIを開発者向けに提供します。APIで提供される機能一覧を利用すれば、FeedBurnerの管理画面内のサービスと同等のサービスをプログラムで動かすことができます。

というAPIを利用する仕組みを取り込んでしまえば,
  1. フィルタ外せるけど,それはデスクトップ版のrssリーダーも同じでしょ
  2. CCライセンスをFeedBurner使って埋め込むこともできるんだし,それはその通りに表示してくれるんでしょ
  3. FeedBurnerの使い勝手をよくすることができるんですが,お嫌いなら他のエンジンにも対応しまっせ
というメッセージになって対決は防げるんじゃないかと思います.まったくの取り越し苦労ならいいんですけどね.