I understand that this is on the roadmap for implementation, but I need a script that I can run on selected goals so I don’t have to do this by hand. I need my beeminding to be as automatic as possible and this really gets in the way. Does anyone already do this? How do you do it?
I’m working on such a thing right now, but I’m having a lot of headaches interacting with the API. I have a email thread open with the support folks.
I’m working on something too. I hope to have something soon, but work has interfered with my being able to throw my time into this. Meanwhile, are you using the take-a-break feature?
Huge thanks to @drtall and @mary. And in the meantime, I’ll repeat my take from the Uservoice discussion:
I personally like the approach of making sure I get into the green by Friday so I can do nothing Saturday and Sunday. That’s like a commitment device within a commitment device, since if I don’t make it into the green then I’ll have to put in some weekend hours.
For those who don’t know, the lanes of the road and the colors are set up like so:
If you make it to the good side of the road (green) on Friday and then do nothing you’ll be in the right lane (blue) on Saturday, the wrong lane (orange) on Sunday, and it will be an emergency day (red) on Monday, meaning you have till the end of Monday to get back on the yellow brick road before you derail.
Sorry, but I think this is pretty bogus. I think the strategy of “plan ahead for the weekend” boils down to “don’t be akratic” which is the reason I use Beeminder at all.
If I wanted to be dramatic about it, I would say that Beeminder is lying to me whenever it says I have 2 safe days but in reality it’s an eep day. Of course, Beeminder doesn’t know, but that’s the feature request
+1
This is why being green on Friday is not a good solution to weekends off.
Putting aside the eep Monday issue, let’s figure out ways to make this work now.
I looked through the API a bit and I can see nothing about how to schedule a weekend/holiday off. Some guidance?
You need to use the ‘roadall’ parameter of a goal to insert flat weekends into your yellow brick road.
@insti Awesome. But unfortunately, that doesn’t clear things up for me. Is there an example of someone using roadall to schedule a holiday?
Not that I could find. If I had such an example I’d basically be done with the script I’m writing.
This post by @dreev seems to imply that this should be possible through the API. But is it not, or is there just no example to work off?
The API definitely supports it. The problems I am having are around getting the timestamps exactly correct. When I’m looking at things on the UI, it looks like the YBR is adjusted on a daily basis (take a break specifies date ranges), etc. but it actually uses full timestamps and I keep seeing weird rounding errors. It wouldn’t be a huge deal but the API rejects anything which would make the YBR easier before the akrasia horizon, so I either need to 1) fudge it by having the tool always make your YBR a bit harder or 2) buckle down and actually figure this thing out. I’ve been pursuing #2.
I’m pretty close to having it done too. I just need some time to write the code. I have the design all laid out, but I just haven’t had the time to translate it to PHP. Soon.
So exciting that people are working on this, and so sorry about the frustrations with the API. @bee and I haven’t had a chance to dive into this yet but we really, really want this to be easy. So please keep yelling at us about, for example, time zone issues that are making this harder than it should be. I have two vague ideas in mind to help with this: 1. share the translation code we use internally to deal with the time zone messes we made; 2. overload everything that uses timestamps to also accept daystamps [placeholder to explain what I mean by that].
This note is probably only adding confusion but I mainly wanted to convey that we’re grateful for all of you hacking on this and will help.
Hmm… I’m wondering if, in order to make this work, the retroratchet feature (for the do-more goals, anyway) will need to make the road come up to meet the datapoint, rather than moving left. Otherwise, if you want to tighten your road or use safe days, your days will be all out of whack and your weekends, days off, and vacations will be irrelevant. (I think do-less already does it this way, by bringing the road down to meet you, right?)
So I’m not a programmer, but I use shell scripts occasionally to do things. Is there an example of of how roadall is supposed to work?
This is how I currently post to beeminder using a shellscript:
curl -i -X POST “https://www.beeminder.com/api/v1/users/bigmusic/goals/$GOAL/datapoints.json?auth_token=$KEY×tamp=$TSTAMP&value=$upload&comment=$COMMENT”
How would roadall be formated for something like that?
Unfortunately at the moment it requires some programming to get it to work properly.
Just wait a week or two and someone will have a working version you can copy and use.
In the meantime you can use the ‘take a break’ feature on each goal on the beeminder website to manually set your road to 0 on weekends.
Hi again,
So, I’ve finally put together my little script that allows me to schedule weekly days off.
You can find it here: https://github.com/chipmanaged/MCM-Dashboard
It’s the file called dayoffscheduler.php
In order to work, it needs, as a minimum, the settings-userinfo.php file with your info in it (placed in the same directory), and a copy of the PHP API library.
I’m going to say more about this elsewhere so, for now, I’ll just point out that you need to type in your goal slug (in lowercase), select the day of the week to which to apply the different rate, enter the rate, and hit “Enter!” (Repeat as necessary; e.g. for Saturday and then Sunday.)
It’s neither perfect nor done, but it’s a start! I hope it proves useful to others.