2005-12-08  先週の出来事

すでに週の半ばなのですが先週の出来事をお話します。

プロテインようやく飲み終わる

4月に購入した「マッスルフィット 超徳用3kg」を飲み干しました。今夏は筋トレの真似をお休みしたので,思ったよりも消費する速さが遅かったようです。

いつもなら「つぎはどのプロテインにしようかしら」という話をするのですが,しばらく飲まないつもりです。

筋トレの真似を始めた頃は「とにかく巨大化しなければ」という訳の分からない衝動に駆られて,プロテインをがぶがぶ飲んでおりました。あれから数年が経過し,もう飲んでも飲まなくても体型の変化には関係ない気がするのです。

別のものを投入

週末,新手の時間泥棒(詳細ふめい)を投入しました。すでにサラサーティ1の年内投入が危ぶまれています。さらさらさっぱりできなかった場合に備えて,別のものを用意していたのです。

サラサーティ1―その後17―

境界試験をしました。境界試験とはデータの値や量が最小未満,最小,最大,さらに最大を超えた場合にどんな挙動をするのか見る試験です。

ご存知だと思いますが,Excelのひとつのシートには65536件のレコードを記録することができます。仕様では65536件のレコードをもつシートを,よっつ処理できなければなりません。(注意:表には「列見出し」が存在するので正確には65536件未満なのですが,内部では65536件を処理できるようにしているのです。)

あらかじめ分かっていたことですが,試験データを用意した段階でExcelがまともに動きませんでした。Excelブックを開くまでに数十分間も時間が掛かってしまい,使いものになりませんでした。

サラサーティではセルの値を読み出して,一度オブジェクトに変換します。オブジェクトのメソッドをごちゃごちゃ呼び出してオブジェクトの内部状態を変更したら,セルに値を書き出すという動作を繰り返すのです。

さすがにレコードが6万件もあると,動いているのか止まっているのか見た目では分かりませんでした。見た目で分からないとまずいので,またまた仕様変更なのです。

どのような動作が好ましいのか考えました。

  • 処理するまえに時間が掛かる旨の表示をする←いまはこの動作
  • 件数が多い場合は「できない」ことにする←未来のExcelやプロセッサではさくさく動く可能性があるのと,利用者の思惑と動作が一致しないので却下。利用者はプロセッサを高速化しメモリを増やせば動作が改善されると期待している
  • 進捗を逐一表示する←進捗を更新するために資源を消費するのがもったいないのだけれど,いま何をやっていていつ終わるのか分からないよりは良い,というわけでこの案を採用