Analyze CPAN, Analyze Community Kenichi Ishigaki (@charsbar) Fukuoka Perl Workshop #22 Oct 13, 2012
Analyze CPAN,
Analyze Community
Kenichi Ishigaki
(@charsbar)
Fukuoka Perl Workshop #22
Oct 13, 2012
5年間続けてきたLTの裏話
発端
機械的に抽出できるように
Lingua::JA::Romaji::Valid
Acme::CPANAuthors::Japanese
5年間の軌跡
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-)
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-)
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
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-)
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-)
10 YAMAMOTO
(new)
毎年新しい方を紹介できている
コミュニティは順調に成長…
している?
別の視点からも確認してみる
日本人の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
新しい地域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
2009: Okayama.pm
2011: Hachioji.pm
2011: Perl Beginners
2012: Perl 入学式
2012: Chiba.pm
????: Namba.pm
????: Nara.pm
????: Okinawa.pm
????: Tachikawa.pm
????: Kokusaitenjijoumae.pm
一見順調
もう少し細かく見てみると…
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数(日本)
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)
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
日本人作者のリリース数
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)
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
アクティブな作者数
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)
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)
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)
結論は評価の仕方次第
すでに十分成長しただけ?
みんなが飛びつけるようなネタが枯渇?
BabyFacebook?
言語成分の減少?
そもそもCPAN Authorが増える必要は?
このような分析が必要な理由
どこに注力すべきかのヒントになる
イベントなどの見積もりがより正確に
外部への営業資料
求人・求職資料
モジュールの選定などのよすがにも
Mooseがどのくらい使われているかを調べてみる
CPANTSの
データベースを落としてくる
http://cpants.charsbar.org/static/cpants_all.db.gz
スキーマを調べる
$ sqlite3 cpants_all.db
sqlite> select * from sqlite_master;
データを見てみる
sqlite> .mode line
sqlite> select * from prereq limit 1;
カウントしてみる
sqlite> select
count(distinct(dist)) from
prereq where requires =
'Moose';
ユーザ数を調べてみる
sqlite> select count(distinct(d.author))
from prereq as p, dist as d where
p.requires = 'Moose' and p.dist = d.id;
日本人のID一覧
$ perl -MAcme::CPANAuthors -e 'print join ",", map
{qq{"$_"}} Acme::CPANAuthors->new('Japanese')->id'
日本人のユーザ数を調べてみる
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 (...);
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
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
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
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
観測できること
海外ではすでに15%程度のモジュールがMooseを利用
海外ではアクティブユーザの2割がMoose
を利用
Mooseの重さに耐えられなくなってきたユーザはMooへ移行中
国内では完全に退潮、代替物への置き換えもあまり進んでいない
情報源
CPAN
http://cpanmetadb.org/
CPANDB
BackPAN
CPAN Testers
http://devel.cpantesters.org/
CPANTS
http://cpants.perl.org/
ORDB
ORDB::CPANUploads
ORDB::CPANMeta
ORDB::CPANRT
ORDB::CPANTS
metacpan API
https://github.com/CPAN-API/cpan-api/wiki/Beta-API-docs
Acme::CPANAuthors
YAPC / Act
nntp.perl.org
ATND
実装例
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/
注意すべきこと
個人情報の扱い
情報源の負荷
他言語との比較
Questions?
Thank you