@kyanny's blog

My thoughts, my life. Views/opinions are my own.

Perl

Lingua::JA::Summarize::Extract のパッチ(みたいなもの)

Lingua-JA-Summarize-Extract-0.02 - summary generator for Japanese - metacpan.orgLingua::JA::Summarize::Extract::ResultSet の as_string() メソッドで一番最後に $self->length の長さで要約された文字列をカットしているが、せっかく句読点「、。」…

LWP::UserAgent でリダイレクトする URL にアクセスした際、リダイレクト先の URL を得るには

先日↑なタイトルで $res->base を使うといける、とか書きましたがデマでした。すいません。消しちゃったので permalink なくなりました。もしブクマしてくれた人がいたら重ねてすいません。で、 HTTP::Response のマニュアルをちゃんと読んで、今度は大丈夫…

Module::Install の License に対する警告

とっくにがいしゅつ(なぜか変換できない)だろうけど。 #cd /tmp/HTML-ExtractContent-0.07/ #/usr/local/bin/perl Makefile.PL Cannot determine perl version info from lib/HTML/ExtractContent.pm WARNING: 'All rights reserved' in copyright may inv…

"Casual Perlers" are around there.

ゆーすけべー日記 に賛同します。とても良い問題提起だと思う。俺は、 yusukebe さんのいう Casual Perlers はそこらじゅうにいると思ってます。現に、彼が立ち上げた #perl-casual@freenode という IRC チャンネルには20人くらいの参加者がいて、「初めまし…

YAPC::Asia Tokyo 2009 に行ってきた (9/10, day1)

http://conferences.yapcasia.org/ya2009/ に行ってきた。今回は自分のなかで「初心に帰る」をテーマに臨んだので、紙のノートにボールペンでメモをとった。以下、メモした内容のまとめ(まとまってないけど)と、それを踏まえて感想というかコメントを。か…

Yokohama.pm 出張版 in YAPC::Asia 2009 前夜祭に行ってきた

Yokohama.pm 出張版 in YAPC::Asia 2009 前夜祭のスピーカー発表(追記あり) - Yokohama Perl Mongers に行ってきた。twitter に書いたログからいくつか拾いつつ、気になったところだけ感想を。 会場の左側中列くらいに座っていたのだけど、前方に外国人ご一…

Moose/Mouse, BUILD, BUILDARGS, MouseX::Getopt

ベンキョーしながら使ってる。以下ただのメモです。BUILD と BUILDARGS についてたとえばこういうことがしたい: TheSchwartz のワーカー/クライアント両方の親クラスとして、 dsn,user,pass のデフォルト値を持たせたクラスをつくっておいてインスタンスの生…

Moose の around について

before, after はそれぞれ、メソッド実行の前、後にコールされるサブルーチンをフックとして追加できるんだろうなーと思っていてその通りだった。 around だけわからなかったので、サンプルコードをそのまま実行してみた。http://search.cpan.org/~drolsky/M…

Test::Simple と Carp::Clan のインストール先ディレクトリの話

Test::Simple のほうは make install_site というターゲットでうまくいった。Carp::Clan のほうはだいぶ手こずったけど、なんか install_vendor とか uninstall とか uninstall_from_vendordirs とかを何度か叩いていたらうまく上書きされた。結局何がどう悪…

Test::Simple を手動で make install するとヘンなパスにインストールされてしまう?

例によってうまく説明できない。Test::Simple ディストリビューションに依存しているモジュールを入れたいとして(例えば Test::Warn)、 Test::Simple はコアモジュールなのでインストール済みではあるんだけどバージョンが古かったりする。なので先に Test…

「Acme大全2009」買えなかった

どんぞこ日誌(2009-07-22) 昨日は「Acme大全2009」を買うため夏コミ三日目に行った。しかし売り切れてた・・・。ショック。往復三時間かけて、行って帰ってきただけ。暑いし臭いし買い物はできないしで散々だった。YAPC::Asiaでも売るらしいが、コミケよりは…

HTML::TokeParser の get_token で 'T' (テキスト) 要素についてくる $is_data ってのは何なのか

HTML::TokeParser - Alternative HTML::Parser interface - metacpan.org => HTML::Parser - HTML parser class - metacpan.org ということで、 CDATA セクションの中にあるか、 script とかいくつかのタグの中にあるテキストデータの場合だけ $token->[2] …

今日のワンライナー

# top -b | grep ^Mem: | /usr/local/bin/perl -MList::Util=reduce -ple '@n=/(\d+)/g;END{print reduce {$a+$b} @n}'メモリ全部でいくつあるんだっけみたいな。 FreeBSD のばあい。 Linux のばあいは top -b -n 1 などとする。 reduce を使ってみたかった…

最近の俺と Moose

MooseX::Getopt を少し使ってみて、「俺でもこれを便利に使える場合がありそうだな」と思えたので、ちょっとずつ使ってみている。いままでは、いきなりフルに使いこなそうとしすぎていた。といっても、 SYNOPSIS ていどのことしかやってないのだけど、あれで…

GitHubGrowler が動かせなかった

github のフィードを Growl で表示する GitHubGrowler が便利 | Supernova をみて GitHubGrowler を導入してみたが、 launchd で起動できなかった。 local::lib を使っているので $HOME/perl5/lib とかを環境変数に指定したがうまくいかなかった。

