nDiki : Makefile.PL
Makefile.PL
スポンサード リンク
Related term
2005年5月18日 (水)
■ Inline::Pdlpp で 手軽に PDL::PP のコードを書く

PDL を使用しているプログラムの高速化のため、再び PDL::PP でコードを書こうとマニュアルを見直したりしている。
PDL::PP にも Inline 系の Inline::Pdlpp モジュールが用意されているのか。 PDL::PP の仕様は結構わかりにくくて(かなり)慣れないと大変。 何度も書いてはテストしてみることになるので、そういった意味でも Inline できるのはすごい便利。
Inline::pdlpp で関数ができあがったら 整理して PDL::Core::Dev のサポートのもとで Makefile.PL を書くようにすれば、いっちょあがり。
- [ Perl ] PDL::PP で C extension を書く (2004-02-19)
- 今日のさえずり - 「ポロシャツなら一緒ですよ」と若い女の子に一蹴された (2009-09-04)
- PDL と 疎行列 (2004-06-14)
- 続 PAR 化 (2004-08-25)
- 「依存関係検査のしにくいモジュール」に依存するスクリプトをPARで実行形式化する (2005-03-08)
2005年5月19日 (木)
■ DBD::Oracle 1.16 を Debian GNU/Linux sid に入れる

インストール方法は「Instant Client10g」を参考にした。
@ Oracle クライアントライブラリを取得
Oracle Technology Network License のもとで配布されている、Oracle Database 10g の instant client を利用する。 30日間試用可能。
- instantclient-basic-linux32-10.1.0.3.zip
- instantclient-sdk-linux32-10.1.0.3.zip
- instantclient-sqlplus-linux32-10.1.0.3.zip
をダウンロード。
@ Oracle クライアントライブラリを展開
/usr/local/oracle の下に展開。シンボリックリンクをいくつか設定する。
mkdir /usr/local/oracle cd /usr/local/oracle unzip /tmp/instantclient-basic-linux32-10.1.0.3.zip unzip /tmp/instantclient-sdk-linux32-10.1.0.3.zip unzip /tmp/instantclient-sqlplus-linux32-10.1.0.3.zip cd instantclient10_1 ln -s . lib ln -s libclntsh.so.10.1 libclntsh.so ln -s libocci.so.10.1 libocci.so
@ ビルド環境を設定
環境変数を設定する
export ORACLE_HOME=/usr/local/oracle/instantclient10_1 export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
@ DBD::Oracle を deb パッケージ化
まずはソースアーカイブを展開。
tar ztvf DBD-Oracle-1.16.tar.gz cd DBD-Oracle-1.16
次に Makefile.PL を編集
5a6,7
> push(@ARGV, '-l');
>
279c281
< my @h_dirs = find_headers();
---
> #my @h_dirs = find_headers();
283c285
< push @h_dirs, 'network/public';
---
> #push @h_dirs, 'network/public';
289c291,292
< my $inc = join " ", map { "-I$OH/$_" } @h_dirs;
---
> #my $inc = join " ", map { "-I$OH/$_" } @h_dirs;
> my $inc ="-I/usr/local/oracle/instantclient10_1/sdk/include";
725c728
< exit 0;
---
> #exit 0;
1606a1610
> 1;
ヘッダファイルディレクトリ自動取得を止めて決め打ちにし、また Makefile.PL 実行時に -l を指定するようにする。 それから dh-make-perl がモジュール依存関係取得するため Makefile.PL を require した際に真を返さないでエラーになってしまうようなので、これも修正。
でパッケージ化。
rm META.yml # あると dh-make-perl が deb パッケージ名をつけ間違える? dh-make-perl --build --notest
deb パッケージ
libdbd-oracle-perl_1.16-1_i386.deb
ができあがるので、これを dpkg でインストール。
@ 実行時
とりあえず、手近のサーバに接続して、簡単な select が動くことを確認。
いまのところ DBD::Oracle を使用するPerlプログラム実行時にも LD_LIBRARY_PATH を同様に設定しておく必要あり。
Makefile.PL 書き換え時に、
$opts{dynamic_lib}->{OTHERLDFLAGS} .=
'-Wl,-rpath -Wl,/usr/local/oracle/instantclient10_1';
と -rpath を指定してみたが、
DBI connect('host=192.168.x.x;sid=dbsid','usr',...) failed: ERROR OCIEnvNlsCreate (check ORACLE_HOME and NLS settings etc.) at test.pl line 3
ERROR OCIEnvNlsCreate (check ORACLE_HOME and NLS settings etc.) at test.pl line 5.
というエラーが出て駄目。
- Berkeley DB 4.2.52 + DB_File 1.808 をホ... (2004-02-08)
- ActivePerl で Ming (2005-02-23)
- Debian GNU/Linux sid 環境を新 HDD へ (2006-07-29)
- Debian Linux kernel 2.6.26 にアップデート (2009-02-07)
- sid の CinePaint がプラグイン読み込みでエラー (2006-04-15)
2005年8月24日 (水)
■ Module::Build でソースパッケージング

