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

PyConJP Keynote Speech (English version)

  • 1.
    Rediscover with Python Cybozu Labs. NISHIO Hirokazu PyCon JP Keynote Speech English version 2014-09-17 14年9月17日水曜日1
  • 2.
    I gave myspeech 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
  • 3.
  • 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 readtext and understand relation between words in the text my book. published on May 14年9月17日水曜日8
  • 13.
    人間 コンピュータ Youmay think like this 14年9月17日水曜日9
  • 14.
    人間+コンピュータ =増強された人間 人間 I prefer to think like this 14年9月17日水曜日10
  • 15.
    Example To monitoryourself 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 ismonitoring by computer. It solves “shame and pride” problems. 14年9月17日水曜日12
  • 17.
    This is aprototype. 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 brainwave 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 CRTliquid 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 toaugment 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 thisconference: Rediscover with Python 14年9月17日水曜日18
  • 23.
    How to discover? →Methodology to find unknown 14年9月17日水曜日19
  • 24.
    When you seesomething... 14年9月17日水曜日20
  • 25.
    You see somepart of the object 14年9月17日水曜日21
  • 26.
    If you seethe 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 youknow obviously known obviously unknown 14年9月17日水曜日28
  • 33.
    ←blind spot Outof the border you can find blind spot obviously known obviously unknown 14年9月17日水曜日29
  • 34.
    ←blindspot Then theborder expands obviously known obviously unknown 14年9月17日水曜日30
  • 35.
    How to findblind spot? 14年9月17日水曜日31
  • 36.
    In my bookpublished 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 specialfeature article in this April, I added two Comparison History Experience + Abstraction Communication 14年9月17日水曜日33
  • 38.
    How to findblind spot? Comparison History Experience Abstraction Communication 14年9月17日水曜日34
  • 39.
    Comparison • Youcan 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 • Youcan 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 • Youcan 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 • Youcan 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 • Youcan 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 findblind spot? Comparison History Experience Abstraction Communication 14年9月17日水曜日40
  • 45.
  • 46.
    Office Hour 13:00-13:30 Blog, Mail see http://nhiro.org/ 14年9月17日水曜日42
  • 47.
  • 48.
    Q: Some peopleignore 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, “Howto 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 fromsmall 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 itimportant to make abstract models? 14年9月17日水曜日52
  • 57.
    A: Yes, it’simportant. 14年9月17日水曜日53
  • 58.
    Section 3 ofmy 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 theresult 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 methodKJ method and grounded theory. They are used in domains, in which experiments are difficult. 14年9月17日水曜日57
  • 62.
    A: I’ll introduceKJ 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 100data, 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 waysto 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 toshare know-how among testers. (detail omitted) 14年9月17日水曜日63
  • 68.
    A: It looksa problem to share implicit, not verbalized, knowledge. One method is “work together” 14年9月17日水曜日64
  • 69.
    A: By workingtogether, 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 canmake 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 maketemplate 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, becareful. Sometimes we lose information which is not fit to the template. Innovative information don’t fit to existing template. 14年9月17日水曜日71