Successfully reported this slideshow.

PyConJP Keynote Speech (Japanese version)

7

Share

1 of 103
1 of 103

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

PyConJP Keynote Speech (Japanese version)

  1. 1. Rediscover with Python サイボウズ・ラボ 西尾泰和 質疑応答加筆バージョン 2014-09-17 14年9月17日水曜日1
  2. 2. evil pythonista 14年9月17日水曜日2
  3. 3. evil pythonista 14年9月17日水曜日3
  4. 4. evil pythonista • 2006年LL Ring「じゃんけん2.0」 14年9月17日水曜日3
  5. 5. evil pythonista • 2006年LL Ring「じゃんけん2.0」 • いろいろな言語のプログラマが各言語でプロ グラムを書き、通信対戦でじゃんけんする 14年9月17日水曜日3
  6. 6. evil pythonista • 2006年LL Ring「じゃんけん2.0」 • いろいろな言語のプログラマが各言語でプロ グラムを書き、通信対戦でじゃんけんする • この程度のプログラムなら1行で書ける! 14年9月17日水曜日3
  7. 7. 改行のある構文は使えない • if • while • try..except 14年9月17日水曜日4
  8. 8. How to? 14年9月17日水曜日5
  9. 9. How to? • if → and/orの短絡評価を使う 14年9月17日水曜日5
  10. 10. How to? • if → and/orの短絡評価を使う • while → 無限にyieldする便利ライブラリ from itertools import count 14年9月17日水曜日5
  11. 11. How to? • if → and/orの短絡評価を使う • while → 無限にyieldする便利ライブラリ from itertools import count • try..except → “例外を投げて死ぬ可能性の ある処理” を子プロセスとして起動し、 終了時のエラー出力を読む 14年9月17日水曜日5
  12. 12. http://www.nishiohirokazu.org/blog/2006/08/python_12.html 14年9月17日水曜日6
  13. 13. まじめな自己紹介 14年9月17日水曜日7
  14. 14. まじめな自己紹介 • サイボウズ・ラボ 14年9月17日水曜日7
  15. 15. まじめな自己紹介 • サイボウズ・ラボ • 次世代のグループウェアの 基盤となる技術を中長期視点で研究開発 14年9月17日水曜日7
  16. 16. まじめな自己紹介 • サイボウズ・ラボ • 次世代のグループウェアの 基盤となる技術を中長期視点で研究開発 • ワンライナーは書いていません 14年9月17日水曜日7
  17. 17. サイボウズにおける Python利用シーン • 自動化 • インフラ • 解析 14年9月17日水曜日8
  18. 18. 自動化 • VM・ストレージ・各種設定の管理 • テスト:記述するのもモックを作るのも楽 • Jenkinsのスクリプトとして →RequestsでkintoneのAPIを叩いたり 14年9月17日水曜日9
  19. 19. インフラ 14年9月17日水曜日10
  20. 20. Remote Backup https://enterprise.cybozu.com/topics131111/ 14年9月17日水曜日11
  21. 21. P2P automatic failure recovery system http://developer.cybozu.co.jp/tech/?p=5799 14年9月17日水曜日12
  22. 22. P2P automatic failure recovery system http://developer.cybozu.co.jp/tech/?p=5799 14年9月17日水曜日13
  23. 23. インフラ • 性能が要求される部分はC++やJava • Pythonでそれらのコンポーネントを つなぎ合わせる 14年9月17日水曜日14
  24. 24. 解析 14年9月17日水曜日15
  25. 25. 解析 • データの収集 14年9月17日水曜日15
  26. 26. 解析 • データの収集 • クレンジング・フィルタリング 14年9月17日水曜日15
  27. 27. 解析 • データの収集 • クレンジング・フィルタリング • 統計処理もNumPy・SciPyでお手軽 14年9月17日水曜日15
  28. 28. 解析 • データの収集 • クレンジング・フィルタリング • 統計処理もNumPy・SciPyでお手軽 from scipy.stats import chi2_contingency chi2_contingency(data) 14年9月17日水曜日15
  29. 29. サイボウズにおける Python利用シーン • 自動化 • インフラ • 解析→具体例を話します 14年9月17日水曜日16
  30. 30. 14年9月17日水曜日17
  31. 31. おすすめグラフ Chart recommendation • データからグラフを作る • どんなグラフを作るか選択肢が色々 • コンピュータが支援 http://developer.cybozu.co.jp/tech/?p=3874 14年9月17日水曜日18
  32. 32. Recommend charts using statistics of data distribution 14年9月17日水曜日19
  33. 33. おすすめグラフ Chart recommendation • プロトタイプにFlask、NumPy • 標準ライブラリのcollectionsも便利 • 製品版はJavaScriptで実装されてます http://developer.cybozu.co.jp/tech/?p=3874 14年9月17日水曜日20
  34. 34. What is groupware? 14年9月17日水曜日21
  35. 35. What is groupware? Group + Software 14年9月17日水曜日21
  36. 36. Augmenting Human Intellect ソフトウェアによって 人間の能力を増強する エンゲルバート"Augmenting Human Intellect: A Conceptual Framework" (1962) 14年9月17日水曜日22
  37. 37. Augmenting Group Intellect ソフトウェアによって 集団の能力を増強する =グループウェア 14年9月17日水曜日23
  38. 38. word2vec 文章を与えると コンピュータが 単語の意味を理解する 14年9月17日水曜日24
  39. 39. 人間 コンピュータ 14年9月17日水曜日25
  40. 40. 人間+コンピュータ =増強された人間 人間 14年9月17日水曜日26
  41. 41. 14年9月17日水曜日27
  42. 42. 14年9月17日水曜日28
  43. 43. “やる気の出るアドバイス”で検索 14年9月17日水曜日29
  44. 44. 14 channels brain wave sensor 14年9月17日水曜日30
  45. 45. Human→Machine touch panel Machine→Human liquid crystal (multi-touch) switch mouse keyboard camera scanner paper CRT 3D TV e-ink HMD 14年9月17日水曜日31
  46. 46. Machine→Human paper CRT liquid crystal 3D TV e-ink HMD book e-book 14年9月17日水曜日32
  47. 47. 人間増強の四要素 • 1: 人工物(Artifacts): コンピュータ、ソフトウェア、etc. • 2: 言語(Language): 概念を表す専門用語、デザパタ、etc. • 3: 方法論(Methodology): 問題解決のための手順、戦略、etc. • 4: 教育(Training): 1~3を使うスキルを身につける エンゲルバート"Augmenting Human Intellect: A Conceptual Framework" (1962) 14年9月17日水曜日33
  48. 48. 人間増強の四要素 • 1: 人工物(Artifacts): コンピュータ、ソフトウェア、etc. • 2: 言語(Language): 概念を表す専門用語、デザパタ、etc. • 3: 方法論(Methodology): 問題解決のための手順、戦略、etc. • 4: 教育(Training): 1~3を使うスキルを身につける エンゲルバート"Augmenting Human Intellect: A Conceptual Framework" (1962) 14年9月17日水曜日34
  49. 49. theme of this conference: Rediscover with Python 14年9月17日水曜日35
  50. 50. How to discover? →Methodology to find unknown 14年9月17日水曜日36
  51. 51. 14年9月17日水曜日37
  52. 52. 14年9月17日水曜日38
  53. 53. 14年9月17日水曜日39
  54. 54. How to discover? →Change Perspective 14年9月17日水曜日40
  55. 55. Change Perspective • どんな視点で物事を見ても、 かならず見えていない部分がある • 見えてない部分を見るために視点を変える 14年9月17日水曜日41
  56. 56. known ↔ unknown 14年9月17日水曜日42
  57. 57. 明らかに 知っている 明らかに 知らない 14年9月17日水曜日43
  58. 58. 明らかに 知っている 明らかに 知らない 不明 14年9月17日水曜日44
  59. 59. 盲点(blind spot) • 「明らかに知ってる」領域と 「明らかに知らない」領域の間に 「知らないことを知らない」領域がある。 • 見えていないのに、 見えてないことに気づいていない。 それが盲点。 14年9月17日水曜日45
  60. 60. 「どこまで知っているのか」 を明らかにする 明らかに 知っている 明らかに 知らない 14年9月17日水曜日46
  61. 61. 明らかに 知らない 明らかに←盲点 blindspot 知っている 14年9月17日水曜日47
  62. 62. 明らかに 知らない 明らかに←盲点 blindspot 知っている 14年9月17日水曜日48
  63. 63. How to find blind spot? 14年9月17日水曜日49
  64. 64. Comparison History Experience 14年9月17日水曜日50
  65. 65. Comparison History Experience + Abstraction Communication 14年9月17日水曜日51
  66. 66. How to find blind spot? Comparison History Experience Abstraction Communication 14年9月17日水曜日52
  67. 67. Comparison • 例:複数言語を比較することで気づく 「あれ?Rubyでは0は真なのか?!  Pythonでは偽だよな?!」 「言語によって何が真か異なるのか?」 「他の言語ではどうなってるんだろう?」 「Pythonではどう定義されている?」 object.__nonzero__(self) Called to implement truth value testing and the built-in operation bool(); 14年9月17日水曜日53
  68. 68. History • 例:歴史を追うことで盲点に気づく 「PythonってなんでNew-styleクラスとそうでな いのの2つあるの? →歴史を知る →型とクラスを融合する目的のために メソッドの名前解決の順序の決め方を 変える必要があったことに気づく Unifying types and classes in Python 2.2 | Python.org https://www.python.org/download/releases/2.2.3/descrintro 14年9月17日水曜日54
  69. 69. Experience • 実際に使うことで盲点に気づく 「あれ?1/2は0.5になると思ったが  0になったぞ?」 PEP 238 -- Changing the Division Operator http://legacy.python.org/dev/peps/pep-0238/ 14年9月17日水曜日55
  70. 70. Abstraction • 具体例を抽象化したものに触れることで 自分の経験を言語化する 「ああ、なんとなく使っていたこの書き 方って、Mediatorパターンって名前がつ いていたのか!」 14年9月17日水曜日56
  71. 71. Communication • 経験の異なる他人と会話することで盲点 に気づく 「こういう問題に困ってんだよね」 「それこうしたらいいんじゃない?」 「なるほど、その発想はなかった!」 「いや、GUIでは普通の発想だよ」 「俺サーバ周りが専門だからなぁ」 14年9月17日水曜日57
  72. 72. How to find blind spot? Comparison History Experience Abstraction Communication 14年9月17日水曜日58
  73. 73. Communication 14年9月17日水曜日59
  74. 74. Office Hour 13:00-13:30 Blog, Mail see http://nhiro.org/ 14年9月17日水曜日60
  75. 75. Q&A ↓質問を思い出すのにとても役に立ちました!ありがとう! PyCon JP 2014 Day 3 感想とノート #pyconjp | こえむの編集後記 http://www.koemu.com/blog/2014/09/15/pycon-jp-2014-day3/ 14年9月17日水曜日61
  76. 76. Q: 「盲点に気づくチャンス」となる 情報を見ても認知的不協和を起こして 「そんなはずはない」と思ってしまう 人がいるのでは。組織のaugmentを 考える上ではそういう人をどうすれば よいだろうか?どう啓蒙する? 14年9月17日水曜日62
  77. 77. A: まさにその点に対して答え ようとしている「U理論」に ついて9/24から京都大学サ マーデザインスクールで解説 する予定なのでその資料を… http://www.design.kyoto-u.ac.jp/sds2014/ja/theme01.html 14年9月17日水曜日63
  78. 78. A: 言いたいことは2点ある。 まず「他人をどう変えるか」 というスタンスではうまくい かない。自分が変わる必要が ある。 14年9月17日水曜日64
  79. 79. A: 次に「見えているのに見て いない」状態にハマることは 自分も含めてよくあること、 と気づくこと。 14年9月17日水曜日65
  80. 80. A: 最初は小さなものでよいの で、その気付きから有益な結 果が得られる「成功体験」を 積むこと。これが自信につな がる。 14年9月17日水曜日66
  81. 81. U曲線 PDCAサイクルとU曲線の関係 U曲線 補足スライド C・オットー・シャーマー「U理論」   状態 行動 14年9月17日水曜日67
  82. 82. U曲線 PDCAサイクルとU曲線の関係 U曲線 補足スライド ←見えているのに思い込みにとらわれて C・オットー・シャーマー「U理論」   状態 行動 きちんと見てない状態 14年9月17日水曜日68
  83. 83. U曲線 PDCAサイクルとU曲線の関係 U曲線 補足スライド ←見てはいるが、自分の視点からだけ。 自己と他者の間に境界線を引いて 「奴らは~しないから」と考えたりする。 C・オットー・シャーマー「U理論」   状態 行動 14年9月17日水曜日69
  84. 84. Q: モデリングをどうやっ てやるかも大事なのでは ないか? 14年9月17日水曜日70
  85. 85. A: はい、大事です。 14年9月17日水曜日71
  86. 86. この特集の 3章がまるまる その内容です WEB上で読めます http://gihyo.jp/lifestyle/feature/01/engineer-studying 14年9月17日水曜日72
  87. 87. A: 経験から仮説が作られる。 「理解した」という気持ちも 仮説。仮説は実験によって検 証する必要がある。理解に基 づいて行動し結果を確認する 14年9月17日水曜日73
  88. 88. A: 行動した結果が予想と異 なった場合はモデルを修正する 必要がある。これを繰り返して いくことで「正しい可能性の高 い」モデルを作り、それを組み 合わせることでより大きなモデ ルを作る。これが一つの方法論 14年9月17日水曜日74
  89. 89. A: もう一つの方法論とし て実験が容易でない人文 科学では、KJ法やグラウ ンデッド・セオリーが使 われる。 14年9月17日水曜日75
  90. 90. A: まずインタビューなどで大 量にデータを集め、それを自 分の偏見で「これはノイズ だ」とフィルタリングするこ となく一覧できるようにする 14年9月17日水曜日76
  91. 91. A: 人間の作業記憶は7つくら いしかないが、データを紙に 書いて机の上に広げれば100 とか200とかを見ることがで きる 14年9月17日水曜日77
  92. 92. A: 100のデータを一覧できる 状態を作った上で、机の上で 動かすことでモデルを組み立 てていく、これがKJ法 (会場では言いそこねたが、既存の構造をトップダウ ンに当てはめるのではなく、データからボトムアップ で構造を組み立てていくのも重要なポイント) (ちなみに上記で紹介した拙著書籍・特集記事は KJ法でモデル化されている) 14年9月17日水曜日78
  93. 93. Office Hourでの質問 Q: 盲点に気づく5つの方法は 並列ではなく、時間軸で前後 関係があるのではないか? 14年9月17日水曜日79
  94. 94. A: それは盲点だった!確かに 抽象はいきなり最初から使う ことはできない。プログラミ ングの経験がない人がデザイ ンパターンの本を読んでも自 分の経験と結びつかない。 14年9月17日水曜日80
  95. 95. Q: テスタの間でテストのノウ ハウを共有したいがどうした らいいか (詳細な状況説明は省略) 14年9月17日水曜日81
  96. 96. A: 言語化されていない知識を どうやって共有するかという 問題だと思える。一つの方法 論は「一緒に作業」だ。 14年9月17日水曜日82
  97. 97. A: 一緒に作業することでノウ ハウを言語化しないまま共有 することができる。更に「操 作せずに指示する人と操作す る人」を分ければ指示するた めに知識の言語化が促される 参考文献 “凡才の集団は孤高の天才に勝る” 14年9月17日水曜日83
  98. 98. A: 言語化が行われて初めて、 マニュアル化などができるよ うになる。言語化は結構難し いタスクなので、そのスキル を鍛えずにいきなり個々人に 任せるとうまくいかない。 14年9月17日水曜日84
  99. 99. 言語化されていない知識   このスパイラルを回すことで知識が創造される 『知識創造企業』p93   補足スライド 14年9月17日水曜日85
  100. 100. 言語化されていない知識   このスパイラルを回すことで知識が創造される 『知識創造企業』p93   補足スライド ↑ペアプロ・共同作業はここに相当する 14年9月17日水曜日86
  101. 101. Q: 私は情報の言語化のための テンプレートを作っている。 質問に答えていくと必要な情 報が揃う。 14年9月17日水曜日87
  102. 102. A: それは良いアプローチ。 「言語化しろ」と言われてで きない人でも、具体的に質問 をされると答えられることが よくある。適切な質問を投げ かけることは重要。 14年9月17日水曜日88
  103. 103. A: そういう意味でテンプレー ト化にはメリットがある。し かし、テンプレートで表現で きない情報が捨てられてしま うデメリットに気をつける必 要がある。新しい重要な情報 は定型化されていない。 14年9月17日水曜日89

×