Practice of Programming

プログラム とか Linuxとかの話題

Perl

YAPC::Asia 2007

感想は適当気味。 1日目 英語ばかりでちょっときつかった。 Kwiki and the Symlink デモ動いてなかったけど、依存性を全部リポジトリ内で解決しているから、動きそう。 Spork大好きだし、Kwiki本体も使ってみようかな。 Virtualization and Package Deployme…

Data::RuledValidator::Plugin::Japanese

Data::RuledValidatorのプラグイン。作ってる自分が、FormValidator::Simpleでいいやんとか思ったりしてますが。最近、日本語のチェックを作りました(ぇと、id:lestrratさんから、コメントが。 http://search.cpan.org/~ktat/Data-RuledValidator-Plugin-Ja…

Data::RuledValidator 0.07

テストを結構書きましたが、まだ足りない気がします。 0.06からフィルターの機能を追加しました。こんなルールを書きます。 ;;GLOBAL ID_KEY page filter * with trim page is word ;;hoge i is num n is num w is wordコードはこんなの。 use Data::RuledVa…

固定的なデータに対してフィルタをかけるためのモジュール

固定的な(テンプレートのような)データに対して、必要な箇所にピンポイントで変更を行うためのものです。 データに対するフィルタリング処理は再帰的にデータを調べて、変更していくのが普通だと思いますが、データが大きくなると、コストが高くなってしまい…

Date::Simpleの問題

恥ずかしながら、知らなかったんだけど、Date::Simple内で使われている、POSIX::strftimeが悪さをして、タイムゾーンがおかしくなるという問題があると、会社の人に教えてもらいました。 blogかなんかで言及されてるかと思って探したら下記のところがみつか…

Test::Baseと数字のテスト

Test::Baseを使ってみてます。とても簡単。 use Test::Base; run_is; __END__ === --- i A --- e A意味はないけど。ミニマムだとこんなんでいい。 入力: A+改行 出力: A+改行 が、同じなので、テストはOK。run_is は「同じ」のテストです。 普通は、run_is i…

Shibuya.pm テックトーク #7

EC2 詳しくはよくわからなかった。 オールインワンのインスタンスを起動すると、apache, MySQLとかがいろいろ動くみたいな? lightppd + FastCGI lightppdは設定簡単で、いい感じ。Catalystの開発サーバはしょぼいから捨てて、lightppd使えとか。 FastCGIはm…

Test::Base翻訳

Shibuya.pmの宮川さんのテクニカルトークを受けて、翻訳テンションがあがったので、 訳してみました。Test::Base 0.52(エンコードをutf8に変更してください) http://perldoc.jp/docs/modules/Test-Base-0.52/lib/Test/Base.podTest::Base::Filterもそのうち…

Plagger World Tour in 大阪

関西にも、Plaggerがやってきます。日程的に、さすがに行けないなぁ。

ExportTo 0.02リリース

で、久しぶりに思い出したので、コードをみたら、0.02を書きかけで放置してたので、リリースした。ついでに、use strict忘れてたので追加(ぉ 今回のリリースでは、 sub function{print "hoge"} use ExportTo(NameSpace => {func1 => \&function, func2 => s…

メソッドオーバーライド

こちらから見た。メソッドのオーバーライドにlocalを使用している。 no warnings 'redefine'; local *HTML::Element::_xml_escape = \&xml_escape; シンボルテーブルをこうやっていじるのがなんとなくあれで、以前に、ExportToというものを作ったけど、これ…

Tie::Traceで簡単printデバッギング

tieでモジュール作るの初めてなんですが、Tie::Trace作ってみました。 0.04が最新ですが、まだCPANにインデックスされていないかも。 ある変数にどんな値が入れられていくのかを追えるものです。デバッガが面倒な時もあるってことで。使いこなしてないだけ?…

STDERRのテスト

エラーメッセージのテストをしたい場合。 my $err; local *STDERR; open STDERR, ">", \$err or die $!;とかやれば、$errに、STDERRに入るべきものが$errに入る。

まるごとPerl! Vol.1

一度紹介済みですが、いよいよ発売ですね。 僕は、Catalystの記事を書いています。初の雑誌記事なんで、不安ながらも嬉しいです。 ...って、誤植みつけたよ。(p.36 DBC::Schema -> DBIC::Schema) ...気を取り直して...目を通したのですが、見どころがいっぱ…

attributes

てきとーなんで信用しないでください。アトリビュートについて、調べてみました。 暇ができたら、perldoc attributesでも訳します。アトリビュートというのは、 sub index : Private{ ... }というように、サブルーチンの横にくっついている、: の横のもの、 …

まるごとPerl! Vol.1

8/25発売です。見所多し。目次 基礎編 いまどきの作法 モジュール&CPAN基礎講座 (著者:Kansai.pm 川合孝典) まるごとEncode (著者:小飼 弾) コラム 日本Perl事始 (著者:歌代和正) 特集1 フレームワークで10倍速の開発 使ってわかるCatalyst (著者…

DBIx::Classでテーブルとカラムの一覧

簡単ですね。get_table_info.pl #!/usr/local/perl5.8.7/bin/perl use Data::Dumper; use DBIx::Class::Schema::Loader; my $tmp_pkg = 'Temp::Schema'; push @{$tmp_pkg . '::ISA'}, qw/DBIx::Class::Schema::Loader/; $tmp_pkg->loader_options(relationsh…

パーサ大体成功そしてModel関係とか

パーサはうまく行ったもよう。以前は文字列に甘い判定してたんですが、ちょっと厳しくなりました。 クォートしないといけないということですが。大した事じゃないか。 他には、メソッドを後に繋げるとか、ハッシュリファレンスとか、アレイリファレンスとか…

ルールのパーサ

Glueはルールのパーサが弱すぎると思いたち、パーサ改良中。 今は、ハッシュも使えないし、メソッドをつなぐこともできない...のです。でも、パーサを自分で作るのは大変過ぎるので、似たようなもの...と考えてたら、 TTとほぼ一緒だと思い付いて、Template:…

44位

輝け!全日本最強 CPAN Author 決定選手権 2006があったようです。 44位。こんなことなら、h2xsからModule::Starterに切替えて、バージョンあげとくんだった!(違 いや、順位あげるより、使われるようにならないと、ねぇ。ちなみにこちら -> http://search.…

Module::Starter

教えてもらったんですが、楽チンですね。 % module-starter --module=New::Hoge --author=your_name --email=yourmail@example.comとやると、New-Hogeディレクトリができあがり。必要なファイルが出来てます。 h2xsの引数覚えるより直感的だし、テンプレもい…

Catalystのインストールに必要な依存モジュール

何回インストールしたんだか。Perl 5.8.7(ソースからコンパイルしたもの)ですが、Module::FInd だけ入れとけば、 cpan> install Task::Catalystだけで、OKです。嘘でした!(追記:2006/6/30) cpan> install Path::Classも必要!

Catalystのドキュメントの不備

http://d.hatena.ne.jp/lestrrat/20060612#1150101567にて、id:lestrratさんが怒ってらっしゃるけど、 (それがどうかは別に)、ドキュメントはよろしくない。Intro Cookbook Catalyst::Helper::DBIC::SchemaLoaderは存在しない。 WritingPluginsprepare の…

Data::RuledValidator 0.03リリース

ルールが変更されたら読み直す グループ名に正規表現 PATH_INFOをグループ名に簡単に使えるように コメントかけなかったバグ 間違いがなかったら正しいのをデフォルトにした。ここは変更の必要あり。 バリデーションの対象のオブジェクトと、グループを決定…

Test::Pod::Coverage

ドキュメント化されていないメソッドがあったらテストに失敗する。厳しいな。 use Test::More; eval "use Test::Pod::Coverage"; plan skip_all => "Test::Pod::Coverage required for testing pod coverage" if $@; plan tests => 3; pod_coverage_ok ( 'Da…

Storable v.s. Data::Dumper

Storableが速い。 Benchmark: timing 3000 iterations of code1, code2... code1: 0 wallclock secs ( 0.57 usr + 0.00 sys = 0.57 CPU) @ 5263.16/s (n=3000) code2: 2 wallclock secs ( 1.96 usr + 0.00 sys = 1.96 CPU) @ 1530.61/s (n=3000)コードはこん…

Five Apress Perl eBooks for $50 until May 31

use Perlより。こちらにて、下記ebookがまとめて$50らしい。Beginning Perl Web Development Pro Perl Pro Perl parsing Regular Expression Recipes Perl 6 Now買おうかなー。Pro Perl Debugging があればなお良いのに。

C::P::Static::Simpleと、C::P::Charsets::Japanese

Catalyst 5.6901 Catalyst::Plugin::Static::Simple 0.14 Catalyst::Plugin::Charsets::Japanese 0.04で、Static::Simple と Charsets::Japanese がうまくいきません。 Static::Simpleは、いつのバージョンからかは知りませんが、デフォルトで入ってる プラ…

Catalyst再び

Shibuya.pm で話してから離れていたんですが、再び調べ中です。インストール方法がBundle::Catalystではなく、 % perl -MCPAN -e 'install Task::Catalyst'になってました。 Class::DBIからDBIx::Classが主流になりつつあるというのは、聞いたけど。 % myapp…

Perl 5.8.8 インストール

最新版いれてみることにしました。OSは Debian sarge。 ※その後、Template がテスト通りませんでした < DBI関係のところ % rm -f config.sh Policy.sh % sh Configure -Dprefix=/usr/local/perl5.8.8 -des make % make % make test % make installこんな wa…