nDiki : Perl
Perl
Naneyがよく使用しているプログラミング言語。 この nDiki を提供している DiKicker も Perl で記述されている。
ちなみに ``Perl はプログラミング言語を指し、``perl はその実装を指す(perlfaq1)。
ライブラリ
- 標準 Perl ライブラリ
- Perl モジュール
- Perl モジュールリスト - nDiki で取り上げた主なモジュールについて
関連情報
- CPAN
- Perl style guide - perlstyle で書かれている内容のメモ
- Naney Perl Coding Standards
- CGI
- Pod
- XS
- SWIG
- UTF8 フラグ
- Perl が好きな理由
- 社内 Perl 勉強会
- TIMTOWTDI
- 正規表現
スポンサード リンク
Related term
2007年11月18日 (日)
■ Google Analytics から TSV エクスポートしてキーワード詳細をチェック

Google Analytics で得られるキーワード情報で遊んでみようと思い、ちょっとその辺り触ってみた。
キーワードレポートを表示した後、Web ブラウザで今表示しているページの URL に末尾に&limit=50000 を追加 (公式ブログ参照)した URL のページを表示させて、次にエクスポートから TSV 形式でレポートを取得。
で、簡単なスクリプトで処理してキーワードを眺めてみた。
Google Analytics のページ上だと、現在このサイトのキーワード1位は「スーベレーンm400」。 ここにあがってくるのはキーワードの組み合わせによる順位なので、一旦バラしてみる。
そうすると結果はperlが1位。 最近そっち系の記事は減っているのだけれど、いちおうまだまだ主にコンピュータ関連のキーワードで検索されているようである。
個別に見てみると「-楽天」「-楽天市場」「-rakuten」「-yahoo」「-amazon」「-2ch」あたりもちらほら見かける。 検索結果の上位が通販ページで占められて、なかなか欲しい情報に辿りつけないことも実際多い。それらをうまく外したいという思惑だろう。 ちなみに自分は主要な通販サイトやオークションサイト を CustomizeGoogle でフィルタリングしてしまっている。
not 演算子って自分のサイトでどの語が嫌われてリーチしなかったかわわからない(当然アクセスしてこないから統計にあがらない)から、共有できると面白いとは思うんだけれどもな。
それと Google Analytics のエクスポートは API はないのかな。メールで定期的に送ってもらうことはできるので、設定すれば自動的にローカルでスクリプトにかけることはできるといえばできるのだけれど、こちらから簡単に取りにいければもっと嬉しい。
- MAILPIA による Twitter リプライチェック (2008-11-18)
- Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 (2006-07-22)
- JavaScript でのプログラミングやっぱり面倒くさい (2006-07-23)
- Google Analytics のデータからよく検索されるキーワードを表... (2007-12-18)
- Twitter を使い始めて1年 (2008-04-06)
2007年12月19日 (水)
■ 初めての Perl は C MAGAZINE

12月18日に Perl v5.10.0 がリリースされた。 1987年12月18日にリリースされた 1.000 (perlhist(1) より) から数えて20年目にあたるリリースである。
思い起こしてみると、自分が初めて Perl を知ったのは C MAGAZINE 1991年9月号の 特集フィルタ系言語研究,Part3 Perl入門 (前田薫氏) だったと思う。
当時は PC-88VA2 を使っていて、DOSエクステンダ版を試した記憶がある。 動いたような動かなかったような。
当時は UNIX 系システムは全く触れたことがなく、スクリプト言語もほとんど知らなかったので $ とか @ にはめまいを感じたものだ。
まさかあの Perl が今の自分にとって、第1プログラミング言語になるとは思ってもみなかった。
- 近谷研OB会代替OFF会 (2004-03-20)
- 私的10大ニュース2004 [ comp ] (2004-12-31)
- 第12回 社内 Perl 勉強会 (2006-07-31)
- Perl モジュール Parse::Lex 2.10 をインストール (1999-08-18)
- PAR (2004-07-19)
2007年12月27日 (木)
■ 今日のさえずり - それ多分 Gmail spam フォルダの中

