トップ(最新) | <前

nDiki : CPAN

CPAN - Comprehensive Perl Archive Network

スポンサード リンク

Related term

2006年4月29日 (土)

最新の Module::InstallPerl 5.005_03 ステ? このエントリーを含むはてなブックマーク

ゴールデンウィークに突入。 9連休を利用して、一気に WiKicker コーディングを企んでいる。

さっそくちょこちょこ修正してパッケージングし、www.naney.orgインストール。 …… Perl Makefile.PL でコケる。

どうも use inc::Module::Install; でエラーを起してしまっているようだ。 Makefile.PL は変更していないので、そうすると Module::Install の問題っぽい。

tarball をパッケージングするホスト側の Module::Install を 0.57 まで落としたところ、Perl 5.005_03 でも通るようになった。

Module::Install is a package for writing installers for CPAN (or CPAN-like) distributions that are clean, simple, minimalist, act in a strictly correct manner with both the ExtUtils::MakeMaker and Module::Build build systems, and will run on any Perl installation version 5.004 or newer. (Module::Install 0.61 より)

とあるように古い Perl もサポートにも気を払っているのが気にいって ExtUtils::MakeMaker から移行しただけにちょっと残念。

今後また 5.005_03 でも動くようになるのか、それとも捨てられるのか要チェック。

スポンサード リンク


[ 4月29日全て ]

2006年6月10日 (土)

Plagger のインストールが大変なので XML::RSSRSS から JavaScript コードへ変換するスクリプトを自作 このエントリーを含むはてなブックマーク

一昨日社内メイン Wiki のレイアウトを変更してサイドバーを設けたので、徐々に増えてきた社内 Blog の ヘッドラインをそこに表示することにした。

最初は Plagger を使ってみようと思ったのだが、依存 CPAN モジュールが多くて CPAN.pm を使ってもなかなかインストールが終わらない。

ということで今回は Plagger を見送って、XML::RSS でちょちょっと aggregator を自作して済ますことにした。

基本的には nDiki 用に書いた「はてなブックマーク上の最新ブックマークを表示するためのコード(2005年5月16日)」をちょっと修正して利用。 HTML フラグメントを生成するかわりに、JavaScript IncludeJavaScript ファイルを生成するように変更した。

これで社内 Blog が読まれる回数も増えるかな。


[ 6月10日全て ]

2006年6月16日 (金)

PAR に関する ActivePerlライセンス このエントリーを含むはてなブックマーク

確認したら ActivePerl Community License v2.1 (ActivePerl 5.8.8.817 はこれ) には PAR (や PerlAppPerl2Exe など) で ActivePerl に含まれているファイルをラッピングしてアプリケーションに含めることができると書いてあった (一部条件あり)。

今まで見落していたよ。

ActivePerl」 + 「The Artistic License 下な CPAN にあるモジュール」 + 「自作コード」を PAR でバイナリ化して配布しても OK ということが分ってちょっとすっきり。


[ 6月16日全て ]

2006年6月28日 (水)

ExtUtils::MakeMaker で prompt このエントリーを含むはてなブックマーク

Perl でy/n 入力やパス入力などを対話的に行う簡単なセットアップツールをたまに書きたくなることがある。 CPAN.pm の初期化や Module::Install で feature の選択の時に入力を求められる形のアレ。

何かいいモジュールがあるのかなと思ったら、上記の2つは ExtUtils::MakeMaker::prompt を使っていた。 灯台下暗し。 ExtUtils::MakeMaker は標準でいつでも使えるから、ちょっとしたデフォルト値付き問い合わせをするのに便利。

@ Perl モジュールインストール時の、対話入力をデフォルトで済ます環境変数

それから PERL_MM_USE_DEAFAULT という環境変数の使い方もチェック。

Perl モジュールインストールする際にいろいろ問い合わせに答えるのが面倒な場合 (どうせ全部デフォルトで OK な時など)、PERL_MM_USE_DEFAULT=1 としておくと ExtUtils::MakeMaker::prompt は入力を省略してくれる。

芋蔓式インストールで大量にインストールする際などに便利。


[ 6月28日全て ]

2006年7月8日 (土)

