G1GCへ伸びていた     「いばらの道」                        nari/中村 成洋                    ネットワーク応用通信研究所G1GCへ伸びていた「いばらの道」             Pow...
オープンラボ岡山   3年目突入おめでとうございます!!
第4回 OLO(2年前)                                         2/111G1GCへ伸びていた「いばらの道」              Powered by Rabbit 0.9.3
このとき話したこと    ✓ 「GC黄金時代」         ✓ GCの実装に未来があるという話    ✓ ちょうどGC本を書いている時期                                          3/111G1GCへ...
無事出版されました!
Amazonさん在庫切れ                                     5/111G1GCへ伸びていた「いばらの道」          Powered by Rabbit 0.9.3
絶版フラグ?
在庫が入ったみたい!!                                    7/111G1GCへ伸びていた「いばらの道」         Powered by Rabbit 0.9.3
が、今回はこっちの話です
自己紹介
自己紹介    ✓ @nari3    ✓ CRubyコミッタ    ✓ 島根のNaCl勤務                                  10/111G1GCへ伸びていた「いばらの道」          Powered b...
本を書きました!電子書籍!(再掲)
G1GCとは    ✓ Java7から搭載されるGC    ✓ ソフトリアルタイム性を意識    ✓ 複雑怪奇なもの                                    12/111G1GCへ伸びていた「いばらの道」     ...
今回の本では    ✓ アルゴリズムを解説    ✓ 図も多く、平易に説明    ✓ 理解が容易                                    13/111G1GCへ伸びていた「いばらの道」            Pow...
じゃあ、今回はこの本の話     を…
しません!!
読んでください :)
心の迷いで買っても問題な    い価格!!     ¥600
今日の話    ✓ 本を書くまでの過程の話    ✓ G1GCをどのように理解したか?                                  18/111G1GCへ伸びていた「いばらの道」          Powered by R...
なぜそのような話を?    ✓ 本という結果に対する話はよくあ      る         ✓ 出版記念トークライブ    ✓ 理解する過程の話は少ない    ✓ 過程が重要                                  ...
(注意)    ✓ 一部は結果論    ✓ 試行錯誤なのであまりまとまらな      い話    ✓ 一般化して捉えるのは危険                                  20/111G1GCへ伸びていた「いばらの道」  ...
G1GCとの初遭遇
G1GCとの初遭遇(4年前)    ✓ 英語の論文が公開されていた    ✓ deliciousのGCタグで知った                                  22/111G1GCへ伸びていた「いばらの道」        ...
GCの英語論文                                     23/111G1GCへ伸びていた「いばらの道」             Powered by Rabbit 0.9.3
このときの印象
「わからない…」
何ヶ月か頑張ってみた
「わからない…」
理解への障害    ✓ 知識不足         ✓ 英語がわからない         ✓ 専門用語がわからない         ✓ 前提知識がない    ✓ やる気が出ない                                   ...
実はにわたま問題    ✓ 知識不足だからやる気が出ない    ✓ やる気が出ないから知識不足                                      32/111G1GCへ伸びていた「いばらの道」              ...
どちらかを解決しないといけない
ルーク締切ドリブンを使え
GC本の執筆    ✓ 締切ドリブンを利用    ✓ 書かなきゃダメな状況に自分を落      とし込む                                    35/111G1GCへ伸びていた「いばらの道」           ...
どうなったか?
完全に理解するにはいたらず…。
締切ドリブンは理解と相性が悪         い    ✓ 中途半端な知識でもアウトプット      しなければならない    ✓ 難しい問題の理解は勉強・思考・      休憩をセットにした長い時間が必      要             ...
ただ戦利品もあった
GCに関する多くの知識を仕入         れた    ✓ 相川さん(共著者)の原稿レ      ビュー         ✓ 勉強になった    ✓ GCの実装を沢山読んだ         ✓ 自信になった                  ...
G1GCの論文を日本語訳   g1gc-ch1.txt
共著者と議論 at 正月 study-meeting-log.txt
徐々に論文自体の問題も見えてきた
論文自体の問題    ✓ 前提知識を必要とする         ✓ 訳のわからない単語がいきなりでてくる    ✓ 全体的に説明不足         ✓ 誤解も生みやすい    ✓ 複雑な仕組みなので仕方ない部      分でもある      ...
「実装を読まないと完全に 理解できない」と判断
コードリーディング編
敵    ✓ OpenJDKのHotspotVMコード    ✓ GCだけで5万行    ✓ C++で継承関係がスパゲッティ                                    47/111G1GCへ伸びていた「いばらの道」 ...
どのように読むか?    ✓ 様々なやりかた         ✓ ひらメソッド         ✓ 落下傘方式         ✓ デバッガ方式            ✓ 参考 <URL:http://itpro.nikkeibp.co.jp/...
ひらメソッドを「疑問」に    適用した コードリーディング
疑問をベースに    ✓ 論文を読んで疑問に思った事柄を      きっかけにする         ✓ e.g. タイムスライスとは? など                                       50/111G1GCへ伸び...
疑問をベースに    ✓ 疑問が新しい疑問を生んだ場合      はそちらを先に解決    ✓ 大きな疑問 => 小さな疑問へ    ✓ 小さな疑問を解決 => 大きな疑問      を解決                           ...
問題を細かくする ことが大事
細切れに作業可能
なぜ大事か?
やる気がないから!
作業ははじめるまでが大変    ✓ はじめるのにはやる気が必要         ✓ やる気は高価    ✓ はじめるという意識をなくそう         ✓ 自然にやっているという感覚が一番い           い              ...
日々の決まった細切れの時間を使う
細切れの時間    ✓ 電車待ちの時間,電車の中    ✓ 晩ごはんの後,お風呂の後                                    58/111G1GCへ伸びていた「いばらの道」            Powered b...
はじめる「障害」が少ない    ✓ 毎日来るもの    ✓ 「いまからやるぞ」という感覚をな      くすのが重要                           59/111G1GCへ伸びていた「いばらの道」   Powered by ...
中断可能性は大事
電車だと途中で目的地に着    くから :)
自分で決めたルール
自分で決めたルール    ✓ 必ずメモを取る -> org-mode         ✓ ソースコードへのリンクを張ることが可           能    ✓ 作業を中断しやすい                                ...
実際に取っていたメモ  code-reading.org
ツールを使う    ✓ org-mode(emacs) -> メモ    ✓ GLOBAL(gtags) -> 関数の定義・      呼び出し検索    ✓ git -> grepが速い                            ...
コードリーディング期間:半年くらい(執筆も並行)
気がついたら
理解への障害    ✓ 英語がわからない    ✓ 専門用語がわからない    ✓ 前提知識がない    ✓ やる気が出ない                                    68/111G1GCへ伸びていた「いばらの道」 ...
全部無くなっていた!!   わーい!
小まとめ    ✓ Try&Errorで頑張れ         ✓ 得るものはある    ✓ 問題を小さく小さく         ✓ 自分の扱える範囲に    ✓ 作業も小さく小さく         ✓ 自分の習慣的な時間に          ...
難しい問題を理解するのに    大事なこと
重要ではないもの    ✓ やる気    ✓ 頑張り    ✓ 徹夜                                      72/111G1GCへ伸びていた「いばらの道」              Powered by Ra...
絶対にいるもの    ✓ 時間    ✓ 習慣    ✓ 執着                                     73/111G1GCへ伸びていた「いばらの道」             Powered by Rabbit ...
時間
深い理解へのサイクル    ✓ 興味 -> 疑問 -> 思考 -> 疑問 ->      思考 ...    ✓ 深く広く疑問は広がっていき、そ      れらを理解すると深い理解になる    ✓ この作業は絶対的に時間がかか      る  ...
なので
締切がある執筆の場合: 学びながら執筆は  オススメしない
理解している事柄を執筆し   たほうがいい (注:締切があるとき)
習慣
習慣    ✓ 学ぶ習慣を付ける    ✓ 日々の決まった箇所で少しずつ理      解    ✓ 極力やる気を使わない方法で                                80/111G1GCへ伸びていた「いばらの道」    ...
執着
執着    ✓ 諦めない、執着する    ✓ 絶対達成するわけじゃないが、諦      めるよりは進める                                82/111G1GCへ伸びていた「いばらの道」        Powered...
最初に覚悟を決めると理解に長い時間を掛けても  ストレスにならない
理解した後にするといいこ     と
理解した後は記録に残す
本にするのはかなりいい
執筆    ✓ 疑問を補足する         ✓ みんな疑問に思うはずの場所    ✓ わかりやすい本になる    ✓ 自分が読み返せる                                  87/111G1GCへ伸びていた「いば...
いい本    ✓ 躓きづらい本    ✓ 自分が見返していい本    ✓ 深く理解した著者が書いた本                                 88/111G1GCへ伸びていた「いばらの道」         Powered...
本を書くと良いのは「忘れられる安心感」   があること
話題は変わって…
プログラマが死ぬときはい     つか?
死ぬとき    ✓ 管理職に就いたとき?    ✓ 定年説?(35歳?)    ✓ 物理的に死ぬ?      (間違いじゃないが…)                                  92/111G1GCへ伸びていた「いばらの道...
私が思う「プログラマが死ぬとき」
無意識に思考停止したとき
どういうことか?
例えば専門用語    ✓ Ajax    ✓ G1GC new!!                                     96/111G1GCへ伸びていた「いばらの道」             Powered by Rabbi...
用語は思考停止させる  効果を持つ
「AjaxはAjaxね」「G1GCはえーとG1GCって       ことね」
ふつうのプログラマは
意識して思考停止する    ✓ すべての技術は理解できない    ✓ 自分には興味のない分野は意識      して思考停止    ✓ あえて調べず「こういうもんだ」と      割り切る                             ...
興味のある分野    ✓ 専門用語の意味を調べる    ✓ 仕組みを調べる    ✓ 設計思想を調べる                                   101/111G1GCへ伸びていた「いばらの道」            ...
興味の窓が開いている状態
しかし、時が経つにつれて
興味の窓が閉じてしまう
ダークサイド(暗黒面)   に落ちる
無意識に思考停止    ✓ 興味のある分野だが調べない    ✓ 思考停止に気づいていない    ✓ 蓄えた知識のみ                                106/111G1GCへ伸びていた「いばらの道」        ...
死んだプログラマ        http://www.flickr.com/photos/bhagathk/3847024461/
技術向きの興味の窓は意  識的に開けておこう!(会場のみなさんには関係    ない話かも)
興味を持つことから  はじまるッ
ということでG1GC本を一冊 :D
大切なのは疑問を持ち                    続けること。                     [cited from `アルベルト・アインシュタイン]                                     ...
G1GCへ伸びていた「いばらの道」
G1GCへ伸びていた「いばらの道」
G1GCへ伸びていた「いばらの道」
Upcoming SlideShare
Loading in …5
×

G1GCへ伸びていた「いばらの道」

6,832 views

Published on

Published in: Technology
0 Comments
15 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,832
On SlideShare
0
From Embeds
0
Number of Embeds
1,325
Actions
Shares
0
Downloads
24
Comments
0
Likes
15
Embeds 0
No embeds

No notes for slide

G1GCへ伸びていた「いばらの道」

  1. 1. G1GCへ伸びていた 「いばらの道」 nari/中村 成洋 ネットワーク応用通信研究所G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  2. 2. オープンラボ岡山 3年目突入おめでとうございます!!
  3. 3. 第4回 OLO(2年前) 2/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  4. 4. このとき話したこと ✓ 「GC黄金時代」 ✓ GCの実装に未来があるという話 ✓ ちょうどGC本を書いている時期 3/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  5. 5. 無事出版されました!
  6. 6. Amazonさん在庫切れ 5/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  7. 7. 絶版フラグ?
  8. 8. 在庫が入ったみたい!! 7/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  9. 9. が、今回はこっちの話です
  10. 10. 自己紹介
  11. 11. 自己紹介 ✓ @nari3 ✓ CRubyコミッタ ✓ 島根のNaCl勤務 10/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  12. 12. 本を書きました!電子書籍!(再掲)
  13. 13. G1GCとは ✓ Java7から搭載されるGC ✓ ソフトリアルタイム性を意識 ✓ 複雑怪奇なもの 12/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  14. 14. 今回の本では ✓ アルゴリズムを解説 ✓ 図も多く、平易に説明 ✓ 理解が容易 13/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  15. 15. じゃあ、今回はこの本の話 を…
  16. 16. しません!!
  17. 17. 読んでください :)
  18. 18. 心の迷いで買っても問題な い価格!! ¥600
  19. 19. 今日の話 ✓ 本を書くまでの過程の話 ✓ G1GCをどのように理解したか? 18/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  20. 20. なぜそのような話を? ✓ 本という結果に対する話はよくあ る ✓ 出版記念トークライブ ✓ 理解する過程の話は少ない ✓ 過程が重要 19/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  21. 21. (注意) ✓ 一部は結果論 ✓ 試行錯誤なのであまりまとまらな い話 ✓ 一般化して捉えるのは危険 20/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  22. 22. G1GCとの初遭遇
  23. 23. G1GCとの初遭遇(4年前) ✓ 英語の論文が公開されていた ✓ deliciousのGCタグで知った 22/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  24. 24. GCの英語論文 23/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  25. 25. このときの印象
  26. 26. 「わからない…」
  27. 27. 何ヶ月か頑張ってみた
  28. 28. 「わからない…」
  29. 29. 理解への障害 ✓ 知識不足 ✓ 英語がわからない ✓ 専門用語がわからない ✓ 前提知識がない ✓ やる気が出ない 31/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  30. 30. 実はにわたま問題 ✓ 知識不足だからやる気が出ない ✓ やる気が出ないから知識不足 32/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  31. 31. どちらかを解決しないといけない
  32. 32. ルーク締切ドリブンを使え
  33. 33. GC本の執筆 ✓ 締切ドリブンを利用 ✓ 書かなきゃダメな状況に自分を落 とし込む 35/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  34. 34. どうなったか?
  35. 35. 完全に理解するにはいたらず…。
  36. 36. 締切ドリブンは理解と相性が悪 い ✓ 中途半端な知識でもアウトプット しなければならない ✓ 難しい問題の理解は勉強・思考・ 休憩をセットにした長い時間が必 要 38/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  37. 37. ただ戦利品もあった
  38. 38. GCに関する多くの知識を仕入 れた ✓ 相川さん(共著者)の原稿レ ビュー ✓ 勉強になった ✓ GCの実装を沢山読んだ ✓ 自信になった 40/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  39. 39. G1GCの論文を日本語訳 g1gc-ch1.txt
  40. 40. 共著者と議論 at 正月 study-meeting-log.txt
  41. 41. 徐々に論文自体の問題も見えてきた
  42. 42. 論文自体の問題 ✓ 前提知識を必要とする ✓ 訳のわからない単語がいきなりでてくる ✓ 全体的に説明不足 ✓ 誤解も生みやすい ✓ 複雑な仕組みなので仕方ない部 分でもある 44/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  43. 43. 「実装を読まないと完全に 理解できない」と判断
  44. 44. コードリーディング編
  45. 45. 敵 ✓ OpenJDKのHotspotVMコード ✓ GCだけで5万行 ✓ C++で継承関係がスパゲッティ 47/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  46. 46. どのように読むか? ✓ 様々なやりかた ✓ ひらメソッド ✓ 落下傘方式 ✓ デバッガ方式 ✓ 参考 <URL:http://itpro.nikkeibp.co.jp/article/ COLUMN/20070622/275606/> 48/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  47. 47. ひらメソッドを「疑問」に 適用した コードリーディング
  48. 48. 疑問をベースに ✓ 論文を読んで疑問に思った事柄を きっかけにする ✓ e.g. タイムスライスとは? など 50/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  49. 49. 疑問をベースに ✓ 疑問が新しい疑問を生んだ場合 はそちらを先に解決 ✓ 大きな疑問 => 小さな疑問へ ✓ 小さな疑問を解決 => 大きな疑問 を解決 51/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  50. 50. 問題を細かくする ことが大事
  51. 51. 細切れに作業可能
  52. 52. なぜ大事か?
  53. 53. やる気がないから!
  54. 54. 作業ははじめるまでが大変 ✓ はじめるのにはやる気が必要 ✓ やる気は高価 ✓ はじめるという意識をなくそう ✓ 自然にやっているという感覚が一番い い 56/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  55. 55. 日々の決まった細切れの時間を使う
  56. 56. 細切れの時間 ✓ 電車待ちの時間,電車の中 ✓ 晩ごはんの後,お風呂の後 58/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  57. 57. はじめる「障害」が少ない ✓ 毎日来るもの ✓ 「いまからやるぞ」という感覚をな くすのが重要 59/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  58. 58. 中断可能性は大事
  59. 59. 電車だと途中で目的地に着 くから :)
  60. 60. 自分で決めたルール
  61. 61. 自分で決めたルール ✓ 必ずメモを取る -> org-mode ✓ ソースコードへのリンクを張ることが可 能 ✓ 作業を中断しやすい 63/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  62. 62. 実際に取っていたメモ code-reading.org
  63. 63. ツールを使う ✓ org-mode(emacs) -> メモ ✓ GLOBAL(gtags) -> 関数の定義・ 呼び出し検索 ✓ git -> grepが速い 65/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  64. 64. コードリーディング期間:半年くらい(執筆も並行)
  65. 65. 気がついたら
  66. 66. 理解への障害 ✓ 英語がわからない ✓ 専門用語がわからない ✓ 前提知識がない ✓ やる気が出ない 68/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  67. 67. 全部無くなっていた!! わーい!
  68. 68. 小まとめ ✓ Try&Errorで頑張れ ✓ 得るものはある ✓ 問題を小さく小さく ✓ 自分の扱える範囲に ✓ 作業も小さく小さく ✓ 自分の習慣的な時間に 70/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  69. 69. 難しい問題を理解するのに 大事なこと
  70. 70. 重要ではないもの ✓ やる気 ✓ 頑張り ✓ 徹夜 72/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  71. 71. 絶対にいるもの ✓ 時間 ✓ 習慣 ✓ 執着 73/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  72. 72. 時間
  73. 73. 深い理解へのサイクル ✓ 興味 -> 疑問 -> 思考 -> 疑問 -> 思考 ... ✓ 深く広く疑問は広がっていき、そ れらを理解すると深い理解になる ✓ この作業は絶対的に時間がかか る 75/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  74. 74. なので
  75. 75. 締切がある執筆の場合: 学びながら執筆は オススメしない
  76. 76. 理解している事柄を執筆し たほうがいい (注:締切があるとき)
  77. 77. 習慣
  78. 78. 習慣 ✓ 学ぶ習慣を付ける ✓ 日々の決まった箇所で少しずつ理 解 ✓ 極力やる気を使わない方法で 80/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  79. 79. 執着
  80. 80. 執着 ✓ 諦めない、執着する ✓ 絶対達成するわけじゃないが、諦 めるよりは進める 82/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  81. 81. 最初に覚悟を決めると理解に長い時間を掛けても ストレスにならない
  82. 82. 理解した後にするといいこ と
  83. 83. 理解した後は記録に残す
  84. 84. 本にするのはかなりいい
  85. 85. 執筆 ✓ 疑問を補足する ✓ みんな疑問に思うはずの場所 ✓ わかりやすい本になる ✓ 自分が読み返せる 87/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  86. 86. いい本 ✓ 躓きづらい本 ✓ 自分が見返していい本 ✓ 深く理解した著者が書いた本 88/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  87. 87. 本を書くと良いのは「忘れられる安心感」 があること
  88. 88. 話題は変わって…
  89. 89. プログラマが死ぬときはい つか?
  90. 90. 死ぬとき ✓ 管理職に就いたとき? ✓ 定年説?(35歳?) ✓ 物理的に死ぬ? (間違いじゃないが…) 92/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  91. 91. 私が思う「プログラマが死ぬとき」
  92. 92. 無意識に思考停止したとき
  93. 93. どういうことか?
  94. 94. 例えば専門用語 ✓ Ajax ✓ G1GC new!! 96/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  95. 95. 用語は思考停止させる 効果を持つ
  96. 96. 「AjaxはAjaxね」「G1GCはえーとG1GCって ことね」
  97. 97. ふつうのプログラマは
  98. 98. 意識して思考停止する ✓ すべての技術は理解できない ✓ 自分には興味のない分野は意識 して思考停止 ✓ あえて調べず「こういうもんだ」と 割り切る 100/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  99. 99. 興味のある分野 ✓ 専門用語の意味を調べる ✓ 仕組みを調べる ✓ 設計思想を調べる 101/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  100. 100. 興味の窓が開いている状態
  101. 101. しかし、時が経つにつれて
  102. 102. 興味の窓が閉じてしまう
  103. 103. ダークサイド(暗黒面) に落ちる
  104. 104. 無意識に思考停止 ✓ 興味のある分野だが調べない ✓ 思考停止に気づいていない ✓ 蓄えた知識のみ 106/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
  105. 105. 死んだプログラマ http://www.flickr.com/photos/bhagathk/3847024461/
  106. 106. 技術向きの興味の窓は意 識的に開けておこう!(会場のみなさんには関係 ない話かも)
  107. 107. 興味を持つことから はじまるッ
  108. 108. ということでG1GC本を一冊 :D
  109. 109. 大切なのは疑問を持ち 続けること。 [cited from `アルベルト・アインシュタイン] 111/111G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3

×