55
Analyze CPAN, Analyze Community Kenichi Ishigaki (@charsbar) Fukuoka Perl Workshop #22 Oct 13, 2012

Analyze CPAN, Analyze Community

Embed Size (px)

DESCRIPTION

Fukuoka Perl Workshop #22

Citation preview

Page 1: Analyze CPAN, Analyze Community

Analyze CPAN,

Analyze Community

Kenichi Ishigaki

(@charsbar)

Fukuoka Perl Workshop #22

Oct 13, 2012

Page 2: Analyze CPAN, Analyze Community

5年間続けてきたLTの裏話

Page 3: Analyze CPAN, Analyze Community

発端

Page 4: Analyze CPAN, Analyze Community

機械的に抽出できるように

Lingua::JA::Romaji::Valid

Acme::CPANAuthors::Japanese

Page 5: Analyze CPAN, Analyze Community

5年間の軌跡

Page 6: Analyze CPAN, Analyze Community

YAPC::Asia 2008 1 LUSHE (2004-)

2 ISHIGAKI (2005-)

3 TAKERU (2007-)

4 TYPESTER (2005-)

5 ZIGOROU (2005-)

6 BOKUTIN (2007-)

7 HIO (2003-)

8 DMAKI (2003-)

9 NEKOKAK (2005-)

10 YAPPO (2005-)

Page 7: Analyze CPAN, Analyze Community

YAPC::Asia 2009 1 HIROSE (new) (2006-)

2 TOMITA (new) (2006-)

3 GJUJI (new) (2008-)

4 MIKI (new) (2007-)

5 LUSHE

6 ISHIGAKI

7 TYPESTER

8 TAKERU

9 MASAKI (new) (2006-)

10 BOKUTIN

10 DANJOU (new) (2005-)

Page 8: Analyze CPAN, Analyze Community

YAPC::Asia 2010 1 HIROSE

1 MORIYA (new) (2009-)

3 MIKI

4 SATOH (new) (2008-)

5 CHIBA (new) (2007-)

6 RINTARO (new) (2007-)

7 TOMITA

8 LUSHE

9 ISHIGAKI

10 TYPESTER

Page 9: Analyze CPAN, Analyze Community

YAPC::Asia 2011 1 XAICRON (new) (2009-)

2 BAYASHI (new) (2008-)

3 MORIYA

4 SATOH

5 TOMITA

6 CHIBA

7 TYPESTER

8 MIKI

9 LUSHE

10 KAZEBURO (new) (2005-)

Page 10: Analyze CPAN, Analyze Community

YAPC::Asia 2012 1 XAICRON

2 PAWAPAWA (new) (2011-)

3 BAYASHI

4 MORIYA

5 SATOH

6 MATTN (new) (2007-)

7 TOMITA

8 TYPESTER

9 CHIBA

10 YAMAMOTO (new) (2006-)

Page 11: Analyze CPAN, Analyze Community

10 YAMAMOTO

(new)

Page 12: Analyze CPAN, Analyze Community

毎年新しい方を紹介できている

Page 13: Analyze CPAN, Analyze Community

コミュニティは順調に成長…

している?

Page 14: Analyze CPAN, Analyze Community

別の視点からも確認してみる

Page 15: Analyze CPAN, Analyze Community

日本人のCPAN Authorは増えている

2000: 17

2001: 25

2002: 30

2003: 44

2004: 58

2005: 101

2006: 152

2007: 193

2008: 222

2009: 249

2010: 274

2011: 294

2012: 311

Page 16: Analyze CPAN, Analyze Community

新しい地域pmも続々と

1999: Kyoto.pm

1999: Tokyo.pm

2000: Kansai.pm

2003: Shibuya.pm

2007: Fukuoka.pm

2008: Yokohama.pm

2009: Kushiro.pm

2010: Hokkaido.pm

2010: Nagoya.pm

2010: Kamakura.pm

2011: Sendai.pm

2011: Niigata.pm

Page 17: Analyze CPAN, Analyze Community

2009: Okayama.pm

2011: Hachioji.pm

2011: Perl Beginners

2012: Perl 入学式

2012: Chiba.pm

????: Namba.pm

????: Nara.pm