Perl v5.8.8CGI.pmPATH_INFO 処理の問題にぶつかる このエントリーを含むはてなブックマーク

手元の WiKicker (や DiKicker) で、「C++」という文字列を含む URI にアクセスしたらエラー

 Nested quantifiers in regex; marked by <-- HERE in m//C++ <-- HERE .html$/ at (eval 27) line 7.

正規表現の一部として使う時には \Q...\E していたと思ったが抜けがあったか。 とコードをチェックしてみたが、それっぽいところなし。 そもそも、Perl 5.005_03 だと問題おきていないし。

確認したら CGI.pm の url() の中でのエラーだった。 quotemeta されていない。

Perl v5.8.8 に含まれている CGI.pm 3.15 で問題を確認。3.17 までは駄目で、3.19 以降だと \Q...\E するように修正されている (3.18 は CPAN にないので不明)。

標準 Perl ライブラリバグを踏んだか……。 標準 Perl ライブラリのアップグレードはなにかと面倒なので、システム要件にはしたくはないんだよねぇ。


[ 7月8日全て ]

2006年7月22日 (土)

Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 このエントリーを含むはてなブックマーク

入社してから社内情報共有の一環として

といろいろ手をつけてきた。 次に狙っているのは SBS である。

Wiki社内 Blog に書くほどではないけれどメモ程度にブックマークしておきたい URL を、気軽に晒せるようにするのが目的。

はてなブックマークのような公開サービスは

  • タグ・コメント・傾向などが外に出るのはよろしくない
  • あるいは、それを気にして活用されない
  • そもそも社内リソースについてはブックマークできない

という点から、今回は利用できない。

ということで社内に SBS を設置したい考えている。

最初は Scuttle にしてみようと思ったのだが、PHP ベースであるのと MySQL を使うというところで気遅れしている。 いや SQLite でもいけそうらしいということで、実は Debian でちょっと試そうとしたのだが、テーブル作成の SQLMySQL 用で、これを修正するのが面倒なので断念。

次に Perl + SQLite で動く Rubric を試してみることにした。

@ Rubric 0.140

Rubric は CPAN にあがっているので CPAN.pm から install Rubric でインストールできる。 モジュールをインストールしたら、セットアップ。

  1. CGI プログラムを動かすディレクトリを決める (以下 $RUBRIC)
  2. Rubric tarball の bin/rubric.cgi を $RUBRIC/ にコピーし、必要なら #! を修正する。
  3. Rubric tarball の templates ディレクトリを $RUBRIC/ にコピーする。
  4. Rubric tarball の style/rubric.css を $RUBRIC/ にコピーする。
  5. Rubric tarball の etc/rubric.yml を $RUBRIC/ にコピーして環境に合わせて編集する。
  6. データベースを初期化する。0.140 には makedb.pl が同梱されていないので、0.13_01 の bin/makedb.pl を参考に perl -MRubric::DBI::Setup -e 'Rubric::DBI::Setup->setup_tables' で初期化する。ちなみに 0.140 付属の rubric コマンドで rubric db -s してみたが、これはうまく動かなかった。
  7. 必要に応じて .htaccess を作成・編集し rubric.cgi を CGI プログラムとして実行できるようにする。またその他アクセスされたくないファイルを deny するようにしておく。

これで OK。

rubric.cgi にアクセスしページが表示されればひとまず成功。 メニューの「register」から、ユーザ登録する。 確認用のメールが届くはずだが、面倒くさいのでこれを待たずに

 rubric user -a ユーザ名

でアクティベートする。

Rubric の HTML フォームからのブックマーキングは成功し、うまく動いているようである。 ただし、日本語の処理はどうもよくない。 title や description が化ける。 惜しい。

基本的には UTF-8 ベースでうまくいきそうなのだが、どこかで化けるようだ。 ちょっと手を入れれば直るかなと思ったが、化けるところと化けないところとがあるので逆に直す場所が多そうなので今日はやめておくことにした。

とりあえず Rubric はおいておいて、他のものも試してみることにするか。


[ 7月22日全て ]

2006年9月5日 (火)

WiKicker 0.37 リリース - 主に添付関連の機能を改良 このエントリーを含むはてなブックマーク

24時を過ぎたので、日付的には9月6日のリリース。

