一個用來管理精力的包

小弟剛剛寫了一個包, dedicated-session 用來管理精力.具體原理就是大概像處理器切換process的時候把自己register裏的東西都倒走,方便下一個process往裏load一樣,提供prompt在一個有主題的session開始的時候把腦袋清空,然後大概每過一段時間就放鬆一下,在session結束的時候再提供prompt把腦袋清空,從而幫助達成一個空間,這個空間裡腦袋裡的環境混亂程度大概都是相似的,維持在一個比較低的水平.

各位如果對這方面有興趣的請多多指教.

能有一些演示的样例吗😃

没看懂你的描述。

那我寫一個使用的經過:

  1. [動機] 我打算接下來開始一個三個小時左右的dedicated session(我在readme.org裏有稍微講這個概念),專門處理關於「如何畫腳」相關的知識.

  2. [開始session] 我執行dedicated-session.在minibuffer的prompt下我輸入這個session的主題是「如何畫腳」.

  3. [開始dumping] 我在minibuffer敲擊RET後,正在使用的buffer switch到dumping buffer,顯示了從我設置的dedicated-session-source文件中讀取到的休息辦法,比如冥想或者短時間爆發運動.這些方法以是作為subheading寫在dedicated-session-source文件的resting method下的.每個方法可以打dumping,doing,releasing三個標籤中的某些個,標註這些方法在這些環節是可行的.

  4. [結束dumping] 我按照dumping buffer中的提示,完成了做事環節(doing)前的放鬆,敲擊C-c C-c, 結束了dumping環節,殺掉這個buffer,然後進入做事環節(doing)

  5. [bar和rest的循環] bar指代做事的一段時間,rest則是休息環節,可以對號入座到番茄工作法裏25分鐘的工作和5分鐘的休息.進入做事環節後,會自動進入第一個bar.之後執行dedicated-session-bar-rest-toggle會在bar和rest中間切換,即「進入rest 1,進入bar 2,進入rest 2」,執行結果會以這樣的順序變化. 在rest的期間,會進入rest buffer,會在source裏檢索帶有doing tag的休息策略呈示.

  6. [結束工作] 當我決定結束這個session的時候,我執行dedicated-session-releasing,結束最後一個rest或者bar的紀錄,進入一個session summary的log buffer.在我寫完summary後,C-c C-c,就會進入 releasing prompt buffer,呈示在source裏檢索到的帶有releasing 的休息策略.當我結束releasing中的休息過程,C-c C-c整個session就結束了,所有變量都會重置.

  7. [log] 在整個過程中,每個環節開始時都會在dedicated-session-journal文件中插入一個相應的entry,紀錄開始、結束時間和時長.當在任意時刻執行dedicated-session-journal,就會switch到一個log buffer,當在裡面寫完想要紀錄的內容後(比如 ****** log 3\n 作為幾何體考慮.會容易畫出高達腳.),C-c C-c 後在對應的entry(比如2022/05/03/session: 如何畫腳/doing/bar 3)下就會插入log buffer裏輸入的內容.

這樣看來還是一大段的文字,可能還是太乾w 可能明天我錄一個demo看看.畢竟裏面有我自己定義的名詞和算不上理論,但也有幾個構成結構的概念.

至於screenshot,我已經包括了一些在github上的readme.org screenshots章節,希望和上面的描述加起來能夠讓人稍微更理解一些w

另一個可能讓人有理解的概念是ray dalio的原則機器概念.這個dedicated session其實就是基於一些我經驗上總結的原則的機器.因為它是主動,我是被動,所以就導致我在做所有事情的時候,如果我都有記得執行dedicated-session, 我做的事情就都會符合這些原則,也就是「我的所有可能行為和狀態在這些原則下閉合」,即「形成了一個腦袋混亂程度一定的空間(集合)」是一個不嚴格的數學術語濫用.但如果你對「原則機器」概念不熟悉的話,這個段落估計看起來都像天書ww

明白了,直接代码化了自己做事的节奏,有点强迫专注的意思。大部分类似的工具,比如番茄时钟都不会控制人在 do 的环节,但你的精力管理包, 会对事务顺序进行控制。但我好奇的是,你会控制 do 的时间吗?

到了逼近 rest 的时刻,正在 do 的 buffer 也会杀掉?

我這裡做的是只會彈出rest buffer啦//控制bar的時間的功能是下一個要寫的,我打算把它寫完之後整理下代碼把log啊,toggle啊之類的都做成可以用自己寫的替換,那時可以把妳這個暴力點子也加進去www

一個demo!

我寫好了Timer了!現在在bar裏會每隔一段時間自動進入rest,這個時間會在本session第一次進入bar的時候prompt輸入,如果那時不輸入的話,就會把第一個bar的時間拿來作為這個「每隔一段時間」.也可以使用dedicated-session-set-bar-effort來主動改變.

對於session,則會在還剩下10分鐘的時候提示要不要延長session,如果不延長的話,就會在10分鐘後自動進入releasing,延長的話,就會在延長的時間之後再問一次.

1 个赞

我写了一个统计每个buffer占用时长的包, 我觉得你要知道你的时间花在哪里, 是最重要的, 也就是说, 你要慢慢地、有意识地, 减少碎片化、大块时间地干一件事

所以, 你得先知道, 你是怎么被碎片化的

2 个赞

这个想法好啊,有项目地址吗?

我之前也想找一個這樣的包來著!後來找到activity-watch-mode就沒再繼續找了.也求項目地址來看看-

随便写了点, 只是emacs层面上的统计, 其实应该还有操作系统层面上的统计, 比如, 如果使用了i3wm, xmonad等窗口管理器, 就可以在这个层面上进行所有应用的统计

https://github.com/gadmyth/emacs/blob/master/basic-scripts/stopwatch.el

https://github.com/gadmyth/emacs/blob/master/basic-scripts/dates.el
2 个赞