@ ExtUtils::MakeMaker
私が Perl が好きな理由の一つに、標準でExtUtils::MakeMakerという Makefile ジェネレータがついているところである。これを使って Makefile.PL を書くと
perl Makefile.PL make manifest make make test make dist
で <pacakge>-<versionno>.tar.gz というソースパッケージを作ることができ、
tar zxvf <pacakge>-<versionno>.tar.gz cd <pacakge>-<versionno> perl Makefile.PL make make test make install
という手順でインストールする事ができるようになる。 パッケージの作り方が確立されているので、容易に新しいパッケージを開発しはじめられる。
逆に Java でプログラムを書くのが億劫なのは、このあたりの準備が面倒だからである。 Ant を使っても結局ここら辺自分でやらなければならないし。
@ ちょっとしたアーカイブの作成
ちょっとしたパッケージを作りたいと思うことは良くある。 例えばいくつかのデータファイルと、READMEファイルなんかをひとまとめにしてアーカイブにするとか。
本当にちょっとしたであれば、手動でアーカイブすれば良いのだが、
- アーカイブしたいファイル群がバージョン管理下にあって、CVS ディレクトリや .svn ディレクトリがある (除外してアーカイブする必要がある)
- 同じディレクトリにある、作業用のファイルはアーカイブしたくない (除外してアーカイブする必要がある)
- アーカイブする前に、チェック用のリグレッションテスト一式を走らせたい (リグレッションテストをかけられるようにする)
- UNIX でも Windows でもアーカイブ化できるようにしたい。
あたりを考慮しなければならない時は面倒くさくなってくる。
自動化としては
- シェルスクリプト/バッチファイルを書く
- Makefile を書く
- GNU Autotools を使う
あたりがぱっと思い浮かぶ。 しかし、最初の2つは毎回同じようなものを書くのが面倒だし保守もしにくい。 GNU Autotools はちょっとごっつすぎだし、Windows での環境構築も面倒。
@ ExtUtils::MakeMaker の欠点
ということで最初は ExtUtils::MakeMaker を使うという線で考えてみた。 もともと Perl モジュール用で汎用用途にはちょっと邪魔な振舞いもあるが、使えないことはないと思う。 しかし make (GNU Make あるいは nmake など) に依存しているという欠点がある。
@ Module::Build で
ということで ExtUtils::MakeMaker の代替である Module::Build ベースで汎用用途に使えないか検討してみた。こちらは pure Perl で make を必要としない。
Module::Build も Perl モジュールビルドにあわせた振舞いがあるものの、ちょっとカスタマイズすれば使えそうだ。 で、いろいろいじった結果、次のような感じにすると使いやすそうだ。
use Module::Build;
my $class = Module::Build
->subclass(class => 'NonmoduleBuilder',
code => q{
# Don't make blib
sub ACTION_code {};
# Don't make blib
sub ACTION_docs {};
# Don't make META.yml
sub ACTION_distmeta {
# no warning on ACTION_distdir
$_[0]->{metafile} = 'MANIFEST';
};
# Don't add MEATA.yml to MANIFEST
sub ACTION_manifest {
$_[0]->{metafile} = 'MANIFEST',
$_[0]->SUPER::ACTION_manifest(@_);
};
});
# Set your archive name and version.
$class->new(dist_name => 'mypackage',
dist_version => '1.0.2',
)->create_build_script;
カスタマイズした部分は以下(Module::Build 0.26 で動作確認)。
- Perl モジュールビルドに特有の blib ディレクトリを作らないようにする。
- META.yml を生成しないようにし、アーカイブに含まれないようにする。
上記のようなファイルを Build.PL という名前で作っておけば
perl Build.PL ./Build manifest ./Build ./Build test ./Build dist
等として、アーカイブ作成が容易にできるようになる。
しばらくこの方法でいろいろ試してみることにしてみよう。
- SCons は GNU Autotools のかわりになるか (2005-04-20)
- ActivePerl で Ming (2005-02-23)
- nmake で毎回 pl2bat されるのを何とかしたい (2004-11-25)
- 私的10大ニュース2004 [ comp ] (2004-12-31)
- WiKicker の Makefile.PL を Module::Inst... (2006-02-10)
2005年11月14日 (月)
■ 久しぶりに build.xml を書く

