Home > アーカイブ > 2012-12

2012-12

「勉強会なんてやらなくて良い」へのコメントありがとうございました!

この記事の所要時間: 353

先日書いた勉強会なんてやらなくて良いへ多数のコメントありがとうございました。

様々な勉強会に関わる方からコメントを頂き、とても参考になりました。頂いたコメントについて主だったものをまとめておきたいと思います。

セミナー型勉強会からの脱却

頂いたコメントで多かったのが、先のエントリで書いたセミナー型勉強会への違和感、そしてそこから別の形の勉強会を行なっているという内容でした。

予想以上に同じ感覚を持たれている方が多いということに驚きました。

ちょうどエントリを書いた後にリアルでお会いした方からも同様の意見を聞くことができ、やはり従来のセミナー型勉強会から一歩進んで別の形を模索している人が多いようです。

実際に実践されている例を見ると、少人数で議論する、手を動かす、発表し合うなどが多かったです。また交流をメインとされている方もいました。すでに多くの人がそういった動きをされていることを知らなかったのでこれはとても発見がありました。(もっと色んな勉強会を見てみれば、というコメントがありましたが、まさにそういうことですね。)

もちろんセミナー型勉強会には意義はあると思うので、ケースベイケースで開催する目的に合わせて選択していきたいと思います。

やりたくないならやらなければ良いのでは?

エントリを書いた時点ではこういった意見が多いのではと思っていました。

これは至極当然の感想であり、私自身もそう思っている部分はあります。

ただこのまま漫然と同じ事の繰り返しでは意義を見出せないため、なんとか良い方向に進めることはできないかと考え、他の方からのご意見を聞きたいとエントリを書きました。

なお、先のエントリにも書きましたが、他の方が開催されている勉強会について言及する意図は無く、またこれまで開催した勉強会を否定しているわけではありませんのでご理解頂ければ幸いです。

懇親会こそ本番

懇親会についてはそれほど本筋では無かったのですが、こちらへのコメントも多かったです。

懇親会の重要性はとても分かります。お酒を飲みながら、くだけた雰囲気で技術の話をする、ときにはその場でノート PC を開いて、コードを見せて議論する、楽しいですし、とても学べることがあります。この楽しさを否定するつもりは全くないのですが、できればこの楽しみを勉強会本編をやれればと考えています。

飲んだ方がやりやすければ、勉強会開始で乾杯して、発表聞いて、その場で議論でも良いと思います。( Fukuoka.php は実際にそうやっているそうです:D )

もちろん場所や内容によって難しい場合があるかもしれませんが、あくまで勉強会が本番で、掘り下げた議論などはその場でできればと思います。

「勉強会」という名称について

「勉強会」という言葉に囚われているのでは?という意見もありました。

私も「勉強会」という名称があまり好きではなく、何か適した名前があればと考えていた時期もあったのですが、なかなか適した名前が思いつかず、定着していた「勉強会」をそのまま使っていました。

いくつか頂いた中で「研究会」という表現があったのですが、これであれば誰か特定の人だけが先生というわけでもなく、みんなで研究するという意味があり、適しているような気がします。(PHP研究会で調べるとあちらのPHP研究会があるようなので、また別の名称が必要ですが)

コメント、言及頂いたエントリ

頂いたコメントは下記リンクにまとめています。勉強会開催に興味がある方であれば参考になるコメントばかりですので、ご覧下さい。

先のエントリへの言及頂いた記事です。ありがとうございました。

  • コメント (Close): 0
  • トラックバック (Close): 0

勉強会なんてやらなくても良い

この記事の所要時間: 754

勉強会について考えているもやもやを。

私は、主にPHP界隈の勉強会やカンファレンスを開催したり、運営側として関わったりしているのですが、勉強会を開催することについて最近もやもやと考えています。

勉強会に色々な関わる人(開催、運営、発表、参加などなど)からの意見も聞いてみたく、2012年の終わりに一度吐き出しておこうと思います。勉強会についていろいろなコメントを頂けると嬉しいですm(_ _)m

はじめに、ここでいう「勉強会」というのは、オープンソース界隈で良く開催されている有志がボランティアベースで運営されているものを指します。有料セミナーや別カテゴリのものは想定していません。

また、自分が開催する勉強会について書いていますので、他の方が開催されている勉強会について指摘する意図は一切ありません。

