SlideShare a Scribd company logo
1 of 75
Download to read offline
Rediscover with Python 
Cybozu Labs. 
NISHIO Hirokazu 
PyCon JP Keynote Speech 
English version 
2014-09-17 
14年9月17日水曜日1
I gave my speech in Japanese and 
unfortunately simultaneous 
interpretation was not recorded. So I 
rewrite important part of my slide into 
English for non-Japanese speakers. 
14年9月17日水曜日2
self introduction 
14年9月17日水曜日3
self introduction 
• Cybozu Labs. 
14年9月17日水曜日3
self introduction 
• Cybozu Labs. 
• Researching next generation groupware 
14年9月17日水曜日3
self introduction 
• Cybozu Labs. 
• Researching next generation groupware 
• What is groupware? 
14年9月17日水曜日3
examples of groupware 
kintone is our product: https://www.kintone.com/ 
14年9月17日水曜日4
What is groupware? 
coined by Douglas C. Engelbart, the inventor of mouse and GUI 
14年9月17日水曜日5
What is groupware? 
Group + Software 
coined by Douglas C. Engelbart, the inventor of mouse and GUI 
14年9月17日水曜日5
Augmenting Human Intellect 
Augment Human’s ability 
with software 
Douglas C. Engelbart "Augmenting Human Intellect: A Conceptual Framework" (1962) 
14年9月17日水曜日6
Augmenting Group Intellect 
Augment group’s ability 
with software 
= Groupware 
14年9月17日水曜日7
word2vec 
Computer read text and 
understand relation 
between words in the text 
my book. published on May 
14年9月17日水曜日8
人間 
コンピュータ 
You may think like this 
14年9月17日水曜日9
人間+コンピュータ 
=増強された人間 
人間 
I prefer to think like this 
14年9月17日水曜日10
Example 
To monitor yourself won’t works well. When you are in bad 
condition, monitoring is also in bad condition. So you can’t 
notice you are in bad condition. 
One solution is monitoring by another person. But sense of 
shame and pride will cause problems. 
14年9月17日水曜日11
Another solution is monitoring by computer. It solves 
“shame and pride” problems. 
14年9月17日水曜日12
This is a prototype. You can consult with the 
system to motivate yourself. 13000 people 
used it and 6000 people was motivated. 
14年9月17日水曜日13
14 channels brain wave sensor 
Another approach is going. 
14年9月17日水曜日14
Human→Machine touch panel 
Machine→Human 
liquid crystal 
(multi-touch) 
switch 
mouse 
keyboard 
camera 
scanner 
paper CRT 3D TV 
e-ink HMD 
Method to copy information from/to human is evolved 
14年9月17日水曜日15
Machine→Human 
paper CRT liquid crystal 3D TV 
e-ink HMD 
book e-book 
But books are not evolved much 
We need next generation “book reading”. 
Computer should monitor human reading books, 
and augment its performance. 
I think brain-wave and hi-reso HMD are the key to future. 
14年9月17日水曜日16
4 elements to augment human 
• 1: Artifacts: 
computer, software, etc. 
• 2: Language: 
jargon to refer special concepts, design patterns, etc. 
• 3: Methodology: 
procedure and strategy for solving problems, etc. 
• 4: Training: achieve skills to use 1~3 
Engelbart "Augmenting Human Intellect: A Conceptual Framework" (1962) 
14年9月17日水曜日17
theme of this conference: 
Rediscover with Python 
14年9月17日水曜日18
How to discover? 
→Methodology to find unknown 
14年9月17日水曜日19
When you see something... 
14年9月17日水曜日20
You see some part of the object 
14年9月17日水曜日21
If you see the object from the 
left side, it looks like a sphere. 
But if you see it from the bottom 
side, you find it has a tail! 
It is the process to 
discover unknown 
14年9月17日水曜日22
How to discover? 
→Change Perspective 
14年9月17日水曜日23
known ↔ unknown 
Two? no, it’s not correct. 
14年9月17日水曜日24
obviously 
known 
obviously 
unknown 
Between known and unknown... 
14年9月17日水曜日25
obviously 
known 
obviously 
unknown 
不明not obvious 
There are things which you don’t know 
that you don’t know them. 
“obvious” = “明” in Japanese 
14年9月17日水曜日26
blind spot 
• Between “Things you know” and 
“Things you don’t know”, 
“Things you don’t know that you don’t 
know them” exists 
• You don’t see it, but you don’t notice 
you don’t see it, 
that is the blind spot 
14年9月17日水曜日27
Clarify what you know 
obviously 
known 
obviously 
unknown 
14年9月17日水曜日28
←blind spot 
Out of the border you can find 
blind spot 
obviously 
known 
obviously 
unknown 
14年9月17日水曜日29
←blindspot 
Then the border expands 
obviously 
known 
obviously 
unknown 
14年9月17日水曜日30
How to find blind spot? 
14年9月17日水曜日31
In my book published in April 
2013, I introduced three way 
to learn 
Comparison 
History 
Experience 
Japanese, Korean, Chinese version are available, 
English version is on going. http://nhiro.org/langbook/en.html 
14年9月17日水曜日32
In my special feature article in this April, I added two 
Comparison 
History 
Experience 
+ 
Abstraction 
Communication 
14年9月17日水曜日33
How to find blind spot? 
Comparison 
History 
Experience 
Abstraction 
Communication 
14年9月17日水曜日34
Comparison 
• You can find blind spot by comparing 
programming languages 
“In Ruby, 0 is true?! In Python it is false!” 
“It differs among languages?” 
“What is the definition in Python??” 
object.__nonzero__(self) 
Called to implement truth value testing and the built-in operation bool(); 
14年9月17日水曜日35
History 
• You can find blind spot by learning history. 
“Why Python has new-style class and old class?” 
→(Learn history) 
→ “To unify types and classes? It’s important!” 
“Old class has problem on method resolution order, 
so we need new-style class. I got it.” 
Unifying types and classes in Python 2.2 | Python.org 
https://www.python.org/download/releases/2.2.3/descrintro 
14年9月17日水曜日36
Experience 
• You can find blind spot by doing based on your 
understanding. Especially it won’t work as you 
think. 
“Oops, why 1/2 goes into 0? I think it goes 0.5!” 
PEP 238 -- Changing the Division Operator 
http://legacy.python.org/dev/peps/pep-0238/ 
If you think it is obviously 
goes into 0, you didn’t find 
your blind spot. You should 
experience Python 3. 
14年9月17日水曜日37
Abstraction 
• You can find blind spot by learning abstract 
model and connect it to your experience. It 
helps you verbalize implicit knowledge. 
“Ah, I’m used to the coding pattern but I 
didn’t know it was called Mediator Pattern!” 
“Mailing lists are also Mediator Pattern in 
information sharing domain!” 
Abstract model can connect experiences 
in different domain/person/situation. 
14年9月17日水曜日38
Communication 
• You can find blind spot by talking with other 
people who have different experiences. 
“I have a problem...” “You can solve it by ...” 
“Oh! Nice idea!” “But it is common in GUI 
programming” “Hmm, I don’t know on GUI” 
14年9月17日水曜日39
How to find blind spot? 
Comparison 
History 
Experience 
Abstraction 
Communication 
14年9月17日水曜日40
Communication 
14年9月17日水曜日41
Office Hour 
13:00-13:30 
Blog, Mail 
see http://nhiro.org/ 
14年9月17日水曜日42
Q&A 
14年9月17日水曜日43
Q: Some people ignore the chance 
to find blind spot. How can I 
manage them? 
14年9月17日水曜日44
A: “U Theory” is targeting 
the problem. I’ll give lecture 
on that in Kyoto Univ. 
Summer Design School. 
After that you can read my 
slides on U soon. 
http://www.design.kyoto-u.ac.jp/sds2014/ja/theme01.html 
14年9月17日水曜日45
A: First, “How to manage 
others” is not good 
attitude. Change yourself 
first. 
14年9月17日水曜日46
A: Second, you (and I) 
sometimes ignore the 
chance to find blind spot 
too. It’s common. Be aware 
and be careful. That helps 
you find blind spot. 
14年9月17日水曜日47
A: Start from small step. 
Make useful result by 
finding blind spot. 
Successful experience 
make you confident. 
14年9月17日水曜日48
from my lecture 
U Curve 
PDCA Cycle and U Curve 
U Curve 
Otto Scharmer “U Theory” 
  
