mutdmour's Beeminder Journal

Hello everyone. I just want to introduce myself :blush: and start a life thread that I can hopefully update every week or so. I have been a Beeminder user for more than a year now. I am a software engineer by trade, so heads up: some over-engineering ahead.

I have used Beeminder to achieve a number of things:

1. Lose a bunch of weight going from 98kgs down to 89kgs. And most importantly, maintain that weight for a few months.

I am great at losing weight. I have lost weight multiple times before but maintenance has always been difficult. Itā€™s been difficult to get started because of this fear that itā€™s pointless to even try. I even hired a nutrition coach for 3 months hoping to encourage me with weekly calls, goals and plans. I learned a few things, but still ended up gaining some weight at the end of that.

To lose weight this time, I used a combination of habit-based goals. I tried and did not like weight goals. The habits I beeminded to lose weight included: working out a few times a week (Crossfit), not eating crappy food, no calories after 4 pm and a goal to limit how many times I order out food. I also used a meals service to send me a healthy lunch at work. I tracked weight weekly outside of Beeminder, as well as waist, chest and hips circumferences.

To maintain weight, I only beeminded one goal to not eat crappy food. That was basically two long lists of can and cannot eat. Foods that I enjoyed but did not eat regularly. I would allow, like lasagna. If I began to abuse it, then it would go on the cannot list, like fried chicken. If I forgot to include something that I really should not have, I would enjoy it then add it to the list. I gained back about 4kgs in 4 or 5 months.


I would expect some weight gain after stopping dieting anyways. From the graphs you can tell I still donā€™t have maintenance completely figure out.

With the COVID-19 lockdown, I decided this was an opportunity to start dieting again. This time I have a daily goal to do lazy keto, another goal not to eat calories after 4 pm, so far losing 1kg/week.

2. Train at Crossfit.
I started Crossfit before Beeminder. It had all the right elements that I needed to keep going, especially coaching and classes. Beeminder helped me maintain and escalate how many times I went to class per week. I even started going in the morning for a while to make it easier to diet. I trained for more than a year until I hurt my wrist.

Crossfit in a lot of waits was my cornerstone habit. If I am going to class regularly, I am less likely to eat crap, not smoke, more likely to sleep early, and lose weight which kept me motivated.

Though I have struggled to get back to working out since then, and derailed a few times when I tried to use Beeminder to try to force myself without a plan that accounts for my hand and a good alternative (something that I enjoy and can easily do).

3. Quit smoking.
I quit mostly because I could not do Crossfit and continue to smoke. But whenever I dropped off, like when traveling, I would go back. I used a daily no-smoking goal to hold myself not to smoke. Over the past few months, with no Crossfit, I have mostly avoided it, even when encouraged by others or under lockdown with nothing to do.

This has been the greatest benefit of using beeminder. I donā€™t spiral out anymore. I used to have periods when I am motivated and I am doing things. But one key thing (a corner stone habit like Crossfit) would end and then I would gain back all my negative habits, quickly spiraling into a depression. Beeminder helped me keep an even-keeled approach to most things. I would build it into the goal itself, allowing for failure 1 out of 7 days.

4. Start brushing teeth at night.
This is a habit I have attempted multiple times before Beeminder but was difficult to continue. With Beeminder, it was easy to pick up and continue for 3 months before I stopped the goal. I started faltering after turning off the goal, so I turned it back on and still going.

5. Continue meditating until I did not want to.
I have meditated for years but Beeminder helped me maintain it when it got difficult. Like brushing my teeth, once I turned off the goal, I faltered. However, I chose not to start up again.

I used Calm for the past year and renewed it recently. I tried Headspace before that for a year. If I was to start again, I would want to try something different.

6. Limit Netflix and media consumption. And get back into reading.
I created a goal that limits how many times per week I can watch TV. However, this led to me binge-watching TV on weekends. I did not mind that until recently, so I created a new goal to limit it to an hourly basis. Overall, my TV consumption dropped tremendously. I also stopped listening to music that I did obsessively. I have also stopped browsing Reddit and the news. I have quit Facebook and other social media platforms long ago, but Reddit was quite sticky.

