Dashboard Notes
Note: These my notes for implementing a single Dashboard from which to view my progress on different projects.
Meta
So many bright ideas as I keep implementing stuff!
- [2015-08-02 Sun] Use Org Agenda (didn’t pan out)
- Decouple Model from View
- Have Emacs as the View
Principles
Read-only - only changeable by changing the projects
Ideally, I should control things from here. Else, there would be duplication of information.
Everything is information. Why didn’t you use the Dashboard? What did you do instead? Bring that into your Dashboard loop. At all times, you’re doing SOMETHING. Just change it till you’re doing what needs to be done. Keep your eyes wide open. Likewise about - “boohoo, I’m not doing anything. I suck. I’m not making progress.” In short, what algorithm did you use to decide what to do? What wrote your bottom line? WHY aren’t you doing it? (Answer: Motivation.) More importantly, what are you doing? Why?
Don’t do anything that’s not in the Dashboard. Else, you’re increasing the cycle time for the Dashboard. Remember, Projects (Change) -> Dashboard (Product). If there’s any change in your projects, your Dashboard should know.
However, the Dashboard itself acts as a Change for action on my Projects. I need to minimize the cycle time from seeing a change in my Dashboard to fixing it in my projects. I need to release more frequently - check the Dashboard regularly and act on it.
What do I want to see?
Results of the last 10 days, not just the lifetime average.
Results of tests, analyses, stats, etc. Link Checker output (?)
Notifications
My current goals What I want to keep in mind
Game of Rationality score (full score, maybe)
Progress towards Goals Are things broken? What needs to be done? What should I do now?
Links to the projects
Website and Essay stats Essays I’m working on right now Words per day ./site check | grep broken
Life Stats (stuff from Life Constraints) Sleep hours Health Stats What I’m eating Emotional Health stuff - gratitude journal, etc. Read for 2 hours everyday Write for >= 1 hour everyday Study Math for >= 1 hour everyday
Reading Stats Books I’m reading (maybe fetch from Goodreads)
For arbtt, the current categories aren’t very helpful. I want to know where I’ve spent my time and how I can improve it. Evidence: I still use my beloved bscl to tell me how exactly I’ve spent my time. Conclusion: The categories need to evolve with my preferences.
For my drill stats, show me when I last ran org-drill
. Also, show me the rate at which I’m adding drills for the last week.
Emacs key frequencies - unused short keys, highly used long keys.
Windshield! Keep the important stuff right where you will use it again and again.
Implementation
No reason why the different status commands have to be run at the same time. Run them at their own frequencies (git status every minute, arbtt every 1 or 5 minutes, drill every 10 minutes) Prepare the dashboard file from the various status files every minute => quick feedback.
Separate Model from View Models: The individual dashboard log files They get updated by the individual cron jobs The logs are like databases, they contain only the data. No formatting or other metadata. What format should the data be in? JSON? For now, let’s just say “pure text” - the value is the entire content of the file. No further metadata. Test: Go look at the individual log files. Do they contain extra formatting data? Problem: Will have to parse stuff from Arbtt, git status, etc. if we have to store data in JSON or whatever. View: Format Right now, the dashboard.dash file (in markdown format) Later, could be in HTML format Or a pdf Or a page on my website. Whatever. So, I would need a templating language here to take the raw data from the model and format it. This is actually the Publish-Subscribe model
Have the View in elisp!
Key in Dashboard buffer - Run “update all”
Dashboard mode (so that I can add keys in its mode map)
Further ideas
Maybe publish snapshots of my Dashboard on my website
Maybe use https://github.com/magnars/multifiles.el to implement the Dashboard, so that I can edit the files from my Dashboard. (Do I really need this? Isn’t the Dashboard read-only?)
comments powered by Disqus