記録がscrapboxとspreadsheetとに分散している
2021-03-15 11:50:19 全てscrapboxに書き込んでいる
Scrapbox上でschedule管理app作れる説を実証している最中
記録が日刊記録sheetとss2calendarとに分散している。
これだと振り返りが難しくなる?
元々の役割
ss2calendar
やった内容とやった時間とを記録する
日刊記録sheet
やったことを詳細に書く
ふと思いついたことを書き留める
現状
ss2calendar
予定の組み立てには使う
思いついたことを実行したときに、その時間を書くことがない
日刊記録sheet
思いついたことを実行した場合、こちらに開始時刻と終了時刻とを書き込んでしまっている
どうして問題か
所要時間の分析ができない
時刻の情報がscrapboxに分散してしまっている
思考を練る道具としてScrapboxは優秀だが、databaseなど固定化された構造には向いていない
自動的に書き込む機能を作れない
そのため、どこからでもボタン一つで記録できるような仕組みを作りにくい
server立ててpuppeteerとかを動かせばいけるかもしれないが
どうしたいか
時間情報と内容とを分離する
時間の情報は、分析できるようにデータベースの形で残したい
やった内容は、いろんなアイデアとつなげたいのでscrapboxに残しておきたい
詳細な行動のタイムスタンプは打つけど、開始終了時間はデータベースに残す
調査ログとかが該当する。
方法
案1
これ結構いい案な気がしてきたtakker.icon*3
database
開始時刻
終了時刻
この予定でやる内容について書いたscrapboxのページへのURL
これは必須にしてもいいと思う
反論:柔軟性がない
タイトルを暫定的に「予定の名前+作成日時」しておけばいい
必要に応じて、/icons/Scrapbox.icon側でタイトルを変更すれば良い
よく使うやつは入力補完かかるようにした方が良さそう
この予定でやったことの記録について書いたscrapboxのページへのURL
これはOptionだろ
トイレ程度のタスクに毎回毎回詳細な記録なんて付けてらんない
記録を付けたいやつだけ書く
もしくは、複数の記録をひとまとめにする
自転車走行の記録というページをつくって、そこに日毎の記録を書き込んでいく、みたいな
例:/nishio/2020年9月筋トレ日記
該当する記録の記述を行リンクで指定しても良いかも
記録の開始行を貼り付ける
これを採用するつもり
行リンクをコピペできるショートカットがほしいな
keyboard shortcutとPageMenu
ScrapBindings-settingsにある
操作
新規作成
設定項目
予定の名前
見積もり時間
開始時刻
予定の名前 = scrapboxのページ名にする
見積もり時間と開始時刻はdatabase側で設定できるようにする
一度作ったものは記憶しておく
もう一度作るときにらくできるようにする
更新
タイトル変更の確認
APIを叩いて確認する
タイトル変更履歴をcacheしておく?
cacheしてもデメリットはなさそう
メリットもあまりなさそうだが……?
その他設定項目の変更
項目のdrag&drop
ネストしたリストで Vue.Draggable を使ってみた - アクトインディ開発者ブログ
実装できるか微妙
出来ないこともなさそうではあるが……
https://github.com/SortableJS/Sortable/tree/master/plugins/MultiDrag
繰り返しタスクの設定
条件を設定する
単純なやつ
一定頻度で実行
毎日
10日間隔
毎月
複雑なやつ
なにかのタスクの前後で必ずやる
なにかのタスクをN回実行すると、そのM時間後に挿入する
「繰り返しタスクを生成」commandを押すと、自動的にscheduleに組み込んでくれる
どのくらい先まで生成するかはparameterで決める
明日のタスクを作成
一週間先まで作成
記録を取る
database側
「記録を録る」ボタンか何かを押すと、記録用ページに飛ぶ
終わったら「終了ボタン」を押す
すると、記録用ページにも終了したと書き込まれる
API
データの取得
REST API
リスト中の特定の予定に飛ぶ
リストのJSONデータを取得する
scrapboxのページから予定を作成する
発動方法
bookmarkletで発動?
もしくは、window.open()
開始時刻や見積もり時刻はdatabase側で設定する
もしくは、コードブロック記法で設定する
発動時に、記録用ページを自動生成するのもありかも
UIはテキストエディタでいいかもしれない
Tritaskを参考にする
firebaseから読み込む
必要な部分だけ読み込んで同期する
ショートカットキーをいくつか用意しておく
ボタンをいくつか用意する
バックアップ用にJSONデータを出力する API を用意しておく
databaseの集計
1. 同じページを参照している予定でまとめて、統計をとる
2. /api/pages/project/pageで取得したリンクの繋がりでタスクをまとめ、統計をとる
タグ分けの代わり
参考になりそう
【Vue】おれおれチュートリアル Ⅰ - 山崎屋の技術メモ
ToDoリストを作りながら学習しよう! | 基礎から学ぶ Vue.js
案2
ss2calendarを引き続き使う
これをベースに作り変えても良いんじゃないかな……?
変更点
Cloud firestoreにデータを貯める
Google Calendar APIを使用する
データの移行
現在の/icons/spreadsheet.iconから、詳細情報を削ったsheetを作成する
別のbookでつくる
出来るかどうか試す
/icons/firebase.icon<=>/icons/spreadsheet.icon
prototypeを作る
firestoreとspreadsheetとの連携ログ
/icons/firebase.icon<=>/icons/Google Calendar.icon
/icons/spreadsheet.iconを使うメリットあるかあ?
pros
/icons/Google Calendar.iconとの同期が簡単
反論:正しく更新されない時がある。
手動で少しずつ更新をかける手間が生じる
UIが揃っている
反論:そんなに細かいUIは必要ない
Handsontableを代わりに使えばいいのでは?
Handsontableはvue3に対応していない
cons
遅い
自動更新が効かない
案3
Togglを使う
使えるかな?takker.icon
どんな機能があるのかがわからない
/sta/Togglが一番参考になりそう
#2021-03-15 11:52:43
#2020-12-06
#2020-09-11 09:59:52
#2020-09-08 04:49:34
#2020-09-06 07:01:19