state 
action 
14年9月17日水曜日49
from my lecture 
U Curve 
PDCA Cycle and U Curve 
U Curve 
←You stick on false belief and you don’t see. 
Otto Scharmer “U Theory” 
  
state 
action 
14年9月17日水曜日50
from my lecture 
U Curve 
PDCA Cycle and U Curve 
U Curve 
←You see, but from your perspective. 
Otto Scharmer “U Theory” 
  
state 
action 
You draw boundary between self and others, 
thinking “they don’t do ...(some good action)” 
14年9月17日水曜日51
Q: Is it important to 
make abstract models? 
14年9月17日水曜日52
A: Yes, it’s important. 
14年9月17日水曜日53
Section 3 of my 
special feature 
is how to make 
models. 
You can read them(but in Japanese) 
http://gihyo.jp/lifestyle/feature/01/engineer-studying 
14年9月17日水曜日54
A: Sense of “I got it” is also 
hypothesis. Hypothesis 
should be tested. 
Do action based on your 
understanding and check 
the result. 
14年9月17日水曜日55
A: If the result differ from your 
understanding, it is chance to 
adjust your models. To repeat the 
process you can achieve better 
models, and then based on that 
you can make larger model. 
This is a method. 
14年9月17日水曜日56
A: Another method KJ 
method and grounded 
theory. They are used in 
domains, in which 
experiments are difficult. 
14年9月17日水曜日57
A: I’ll introduce KJ method 
roughly. First, collect a lot 
of data. Don’t filter based 
on your prejudice. Spread 
all data on your desk. 
14年9月17日水曜日58
A: Human’s woring 
memory is about seven. 
But if you put data on 
your desk, you can see 
100~200 data at a time. 
14年9月17日水曜日59
A: Seeing 100 data, moving 
them physically, making 
structure from bottom up, 
and then you get models 
on your desk. 
(Models in my book and special features are also developed 
with KJ method) 
14年9月17日水曜日60
Q: 5 ways to find blind 
spot are not same on time 
series. 
14年9月17日水曜日61
A: Good point. It’s my blind point. 
Sure, “Abstraction” is follower. A 
person without any programming 
experience can not find blind spot 
by reading design patterns 
textbooks. Abstract models in book 
doesn’t connect to his experience. 
14年9月17日水曜日62
Q: How to share know-how 
among testers. 
(detail omitted) 
14年9月17日水曜日63
A: It looks a problem to 
share implicit, not 
verbalized, knowledge. 
One method is “work 
together” 
14年9月17日水曜日64
A: By working together, we can 
share knowledge without 
verbalizing them. 
Additionally, if one person is 
prohibited to do anything 
except for talking what to do, it 
prompt verbalization. 
Ref: Keith Sawyer "Group Genius: The Creative Power of Collaboration" 
14年9月17日水曜日65
A: We can make manuals 
only after we verbalized 
our knowledge. 
Verbalization is difficult 
job. Delegating the job 
without any training 
is bad idea. 
14年9月17日水曜日66
not verbalized knowledge 
  
