More Related Content Similar to PyConJP Keynote Speech (Japanese version) (7) PyConJP Keynote Speech (Japanese version)5. evil pythonista
• 2006年LL Ring「じゃんけん2.0」
• いろいろな言語のプログラマが各言語でプロ
グラムを書き、通信対戦でじゃんけんする
14年9月17日水曜日3
6. evil pythonista
• 2006年LL Ring「じゃんけん2.0」
• いろいろな言語のプログラマが各言語でプロ
グラムを書き、通信対戦でじゃんけんする
• この程度のプログラムなら1行で書ける!
14年9月17日水曜日3
9. How to?
• if → and/orの短絡評価を使う
14年9月17日水曜日5
10. How to?
• if → and/orの短絡評価を使う
• while → 無限にyieldする便利ライブラリ
from itertools import count
14年9月17日水曜日5
11. How to?
• if → and/orの短絡評価を使う
• while → 無限にyieldする便利ライブラリ
from itertools import count
• try..except → “例外を投げて死ぬ可能性の
ある処理” を子プロセスとして起動し、
終了時のエラー出力を読む
14年9月17日水曜日5
27. 解析
• データの収集
• クレンジング・フィルタリング
• 統計処理もNumPy・SciPyでお手軽
14年9月17日水曜日15
28. 解析
• データの収集
• クレンジング・フィルタリング
• 統計処理もNumPy・SciPyでお手軽
from scipy.stats import chi2_contingency
chi2_contingency(data)
14年9月17日水曜日15
33. おすすめグラフ
Chart recommendation
• プロトタイプにFlask、NumPy
• 標準ライブラリのcollectionsも便利
• 製品版はJavaScriptで実装されてます
http://developer.cybozu.co.jp/tech/?p=3874
14年9月17日水曜日20
36. Augmenting Human Intellect
ソフトウェアによって
人間の能力を増強する
エンゲルバート"Augmenting Human Intellect: A Conceptual Framework" (1962)
14年9月17日水曜日22
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
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. 人間増強の四要素
• 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. theme of this conference:
Rediscover with Python
14年9月17日水曜日35
59. 盲点(blind spot)
• 「明らかに知ってる」領域と
「明らかに知らない」領域の間に
「知らないことを知らない」領域がある。
• 見えていないのに、
見えてないことに気づいていない。
それが盲点。
14年9月17日水曜日45
66. How to find blind spot?
Comparison
History
Experience
Abstraction
Communication
14年9月17日水曜日52
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. 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. Experience
• 実際に使うことで盲点に気づく
「あれ?1/2は0.5になると思ったが
0になったぞ?」
PEP 238 -- Changing the Division Operator
http://legacy.python.org/dev/peps/pep-0238/
14年9月17日水曜日55
72. How to find blind spot?
Comparison
History
Experience
Abstraction
Communication
14年9月17日水曜日58
77. A: まさにその点に対して答え
ようとしている「U理論」に
ついて9/24から京都大学サ
マーデザインスクールで解説
する予定なのでその資料を…
http://www.design.kyoto-u.ac.jp/sds2014/ja/theme01.html
14年9月17日水曜日63
83. U曲線
PDCAサイクルとU曲線の関係
U曲線
補足スライド
←見てはいるが、自分の視点からだけ。
自己と他者の間に境界線を引いて
「奴らは~しないから」と考えたりする。
C・オットー・シャーマー「U理論」
状態
行動
14年9月17日水曜日69
86. この特集の
3章がまるまる
その内容です
WEB上で読めます
http://gihyo.jp/lifestyle/feature/01/engineer-studying
14年9月17日水曜日72
92. A: 100のデータを一覧できる
状態を作った上で、机の上で
動かすことでモデルを組み立
てていく、これがKJ法
(会場では言いそこねたが、既存の構造をトップダウ
ンに当てはめるのではなく、データからボトムアップ
で構造を組み立てていくのも重要なポイント)
(ちなみに上記で紹介した拙著書籍・特集記事は
KJ法でモデル化されている)
14年9月17日水曜日78