- 09:33 MovaTwitter の設定がリセットされていた(ように見える)。再設定。[mb]
- 09:53 原付兄ちゃんが、点滅している信号を渡っている人に「赤になります。ご注意ください。轢きますよ。」と淡々と警告してた。L:秋葉原[mb]
- 10:06 原付の人ちょっとヤバい感じだった (暴力的とかいうのではなくて、ちょっといってるような)。 *Tw*
- 10:07 出社したらオフィスの玄関を入ってすぐのオブジェにイルミネーションが。誰? (社長ではないらしい) *Tw*
- 12:00 Perl の statement modifiers (if/unless/while/until/foreach) に慣れると、C# とかで if 文とか書くのかったるい。 *Tw*
- 12:32 社長がいっていた「報告メールがまだ」、それ多分 Gmail spam フォルダの中 (同じメールがこの間 spam フォルダに入ってた)。 *Tw*
- 13:08 NUnit 2.4.5 インストール。 *Tw*
- 18:37 NUnit でデータベースの CREATE/DROP テスト書いていてどうもうまくいかないと思ったら、Npgsql がデフォルトで接続プールしてて DROP を阻止していた模様。 *Tw*
- 18:39 オフィスの皆が忘年会に出発したので静寂がおとずれた。 *Tw*
- 19:11 [mixi] おすすめマイミクシィ巡回してみた。友達の友達が友達になるかというとどうかな。 http://indies.mixi.jp/recommend.pl
- 23:55 母の分の年賀状印刷完了。
- 今日のさえずり - ホームレスグーチョコランタン (2008-10-27)
- 今日のさえずり - 京都の小学校のコンピュータ室にいったら、Squeak が (2008-03-06)
- 今日のさえずり - 昭和通り側に鯛焼き屋あり (2008-09-30)
- 今日のさえずり - ごっつ旨 (2008-02-04)
- 今日のさえずり - ささやかな気持ちDES (2008-11-07)
2007年12月29日 (土)
■ Twitter ベイジアンフィルタプロキシ

