PyConJP Keynote Speech (English version)

75
Rediscover with Python Cybozu Labs. NISHIO Hirokazu PyCon JP Keynote Speech English version 2014-09-17 1 14917日水曜日

description

PyConJP Keynote Speech (English version)

Transcript of PyConJP Keynote Speech (English version)

Page 1: PyConJP Keynote Speech (English version)

Rediscover with PythonCybozu Labs.

NISHIO Hirokazu

PyCon JP Keynote SpeechEnglish version

2014-09-17114年9月17日水曜日

Page 2: PyConJP Keynote Speech (English version)

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.

214年9月17日水曜日

Page 3: PyConJP Keynote Speech (English version)

self introduction

314年9月17日水曜日

Page 4: PyConJP Keynote Speech (English version)

self introduction

• Cybozu Labs.

314年9月17日水曜日

Page 5: PyConJP Keynote Speech (English version)

self introduction

• Cybozu Labs.

• Researching next generation groupware

314年9月17日水曜日

Page 6: PyConJP Keynote Speech (English version)

self introduction

• Cybozu Labs.

• Researching next generation groupware

• What is groupware?

314年9月17日水曜日

Page 7: PyConJP Keynote Speech (English version)

examples of groupware

kintone is our product: https://www.kintone.com/414年9月17日水曜日

Page 8: PyConJP Keynote Speech (English version)

What is groupware?

coined by Douglas C. Engelbart, the inventor of mouse and GUI514年9月17日水曜日

Page 9: PyConJP Keynote Speech (English version)

What is groupware?

Group + Software

coined by Douglas C. Engelbart, the inventor of mouse and GUI514年9月17日水曜日

Page 10: PyConJP Keynote Speech (English version)

Augmenting Human Intellect

Douglas C. Engelbart "Augmenting Human Intellect: A Conceptual Framework" (1962)

Augment Human’s abilitywith software

614年9月17日水曜日

Page 11: PyConJP Keynote Speech (English version)

Augmenting Group Intellect

Augment group’s abilitywith software

= Groupware

714年9月17日水曜日

Page 12: PyConJP Keynote Speech (English version)

Computer read text and understand relation

between words in the text

word2vec

my book. published on May814年9月17日水曜日

Page 13: PyConJP Keynote Speech (English version)

人間

コンピュータ

You may think like this914年9月17日水曜日

Page 14: PyConJP Keynote Speech (English version)

人間

人間+コンピュータ=増強された人間

I prefer to think like this1014年9月17日水曜日

Page 15: PyConJP Keynote Speech (English version)

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.

Example

1114年9月17日水曜日

Page 16: PyConJP Keynote Speech (English version)

Another solution is monitoring by computer. It solves “shame and pride” problems.

1214年9月17日水曜日

Page 17: PyConJP Keynote Speech (English version)

This is a prototype. You can consult with the system to motivate yourself. 13000 people used it and 6000 people was motivated.

1314年9月17日水曜日

Page 18: PyConJP Keynote Speech (English version)

14 channels brain wave sensor

Another approach is going.

1414年9月17日水曜日

Page 19: PyConJP Keynote Speech (English version)

Machine→Human

Human→Machine touch panel

liquid crystal

(multi-touch)

switch

mousekeyboard

camerascanner

paper CRT 3D TV

HMDe-ink

Method to copy information from/to human is evolved1514年9月17日水曜日

Page 20: PyConJP Keynote Speech (English version)

Machine→Human

liquid crystalpaper CRT 3D TV

HMDe-ink

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.1614年9月17日水曜日

Page 21: PyConJP Keynote Speech (English version)

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)1714年9月17日水曜日

Page 22: PyConJP Keynote Speech (English version)

theme of this conference:

Rediscover with Python

1814年9月17日水曜日

Page 23: PyConJP Keynote Speech (English version)

How to discover?→Methodology to find unknown

1914年9月17日水曜日

