-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDashboard-Notes.html
More file actions
119 lines (107 loc) · 8.33 KB
/
Dashboard-Notes.html
File metadata and controls
119 lines (107 loc) · 8.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="icon" type="image/png" href="./images/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="./images/favicon-16x16.png" sizes="16x16" />
<title>Dashboard Notes - SPK's Rationality Essays</title>
<link rel="stylesheet" type="text/css" href="./css/default.css" />
<link rel="stylesheet" type="text/css" href="./css/highlight.css" />
<!-- <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> -->
<!-- <script type="text/javascript" src="/js/header-links.js"></script> -->
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<link href="atom.xml" type="application/atom+xml" rel="alternate" title="Sitewide ATOM/RSS Feed" />
<!-- Google Analytics stuff -->
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-DEWF2J5BG8"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-DEWF2J5BG8');
</script>
<script type="text/javascript" src="https://fast.fonts.net/jsapi/f7f47a40-b25b-44ee-9f9c-cfdfc8bb2741.js"></script>
</head>
<body>
<div id="header">
<div id="logo">
<a href="./">SPK's Rationality Essays</a>
</div>
<div id="navigation">
<a href="./">Home</a>
<a href="./notes.html">Notes</a>
<!-- <a href="/about.html">About</a> -->
<a href="./archive.html">Archive</a>
<a href="./atom.xml" type="application/atom+xml" rel="alternate" title="Sitewide ATOM/RSS Feed">RSS</a>
</div>
</div>
<div id="content">
<h1 id="post-title">Dashboard Notes</h1>
<!-- <center><img src="https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-prn1/t31.0-8/p600x600/10257116_10202295769100492_2438594605053717342_o.jpg" height="400" width="300" class="sujeet-pic" alt="Sujeet pic" /></center> -->
<p><strong>Note</strong>: These my notes for implementing a single Dashboard from which to view my progress on different projects.</p>
<h1 id="meta">Meta</h1>
<p>So many bright ideas as I keep implementing stuff!</p>
<ul>
<li>[2015-08-02 Sun] Use Org Agenda (didn’t pan out)</li>
<li>Decouple Model from View</li>
<li>Have Emacs as the View</li>
</ul>
<h1 id="principles">Principles</h1>
<p>Read-only - only changeable by changing the projects</p>
<p>Ideally, I should control things from here. Else, there would be duplication of information.</p>
<p>Everything is information. Why didn’t you use the Dashboard? <em>What</em> 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?</p>
<p>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.</p>
<p>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.</p>
<h1 id="what-do-i-want-to-see">What do I want to see?</h1>
<p>Results of the last 10 days, not just the lifetime average.</p>
<p>Results of tests, analyses, stats, etc. Link Checker output (?)</p>
<p>Notifications</p>
<p>My current goals What I want to keep in mind</p>
<p>Game of Rationality score (full score, maybe)</p>
<p>Progress towards Goals Are things broken? What needs to be done? What should I do now?</p>
<p>Links to the projects</p>
<p>Website and Essay stats Essays I’m working on right now Words per day ./site check | grep broken</p>
<p>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</p>
<p>Reading Stats Books I’m reading (maybe fetch from Goodreads)</p>
<p>For arbtt, the current categories aren’t very helpful. I want to know <em>where</em> I’ve spent my time and <em>how</em> I can improve it. Evidence: I still use my beloved bscl to tell me how <em>exactly</em> I’ve spent my time. Conclusion: The categories need to evolve with my preferences.</p>
<p>For my drill stats, show me when I last ran <code>org-drill</code>. Also, show me the rate at which I’m adding drills for the last week.</p>
<p>Emacs key frequencies - unused short keys, highly used long keys.</p>
<p>Windshield! Keep the important stuff right where you will use it again and again.</p>
<h1 id="implementation">Implementation</h1>
<p>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.</p>
<p>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 <em>only</em> 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 <em>parse</em> 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</p>
<p>Have the View in elisp!</p>
<p>Key in Dashboard buffer - Run “update all”</p>
<p>Dashboard mode (so that I can add keys in its mode map)</p>
<h1 id="further-ideas">Further ideas</h1>
<p>Maybe publish snapshots of my Dashboard on my website</p>
<p>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?)</p>
<div class="info">Created: August 10, 2015</div>
<div class="info">Last modified: August 18, 2015</div>
<div class="info">Status: in-progress notes</div>
<div class="info"><b>Tags</b>: notes, dashboard</div>
<br />
<div id="disqus_thread"></div>
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
var disqus_shortname = 'spkrationalitytrainingground'; // required: replace example with your forum shortname
var disqus_identifier = '/Dashboard-Notes.html';
var disqus_title = 'Dashboard Notes';
/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<script type="text/javascript" src="https://fast.fonts.net/jsapi/f7f47a40-b25b-44ee-9f9c-cfdfc8bb2741.js"></script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
</div>
<div id="footer">
Site proudly generated by
<a href="http://jaspervdj.be/hakyll">Hakyll</a>
</div>
</body>
</html>