Twitter で following が増えてくるにつれて、タイムラインに目を通すのが大変になってきた(という程きちんと見ている訳ではないが)。 さっとタイムラインをなめて面白そうな情報をピックアップしたい時は、「おはよう」とか「風呂入った」とか「トイレ」とかは除外して読みたい(そういう書き込み自体は嫌いじゃないのだが、人生はあまりにも短い)。
Twit や P3:PeraPeraPrv では NG ワード指定ができて、それらを含むステータスは表示しないようにできるのだが、Twitter の書き込みは揺らぎが激しすぎて指定しきれないという弱点がる。
ということでベイジアンフィルタでフィルタリングしてみることにした。
自前で Twitter クライアントを作る気はないので、proxy の形でさっと実装してみた。
#!/usr/bin/perl
use strict;
use warnings;
use HTTP::Proxy;
use HTTP::Proxy::BodyFilter::complete;
my $proxy = HTTP::Proxy->new(port => 8088);
$proxy->push_filter(response => HTTP::Proxy::BodyFilter::complete->new,
mime => 'application/xml');
$proxy->push_filter(response => Bsfilter->new,
mime => 'application/xml');
$proxy->start;
{
package Bsfilter;
use File::Temp qw/tempfile/;
use XML::XPath;
use base qw(HTTP::Proxy::BodyFilter);
sub filter {
my ($self, $dataref, $message, $protocol, $buffer) = @_;
return unless defined($$dataref) && $$dataref ne '';
eval {
my $xml = XML::XPath->new(xml => $$dataref);
my @nodes = $xml->findnodes('/statuses/status/text/text()');
return unless @nodes;
for my $node (@nodes) {
my $text = $node->getNodeValue;
if (is_NG($text)) {
$node->setNodeValue("[NG] $text");
}
}
$$dataref = qq(<?xml version="1.0" encoding="UTF-8"?>\n);
$$dataref .= $xml->get_context->toString;
utf8::encode($$dataref);
};
if ($@) {
warn $@;
}
}
sub will_modify { 1 }
sub is_NG {
my ($text) = @_;
my ($fh, $filename) = tempfile();
utf8::encode($text);
print $fh $text;
close($fh);
my $result
= system(
"bsfilter --homedir ~/.twitter-bsfilter --ignore-header --auto-update $filename"
);
unlink($filename);
return !$result;
}
}
@ HTTP proxy の作成
Perl で HTTP proxy を作ろうとして真っ先に思い浮かんだのは POE だけれど、ちょっとヘビーなので今回は HTTP::Proxy をチョイス。 もともとフィルタリング HTTP proxy を作ることを念頭に置いた Perl モジュールなので今回の目的にぴったり。
1つはまった点といえば、filter の呼び出しがレスポンス全てを取得してからではなく一部分ずつの呼び出しになるところ。その仕様に気がつくのにちょっと時間がかかってしまった。 例えば XML 形式のレスポンスをフィルタしようとしても、普通に HTTP::Proxy を使うと XML の一部ずつがフィルタに渡されるため、XML のパースがうまくいかない。
これについては HTTP::Proxy::BodyFilter::complete を使うことで、まとめてフィルタに渡せるようになった。
@ レスポンスの処理
Twitter のタイムライン取得については P3:PeraPeraPrv が XML 形式で取得しているので、そのタイプのレスポンスをフィルタするようにした。
XML::XPath でステータス部分を抜き出して NG 判定し、NG であれば先頭に [NG] を追加する。 これで Twitter クライアント側で [NG] を NG ワード指定すれば、表示されないようにすることができる。
@ bsfilter による NG 判定
NG 判定は普段メールの spam フィルタとして使っている bsfilter を使った。 単純に system 関数で呼び出して結果を取得するだけ。
今回は対象がメールではないので --ignore-header を指定。また自動的に学習するように --auto-update を指定。 それと普段メールのフィルタリングに使っているのとは bsfilter のデータベースを別にしたいので、--homedir も指定しておく。
@ NG と非 NG の学習。
NG ワードを twitter-NG.txt に、非 NG ワードを twitter-clean.txt に書いて以下のコマンドを実行。
bsfilter --add-clean --ignore-header --homedir ~/.twitter-bsfilter twitter-clean.txt bsfilter --add-spam --ignore-header --homedir ~/.twitter-bsfilter twitter-NG.txt bsfilter --update --homedir ~/.twitter-bsfilter
自分の環境 (Debian GNU/Linux sid)では、UTF-8 で書いておいて問題なかった。
@ フィルタリングしてみる
あとは先の proxy を起動し、P3:PeraPeraPrv でプロキシとして localhost:8088 を指定すれば OK。
タイムラインを取得するたびに bsfilter が動いて NG なステータスには [NG] が挿入される。
@ フィルタリングの精度
これについては、まだまだチューンの必要ありかな。
- 事前の学習データが少ない。
- --auto-update していることもあり、最初に NG 判定が多いとそちら側に強化されすぎる。
- 毎回 bsfilter を呼んでいるため、同じステータスが何度も学習される。
まだ使える精度まで上がってないけれど、教師データを増やせばそれなりにいけるかもしれない。
proxy の枠組ができたので、(@~は抜いてから bsfilter に渡すとか、前後の文脈も含めるとか)いろいろ試して遊べそうではある。 別に bsfilter にこだわらず、正規表現による判定などをしてもよいし。
この辺り P3 は Java で書かれているので、プラグインを書いて拡張できるよう将来になると面白いなと思ってみたり。
- ColdSync (2004-05-05)
- MAILPIA による Twitter リプライチェック (2008-11-18)
- POE で HTTP プロキシサーバ (2005-10-15)
- 今日のさえずり - サーバ止めた。この静寂がたまらない。 (2008-11-16)
- PAR (2004-07-19)
2008年2月25日 (月)
■ Twitter への書き込みを自動的に Skype ムードメッセージに設定する

