2007-01-01から1年間の記事一覧

[javascript][json]

parser使うようにしてみよう。http://www.json.org/js.html

mysql senna Tritonn

MySQLで日本語全文検索を早くしたいと思って、Senna入れようと気合入れて取り掛かったんだけど、 Tritonnというプロジェクトがあって、拍子抜けするほど簡単にinstallできた。 すばらしいなあ。http://qwik.jp/tritonn/FrontPage.html

[perl] [Catalyst] [download]

まあ、メモ。ああ、また、最近言及したキーワードのhogeがでかくなった。orz sub download : Local { my ( $self , $c ) = @_; my $file_name = $c->req->param("file_name"); my $fh = IO::File->new($file_name,'r'); my $body = join('',<$fh>); $c->res-…

[perl] eof

CatalystをUPDATEかけたのを契機に中身でもみるかとおもったら「eof」をつかってるところがあってちょっとメモ。 while ( !eof $body ) { read $body, my ($buffer), $CHUNKSIZE; last unless $self->write( $c, $buffer ); } http://flex.ee.uec.ac.jp/texi…

mod_rewrite

X-Forwarded-Forを対象にIP制限したかった。 RewriteEngine on RewriteCond %{HTTP:X-Forwarded-For} !(192\.168\.xxx\..*) RewriteRule .* - [F,L] HTTP:X-Forwarded-Forこの記法だったのか。orzhttp://www.kawaz.jp/pukiwiki/?mod_rewrite

[perl] [ruby] post_match

Rubyのpost_matchって、perlの場合、「$'」こいつを参照すれば終わりだった。 1 use strict; 2 use warnings; 3 4 my $string = 'test'; 5 6 if( $string =~ /s/ ) { 7 warn $'; 8 } t at test.pl line 7. http://www.ruby-lang.org/ja/man/?cmd=view;name=M…

[ruby] [perl] 配列

num = 2 ary[index,num] こいつが my $num = 2; map { $ary[$_] } ($index..$num); だと勘違いしてた orz本当は、こうなので [start, length] こんなかんじ。 my $num = 2; map { $ary[$_] } ($index..$index+$num); http://www.ruby-lang.org/ja/man/?cmd=v…

apache mod_rewrite

mod_rewriteでパラメータを使用したい場合。 最初、RewriteRuleに直接埋め込んではまった。orzんなかんじになる。 RewriteEngine on RewriteCond %{QUERY_STRING} ^q=hoge$ RewriteRule ^/$ /hoge/ [L] http://japache.infoscience.co.jp/japanese_1_3_6/man…

[perl] readdir

なんか、使う機会が無かったから挙動をみてみた。 tree ./hoge hoge `-- page |-- poge `-- test.pl で use strict; use Data::Dumper; opendir DIR ,'./hoge'; my @dirs = readdir DIR; warn Dumper \@dirs; $VAR1 = [ '.', '..', 'page' ]; 意味は無いけど…

[ruby] qw

perl でいう for(qw/hoge toge/){ print $_ ."\n" }; が rubyだと %W/hoge toge/.each { |str| p str } だったのを思い出した。Wが出てこなかった orz

perl 標準出力

