- The document is a transcript of a keynote speech given in Japanese at PyCon JP 2014 about rediscovering things with Python.
- The speaker discusses five ways to find "blind spots" or things we don't know that we don't know: comparison, history, experience, abstraction, and communication.
- He provides examples of using each method, such as comparing programming languages to find differences, learning the history behind aspects of Python, doing hands-on work to experience issues firsthand, creating abstract models to connect experiences, and discussing with others who have different perspectives.
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
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
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
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
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
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
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
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