ソフトウェアのレビュー日。 最近ミーティングの調整やドキュメントの作成などばかりで、ソースコードに触れる機会がほとんどなかったので Eclipse なんか入れちゃったりしてウキウキ。
……あれ? ビルドまだ自動化してないの? いや、普通まず最初にビルド自動化しておくでしょ。configure.ac とか Makefile.am とか Makefile とか Makefile.PL とか Build.PL とか書いちゃうでしょ。 Java ならまあ build.xml とか書いとくでしょ。 make dist (相当が)できるようなターゲット書いておくでしょ。
……無いのね。Eclipse でぬくぬく書いてるのね。コード書いている間はいいよ。 でもね、節目のビルドはね、そういうのでやってね。ビルドファイルの含めているソースアーカイブもコマンド一発で作れるようにしておいてね。
はい。では、書きますよ。今回は私が。 次はちゃんと書いてね。
- assertion (2004-05-16)
- 今日のさえずり - 爺さんがゴツい爺ショックケータイ持っているとカッコイイ (2009-02-05)
- Module::Build でソースパッケージング (2005-08-24)
- 「プロジェクトマネジメント」はどうやって勉強すれば良いですか? (2006-11-22)
- 「依存関係検査のしにくいモジュール」に依存するスクリプトをPARで実行形式化する (2005-03-08)
2006年2月10日 (金)
■ WiKicker の Makefile.PL を Module::Install ベースに

WiKicker には依存している Perl モジュールとして、必須なものとオプションなものがある。 必須なものは例えば Log::Log4perl など。 一方 Cache::Memcached や HTML::Scrubber などは、追加機能を使用したい場合のみ必要である。
一般的な Perl モジュールパッケージと同様、WiKicker では Makefile.PL に ExtUtils::MakeMaker を使っている。 必須な依存 Perl モジュールは PREREQ_PM に指定してあるが、オプションのものについては独自にチェックして警告をするにとどめていた。 しかしこれだと、オプションのものは CPAN.pm を使って自動的にインストールすることができない。
ということで検討した結果、Module::Install を用いることにした。 Module::Install を用いて Makefile.PL を作成すると、
- 依存モジュールを、それぞれ必須のもの・ビルドのみ時に必要なもの・推奨のものと分けて処理できる。
- Makefile.PL 実行時に、未インストールの依存モジュールを CPAN からインストールできる。
- 依存モジュールを feature 別にまとめて、ビルド時に未インストールのものをインストールするか対話的に選択できる。
などの機能が使えるようになる。
Module::Install の実行に必要なファイルはパッケージの inc ディレクトリ以下に自動的にコピーされ配布パッケージに含められるので、インストールする側はそのために余分なインストールを強いられることもない。
最終的に内部で ExtUtils::MakeMaker を使っているので、それの機能はほぼ全て使える。
Perl のバージョンも 5.004 から使えるとのことで、Perl 5.005_03 以上を対象としている WiKicker で使っても問題なし。
ということで、Makefile.PL をさらっと書き換え。
合わせて WiKicker に含まれていた実験的な機能を削除して、(オプションな)依存モジュールも減らすことにした。
次回のリリース版から、Module::Install ベースだ。
- 最新の Module::Install は Perl 5.005_03 ステ? (2006-04-29)
- 野良パッケージと依存 Perl モジュールのインストールセット をCPAN... (2006-02-11)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
- [ Perl ] Memcached を使ってみる (2004-01-12)
- WiKicker 0.29 リリース - ビルドまわりの改良など (2006-02-13)
2006年2月11日 (土)
■ 野良パッケージと依存 Perl モジュールのインストールセット をCPAN::Site で

