-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
144 lines (123 loc) · 5.77 KB
/
index.html
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<!DOCTYPE html>
<html>
<head>
<title>TagTime Minder</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Originally Bootstrap 2.3.2 -->
<!-- Upgrading to Bootstrap 3.3.7 made it look worse to me :( -->
<!-- Latest as of 2019-06-17 is Bootstrap 4.3.1 still looks worse -->
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.2/css/bootstrap.min.css"/>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.2/css/bootstrap-responsive.min.css"/>
<link rel="stylesheet" type="text/css" href="style.css"/>
<script crossorigin
src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
<script crossorigin
src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
<!-- <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script> -->
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<link rel="shortcut icon" type="image/x-icon" href="https://cdn.glitch.com/b28394e1-3982-4824-80b4-683cb7a23a9b%2Ftminder.jpg"/>
</head>
<body>
<div class="container">
<h2>TagTime Minder</h2>
<!--
<p>(Sorry, I'm hacking on this at the moment and keep breaking it. Stand by.
test2350
)</p>
-->
<h3>Always tell me the odds</h3>
<div id="root">Loading...</div>
<hr/>
<h3>What's going on?</h3>
<p>
If you have to ask you probably don't want to know but, see, there's this
website called
<a href="http://beeminder.com"
title="Reminders with a sting">Beeminder</a>
which is a Quantified Self tool for the ironically hypermotivated to graph their
progress on things like how they spend their time and also make <i>really</i>
sure they actually make progress by literally agreeing to let Beeminder charge
them when they don't.
It's super motivating to certain lifehacking data nerd types.
</p>
<p>
And then there's this equally crazy tool, also by the folks beehind Beeminder,
called <a href="http://messymatters.com/tagtime"
title="Stochastic time tracking for space cadets">TagTime</a>
which is really übernerds-only for now but the idea is you can randomly
sample yourself to see where your time is going.
(For many things <a href="http://rescuetime.com"
title="We love these guys">RescueTime</a>
works beautifully and Beeminder has a nice normal-person-friendly
<a href="http://beeminder.com/rescuetime"
title="Automatically send data from RescueTime to Beeminder -- either to ensure you spend more time on productive things like writing, or less time on unproductive things like Facebook">RescueTime integration</a>.)
But for the doubly nerdy you can set up TagTime to automatically update a
Beeminder graph and if you've done that you might find this tool useful.
</p>
<p>
The idea is that since TagTime randomly samples you, you can never be sure how
much time you're going to get credit for.
It works out exquisitely fairly in the long run but sometimes you have a
<a href="http://blog.beeminder.com/glossary/#eep"
title="Yes, this is a link to Beeminder's glossary, because, yes, Beeminder needs a freaking glossary">beemergency</a>
and really need to get credit for another hour or so <i>by midnight</i>.
So that's what this tool is for.
It does the math on that
(involving the CDF of a gamma distribution, as it turns out)
to tell you how likely you are to get pinged
(to use TagTime's lingo)
enough times before midnight, if you stay focused.
The best part is how it updates live so you can watch your chances dwindle
away in real time if you're staring at this page instead of doing whatever it is
you're beeminding and tagtiming.
</p>
<p>
You might also find this static table handy.
It gives the number of hours you should set aside for the given number of
Emergency Hours (Emergency Pings) if you want to be pretty sure of getting at
least that many pings.
Specifically it shows the ~95% and ~98% confidence intervals.
Which means there's a 2.5% or 1% chance of it taking more than the upper bound
of the interval, respectively, and also a 2.5% or 1% chance of it taking less
than the lower bound.
For example, if you need 2 pings you can be 99% sure they'll happen within 5
hours.
</p>
<p>
<table class="table table-bordered table-condensed tagtimetable">
<thead>
<tr><th>Pings Needed</th><th>~95% CI</th><th>~98% CI</th></tr>
</thead>
<tr><td>0h45m = 1p</td><td>1m – 3h </td><td>30s – 3.5h</td></tr>
<tr><td>1h30m = 2p</td><td>10m – 4h </td><td>7m – 5h </td></tr>
<tr><td>2h15m = 3p</td><td>30m – 5.5h</td><td>20m – 6h </td></tr>
<tr><td>3h00m = 4p</td><td>1h – 6.5h</td><td>40m – 7.5h</td></tr>
<tr><td>3h45m = 5p</td><td>1h – 7.5h</td><td>1h – 9h </td></tr>
<tr><td>4h30m = 6p</td><td>1.5h – 9h </td><td>1.5h – 10h </td></tr>
<tr><td>5h15m = 7p</td><td>2h – 10h </td><td>2h – 11h </td></tr>
<tr><td>6h00m = 8p</td><td>2.5h – 11h </td><td>2h – 12h </td></tr>
</table>
</p>
<!--
<div id="tinv">Loading...</div>
-->
<br/><br/>
Source code:
<a href="https://glitch.com/#!/project/tminder"
title="Latest code is here -- like guaranteed the very latest because Glitch magically redeploys it with literally every keystroke">Glitch</a>
&
<a href="https://github.com/tagtime/tminder"
title="This version might be behind but is more likely to be stable">GitHub</a>
<span style="float:right;">
Canonical URL:
<a href="http://mind.tagti.me"
title="The tagti.me domain just points to the GitHub repository">mind.tagti.me</a>
</span>
</div>
<script type="text/javascript" src="hmsparsafore.js"></script>
<script type="text/javascript" src="themath.js"></script>
<script type="text/babel" data-presets="react, es2015, stage-2"
src="main.jsx"></script>
</body>
</html>