Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

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

7.523 visualizaciones

Publicado el

Publicado en: Tecnología
  • Sé el primero en comentar

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

×