I used to be a voracious reader up until I left college. With work taking up most of my time, TV became my main entertainment. I came back strong with 20 books read last year and planning on 30 this year. I tried different ways of measuring: counting how many books, measuring how much time I readā€¦ But the best way has been to aim to read at least 10 minutes every day. Time-based goals seem to encourage me to cram and then stop for days. Finishing a whole book also encourages me to get lazy until the time is up. Reading 10 minutes every day means I am always putting making an easy effort towards finishing a book, often going beyond.

To encourage me to finish books I start and not spend every 10 minutes on the ones I enjoy the most, I added a rule that the 10 minutes have to be from the book I started first.

7. Track and budget with YNAB.
I learned about YNAB in the forum here and decided to give it a try. I used a daily goal to track that I tracked all my costs. I eventually stopped the goal after I thought I had the habit down. It turned out I did and tracking in YNAB became a key daily habit without a goal. I might need a goal soon to remember to track the budget more closely or maybe just a reminder, but maybe after the lockdown is over.

YNAB helped an extra psychological cost to Beeminder derailments. I have a category just for that, but that I donā€™t allocate any money from. So whenever I derail, I withdraw money from category like vacation or something I want to buy. It adds to the sting.

8. Get AWS certified.
I used Beeminder to track how much time I spent learning an online AWS course and then ended up getting the easy certificate. Now I am working towards the next level one.

9. Develop a website to help track Beeminder goals.
The main motivation behind this is that I wanted to build my own thing. As a software engineer, I use a lot of tools that others have built but nothing that I have built myself.

I also found the Beeminder UI (web and android) to submit points to be friction-full. Donā€™t get me wrong, I obviously love Beeminder. But the UI could be simpler. Thereā€™s way too many clicks to add one point. After you add a point, the order of the goals changes. So if you are adding a lot of points, then itā€™s frustrating.

Please keep in mind how I like to add points. I submit all of my points once in the morning for the previous day, except for time-based goals. Before Beeminder, I used to use a simple Habits android app for years to track habit, which was a list of goals and you only had to tap that day to mark it as done. So moving to Beeminder, I wanted that simplicity.

So I built my own form. At first it was simple, just an HTML file that I would update. Then it became a web app with NodeJS, Handlebars and Postgres, deployed on Heroku. I built it with only one user in mind, which is why I never shared it. I have open-sourced it since. And recently, I have been rebuilding it with Vue and Handlebars, and other users in mind. I am just about done migrating, so if you are interested, let me know.

I use this in tandem with the Beeminder widget in the Android app, which offers the simplest view of all the goals and takes up most of my home screen.

10. Keep and use a todo-list.
I have tried todo lists before but I always forget about them. I am using Todoist Premium integrated with Beeminder. The goal is currently set to 2 todos per day, with max safe days at 4. Max safe day feature is the main reason I switched to Bee Plus for this goal. Itā€™s also set for a lot of the other goals.

I have the same issue as everyone else who starts doing low priority and easy todos just to get an easy. I am trying out a new strategy where I use priorities to set what I can do. So if I have a P1 in my list, that must be done. Any other todos completed before donā€™t count (delete it instead of complete it). P2 takes precedence as well except for P1s. And P3s take precedence except for P1s and P2s. And I can only have one of each: one P1, one P2 and one P3.

I am still trying this approach out, but so far itā€™s working. The only reason you are reading this is because I gave the todolist item to create a thread a priority, which I have had in my list for weeks now.

I have also used this goal as a way to avoid creating a lot of other small goals. Do I need a Beeminder goal to make sure I weigh in every week? What if I could just get a point for it in this goal? Same goes for reconciling YNAB accounts, updating my LastPass master password, etcā€¦


Okay, 10 things is plenty. Thereā€™s definitely more. But Beeminder has been a game changer for me. I will discuss more things in future posts and use this as a place to think out loud and review.

7 Likes

The last post was a lot about success I have had along the way. It painted a nice picture with a lot of wins, but only barely touched upon failures. This post is about failure. And I have failed a lot along the way at a lot of different things.

ā€˜Failedā€™ is a loaded word with a lot of emotions attached. ā€˜Derailedā€™ is a much nicer word than ā€˜failedā€™. It implies that one might be off track for now, but they can get back on track. I have derailed 27 times since I have started using Beeminder more a little more than a year ago, totaling about $150 worth of losses :flushed:.

