あれ
予算と実績のデータ構造について前職にいた時から考えているのだけど未だ答えが見えずにいる。
WBSとかでもそうなんだけど、親の値が子から集計される性質があり、それをうまく扱うのが難しい。
初期の頃には浅い木でざっくりで出したい場合があるし、時が近づくにつれて深い木で詳細にしたい場合もあるし、具体的な予定が決まっている子を登録することもある。「T月にAの件で支払いがあるけど、T月についてはそれ以外は全く未定なので、全体としてはざっくり予算にしたい」といった具合。
「あの時に出した予算(見積工数)はどうだったっけ?」「予算の精度ってどう推移したの?」という関心も当然生じる。
予算と実績の紐付けもある。「支払いAについての予算」と「支払いAについての実績」が紐付いている(経理業務の消し込みのイメージ)と嬉しい。つまり、「見込まれたイベントが本当にあったのか?」が記録されたい。
予算と実績に差異があれば差異分析となるし、「見込まれたイベントがなかった」となれば「なぜなかったのか」ということを紐づけたくなる。
Disjoint Sparse Table
Disjoint Sparse Table は静的な半群列の区間和を高速に計算できるデータ構造
「T字型ER手法は, 「命題論理」を使って, 「有意味な」データ構造を作図するための技法」
メモアプリのCraftを試しに使ってみた
Craft(https://docs.craft.do/)を試しに使ってみた記録をつけてみる。
普通のメモアプリだ。データ構造的なところに特に工夫されているところはない。他のページへリンクできたりするわけではない。その分わかりやすい。
見た目がスッキリしている。万人受けするかもしれない。見た目がスッキリしている分、機能は必要最低限に抑えられている。Notionのように「うっ多機能でよくわからん」とはならなかった。
どことなくMarkdownっぽさを感じる。Markdownでできることを一般的なGUIでラッピングしたような印象。実際Markdownをインポート・エクスポートすることもできる。
ウェブサイトを超簡単に作るためのシステムって感じだろうか。書いた情報以外は出てこないのがいいのだろう。シェア機能もあるので、簡単なお知らせページとか作るのに向いているのかもしれない。
Add Contentでその行をタイトルとしたページに遷移できるので、アウトライナーっぽいなーと思ったら、微妙に挙動が違う。Add Contentで追加するコンテンツは、インデントで従属させた行とは別のコンテンツになっている。
試しで作ったページ:https://www.craft.do/s/EOLE2aYVkIrEcT
Stringの難しさ
- Rustのありうるエラーを晒す性質
String
が複雑なデータ構造であること- UTF-8
https://doc.rust-jp.rs/book-ja/ch08-02-strings.html#文字列でutf-8でエンコードされたテキストを保持する