勉強会なんてやらなくても良い

本業が忙しくなると、ついつい勉強会の開催が億劫になってきます。勉強会を開催するには少なからずのコスト(主に時間)がかかります。会場手配、発表者集め、調整、参加募集、当日運営、発表などなど。本業やプライベートが忙しくなってくるにつれて、少しづつ自分が勉強会を開催する、運営することが減って来ました。

以前は勉強会をやりたい、やらなきゃという気持ちが強くあったので、できるだけ時間を絞り出して開催していたのですが、少し熱が落ち着いてきて、開催しない期間が長くなると開催しないことに慣れてきて、さして気にならなくなってきました。

勉強会なんてやらなくても日常生活、業務には何の支障も無いんだなと思うようにもなりました。

おそらく勉強会に一番思い入れがあるのは主催者です。その主催者が「無くても良い?」と思うくらいなので、参加する人にとってもそうなのかもしれない、そもそもやる意味があるの?と考えることが増えてきました。

まだ今は、「開催しないんですか?」と声をかけて頂いたり、スタッフとしてお誘いがあったりで運営に関わったりはするのですが、以前に比べると気持ちが離れて行っているのは確かです。

なぜ勉強会をはじめたか?

そもそも勉強会を開催しはじめた理由は、関西でPHPに関する勉強会がほとんど無かったからです。

勉強会を初めて開催した2007年頃は、関西ではPHPに関する勉強会はほとんど開催されていませんでした。(それ以前は頻繁に開催されていたのですが、ちょうど誰もやっていない時期でした。)

当時は東京で活発にPHPの勉強会が開催されていたので、わざわざ東京まで通っていました。まだ Ust による配信や slideshare などによる資料共有が活発では無かったので、今より勉強会を生で参加する意義が大きかったですし、なにより勉強会というものの魅力に取り憑かれていました。

そんな勉強会をやはり地元関西でやりたいと思い、勉強会を開催するようになりました。散発的な開催でしたが、多くの人に集まって頂き、それなりに充実感がありました。関西でPHPというキーワードで交流できる場ができた、それを作ることができたというのが嬉しかったのを覚えています。

何度かの勉強会開催を経て、2011年に「PHPカンファレンス関西」を開催します。東京で行われていたPHPの大型イベント、PHPカンファレンスを関西で!という想いが、多くの人の協力のおかげで形になりました。これで自分にとって勉強会を開催するということに一つの区切りが付きました。

そして2012年の現在では、関西でもPHP関連の勉強会が開催されています。関西PHP勉強会の他には、関西PHP初心者勉強会、FuelPHP勉強会、そしてWordBench大阪、神戸、WordCampなどです。これはとても素晴らしいことだと思います。

以前は正直、義務感で開催することもあったのですが、現状は無理してまでやらなくても良いという状況になりました。

勉強会の目的

勉強会の目的ってなんでしょう。

単純に楽しい、技術的な話を聞いてみたい、色んな人と話してみたい、色々とありますが、あらためて見つめなおすと、やっぱり一番の目的は「勉強する」「学ぶ」ということだと思います。

これは学校のように知識を詰め込むような勉強ではありません。

発表を聞くのも、色んな人と話すのも学びになります。発表してみると「他人にどう伝えるか?」といった、技術とは異なる学びも得られます。楽しい雰囲気で学べるというのはとても良いことです。

勉強会を開催するようになると、ちょっと別の角度からの目的も出てきます。もっと人を多く集めたい、もっと楽しんでもらいたい、もっと色んな人に注目されたい、、、。どれもこれまである程度は考えていたことですし、悪いことだとは思いません。勉強会開催の目的がそこにあるのならそれも良いでしょう。

ただ、いま私が考える勉強会の目的はやっぱり「学び」です。そして勉強会は、参加した人全員(開催者、発表者、参加者全員)で学び合う場にしたいと思っています。

セミナー型勉強会

発表者が前に立ってスライドを映しながら発表する、参加者はそれを聞く。

勉強会ではお馴染みの形式です。

これがスタンダードな勉強会の形であるとずっと思って来ました。この形式なら会場のキャパまでは参加者数も増やせるのでスケールしやすい方法です。また参加者はただ聞くだけで良いので、気軽に参加できるというメリットもあります。

