ブラックボックスどうする
入れる(In)
数える(Count)
出す(Out)
ブラックボックスの特徴
タスクを更新するという概念がない
タスクが入っているか、入っていないかだけを扱う
何が入っているかを見ることはできない
タスク総数はわかる
タスクの取り出し = Out操作を行うこと
次に出てくるタスクはアルゴリズム次第
利用者の意思で特定のタスクを選んで取り出すことはできない
取り出し方の戦略
スタック
先入れ先出し
キュー
後入れ先出し
ランダム
何が取り出されるかがランダム
ブラックボックスの思想
タスク管理に対するアンチテーゼ
タスク管理として利用者がやることが多すぎる
単に忘れないように保持できればいい
保持したものは一つずつ処理するしかない
保持したものを全部処理できればゴール
精神的につらいので進捗も欲しい
というわけで
ブラックボックスな入れ物を使う
何個入っているかはわかる
とにかく0にすればいい
ブラックスボックスのネスト
もうちょっと高級な制御がしたい場合
box1
box2
box3
box4
この場合、box1から取り出そうとすると、box2~4のいずれかから取り出すことになる
このbox2~4の選び方を工夫すれば、ある程度の制御が可能
実践例
結論:強引だができる
1ボックス1プロジェクト
boxname = projectname
daily-today-box にしたら毎日デイリーボックスとして使い回せる
in = 新規ページ
out = ブランクページを開いた状態で random して、出てきた画面をsnippingtoolでキャプチャし、当該ページは消す
inし直すコストが高い(打ち直すしかない)
count = トップページに出る n pages
だがトップページはブラックじゃないので隠さねば
css
li の page-list-item grid-style-item クラス
userscriptでできた
https://gyazo.com/d0f4a3de135d9509fae498da7f11c677
546個ってことがわかる
pages 表示も上に持ってきたい
page-list-status クラス
活用シーン妄想してみる
たとえば日常生活の何十個あるルーチンタスクを回す場合
こんなのがある
テンプレートボックス
ボックス二個が対になっている
AとBとする
AからOutしたものは、自動的に複製されてBにInされる
なのでAを空にしても、Aに入っていたタスクはなくならない
翌日はBをOutしていけばいい
例
xx曜日にやることボックス
指定日にやることボックス
……
デイリーボックス
今日やるタスクを入れる
ゼロにしたら今日は終わり
毎日最初にデイリーボックスにタスクをInしていく
テンプレートボックスを使えばルーチンも処理できる
ルーチン以外はその場で思いついたものを
カレンダーなど他を見てから思い出す
いけそうだが
概念的には新しくもなんともない
手動でルーチン回す場合、多かれ少なかれこうなる
≒今日エリアにテンプレートまたはログからコピーする
じゃあ何の意味がある?