2009/09/14


今日、子供の自転車の「こま(補助輪)」を取った。
※「こま」って関西オンリーぽい

そろそろこまなしで乗れる様にしなきゃいけないし、本人も望んでいた。
フラフラと倒れそうになりながら、私に支えられながら、なんとか家まで帰り付いた。

家に帰ってから、「そういえば、プログラマって職業でもこういった時期ってあるんだろうか。どんな時期がこまを取る時期なんだろ。」って考えた。
先輩から与えられた仕事だけをコツコツとこなした頃から、自分で自分がやらなきゃいけない仕事を見つけ出せる頃までにあるのか...

はたまた、顧客から言われた仕様を信じて開発していた頃から、顧客とヒアリングして仕様を煮詰められる様になれる頃にあるのか...


別にこまが付いたままでも何処までだって行けるだろうし、速度も出せるだろう。
実際、ウチの子もこまが付いたままでも結構なスピードが出せる。
しかしながら、自分で「もっと上手く乗りたい」って望んだからこそ「こまを取りたい」という気持ちが沸いて来たんだろうな。


コケても泣かないウチの子に、少しだけ成長を垣間見た。
Posted at by



2009/09/07


個人的には一番使っていて無いとちょっと不便に感じる自作のグリモンといえば「Google Reader Full Feed」なのですが、最近メインのブラウザをGoogle Chromeに変えた事もあり、使えずにちょっぴり不便になってました。
しかしながらGoogle Chromeに移植するとなれば簡単には行かないだろう事が分かっていたので移植するのを躊躇していました。先日、はてなブックマーク数を表示するGoogle Chrome Extensionも作った事だし、少しは知識もついたので、ようやく重い腰をあげて作ってみました。
最初は移植を考えてましたが、結構元にしているLDR FullFeedのコードがまばらになっていてメンテナンス性も悪かったので、今回は元のコードを捨てて1から作り直しました。とはいっても中で使っている部品などはConstellationさんの物や、os0xさんの物を使わせて頂いています。感謝

画面キャプチャは以下みたいな感じです。
chrome-grff
操作感は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 ですので、お気をつけて。
Posted at by




この文章はperl.jonallen.info に掲載されていた記事の和訳です。意訳が含まれている可能性があります。間違いがあればご連絡下さい。
by Jon Allen (JJ) - posted on Wednesday, 26 August 2009

ここ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 を保存します。

search.cpan.org   Downloading local::lib

次に、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
Bootstrapping local::lib

インストールが自動的に構成される様に一度か二度尋ねられます。デフォルト値('yes')で良いのでただ単にEnterキーを叩きましょう。

Automatic CPAN configuration   CPAN config complete

設定が終了したら以下のコマンドを入力し local::lib をビルド、テスト、インストールして下さい:

make
make test
make install

Installing local::lib

もうちょっとです。残りは1工程です。インストールされたモジュールがどこに保存されるかを Perl に教えてあげる為に幾つかの環境変数を設定します。

echo 'eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)' >>~/.bashrc

Setting environment variables

全て完了です。実行していたターミナルウィンドウを全て閉じて、新しい設定が反映される様に、新しいTerminalセッションを開きましょう。


local::lib のテスト

ちゃんと動くか簡単なモジュールをインストールしてみましょう。新しいターミナルウィンドウを開き、CPAN シェルを起動します:

perl -MCPAN -eshell

CPAN プロンプトが開き、以下を入力します

install Acme::Time::Baby
Installing Acme::Time::Baby

モジュールをダウンロードしてビルド、テスト、インストールします - マニュアルを見ることもないでしょう。exit をタイプして CPAN シェルから抜けたら簡単なワンライナーでインストールされたモジュールをテスト出来ます:

perl -MAcme::Time::Baby -E 'say babytime'

Acme::Time::Baby installed!

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

Setting CPAN.pm preferences

注意 それでも時折、モジュールがそれら自身の構成に依存した質問をして来るので何が起きるか目を光らせておくべきでしょう。

インストールを開始する準備が整いました。

install Catalyst::Devel

CPAN.pm が全ての Catalyst 依存モジュールをビルドしてくれます。少々時間が経って、以下のメッセージが出ていればインストール成功です:

FLORA/Catalyst-Devel-1.19.tar.gz
/usr/bin/make install -- OK

Catalyst installed!

ちゃんと動作しているかを検証するので CPAN シェルを終了して新しい Catalyst アプリケーションを作成しましょう。

~/perl5/bin/catalyst.pl MyApp
cd MyApp
perl Makefile.PL

Starting a new Catalyst application   Starting a new Catalyst application

注意 catalyst.pl スクリプトは ~/perl5/bin ディレクトリにあります - ここが local::lib の標準的なスクリプトインストール先です。

Catalystアプリケーションはスタンドアロンの開発用サーバを含んでいるので、簡単にアプリケーションを実行できます:

script/myapp_server.pl -r -d

Running the Catalyst development server   Catalyst server running

これで http://localhost:3000をブラウズすれば、光り輝くCatalystのテストページが表示されます!

The Catalyst test page!

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

    Checking your Perl version

    もし 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 がインストール出来ます。

Posted at by