Linux for Skype の Skype API は D-Bus を使ってアクセスすることができる。 Debian GNU/Linux sid 上の Skype for Linux 2.0.0.43 で、Perl スクリプトから自動的にムードメッセージを更新するようにしてみた。
Skype が起動している状態で以下のスクリプトを実行する。
#!/usr/bin/perl
use strict;
use warnings;
use Net::DBus;
use URI::Fetch;
use XML::RSS;
use Date::Parse;
my $id = '自分の Twitter ID';
my $time = time;
my $fetch_response
= URI::Fetch->fetch(
"http://twitter.com/statuses/user_timeline/$id.rss?dummy=$time")
or die URI::Fetch->errstr;
my $rss = XML::RSS->new;
$rss->parse($fetch_response->content);
die 'no items' if @{$rss->{items}} == 0;
my $item = $rss->{items}->[0];
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst)
= localtime(str2time($item->{pubDate}));
my $title = $item->{title};
my $mood
= sprintf("[%02d/%02d %02d:%02d] $title", $mon + 1, $mday, $hour, $min);
my $bus = Net::DBus->session;
my $service = $bus->get_service('com.Skype.API') or die;
my $invoker = $service->get_object('/com/Skype') or die;
my $response = $invoker->Invoke('NAME twitter2skypemood');
die $response if $response ne 'OK';
$response = $invoker->Invoke('PROTOCOL 5');
die $response if $response ne 'PROTOCOL 5';
$response = $invoker->Invoke("SET PROFILE MOOD_TEXT $mood");
のようなダイアログが表示されるので、「この選択を記憶する」をチェックして、はいを選択。
そうすると RSS フィードとしてとってきた 自分の Twitter メッセージが、Skype のムードメッセージに表示される。自分の環境では日本語も問題なく表示される。
うまくいったので cron で定期的に更新するようにしてみた。
@ 追記
- Twitter への書き込みを自動的に Skype ムードメッセージに設定... (2008-08-05)
- Twitter を使い始めて1年 (2008-04-06)
- 今日のさえずり - Twitter 日本語表示みた (2008-04-23)
- Linux 上で Flex 2 SDK を使った Flash コンテンツ開... (2007-09-11)
- MAILPIA による Twitter リプライチェック (2008-11-18)
2008年3月6日 (木)
■ 今日のさえずり - 京都の小学校のコンピュータ室にいったら、Squeak が

@ 2008年03月05日
- 08:47 朝起きてエアコンつけたら、いきなりホットキープランプ点灯。故障しかけてるっぽい。[mb]
- 11:33 しまった。昨日1件仕事のメールをプライベート用アドレスで送ってしまった。まいっか。
- 13:02 家からもってきた雛あられがオフィスで人気。
- 13:08 [photo] 小さいプリン貰った。 http://tinyurl.com/2urto7
- 16:49 Debian 上で C# ライブラリを Emacs + Mono + NAnt + NUnit で開発・ビルドする道筋をまずつくった。
- 18:45 ソニッケアーのブラシ買った。もう帰りの電車の中。[mb]
- 18:52 この時間に酒臭い人が乗車してきた。さすが新橋。[mb]
- 21:46 薬を会社に忘れてきた。しょうがないので同じものを処方された妻のをもらった。明日返す。[mb]
@ 2008年03月06日
- 11:33 そういえばこの間京都の小学校のコンピュータ室にいったら、Squeak がインストールされていた。使っているのか?
- 12:53 オートペディアしてみた。 http://tinyurl.com/3ygonk
- 14:18 サーバ上で svnadmin create してみたが何故か終了しない。何度かやっても駄目。バージョン上げてみるか。
- 14:34 Subversion 1.3.0 から 1.4.5 (Red Hat Linux 8.0 用バイナリ) にあげたら、すんなり svnadmin create できるようになった。
- 17:00 そうか C# って既にあるクラス名と同じ名前空間名を作れないのか。Perl の package と同じつもりでいたので、名前考え直しだ。
- 18:20 昨日のお昼に注文した VQ1005 の注文確認メールがようやくきて一安心。
- [ Perl ] PDL 2.4.1 から eigens が固有ベクトルを... (2004-03-05)
- Linux で使えるデスクトップ検索ツール Beagle でローカルファイ... (2006-08-08)
- 今日のさえずり - それ多分 Gmail spam フォルダの中 (2007-12-27)
- Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 (2006-07-22)
- 納品前日なのに /var が壊れた! HDDからのブートで Debian ... (2005-09-27)
2008年3月13日 (木)
■ Twitter のアイコンを Perl スクリプトで更新する

