うちあわせCast収録な木曜日

8:00

おはようございます。本日は午後からうちあわせCastの収録です。それまでは原稿を書きましょう。

タスク管理について:

包括的に言えば、すべては「気になっていること」と言える。つまり、タスクも、リマインダーも、プロジェクトも、「気になっていること」という根源的な属性の共通を持つ。極論すればアイデアもそこに含まれるだろう。

その上で、それぞれに求められる操作が異なるから、扱いも異なってくるという状況がある。

そうした差異に注目すると、複数のリストを持つタスク管理ツールが出てくる。

逆に同一性に注目するとどうなるか。一つはGoogle的なものだろう。一つのリストに入れておき、検索などで抽出する。あるいは、AIにぶん投げて答えてもらう。

一つのリストでありながらも、それぞれに性質が異なるというようなこと。JSONであれば可能だろう。実際Textboxでは、line,cardという二つのtypeでカードの描写を制御している。

そのようにして、さまざまな「気になっていること」にアクセスするための一元化ルートを作る。そうすると、簡単に「気になっていること」にアクセスできる。それは嬉しいか?

たとえば、Webブラウザの「履歴」は、履歴一覧として別のウィンドウで表示させることもできるが、アドレスバーにテキストを入力したときに、その履歴からインクリメンタルサーチが行われる。これは、データ全体を利用してはいるが、利用者としては「そのデータ」を直接取り出しているとも言える。

たとえば「読書メモ」という文字列を入力したときに、自分が「気になっていること」に保存したデータからインクリメンタルサーチが行われるなら。ようするにScrapboxでやっていることだ。

* * *

CotEditorでも実装自体はできるか。PythonでScriptを書いて、気になっていること2024.mdからテキストを抽出し、リストを作っておく。あとはGUIを作って、インクリメンタルサーチ、という感じ。

でも、実際はTextboxでやった方が良い。あるいは、それ用のデスクトップアプリを作るか。

つまり、「読書メモリスト」というのを作り、読書メモタスクを実行する際にそのリストを参照するのではなく、タスクリストのinputに「読書メモ」と打ち込むと、それまでに自分が「読書メモ〜」と書き込んだ「気になっていること」の項目がサジェストされる、という感じ。

これが「入力と利用」の一致を促す。これは、ビューの設計ではない。一つの新しい掲示を得た。タスクリストのようなものは作らない。それでいて、タスクをアシストするもの。

Scrapboxと同じで、タスクを入力しようとしない限りは、そのサジェストはまったく効果を持たない。その意味で強制性は薄い。逆に言えば、普段は邪魔にならない。

ScrapboxやObsidianでも、一枚一ファイルで作っておけばいける。Workflowyならもっと簡単か。タスクを入力するときに常にリンクにすればいいだけ。

この方向を追求してみるのは面白そう。

もちろん「読書メモ」という入力をしないと、何もサジェストされないわけだが、空っぽのときは直近の5つをサジェストする、的なことをすれば自分が希望しているのと近しいものにはなるだろう。

とりあえず、ビュアーから入力サジェストへ、という流れは悪くない。

その上で、あらためてビューについて考える。

上記のサジェスト用データがあれば、ビューを作ることもできる。そのビューは「何のために」作られるのか。

一覧することで得られる安心感的なことだろうか。

* * *

行為はタスクとして実行されて、つまりそれは作業記録にログが残る。だから、「気になっていること」のアーカイブはあまり必要ではない。特に実行済みかどうかの情報は必要なくて、単に不要なら削除すればいい。「気にならなくなったこと」は、「気になっていること」ではないので、それは削除しなければならないが、だとしたら「気になったこと」というログ指向にすれば解決。

あとはビューの問題。

* * *

たとえば、上記をWorkflowyで実行するならば、どこかしらにデータを置いておき、その項目へのリンクを作る、という形になる。これはいい。

で、Workflowyでデータを置くということは、リストにするということ。種別ごとのリストにしてもいいし、統一的なリストにしてもいい。よって、どう実装するかはかなり自由。途中で変えて問題ない。項目が、どの項目の子どもなのかよりもどう記述されているかの方がはるかに重要。でもってそれは健全なスタイルと言える。

OSベースでやるならば、変換の単語登録にすることになる。が、それはあまりにもという感じ。

何かのショートカットキーで入力ボックスだけ表示するアプリケーションを作り(Raycastのような感じ)、そこでインクリメンタルサーチをして、決定を押したらクリップボードにコピーされる、という具合になるだろう。CotEditorの現在のカーソル位置に直接挿入できたらGoodだが。

では、Textboxではどうだろうか。「今日のタスクリスト」のようなページでタスクの入力をするときに、サジェストが働くようにする。あるいは、タスクの入力だけでなく? それこそJSONからインクリメンタルサーチで項目を探せる機能がそれに当たるのではないか?巨大なデータセットでも、言語空間が重ならないのならば単一のJSONでも問題ない。

もちろん、タスクのときはタスク、本のタイトルのときは本のタイトルとドメインが切り分けられるのがよいとは思うが、これもタスク名の記述に気をつければ、切り分けは不要になるかもしれない。