主に添付関連の機能を改良。 それから設定ファイルに BOM があっても問題ないように動くように改良。 BOM 対応は他のデータファイルもおいおい対応したい。

認証/承認機能についてはなかなか進まず。この間 DBIx::ClassCPAN からインストールしようとしたら make test でこけるし。 DBIx::Class は依存モジュールも多くいろいろ面倒なので、やっぱりやめた方がいいかなと思いつつある。 素の DBI でいくべきか?


[ 9月5日全て ]

2006年12月13日 (水)

wxPerl PPM パッケージ このエントリーを含むはてなブックマーク

PAR リポジトリでいろいろ遊べそうなので、GUI 作成に wxPerl の方も久しびりにまた使おうかなと。

ただ wxPerl の本家が配布しているビルド済み PPM パッケージは、いまだに Wx 0.26 + wxWidgets 2.6.2 だったりして使う気になれない。 かといって、自分でビルドするのも結構手間だし。

で探していたところ Wx::Perl::Packager の開発者が、自身のサイトで PPM パッケージを配布しているのを発見。

最新のパッケージがあるのが嬉しい。

というか12月12日 にリリースされた wxWidgets 2.8.0 と、 CPAN にもまだない CVS 版 Wx (次の 0.66 のためのスナップショット)が、同じ12月12日に公開されているという早さ。

これがあれば、最新の機能が堪能できそうだ。


[ 12月13日全て ]

2007年4月3日 (火)

WiKickerJSON でのページ出力機能を追加 このエントリーを含むはてなブックマーク

最近は DiKicker ばかりに手を入れていたが、久しぶりに WiKicker の改良も行っている。 しばらく前から実装を始めていた JSON 形式での出力機能が今日完成。

今までは WikiPage について

  • HTML 形式による出力
  • Wiki 文法で書かれている生テキスト形式による出力

という2つの出力形式を持っていたので、JSON が加わることで3つめとなる。

@ サーバ側で WikiPage の構文解析まではやる

クライアントサイドの JavaScript でページの内容に合わせて様々な処理をできるように、サーバ側で構文解析まではしてあげるというのが主な目的。

JavaScript でまたパーサを書いてメンテしていくのも大変なので、その部分はサーバでやってしまおうかと。 構文解析した結果の解析木を JSON 形式で返して、JavaScript 側であとはお好きにという形。

@ CPAN にある JSON モジュールを使用

サーバ側の Perl プログラムには、構文解析をして解析木を作れるようになっている。 この解析木から Visitor パターンで JSON 形式を生成していく。

依存モジュールを増やすことを避けるべく、最初は自前で JSON 形式に変換していこうと思ったのだがやっぱり面倒だった。 ということで CPAN にあるモジュールをチョイス。

JSON 関連では JSONJSON::Syck、JSON::PC などがあるが今回はインストールのしやすさを考えて pure Perl モジュールとして実装されている JSON を採用することにした。

Visitor クラスで解析木を無名ハッシュ/無名配列のツリーに変換して、JSON モジュールに流しこめば OK。

 use JSON;
 my $json = JSON->new(pretty => 1);
 my $js = $json->objToJson($tree);

WiKickerフレームワークにはフォーマット別に出力を切り換える機構があるので、これに JSON を追加して application/json で送るようにして完成。

ちなみに残念ながら JSON 1.07 は Perl 5.005_03 では make test が fail するので、NaneyOrgWiki では使えない。


[ 4月3日全て ]

2007年4月7日 (土)

携帯電話(iモード)から Twitter を更新する このエントリーを含むはてなブックマーク

Twitter をいろいろ遊んでみて「やはり携帯電話から更新できないと」と思えてきた。

携帯電話からメールを送る事で Twitter にアップデートをかけてくれるゲートウェイを設置できれば一番いいのだけれど、そのようなメールアドレスを作る場所が今はない(さすがに会社のサーバはまずい)。