The challenge here is thereā€™s no immediate way of measuring how much value was added by each goal. How do you quantify the added value of brushing my teeth twice a day instead of just once? Maybe we can use the cost of a dentist visit to insert fillings. My friend just told me he paid $350 for his dentist visit to do so. Thatā€™s about $1 per day. Turns out thatā€™s how much I have pledged for a daily brush-your-teeth goal.

This makes sense based on my experience. Small daily goals are given a small pledge to minimize risk. Important time-sensitive goals are given higher value to incentivize myself. If I derail on an unimportant goal and it becomes too expensive, I would lower it. In theory, my current pledges will always reflect how much value I place on a goal. Maybe we can flip this and generalize a bit. Letā€™s say that for each day I stick to my goals and donā€™t derail, I gain that amount. Currently I have 16 active daily goals (9 $5 and 7 $1), so thatā€™s about $52 per day added value or $18,980 per year :open_mouth:.

Thatā€™s a nice picture, where the added value massively outweighs the cost. Obviously, this estimation is filled with issues.

Thereā€™s the auxiliary costs of pursuing a goal. Thereā€™s the monthly subscription cost to Beeminder itself (for Bee Plus, thatā€™s $16x12 or $192 per yer). Want to workout at a gym? You need a gym subscription and CrossFit is not cheap. Want to meditate every day using an app? Pay for the yearly subscription ($70/year for Calm). Do you want to build a website on Heroku? Thereā€™s hosting costs ($7/month) and the domain name ($27/year). Want to brush more? You need to buy toothpaste more often. Looking at this alone, it might be cheaper to stay at home and not try anything.

Obviously, not every goal has auxiliary costs or needs to have it. Do I really need a gym to work out? Or necessarily the most expensive one around? Do I really need an app to meditate or can I do it on my own? Do I really need to use Heroku developer plan rather than stick to the free tier? But these costs are real and sometimes are necessary, and so they are important to consider. Unlike Beeminder derailments, they act as deterrence and an excuse.

Another type of cost is opportunity cost, as in the cost of pursuing some goal instead of another. This obviously is difficult to quantify and irrelevant to what platform you are using to track your goals. But this is still important to consider when setting up and ending goals. I often find myself wondering if whatever I am doing is the most important thing I could be doing now. Beeminder helps with this. The higher the pledge or the sooner the deadline, the more likely I will focus on that.

Thereā€™s also the plateauing of added value. I previously estimated that 1 day of brushing my teeth is worth $1. But is brushing my teeth after 364 days of brushing as valuable as brushing on the first day? Probably not. It gets incrementally less and less valuable to brush. Missing one day does not hurt. This is probably true for most of the high frequency / low value activities. But the cost of failing completely that 1 missing day can lead to is much higher than the daily immediate cost. As in, by missing one day, the risk of completely stopping after that increases. Obviously, this is what I lose sight of when I struggle to get out of bed to brush and why we need Beeminder. Itā€™s the long view of brushing that needs to be considered, not just for a year but an entire life.

But not all goals will necessarily plateau, some can grow. The obvious example is saving and investing financially. The other is building relationships, where meeting one new person can introduce you to a whole new group of people (network effects). (However, this only matters if you are counting how many people you connect with. I personally tend towards depth in relationships which tends to plateau). I am struggling to think of more examples of this, but this seems like an important category to invest in.

So the equation so far is:
Goal value = (added value) * (decay/growth factor) * (cost of stopping weight) - derailment cost - auxiliary costs - opportunity cost

This was an exercise for me to try to weigh the value added by using Beeminder compared to the cost. I donā€™t know if I came to a clear answer here. Though I think if you asked me to pay $150 dollars to achieve everything I listed previously, I would pay it gladly.

2 Likes

In this post, I want to write about a best practice I found in setting up goals:

Create specific goals rather than generic ones.

What does a generic goal look like? I have a goal now called dev in which I measure development work for my personal projects. The goal was to ensure I kept working on my personal productivity website that I have mentioned before.

However, I thought it might be a good idea to keep it generic so I donā€™t have to create goals after that, or use it to drive other personal projects. The problem is it becomes unclear what I should be doing now. Is working on this project what I should be doing now? How can I balance multiple projects that all fall under dev?

Beeminder features inherently create a prioritization system on what needs to be done now. Creating specific goals rather than generic ones amplifies that and reduces friction when it comes choosing what to do and what you need to focus on.