この形式は全くもって問題無いのですが、ともすれば、発表者=教える人、参加者=教わる人という構図となり、発表者から参加者へ一方通行で終わる形になりがちです。

発表者としても人前で話すだけで得られる学びはありますが、やはりそれを聞いた人からのフィードバックがあるとより深く考えることができ、さらなる学びがあります。

参加者としても漫然と話を聞くよりもフィードバックを返すために思考を張り巡らす方が、より学ぶが得られるのではないでしょうか。

こういった「教える」勉強会はあっても良いですし、自分でも何度も開催してきました。今後もきっと開催すると思います。ただ、これだけが勉強会ではないので、もっと色んな形を模索したいです。

懇親会が本番?

勉強会では良く言われるフレーズです。

「懇親会が本番だよ、だから懇親会に来いよ!」

懇親会は慣れていない人にとっては参加しづらいので、参加しやすいように言っているということもあります。また懇親会の場ならではの濃い話が面白いというのもあります。これはこれで確かに納得できる部分はあります。

一方で、それなら勉強会なんかやらずに懇親会だけやれば良いんじゃないかとも思います。

勉強会を開催することに比べたら、懇親会だけの方がよっぽど楽です。(ただの飲み会なので)

今後やりたい勉強会

こうして悶々と考えている中、色々な勉強会に参加してみて得られたヒントから自分のやりたい勉強会が何となく見えてきました。

まだ漠然としていますが、こんな勉強会をやりたいと思います。

発表者のいない勉強会

「PHP5.5を触ってみる」「BDDでテストを書いてみる」「あのサイトのあの機能を作ってみる」「あえて別の言語を触ってみる」などテーマだけ決めて集まります。あとはみんなであーだーこーだ言いながら、実際にやってみる。そしてそれを共有する勉強会です。

事前準備は場所をおさえるのとテーマを決める程度です。

時にはそのテーマに詳しい人に来てもらって発表してもらうのも良いですが、できるだけ負担無く、みんなで考えて、意見交換して、手を動かして学ぶ形が望ましいです。

これまで参加した勉強会では、読書会やFuelPHP勉強会 大阪が近い感じです。先日のScala関西ビギナーズ 第1回の演習などもそうですね。

参加者全員が発表する勉強会

逆に全員が発表者になる勉強会です。全員が自分の発表内容を考えてきて、それを披露します。勉強会といっても様々なバックグラウンドを持つ人が参加するので、それぞれの視点での発表はぜひ聞いてみたいです。全員発表するので、初めて発表する人も気軽にやりやすいと思います。

これまで参加した勉強会では、関西アンカンファレンス俺聞けなんかがそうですね。あと以前東京でやっていたPHP懇親会はまさにこれですね。

何をやりたいのか?

勉強会なんて無理してやる必要はありません。義務感に駆られてやるものでもありません。無くなったところで、困る人もそんなにいません。

だからこそ、もしやるなら自分がやりたい勉強会をやった方が良いです。

上であげた形式の勉強会だと10人〜20人くらいで開催するのが理想でしょう。参加者数を増やすのが目的なら不向きかもしれません。

勉強会は相互扶助でこそ成り立つものだと思います。みんなが発表者で参加者で、一緒に学び合いたい、これが今自分がやりたい勉強会です。

みなさんからのコメント

多数のコメントありがとうございます!せっかくなので、togetterにまとめたので、こちらもぜひ!
「勉強会なんてやらなくても良い」へのコメントまとめ

頂いたコメントをまとめました。こちらもご覧下さい。
「勉強会なんてやらなくて良い」へのコメントありがとうございました!

  • コメント (Close): 0
  • トラックバック (Close): 0

CakePHP 2.3 の新機能 ServerShell の話

この記事の所要時間: 627

CakePHP 2.3 に追加された機能 ServerShell についてです。

CakePHP Advent Calendar 2012の11日目です。昨日は社会派ブロガーに仲間入りした yandod さんの「カンファレンスなどで海外からゲストを呼ぶ際に注意すること」でした。いつも横で見てるだけですが、海外から人を招くのは大変ですね。

さて11日目の今日は CakePHP 2.3 に追加された ServerShell を実装して、pull request したという話を。

ServerShell

ServerShell は CakePHPアプリケーションを動かすための httpd サーバを起動する機能です。Apache などを設定せずとも簡単にCakePHPアプリケーションを起動することができます。

使い方