ということでiモードから更新をかけられるように短い CGI プログラムを書くことにした。 CPAN には Net::Twitter という Perl モジュールがあるのだが、JSON::Any (と JSON::XS / JSON / JSON::DWIW / JSON::Syck のどれか)が必要で、ちょっと大げさなので今回は使用は見送り。 普通に CGI.pm と LWP::UserAgent で書いた。

 #!/usr/bin/perl -w

 use 5.005_03;
 use strict;
 use CGI qw(-no_xhtml);
 use Jcode;
 use LWP::UserAgent;

 my $query     = CGI->new;
 my $user_name = $query->param('u');
 my $password  = $query->param('p');
 my $status    = $query->param('s');

 $user_name = '' unless defined $user_name;
 $password  = '' unless defined $password;
 $status    = '' unless defined $status;

 my $message = '';

 if ($user_name ne '' && $password ne '' && $status ne '') {
   my $ua = LWP::UserAgent->new;
   Jcode::convert(\$status, 'utf8', 'sjis');
   $ua->credentials('twitter.com:80', 'Twitter API', $user_name, $password);
   my $request = $ua->post('http://twitter.com/statuses/update.json',
                           {status => $status . ' '});
   if ($request->is_success) {
     $message = '<p>OK</p>';
   }
 }

 print $query->header(-type => 'text/html', -charset => '');
 print '<html><head><title>Twitter update</title></title><body>';
 print '<form method="post" action="twitter">';
 print 'ユーザ名:',   $query->textfield('u'),      '<br>';
 print 'パスワード:', $query->password_field('p'), '<br>';
 print 'ステータス:', $query->textfield('s'),      '<br>';
 print '<input type="submit">';
 print '</form>';
 print $message;
 print '</body></html>';

とりあえずこれで、iモードから送信できることを確認。 パスワードの入力が面倒だけれども、サーバ側に書いておくのも嫌なので毎回送ることにした。FOMA 端末側には定型文として保存しておく以外にいい手はないのかな。

最初うまく送れなくてなんだろうと思ったが、あきやん氏の「Twitterで日本語を入力する方法 (akiyan.com)」の記事にある

  • 全て全角文字で入力して、最後に半角スペースをいれる
  • 半角全角を混在させるときは、半角文字と全角文字の間にスペースをいれる

といった日本語を入力する際の注意点がらみだったようである。 とりあえず CGI プログラムの方で最後に必ずいわゆる半角空白を追加するようにしておいた。

文字数チェックとか Twitter API の返り値チェックとか、改善すべきところはいろいろあるけれど、自分用にはまずこれでいいかな。

気が向いた時に外出先から更新かけます。


[ 4月7日全て ]

Related web page