Page 24: PyConJP Keynote Speech (English version)

When you see something...2014年9月17日水曜日

Page 25: PyConJP Keynote Speech (English version)

You see some part of the object2114年9月17日水曜日

Page 26: PyConJP Keynote Speech (English version)

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 todiscover unknown

2214年9月17日水曜日

Page 27: PyConJP Keynote Speech (English version)

How to discover?→Change Perspective

2314年9月17日水曜日

Page 28: PyConJP Keynote Speech (English version)

known ↔ unknown

Two? no, it’s not correct.

2414年9月17日水曜日

Page 29: PyConJP Keynote Speech (English version)

obviouslyknown

obviouslyunknown

Between known and unknown...

2514年9月17日水曜日

Page 30: PyConJP Keynote Speech (English version)

obviouslyknown

obviouslyunknown

不明not obvious

There are things which you don’t know that you don’t know them.

“obvious” = “明” in Japanese2614年9月17日水曜日

Page 31: PyConJP Keynote Speech (English version)

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

2714年9月17日水曜日

Page 32: PyConJP Keynote Speech (English version)

Clarify what you knowobviouslyknown

obviouslyunknown

2814年9月17日水曜日

Page 33: PyConJP Keynote Speech (English version)

←blind spot

Out of the border you can find blind spot

obviouslyknown

obviouslyunknown

2914年9月17日水曜日

Page 34: PyConJP Keynote Speech (English version)

←blindspot

Then the border expands

obviouslyknown

obviouslyunknown

3014年9月17日水曜日

Page 35: PyConJP Keynote Speech (English version)

How to find blind spot?

3114年9月17日水曜日

Page 36: PyConJP Keynote Speech (English version)

ComparisonHistory

Experience

In my book published in April 2013, I introduced three way

to learn

Japanese, Korean, Chinese version are available, English version is on going. http://nhiro.org/langbook/en.html

3214年9月17日水曜日

Page 37: PyConJP Keynote Speech (English version)

ComparisonHistory

Experience+

AbstractionCommunication

In my special feature article in this April, I added two

3314年9月17日水曜日

Page 38: PyConJP Keynote Speech (English version)

ComparisonHistory

ExperienceAbstraction

Communication

How to find blind spot?

3414年9月17日水曜日

Page 39: PyConJP Keynote Speech (English version)

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();

3514年9月17日水曜日

Page 40: PyConJP Keynote Speech (English version)

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.orghttps://www.python.org/download/releases/2.2.3/descrintro

3614年9月17日水曜日

Page 41: PyConJP Keynote Speech (English version)

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 Operatorhttp://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.3714年9月17日水曜日

Page 42: PyConJP Keynote Speech (English version)

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.

3814年9月17日水曜日

Page 43: PyConJP Keynote Speech (English version)

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”

3914年9月17日水曜日

Page 44: PyConJP Keynote Speech (English version)

ComparisonHistory

ExperienceAbstraction

Communication

How to find blind spot?

4014年9月17日水曜日

Page 45: PyConJP Keynote Speech (English version)

Communication

4114年9月17日水曜日

Page 46: PyConJP Keynote Speech (English version)

Office Hour13:00-13:30

Blog, Mailsee http://nhiro.org/

4214年9月17日水曜日

Page 47: PyConJP Keynote Speech (English version)

Q&A

4314年9月17日水曜日

Page 48: PyConJP Keynote Speech (English version)

Q: Some people ignore the chance to find blind spot. How can I

manage them?

4414年9月17日水曜日

Page 49: PyConJP Keynote Speech (English version)

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.html4514年9月17日水曜日

Page 50: PyConJP Keynote Speech (English version)

A: First, “How to manage others” is not good

attitude. Change yourself first.

4614年9月17日水曜日

Page 51: PyConJP Keynote Speech (English version)

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.4714年9月17日水曜日

Page 52: PyConJP Keynote Speech (English version)

