昨日に引き続き耳栓して仕事。昨日ほどではないがまあまあの調子。いちばん面倒な部分のリファクタリングにかかる。大きな変更になりそうなので、事前に時間をとって考える。
部下に簡単なRubyスクリプトを組んでもらう。ある関数の実行時間を測定した結果(数百行のログ)から平均時間を計算するスクリプトだ。各行には測定値意外の文字も入っているので数字だけ抜き出す必要がある。
彼はまずOpenOffice.orgのCalcで計算してから、スクリプトを書いて、結果を比較していたようだ。しばらくたって、「2つの結果が食い違う」と言ってきた。自分で考えなさいといってかえす。うーむ、ちょっと甘やかしすぎたか?
さらにしばらくしてから、結果を持ってきた。答えは合っているようだ。しかしスクリプトを見たらえらく長い。
試しに自分でざっと書いてみた。
sum = 0 count = 0 DATA.each do |i| i =~ /(\d+\.\d+)/ sum += $1.to_f count += 1 end print "Average: ", sum / count, " [ms]" sleep 2 __END__
こんな感じか。
__END__以下にデータログをコピペしてから実行する。最後のsleepは、結果を読むための時間稼ぎ。Windows上でスクリプトファイルをダブルクリックで実行すると、通常はコンソールがすぐに閉じてしまうので、
「ほらこんな簡単にも書けるでしょ」と部下にこのスクリプトを見せておいた。嫌味にとっていなければよいのだが。
部下に新しい仕事を割り振る。マイコンを使ったコントローラーのプログラム。キーパッドの値を読んで適切な信号を送る。期間が少し短めだが仕様はそれほど難しくない。彼にやってもらうには手頃な仕事だろう。