まず、CakePHP2.3RC1 をダウンロードします。github に zip パッケージがあるのでこれをダウンロードするのが簡単です。

https://github.com/cakephp/cakephp/archive/2.3.0-RC1.zip

zip を解凍して、ServerShell を実行します。

$ ./app/Console server

デフォルトでは80ポートでListenするので、すでにApache等を実行している環境では、-p でポートを変更すると良いでしょう。

$ ./app/Console server -p 8001
Welcome to CakePHP v2.3.0-RC1 Console
---------------------------------------------------------------
App : app
Path: /path/to/cakephp-2.3.0-RC1/app/
DocumentRoot: /path/to/cakephp-2.3.0-RC1/app/webroot
-------------------------------------------------------
built-in server is running in http://localhost:8001/

ブラウザで最後の行に表示されたURL(http://localhost:8001/)にアクセスするとおなじみの画面が表示されます。

ああ、簡単:D

PHP5.4 以上が対象

この機能は PHP5.4 以降でのみ実行することができます。PHP5.4 未満で実行すると下記のようにエラーが表示されます。

仕組み

ここまでご覧になった方はおおよそ予想が付くと思いますが、実は ServerShell は PHP5.4 で追加されたビルトインサーバをラップしただけです。また、ビルトインサーバ上で動かすための改良を少し加えています。

ビルトインサーバをベースとしてますので、ServerShell は開発環境でのみ利用するようにして下さい。

ソースはこちらにあるので気になる方はどうぞ。

https://github.com/cakephp/cakephp/blob/2.3/lib/Cake/Console/Command/ServerShell.php

作った経緯

以前から CakePHP アプリケーションを簡単に動かすために httpd サーバを CakePHP パッケージに追加したいと思っていました。(こんなの作ったりしてみました)PHP5.4 のビルトインサーバの登場により簡単に実現することができました。

ハンズオンの勉強会を開催していても、やはり環境構築でつまづく方が多かったので、これを使えば簡単に CakePHP を試すことができます。

まだ試していないですが、CandyCane や baserCMS など CakePHP で作られたシステムも .htaccess が CakePHP デフォルトのままであれば動作すると思います。

pull request から取り込まれるまで

7月に福岡でCakePHP翻訳合宿があったのですが、その際に基本的な実装を行なって、pull request を送りました。

反応がいまひとつ予想できなかったのですが、以前にCakePHP1.3向けビルトインサーバ対応パッチを pull request して、取り込まれたこともあったので、とりあえず送って見ることにしました。

細かな指摘は多数あったのですが、結果としてはそれほど反対意見もなく、最初の pull request を投げてから 3 週間ほどして取り込めることになりました。

いくつかあった指摘事項は以下のようなものです。

名前が微妙

ServerShellの「Server」という言葉が汎用的過ぎるのでどうだろ、という意見がありました。

確かにこれは理解できます。別名として「PhpWebserverShell」や「HttpServerShell」という意見もあったのですが、コンソールから入力するのが長いので「ServerShell」で進めました。結果的には、このコマンドで php+web server以外が起動するのは想像できないという意見もあって、ServerShell のままとなりました。

2.3 ブランチへ

はじめは master(当時バージョンは2.2)へ pull request を送信したのですが、2.3 ブランチへ投げて欲しいというリクエストがあったので、2.3 ブランチへ送信し直しました。

typo, インデント, メッセージ など細々とした修正

大筋は問題無かったのですが、typo やインデント、メッセージの書き方などは多数指摘がありました。やっぱり他人の目で見るとボロボロ出てきますね><コードレビュー大事です。

とくに CakePHP 本体に取り込まれるコードなので、CakePHP のコーディング規約に乗っ取るようにとの指摘がありました。コーディング規約のチェックには、phpcs を使っているようなので、CakePHP 用のルールでチェックを行い、チェックが通るまで修正を行いました。

やりとりが楽しかった pull request

実際に送信した pull request がこちらです。

https://github.com/cakephp/cakephp/pull/713
https://github.com/cakephp/cakephp/pull/714

これまでいくつか pull request を送信したり、パッチを送ったりはしていたのですが、不具合の指摘が多く、あまり議論になるようなことはありませんでした。

今回も実装の内容についての議論は無かったのですが、細かなことで指摘を受けて、こちらの意見を言って、といったやり取りが有意義でした。pull request を見てもらうと分かりますが、変な英語でもPHPのソースがあるので、それなりに意図は通じたかなと思ってます。

やっぱりこういうのは楽しいですね。

PHP5.4 が普及するのはもう少し先かもしれませんが、機会があれば ServerShell を使ってみて下さい。

  • コメント (Close): 0
  • トラックバック (Close): 0

PHPを使う理由

  • 2012-12-01 (土)
  • PHP
この記事の所要時間: 850

今年もやって参りました年末を彩る PHP Advent Calendar 2012 です。3年目ということですっかり恒例行事となってきましたね。今年も完走目指してみんなで頑張りましょう!

参加枠があとわずかですが残っていますので、いっちょやってみようという方は参加表明をお願いします。

さて、初日は前から書いてみたかったテーマです。

PHPをWebシステム開発言語として使い出してかれこれ12年が経ちました。これだけ長い間使い続けているとうことは何か理由があるわけです。そこで、あらためてその理由を考えてみました。

1. 安定して動作する

まず、なんと言っても大きいのが安定して動作し続けているということです。
規模の大小に関わらず数多くのWebサイトがPHPで動作しているのは周知のとおりです。私がこれまでPHPで構築してきたWebシステムが現在でも動作しており、これまでPHP自体が原因で障害が発生した、ということはほぼありません。

どんなに素晴らしい言語であっても動作環境が不安定では意味を成さないので、これは当たり前ですが大事なことです。

2. 環境構築が楽

Apache と mod_php を入れれば動作します。めちゃ簡単。下記コマンドを叩けばインストール完了。あとはPHPファイルをサーバにアップすれば、それで動きます。

$ sudo yum install httpd php

開発環境限定ですが、PHP5.4以降であれば、ビルトインサーバがあるので Apache すら必要ありません。

$ php -S 127.0.0.1

3. 手軽に書ける

HTMLのテンプレートから出発した言語だけに、HTML内に埋め込んで書くのは何の苦労もありません。

<?php if ($isDisp): ?>
  表示する
<?php endif; ?>

プログラマではないデザイナさんやコーダーさんもPHPであれば多少書ける人が多いです。ビュー側の簡単な改修であれば、わざわざプログラマ側で対応せずともデザインの延長で対応してもらえることが多いです。

また普段使っていると忘れがちですが、日本語を扱うのに何の苦労も必要ありません。実はこれは大きいことで、2000年当時だとPHP3国際化版があったおかげで、日本でPHPが普及したといっても過言ではないと思います。

4. HTTPリクエスト毎にスクラップ&ビルド

PHPではHTTPリクエストを受けて起動するたびにソースコードのコンパイルを行います。コンパイルで生成された実行コードで処理を行い、終了すれば実行コードごと破棄します。各 HTTP リクエストは独立して実行されるので、別のリクエストの処理が干渉することはありません。

これにより、ひとつのHTTPリクエスト内で行う処理に集中して実装することができます。

この一見すると重そうな処理が実用的なスピードで動作しています。

ちなみに apc などのコードキャッシュを使えばコンパイルした結果の実行コードをキャッシュすることができ、パフォーマンスを向上させることができます。デフォルトではアプリケーション内の値はキャッシュされないので、HTTPリクエスト毎の独立性は保たれています。

5. 豊富な機能、ライブラリ、プロダクト

PHPにはWebシステム開発に便利な機能が数多く提供されています。

標準関数の充実っぷりはもちろんですし、PECLで提供されている拡張モジュール、PEARやComposerで公開されているオープンソースのライブラリ、CakePHPやSymfony2、FuelPHPなどのフレームワーク、テスティングツールPHPUnit、WordPressやDrupalなどのCMS、EC-QUBEやMagentoといったECサイト、OpenPNEのようなSNS、他にもWebに特化した数多くのライブラリやプロダクトがあります。

OAuth などの新しい仕組みが登場してもすぐにそれを利用するライブラリなどが登場します。

オブジェクト指向としての機能もあり、いまどきの開発プロセスをこなすことができます。

Webシステム開発で必要な機能はひと通り揃っていると言って良いでしょう。

6. 情報が多い

ユーザが多いからこそですが、書籍やblogなどで数多くの情報が公開されています。

自分が情報やコードを公開した時も多くの反応をもらうことができます。これは使っていくモチベーションになりますね。

7. 仕事に使える

仕事に使える(使っている)のはやっぱり大きいですね。

これには安定性、実績、そして他の人とコラボレーションしやすいなどがあります。

また開発者以外の人にも認知度が高いので導入において支障になることもほとんどありません。

8. 最近のPHP

最近の PHP は言語の機能拡張が盛んで、ここ最近のバージョンでは以下のような機能が追加されています。

  • namespace(5.3)
  • closure(5.3)
  • traits(5.4)
  • short array syntax(5.4)
  • array dereferencing(5.4)
  • generator(5.5予定)
  • finally(5.5予定)

もう今となっては当たり前ですが、5.2以前には匿名関数を定義するにはcreate_function()を使うしかなく、これが結構書きづらかったので、closureを自然に書けるようになったのはやっぱり嬉しいですね。

array_walk($values, function($v) {
  echo $v;
});

これらの機能がないと絶対にダメということは無いのですが、やっぱりこういった他の言語で良いとされている機能が盛り込まれるのは単純に嬉しいですし、使うのが楽しくなります。

9. 充実した公式マニュアル

良くPHPの特徴して挙げられますが、やはり公式マニュアルの充実っぷりは素晴らしいです。

日本語への訳も適時行われていますので、頭が下がるばかりです。

www.php.net

10. 慣れている

これを書くとPHPじゃなくてもええやん、という話になりますが、やっぱり慣れているというのは大きいです。

使い方、書き方、ハマりどころ、色々分かっていて、安心して使えるのでやはり選択することが多くなります。

11. PHPの思想

PHPはシステムを作るためのツールの一つとして認識しています。

現状はPHPを選択することが最も良いと思っていますが、状況が変わって、別の言語が良いと思えば、そちらの言語を選びます。何が何でもPHPというわけではなく、置かれている状況から判断して、あえてPHPを選択しています。

PHPコミュニティにいる人はこういった考えの人が多い印象です。

別にPHPしかできないからPHPを選んでいるわけではなく、別の言語も知っているし、書けるけど、PHPを選んでいるというわけです。

また、システムを作る、そしてそれを動かすということにフォーカスしている人は、その周辺の知識(サーバやインフラ、またテストなど)にも明るい人が多いです。プログラミング言語だけを見ているわけではなく、システム全体の中の一部としてPHPを捉えています。
(小さい案件などで全部やらざるを得ないという事もありますが)

これはシステム寄りではなくデザイナさんやコーダーさんも同じで、デザインやサイトの一つのツールとしてPHPを見ているという感じだと思います。

ここでPHPの父ともいうべき Rasmus Lerdorf さんの発言を引用しておきます。下記では、PHPを歯ブラシに例えて、あくまでツールと言い切っています。これはまさにPHPの思想ですね。

PHP is about as exciting as your toothbrush. You use it every day, it does the job, it is a simple tool, so what? Who would want to read about toothbrushes?
Interview – PHP’s Creator, Rasmus Lerdorf

12. コミュニティ

PHP コミュニティもPHPの魅力の一つです。 多様な人がいて、多様な活動をされています。いつも本当にお世話になっていますm(_ _)m

自分がいつも接していて良いなと思うのは、他の言語を貶めたり蔑むような発言をする人がいないということです。プログラミング言語の機能や思想について指摘したり、自分とは合わないといった発言をすることはもちろんあります。好き嫌いなどがあるのも当然です。

ただ、その言語を使っているというだけで晒すようなことはありません。

あくまでプログラミング言語はツールとして割り切っているからという面もあるでしょうけど、これはとても素晴らしいことだと思います。

PHPユーザがあえて煽る言語がPHPという自虐的な場面はたまに見ます:D たいてい愛情表現の一つだと思っていますけど、これからは恥ずかしがらずにPHP好きと言っちゃいましょう。

まだまだPHPです

たまにこんなことを聞かれることがあります。

「まだPHP使っていても大丈夫ですか?」

PHPがWebでメインストリームな時代が長いので、根拠は無くとも漠然とした不安を覚える人がいるようです。

現時点であれば、私ならこう答えます。

「はい、PHPで大丈夫ですよ。」

参考リンク

  • コメント (Close): 0
  • トラックバック (Close): 0

Home > アーカイブ > 2012-12

検索
フィード
メタ情報

Return to page top