天泣記

2012-04-10 (Tue)

#1

各コミッタの各ファイルに対するコミット数からコミッタを分類できないだろうか。

主成分分析というやつを使うとわかるのかもしれない。

tb git-log ruby -o ruby-git.csv
tb unnest files ruby-git.csv -o ruby-git-v.csv
tb group author-name,filename -a 'count' ruby-git-v.csv -o r1.csv
tb unmelt --variable-field=filename --value-field=count --missing-value=0 r1.csv -o ruby-committer-vector.csv

ruby-committer-tendency.R:

library(ggplot2)
library(reshape)
d <- read.csv("2012-04/ruby-committer-vector.csv")
rownames(d) <- d$author.name
d <- d[,-1]
pc <- prcomp(d, scale=TRUE)
data <- data.frame(obsnames=row.names(pc$x), pc$x)
p <- ggplot(data, aes_string(x="PC1", y="PC2"))
p <- p + geom_text(alpha=.4, size=3, aes(label=obsnames))
print(p)

ruby-committer-tendency.png

ふむ。nobu と nagai が突出しているのは分かった。(nobu は matz 方向に、nagai は違う方向に)

個人として突出していることはあっても、複数のグループに分かれているといったことはないようだ。

PC1 と PC2 がどういうベクトルかを見てみる。(全体は多すぎるので影響が大きい正負最大10個だけ)

PC1:
  ext.openssl.lib.openssl.cipher.rb         -7.663215e-04
  ext.openssl.lib.net.https.rb              -7.495784e-04
  test.scanf.data.txt                       -7.042950e-04
  test.uri.test_parser.rb                   -6.723496e-04
  lib.rdoc.generators.template.html.css2.rb -6.715835e-04
  ext.ripper.MANIFEST                       -6.637742e-04
  ext.racc.cparse.MANIFEST                  -6.491679e-04
  ext.strscan.MANIFEST                      -6.478990e-04
  yarvtest.test_massign.rb                  -6.181775e-04
  yarvtest.test_opts.rb                     -6.181775e-04
  ...
  ext.tk.sample.demos.jp.puzzle.rb          2.876716e-02 
  ext.tk.sample.demos.jp.search.rb          2.876716e-02 
  ext.tk.sample.demos.jp.spin.rb            2.876716e-02 
  ext.tk.sample.demos.jp.style.rb           2.876716e-02 
  ext.tk.sample.demos.jp.text.rb            2.876716e-02 
  ext.tk.sample.demos.jp.twind.rb           2.876716e-02 
  ext.tk.sample.demos.jp.unicodeout.rb      2.876716e-02 
  ext.tk.README.1st                         2.877772e-02 
  ext.tk.sample.demos.en.entry3.rb          2.900566e-02 
  ext.tk.tkutil.tkutil.c                    3.052468e-02 

PC2:
  lib.rake.rb                       -3.026955e-02
  ext.iconv.iconv.c                 -3.021844e-02
  ext.stringio.stringio.c           -3.016935e-02
  lib.optparse.rb                   -3.011333e-02
  load.c                            -3.006831e-02
  Makefile.in                       -2.991653e-02
  vm_method.c                       -2.988716e-02
  runruby.rb                        -2.973986e-02
  misc.ruby.style.el                -2.971750e-02
  ext.io.console.console.c          -2.966230e-02
  ...
  ext.tk.lib.tk.rb                  1.409071e-02 
  ext.tk.lib.tk.spinbox.rb          1.415379e-02 
  ext.tk.sample.demos.jp.dialog2.rb 1.470125e-02 
  ext.tk.sample.demos.jp.hscale.rb  1.470125e-02 
  ext.tk.sample.demos.jp.vscale.rb  1.470125e-02 
  ext.tk.lib.tk.scrollbox.rb        1.548342e-02 
  ext.tk.sample.demos.jp.widget     1.549715e-02 
  ext.tk.lib.tk.canvas.rb           1.577232e-02 
  ext.tk.lib.tk.text.rb             1.585240e-02 
  ext.tk.lib.tk.entry.rb            1.652689e-02 

tk をいじればいじるほど右上方向にいくようだ。

2012-04-15 (Sun)

#1

chkbuild 他を github に移した。

<URL:https://github.com/akr/chkbuild>


[latest]


田中哲