????: Okinawa.pm

????: Tachikawa.pm

????: Kokusaitenjijoumae.pm

Page 18: Analyze CPAN, Analyze Community

一見順調

Page 19: Analyze CPAN, Analyze Community

もう少し細かく見てみると…

Page 20: Analyze CPAN, Analyze Community

11

6

8

5

14 14

43

51

41

29

27

25

20

17

0

10

20

30

40

50

60

~2000 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012

新規CPAN Authors数(日本)

Page 21: Analyze CPAN, Analyze Community

939

398

591

647

776 784

727

778 745

717

798 785 758

616

0

100

200

300

400

500

600

700

800

900

1000

~2000 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012

New CPAN Authors (Worldwide)

Page 22: Analyze CPAN, Analyze Community

41 47

245 295 291

173

569

1020

1147

1558

2041 2116

1841

1020

0

500

1000

1500

2000

2500

~2000 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012

日本人作者のリリース数

Page 23: Analyze CPAN, Analyze Community

6961

3441

5591

7455

10063

11272

12356 12716

14482

18464

20987

22033 21734

16435

0

5000

10000

15000

20000

25000

~2000 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012

Num of Releases (Worldwide)

Page 24: Analyze CPAN, Analyze Community

8 9

17 17

26 28

51

79

91

104 102

95 92

87

0

20

40

60

80

100

120

~2000 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012

アクティブな作者数

Page 25: Analyze CPAN, Analyze Community

625 590

755

990

1201 1255

1298

1376

1441

1568

1625 1650 1667

1501

0

200

400

600

800

1000

1200

1400

1600

1800

~2000 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012

Active Authors (Worldwide)

Page 26: Analyze CPAN, Analyze Community

305

376 339 639

674

843

782

372

163 78

106

196

86

67

80

201

164

119

53

45

31

247

526 412

351

119

94 140

122

74

78

94

14

64

128

54

0

500

1000

1500

2000

2500

2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012

リリース数とCPAN Authorになった年の関係(国内版)

2012 (12/17)

2011 (14/20)

2010 (17/25)

2009 (19/27)

2008 (25/29)

2007 (33/41)

2006 (35/51)

2005 (36/43)

2004 (8/14)

2003 (12/14)

2002 (5/5)

2001 (8/8)

2000 (5/6)

~2000 (8/11)

Page 27: Analyze CPAN, Analyze Community

29 25 24 25

23

24 18 16

32

16 17

15

13

9 9

29 22

15

10

10

7

19

15

11

11

8

16

10

8

8

15

12

5

10

9

12

0

20

40

60

80

100

120

2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012

アクティブな作者数とCPAN Authorになった年の関係(国内版)

2012 (12/17)

2011 (14/20)

2010 (17/25)

2009 (19/27)

2008 (25/29)

2007 (33/41)

2006 (35/51)

2005 (36/43)

2004 (8/14)

2003 (12/14)

2002 (5/5)

2001 (8/8)

2000 (5/6)

~2000 (8/11)

Page 28: Analyze CPAN, Analyze Community

結論は評価の仕方次第

すでに十分成長しただけ?

みんなが飛びつけるようなネタが枯渇?

BabyFacebook?

言語成分の減少?

そもそもCPAN Authorが増える必要は?

Page 29: Analyze CPAN, Analyze Community

このような分析が必要な理由

どこに注力すべきかのヒントになる

イベントなどの見積もりがより正確に

外部への営業資料

求人・求職資料

モジュールの選定などのよすがにも

Page 30: Analyze CPAN, Analyze Community

Mooseがどのくらい使われているかを調べてみる

Page 31: Analyze CPAN, Analyze Community

CPANTSの

データベースを落としてくる

http://cpants.charsbar.org/static/cpants_all.db.gz

Page 32: Analyze CPAN, Analyze Community

スキーマを調べる

$ sqlite3 cpants_all.db

sqlite> select * from sqlite_master;

Page 33: Analyze CPAN, Analyze Community

データを見てみる

sqlite> .mode line

sqlite> select * from prereq limit 1;

Page 34: Analyze CPAN, Analyze Community

カウントしてみる

sqlite> select

count(distinct(dist)) from

prereq where requires =