Getopt::Long::Descriptive を使ってみた

MooseX::Getopt のドキュメントを読んでいたら Getopt::Long::Descriptive というのがあるのを知ったので少しいじってみた。weatherhacks.pl · GitHub #!/usr/bin/env perl use strict; use warnings; use Getopt::Long::Descriptive; use WebService::Simpl…

Sledge::Dispatcher の SledgeExtension てのが動いてない気がする

<Location /hoge> SetHandler perl-script PerlHandler Hoge::Dispatcher PerlSetVar SledgeMapFile conf/hoge-map.properties PerlSetVar SledgeExtension .json </Location>こんな風にしておいて sub dispatch_index {} を定義しておくと、http://example.com/hoge/index はレスポンス…

Template Toolkit の WRAPPER ディレクティブ (auto wrapper) を使う

サンプルを書いて github に置いた。ので、そのことを忘れないようにメモ。GitHub - kyanny/template-toolkit-auto-wrapper-example: Template Toolkit (tt2) WRAPPER (auto wrapper) examples. できることできないこと 複数のラッパーを入れ子にできる。 WR…

Perl の Unicode フラグの扱い

追記 2009-06-12 - つれずれなるままに… がとてもわかりやすい。俺も UTF-8 flagged とかじゃなくて「バイト列」と「文字(の)列」の違いだと考えはじめてから理解が早まったように思う。あとだしじゃんけん−。技術的なことは何も書いてません。ただの回顧…

Array::Diff で二つの配列の差分をとる

メールアドレスのリストをもらってきて、その一覧に対して何か処理をして、結果影響があった行について出力し、両者を比較したら何行か差があったのでどこが違うか調べようと思って、 Array::Diff を使った。今回のケースだとふつうに diff(1) を使っても同…

Email::Address::Loose でメールアドレスを正規化する

"Kensuke Kaneko " みたいなのが混ざってるメールアドレスのリストからアドレスパートだけを抜き出したかったので Email::Address::Loose を使った。 Email::Address::Loose は Email::Address とほぼ同じで Email::Valid::Loose を使ってるだけ。gist:12845…

Class::Data::Inheritable について

こういうことをしても良いのかどうか不安だったので調べたら、大丈夫のようだった。 PerlのClass::Data::Inheritableの解析 package Parent; use strict; use base qw(Class::Data::Inheritable); __PACKAGE__->mk_classdata(qw(hoge)); 1; package Child; u…

Yahoo! Japan のキーフレーズ抽出 API を Perl から叩く

http://developer.yahoo.co.jp/webapi/jlp/keyphrase/v1/extract.htmlやってみた。 XML::* なモジュールをさわるのが久しぶりでいろいろ戸惑ったりした。キーフレーズ(特徴語)ってのは、キーワードと読み替えても差し支えないもんなんだろうか。特徴語を含…

HTTPx::Dispatcher の練習

HTTPx::Dispatcher の使い方を勉強した。ごちゃごちゃ試行錯誤して、使い方がわかったので、動かすための最小限のコードを整理して github にあげた。GitHub - kyanny/httpx-dispatcher-practice: HTTPx::Dispatcher practice 参考になったソース mobirc ど…

Text::MeCab で文章を分かち書きにして Algorithm::MarkovChain でマルコフ連鎖

markov chain and mecab · GitHub #!/usr/bin/env perl use strict; use warnings; use Text::MeCab; use Algorithm::MarkovChain; use Perl6::Say; use Data::Dumper; open my $in, '<', shift or die $!; my $text = do { local $/; <$in>; }; close $in; …

Lingua::JA::Summarize 入門

Lingua::JA::Summarize sample · GitHub #!/usr/bin/env perl use strict; use warnings; use Lingua::JA::Summarize; use Perl6::Say; use Encode; my $in = do { local $/; <>; }; my $s = Lingua::JA::Summarize->new({ charset => 'utf8', mecab_charset…

Lingua::JA::Summarize と Lingua::JA::Summarize::Extract のソースを少し読んだ

Extract のほうは、名前空間的に Lingua::JA::Summarize を use してごにょごにょやってるもんだと思い込んでいたけど全然違った。 mecab 使ってどうこうするのが Lingua::JA::Summarize のほうで、 mecab 使わず自前で N-gram とかいろいろやってるのが ::E…

HTTPx::Dispatcher, HTTP::Router, Path::Router, Path::Dispatcher など入門

HTTP::Engine を動かしてみて、スタンドアロンのサーバを起動して単一のハンドラを書くところまではできた じゃあ次は Dispatcher だ HTTP::Router ってのをどこかで見かけたなとうっすら覚えてたので POD を読む HTTPx::Dispatcher, Path::Router, Path::Di…

HTTP::Engine 入門

HTTP-Engine-0.03005 - Web Server Gateway Interface and HTTP Server Engine Drivers - metacpan.org local::lib で $HOME/perl5 以下をいろいろセットアップしてからインストール。一発で依存含めて全部入った。 HTTP::Engine, HTTP::Engine::Interface::…

Lingua::JA::Summarize::ExtractContent サンプル

ExtractContent のほうを使ったサンプルだったのでタイトル修正。 Lingua::JA::Summarize のほうも直に使ってみたいし、 ExtractContent がどういう風にして文章(センテンス)を取り出しているのかに興味があるのであとでソースを読もう、 Lingua::JA::Summ…