CPAN::Mini と glastree をつかって CPAN のデイリースナップショットを作ろう! - perl-mongers.org
<strong>CPAN</strong>::Mini って便利ですね。 <strong>CPAN</strong>::Mini って何をするモジュールかというと、<strong>CPAN</strong> に登録されているモジュールの最新版をまるごと取ってくる便利なモジュールです。(<strong>CPAN</strong>::Mini について詳しくは、富田さんの use <strong>CPAN</strong>::Mini; - 今日の<strong>CPAN</strong>モジュール をごらんください) <strong>CPAN</strong> のデイリースナップショットがほしい 日頃使っている <strong>CPAN</strong> モジュール群に大きな変更が入るとしたら、確実に動くこと
http://perl-mongers.org/2008/06/daily-archive-of-cpanmini-with-glastree.html
たけまる / cpan2pkg - .deb を賢く自動作成
<strong>CPAN</strong> モジュールを .deb にするスクリプトを作りました.単純に .deb に まとめるだけでなく,もう少し賢く振る舞ってくれます. # 同じことをしている人はたくさんいそうだし,ツールも公開されているの # かもしれませんが,見つからなかったので作ってみました.より良いもの # をご存じの方がいましたら教えてください. 開発環境のモジュール構成を忠実に再現したいときに
http://teahut.sakura.ne.jp/b/2008-03-31-1.html
忘れたときに備えた記録 - Debian で CPAN
dh-make-perl
http://www.hinet.mydns.jp/~hiraku/tDiary/?date=20070414#p03
shrkwの記録 - CPANのオフラインモード
内から外が見えないサーバがけっこうあって、そういうサーバに<strong>CPAN</strong>モジュールを入れるときはひとつひとつ、configure, make, make installしてたけど、CDBIとか、ましてやSVKを入れるときにいい加減ウンザリしたので、調べてみたら、nDiki: 野良パッケージと依存 Perl モジュールのインストールセット を<strong>CPAN</strong>... (2006-02-11)にバッチリ書いてあるし、これも<strong>CPAN</strong>のドキュメント嫁って話でした。
http://d.hatena.ne.jp/shrkw/20060710/1152712358
CPANモジュール「Flickr::Upload」を使う
にあるとおり、dh-make-perlという、 <strong>CPAN</strong>モジュールを<strong>CPAN</strong>のサイトからひっぱってきてdebパッケージにしてくれるツールを使います。 まずSynapticで dh-make-perl liburi-perl(XML::Parser::Lite::Treeが依存) libsoap-lite-perl(XML::Parser::Lite::Treeが依存) をインストールします。 後はdh-make-perlを使って XML::Parser::Lite::Treeのdebパッケージ作成およびインストール。 (XML::Parser::Lite::TreeはSynapticではインストールで
http://elsal.jocv.net/linux/ubuntu/flickrupload.html
CPAN.jpの人
http://d.hatena.ne.jp/s025236/20060113
CPAN モジュールがインスコされたパスを調べる時 - にぽたん研究所
いつも、インスコした <strong>CPAN</strong> モジュールの .pm ファイルがある場所を探すのに、今までいい方法が思いつかずに % perl -MDBIx::Class -e&#39;print $INC{&quot;DBIx/Class.pm&quot;}, &quot;&#92;n&quot;&#39; こんなんしてたわけだが、よくよく考えたら、こんな方法でイケることに気付く。 % perldoc -ml DBIx::Class あぁぁ、今まで同じ結果を求めるために、なんであんなに苦労していたんだろう…。 ちょっと .pm を書き換え
http://blog.livedoor.jp/nipotan/archives/50146747.html
memo.xight.org - Debian GNU/LinuxでCPANに登録されているモジュールをインストールする
http://memo.xight.org/2004-10-26-5.html
IBM dW : Linux : Perlモジュールの展開を自動化する - Japan
CPAN
http://www-6.ibm.com/jp/developerworks/linux/050325/j_l-depperl.html
naoyaのはてなダイアリー - CPANモジュールの contribute
ところで、livedoor のエンジニアあるいは元 livedoor の方々には <strong>CPAN</strong> Author が結構たくさんいらっしゃいます。はてなでも、Perl コミュニティあるいは <strong>CPAN</strong> にはかなりお世話になっているので、自分たちの成果をいくばくか還元できないか、と考えています。 目下の目標は、はてな記法の parser とはてなのウェブアプリケーションフレームワークのオープンソース化で、前者は少し進捗
http://d.hatena.ne.jp/naoya/20050622/1119392029

■よく検索されるキーワード

torrent(68) perl(60) windows(51) cvs(42) linux(41) 書き方(39) ganttproject(33) アジェンダ(26) debian(25) 使い方(24) 提案書(20) サンプル(19) java(19) ドラマ(17) tc-1(17) x31(16) 壁紙(16) google(16) ほぼ日手帳(16) subversion(15) バッグインバッグ(14) ヨドバシカメラ(14) 2009(14) 設定(14) firefox(13) 秋葉原(13) ssh(13) 修理(13) バッグ(13) インストール(12) 動画(12) svn(12) usb(12) 影舞(12) ファイル(11) rcs(11) ほぼ日(11) アジェンダとは(11) wiki(11) c#(10) ダイソー(10) thinkpad(10) centos(10) 無印(9) 価格(9) 画像(9) 手帳(9) activeperl(9) apache(9) 市原隼人(9) リフィル(9) ミノルタ(9) 冷蔵庫(9) 作り方(9) tortoisesvn(9) 大井町(9) ほぼ日手帳2009(8) gmail(8) 生年月日(8) truecrypt(8) mailpia(8) so905ics(7) cgi(7) スーベレーン(7) mew(7) spidermonkey(7) emacs(7) ご査収(7) ダウンロード(7) パスワード(7) テンプレート(7) cygwin(7) chrome(7) make(7) suunto(7) gimp(7) 評判(7) gtd(7) 写真(7) 方法(7)

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 0.14207s / load averages: 0.56, 0.46, 0.49
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)