スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

YAPC::ASIA2012

前夜祭り
前夜祭に行ってきました。はじめ、道まちがえ猛ダッシュ。
そもそも、スマホやらもってないから道に迷うんだ・・・というのはおいておいて・・・
普段走っているとこういうときに役立ちます。

顔見知りはいないかなー。と探す。8月のPerlBeginnersに参加していたので。Hachioji.pmの方で知り合いがいたので。
LTソンねたで話ができて。よかった。もし、PerlBeginnersに行ってなくて、あの会場
にいったら完全ぼっちでしたなぁ・・・

ゆーすけべーラジオまで購買していて、超憧れのゆーすけべーさんに名刺を渡せました。いろいろお話させていただきました。どうやってヒットさせるかというところは大変という話になりうんうん。土曜にトークが聴けないのが非常に残念です。まさに私は今Webアプリ開発してるので。会場にいれば質問ができますからね。

あと世界の宮川さんにも隙をみて名刺を渡しちゃいました。明日のLTでは宮川さんのページが多数表示されるので許可をとりつけました。

HNをしってる人には名刺を渡しきれたかもしれません。

明日はもっと沢山の人たちが会場に押し寄せると思うのでもっと積極的に交流したいなあ。

1日目。
9時すきに到着。そして前のほうに陣取る。すると、弾さんが近くにすわる。
すげー。端末の数。さすが!!そして、英語で会話!!さすが。。。すごすぎる。やっぱり。

トークでためになったのは、
・メッセージキューなどで、次のページの先読みをするという使い方を知らなかったので。
・動的サムネイル
・データークリーニングはしてないなぁ。しなきゃだめだなぁ。と改めて。。実装しなきゃ。。。
・社内でツールを共有するというのいいねーWebベース

自身のトーク
LTソンデビューしちゃいました。私のつくったLearn From AlphaGeeksのサイト紹介。
をしました。原稿を書いていきましたが、伝えたいところは適当にアドリブで説明を追加。
5分オーバーしてしまいましたが、そこはLTソン続けられるのはいいですねー。
非常に有意義なコメントいただけたので、特に写真については近いうちに対応したいと
思います。
来年もLTソンあれば、最低2本くらいはLTソンしたいです!!!!!!!

懇親会
LTソンをやったので、「聞いたよって」声をかけてもらえるだけで、すんごくうれしいと実感できた。
聞いたトークには勇気を出して聞いたよといってみるといいかもしれません。
さん、tokuhiromさん、ラリーさんにも名刺を渡す。弾さんとは
今作っているWebアプリのお話を少しさせていただいた。嬉しかった。
ラリーさんは2ショット写真もとってもらった!!!名刺も渡せた変な英語も話せた!!!

八王子の方、千葉、新潟PMの方ともお話ができて、よかった。
ぜひ勉強会に遊びにいきたい。。。

早くWebアプリを全面公開して、ネタを仕入れなければ!!!
さくらVPSに申し込むぞ。ただいまA8のアフィリエイト申請していて。
セルフアフィリエイトしなくては!!
勉強会費を稼げるように、サイトつくり、がんばります。

そうそう。私一押しのユースケベーさんがベストトークとったということで、
おめでとうございます。とにかく、ブログをよんでいただければ
わかると思うんですが、非常に文書が分かりやすい。私も少しでも近づけたらなと
思います。

スポンサーサイト

Tengでgroup byやDateTimeをWhere句に書く方法

http://kinjouj.hatenablog.jp/category/Perl?page=1327244400
http://d.hatena.ne.jp/ktat/20111205/1323023021
http://d.hatena.ne.jp/ktat/20120111/1326211861

group by はうまくいったが、問題はWhere句のほう・・・
DateTimeオブジェクトをWhere句の中に書いてみたらエラーとなった。

my $dt = DateTime->now( time_zone => 'local' );

my ($entries, $pager) = $self->app->db->search_by_sql_abstract_more_with_pager(+{
-columns => [qw/t.item v.name/],
-from => [
'-join',
'tweet|t',
't.verb_id = verb.id',
'verb|v'
],
-where => +{ 't.isseud_at' => $dt },
-group_by => ['item'],
-order_by => ['count(*) DESC'],
-page => 1,
-rows => 5
});




@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@ Teng 's Exception @@@@@
Reason : Not an ARRAY reference at /usr/lib/perl5/site_perl/5.14/Teng.pm line 234.



