perl

さくらVPSでUnicode::Japaneseインストール

yum install perl-ExtUtils-Embed cpan Unicode::Japanese 参考: Perl - Unicode::Japaneseのインストール失敗をなんとかしてみた - Qiita

JSON形式のマルチバイト文字(UTF16)をUTF8変換する

JSON系モジュールを使わずに直接まともに見れる形に変換したいが、なかなか情報がなかった。 use Encode;## test print encode("UTF-8", "\x{3042}"); ## "あ"## 変換したいUTF16な文字列 my $str = '\u3042';$str =~ s/\\u(:xdigit:{4})/chr eval "0x$1"/eg…

mac上でDBD::mysqlをインストール

やや面倒 cpan DBI cpan DBD::mysql ... エラー発生 http://www.bartbusschots.ie/blog/?p=2186 export DYLD_LIBRARY_PATH="/usr/local/mysql/lib:$DYLD_LIBRARY_PATH" cpan DBD::mysql ... Access deninedのエラー発生 パスを指定してテストする必要がある …

プロセス間で巨大なサイズの変数を共有したい

tokyocabinet, kyotocabinet, memcached, redis これらは普通のハッシュに比べると数十倍〜数百倍遅かった。 こうなったらKVSを諦め、変数をどうやって他のプロセスと共有するかを考えた方がいいのかもしれない。 その方法はないのか?http://nihen.hatenabl…

redisのperlクライアントのperformance比較

比較対象 Redis Redis::Fast Redis::Client10万件set get hset hget Redis::Clientが一番よかったRedis::Clientが10sくらい、Redis::Clientが6sか7sくらい うーん、オンメモリだからもっと爆速なのかと思っていたが、秒間1万くらいかー Redisはdump機能とか…

web::Scraper 高速化2

use Web::Scraper; use HTML::TreeBuilder::LibXML; HTML::TreeBuilder::LibXML->replace_original(); 文字化けするので http://weblog.nqou.net/archives/20100607024813.html この記事はdec -> parse -> enc とあるが、 自分はdec -> scraper -> dec でう…

how to handle array JSON on perl

'tags' => [ { 'lock' => 1, 'tag' => "NNI\x{30aa}\x{30ea}\x{30b8}\x{30ca}\x{30eb}\x{66f2}" }, { 'lock' => 1, 'category' => 1, 'tag' => "\x{97f3}\x{697d}" } ], json my $tags = $j->{tags}; #my $tags2 = $tags->[0]; #print Dumper $tags2; for my…

はてなAPI on perl 的メモ

content 文字化け http://hirobanex.net/article/2013/04/1366943782

grep で特定の文字列が含まれるファイル名だけをリストアップする方法

memohttp://weble.org/2012/01/23/grep-filename-onry egrep -rl 'hoge' ./ > ~/result.txt

perlのsplitの挙動でちょっとはまった

分割基準文字しか、文字列に含まれていなかった場合、undefが返るとな。 my @arr = split(/\n/, "\n"); これだと、@arrはundefになる。 my @arr = split(/\n/, "\n\n"); これでもundef。 my @arr = split(/\n/, "\na"); このように少しでも文字が入ってれば…

KyotoTycoon系ではまりポイント

set()のvalueに空文字("")を入れると、undefとしてストアされる。厳密に調査してないけど、少なくとも、Cache::KyotoTycoonのcursorで while (my ($k, $v) = $cur->get(1)) { で取るとそうなった。 あーもうマジで無駄な時間をすごした - あ、普通にcur使…

Net:Twitter でapi version 1.1対応版にしろ的なエラー

use Net::Twitter; ↓ use Net::Twitter 4.0000001; traits => [qw/API::RESTv1_1/], http://cl.hatenablog.com/entry/2013/02/05/Net-Twitter_4.00000_01

キーにUTF8はダメみたい

perlからFlareを使う。 サンプルコードは http://research.sakura.ad.jp/2010/05/12/flare-servers1/で、keyに日本語いれたらダメだった。 気のせいか、ある条件下では上手く行っていたようだったので、気づきにくかった。仕方なく、マルチバイトをキーにす…

CPANでperlモジュールのインストールにハマった時の解決方法

http://pkgs.org/ というサイトが非常に有用に働くことが何度かあった。例えば、Params::Validateがインストールできなかった場合、 もちろん、まずはエラーメッセージが無いかを調べる。CPANであっても依存モジュールを自動でインストールしようとしてくれ…

Algorithm::NaiveBayes restore_stateでエラー

use Algorithm::NaiveBayes::Model::Frequency;がいるっぽい use Algorithm::NaiveBayes; use Algorithm::NaiveBayes::Model::Frequency; my $nb = Algorithm::NaiveBayes->restore_state($path);

wikipedia dump を使って複合名詞を判定してみる

例えば「ウォークマン」を形態素解析器にかけると、mecabやChasenの場合だと、 「ウォーク|マン」と分けてしまう。 多くの場合、連接する名詞をくっつけて複合名詞とすればうまくいくけど、例外もたくさんある。 単純に連接名詞をとるだけだと、「世界最高新…

wiki dump を使って複合語を判定してみる

てst class Foo def bar 'baz' # return baz end end

ubuntu10でDBD:mysqlを楽にインストールできるかもしれない方法

ubuntu10の「ubuntuソフトウェアセンター」で「perl」と検索すると、「libdbd-mysql-perl」というのがあって、詳細は DBD::mysql implements the standard Perl5 DBI interface to give you access to MySQL databases. と書かれている。 つまり、DBD:mysql…

twitterから可能な限り大量のtweetを取得するの巻

今までpublicタイムラインに定期的にアクセスして取得してたけど、 Twitter のストリーミング API を使えばバンバンとれるらしい。というわけで試してみました。Twitter のストリーミング API を試す モジュールが少なかったため、ほとんどそのままで動きま…

人工無能onTwitterの制作01 データ取得 文字化け

twitter上の人工無能が作りたくなったので今日から作っていきます。 名前 何にしよう・・・ モチベーション http://www.ycf.nanet.co.jp/~skato/muno/1intro/index.html 仕様 ・機能1:リプライ(@付きメッセージ)に対しリプライ(返信)する ・機能2:フ…