2007-01-12 [長年日記]
■イベントを起こすソート
昨年末の話題だけど、
UIに適したアルゴリズムとは?
全体が高速に完了するよりも
=> ゆっくりでもキャンセル可能な方が良い
=> 中断、再開が可能なアルゴリズム
=> 処理時間の予想が可能なアルゴリズムが必要Technologies for UI
例えば
10万件のデータをソート?
=> ユーザーが実際に必要としているのは先頭の10件
=> 最初の10件を最速で返せるアルゴリズム
にいたく感動していた(ややオオゲサ)。
考えてみた。
クイックソートは、「基準値を元に小さいものと大きいものに分ける」ことを繰り返す。再帰について、「小さい方」を優先していくことはできる。パラメータとしてnを与え、先頭n個分のデータが確定したところでいったん再帰をやめ、いわゆるイベントドリブンの開発環境でいうところの「イベント」を発生させることも可能だろう。
その時点でUIを更新する、もしくはレスポンスをいったん返してバックグラウンドでソートを続行する、というようなことは可能だし、困難でも無い様に思える。
「最初の10件を最速で返せるアルゴリズム」とソートを平行で実行することを想像してみた時、ソートのアルゴリズムが安定でないとなぁ、とか思ってみたり。
■Firefox 使用時間制限
インターネットで時間を浪費しない対策はないですか?
たとえば、ブラウザを1日1時間しか使えない設定にするなど
http://q.hatena.ne.jp/1168450046
Greasemonkey は入れない方針なので試せない。なので回答しないが、メモとして。
jeremy freese's weblog: kiwi cloak: a quasi-coercive anti-websurf-procrastination tool
■バーテンダー 7 / 少女探偵金田はじめの事件簿
なんじゃこのとりあわせは? と自分でも思う。
全然ベクトルは違うけど、両方とも、最後の数ページで「やられた! こいつぁすごいや」と思わされた。
あさりよしとおの方は、最初の方と後ろの方は面白い。中ほどは苦しいなぁ、と思って読んでいたが、あとがきをよんで、あ、なるほど、と。