-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuvis2016.js
1799 lines (1787 loc) · 128 KB
/
uvis2016.js
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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
var batch2016jan = [
{
"x": "In goal default settings if you tried to submit the form with no leadtime or no alertstart or no deadline it would give a 500 error #bugfix",
"u": "https://twitter.com/beemuvi/status/683068394736726016",
"t": "2016-01-01 23:32:50 +0000",
}, /*************************************************************************/ {
"x": "Typo fix in hovertext in footer (thx Caitlin Patton!) & http://beeminder.com/api documentation updates re: roadall not road_dial, & daystamp",
"u": "https://twitter.com/beemuvi/status/683449083822903296",
"t": "2016-01-03 00:45:34 +0000",
"c": "Point to the replacement for road_dial in the road dial endpoint description, and mention that you can include daystamp when creating datapoints (but that timestamp overrides)",
}, /*************************************************************************/ {
//"n": 1778,
"f": true,
"x": "Guess what we (@andrewpbrett to be specific) made? A Beeminder Slackbot! http://dreev.es/slackbot Has rough edges (feedback pls!) but works!",
"u": "https://twitter.com/beemuvi/status/683761692640067584",
"t": "2016-01-03 21:27:45 +0000",
}, /*************************************************************************/ {
//"n": 1779,
"x": "Bug in http://beeminder.com/featured — would sometimes give 500 error & other times not show actual 24 most recently updated graphs #bugfix",
"u": "https://twitter.com/beemuvi/status/684162308570939393",
"t": "2016-01-04 23:59:40 +0000",
}, /*************************************************************************/ {
//"n": 1780,
"x": "Both recent data and fine print now say \"public\" or \"private\" w/ link to change it (<a href=\"http://forum.beeminder.com/t/feature-request-private-public-indicator/447\">forum post</a>)",
"u": "https://twitter.com/beemuvi/status/684533031823003648",
"t": "2016-01-06 00:32:47 +0000",
"c": "TODO: confirm this wasn't lost in #redesign",
}, /*************************************************************************/ {
//"n": 1781,
"x": "Got rid of superfluous subheading for \"Recent Data\". Added hovertext for New Data and Advanced Entry tabs. HT Edith Beerdsen #mini ×2",
"u": "https://twitter.com/beemuvi/status/684853414522556416",
"t": "2016-01-06 21:45:52 +0000",
}, /*************************************************************************/ {
//"n": 1782,
"x": "Informative error if goalslug taken etc (<a href=\"http://forum.beeminder.com/t/uninformative-error-message-when-creating-duplicate-goal/1712\">forum post</a>) (another thing we broke in the great javascript refactor a year ago) #bugfix",
"u": "https://twitter.com/beemuvi/status/685255946851860480",
"t": "2016-01-08 00:25:23 +0000",
}, /*************************************************************************/ {
//"n": 1783,
"x": "API #bugfix thanks to Malcolm Ocean & <a href=\"complice.co\">Complice</a>: Now the deauth callback actually works so 3rd-party apps know when user revokes auth",
"u": "https://twitter.com/beemuvi/status/685623126156152832",
"t": "2016-01-09 00:44:26 +0000",
}, /*************************************************************************/ {
//"n": 1784,
"f": true,
"x": "(+) IFTTT Improvements!",
"u": "https://twitter.com/beemuvi/status/685944434802819073",
"t": "2016-01-09 22:01:12 +0000",
}, /*************************************************************************/ {
"n": false,
"s": true,
"x": "(1) New Zeno Trigger lets Beeminder hound you via any medium connectable to <a href=\"https://twitter.com/IFTTT\">@IFTTT</a> (flash your lights, <a href=\"https://twitter.com/SlackHQ\">@SlackHQ</a>, you name it)",
"u": "https://twitter.com/beemuvi/status/685944434802819073",
"t": "2016-01-09 22:01:12 +0000",
}, /*************************************************************************/ {
//"n": 1785,
"s": true,
"x": "(2) \"N safe days\" <a href=\"https://twitter.com/IFTTT\">@IFTTT</a> Trigger now lets you say \"less than\"/\"equal to\"/\"greater than\". Handy for, eg, rewarding yourself for more buffer.",
"u": "https://twitter.com/beemuvi/status/685944500020105216",
"t": "2016-01-09 22:01:27 +0000",
}, /*************************************************************************/ {
//"n": 1786,
"s": true,
"x": "(3) Don't laugh but we now have an <a href=\"https://twitter.com/IFTTT\">@IFTTT</a> \"Charge me\" Action in case you want to instantly sting yourself for going to a bar or something.",
"u": "https://twitter.com/beemuvi/status/685944577925058561",
"t": "2016-01-09 22:01:46 +0000",
}, /*************************************************************************/ {
//"n": 1787,
"x": "In <a href=\"https://twitter.com/Withings\">@Withings</a> goal creation: if out of freebees we were both not requiring a pledge and not redirecting to your goal after creation. #bugfix",
"u": "https://twitter.com/beemuvi/status/687069428412887040",
"t": "2016-01-13 00:31:31 +0000",
}, /*************************************************************************/ {
//"n": 1788,
"x": "Some small improvements, #bugfix's, robustifications of the Beeminder Slackbot, like actually refreshing the graph when you add a datapoint",
"u": "https://twitter.com/beemuvi/status/687412068518080512",
"t": "2016-01-13 23:13:03 +0000",
}, /*************************************************************************/ {
"x": "And a big improvement to the Beeminder Slackbot: it now does zeno reminders! http://slackminder.com (Still pretty beta though)",
"u": "https://twitter.com/beemuvi/status/687412104559759363",
"t": "2016-01-13 23:13:11 +0000",
}, /*************************************************************************/ {
"x": "Removed deadline from terrifyingly advanced settings since it's now in reminders and fixed the link to deadline under the countdown. #mini",
"u": "https://twitter.com/beemuvi/status/688107679814778880",
"t": "2016-01-15 21:17:09 +0000",
}, /*************************************************************************/ {
"x": "We now send all reminders as push notifications on iOS (not just eep-day zenos). Fixed brief bug where it would wrongly say \"eep\" on those.",
"u": "https://twitter.com/beemuvi/status/688513114132721665",
"t": "2016-01-17 00:08:13 +0000",
}, /*************************************************************************/ {
"x": "Made the deauth buttons on https://www.beeminder.com/settings/apps not squished together. Email/SMS bot no longer says \"Emergency\" in scarequotes. #mini ×2",
"u": "https://twitter.com/beemuvi/status/688513627477807105",
"t": "2016-01-17 00:10:15 +0000",
}, /*************************************************************************/ {
"x": "Fixed a case of ugly line wrapping in reminder settings; doc #bugfix with platonic goal types in hovertext in custom goal settings #mini ×2",
"u": "https://twitter.com/beemuvi/status/689245772634697728",
"t": "2016-01-19 00:39:32 +0000",
}, /*************************************************************************/ {
"x": "Didn't affect many people but fixed a bug that would leave the \"goal is frozen\" banner on goals even after updating payment info. #bugfix",
"u": "https://twitter.com/beemuvi/status/689601346111012864",
"t": "2016-01-20 00:12:27 +0000",
}, /*************************************************************************/ {
"f": true,
"x": "We now ask you for your current/recent weight (with option to auto-fetch it!) when creating <a href=\"https://twitter.com/Withings\">@Withings</a> goals. So much nicer!",
"u": "https://twitter.com/beemuvi/status/689969167240400897",
"t": "2016-01-21 00:34:03 +0000",
}, /*************************************************************************/ {
"x": "Getting explicit starting weight also fixes bad bug that often caused insta-derails when importing <a href=\"https://twitter.com/Withings\">@Withings</a> data on goal creation. #bugfix",
"u": "https://twitter.com/beemuvi/status/689969363802312705",
"t": "2016-01-21 00:34:49 +0000",
}, /*************************************************************************/ {
"x": "Beeminder Slackbot: it was showing the least recent instead of most recent datapoints, and all instances would fail if one did. #bugfix ×2",
"u": "https://twitter.com/beemuvi/status/690693528624599041",
"t": "2016-01-23 00:32:24 +0000",
}, /*************************************************************************/ {
"x": "New box in the blog sidebar for newbees and overhauled the User's Guide for New Bees post, linked to therefrom. <a href=\"http://blog.beeminder.com\">blog.beeminder.com</a>",
"u": "https://twitter.com/beemuvi/status/691002770652921856",
"t": "2016-01-23 21:01:13 +0000",
}, /*************************************************************************/ {
"x": "The calendar date pickers for take-a-break let you pick the same end-date as start-date, then complained at you. Now it's less dumb. #mini",
"u": "https://twitter.com/beemuvi/status/691561118385319936",
"t": "2016-01-25 09:59:53 +0000",
}, /*************************************************************************/ {
//"n": 1800,
"x": "If you had to re-auth Skritter (maybe some others) we were failing to remove error flag & wouldn't automatically resume fetching #bugfix",
"u": "https://twitter.com/beemuvi/status/691792309885784065",
"t": "2016-01-26 01:18:34 +0000",
"c": "Were already doing this for some specific autod types, but I also made the code better so that this will just happen for new types we add, so also infra",
}, /*************************************************************************/ {
//"n": 1801,
"x": "Fixed a bug on http://scribeminder.com that prevented connecting to Beeminder if you weren't using HTTPS. Also, forced HTTPS. #bugfix",
"u": "https://twitter.com/beemuvi/status/692229435026726914",
"t": "2016-01-27 06:15:32 +0000",
}, /*************************************************************************/ {
//"n": 1802,
"f": true,
"x": "(+) Improvements to our <a href=\"https://twitter.com/habitica\">@habitica</a> integration for completed To-Dos!",
"u": "https://twitter.com/beemuvi/status/692699300929761280",
"t": "2016-01-28 13:22:37 +0000",
}, /*************************************************************************/ {
"n": false,
"s": true,
"x": "(1) Every To-Do is its own datapoint with task text as the comment...",
"u": "https://twitter.com/beemuvi/status/692699300929761280",
"t": "2016-01-28 13:22:37 +0000",
}, /*************************************************************************/ {
//"n": 1803,
"s": true,
"x": "(2) <a href=\"https://twitter.com/habitica\">@habitica</a> \"More Completed To-Dos\" goals are now auto-summing instead of odometer-style",
"u": "https://twitter.com/beemuvi/status/692816365242036224",
"t": "2016-01-28 21:07:48 +0000",
}, /*************************************************************************/ {
//"n": 1804,
"s": true,
"x": "(3) No longer any hoops to jump through when deleting completed To-Dos in <a href=\"https://twitter.com/habitica\">@habitica</a>; Beeminder remembers everything!",
"u": "https://twitter.com/beemuvi/status/692816478962225152",
"t": "2016-01-28 21:08:15 +0000",
}, /*************************************************************************/ {
//"n": 1805,
"s": true,
"x": "(4) The <a href=\"https://twitter.com/habitica\">@habitica</a> integration has a 7-day window where changing To-Dos (ie uncompleting them) is reflected in Beeminder #statuteoflimitations",
"u": "https://twitter.com/beemuvi/status/692816768713097216",
"t": "2016-01-28 21:09:24 +0000",
}, /*************************************************************************/ ]
var batch2016feb = [
{
//"n": 1806,
"x": "Trivial yet maybe a big deal: Lots of confusion about initial flat spot (eg, bot doesn't bug you for ~9 days) so default now is no flat week",
"u": "https://twitter.com/beemuvi/status/694072069886124032",
"t": "2016-02-01 08:17:31 +0000",
}, /*************************************************************************/ {
//"n": 1807,
"x": "Now two sections of statistics in the sidebar: for datapoints & for the yellow brick road. Added 2 new data stats so far: mean & mean delta.",
"u": "https://twitter.com/beemuvi/status/694449364689784832",
"t": "2016-02-02 09:16:45 +0000",
}, /*************************************************************************/ {
"x": "Mean and Mean Delta in data stats box now interpolate gaps in data, making Mean Delta comparable to daily rate of the yellow brick road",
"u": "https://twitter.com/beemuvi/status/694768767436398594",
"t": "2016-02-03 06:25:56 +0000",
}, /*************************************************************************/ {
"x": "Changed #statuteoflimitations for RescueTime integration from 2 and from Skritter from 4 to 7 days. Hooray for (a bit more) consistency!",
"u": "https://twitter.com/beemuvi/status/695168091374784512",
"t": "2016-02-04 08:52:43 +0000",
}, /*************************************************************************/ {
"x": "Moving deadline out of adv. settings caused bug that prevented graph from refreshing (eg updating watermark) when changing deadline. #bugfix",
"u": "https://twitter.com/beemuvi/status/695503269271990272",
"t": "2016-02-05 07:04:35 +0000",
"c": "cf UVI#1725 & UVI#1790",
}, /*************************************************************************/ {
"x": "Were unwittingly removing & re-adding Garmin sleep datapoints every time; made IFTTT \"Added Data\" Trigger go batshit. #bugfix HT Markos Giannopoulos",
"u": "https://twitter.com/beemuvi/status/695862707631689728",
"t": "2016-02-06 06:52:52 +0000",
"c": "Every time we checked for data",
}, /*************************************************************************/ {
"x": "If you edited your sleep start time in the Misfit app we'd treat it as a new datapoint & overcount your sleep! #bugfix HT Caitlin Patton",
"u": "https://twitter.com/beemuvi/status/695862896459276288",
"t": "2016-02-06 06:53:37 +0000",
"c": "Uniqifying based on start time not good",
}, /*************************************************************************/ {
"x": "Introduced a bug w/ zeno alerts: after sending the 1st one of the day were accidentally sending them every 5 minutes for some of you #bugfix",
"u": "https://twitter.com/beemuvi/status/696594684160790528",
"t": "2016-02-08 07:21:29 +0000",
}, /*************************************************************************/ {
"x": "We moved the settings for how often you get beemails from \"Reminders/Defaults\" to \"Personal Info\" (tweetstorm re: reminders settings soon!)",
"u": "https://twitter.com/beemuvi/status/697052026862116865",
"t": "2016-02-09 13:38:48 +0000",
}, /*************************************************************************/ {
"x": "Better composition of zeno alert. Gives number of days till deadline instead of day of week if >7days away, like in graph watermark. #mini",
"u": "https://twitter.com/beemuvi/status/697415236521820160",
"t": "2016-02-10 13:42:04 +0000",
"c": "This is in the alert_text function in the goal model",
}, /*************************************************************************/ {
"x": "Multiple improvements to the Beeminder Slack bot: choose for each goal whether the bot DMs you or posts to a channel or both.",
"u": "https://twitter.com/beemuvi/status/697672025071083520",
"t": "2016-02-11 06:42:27 +0000",
}, /*************************************************************************/ {
"x": "And a #bugfix with the Slack bot that made it (sometimes? briefly?) ignore those settings and DM you anyway.",
"u": ["https://twitter.com/beemuvi/status/697672251240415232",
"https://github.com/beeminder/beeminder/commit/2a154d523f2f22a7ccdaeffb2e1b20cd609220a3"],
"t": "2016-02-11 06:43:21 +0000",
}, /*************************************************************************/ {
"f": true,
"x": "Big change to reminder settings: no more inheriting from defaults; instead there's a button (in advanced settings) to reset to defaults",
"u": "https://twitter.com/beemuvi/status/698052277311963137",
"t": "2016-02-12 07:53:26 +0000",
}, /*************************************************************************/ {
"f": true,
"x": "Equally big change: choose any subset of ways to get reminded for each goal {email, sms, ios, android, slack DM, slack channel, webhook}",
"u": "https://twitter.com/beemuvi/status/698052335826644992",
"t": "2016-02-12 07:53:40 +0000",
}, /*************************************************************************/ {
"f": true,
"x": "Did we mention you can get reminded via webhook now! Also documented as part of the <a href=\"http://beeminder.com/api\">API</a>.",
"u": "https://twitter.com/beemuvi/status/698052390914666497",
"t": "2016-02-12 07:53:53 +0000",
}, /*************************************************************************/ {
"f": true,
"x": "Nice compact table of all reminder settings for all goals. Handy for setting up <a href=\"http://blog.beeminder.com/waterfalls\">waterfalls</a>.",
"u": "https://twitter.com/beemuvi/status/698052480421093376",
"t": "2016-02-12 07:54:15 +0000",
}, /*************************************************************************/ {
"x": "Various #bugfix's & tweaks along the way with all that, like breaking & fixing updating of defaults from iOS, making the table pretty, ...",
"u": "https://twitter.com/beemuvi/status/698052531868413952",
"t": "2016-02-12 07:54:27 +0000",
}, /*************************************************************************/ {
"x": "... changes to the CSS in settings, button copy (\"Save Goal Specific Settings\"), tooltips, better error-checking w/ webhooks. #mini ×6+",
"u": "https://twitter.com/beemuvi/status/698052615133728768",
"t": "2016-02-12 07:54:47 +0000",
}, /*************************************************************************/ {
"x": "And one more cheap one: We now ellipsify long goal slugs so they don't mess up the nice compact table of reminder settings. #mini",
"u": "https://twitter.com/beemuvi/status/698052679948304384",
"t": "2016-02-12 07:55:02 +0000",
}, /*************************************************************************/ {
"x": "One last small one that we just deployed: a horizontal line in the compact table of reminder settings demarcating the backburner goals",
"u": "https://twitter.com/beemuvi/status/698052819392147456",
"t": "2016-02-12 07:55:35 +0000",
"c": "Can't remember why I made a note about 'For Do Less goals this winds up using n * daily rate to proxy...'",
}, /*************************************************************************/ {
"f": true,
"x": "Our RescueTime integration is markedly slicker: no need to paste your API key to authorize Beeminder to access your RescueTime data",
"u": "https://twitter.com/beemuvi/status/701327811143815168",
"t": "2016-02-21 08:49:14 +0000",
}, /*************************************************************************/ {
"x": "Other improvements to RescueTime integration: check do-more by default (which fixed a related bug) & no week of safety buffer by default",
"u": "https://twitter.com/beemuvi/status/701327912436310016",
"t": "2016-02-21 08:49:39 +0000",
}, /*************************************************************************/ {
"x": "One more RescueTime #bugfix: the new hotness broke data fetching for newly created goals for a few days (emailed everyone affected)",
"u": "https://twitter.com/beemuvi/status/701328140400898048",
"t": "2016-02-21 08:50:33 +0000",
}, /*************************************************************************/ {
"x": "How long should something be broke before fixing counts as UVI? Staggering amount broken+fixed in last 24hours: IFTTT triggers, SMS bot, ...",
"u": "https://twitter.com/beemuvi/status/702413465168777217",
"t": "2016-02-24 08:43:14 +0000",
}, /*************************************************************************/ {
"x": "... html emails, many autodata integrations, clobbered settings, UI icons, google oauth, passwd resets. Upgrades are hard. Cc <a href=\"https://twitter.com/beemstat\">@beemstat</a>",
"u": "https://twitter.com/beemuvi/status/702413500082200576",
"t": "2016-02-24 08:43:23 +0000",
}, /*************************************************************************/ {
"x": "Changing rate units works again. And fixed last bug w/ IFTTT triggers. We think that's everything from the hairy server upgrade! #bugfix ×2",
"u": "https://twitter.com/beemuvi/status/702839636243009536",
"t": "2016-02-25 12:56:42 +0000",
}, /*************************************************************************/ {
"f": true,
"x": "Finally fixed pagination on the All Data page. Embarrassing how long that was all glitchy! #bugfix & finally a net UVI from the big upgrade",
"u": "https://twitter.com/beemuvi/status/702840285701623809",
"t": "2016-02-25 12:59:16 +0000",
}, /*************************************************************************/ {
"x": "Another thing we broke with the upgrade: Android app stopped automatically staying in sync with the website. Now fixed. #bugfix",
"u": "https://twitter.com/beemuvi/status/703886506033680384",
"t": "2016-02-28 10:16:35 +0000",
}, /*************************************************************************/ {
"x": "Hopefully last UVI for #bugfix's from the upgrade: dial-it-in position, checkmarks for data entered today, saving changes in reminders table",
"u": ["https://twitter.com/beemuvi/status/704226556357378048",
"https://github.com/beeminder/beeminder/commit/5861831958f0e88e880113f16938739af8ab68cd"],
"t": "2016-02-29 08:47:49 +0000",
"c": "Slightly different syntax for fields_for: fixes bug with fwomp page not saving individual goal changes - the goal name wasn't getting included in the fieldset. Fix dial-it-in position? Bugfix: checkmarks for 'data entered today' not showing up in the gallery (or persisting in the dashboard)",
}, /*************************************************************************/ ]
var batch2016mar = [
{
"x": "We rearranged goal settings a bit, moving things betw Basic & Advanced (was a while ago; we're improving @bmndr faster thn we cn twt abt it)",
"u": ["https://twitter.com/beemuvi/status/704616863175606272",
"http://forum.beeminder.com/t/on-privacy-vs-expectations/1900",
"https://github.com/beeminder/beeminder/compare/2a154d523f2f...0efccf656a85"],
"t": "2016-03-01 10:38:45 +0000",
"c": "And private back to Basics by popular demand"
}, /*************************************************************************/ {
"x": "Mini-UVIs: Typo fix (\"was as least one error\"), stick to \"reminders\" vs \"alerts\", \"team\" copy for Slack, tooltip misplaced HT <a href=\"https://twitter.com/chriswaterguy\">@chriswaterguy</a>",
"u": ["https://twitter.com/beemuvi/status/704978561942331394",
"http://forum.beeminder.com/t/confusing-pop-up-next-to-derail-time-setting/1905"],
"t": "2016-03-02 10:36:01 +0000",
"c": "HT @chriswaterguy #mini",
}, /*************************************************************************/ {
"f": true,
"x": "New dashboard! It's still in flux and not the default view yet but it's available at http://beeminder.com/dashboard (tweetstorm to follow!)",
"u": "https://twitter.com/beemuvi/status/705372862333394944",
"t": "2016-03-03 12:42:50 +0000",
}, /*************************************************************************/ {
"x": "Many improvements to the dashboard since it went live, like checkmarks for added data, which we'll pack into 8 UVI tweets tho really over 20",
"u": "https://twitter.com/beemuvi/status/705372940372566016",
"t": "2016-03-03 12:43:08 +0000",
}, /*************************************************************************/ {
"x": "Dashboard has itty-bitty thumbnail of graph, countdown format remembers your pref, integers like 1 not 1.0, safe days for do-less, …",
"u": "https://twitter.com/beemuvi/status/705373032559169536",
"t": "2016-03-03 12:43:30 +0000",
}, /*************************************************************************/ {
"x": "… widen the dashboard so it fits comments, myriad tweaks like right-aligning $-amounts & fixing padding, tab index #bugfix (twice), …",
"u": "https://twitter.com/beemuvi/status/705373096182575104",
"t": "2016-03-03 12:43:45 +0000",
}, /*************************************************************************/ {
"x": "… remove comment after submission, bugfix w/ no goals in gallery, last datapoint timestamp on hover over checkmark or lack thereof, …",
"u": "https://twitter.com/beemuvi/status/705373156266024960",
"t": "2016-03-03 12:44:00 +0000",
}, /*************************************************************************/ {
"x": "… submit button as tab index, put link to dashboard above Quick Add, last comment as placeholder text, #bugfix w/ \"fetch data\" button, …",
"u": "https://twitter.com/beemuvi/status/705373249312464896",
"t": "2016-03-03 12:44:22 +0000",
}, /*************************************************************************/ {
"x": "… #bugfix w/ showing the previous datapoint comment as placeholder text: now shows previous comment unless it's the \"initial datapoint\" one.",
"u": "https://twitter.com/beemuvi/status/705373323731972096",
"t": "2016-03-03 12:44:40 +0000",
}, /*************************************************************************/ {
"x": "And that's just the UVIs since we linked to it in the UI, not everything <a href=\"http://forum.beeminder.com/t/new-feature-dashboard-view/1904\">discussed in the forum</a> like sorting, ellipses, etc",
"u": "https://twitter.com/beemuvi/status/705373448038580224",
"t": "2016-03-03 12:45:09 +0000",
}, /*************************************************************************/ {
"x": "Android app was taking too long to notice when graph was done refreshing. (Long story with long queues.) Now much snappier! HT <a href=\"https://twitter.com/faireness\">@faireness</a>",
"u": "https://twitter.com/beemuvi/status/708203601751973888",
"t": "2016-03-11 08:11:11 +0000",
"c": "Run beedroid push inline if api && has_android",
}, /*************************************************************************/ {
"x": "#bugfix w/ RescueTime for about 4 days around Feb 25: new goals were created fine but weren't importing your RescueTime history like usual",
"u": ["https://twitter.com/beemuvi/status/708537898895671297",
"https://github.com/beeminder/beeminder/commit/c38c806ee62e073f226af7bcd3d311c5e7010329"],
"t": "2016-03-12 06:19:33 +0000",
"c": "inc syntax error in rescuetime importer",
}, /*************************************************************************/ {
"f": true,
"x": "The graph now shows <a href=\"http://forum.beeminder.com/t/restarting-odometer-to-non-zero-value/299/17\">odometer resets as black vertical dotted lines</a>",
"u": "https://twitter.com/beemuvi/status/708875369185587200",
"t": "2016-03-13 04:40:32 +0000",
}, /*************************************************************************/ {
"x": "SMS choice in reminder settings failing to stick; we broke http://beeminder.com/featured & /home/featured legacy alias. #bugfix ×2 HT @chipmanaged",
"u": "https://twitter.com/beemuvi/status/709270903738118144",
"t": "2016-03-14 06:52:15 +0000",
"c": "wantssms bug & /home/featured 500'd",
}, /*************************************************************************/ {
"x": "We also added \"Featured\" to the navbar (links at the top of every Beeminder page) & put \"feature me\" back in Basic Settings. HT @SayHiNeil",
"u": "https://twitter.com/beemuvi/status/709271244550463488",
"t": "2016-03-14 06:53:36 +0000",
}, /*************************************************************************/ {
"x": "Criteria for inclusion in http://beeminder.com/featured now: 28 most recently updated active undeadbeated goals (that opted in to being featured)",
"u": "https://twitter.com/beemuvi/status/710006615286611968",
"t": "2016-03-16 07:35:43 +0000",
}, /*************************************************************************/ {
"x": "Way faster load time for /featured. Ok that's kinda part of prev UVI so we'll add: fixed wrapping on beemail settings for non-premium people",
"u": "https://twitter.com/beemuvi/status/710006658076909568",
"t": "2016-03-16 07:35:53 +0000",
}, /*************************************************************************/ {
"x": "Yet another thing we broke in the big Mongoid upgrade: auto-detection of timezone for new users signing up. #bugfix",
"u": "https://twitter.com/beemuvi/status/710714796547571716",
"t": "2016-03-18 06:29:46 +0000",
}, /*************************************************************************/ {
"x": "Some people had so many odometer resets that all the dotted lines looked hideous. Now they're more subtle. #mini",
"u": "https://twitter.com/beemuvi/status/711075007460278277",
"t": "2016-03-19 06:21:07 +0000",
}, /*************************************************************************/ {
"x": "Bug with DB queries/indices/caching was making http://beeminder.com/dashboard unusably slow (yes, related to Mongoid upgrade again). #bugfix",
"u": "https://twitter.com/beemuvi/status/711468336085733376",
"t": "2016-03-20 08:24:04 +0000",
}, /*************************************************************************/ {
"x": "Stopped timing out when Garmin pushes a big chunk of data to us, which was causing big delays in Garmin graphs getting updated. #bugfix",
"u": "https://twitter.com/beemuvi/status/711792064774561792",
"t": "2016-03-21 05:50:27 +0000",
}, /*************************************************************************/ {
"x": "Rearranged navbar, changed \"sign in\" to \"log in\" everywhere (too easy to confuse \"sign in\"/\"sign up\"), updated/added hovertexts on links",
"u": "https://twitter.com/beemuvi/status/712172472041222144",
"t": "2016-03-22 07:02:03 +0000",
}, /*************************************************************************/ {
//"n": 1857,
"x": "Months ago we introduced a subtle bug in Take-A-Break that made it silently fail if you manually typed dates that weren't allowed. #bugfix",
"u": "https://twitter.com/beemuvi/status/712566098110111744",
"t": "2016-03-23 09:06:11 +0000",
}, /*************************************************************************/ {
//"n": 1858,
"x": "Beeminder used to hang for many seconds whenever we deployed code. Ponied up for Passenger Enterprise w/ rolling restarts so now it doesn't!",
"u": "https://twitter.com/beemuvi/status/712923216587722756",
"t": "2016-03-24 08:45:14 +0000",
}, /*************************************************************************/ {
//"n": 1859,
"f": true,
"x": "New goal creation wizard! So many improvements!",
"u": "https://twitter.com/beemuvi/status/713342557330100224",
"t": "2016-03-25 12:31:33 +0000",
}, /*************************************************************************/ {
"n": false,
"s": true,
"x": "(1) Starting at the beginning: the initial page is more compact, eg, Zapier on own page",
"u": "https://twitter.com/beemuvi/status/713342557330100224",
"t": "2016-03-25 12:31:33 +0000",
}, /*************************************************************************/ {
//"n": 1860,
"s": true,
"x": "(2) Better UI for picking goalname aka goal slug (deemphasizing goal title etc now since that's in flux)",
"u": "https://twitter.com/beemuvi/status/713343256021479424",
"t": "2016-03-25 12:34:20 +0000",
}, /*************************************************************************/ {
//"n": 1861,
"s": true,
"x": "(3) The UI for picking the rate to commit to now lets you choose daily/weekly/monthly without going to settings after the fact",
"u": "https://twitter.com/beemuvi/status/713343488163598336",
"t": "2016-03-25 12:35:15 +0000",
}, /*************************************************************************/ {
//"n": 1862,
"s": true,
"x": "(4) You can now choose both the initial pledge and the pledge cap as part of goal creation",
"u": "https://twitter.com/beemuvi/status/713343698486951936",
"t": "2016-03-25 12:36:05 +0000",
}, /*************************************************************************/ {
//"n": 1863,
"s": true,
"f": true,
"x": "(5) Instead of just choosing whether to have a week of initial flat spot, you can choose any number of days of safety buffer",
"u": "https://twitter.com/beemuvi/status/713343791999025155",
"t": "2016-03-25 12:36:27 +0000",
}, /*************************************************************************/ {
//"n": 1864,
"s": true,
"x": "(6) After the goal's created you land on a goal configuration screen w/ all the settings we think you should review for new goals",
"u": "https://twitter.com/beemuvi/status/713343880427536385",
"t": "2016-03-25 12:36:49 +0000",
}, /*************************************************************************/ {
//"n": 1865,
"s": true,
"f": true,
"x": "(7) Most exciting part: No longer any limit on how many goals can start at the $0 pledge level. Concept of \"freebees\" is obsolete!",
"u": "https://twitter.com/beemuvi/status/713344015656099840",
"t": "2016-03-25 12:37:21 +0000",
}, /*************************************************************************/ {
//"n": 1866,
"s": true,
"f": true,
"x": "(8) Instead, we now impose limit on how many goals you can create before required to add credit card (commitment-wall, not paywall)",
"u": "https://twitter.com/beemuvi/status/713344176574717952",
"t": "2016-03-25 12:37:59 +0000",
}, /*************************************************************************/ {
//"n": 1867,
"s": true,
"x": "(9) Edited http://beeminder.com/money and the glossary and old blog post about freebees and various places in the UI referring to freebees",
"u": "https://twitter.com/beemuvi/status/713344299656609793",
"t": "2016-03-25 12:38:28 +0000",
}, /*************************************************************************/ ]
var batch2016apr = [
{
//"n": 1868,
"x": "Fixed the blue-on-black text in the \"credible threat\" banner, removed horrendous text shadow for popups #mini ×2",
"u": "https://twitter.com/beemuvi/status/716514941449048064",
"t": "2016-04-03 06:37:28 +0000",
}, /*************************************************************************/ {
"x": "#bugfix w/ auto-adjusted copy in goal deletion dialog depending on if you already added credit card (used to be freebee-related)",
"u": "https://twitter.com/beemuvi/status/716859200136093696",
"t": "2016-04-04 05:25:26 +0000",
}, /*************************************************************************/ {
"x": "A bunch of tweaks, copyedits, and more detail on <a href=\"http://beeminder.com/zapier\">beeminder.com/zapier</a> (our Zapier landing page, aka zapminder.com)",
"u": "https://twitter.com/beemuvi/status/716859937712787456",
"t": "2016-04-04 05:28:22 +0000",
}, /*************************************************************************/ {
"x": "Added \"private goal\" & \"public data\" settings to goal creation wizard. Minimizing surprises about what's public by default!",
"u": "https://twitter.com/beemuvi/status/717661950864281600",
"t": "2016-04-06 10:35:17 +0000",
}, /*************************************************************************/ {
"x": "When you enable iOS notifications in the app we now (actually as of a few weeks ago) turn it on in the web interface too #savedyouaclick",
"u": "https://twitter.com/beemuvi/status/717996992060784640",
"t": "2016-04-07 08:46:37 +0000",
}, /*************************************************************************/ {
"f": true,
"x": "We made a much prettier landing page for our Fitbit integration, more like other more recent autodata integrations: http://beeminder.com/fitbit",
"u": "https://twitter.com/beemuvi/status/718421178617040896",
"t": "2016-04-08 12:52:11 +0000",
}, /*************************************************************************/ {
"f": true,
"x": "Not just aesthetic improvements to our Fitbit landing page: the goal creation UI is better, pre-fills sensible choices for goalname & rate",
"u": "https://twitter.com/beemuvi/status/718421340693340160",
"t": "2016-04-08 12:52:49 +0000",
}, /*************************************************************************/ {
"x": "Mongoid upgrade broke the \"re-scale your graph\" feature in kinda insidious way (now #bugfix'd & manually cleaned up data of those affected)",
"u": "https://twitter.com/beemuvi/status/719031779202469888",
"t": "2016-04-10 05:18:29 +0000",
}, /*************************************************************************/ {
"x": "From Feb 23 - Mar 30 we silently failed to save all attempts to weaselproof oneself! Serious #bugfix (so sorry; please check the box again!)",
"u": "https://twitter.com/beemuvi/status/719039708047613952",
"t": "2016-04-10 05:50:00 +0000",
"c": "We *may* painstakingly reconstruct from server logs; so far we've decided not to",
}, /*************************************************************************/ {
"f": true,
"x": "We finally got the stupid \"/goals/\" out of everyone's URLs which was making one of the cofounders twitch for the last 5 years",
"u": "https://twitter.com/beemuvi/status/719752138683846657",
"t": "2016-04-12 05:00:56 +0000",
"c": "It was dreev",
}, /*************************************************************************/ {
"x": "We now show an actual helpful error if you (accidentally?) revoke Beeminder's access to your RescueTime data. #bugfix",
"u": "https://twitter.com/beemuvi/status/720162933158711296",
"t": "2016-04-13 08:13:17 +0000",
}, /*************************************************************************/ {
"x": "Pretty delete button w/ feedback/confirmation popup works in Settings same as graph page now. Bonus UVI(s): fixing autodata goal creation.",
"u": "https://twitter.com/beemuvi/status/720495576740196353",
"t": "2016-04-14 06:15:06 +0000",
"c": "New goalwizard caused most autodata goal creation to fail! Fixed all but skritter/misfit/habitica on mar28, got those last 3 on apr8 #bugfix",
}, /*************************************************************************/ {
"x": "Several dashboard tweaks/fixes like bigger thumbnail of graph (on left now) and added link to dashboard in top navbar",
"u": "https://twitter.com/beemuvi/status/720910981535150081",
"t": "2016-04-15 09:45:46 +0000",
}, /*************************************************************************/ {
"x": "Nicer interaction w/ the \"Beeminder can't be a credible threat till you add a credit card\" banner, & only show it once email is confirmed",
"u": "https://twitter.com/beemuvi/status/721184907397976064",
"t": "2016-04-16 03:54:15 +0000",
}, /*************************************************************************/ {
"x": "We now include a list of Things You Should Know about beeminding on the empty dashboard/gallery page, similar to the commitwall webcopy",
"u": "https://twitter.com/beemuvi/status/721646223388639232",
"t": "2016-04-17 10:27:21 +0000",
"c": "See earlier UVIs about 'commit-wall': this version just puts up the commitwall when trying to create your nth goal, where we experimented with different n's."
}, /*************************************************************************/ {
"x": "Lots of changes to the popup that warns you that by adding a credit card you're on the hook for everything eg links to adjust existing goals",
"u": "https://twitter.com/beemuvi/status/721955743117631488",
"t": "2016-04-18 06:57:17 +0000",
}, /*************************************************************************/ {
//"n": 1884,
"x": "Updates to <a href=\"http://beeminder.com/faq\">beeminder.com/faq</a> (where to find example goals, point to Life category in forum, broken link to TagTime Minder)",
"u": "https://twitter.com/beemuvi/status/722305207820951553",
"t": "2016-04-19 06:05:55 +0000",
}, /*************************************************************************/ {
//"n": 1885,
"x": "Changed legit check email copy to point out you can drop the pledge, dial the road, or archive from the goal page (w/ another link to it)",
"u": "https://twitter.com/beemuvi/status/722717189036449792",
"t": "2016-04-20 09:22:59 +0000",
}, /*************************************************************************/ {
//"n": 1886,
"f": true,
"x": "Myriad tweaks/fixes/improvements to new goal creation",
"u": "https://twitter.com/beemuvi/status/723066230374952961",
"t": "2016-04-21 08:29:57 +0000",
}, /*************************************************************************/ {
"n": false,
"s": true,
"x": "(1) Not allowing zero rates (or negative for do-less), css tweaks, better hovertexts, ",
"u": "https://twitter.com/beemuvi/status/723066230374952961",
"t": "2016-04-21 08:29:57 +0000",
}, /*************************************************************************/ {
//"n": 1887,
"s": true,
"x": "(2) disallow initial pledge > pledge cap & inconsistent private/public combinations, #bugfix w/ updating the button text based on pledge, ",
"u": "https://twitter.com/beemuvi/status/723066277506375680",
"t": "2016-04-21 08:30:09 +0000",
}, /*************************************************************************/ {
//"n": 1888,
"s": true,
"x": "(3) actually saving your choice of rate units & some other fields (#bugfix), prompt for credit card when shortcircuiting from $0, ",
"u": "https://twitter.com/beemuvi/status/723066353783967745",
"t": "2016-04-21 08:30:27 +0000",
}, /*************************************************************************/ {
//"n": 1889,
"s": true,
"x": "(4) #bugfix w/ showing \"commit to\" vs \"limit\" label (HT Brent Yorgey), redirect to goal page after setup, nicer errors for bad goalnames, ",
"u": "https://twitter.com/beemuvi/status/723066448420044801",
"t": "2016-04-21 08:30:49 +0000",
}, /*************************************************************************/ {
//"n": 1890,
"s": true,
"x": "(5) replaced \"start now\" checkbox w/ just a field to fill in for how much initial safety buffer & #bugfix w/ specifying it for weightloss, ",
"u": "https://twitter.com/beemuvi/status/723066505991057408",
"t": "2016-04-21 08:31:03 +0000",
}, /*************************************************************************/ {
//"n": 1891,
"s": true,
"x": "(6) added link to go back & change goal type from 2nd screen of goal wizard, #bugfix w/ reusing goalnames of deleted goals",
"u": "https://twitter.com/beemuvi/status/723066567764807680",
"t": "2016-04-21 08:31:18 +0000",
}, /*************************************************************************/ {
//"n": 1892,
"s": true,
"x": "(7) That was at least 16 UVIs which we're counting as 6 (now 7). You're welcome. It's our penance for getting so far behind!",
"u": "https://twitter.com/beemuvi/status/723066664661581829",
"t": "2016-04-21 08:31:41 +0000",
}, /*************************************************************************/ {
//"n": 1893,
"x": "Slightly obscure #bugfix with Supporters: ugly error if the supporter tried to follow confirmation link for a goal that no longer existed",
"u": "https://twitter.com/beemuvi/status/723399141536108544",
"t": "2016-04-22 06:32:50 +0000",
"c": "Don't 500 in confmail if supporter isn't following anything",
}, /*************************************************************************/ {
//"n": 1894,
"x": "Slack's icon was missing if you added it on <a href=\"http://beeminder.com/services\">beeminder.com/services</a> #bugfix",
"u": "https://twitter.com/beemuvi/status/723399457224548353",
"t": "2016-04-22 06:34:05 +0000",
}, /*************************************************************************/ {
"x": "Fixed spurious warning on 1st press of \"fetch data\" in dashboard #bugfix <a href=\"http://forum.beeminder.com/t/dashboard/2075\">But another dashboard bug still at large</a>",
"u": "https://twitter.com/beemuvi/status/723744570438098944",
"t": "2016-04-23 05:25:26 +0000",
}, /*************************************************************************/ {
"x": "Added a delete button for apps you create at <a href=\"http://beeminder.com/apps\">beeminder.com/apps</a> (HT Uluc Saranli) But still haven't gotten to <a href=\"http://doc.beeminder.com/byebyebee\">doc.beeminder.com/byebyebee</a>",
"u": "https://twitter.com/beemuvi/status/723744750998687750",
"t": "2016-04-23 05:26:09 +0000",
}, /*************************************************************************/ {
"x": "Additional #bugfix's related to cleaning up the /goals/ in old URLs, like thumbnail of graphs pointing to wrong version of the image",
"u": "https://twitter.com/beemuvi/status/723745060626403328",
"t": "2016-04-23 05:27:23 +0000",
}, /*************************************************************************/ {
"x": "There was an obscure Gmail error (\"delgation denied\") that we silently failed on with GmailZero. Now we actually tell you about it. #bugfix",
"u": "https://twitter.com/beemuvi/status/724463232509841408",
"t": "2016-04-25 05:01:09 +0000",
}, /*************************************************************************/ {
"x": "Embarrassing: We learned that signing up with Twitter had been broken since like February. Finally fixed as of a week or so ago! #bugfix",
"u": "https://twitter.com/beemuvi/status/724464095135571968",
"t": "2016-04-25 05:04:34 +0000",
"c": "Omniauth twitter fix: save service info; had to do with twitter not passing us an email address",
}, /*************************************************************************/ {
"x": "Curly (non-ascii) quotes no longer break the SMS bot! #bugfix HT <a href=\"https://twitter.com/chipmanaged\">@chipmanaged</a>",
"u": "https://twitter.com/beemuvi/status/724464529132806145",
"t": "2016-04-25 05:06:18 +0000",
}, /*************************************************************************/ {
"x": "Initial safety buffer setting now more... true (and we say \"days until derailing\" not \"days of safety buffer\" to reduce the ambiguity)",
"u": "https://twitter.com/beemuvi/status/724524155966627840",
"t": "2016-04-25 09:03:14 +0000",
}, /*************************************************************************/ {
//"n": 1902,
"f": true,
"x": "New feature! If you weaselproof a goal you can no longer delete it in the first week! HT <a href=\"http://twitter.com/chipmanaged\">@chipmanaged</a> (again)",
"u": "https://twitter.com/beemuvi/status/725607127423709184",
"t": "2016-04-28 08:46:34 +0000",
}, /*************************************************************************/ {
//"n": 1903,
"x": "Fixed 2 grievous bugs w/ our IFTTT triggers",
"u": "https://twitter.com/beemuvi/status/725607220142960640",
"t": "2016-04-28 08:46:57 +0000",
}, /*************************************************************************/ {
"n": false,
"s": true,
"x": "(1) \"datapoint added\" Triggers now always trigger exactly once per recipe, ... #bugfix",
"u": "https://twitter.com/beemuvi/status/725607220142960640",
"t": "2016-04-28 08:46:57 +0000",
}, /*************************************************************************/ {
//"n": 1904,
"s": true,
"x": "(2) Trigger for \"datapoint added\" could cause false derails if you were down to the wire. #bugfix",
"u": "https://twitter.com/beemuvi/status/725607342331428864",
"t": "2016-04-28 08:47:26 +0000",
}, /*************************************************************************/ {
//"n": 1905,
"x": "From apr 4 to apr 14 you couldn't authorize 3rd parties to access your data on Beeminder (broke IFTTT/Zapier/beemind.me/etc). Big #bugfix",
"u": "https://twitter.com/beemuvi/status/725607479350960128",
"t": "2016-04-28 08:47:58 +0000",
"c": "Bugfixes in oauth2-provider gem",
}, /*************************************************************************/ {
//"n": 1906,
"x": "Mini #bugfix ×3: UVIs since you last beeminded & other things using lastactive date broke, datapoints temporarily sorting wrong in Beedroid",
"u": "https://twitter.com/beemuvi/status/725607617557491712",
"t": "2016-04-28 08:48:31 +0000",
}, /*************************************************************************/ {
"x": "If you retroratcheted the same day you derailed on a do-more goal we were frequently giving an ugly error. #bugfix",
"u": "https://twitter.com/beemuvi/status/725607694548103168",
"t": "2016-04-28 08:48:50 +0000",
}, /*************************************************************************/ {
"x": "Newly created Withings goals were failing to fetch data for about 10 days after our big Mongoid upgrade. #bugfix (& fixed up those affected)",
"u": "https://twitter.com/beemuvi/status/725949470437863428",
"t": "2016-04-29 07:26:55 +0000",
}, /*************************************************************************/ {
//"n": 1909,
"x": "And an unrelated Withings #bugfix: deadline-related bug meant autofetch could occasionally miss datapoints if you had nightowl deadline",
"u": "https://twitter.com/beemuvi/status/725949526071205888",
"t": "2016-04-29 07:27:09 +0000",
}, /*************************************************************************/ {
//"n": 1910,
"x": "Small improvement to RescueTime goals (fixed coordinates of start of road) so you can't insta-derail yourself when you edit past data, etc",
"u": "https://twitter.com/beemuvi/status/725949636049952768",
"t": "2016-04-29 07:27:35 +0000",
}, /*************************************************************************/ {
//"n": 1911,
"x": "Beedroid (Beeminder Android app) Ver 2.6!",
"u": "https://twitter.com/beemuvi/status/725949711081861122",
"t": "2016-04-29 07:27:53 +0000",
}, /*************************************************************************/ {
"n": false,
"f": true,
"s": true,
"x": "(1) Sign up in the app! Sort of create goals (via website but don't need to sign in separately)!",
"u": "https://twitter.com/beemuvi/status/725949711081861122",
"t": "2016-04-29 07:27:53 +0000",
}, /*************************************************************************/ {
//"n": 1912,
"s": true,
"f": true,
"x": "(2) Edit goal settings (same deal)! Swipe down to refresh! Actually get notifications for backburner goals. And a bunch of other #bugfix's:",
"u": "https://twitter.com/beemuvi/status/725949781806206977",
"t": "2016-04-29 07:28:10 +0000",
}, /*************************************************************************/ {
//"n": 1913,
"s": true,
"x": "(3) Fixing bad error messages on login/signup failure, proper handling of deleted goals or changed goalnames, handle +'s in email addresses",
"u": "https://twitter.com/beemuvi/status/725949885556510720",
"t": "2016-04-29 07:28:34 +0000",
}, /*************************************************************************/ {
//"n": 1914,
"x": "Minis: RescueTime icon didn't have \"RescueTime\" next to it, broke & then fixed unsubscribe links (!), made unsub links not expire.",
"u": "https://twitter.com/beemuvi/status/725950005094191105",
"t": "2016-04-29 07:29:03 +0000",
}, /*************************************************************************/ {
//"n": 1915,
"x": "What we used to call \"slug\" is now universally called \"goalname\" (no space, like \"username\")",
"u": "https://twitter.com/beemuvi/status/725950054188503041",
"t": "2016-04-29 07:29:15 +0000",
}, /*************************************************************************/ {
"x": "If you clicked an unsubscribe link when logged in as another user then we gave an opaque error instead of telling you what was what. #bugfix",
"u": "https://twitter.com/beemuvi/status/726176776666247168",
"t": "2016-04-29 22:30:09 +0000",
}, /*************************************************************************/ ]
var batch2016may = [
{
//"n": 1917,
"f": true,
"x": "(+) iOS app version 4.3!",
"u": "https://twitter.com/beemuvi/status/733084981812158464",
"t": "2016-05-19 00:00:54 +0000",
"c": "Tweeted this a couple weeks late",
}, /*************************************************************************/ {
"n": false,
"s": true,
"x": "(1) No longer crashes when you log in w/ Facebook or hangs when you log in with Google #bugfix",
"u": "https://twitter.com/beemuvi/status/733084981812158464",
"t": "2016-05-19 00:00:54 +0000",
"c": "Tweeted this a couple weeks late",
}, /*************************************************************************/ {
//"n": 1918,
"s": true,
"x": "(2) And we no longer crash if adding a datapoint times out or otherwise returns an error #bugfix",
"u": "https://twitter.com/beemuvi/status/733085064947499008",
"t": "2016-05-19 00:01:14 +0000",
}, /*************************************************************************/ {
//"n": 1919,
"s": true,
"x": "(3) Finally, you can now pull to refresh your goal gallery even if you have a small number of goals #mini",
"u": "https://twitter.com/beemuvi/status/733085133817978885",
"t": "2016-05-19 00:01:30 +0000",
}, /*************************************************************************/ {
//"n": 1920,
"x": "Mini UVIs: Added Duolingo Russian phrase, better URLs for some settings like /reminders/username, alphabetized autodata icons in goal wizard",
"u": "https://twitter.com/beemuvi/status/733953053569650688",
"t": "2016-05-21 09:30:18 +0000",
}, /*************************************************************************/ {
"x": "Moved deadline setting (needs to always be near zeno start time), fixed Fitbit push notifications (should be faster again) #mini ×2",
"u": "https://twitter.com/beemuvi/status/734274358227566593",
"t": "2016-05-22 06:47:03 +0000",
}, /*************************************************************************/ {
"x": "CSV/TSV export now has iso8601 dates (both humans & machines rejoice!) and additional columns: daystamp, createdat, deadline",
"u": "https://twitter.com/beemuvi/status/735022724901281792",
"t": "2016-05-24 08:20:48 +0000",
}, /*************************************************************************/ {
"x": "And added a header row to the CSV/TSV to name the columns, and now we name the file with the user/goalname instead of just \"datapoints.csv\"",
"u": "https://twitter.com/beemuvi/status/735022938462687232",
"t": "2016-05-24 08:21:39 +0000",
}, /*************************************************************************/ {
"x": "When you add a datapoint with a comment to the dashboard, we immediately replace the placeholder text in the comment box. #mini #oldie",
"u": "https://twitter.com/beemuvi/status/735330340861054976",
"t": "2016-05-25 04:43:09 +0000",
}, /*************************************************************************/ {
"x": "In goal creation, require & actually use given current value for odometer goals (we were initially ignoring it altogether! #bugfix) #mini",
"u": "https://twitter.com/beemuvi/status/735712629767864320",
"t": "2016-05-26 06:02:14 +0000",
}, /*************************************************************************/ {
"x": "Fixed an ugly error on the dashboard that you'd see if one of your goals had no datapoints #mini #bugfix",
"u": "https://twitter.com/beemuvi/status/736237547894931461",
"t": "2016-05-27 16:48:04 +0000",
}, /*************************************************************************/ ]
var batch2016jun = [
{
"x": "Better URLs for goal settings tabs: /settings, /reminders, /supporters, /terrifying, /datapoints",
"u": "https://twitter.com/beemuvi/status/737897923376218112",
"t": "2016-06-01 06:45:49 +0000",
}, /*************************************************************************/ {
"x": "Added a notice to http://beeminder.com/sleep about how you need the SleepCloud Backup add-on for Sleep As Android for like $1/year",
"u": "https://twitter.com/beemuvi/status/738276717383417856",
"t": "2016-06-02 07:51:00 +0000",
}, /*************************************************************************/ {
"x": "If your data's public then the public should see All Data link but not settings etc tabs (even though they, correctly, didn't work) #bugfix",
"u": "https://twitter.com/beemuvi/status/738644104117030912",
"t": "2016-06-03 08:10:52 +0000",
}, /*************************************************************************/ {
"x": "Standardized across all integrations the error message for when we can't fetch autodata, with link to go reauthorize us. #mini",
"u": "https://twitter.com/beemuvi/status/738988653934829569",
"t": "2016-06-04 06:59:59 +0000",
}, /*************************************************************************/ {
"f": true,
"x": "We made our Complice integration official, with fancy landing page and everything! http://beeminder.com/complice",
"u": "https://twitter.com/beemuvi/status/738988975247884288",
"t": "2016-06-04 07:01:16 +0000",
}, /*************************************************************************/ {
"x": "Goals would go missing from the dashboard as soon as they hit the deadline and until the derailment was processed. #bugfix",
"u": "https://twitter.com/beemuvi/status/738989442627559424",
"t": "2016-06-04 07:03:07 +0000",
}, /*************************************************************************/ {
"x": "Beedroid #bugfix: sign-up in app acted like it failed despite succeeding (& then you had no way to log in to it, it was a mess, albeit rare)",
"u": "https://twitter.com/beemuvi/status/740011673776312320",
"t": "2016-06-07 02:45:06 +0000",
}, /*************************************************************************/ {
"x": "We were giving a spurious error when you first signed up or logged in (related to authenticity tokens). #bugfix #oldie",
"u": "https://twitter.com/beemuvi/status/740440414524702720",
"t": "2016-06-08 07:08:46 +0000",
"c": "devise bug, don't try to verify authenticity tokens in sign in and sign up, because there is no session expected to verify",
}, /*************************************************************************/ {
"x": "RescueTime goal creation is now consistent with normal goal creation in making you enter a credit card after N goals created. #bugfix",
"u": "https://twitter.com/beemuvi/status/740784512859275264",
"t": "2016-06-09 05:56:05 +0000",
}, /*************************************************************************/ {
"x": "RunKeeper #bugfix: we were rejecting activities w/out a distance even for time/calories/etc where it doesn't make sense to enforce that.",
"u": "https://twitter.com/beemuvi/status/740785073474146304",
"t": "2016-06-09 05:58:19 +0000",
}, /*************************************************************************/ {
"x": "Barely user-visible but giving bad query params for pagination on All Data could cause 500 errors and now just nicely 404s. #mini #bugfix",
"u": "https://twitter.com/beemuvi/status/741504735111352320",
"t": "2016-06-11 05:37:59 +0000",
}, /*************************************************************************/ {
"x": "Fixed (at least improved a lot?) the problem that was making people have to keep logging in again #bugfix (let us know if you see it still!)",
"u": "https://twitter.com/beemuvi/status/741871656017088512",
"t": "2016-06-12 05:56:00 +0000",
}, /*************************************************************************/ {
"f": true,
"x": "New premium feature: Weekends Off! http://blog.beeminder.com/weekends",
"u": "https://twitter.com/beemuvi/status/742268187631181825",
"t": "2016-06-13 08:11:41 +0000",
}, /*************************************************************************/ {
"x": "Weekends-off is now maximally lenient: you can decide at the last second to take the weekend off. (We'll monitor for abuse of this!)",
"u": "https://twitter.com/beemuvi/status/742268265066438656",
"t": "2016-06-13 08:11:59 +0000",
}, /*************************************************************************/ {
"x": "Beebot (our Slack bot) no longer crashes when you add an emoji reaction to a message. #bugfix",
"u": "https://twitter.com/beemuvi/status/743000747940384768",
"t": "2016-06-15 08:42:37 +0000",
}, /*************************************************************************/ {
"x": "More on our Slack bot: Can now send messages to beebot (eg \"list\" or a goalname) and it lists your most urgent goals or adds datapoints",
"u": "https://twitter.com/beemuvi/status/743355206348378112",
"t": "2016-06-16 08:11:06 +0000",
}, /*************************************************************************/ {
"x": "Fancy Slack bot landing page with documentation now at https://www.beeminder.com/addtoslack aka slackminder.com",
"u": "https://twitter.com/beemuvi/status/743704033517461504",
"t": "2016-06-17 07:17:13 +0000",
}, /*************************************************************************/ {
"x": "Fixed things like our Slack bot not being able to auth to multiple teams. <a href=\"http://forum.beeminder.com/t/beebot-beeminder-slack-bot-update/2152\">forum post</a> #bugfix",
"u": "https://twitter.com/beemuvi/status/744067705637081089",
"t": "2016-06-18 07:22:19 +0000",
}, /*************************************************************************/ {
"f": true,
"x": "Slackminder now includes a /charge command. You can say \"charge me $X in N minutes unless I ___\". See also http://blog.beeminder.com/mustdo",
"u": "https://twitter.com/beemuvi/status/744403118431961095",
"t": "2016-06-19 05:35:08 +0000",
}, /*************************************************************************/ {
"f": true,
"x": "<a href=\"http://slackminder.com\">Slackminder</a> has goodies built in like dice rolls and sealed bid auctions cuz <a href=\"https://twitter.com/dreev\">@dreev</a> & <a href=\"https://twitter.com/thatgirl\">@thatgirl</a> & <a href=\"https://twitter.com/andrewpbrett\">@andrewpbrett</a> are huge nerds",
"u": "https://twitter.com/beemuvi/status/744756211271139329",
"t": "2016-06-20 04:58:12 +0000",
}, /*************************************************************************/ {
"f": true,
"x": "Slackminder has a built-in pomodoro timer that can automatically send data to Beeminder via a /tock command! See http://blog.beeminder.com/tocks",
"u": "https://twitter.com/beemuvi/status/745153961196322817",
"t": "2016-06-21 07:18:43 +0000",
}, /*************************************************************************/ {
"f": true,
"x": "Slackminder open source! With that we'll stop counting UVIs to Slack bot even tho there're lots more we could list! http://github.com/beeminder/beebot",
"u": "https://twitter.com/beemuvi/status/745527323340898304",
"t": "2016-06-22 08:02:19 +0000",
}, /*************************************************************************/ {
"x": "Minis: placeholder text for slack channel zenos, #bugfix w/ RescueTime redirect after goal creation, always show hovertext for services",
"u": "https://twitter.com/beemuvi/status/745899601102839808",
"t": "2016-06-23 08:41:37 +0000",
}, /*************************************************************************/ {
"x": "We now always consistently use the units chosen in RunKeeper goal creation no matter what units you say in RunKeeper #bugfix HT <a href=\"https://twitter.com/chipmanaged\">@chipmanaged</a>",
"u": "https://twitter.com/beemuvi/status/746229653354876929",
"t": "2016-06-24 06:33:08 +0000",
}, /*************************************************************************/ {
"x": "Redirected an ancient Withings FAQ page to our Withings integration landing page. http://beeminder.com/withings #mini",
"u": "https://twitter.com/beemuvi/status/746587453834698753",
"t": "2016-06-25 06:14:54 +0000",
}, /*************************************************************************/ {
"x": "Importing of existing data for new RescueTime/Draft/Withings/GmailZero/GitHub/Jawbone/Epson/Misfit goals was broken for 2 months (!) #bugfix",
"u": "https://twitter.com/beemuvi/status/746945863478476801",
"t": "2016-06-26 05:59:06 +0000",
}, /*************************************************************************/ {
"x": "Tweaked weaselproof-me wording, and bugfixes w/ weekends-off (like so it actually works; fixed manually for everyone affected)",
"u": "https://twitter.com/beemuvi/status/747300666339581956",
"t": "2016-06-27 05:28:57 +0000",
}, /*************************************************************************/ {
"x": "More Rails modernization: asset pipeline theoretically speeds things up. Not sure it has but also involved breaking & fixing many URLs.",
"u": "https://twitter.com/beemuvi/status/747673796023320576",
"t": "2016-06-28 06:11:38 +0000",
}, /*************************************************************************/ {
"x": "Made Misfit integration use standard statute of limitations on syncing data (1 week). Fixed bug for people who didn't sync for >30 days.",
"u": "https://twitter.com/beemuvi/status/748088909431775232",
"t": "2016-06-29 09:41:09 +0000",
}, /*************************************************************************/ {
"x": "Another rare RescueTime bug left over from the switch to auth'ing w/out pasting API key, led to failing to fetch data on new goals. #bugfix",
"u": "https://twitter.com/beemuvi/status/748447992622026752",
"t": "2016-06-30 09:28:01 +0000",
}, /*************************************************************************/ ]
var batch2016jul = [
{
"x": "The countdown timers for archiving & pledge stepdowns would sometimes fail to start if the page wasn't fully loaded. #bugfix",
"u": "https://twitter.com/beemuvi/status/748802557040955392",
"t": "2016-07-01 08:56:56 +0000",
}, /*************************************************************************/ {
"x": "One of the many bugs fixed as part of asset pipeline but we'll count it as one more UVI since it has a <a href=\"http://forum.beeminder.com/t/countdown-in-embedded-goals-is-broken/2261\">forum thread</a>",
"u": "https://twitter.com/beemuvi/status/749134257637855232",
"t": "2016-07-02 06:54:59 +0000",
}, /*************************************************************************/ {
"x": "Improved/fixed algorithm that decides when the bee buzzes while importing, preparing your graph (was super busted for new goals for awhile)",
"u": "https://twitter.com/beemuvi/status/749487179789791232",
"t": "2016-07-03 06:17:23 +0000",
"c": "Bee did something to improve things, but also broke things so for a long time newly created goals would end up perma-opaque",
}, /*************************************************************************/ {
"x": "Made legacy redirects for images so we don't break hotlinks out there, unbroke the images of our pretty faces in <a href=\"http://beeminder.com/aboutus\">beeminder.com/aboutus</a>",
"u": "https://twitter.com/beemuvi/status/749877893451309056",
"t": "2016-07-04 08:09:56 +0000",
}, /*************************************************************************/ {
"f": true,
"x": "Road Editor! Enabled for Plan Bee and above as of June 17. <a href=\"http://blog.beeminder.com/road/\">blog.beeminder.com/road</a>",
"u": "https://twitter.com/beemuvi/status/750231892742463488",
"d": "2016-06-17",
"t": "2016-07-05 07:36:36 +0000",
}, /*************************************************************************/ {
"x": "We no longer ignore the last row (the one equivalent to the traditional road dial) in the road editor. #bugfix",
"u": "https://twitter.com/beemuvi/status/750618778317230080",
"t": "2016-07-06 09:13:57 +0000",
}, /*************************************************************************/ {
"x": "Related/similar #bugfix: The last row of the road editor now lets you specify any 2-of-3 of goal-value-rate (other rows ought to but don't)",
"u": "https://twitter.com/beemuvi/status/750618927110168576",
"t": "2016-07-06 09:14:32 +0000",
}, /*************************************************************************/ {
"x": "If you break your road with the road editor we add a button above it to restore it to its last unbroken state.",
"u": "https://twitter.com/beemuvi/status/751033495930089472",
"t": "2016-07-07 12:41:53 +0000",
}, /*************************************************************************/ {
"x": "Last UVI related to asset pipeline: tooltips were broken for a while #bugfix -- And improved the error messages in the road editor #mini",
"u": "https://twitter.com/beemuvi/status/751033630940499972",
"t": "2016-07-07 12:42:25 +0000",
}, /*************************************************************************/ {
"x": "Race condition (either related to multiple Fitbit goals or push notifications + polling) made us lose your Fitbit auth sometimes. #bugfix",
"u": "https://twitter.com/beemuvi/status/751554960169414656",
"t": "2016-07-08 23:14:00 +0000",
}, /*************************************************************************/ {
"x": "It's embarrassing how many things like this we've missed: we caught another previously uncaught RescueTime error (401) & alert the user now",
"u": "https://twitter.com/beemuvi/status/751555035851464706",
"t": "2016-07-08 23:14:18 +0000",
}, /*************************************************************************/ {
"x": "We now include the \"Things You Must Know\" copy from <a href=\"http://blog.beeminder.com/creditcard\">blog.beeminder.com/creditcard</a> in the email we send out for each new goal you create",
"u": ["https://twitter.com/beemuvi/status/752761131702247424",
"https://github.com/beeminder/beeminder/commit/f288fe006829776f1f4e57583afbf08487cf6bb1"],
"t": "2016-07-12 07:06:54 +0000",
}, /*************************************************************************/ {
"x": "In the \"Charge me\" action in our IFTTT channel, we failed to strip whitespace from the charge amount & would wrongly complain \"NaN\". #bugfix",
"u": "https://twitter.com/beemuvi/status/753184014966493184",
"t": "2016-07-13 11:07:17 +0000",
}, /*************************************************************************/ {
"x": "Another #bugfix: when emailing you about errors like that we now show you the actual values from IFTTT, not failed attempts to parse them",
"u": "https://twitter.com/beemuvi/status/753184118016311296",
"t": "2016-07-13 11:07:41 +0000",
}, /*************************************************************************/ {
"x": "If you downgrade from premium and no longer have the SMS perk we fall back to email (and we fixed related copy in the UI)",
"u": "https://twitter.com/beemuvi/status/753861406278062081",
"t": "2016-07-15 07:58:59 +0000",
}, /*************************************************************************/ {
"x": "Got rid of an old banner wrongly telling weaselproofed people who were archiving a goal in the first week that they could instead delete it",
"u": "https://twitter.com/beemuvi/status/754056147280113664",
"t": "2016-07-15 20:52:49 +0000",
}, /*************************************************************************/ {
"x": "Improved our Fitbit integration landing page: cute contract image, and got \"fitbitminder.com\" domain",
"u": "https://twitter.com/beemuvi/status/754062121189666821",
"t": "2016-07-15 21:16:34 +0000",
}, /*************************************************************************/ {