アニメ『TO BE HERO』
娘と二人暮らしの女癖の悪いイケメンパパは、トイレに吸い込まれてスーパーヒーローに。しかし、その容姿はメタボなおっさんに。自分の父親と認識していない娘から、家を追い出されます。そして、地球にエイリアンが! ギャグが基本なのだけど、エンディングの歌でぱぱぱぱI love youと言ってるので、父娘の愛情の感動もあるアニメかなあ、と勝手に想像しています。
メタボはダイエットしなければなりませんね。やはりヒーローはかっこ良くないと。プログラムにもダイエットが必要な時がありますが、ただ減らすのではなくて、質(可読性)も大事なので、一気に痩せることは難しいです。人と一緒ですね。
今回はソースの変更量を行数で計ってみます。今時ステップ数算出なんて意味のないものかもしれませんが、どれだけ減ったか、を確認して自己満足するすると、結構モチベーションアップになります。
変更箇所の行数の算出は、diffを使いますが、元のソースは、bread.shを使うことにします。
~$ git clone http://github.com/takkete/bread.git ~$ cd bread
最新コミットと一つ前を比較したいので、@^を指定してソースを落とします。
~$ git show @^:bread.sh > a
適当な名前でaとしました。
diffを取ります。
-yオプションを使えば左右に並べてdiff表示することができますが、-Wで幅も指定できます。
~$ diff -y -W80 a bread.sh
a=`perl -e ' a=`perl -e '
use Math::Trig; use Math::Trig;
@colors=("black","brown","red","orang @colors=("black","brown","red","orang
$xx_offset=300; | my ($bread_ww,$bread_hh) = get_board_
> $bread_hh +=30;
>
(省略)
> my $h = 18;
$xx = $x * $w + 15 + $xx = $x * $w + 15 +
$y = 0 if($y >= 25); $y = 0 if($y >= 25);
$yy = $y * 20 + 35 + | $yy = $y * $h + 35 +
}elsif($x < 20){ }elsif($x < 20){
my $w = 19; my $w = 19;
> my $h = 18;
$xx = $x * $w + 10 + $xx = $x * $w + 10 +
$yy = $y * 20 + 30 + | $yy = $y * $h + 30 +
}else{ }else{
my $w = 20; my $w = 20;
$xx = ($x-20) * $w + | $xx = ($x-20) * $w +
$yy = $y * 20 + 60; | $yy = $y * 20 + 60
} }
return ($xx,$yy); return ($xx,$yy);
(省略)
-Wで幅を1で指定すると、変更種別のみが残ります。
~$ diff -y -W1 a bread.sh | leafpad (省略) | > > > | (省略)
これをカウントすることで各差分の行数がカウントできます。
~$ diff -y -W1 a bread.sh | sort | uniq -c
26
155
27 <
57 >
31 |
~$
<は、削除された行数 >は、追加された行数
|は、変更された行数です。


コメント