2 Likes

Wow, yes, beautifully said! Iā€™m especially impressed by this because it took me years to get where youā€™ve gotten. I used to always want to keep my goals nice and general, have a parsimonious set of things on my dashboard, etc. Another example: I used to prefer having a single ā€œreadingā€ goal. But, like you, Iā€™ve found that that way of thinking makes for a lot of friction in creating new goals when I notice new ways in which my actions deviate from my aspirations. (Or I guess you were pointing out a different kind of friction: deciding what to do when your goals are too general. That too!) So, more and more, Iā€™m happy to create goals willy-nilly. Like I now tend to start a new Beeminder goal for each book I want to read.

This really wants to get blogged about, in case you might be up for a guest post or anythingā€¦

1 Like

Thanks for the suggestion. Will consider it.

Werenā€™t you advocating for more friction in goal creation though? Right now, goal creation is so much of a hassle that I tend to avoid making new ones.

1 Like

Introducing the morning checklistā€¦

Recently, my morning routine has gotten complicated, probably thanks to the lack of commute time to work. This helps helps formalize it and ensure I stick to my daily task lists even as environments change.

The key here is that I am using Beeminder to directly manage this. I created a Beeminder goal that tracks how often I successfully complete it.

That last item in the screenshot Completed all morning tasks in the morning directly submits a point to that Beeminder goal if I check it. So does the first item to a Beeminder meditation goal. All items in this checklist are required.

I have also created an express version that does not take an hour to complete for when I need to rush things.

2 Likes

Thatā€™s slick! Iā€™ve been thinking of riggijg together a tiny routines tool. Whatā€™d you use to make it?

Vue.js and TypeScript on the FE
Node.js and PostgreSQL on the BE
Heroku for deployment. Though I am thinking about managing it myself in AWS directly.

I designed it with mobile-first in mind. The forms must be specified in JSON so that they are easy to configure and update. It supports timers for time-based Beeminder goals and text-inputs. It also supports randomizing questions so that you get a different question each time.

If you are interested in trying this out, I am happy to add you as a user. But you would have to keep in mind itā€™s still work in progress and not super user-friendly yet.

1 Like

Introducing the filter button for Beeminder dashbaord

I talked before about how Beeminder is great for prioritization. However, as the number of goals grows, it becomes harder to manage.

Besides the app to manage forms, I have this little button I added to the dashboard to filter for active goals.

Active goals are goals that require time and effort to complete like completing todos or spending time coding. Passive goals are goals that just are handled by default, either out of habit or by avoiding an activity like not smoking.

I have coded this twice, having lost the code before. So I am sharing it now so that I wonā€™t lose it again and maybe others will find it useful. This only works Opera and Chrome, and will break as soon as thereā€™s some kind of UI change.

Steps to add a button to filter goals:

  1. Add the Resource Overrides Chrome Extension
  2. In the overrides console, add a new script under the tab url https://www.beeminder.com/yourusername* like this:
  3. Edit the file and add the following script:
script
const goalsToKeep = new Set(["goal1", "goal2"]);

const filter = () => {
    [...document.querySelectorAll('#goals-active > .goal')].filter(goal => !goalsToKeep.has(goal.dataset.slug)).forEach(goal => goal.remove());
};

const addFilterButton = () => {
    const element = document.createElement('a');
    element.id = "myfilter"
    element.href = "#";
    element.style = "font-family: Verdana, Geneva, sans-serif; font-size:18px; position:fixed; width:60px; text-decoration: none; height:60px; bottom:40px; right:40px; background-color:#0C9; color:#FFF; padding: 15px 8px; border-radius:50px; text-align:center; box-shadow: 2px 2px 3px #999;";
    element.innerText = "Filter";
    element.onclick = filter;
    document.body.appendChild(element);
};

const isDashboardPage = () => {
    return !!(document.querySelector('.content.dashboard > .panel > #goals-active'));
}

const init = () => {
    if (isDashboardPage()) {
        addFilterButton();
    }
};

window.addEventListener('load', () => {
    init();
});
  1. In the first line, update it to only list the goals you want to keep
1 Like

Yeah, definitely. Let me know what you need from me to add me :slight_smile:

I really like Vue, too, which makes this even nicer!

2 Likes