Where句にオブジェクトを渡すことはできないのかな??
アレイリファレンスでないといけないとはどういうことなんだろう。


いろいろ試行錯誤したらできたーーーー。。
カウントもできたー。

my $dt1 = DateTime->now( time_zone => 'local' )->add( days => -3 );
my $dt2 = DateTime->now( time_zone => 'local' );

my $self = shift;

my $page = $self->param('page') || 1;
my ($entries, $pager) = $self->app->db->search_by_sql_abstract_more_with_pager(+{
-columns => [qw/t.item v.name count(*)|count/],
-from => [
'-join',
'tweet|t',
't.verb_id = v.id',
'verb|v'
],
-where => +{ 't.issued_at' =>
+{ 'between' => [ DateTime::Format::MySQL->format_datetime($dt1),
DateTime::Format::MySQL->format_datetime($dt2) ] }},
-group_by => ['t.item','v.name'],
-order_by => ['count(*) DESC'],
-page => $page,
-rows => 20
});

Mojolicous+Teng+Confi gプラグイン

この組み合わせのサンプルがないなあ、うまくできたら。後で書く!

まずは,Mojoliciousと連携するまえに単独でDBにインサートするテストをおこないました。
はじめ文字化けして、サーバ側の設定を疑いましたが・・
MySQL5.5 Command Line Clientからは普通に日本語文字が文字化けしないで
登録できていたので。Tengの設定がおかしいと悟り。

こちらのホームページを参考にしてTengと接続したら、
http://www.omakase.org/perl/teng_mk_schema.html
文字化けせずに登録できた。


my $teng = Twitter::DB->new(
{connect_info =>
['DBI:mysql:database=dbname:127.0.0.1', 'user', 'pass',
{mysql_enable_utf8 => 1, pg_enable_utf8 => 1, sqlite_unicode => 1}
]});

my $row = $teng->insert('tweet',{Item => 'テストでーす',author=> '簡単なテスト',verb_id => 12345});



なるほどーー。MySQLではデーターベース=スキーマというらしいということも学べてよかった?です。

さて、MojoliciousからTengを使うときhogehogeというアプリ名として


lib
log
public
script
t
templates
hogehoge.conf

Web.pmに以下を追加して

my $config = $self->plugin('Config', { file => 'hogehoge.conf' }); # 追加
$self->attr( db => sub { Hogehoge::DB->new( $config->{db} ) } ); # 追加



hogehoge.confに接続情報を設定

+{
db =>{connect_info =>
['DBI:mysql:database=hogehoge:127.0.0.1', 'hogehoge', 'password',
{mysql_enable_utf8 => 1}
]}
};



そんでもって、こんな感じでアプリから参照

my @entries = $self->app->db->search('tweet', {});



でアクセスできました。
アッサリとできてびっくりでした。

Perlで作ったCabochaのスープ

Cabocha苦戦しつつも前進!
いやー。サンプルがなくて、動かすのに一苦労、2苦労。
Tokenが動詞とかいう情報を後は返せるようにがんばりマース。
今日はここまで!

use lib "../src/.libs";
use lib $ENV{PWD} . "/blib/lib";
use lib $ENV{PWD} . "/blib/arch";

my $sentence = "今日、朝食に食パンをゆっくりと食べた";

use CaboCha;
my $c = new CaboCha::Parser;

print $c->parseToString ($sentence);

my $tree = $c->parse($sentence);
print $tree->toString (2);

my $chunk_size = $tree->chunk_size();
my $token_size = $tree->token_size();

printf "chunk_size=%d\n", $chunk_size;
printf "token_size=%d\n", $token_size;

my $ci = 0;
for (my $i = 0; $i < $chunk_size; ++$i) {
my $chunk = $tree->chunk($i);


printf ("* %d %d %d %d\n",
$ci++,
$chunk->swig_link_get(),
$chunk->swig_token_size_get(),
$chunk->swig_token_pos_get()
);

for(my $j =0; $j < $chunk->swig_token_size_get() ; ++$j){
my $token = $tree->token( $chunk->swig_token_pos_get() + $j);
printf "%d %s\n", $chunk->swig_token_pos_get() + $j , $token->swig_normalized_surface_get();
}


}


print "EOS\n";

KNP がだめだから、Cabochaにしてみるか。・・・