WiKicker をオフラインで簡単にインストールできるようにしたい。 WiKicker 自体は
perl Makefile.PL make make test make install
で簡単にインストールできるのだが、事前に CPAN にある依存 Perl モジュール(とそれらが依存している Perl モジュールら)をインストールしておかなければならない。
オンライン環境では CPAN.pm を使って芋蔓式にインストールできる。 WiKicker は次回のリリースから Module::Install を採用するので、perl Makefile.PL 時にそれらを行うことができるようにもなる。
しかしオフライン環境になると、話は変わってくる。
普通にやろうとするとあらかじめ依存関係を全部洗い出して事前にダウンロードしておき、依存関係の順番を考えながらインストールしていかなければならない。
これがかなり面倒。しかも各モジュールのバージョンアップにともない、その時その 時で変化する可能性があるので、適宜確認しなければならない。
でれば CPAN.pm の力を借りたい。
CPAN.pm はインストール時に $CPAN::Config->{keep_source_where} (通常 ~/.cpan/sources) に溜め込むので、これを CD-ROM 等に書き込んでオフラインインストールで使用することができる (cf. perldoc CPAN)。
だいたいはこれでうまくいくのだが問題もあって、この方法だと(WiKicker などの)野良パッケージを、うまく一緒にすることができない。
野良パッケージを扱うには CPAN::Site、あるいは CPAN::Mini::Inject あたりを使えば良さそうだ。
今回はまず、CPAN::Site での手順を調べてみる。
~/perl-5.8.8 以下にクリーンな Perl v5.8.8 をインストールしてインストールセットを作成していく。
@ CPAN::Site をインストールする (オンライン)
rm -rf ~/.cpan ~/perl-5.8.8/bin/perl -MCPAN -e shell cpan> install LWP cpan> install CPAN::Site cpan> exit
これで CPAN::Site が使えるようになるとともに、CPAN::Site と LWP および依存モジュールのソースアーカイブが ~/.cpan/sources 以下にたまる。
WiKicker のインストール中に libwww-perl を途中で入れると CPAN.pm が使ってこともあってかうまくいかないので、先に一緒に入れてしまう。
@ インストールしたい野良パッケージ用のローカル CPAN サーバを作成する
野良パッケージら (今回は WiKicker のみ)を含んだ ローカル pseudo CPAN サーバを作成する。
mkdir -p ~/public_html/CPAN/authors/id/N/NA/NANEY cp WiKicker-0.xx.tar.gz ~/public_html/CPAN/authors/id/N/NA/NANEY ~/perl-5.8.8/bin/mkpackages ~/public_html/CPAN
CPAN::Site に含まれている mkpackages を使うことで、CPAN::Site が参照することのできるインデックスファイルが作成される。
@ WiKicker と依存するモジュールをインストールする (オンライン)
次に ローカル CPAN サーバと、CPAN (ミラー) からパッケージを自動ダウンロードしてインストールする。ここでは CPAN.pm のかわりに CPAN::Site を使用する。
~/perl-5.8.8/bin/perl -MCPAN::Site -e shell cpan> o conf urllist unshift http://localhost/~myname/CPAN cpan> reload index cpan> install WiKicker cpan> exit
ここでローカル CPAN サーバを file:/// 等で指定すると、そこから読みとったファイルは ~/.cpan/sources/ 以下にコピーされないので一箇所にまとめることができないので注意 (かなりはまった)。
これが終わると、WiKicker とそれに必要なファイルが ~/.cpan/sources にたまる。
これを適宜アーカイブして保存する。
@ オフラインでインストールする
別の環境で例えば /usr/local/perl-5.8.8 にインストールされた Perl に WiKicker をオフラインでインストールするとする。
先の工程で作成したファイルセットが /tmp/CPAN においてあるものとする。
/usr/local/perl-5.8.8/bin/perl -MCPAN -e shell # 初期化でオフラインのため CPAN ミラーの選択ができずに URL の入力を # 求められたところで file:///tmp/CPAN を指定 cpan> install LWP cpan> install CPAN::Site cpan> exit
まずは以上で CPAN::Site が入るで、CPAN::Site で shell を起動しなおす。
/usr/local/perl-5.8.8/bin/perl -MCPAN::Site -e shell cpan> install WiKicker cpan> exit
これで /tmp/CPAN から芋蔓式に WiKicker がインストールされる。
@ ポイント
Debian のパッケージリポジトリなどとは違って、CPAN は基本的に「一つのリポジトリおよびそのミラー」という概念しかないようである。 したがってモジュールのインデックスファイルも1組しかなく、複数のサイトから異なるモジュールセットを配布するということができるようになっていない。
これに対し、自前パッケージ群用にも1セットインデックスファイルを作って扱えるようにしようというのが CPAN::Site である。
これを用いると「もう一つのリポジトリ」を扱えるようになるが、逆にいうと利用する場合は CPAN::Site をインストールしなければならないということでもある。
- 野良パッケージと依存 Perl モジュールのインストールセット を CPA... (2006-02-12)
- WiKicker の Makefile.PL を Module::Inst... (2006-02-10)
- 最新の Module::Install は Perl 5.005_03 ステ? (2006-04-29)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
- Ming 0.3 beta 1 を Debian に (2005-02-18)
2006年2月13日 (月)
■ WiKicker 0.29 リリース - ビルドまわりの改良など