Ikujiro Nonaka "The knowledge creating company" Japanese version p93 
  
from my lecture 
verbalized 
not verbalized 
14年9月17日水曜日67
not verbalized knowledge 
  
Ikujiro Nonaka "The knowledge creating company" Japanese version p93 
  
from my lecture 
verbalized 
not verbalized 
↑pair programming, work together 
14年9月17日水曜日68
Q: I make template to 
share information and use 
it. By answering questions, 
required information will 
be collected. 
14年9月17日水曜日69
A: Nice method. Even if 
someone can not verbalize 
himself, they can answer 
to specific questions. It’s 
common. Making good 
questions are useful. 
14年9月17日水曜日70
A: However, be careful. 
Sometimes we lose 
information which is not fit 
to the template. 
Innovative information 
don’t fit to existing 
template. 
14年9月17日水曜日71

More Related Content

Similar to Rediscover Programming Concepts with Python

Frontend United: Etching wireframes & agile UX
Frontend United: Etching wireframes & agile UXFrontend United: Etching wireframes & agile UX
Frontend United: Etching wireframes & agile UXWunderkraut
 
Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies (Casca...
Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies (Casca...Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies (Casca...
Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies (Casca...Sam Livingston-Gray
 
The story of a UI trainer
The story of a UI trainerThe story of a UI trainer
The story of a UI trainerHarshal Patil
 
15 Killer Lessons Learned From 15 Years of UX Research
15 Killer Lessons Learned From 15 Years of UX Research15 Killer Lessons Learned From 15 Years of UX Research
15 Killer Lessons Learned From 15 Years of UX ResearchUXPA International
 
Culture And Aesthetic Revisited
Culture And Aesthetic RevisitedCulture And Aesthetic Revisited
Culture And Aesthetic RevisitedAdam Keys
 
B1 Fback Presentation
B1 Fback PresentationB1 Fback Presentation
B1 Fback PresentationTonyversity
 
How Tools Have Shaped the Role of the Designer
How Tools Have Shaped the Role of the DesignerHow Tools Have Shaped the Role of the Designer
How Tools Have Shaped the Role of the DesignerJonathan Lieberman
 
Life After Death by PowerPoint 2015 Handout
Life After Death by PowerPoint 2015 HandoutLife After Death by PowerPoint 2015 Handout
Life After Death by PowerPoint 2015 HandoutChris Shade
 
Hr pts-e-dn-version 2.0
Hr pts-e-dn-version 2.0Hr pts-e-dn-version 2.0
Hr pts-e-dn-version 2.0Paul Robere
 
Advancing UX in Your Organization (Fluxible Conference, September 2013)
Advancing UX in Your Organization (Fluxible Conference, September 2013)Advancing UX in Your Organization (Fluxible Conference, September 2013)
Advancing UX in Your Organization (Fluxible Conference, September 2013)Kimberley Peter
 
Fmp proposal (2)
Fmp proposal (2)Fmp proposal (2)
Fmp proposal (2)MaxJones48
 
Is it done yet? (How about now?)
Is it done yet? (How about now?)Is it done yet? (How about now?)
Is it done yet? (How about now?)Michele Playfair
 
Fmp proposal (3)
Fmp proposal (3)Fmp proposal (3)
Fmp proposal (3)MaxJones48
 
Life After Death by PowerPoint Notes
Life After Death by PowerPoint NotesLife After Death by PowerPoint Notes
Life After Death by PowerPoint NotesChris Shade
 
Refactoring (the brain) for developers
Refactoring (the brain) for developers Refactoring (the brain) for developers
Refactoring (the brain) for developers Ionel Condor
 
3 Stage Of Drama.pptx
3 Stage Of Drama.pptx3 Stage Of Drama.pptx
3 Stage Of Drama.pptxokeoke
 
'10 Great but now Overlooked Tools' by Graham Thomas
'10 Great but now Overlooked Tools' by Graham Thomas'10 Great but now Overlooked Tools' by Graham Thomas
'10 Great but now Overlooked Tools' by Graham ThomasTEST Huddle
 
Graham Thomas - 10 Great but Now Overlooked Tools - EuroSTAR 2012
Graham Thomas - 10 Great but Now Overlooked Tools - EuroSTAR 2012Graham Thomas - 10 Great but Now Overlooked Tools - EuroSTAR 2012
Graham Thomas - 10 Great but Now Overlooked Tools - EuroSTAR 2012TEST Huddle
 

Similar to Rediscover Programming Concepts with Python (20)

Frontend United: Etching wireframes & agile UX
Frontend United: Etching wireframes & agile UXFrontend United: Etching wireframes & agile UX
Frontend United: Etching wireframes & agile UX
 
Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies (Casca...
Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies (Casca...Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies (Casca...
Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies (Casca...
 
The story of a UI trainer
The story of a UI trainerThe story of a UI trainer
The story of a UI trainer
 
15 Killer Lessons Learned From 15 Years of UX Research
15 Killer Lessons Learned From 15 Years of UX Research15 Killer Lessons Learned From 15 Years of UX Research
15 Killer Lessons Learned From 15 Years of UX Research
 
Culture And Aesthetic Revisited
Culture And Aesthetic RevisitedCulture And Aesthetic Revisited
Culture And Aesthetic Revisited
 
B1 Fback Presentation
B1 Fback PresentationB1 Fback Presentation
B1 Fback Presentation
 
Death by Powerpoint
Death by PowerpointDeath by Powerpoint
Death by Powerpoint
 
How Tools Have Shaped the Role of the Designer
How Tools Have Shaped the Role of the DesignerHow Tools Have Shaped the Role of the Designer
How Tools Have Shaped the Role of the Designer
 
Life After Death by PowerPoint 2015 Handout
Life After Death by PowerPoint 2015 HandoutLife After Death by PowerPoint 2015 Handout
Life After Death by PowerPoint 2015 Handout
 
Hr pts-e-dn-version 2.0
Hr pts-e-dn-version 2.0Hr pts-e-dn-version 2.0
Hr pts-e-dn-version 2.0
 
Advancing UX in Your Organization (Fluxible Conference, September 2013)
Advancing UX in Your Organization (Fluxible Conference, September 2013)Advancing UX in Your Organization (Fluxible Conference, September 2013)
Advancing UX in Your Organization (Fluxible Conference, September 2013)
 
Fmp proposal (2)
Fmp proposal (2)Fmp proposal (2)
Fmp proposal (2)
 
Fmp proposal
Fmp proposalFmp proposal
Fmp proposal
 
Is it done yet? (How about now?)
Is it done yet? (How about now?)Is it done yet? (How about now?)
Is it done yet? (How about now?)
 
Fmp proposal (3)
Fmp proposal (3)Fmp proposal (3)
Fmp proposal (3)
 
Life After Death by PowerPoint Notes
Life After Death by PowerPoint NotesLife After Death by PowerPoint Notes
Life After Death by PowerPoint Notes
 
Refactoring (the brain) for developers
Refactoring (the brain) for developers Refactoring (the brain) for developers
Refactoring (the brain) for developers
 
3 Stage Of Drama.pptx
3 Stage Of Drama.pptx3 Stage Of Drama.pptx
3 Stage Of Drama.pptx
 
'10 Great but now Overlooked Tools' by Graham Thomas
'10 Great but now Overlooked Tools' by Graham Thomas'10 Great but now Overlooked Tools' by Graham Thomas
'10 Great but now Overlooked Tools' by Graham Thomas
 
Graham Thomas - 10 Great but Now Overlooked Tools - EuroSTAR 2012
Graham Thomas - 10 Great but Now Overlooked Tools - EuroSTAR 2012Graham Thomas - 10 Great but Now Overlooked Tools - EuroSTAR 2012
Graham Thomas - 10 Great but Now Overlooked Tools - EuroSTAR 2012
 

More from nishio

量子アニーリングマシンのプログラミング
量子アニーリングマシンのプログラミング量子アニーリングマシンのプログラミング
量子アニーリングマシンのプログラミングnishio
 
夏プロ報告
夏プロ報告夏プロ報告
夏プロ報告nishio
 
ITと経営
ITと経営ITと経営
ITと経営nishio
 
部分観測モンテカルロ計画法を用いたガイスターAI
部分観測モンテカルロ計画法を用いたガイスターAI部分観測モンテカルロ計画法を用いたガイスターAI
部分観測モンテカルロ計画法を用いたガイスターAInishio
 
交渉力について
交渉力について交渉力について
交渉力についてnishio
 
If文から機械学習への道
If文から機械学習への道If文から機械学習への道
If文から機械学習への道nishio
 
組織横断型研究室構想
組織横断型研究室構想組織横断型研究室構想
組織横断型研究室構想nishio
 
2017首都大学東京情報通信特別講義
2017首都大学東京情報通信特別講義2017首都大学東京情報通信特別講義
2017首都大学東京情報通信特別講義nishio
 
強化学習その5
強化学習その5強化学習その5
強化学習その5nishio
 
良いアイデアを出すための方法
良いアイデアを出すための方法良いアイデアを出すための方法
良いアイデアを出すための方法nishio
 
強化学習その4
強化学習その4強化学習その4
強化学習その4nishio
 
強化学習その3
強化学習その3強化学習その3
強化学習その3nishio
 
強化学習その2
強化学習その2強化学習その2
強化学習その2nishio
 
強化学習その1
強化学習その1強化学習その1
強化学習その1nishio
 
線形?非線形?
線形?非線形?線形?非線形?
線形?非線形?nishio
 
機械学習キャンバス0.1
機械学習キャンバス0.1機械学習キャンバス0.1
機械学習キャンバス0.1nishio
 
首都大学東京「情報通信特別講義」2016年西尾担当分
首都大学東京「情報通信特別講義」2016年西尾担当分首都大学東京「情報通信特別講義」2016年西尾担当分
首都大学東京「情報通信特別講義」2016年西尾担当分nishio
 
勾配降下法の 最適化アルゴリズム
勾配降下法の最適化アルゴリズム勾配降下法の最適化アルゴリズム
勾配降下法の 最適化アルゴリズムnishio
 
Wifiで位置推定
Wifiで位置推定Wifiで位置推定
Wifiで位置推定nishio
 
ESP8266EXで位置推定
ESP8266EXで位置推定ESP8266EXで位置推定
ESP8266EXで位置推定nishio
 

More from nishio (20)

量子アニーリングマシンのプログラミング
量子アニーリングマシンのプログラミング量子アニーリングマシンのプログラミング
量子アニーリングマシンのプログラミング
 
夏プロ報告
夏プロ報告夏プロ報告
夏プロ報告
 
ITと経営
ITと経営ITと経営
ITと経営
 
部分観測モンテカルロ計画法を用いたガイスターAI
部分観測モンテカルロ計画法を用いたガイスターAI部分観測モンテカルロ計画法を用いたガイスターAI
部分観測モンテカルロ計画法を用いたガイスターAI
 
交渉力について
交渉力について交渉力について
交渉力について
 
If文から機械学習への道
If文から機械学習への道If文から機械学習への道
If文から機械学習への道
 
組織横断型研究室構想
組織横断型研究室構想組織横断型研究室構想
組織横断型研究室構想
 
2017首都大学東京情報通信特別講義
2017首都大学東京情報通信特別講義2017首都大学東京情報通信特別講義
2017首都大学東京情報通信特別講義
 
強化学習その5
強化学習その5強化学習その5
強化学習その5
 
良いアイデアを出すための方法
良いアイデアを出すための方法良いアイデアを出すための方法
良いアイデアを出すための方法
 
強化学習その4
強化学習その4強化学習その4
強化学習その4
 
強化学習その3
強化学習その3強化学習その3
強化学習その3
 
強化学習その2
強化学習その2強化学習その2
強化学習その2
 
強化学習その1
強化学習その1強化学習その1
強化学習その1
 
線形?非線形?
線形?非線形?線形?非線形?
線形?非線形?
 
機械学習キャンバス0.1
機械学習キャンバス0.1機械学習キャンバス0.1
機械学習キャンバス0.1
 
首都大学東京「情報通信特別講義」2016年西尾担当分
首都大学東京「情報通信特別講義」2016年西尾担当分首都大学東京「情報通信特別講義」2016年西尾担当分
首都大学東京「情報通信特別講義」2016年西尾担当分
 
勾配降下法の 最適化アルゴリズム
勾配降下法の最適化アルゴリズム勾配降下法の最適化アルゴリズム
勾配降下法の 最適化アルゴリズム
 
Wifiで位置推定
Wifiで位置推定Wifiで位置推定
Wifiで位置推定
 
ESP8266EXで位置推定
ESP8266EXで位置推定ESP8266EXで位置推定
ESP8266EXで位置推定
 

Recently uploaded

Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
Meghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentMeghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentInMediaRes1
 
MICROBIOLOGY biochemical test detailed.pptx
MICROBIOLOGY biochemical test detailed.pptxMICROBIOLOGY biochemical test detailed.pptx
MICROBIOLOGY biochemical test detailed.pptxabhijeetpadhi001
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 
Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...jaredbarbolino94
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxAvyJaneVismanos
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersSabitha Banu
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 

Recently uploaded (20)

Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Meghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentMeghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media Component
 
MICROBIOLOGY biochemical test detailed.pptx
MICROBIOLOGY biochemical test detailed.pptxMICROBIOLOGY biochemical test detailed.pptx
MICROBIOLOGY biochemical test detailed.pptx
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 
Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptx
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginners
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 

Rediscover Programming Concepts with Python

  • 1. Rediscover with Python Cybozu Labs. NISHIO Hirokazu PyCon JP Keynote Speech English version 2014-09-17 14年9月17日水曜日1
  • 2. I gave my speech in Japanese and unfortunately simultaneous interpretation was not recorded. So I rewrite important part of my slide into English for non-Japanese speakers. 14年9月17日水曜日2
  • 4. self introduction • Cybozu Labs. 14年9月17日水曜日3
  • 5. self introduction • Cybozu Labs. • Researching next generation groupware 14年9月17日水曜日3
  • 6. self introduction • Cybozu Labs. • Researching next generation groupware • What is groupware? 14年9月17日水曜日3
  • 7. examples of groupware kintone is our product: https://www.kintone.com/ 14年9月17日水曜日4
  • 8. What is groupware? coined by Douglas C. Engelbart, the inventor of mouse and GUI 14年9月17日水曜日5
  • 9. What is groupware? Group + Software coined by Douglas C. Engelbart, the inventor of mouse and GUI 14年9月17日水曜日5
  • 10. Augmenting Human Intellect Augment Human’s ability with software Douglas C. Engelbart "Augmenting Human Intellect: A Conceptual Framework" (1962) 14年9月17日水曜日6
  • 11. Augmenting Group Intellect Augment group’s ability with software = Groupware 14年9月17日水曜日7
  • 12. word2vec Computer read text and understand relation between words in the text my book. published on May 14年9月17日水曜日8
  • 13. 人間 コンピュータ You may think like this 14年9月17日水曜日9
  • 14. 人間+コンピュータ =増強された人間 人間 I prefer to think like this 14年9月17日水曜日10
  • 15. Example To monitor yourself won’t works well. When you are in bad condition, monitoring is also in bad condition. So you can’t notice you are in bad condition. One solution is monitoring by another person. But sense of shame and pride will cause problems. 14年9月17日水曜日11
  • 16. Another solution is monitoring by computer. It solves “shame and pride” problems. 14年9月17日水曜日12
  • 17. This is a prototype. You can consult with the system to motivate yourself. 13000 people used it and 6000 people was motivated. 14年9月17日水曜日13
  • 18. 14 channels brain wave sensor Another approach is going. 14年9月17日水曜日14
  • 19. Human→Machine touch panel Machine→Human liquid crystal (multi-touch) switch mouse keyboard camera scanner paper CRT 3D TV e-ink HMD Method to copy information from/to human is evolved 14年9月17日水曜日15
  • 20. Machine→Human paper CRT liquid crystal 3D TV e-ink HMD book e-book But books are not evolved much We need next generation “book reading”. Computer should monitor human reading books, and augment its performance. I think brain-wave and hi-reso HMD are the key to future. 14年9月17日水曜日16
  • 21. 4 elements to augment human • 1: Artifacts: computer, software, etc. • 2: Language: jargon to refer special concepts, design patterns, etc. • 3: Methodology: procedure and strategy for solving problems, etc. • 4: Training: achieve skills to use 1~3 Engelbart "Augmenting Human Intellect: A Conceptual Framework" (1962) 14年9月17日水曜日17
  • 22. theme of this conference: Rediscover with Python 14年9月17日水曜日18
  • 23. How to discover? →Methodology to find unknown 14年9月17日水曜日19
  • 24. When you see something... 14年9月17日水曜日20
  • 25. You see some part of the object 14年9月17日水曜日21
  • 26. If you see the object from the left side, it looks like a sphere. But if you see it from the bottom side, you find it has a tail! It is the process to discover unknown 14年9月17日水曜日22
  • 27. How to discover? →Change Perspective 14年9月17日水曜日23
  • 28. known ↔ unknown Two? no, it’s not correct. 14年9月17日水曜日24
  • 29. obviously known obviously unknown Between known and unknown... 14年9月17日水曜日25
  • 30. obviously known obviously unknown 不明not obvious There are things which you don’t know that you don’t know them. “obvious” = “明” in Japanese 14年9月17日水曜日26
  • 31. blind spot • Between “Things you know” and “Things you don’t know”, “Things you don’t know that you don’t know them” exists • You don’t see it, but you don’t notice you don’t see it, that is the blind spot 14年9月17日水曜日27
  • 32. Clarify what you know obviously known obviously unknown 14年9月17日水曜日28
  • 33. ←blind spot Out of the border you can find blind spot obviously known obviously unknown 14年9月17日水曜日29
  • 34. ←blindspot Then the border expands obviously known obviously unknown 14年9月17日水曜日30
  • 35. How to find blind spot? 14年9月17日水曜日31
  • 36. In my book published in April 2013, I introduced three way to learn Comparison History Experience Japanese, Korean, Chinese version are available, English version is on going. http://nhiro.org/langbook/en.html 14年9月17日水曜日32
  • 37. In my special feature article in this April, I added two Comparison History Experience + Abstraction Communication 14年9月17日水曜日33
  • 38. How to find blind spot? Comparison History Experience Abstraction Communication 14年9月17日水曜日34
  • 39. Comparison • You can find blind spot by comparing programming languages “In Ruby, 0 is true?! In Python it is false!” “It differs among languages?” “What is the definition in Python??” object.__nonzero__(self) Called to implement truth value testing and the built-in operation bool(); 14年9月17日水曜日35
  • 40. History • You can find blind spot by learning history. “Why Python has new-style class and old class?” →(Learn history) → “To unify types and classes? It’s important!” “Old class has problem on method resolution order, so we need new-style class. I got it.” Unifying types and classes in Python 2.2 | Python.org https://www.python.org/download/releases/2.2.3/descrintro 14年9月17日水曜日36
  • 41. Experience • You can find blind spot by doing based on your understanding. Especially it won’t work as you think. “Oops, why 1/2 goes into 0? I think it goes 0.5!” PEP 238 -- Changing the Division Operator http://legacy.python.org/dev/peps/pep-0238/ If you think it is obviously goes into 0, you didn’t find your blind spot. You should experience Python 3. 14年9月17日水曜日37
  • 42. Abstraction • You can find blind spot by learning abstract model and connect it to your experience. It helps you verbalize implicit knowledge. “Ah, I’m used to the coding pattern but I didn’t know it was called Mediator Pattern!” “Mailing lists are also Mediator Pattern in information sharing domain!” Abstract model can connect experiences in different domain/person/situation. 14年9月17日水曜日38
  • 43. Communication • You can find blind spot by talking with other people who have different experiences. “I have a problem...” “You can solve it by ...” “Oh! Nice idea!” “But it is common in GUI programming” “Hmm, I don’t know on GUI” 14年9月17日水曜日39
  • 44. How to find blind spot? Comparison History Experience Abstraction Communication 14年9月17日水曜日40
  • 46. Office Hour 13:00-13:30 Blog, Mail see http://nhiro.org/ 14年9月17日水曜日42
  • 48. Q: Some people ignore the chance to find blind spot. How can I manage them? 14年9月17日水曜日44
  • 49. A: “U Theory” is targeting the problem. I’ll give lecture on that in Kyoto Univ. Summer Design School. After that you can read my slides on U soon. http://www.design.kyoto-u.ac.jp/sds2014/ja/theme01.html 14年9月17日水曜日45
  • 50. A: First, “How to manage others” is not good attitude. Change yourself first. 14年9月17日水曜日46
  • 51. A: Second, you (and I) sometimes ignore the chance to find blind spot too. It’s common. Be aware and be careful. That helps you find blind spot. 14年9月17日水曜日47
  • 52. A: Start from small step. Make useful result by finding blind spot. Successful experience make you confident. 14年9月17日水曜日48
  • 53. from my lecture U Curve PDCA Cycle and U Curve U Curve Otto Scharmer “U Theory”   state action 14年9月17日水曜日49
  • 54. from my lecture U Curve PDCA Cycle and U Curve U Curve ←You stick on false belief and you don’t see. Otto Scharmer “U Theory”   state action 14年9月17日水曜日50
  • 55. from my lecture U Curve PDCA Cycle and U Curve U Curve ←You see, but from your perspective. Otto Scharmer “U Theory”   state action You draw boundary between self and others, thinking “they don’t do ...(some good action)” 14年9月17日水曜日51
  • 56. Q: Is it important to make abstract models? 14年9月17日水曜日52
  • 57. A: Yes, it’s important. 14年9月17日水曜日53
  • 58. Section 3 of my special feature is how to make models. You can read them(but in Japanese) http://gihyo.jp/lifestyle/feature/01/engineer-studying 14年9月17日水曜日54
  • 59. A: Sense of “I got it” is also hypothesis. Hypothesis should be tested. Do action based on your understanding and check the result. 14年9月17日水曜日55
  • 60. A: If the result differ from your understanding, it is chance to adjust your models. To repeat the process you can achieve better models, and then based on that you can make larger model. This is a method. 14年9月17日水曜日56
  • 61. A: Another method KJ method and grounded theory. They are used in domains, in which experiments are difficult. 14年9月17日水曜日57
  • 62. A: I’ll introduce KJ method roughly. First, collect a lot of data. Don’t filter based on your prejudice. Spread all data on your desk. 14年9月17日水曜日58
  • 63. A: Human’s woring memory is about seven. But if you put data on your desk, you can see 100~200 data at a time. 14年9月17日水曜日59
  • 64. A: Seeing 100 data, moving them physically, making structure from bottom up, and then you get models on your desk. (Models in my book and special features are also developed with KJ method) 14年9月17日水曜日60
  • 65. Q: 5 ways to find blind spot are not same on time series. 14年9月17日水曜日61
  • 66. A: Good point. It’s my blind point. Sure, “Abstraction” is follower. A person without any programming experience can not find blind spot by reading design patterns textbooks. Abstract models in book doesn’t connect to his experience. 14年9月17日水曜日62
  • 67. Q: How to share know-how among testers. (detail omitted) 14年9月17日水曜日63
  • 68. A: It looks a problem to share implicit, not verbalized, knowledge. One method is “work together” 14年9月17日水曜日64
  • 69. A: By working together, we can share knowledge without verbalizing them. Additionally, if one person is prohibited to do anything except for talking what to do, it prompt verbalization. Ref: Keith Sawyer "Group Genius: The Creative Power of Collaboration" 14年9月17日水曜日65
  • 70. A: We can make manuals only after we verbalized our knowledge. Verbalization is difficult job. Delegating the job without any training is bad idea. 14年9月17日水曜日66
  • 71. not verbalized knowledge   Ikujiro Nonaka "The knowledge creating company" Japanese version p93   from my lecture verbalized not verbalized 14年9月17日水曜日67
  • 72. not verbalized knowledge   Ikujiro Nonaka "The knowledge creating company" Japanese version p93   from my lecture verbalized not verbalized ↑pair programming, work together 14年9月17日水曜日68
  • 73. Q: I make template to share information and use it. By answering questions, required information will be collected. 14年9月17日水曜日69
  • 74. A: Nice method. Even if someone can not verbalize himself, they can answer to specific questions. It’s common. Making good questions are useful. 14年9月17日水曜日70
  • 75. A: However, be careful. Sometimes we lose information which is not fit to the template. Innovative information don’t fit to existing template. 14年9月17日水曜日71