cygwinからKNPを使いたいが結局make出来ず。諦めてCabochaにしてみるか・・・


CRF++0.53をダウンロードしてきて、インストール

./configure
make
make install



こちらのサイトの情報を下にMakefileを編集してあげる

さらに、CRF++のMakefileをいじってあげないとCabochaのインストールの際にlibtoolがらみのリンクエラーが発生する。いじり方はCXXLINKの最後あたりに-no-undefinedをいれてあげるだけ。



cabochaはこちらから0.64を選んだが・・・

./configure
make
make install



でもって、エラーになり。対処できない・・

libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -DCABOCHA_DEFAULT_POSSET=\"IPA\" -DCABOCHA_DEFAULT_CHARSET=\"utf8\" -DMODEL_VERSION=100 -DCABOCHA_DEFAULT_RC=\"/usr/local/etc/cabocharc\" -O3 -Wno-deprecated -Wall -c chunk_learner.cpp -DDLL_EXPORT -DPIC -o .libs/chunk_learner.o
In file included from chunk_learner.cpp:13:0:
chunker.h:24:3: error: 'crfpp_model_t' does not name a type
In file included from chunk_learner.cpp:15:0:
ne.h:27:3: error: 'crfpp_model_t' does not name a type
Makefile:468: recipe for target `chunk_learner.lo' failed
make[2]: *** [chunk_learner.lo] Error 1
make[2]: ディレクトリ `/usr/tmp/cabocha-0.64/src' から出ます
Makefile:410: recipe for target `all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: ディレクトリ `/usr/tmp/cabocha-0.64' から出ます
Makefile:277: recipe for target `all' failed
make: *** [all] Error 2



0.60にして再チャレンジ!

LIBS=-liconv ./configure --with-charset=utf8 --enable-utf8-only
make
make install



とりあえず、はいったっぽい・・・
とりあえず、できた・・・

$ cabocha
庭には二羽ニワトリがいた
庭には---D
二羽ニワトリが-D
いた
EOS



でもって、Perl APIからたたきたいが
perlのフォルダでperl Makefile.plで
lstdc++が見つからない。同じ現象の人発見
http://d.hatena.ne.jp/wherever/20060616/1150479442

lib-compatが必要とのこと。

JUMANをインストールしよう。

まずは、JUMANをインストール!

./configure
make
make install



とりあえず、すんなりいったのかな。。。

次にKNPのインストール

./configure


したら、こんなメッセージが

checking for cdb_make_start in -lcdb... no
configure: error: Constant DB library is not found. Please install TinyCDB (http://www.corpit.ru/mjt/tinycdb.html).



でも、./configureで同じエラーがでてしまったので
TinyCDBのMakefileを書き換えてmake installしてしまう。いいんかい??

prefix=/usr/local

prefix=/usr



そしたら、KNPのconfigureが通った。

引き続き

make



うーんだめみたい。。

/bin/sh ../libtool --tag=CC --mode=link gcc -g -O2 -o knp.exe case_analysis.o case_data.o case_ipal.o case_match.o case_print.o dpnd_analysis.o feature.o koou.o lib_bgh.o lib_dt.o lib_print.o lib_ps.o lib_scase.o lib_sm.o main.o para_analysis.o para_dpnd.o para_relation.o para_revision.o proper.o quote.o read_data.o read_rule.o regexp.o tools.o tree_conv.o db.o configfile.o thesaurus.o hash.o bnst_compare.o lib_event.o cky.o dic.o -L/usr/local/lib -ljuman -lz -lcdb -lm /usr/tmp/knp-4.01/distsim/libdistsim.la -lstdc++
libtool: link: gcc -g -O2 -o knp.exe case_analysis.o case_data.o case_ipal.o case_match.o case_print.o dpnd_analysis.o feature.o koou.o lib_bgh.o lib_dt.o lib_print.o lib_ps.o lib_scase.o lib_sm.o main.o para_analysis.o para_dpnd.o para_relation.o para_revision.o proper.o quote.o read_data.o read_rule.o regexp.o tools.o tree_conv.o db.o configfile.o thesaurus.o hash.o bnst_compare.o lib_event.o cky.o dic.o -L/usr/local/lib /usr/local/lib/libjuman.a -lz -lcdb /usr/tmp/knp-4.01/distsim/.libs/libdistsim.a /usr/lib/gcc/i686-pc-cygwin/4.5.3/libstdc++.dll.a -L/usr/lib/gcc/i686-pc-cygwin/4.5.3 -L/usr/lib/gcc/i686-pc-cygwin/4.5.3
/usr/tmp/knp-4.01/distsim/.libs/libdistsim.a(distsim.o): In function `_ZN3Dbm17decompress_stringEPhi':
/usr/tmp/knp-4.01/distsim/dbm.h:220: undefined reference to `_inflateInit_'
/usr/tmp/knp-4.01/distsim/dbm.h:230: undefined reference to `_inflate'
/usr/tmp/knp-4.01/distsim/dbm.h:235: undefined reference to `_inflateEnd'





うーん。よくわからないが、ソースをみてみるしかないか。。。
inflateInitは

$ nm /usr/lib/libz.a

adler32.o:
00000000 b .bss
00000000 d .data
00000000 N .debug_abbrev
00000000 N .debug_aranges
00000000 N .debug_frame
00000000 N .debug_info
00000000 N .debug_line
00000000 N .debug_loc
00000000 N .debug_pubnames
00000000 N .debug_pubtypes
00000000 N .debug_str
00000000 t .text
U ___moddi3
000000e0 T _adler32
00000370 T _adler32_combine
000003a0 T _adler32_combine64
00000000 t _adler32_combine_

crc32.o:
00000000 b .bss
00000000 d .data
00000000 N .debug_abbrev
00000000 N .debug_aranges
00000000 N .debug_frame
00000000 N .debug_info
00000000 N .debug_line
00000000 N .debug_loc
00000000 N .debug_pubnames
00000000 N .debug_pubtypes
00000000 N .debug_ranges
00000000 r .rdata
00000000 t .text
00000180 T _crc32
00000480 T _crc32_combine
000004b0 T _crc32_combine64
00000040 t _crc32_combine_
00000000 r _crc_table
00000170 T _get_crc_table
00000000 t _gf2_matrix_square

deflate.o:
00000000 b .bss
00000000 d .data
00000000 N .debug_abbrev
00000000 N .debug_aranges
00000000 N .debug_frame
00000000 N .debug_info
00000000 N .debug_line
00000000 N .debug_loc
00000000 N .debug_pubnames
00000000 N .debug_pubtypes
00000000 N .debug_ranges
00000000 N .debug_str
00000000 r .rdata
00000000 t .text
U __dist_code
U __length_code
U __tr_align
U __tr_flush_bits
U __tr_flush_block
U __tr_init
U __tr_stored_block
U _adler32
00000060 r _configuration_table
U _crc32
00001680 T _deflate
00001560 T _deflateBound
00002a80 T _deflateCopy
00002680 T _deflateEnd
00002780 T _deflateInit2_
00002a30 T _deflateInit_
00002580 T _deflateParams
00001430 T _deflatePending
00001480 T _deflatePrime
00001330 T _deflateReset
00001250 T _deflateResetKeep
00001020 T _deflateSetDictionary
00001400 T _deflateSetHeader
00001520 T _deflateTune
00000000 R _deflate_copyright
00000a90 t _deflate_fast
00000610 t _deflate_slow
00000e50 t _deflate_stored
00000280 t _fill_window
00000590 t _flush_pending
00000000 t _longest_match
U _memcpy
U _memset
U _z_errmsg
U _zcalloc
U _zcfree

infback.o:
00000000 b .bss
00000000 d .data
00000000 N .debug_abbrev
00000000 N .debug_aranges
00000000 N .debug_frame
00000000 N .debug_info
00000000 N .debug_line
00000000 N .debug_loc
00000000 N .debug_pubnames
00000000 N .debug_pubtypes
00000000 N .debug_str
00000000 r .rdata
00000000 t .text
000001c0 r _distfix.2941
000000f0 T _inflateBack
000010e0 T _inflateBackEnd
00000000 T _inflateBackInit_
U _inflate_fast
U _inflate_table
00000240 r _lenfix.2940
U _memcpy
00000180 r _order.2962
U _zcalloc
U _zcfree

inffast.o:
00000000 b .bss
00000000 d .data
00000000 N .debug_abbrev
00000000 N .debug_aranges
00000000 N .debug_frame
00000000 N .debug_info
00000000 N .debug_line
00000000 N .debug_loc
00000000 N .debug_pubnames
00000000 N .debug_pubtypes
00000000 r .rdata
00000000 t .text
00000000 T _inflate_fast

inflate.o:
00000000 b .bss
00000000 d .data
00000000 N .debug_abbrev
00000000 N .debug_aranges
00000000 N .debug_frame
00000000 N .debug_info
00000000 N .debug_line
00000000 N .debug_loc
00000000 N .debug_pubnames
00000000 N .debug_pubtypes
00000000 N .debug_ranges
00000000 N .debug_str
00000000 r .rdata
00000000 t .text
U _adler32
U _crc32
000002a0 r _distfix.2973
000004a0 T _inflate
000023e0 T _inflateCopy
00002050 T _inflateEnd
000021a0 T _inflateGetHeader
00000310 T _inflateInit2_
000003f0 T _inflateInit_
00002590 T _inflateMark
00000420 T _inflatePrime
00000220 T _inflateReset
00000260 T _inflateReset2
00000180 T _inflateResetKeep
000020b0 T _inflateSetDictionary
000021d0 T _inflateSync
000023b0 T _inflateSyncPoint
00002560 T _inflateUndermine
U _inflate_fast
U _inflate_table
00000320 r _lenfix.2972
U _memcpy
00000260 r _order.3001
00000000 t _updatewindow
U _zcalloc
U _zcfree

inftrees.o:
00000000 b .bss
00000000 d .data
00000000 N .debug_abbrev
00000000 N .debug_aranges
00000000 N .debug_frame
00000000 N .debug_info
00000000 N .debug_line
00000000 N .debug_loc
00000000 N .debug_pubnames
00000000 N .debug_pubtypes
00000000 r .rdata
00000000 t .text
00000080 r _dbase.2887
00000040 r _dext.2888
00000000 R _inflate_copyright
00000000 T _inflate_table
00000100 r _lbase.2885
000000c0 r _lext.2886

trees.o:
00000000 b .bss
00000000 d .data
00000000 N .debug_abbrev
00000000 N .debug_aranges
00000000 N .debug_frame
00000000 N .debug_info
00000000 N .debug_line
00000000 N .debug_loc
00000000 N .debug_pubnames
00000000 N .debug_pubtypes
00000000 N .debug_ranges
00000000 N .debug_str
00000000 r .rdata
00000000 t .text
00000000 R __dist_code
00000200 R __length_code
00001450 T __tr_align
000013d0 T __tr_flush_bits
000015f0 T __tr_flush_block
00001190 T __tr_init
00001270 T __tr_stored_block
00001c20 T __tr_tally
000009a0 r _base_dist
000008a0 r _base_length
000007f8 r _bl_order
00000150 t _build_tree
00000d20 t _compress_block
00000a20 r _extra_blbits
00000920 r _extra_dbits
00000820 r _extra_lbits
00000000 t _pqdownheap
00000600 t _scan_tree
00000720 t _send_tree
00000028 d _static_bl_desc
00000014 d _static_d_desc
00000780 r _static_dtree
00000000 d _static_l_desc
00000300 r _static_ltree

zutil.o:
00000000 b .bss
00000000 d .data
00000000 N .debug_abbrev
00000000 N .debug_aranges
00000000 N .debug_frame
00000000 N .debug_info
00000000 N .debug_line
00000000 N .debug_loc
00000000 N .debug_pubnames
00000000 N .debug_pubtypes
00000000 N .debug_str
00000000 r .rdata
00000000 t .text
U _free
U _malloc
00000020 T _zError
00000080 R _z_errmsg
00000040 T _zcalloc
00000060 T _zcfree
00000010 T _zlibCompileFlags
00000000 T _zlibVersion

compress.o:
00000000 b .bss
00000000 d .data
00000000 N .debug_abbrev
00000000 N .debug_aranges
00000000 N .debug_frame
00000000 N .debug_info
00000000 N .debug_line
00000000 N .debug_loc
00000000 N .debug_pubnames
00000000 N .debug_pubtypes
00000000 N .debug_str
00000000 r .rdata
00000000 t .text
000000c0 T _compress
00000000 T _compress2
000000f0 T _compressBound
U _deflate
U _deflateEnd
U _deflateInit_

uncompr.o:
00000000 b .bss
00000000 d .data
00000000 N .debug_abbrev
00000000 N .debug_aranges
00000000 N .debug_frame
00000000 N .debug_info
00000000 N .debug_line
00000000 N .debug_loc
00000000 N .debug_pubnames
00000000 N .debug_pubtypes
00000000 r .rdata
00000000 t .text
U _inflate
U _inflateEnd
U _inflateInit_
00000000 T _uncompress

gzclose.o:
00000000 b .bss
00000000 d .data
00000000 N .debug_abbrev
00000000 N .debug_aranges
00000000 N .debug_frame
00000000 N .debug_info
00000000 N .debug_line
00000000 N .debug_loc
00000000 N .debug_pubnames
00000000 N .debug_pubtypes
00000000 t .text
00000000 T _gzclose
U _gzclose_r
U _gzclose_w

gzlib.o:
00000000 b .bss
00000000 d .data
00000000 N .debug_abbrev
00000000 N .debug_aranges
00000000 N .debug_frame
00000000 N .debug_info
00000000 N .debug_line
00000000 N .debug_loc
00000000 N .debug_pubnames
00000000 N .debug_pubtypes
00000000 N .debug_ranges
00000000 N .debug_str
00000000 r .rdata
00000000 t .text
U _free
000001f0 T _gz_error
00000620 t _gz_open
00000000 T _gzbuffer
000002f0 T _gzclearerr
00000940 T _gzdopen
00000160 T _gzeof
000001a0 T _gzerror
00000150 T _gzoffset
000000d0 T _gzoffset64
000009d0 T _gzopen
000009b0 T _gzopen64
00000350 T _gzrewind
00000610 T _gzseek
00000420 T _gzseek64
000000c0 T _gztell
00000050 T _gztell64
U _lseek
U _malloc
U _open
U _sprintf
U _strcat
U _strcpy
U _strlen

gzread.o:
00000000 b .bss
00000000 d .data
00000000 N .debug_abbrev
00000000 N .debug_aranges
00000000 N .debug_frame
00000000 N .debug_info
00000000 N .debug_line
00000000 N .debug_loc
00000000 N .debug_pubnames
00000000 N .debug_pubtypes
00000000 N .debug_str
00000000 r .rdata
00000000 t .text
U ___errno
U _close
U _free
00000090 t _gz_avail
00000330 t _gz_decomp
U _gz_error
00000470 t _gz_fetch
00000000 t _gz_load
00000130 t _gz_look
00000510 t _gz_skip
00000a90 T _gzclose_r
00000a50 T _gzdirect
00000750 T _gzgetc
000007d0 T _gzgetc_
000008f0 T _gzgets
000005b0 T _gzread
000007e0 T _gzungetc
U _inflate
U _inflateEnd
U _inflateInit2_
U _inflateReset
U _malloc
U _memchr
U _memcpy
U _read
U _strerror

gzwrite.o:
00000000 b .bss
00000000 d .data
00000000 N .debug_abbrev
00000000 N .debug_aranges
00000000 N .debug_frame
00000000 N .debug_info
00000000 N .debug_line
00000000 N .debug_loc
00000000 N .debug_pubnames
00000000 N .debug_pubtypes
00000000 N .debug_str
00000000 r .rdata
00000000 t .text
U ___errno
U _close
U _deflate
U _deflateEnd
U _deflateInit2_
U _deflateParams
U _deflateReset
U _free
00000120 t _gz_comp
U _gz_error
00000000 t _gz_init
000002a0 t _gz_zero
00000860 T _gzclose_w
00000720 T _gzflush
00000610 T _gzprintf
000004f0 T _gzputc
000005c0 T _gzputs
000007a0 T _gzsetparams
00000380 T _gzwrite
U _malloc
U _memcpy
U _memset
U _strerror
U _strlen
U _vsnprintf
U _write




twitterから日本語文字列を検索する

Twitter Streaming APIで日本語文字列検索したいんですが・・・
うーん。文字コードのところがよくわかっていなくて・・・
if ($tweet->{text} =~ /おはよう/){
}
だと引っかかるけど。

my $text = encode("utf-8", $tweet->{text} || '');
if ($text =~ /おはよう/){
}
とすると引っかからなくなってしまう。
なんでやろ・・・

まぁ、ひっかかるからいいとするか。。。
プロフィール

鈍足ランナー

Author:鈍足ランナー
作成アプリ

Learn from AlphaGeeks
Twinani


最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。