API 経由では Twitter のアイコンを変更できなさそうなので、WWW::Mechanize でアイコン画像をアップロードする Perl スクリプトを書いてみた。
#!/usr/bin/perl
use strict;
use warnings;
use WWW::Mechanize;
die "no file name" if @ARGV == 0;
my $file_name = $ARGV[0];
my $name = 'ユーザ名';
my $password = 'パスワード';
my $mechanize = WWW::Mechanize->new();
$mechanize->get('http://twitter.com/');
die unless $mechanize->success;
$mechanize->submit_form(form_number => 1,
fields => {
username_or_email => $name,
password => $password});
die unless $mechanize->success;
$mechanize->follow_link(text => 'Settings');
die unless $mechanize->success;
$mechanize->follow_link(text => 'Picture');
die unless $mechanize->success;
$mechanize->submit_form(
form_number => 1,
fields => {'profile_image[uploaded_data]' => $file_name}
);
die unless $mechanize->success;
- Twitter を使い始めて1年 (2008-04-06)
- Flickr の写真を自動的に Twitter アイコンにする (2008-03-13)
- MAILPIA による Twitter リプライチェック (2008-11-18)
- PAR::Repository でビルド済み Perl モジュールをネット... (2006-12-12)
- 他の Web サイトの情報を URI::Fetch でキャッシュ付き取得 (2005-10-29)
2008年8月5日 (火)
■ Twitter への書き込みを自動的に Skype ムードメッセージに設定する for Windows

半年ぐらい前に Skype for Linux で Twitter への書き込みを自動的に Skype ムードメッセージに設定するスクリプト(記事)を作って cron で 10分毎に更新するようにした。
Windows BOX 上 Skype を使っている時も同様にできるように、Skype4COM を使うバージョンも書いてみた。 D-Bus ではなく Skype4COM を使うようにすることと、Skype4COM にはシフト JIS の文字列を渡すようにすること以外はほとんど同じ。
Skype4COM の DLL を登録し、Skype が起動している状態で以下の Perl スクリプトを実行。
#!/usr/bin/perl
use strict;
use warnings;
use Win32::OLE;
use URI::Fetch;
use XML::RSS;
use Date::Parse;
use Encode;
my $id = '自分の Twitter ID';
my $time = time;
my $fetch_response
= URI::Fetch->fetch(
"http://twitter.com/statuses/user_timeline/$id.rss?dummy=$time")
or die URI::Fetch->errstr;
my $rss = XML::RSS->new;
$rss->parse($fetch_response->content);
die 'no items' if @{$rss->{items}} == 0;
my $item = $rss->{items}->[0];
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst)
= localtime(str2time($item->{pubDate}));
my $title = $item->{title};
my $mood
= sprintf("$title [%02d/%02d %02d:%02d]", $mon + 1, $mday, $hour, $min);
$mood = Encode::encode('shiftjis', $mood);
my $skype = Win32::OLE->new('Skype4COM.Skype');
$skype->Client->Start unless $skype->Client->IsRunning;
my $profile = $skype->CurrentUserProfile;
$profile->{MoodText} = $mood;
インストール済みだった ActivePerl 5.8.8.822 で動作を確認(ちなみに現時点での最新は ActivePerl 5.10.0.1003)。なお URI::Fetch、XML::RSS、Date::Parse(TimeDate) は標準では入っていないので PPM パッケージでインストール。
タスク スケジューラで10分毎に上記のスクリプトを wperl.exe で実行するように設定。 これで Windows 上でもさえずりをムードメッセージに設定できるようになった。
- Twitter への書き込みを自動的に Skype ムードメッセージに設定する (2008-02-25)
- PAR::Repository でビルド済み Perl モジュールをネット... (2006-12-12)
- ActivePerl で Ming (2005-02-23)
- Twitter ステータスを nDiki サイドバーに表示 (2007-11-09)
- ちょっと複雑なネット用統合アドレス帳 Ripplex (2008-04-30)
2008年8月15日 (金)
■ 今日のさえずり - 泣きながら 100g 少なくなったアタックを買った

@ 2008年08月12日
@ 2008年08月13日
@ 2008年08月14日
@ 2008年08月15日
- 09:39 ポケモンスタンプラリー2008、今日は閑散として寂しげ。[mb]
- 11:04 Google ドキュメント、[Print...] すると古い版の印刷がでる時があって困る。どっかでキャッシュしてるのかな。
- 11:32 色付けした Perl コードを Google ドキュメントに入れる良い方法がさっと思い浮かばなかったので、htmlize-buffer してブラウザで表示してスクリーンキャプチャとって画像として貼った。
- 12:45 Google リーダーが Twitter のフィードから更新とれる間隔が随分長くなってきた。
- 16:48 ライフハッカー [日本語版] 、子ネタとかソフトウェア紹介とかが多くてちょっとガッカリ。
- 17:56 今日までの日報をサーバにコピーしようとするも失敗。ディスクフル?
- 18:10 ザ・ゴール読み始めた。
- 20:08 お盆出勤終わった。キタ、俺の夏休み。[mb]
- 20:15 あーそうか、Google リーダーは更新が少ないフィードについて当然だが巡回頻度下げてるのか。Twitter のフィードの流れで気がついた。[mb]
- 20:32 松屋の弁当セパレート指定の存在を知った。[mb]
- 今日のさえずり - 100g 減る前にアタック買いだめ (2008-05-28)
- ソフトウェア技術者御用達のプロジェクトマネジメントツール TaskJuggler (2007-04-23)
- Twitter への書き込みを自動的に Skype ムードメッセージに設定する (2008-02-25)
- MAILPIA による Twitter リプライチェック (2008-11-18)
- Wink - チュートリアル/プレゼンテーション作成ツール (2004-11-19)
2008年11月18日 (火)
■ MAILPIA による Twitter リプライチェック