適当に時間のかかる処理をこんな感じにして sub run { # 長い処理 print $result."\n"; } &run 結果をこんな感じに tail 。 perl hoge.pl > result.txttail -f result.txt 結果が全然出てこなくて困りました orz。うしろの大きな人とか隣の人が、バッファに…

記録

後で参照して役に立ったり、楽しいものでないと意味は無いな。

ruby Hash

「:num」がわかんなかったので、やってみた。 2 hoge = { "hoge" => 1 , "pga" => 2 } 3 4 word = "hoge" 5 num = 20 6 7 hoge[word] = {} 8 9 hoge[word][:num] = num 10 11 p hoge {"hoge"=>{:num=>20}, "pga"=>2} なんか、大きな人に聞いたら「それはシン…

perl Text::Graph

テキストグラフを生成してくれる君。 1 use strict; 2 use warnings; 3 4 use Text::Graph; 5 use Text::Graph::DataSet; 6 7 print Text::Graph->new('Bar')->to_string( { 1 =>10, 2 =>20 , 3 => 30 } ); こんなかんじ、引数はLineもある。 1 : 2 :*******…

perl Catalyst XMLRPC

こんな感じでたてて、 package Hoge::Controller::Xmlrpc; use strict; use warnings; use base 'Catalyst::Controller'; sub default : Global { my ( $self, $c ) = @_; $c->xmlrpc; } sub hoge : XMLRPC("method.hoge") { my ( $self, $c, $message ) = @…

perl POP3 MyDNS

MyDNSでお勧めソフト「biffpop」が落とせなくなっていてどうしようかと思ったが、 よく考えたら、作れば良いということに気づいた orzNet::POP3でつくって、cron設置。こんな感じでつくってやればOK。 #!/usr/bin/perl use strict; use warnings; use Data::…

perl boolean

わかりやすい。 1 use strict; 2 use warnings; 3 use boolean ':all'; 4 5 sub hoge { 6 my ($hoge,) = @_; 7 8 if($hoge) { 9 return true; 10 } 11 else { 12 return false; 13 } 14 } http://search.cpan.org/~ingy/boolean-0.11/lib/boolean.pm

wassr AIR

wassrのクライアントアプリ「wasaco」をいれてみた。 ボタン軽くてうっかり連打しちゃったりするんですが 結構快適です。http://kan.vc/blog/1181711076あとは、AIRのランタイムがないと動きません。http://labs.adobe.com/downloads/air.html

perl MIME::Lite::TT::Japanese Text::ASCIITable

Text::ASCIITableでテーブルを作成してM::T::T::Japanseへこんな感じでわたしてやっていたら 結果のテーブルが変形する。 my $msg = MIME::Lite::TT::Japanese->new( From => 'hoge@hoge.com', To => 'hoge@hoge.com', Subject => 'Hello', Template => \$te…

ruby df

IO.popen('df') { |io| while line = io.gets() puts line if line.split(' ')[5] == '/' end } ftp://ftp.kek.jp/kek/unix4hep/html/df1.html

perl TT chunk TTのchunkってメソッド。 use strict; use warnings; use Template; my $data = join("",<DATA>); my $template = Template->new({}); $template->process( \$data, { hoge => 123456, } ) || die; __END__ [%- FOR v IN hoge.chunk(2) %] [% v %] [</data>…

HTTP::Daemon perl

HTTPDが気になった。 1 use strict; 2 use warnings; 3 4 use HTTP::Daemon; 5 use HTTP::Status; 6 use Data::Dumper; 7 use CGI; 8 use URI; 9 10 my $d = HTTP::Daemon->new(LocalAddr => '127.0.0.1', LocalPort => '5000' ) || die; 11 print "Please c…

perl プロトタイプ宣言

method渡したかった。 1 package Hoge; 2 use strict; 3 use base qw/Class::Accessor::Fast/; 4 5 sub run(&;$) { 6 my ($method,$num ) = @_; 7 for(1..$num){ $method->($_) } 8 } 9 10 sub test { 11 my ($self, $num) = @_; 12 print $num."\n"; 13 } 1…

Hash::AsObject perl

ハッシュの入れ子状態をメソッド形式で呼べてしまうひと。 1 use strict; 2 use warnings; 3 use YAML::Syck; 4 use Hash::AsObject; 5 6 my $data =Hash::AsObject->new( Load( join "", <DATA> ) ); 7 8 warn $data->test->hoge->tege; 9 10 __END__ 11 --- 12 t</data>…

perl 多次元配列

多次元配列やってみた。 use strict; use Data::Dumper; my @hoge; $hoge[0][0][0] = { value => "hoge" }; warn Dumper(\@hoge); $VAR1 = [ [ [ { 'value' => 'hoge' } ] ] ]; まあ、使わないけど、ちょっとおもしろかったのでメモ。全然関係ないけど、MeCa…

perl 文字コード

perlで文字コード知りたい場合、unpackを使う my $code = unpack("H*", $string ); コードから文字列を得たい場合はpack my $string = pack("H*", $code ); http://flex.ee.uec.ac.jp/texi/perl/perl_35.html

perl 文字コード

全角カナの大文字だけ許可したかったので正規表現を作った。 use Jcode; my $hoge = Jcode->new("カナ")->euc; my $zkatakana_omozi = '(?:\xA5[\xA2\xA4\xA6\xA8\xAA-\xC2\xC4-\xE2\xE4\xE6\xE8-\xED\xEF\xF2-\xF4])'; if( $hoge =~ /^($zkatakana_omozi)+$…

perl use base

package Hoge; use strict; use base qw/Class::Accessor::Fast/; sub run { } 1; で、スクリプト側から実行権限つけて実行させたら "Class::Accessor::Fast" is empty. って言われた。 perldoc Class::Accessor::Fast でみてもある。 perl hoge.pl で実行し…

[perl] シンボルテーブル

パッケージの内容にまとめてアクセスするにはシンボルテーブルにアクセスする。 for my $key ( keys %main:: ) { print $key."\t".$main::{$key}."\n"; } こんな感じの結果を得る。 CORE:: *main::CORE:: DynaLoader:: *main::DynaLoader:: stdout *main::st…

[perl] import

Catalystみたいにqw/Plugin/とかで引数を処理したい場合は package Hoge; sub import { my ($class, @args) = @_; } 1; こんな感じでいける。