2005年10月6日以来、約2カ月ぶりのリリース。
Makefile.PL を Module::Install ベースにして、依存 Perl モジュールのインストールを楽にした。 Wiki 機能の方は大きな変更なし。DiKicker には はてなブックマーク上の検索結果を表示する機能を追加。
また今回は、実験的な実装でほとんど使われていないと思われるモジュールについて、メンテナンスの問題から削除を行った。 大きなところでは、GnuPG による電子署名によりアップロード利用者をチェックする画像アップロードページ/機能を削除。
利用している方がいれば削除した機能は復活させようと思うが、多分いないかなと。
アップロード機能は、今後のユーザ管理機能の追加時にあらためて追加する予定。
- www.naney.org をさくらのレンタルサーバへ移転 (2009-12-23)
- WiKicker の Makefile.PL を Module::Inst... (2006-02-10)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
- Debian GNU/Linux に Hyper Estraier 1.2... (2006-05-31)
- Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 (2006-07-22)
2006年4月29日 (土)
■ 最新の Module::Install は Perl 5.005_03 ステ?

ゴールデンウィークに突入。 9連休を利用して、一気に WiKicker コーディングを企んでいる。
さっそくちょこちょこ修正してパッケージングし、www.naney.org へインストール。 …… Perl Makefile.PL でコケる。
どうも use inc::Module::Install; でエラーを起してしまっているようだ。 Makefile.PL は変更していないので、そうすると Module::Install の問題っぽい。
tarball をパッケージングするホスト側の Module::Install を 0.57 まで落としたところ、Perl 5.005_03 でも通るようになった。
Module::Install is a package for writing installers for CPAN (or CPAN-like) distributions that are clean, simple, minimalist, act in a strictly correct manner with both the ExtUtils::MakeMaker and Module::Build build systems, and will run on any Perl installation version 5.004 or newer. (Module::Install 0.61 より)
とあるように古い Perl もサポートにも気を払っているのが気にいって ExtUtils::MakeMaker から移行しただけにちょっと残念。
今後また 5.005_03 でも動くようになるのか、それとも捨てられるのか要チェック。
- WiKicker の Makefile.PL を Module::Inst... (2006-02-10)
- Time::Local::gmtime の範囲チェック (2003-12-23)
- 野良パッケージと依存 Perl モジュールのインストールセット をCPAN... (2006-02-11)
- www.naney.org をさくらのレンタルサーバへ移転 (2009-12-23)
- [ WiKicker ] SpeedyCGI 対応するも…… (2003-11-09)
2006年9月12日 (火)
■ DBIx::Class はあきらめて素の DBI + DBD::SQLite で。