入力時にサジェストを表示させようとすると、textareaでは少々厳しい? そんなこともないか。カーソル位置の座標さえ分かるならば、一応は行けるはず。ただ、すべての入力に反応はできないからやはりリンクを作ってということになるが、ということは、入力されているのがリンク記法なのかどうかという判断を常に働かせる必要はある(textareaのvalueを、正規表現でマッチし続ける)。

というか[[というものを入力したら、特別なインプットボックスを表示させるというのでもいい。とにかく、入力することと、その入力するときに以前に作ったデータセット(ようするに入力したもの)が活かされる形をつくればいい。

できるだけ自然な形で、つまり「今からリンクを呼びだすよ」のような強い意志の発露なしにサジェストが動くのがいいとは思う。この辺は要検討。

* * *

で、ビューについて。ビューについての考えがあまり深まらない。

もしかして必要なのかもしれない。

「気になったこと」のデータセットがあり、それがサジェストされるか、せいぜいリストで一覧できれば十分?

少なくとも、Scrapboxはその思想だ。可視化して安心感を得るというその心理性に抗っている気がする。

実際、タスク入力時にサジェストされるだけで十分ということはある。でもって、そのサジェストを有効にするためにデータセットに入力しておこうというモチベーションが高まる効果もあるだろう。「使う」からその効果が感じられる、というような。

というか、Workflowyがビューとリンクの実装してはたぶん完璧。これ以外の形は結構「あえてやっている」感が出てきそう。それを踏まえて、あえてTextboxでやるとしたらを考えたい。

* * *

というか、Textboxの場合は、「気になっていること」のサジェストというよりは、JSONの項目をいかにインクリメンタルサーチとして「使う」のかという話になってくるだろう。なにせ、タスクリストを現状Textbox上では作っていないのだから。ようするにそれが問題なわけだ。

で、Workflowyではすべてが行なので、親項目を持っているかどうかは区別されない。つまり、TextboxのJSONとPageが共に同じデータセットに入っている。

現状のTextboxでは、プロジェクトを呼びだすときはページを、タスクを呼びだすときはJSONをという形になっている。これを変える必要がある。

「気になっていること/気になったこと」は、タスクもプロジェクトも区別なく入っている必要があり、そのためのJSONなりなんなりが必要。で、一つのデータとしてページへのリンクを入れておく。JSONで持つならば、データの種類によってビューを切り分ける、みたいなことはできる。

単純なテキストでも、ページリンクは別枠で表示する、みたいなことをすれば「プロジェクトリスト」を作ることも不可能ではない。

* * *

todoboard.md、Do.json、project.md、気になっていること.mdと気になっていること2024.md。

これらの拡散した状態を、一つの安定系に持っていきたい。

「気になっていること」を「次にやること」や具体的な「アクション」に限定するならば、プロジェクトリストはそれとは視点が異なることになる。だから、別の形で保存、表示されるのが好ましいとは言える。

俯瞰して安心感を得る。あるいは、自分の次の指針について考える。これらは異なるだろうか。異なるような気もする。

* * *

「タスク」をどう扱うか。JSONの中に直接lineとして保存する手もあるし、JSONの中にページが記載されていたら、そのページの中身を引っ張ってきて利用する手もある。この場合、必要なのはページ名だけのJSONで、そこには「プロジェクト」と「リスト」の二つのページが含まれている。

もっと再帰的にできるか?

おおもとの項目に「project.md」があるとする、project.mdには各プロジェクトのリンクがある。そのリンク(タイトル)をインクリメンタルサーチでサジェストする。

おおもとの項目に「次にやること.md」があるとする、そこには箇条書きでやることが書き込まれている。その各行をインクリメンタルサーチでサジェストする。そのようにして「大統一場」を実現できるか。

* * *

「やること」ボックスはいつ眺めるか。

メモの整理:

あとで読む:アーカイヴとウェブ上の記憶をめぐる作業日誌① | DISTANCE.media

あとで読む:平成31年度東京大学学部入学式 祝辞 | 東京大学

あとで読む:古賀及子の日記文学 デビュー作『ちょっと踊ったりすぐにかけだす』について|鳥羽和久

あとで読む:現代人は本当に思想に飼われている - シロクマの屑籠

10:00

TH:

とりあえず、昨日作ったラフスケッチを、Scrivenerに移す作業だけやりましょう。

* * *

三章のファイルを作り、ラフスケッチをコピーして整形しておきました。ついでに、googleドキュメント上で原稿をずいぶん修正したので、それもScrivenerにコピペしてDraftフォルダを整理しておきました。

12:00

タスク管理について:

JSONで項目を管理するとして、プロジェクトの情報一つにつき、一つの項目ではなく、一つのリストにつき、一つの項目を作るとどうだろうか。

14:00

うちあわせCast:

収録です。

* * *

終わりました。

publish:第百四十八回:Tak.さんとアウトライン折りたたみ問題について 作成者:うちあわせCast

17:00

KW:

今日のエッセイを書きましょう。

* * *

18:00

環読プロジェクト:

第四章を続けましょう。

* * *

OKです。少しペースを上げていかないとけませんね。

『群論への第一歩』:

第八章を続けます。