For firefox users, thereā€™s a plugin that does some similar things.

1 Like

Alright. I have sent you a private message. Let me know how it goes :slight_smile:

Introducing the programming form

In my life, thereā€™s been a few ideas have captured my mind and helped me navigate different situations throughout my life. Often those ideas were captured in simple quotes like:
Go with the flow helped me take it easy when I was a teenagerā€¦
Sometimes the only way out is in helped me navigate some difficult personal conversations.
What's the thing I really don't want to do? helped me prioritize things I was avoiding and encourage me to get started.
Don't make assumptions helped me reframe a lot of different situations.

Each of these has been instrumental in getting me to reframe and navigate situations in different phases of myself. I would repeat them to myself like a mantra. The problem is for each of these I have come across a thousand more ideas that I have highlighted in a book or nodded to in a podcast then quickly forgot. Even after a while, I would forget the ones that have been useful.

How can I stop forgetting certain ideas that I have come across? How can I ensure that useful ideas are there when they are needed? Through daily exposure. And this is where the programming form comes in.

The programming form helps me program myself. It helps solidify certain ideas in the way I think.

What is my purpose? What am I doing about it today?
The first question on there is about purpose. For a while I had a set answer that , but I no longer do. I found it to be a lot more motivating to also ask about what I am doing today.

What are you grateful for?
Thereā€™s enough out there about gratitude. This is a way of forcing myself to go through this exercise every morning.

Give an example or repeat: some quote.
I have more than 60 ideas captured here in a short pithy statement. Two are picked randomly and asked.
For the longest time, I would only have to type a quote or an answer to a question, thinking that exposure though repetition would aid recollection when needed. However, I found it a lot more effective to ask open-ended questions about the quote like give an example.

Why something?
Finally, thereā€™s asking with why. This comes from the fact that I tend forget why I start something. Why am I dieting or working out or using Beeminder or fasting or meditatingā€¦? This helps keep things in perspective and remind me why something is important to me, even if I am not doing anything towards it right now.

Does this approach work? Maybe. Certain ideas have come through and helped me behave in certain ways. But itā€™s tough to measure the impact of.

Edit: I messed up the posting of this. Tried to delete it and then edited again to finish it.

1 Like

Thank you for this! Thatā€™s a good one.

How does that ā€œprogramming formā€ work? Whatā€™s it have to do with programming? I donā€™t understand what the user puts for those last 3 fields.

@zedmango I messed up the posting of the post, posting it while I was still writing. Please reread it and let me know if itā€™s still not clear.

1 Like

Got it, thanks! now Iā€™d really like to know your 60 short pithy statements, and the choices for ā€œwhy something?ā€

Kind of reminds me of the Oblique Strategies.

@zedmango here you go. Sorry for late response, I just needed time to clean it up and add a reference on where I encountered some of the ideas.

2 Likes

3 day weekend, 30 hours of interview prep

Starting tomorrow, I am going into a long holiday (4 day holiday) and a 3 day full lockdown. So why not go a little crazy?

I will be interviewing soon with a company I am excited about and have a long laundry list of things to practice and review. So I will be using this weekend and lockdown to drive this forward.

I have not really had time to prep for this, so I will allow including meta time in setting up and planning tomorrow.

This is the public pre-commitement part to force myself not to simply quit tomorrow. Hereā€™s the beeminder goal I will use to track: https://www.beeminder.com/mutdmour/maniac-dbx

1 Like

3 day weekend, 30 hours of interview prep - results

I did it. 30 hours in 3 days. It was relatively easier than I thought. Even though I only measured productive time, not rest time. With the default maniac week setup, rest time is included.

Lessons learned:

  1. I see the value of pledge short-circuiting. The starting $5 pledge was not motivating enough. I think this was more driven by the fact that I am excited by this opportunity.
  2. Getting started is always the hard part.
  3. Solving problems consumes time more easily than reading and studying something.
  4. I could have deleted the goal at any point. It helped that I posted about it here. From now, I will simply restart this archived goal when I redo this on a short notice.
  5. Todoist is awesome and I should use it for more stuff.
  6. Having a consistent theme throughout the weekend helped keep focus.
  7. Other goals have suffered. I did not derail on any but a few of them went into the red.

I might redo this more often with less hours to help drive certain projects forward. I would do less hours as not to divert effort from other efforts.