2009/09/14
こまなし
※「こま」って関西オンリーぽい
そろそろこまなしで乗れる様にしなきゃいけないし、本人も望んでいた。
フラフラと倒れそうになりながら、私に支えられながら、なんとか家まで帰り付いた。
家に帰ってから、「そういえば、プログラマって職業でもこういった時期ってあるんだろうか。どんな時期がこまを取る時期なんだろ。」って考えた。
先輩から与えられた仕事だけをコツコツとこなした頃から、自分で自分がやらなきゃいけない仕事を見つけ出せる頃までにあるのか...
はたまた、顧客から言われた仕様を信じて開発していた頃から、顧客とヒアリングして仕様を煮詰められる様になれる頃にあるのか...
別にこまが付いたままでも何処までだって行けるだろうし、速度も出せるだろう。
実際、ウチの子もこまが付いたままでも結構なスピードが出せる。
しかしながら、自分で「もっと上手く乗りたい」って望んだからこそ「こまを取りたい」という気持ちが沸いて来たんだろうな。
コケても泣かないウチの子に、少しだけ成長を垣間見た。
2009/09/07
Google Reader Full Feed for Chrome作った。
しかしながらGoogle Chromeに移植するとなれば簡単には行かないだろう事が分かっていたので移植するのを躊躇していました。先日、はてなブックマーク数を表示するGoogle Chrome Extensionも作った事だし、少しは知識もついたので、ようやく重い腰をあげて作ってみました。
最初は移植を考えてましたが、結構元にしているLDR FullFeedのコードがまばらになっていてメンテナンス性も悪かったので、今回は元のコードを捨てて1から作り直しました。とはいっても中で使っている部品などはConstellationさんの物や、os0xさんの物を使わせて頂いています。感謝
画面キャプチャは以下みたいな感じです。
操作感はFirefox版とほとんど同じになってます。
今のところ、残課題はSITEINFOをGearsを使ってキャッシュする事くらいだと思ってますが、もしよければ使ってみた感想など頂けると助かります。
ソースは例のごとく、githubに置いてあります。
mattn's chrome-grff at master - GitHubインストールは以下のリンクから...
google reader full feed for chrome
http://github.com/mattn/chrome-grff/tree/master
chrome-grff.crx追記
キーは g じゃなく、z ですので、お気をつけて。
訳:Installing Perl modules without root access
ここ2、3年にわたって、Perlでの開発はCatalystやDBIx::Class、Moose等のエキサイティングな新技術により変わってました。
しかしながら、これらや他のツールに共通して言える事が1つあります - それらはこれらがPerl本体の配布物ではなくCPANの一部という事です。共有ホスティングサーバなど信頼されている環境においては、ユーザはルート権限なしでCPANモジュールをシステムにインストールする事が難しいでしょう。 ただ幸い、単純解があります - それが local::lib です。
local::lib の紹介
local::lib は CPAN ディストリビューションをホームディレクトリににインストールできる様にあらゆる設定を行うPerlモジュールです。これはルート権限が必要ない事を意味していて、システムのPerlや他のユーザに干渉せずに確実にインストール出来る事を意味しています。
もちろん、local::lib それ自信も root 権限なしにインストール出来る為、システム管理者を苦しめる必要性は全くありません。
インストールウォークスルー
クリーンインストールされた Ubuntu 9.04 で local::lib 使用するデモンストレーションを行います。
まず最初にhttp://search.cpan.org/dist/local-libで最新版をダウンロードしデスクトップへ .tar.gz を保存します。
次に、Terminalセッションを開いて、以下のコマンドを入力してアーカイブを解凍します:
cd Desktop
tar -zxf local-lib-1.004004.tar.gz
cd local-lib-1.004004
"bootstrap"にする事を local::lib に教えてあげる必要があります。これでホームディレクトリにperl5というフォルダが作成され local::lib をそこにインストールする様 toolchain に命令します。
perl Makefile.PL --bootstrap
インストールが自動的に構成される様に一度か二度尋ねられます。デフォルト値('yes')で良いのでただ単にEnterキーを叩きましょう。
設定が終了したら以下のコマンドを入力し local::lib をビルド、テスト、インストールして下さい:
make
make test
make install
もうちょっとです。残りは1工程です。インストールされたモジュールがどこに保存されるかを Perl に教えてあげる為に幾つかの環境変数を設定します。
echo 'eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)' >>~/.bashrc
全て完了です。実行していたターミナルウィンドウを全て閉じて、新しい設定が反映される様に、新しいTerminalセッションを開きましょう。
local::lib のテスト
ちゃんと動くか簡単なモジュールをインストールしてみましょう。新しいターミナルウィンドウを開き、CPAN シェルを起動します:
perl -MCPAN -eshell
CPAN プロンプトが開き、以下を入力します
install Acme::Time::Baby
モジュールをダウンロードしてビルド、テスト、インストールします - マニュアルを見ることもないでしょう。exit をタイプして CPAN シェルから抜けたら簡単なワンライナーでインストールされたモジュールをテスト出来ます:
perl -MAcme::Time::Baby -E 'say babytime'
CPAN を恐れるな
さて動作確認です。Catalyst をインストールしましょう。
Catalyst は多くのモジュールに依存した巨大なモジュールですが CPAN.pm でセットアップするので問題はありません。しかしながら初期状態では、CPAN シェルが依存を見付ける度にインストールすべきかどうか尋ねて来て、とても退屈になります。最初ですから自動的に依存に従う様 CPAN.pm に教えてあげます。
perl -MCPAN -eshell
o conf prerequisites_policy follow
o conf build_requires_install_policy yes
o conf commit
注意 それでも時折、モジュールがそれら自身の構成に依存した質問をして来るので何が起きるか目を光らせておくべきでしょう。
インストールを開始する準備が整いました。
install Catalyst::Devel
CPAN.pm が全ての Catalyst 依存モジュールをビルドしてくれます。少々時間が経って、以下のメッセージが出ていればインストール成功です:
FLORA/Catalyst-Devel-1.19.tar.gz
/usr/bin/make install -- OK
ちゃんと動作しているかを検証するので CPAN シェルを終了して新しい Catalyst アプリケーションを作成しましょう。
~/perl5/bin/catalyst.pl MyApp
cd MyApp
perl Makefile.PL
注意 catalyst.pl スクリプトは ~/perl5/bin ディレクトリにあります - ここが local::lib の標準的なスクリプトインストール先です。
Catalystアプリケーションはスタンドアロンの開発用サーバを含んでいるので、簡単にアプリケーションを実行できます:
script/myapp_server.pl -r -d
これで http://localhost:3000をブラウズすれば、光り輝くCatalystのテストページが表示されます!
Notes
-
いくつかの Perl モジュールは速度を向上やC言語のライブラリ関数と強調する為にC言語で書かれています。CPANの全てを使用するにはCコンパイラをマシンにインストールする必要があります。Linuxや他のUNIXシステムで大概Cコンパイラが既にインストールされていますが(which ccをタイプしてみましょう)、そうでない場合でもベンダは GCC パッケージを提供しているはずです。Macでは Xcode developer tools (OS XをDVDからインストール)をインストールすると必要な物は全て揃うでしょう。
-
私がテストで使用しているシステム Ubuntu 9.04 は Perl 5 version 10.0 を含んでいます。以下のコマンドで Perl がどのバージョンかをチェックできます。
perl -v
もし Perl 5 のリリースよりも古い物、すなわち v5.8.9 以前のバージョンをお使いであれば、システム管理者かOSベンダーにアップグレードを求めるべきしょう。 Perl5 version 10.0 では smart matching、named regex captures、a switch statement や state variables といった多くの新機能が導入されています - http://perldoc.perl.org/perl5100delta.html を参照してと全ての新機能を確認して下さい。
-
インストール済みのモジュールを全て削除してやり直すのであれば、ローカルの ~/.cpan と ~/perl5 ディレクトリを削除するだけです:
rm -rf ~/.cpan
rm -rf ~/perl5
そして ~/.bashrc を編集し以下の行を削除します:
eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)
以上に示した手順で local::lib がインストール出来ます。