A: Start from small step.Make useful result by finding blind spot.

Successful experience make you confident.

4814年9月17日水曜日

Page 53: PyConJP Keynote Speech (English version)

U Curve

PDCA Cycle and U CurveU Curve

Otto Scharmer “U Theory” 

state

action

from my lecture

4914年9月17日水曜日

Page 54: PyConJP Keynote Speech (English version)

U Curve

PDCA Cycle and U CurveU Curve

Otto Scharmer “U Theory” 

state

action

from my lecture

←You stick on false belief and you don’t see.

5014年9月17日水曜日

Page 55: PyConJP Keynote Speech (English version)

U Curve

PDCA Cycle and U CurveU Curve

Otto Scharmer “U Theory” 

state

action

from my lecture

←You see, but from your perspective.You draw boundary between self and others,thinking “they don’t do ...(some good action)”

5114年9月17日水曜日

Page 56: PyConJP Keynote Speech (English version)

Q: Is it important to make abstract models?

5214年9月17日水曜日

Page 57: PyConJP Keynote Speech (English version)

A: Yes, it’s important.

5314年9月17日水曜日

Page 58: PyConJP Keynote Speech (English version)

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

5414年9月17日水曜日

Page 59: PyConJP Keynote Speech (English version)

A: Sense of “I got it” is also hypothesis. Hypothesis

should be tested. Do action based on your understanding and check

the result.5514年9月17日水曜日

Page 60: PyConJP Keynote Speech (English version)

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.

5614年9月17日水曜日

Page 61: PyConJP Keynote Speech (English version)

A: Another method KJ method and grounded theory. They are used in

domains, in which experiments are difficult.

5714年9月17日水曜日

Page 62: PyConJP Keynote Speech (English version)

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.

5814年9月17日水曜日

Page 63: PyConJP Keynote Speech (English version)

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.

5914年9月17日水曜日

Page 64: PyConJP Keynote Speech (English version)

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)

6014年9月17日水曜日

Page 65: PyConJP Keynote Speech (English version)

Q: 5 ways to find blind spot are not same on time

series.

6114年9月17日水曜日

Page 66: PyConJP Keynote Speech (English version)

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.

6214年9月17日水曜日

Page 67: PyConJP Keynote Speech (English version)

Q: How to share know-how among testers.(detail omitted)

6314年9月17日水曜日

Page 68: PyConJP Keynote Speech (English version)

A: It looks a problem to share implicit, not

verbalized, knowledge.One method is “work

together”

6414年9月17日水曜日

Page 69: PyConJP Keynote Speech (English version)

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"6514年9月17日水曜日

Page 70: PyConJP Keynote Speech (English version)

A: We can make manuals only after we verbalized

our knowledge. Verbalization is difficult job. Delegating the job without any training

is bad idea.6614年9月17日水曜日

Page 71: PyConJP Keynote Speech (English version)

not verbalized knowledge 

Ikujiro Nonaka "The knowledge creating company" Japanese version p93 

from my lecture

verbalized

not verbalized

6714年9月17日水曜日

Page 72: PyConJP Keynote Speech (English version)

not verbalized knowledge 

Ikujiro Nonaka "The knowledge creating company" Japanese version p93 

from my lecture

verbalized

not verbalized

↑pair programming, work together

6814年9月17日水曜日

Page 73: PyConJP Keynote Speech (English version)

Q: I make template to share information and use it. By answering questions, required information will

be collected.

6914年9月17日水曜日

Page 74: PyConJP Keynote Speech (English version)

A: Nice method. Even if someone can not verbalize himself, they can answer to specific questions. It’s common. Making good questions are useful.

7014年9月17日水曜日

Page 75: PyConJP Keynote Speech (English version)

A: However, be careful. Sometimes we lose

information which is not fit to the template.

Innovative information don’t fit to existing

template.7114年9月17日水曜日