'Moose';

Page 35: Analyze CPAN, Analyze Community

ユーザ数を調べてみる

sqlite> select count(distinct(d.author))

from prereq as p, dist as d where

p.requires = 'Moose' and p.dist = d.id;

Page 36: Analyze CPAN, Analyze Community

日本人のID一覧

$ perl -MAcme::CPANAuthors -e 'print join ",", map

{qq{"$_"}} Acme::CPANAuthors->new('Japanese')->id'

Page 37: Analyze CPAN, Analyze Community

日本人のユーザ数を調べてみる

sqlite> select

count(distinct(d.author)) from

prereq as p, dist as d, author as a

where p.requires = 'Moose' and p.dist

= d.id and a.id = d.author and

a.pauseid in (...);

Page 38: Analyze CPAN, Analyze Community

18

67

283

614

854

918

703

24 54 65

103

58

100 111

74

4

52

116 103

154

236

294

260

188 164

87

0

100

200

300

400

500

600

700

800

900

1000

2005 2006 2007 2008 2009 2010 2011 2012

Distributions That Required ...

Moose

Mouse

Any::Moose

Moo

Class::Accessor::Fast

Page 39: Analyze CPAN, Analyze Community

14

29

100

214

285

326

269

12

29

40

52

40

53 63

48

3

24

51

62

96

127

147

160

129 121

68

0

50

100

150

200

250

300

350

2005 2006 2007 2008 2009 2010 2011 2012

Authors Who Required ...

Moose

Mouse

Any::Moose

Moo

Class::Accessor::Fast

Page 40: Analyze CPAN, Analyze Community

42

32

21

12

6 4

29

26 27

17

39

28

22

13

9

37

65

83

50

38

31

12

0

10

20

30

40

50

60

70

80

90

2005 2006 2007 2008 2009 2010 2011 2012

依存ディストリビューション数(国内版)

Moose

Mouse

Any::Moose

Class::Accessor::Fast

Page 41: Analyze CPAN, Analyze Community

15 14

9

7

3 3

9

12

10

8

15

13

10

8

5

20

33

41

30

26

17

9

0

5

10

15

20

25

30

35

40

45

2005 2006 2007 2008 2009 2010 2011 2012

依存作者数(国内版)

Moose

Mouse

Any::Moose

Class::Accessor::Fast

Page 42: Analyze CPAN, Analyze Community

観測できること

海外ではすでに15%程度のモジュールがMooseを利用

海外ではアクティブユーザの2割がMoose

を利用

Mooseの重さに耐えられなくなってきたユーザはMooへ移行中

国内では完全に退潮、代替物への置き換えもあまり進んでいない

Page 43: Analyze CPAN, Analyze Community

情報源

Page 44: Analyze CPAN, Analyze Community

CPAN

http://cpanmetadb.org/

CPANDB

Page 45: Analyze CPAN, Analyze Community

BackPAN

Page 46: Analyze CPAN, Analyze Community

CPAN Testers

http://devel.cpantesters.org/

Page 47: Analyze CPAN, Analyze Community

CPANTS

http://cpants.perl.org/

Page 48: Analyze CPAN, Analyze Community

ORDB

ORDB::CPANUploads

ORDB::CPANMeta

ORDB::CPANRT

ORDB::CPANTS

Page 49: Analyze CPAN, Analyze Community

metacpan API

https://github.com/CPAN-API/cpan-api/wiki/Beta-API-docs

Page 50: Analyze CPAN, Analyze Community

Acme::CPANAuthors

Page 51: Analyze CPAN, Analyze Community

YAPC / Act

nntp.perl.org

ATND

Page 52: Analyze CPAN, Analyze Community

実装例

http://stats.cpantesters.org/

http://deps.cpantesters.org/

http://matrix.cpantesters.org/

http://changes.cpanhq.org/

http://ali.as/top100/

http://acme.cpanauthors.org/

http://cpants.perl.org/

Page 53: Analyze CPAN, Analyze Community

注意すべきこと

個人情報の扱い

情報源の負荷

他言語との比較

Page 54: Analyze CPAN, Analyze Community

Questions?

Page 55: Analyze CPAN, Analyze Community

Thank you