リプライのチェックは Twitter 検索での「@自分」検索結果 + MAILPIA にしていた。しかし夏ぐらいから Twitter 検索は Twitter API の仕様変更であまり検索がヒットしなくなってしまいリプライをメールで受信できなくなってしまった。
まだ使ったことないけど「あらったー!」も取りこぼしがあるらしいし、replies API を使うクローズドアルファバージョンは登録受付終了中。
とりあえず replies.atom をさらす Perl CGI スクリプトを作って、それを MAILPIA に読ませることにした。 骨子はこんな感じのみ(実際には一応パスワードを暗号化して保存しておいたりしている)。
use CGI;
use LWP::UserAgent;
my $url = 'http://twitter.com/statuses/replies.atom';
my $query = CGI->new;
my $user_name = 'myusername';
my $password = 'mypassword';
my $ua = LWP::UserAgent->new;
$ua->credentials('twitter.com:80', 'Twitter API', $user_name, $password);
my $response = $ua->get($url);
print $query->header('application/atom+xml; charset=utf-8');
print $response->content;
これを設置した URL を MAILPIA に登録して出来上がり。
@ Twitter Search
考えてみたら Twitter 公式の検索があるんだっけ。 日本語検索が駄目駄目なので使っていないけれど、リプライ検索には使える。
新しいリプライもすぐひっかかるようなので Twitter Search + MAILPIA の方がいいな。 パスワードサーバにおいておかなくても良いし。
……と思ったらフィードの title にリプライした人の名前が入っていないな (author に入っている)。これだと MAILPIA からのメールに名前がはいらないかもしれない。
ま今回は自作スクリプト経由にしておくか。
- Twitter を使い始めて1年 (2008-04-06)
- Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 (2006-07-22)
- Google Analytics から TSV エクスポートしてキーワード... (2007-11-18)
- 携帯電話(iモード)から Twitter を更新する (2007-04-07)
- MAILPIA による Twitter チェック (2008-04-04)
スポンサード リンク
■よく検索されるキーワード
提案書(75) torrent(69) perl(61) 書き方(45) 充電式カイロ(43) windows(38) x31(36) 使い方(32) linux(32) cvs(25) アジェンダとは(25) usb(25) thinkpad(23) 静電気(21) サンプル(20) 口コミ(20) ヨドバシ(20) アジェンダ(20) 画像(19) debian(19) ubuntu(19) mp980(18) f-01a(18) 手帳(17) tc-1(17) 秋葉原(16) ssh(16) subversion(16) グッズ(16) a6(15) 壁紙(15) ほぼ日手帳(15) c#(14) ダイソー(14) svn(14) 交換(14) インストール(13) 加湿器(13) firefox(12) ノート(12) 無印(12) 日本語(12) wiki(12) ganttproject(12) デロンギ(11) 方眼(11) ヨドバシカメラ(11) デザイン(11) nikkor(11) 設定(11) 作り方(11) dropbox(11) af(10) terastation(10) memcached(10) レビュー(10) カバー(10) カイロ(10) 2009(10) 除去(10) nikon(10) tortoisesvn(10) クラリチン(9) ガントチャート(9) 動画(9) ポメラ(9) ご査収(9) rcs(9) モジュール(9) n-01a(9) フィルム(9) 写真(9) システム手帳(9) edition(9) porter(9) xp(8) imap(8) 4c(8) docomo(8) ミニ6穴(8)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザインProcess Time: 15.311022s / load averages: 0.11, 0.27, 0.35
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)





スポンサード リンク