WiKicker をベースとしたシステム用の認証・承認データベース開発であるが、結局 DBIx::Class をいじる時間がないので、素の DBI + DBD::SQLite でいくことにした。 SQL でゴリゴリ書くことになるけど、こっちの方が DBIx::Class の挙動を調べながら書くより(まずは)早く完成できるので。
WiKicker の Makefile.PL で指定している依存モジュール指定からも DBIx::Class および関連モジュールを削除。
- DBIx::Class + SQLite で Wiki 用認証/承認データベース (2006-06-18)
- WiKicker 0.37 リリース - 主に添付関連の機能を改良 (2006-09-05)
- Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 (2006-07-22)
- DBIx::Class + SQLite といえども CREATE TAB... (2006-06-19)
- WiKicker 0.39 リリース - 添付ファイルの削除機能を実装 (2006-10-17)
2009年12月23日 (水)
■ www.naney.org をさくらのレンタルサーバへ移転

naney.org メールサーバの移転に次いで、Web サーバの移転作業。
@ 静的コンテンツのアップロード
現行 Web サーバと Unison でファイル同期している Web コンテンツを、さくらのレンタルサーバへ Unison でファイル同期。
@ WiKicker のインストール
nDiki 用に DiKicker (WiKicker) を make install。
%bash $perl -MCPAN -e mkmyconfig $perl -MCPAN -e shell o conf makepl_arg PREFIX=/home/naney/local/WiKicker o conf mbuildpl_arg --install_base=/home/naney/local/WiKicker o conf commit notest install CGI::SpeedyCGI $tar zxvf WiKicker-0.420.tar.gz $cd WiKicker-0.420 $export PERL5LIB=$HOME/local/WiKicker/lib/perl5/site_perl/5.8.9 $perl Makefile.PL PREFIX=$HOME/local/WiKicker $make $make install
以前きっちり Module::Install で Makefile.PL を作っておいたおかげで、比較的スムーズにインストールできた(自画自賛)。
ちょっとはまったところは CGI::SpeedyCGI の make test を実行する(される)と SSH 接続がサーバ側から切られてしまうという現象にあったところ。 テスト用に大量にスクリプトが起動されるの検出して自動的に kick されたのだろうか。
@ .htaccess の修正
さくらのレンタルサーバでは .htaccess Options が使えないようなので削除。 ExecCGI や MultiViews が有効になっているようなので問題なし。
@ いつくかのスクリプトの修正
Perl 5.005_03 用に書いてあったスクリプトについて、Perl v5.8.9 で文字化けしないように utf8 まわりを修正。
@ cron 設定
1時間毎に実行したい処理を列挙するシェルスクリプトを1つ作って、コントロールパネルから1時間毎に実行するように設定。
現行サーバでは任意の crontab を設定できたので、1時間毎はちょっと物足りない。 おいおい負荷にならない範囲で、外部から定期的に HTTP アクセスして処理を定期的に実行できるようにもするかな。
@ DNS 設定変更
まだ動いていないスクリプトもあるけれど(大きいところだと NaneyOrgWiki (Wiki))現行サーバの解約日もせまっているので、サーバ移転させてしまうことに。
VALUE-DOMAIN で DNS サーバ設定を変更し www.naney.org でさくらのレンタルサーバにアクセスできるように A レコードを変更。
今のところ特に重い等もなく順調。 現行サーバでは深夜非常に重くなる時間帯があったのだが、それが無くなるのが嬉しい。 また容量が100MB*1から10GB*2になったので心理的にセーブしなくて良くなった。
年内に移行できて良かった良かった。
[ さくらのレンタルサーバ プレミアム ]
- さくらのレンタルサーバ プレミアム申し込んだ (2009-10-23)
- 今日のさえずり - チョコレート臭のするリップクリーム塗られた (2009-12-23)
- Debian GNU/Linux に Hyper Estraier 1.2... (2006-05-31)
- WiKicker 0.29 リリース - ビルドまわりの改良など (2006-02-13)
- Tor で hidden service (2005-02-13)
■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザイン ビックカメラProcess Time: 0.087607s / load averages: 0.43, 0.32, 0.26
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)




◇ Twitter やってます。この記事が気にいったらぜひ twitter.com/Naney の follower になってください。