Beeminder diary, take 2

Here’s the plan. Current goals are pretty simple. In order of importance (and thus allocated time):

  • Work on a day’s worth of japanese learning. This might seem too vague to work as a goal, but it’s absolutely clear what a day of learning is to me.
  • Write for 30 minutes. I’m thinking of trying to get fantasy/sci-fi books published, and the first step is to start writing crappy books (and hopefully gradually get better at it).
  • Work on music for 6 minutes. I like making music. I’m not doing it as much as I would like bacause akrasia. I’m aiming to get good enough to submit to a competition by end of may.
  • Study finance for 6 minutes. It’s just 6 minutes because it’s not a priority just yet; but I plan to invest my savings myself instead of relying on “investment professionals”, so it’s eventually going to grow.
  • Study math or code for 6 minutes. I’d just like to understand basic college level math - but I’m giving myself the option to substitute the taxing math studying with some relaxing coding on hobby projects. Kind of arbitrary but I think it’s OK.

High level plan: make all of these habits, then increase writing to multiple hours a day, finance, music and math to 30 minutes each or around there. If I execute the plan and don’t radically change idea, writing is going to become my job, and learning Japanese, math, music and finance is going to make me a better person.

Yeah, beeminder is going to keep me accountable to some degree, but I’d like you guys to do so as well, considering my high level plan, and my occasional postings here.

Somehow, we need to convince my brain that spending time being productive for my own personal goals is worth the effort. Somehow my brain gets it if it’s about working on software or on fixing a PC or something for someone else, but when it’s about learning on my own, it doesn’t.

All goals and datapoints should be public (if I didn’t mess settings up).

5 Likes

What I’m saying is:

I, Eugenio Bruno, am able to work on a list of self-imposed goals for about 4 hours a day*.

I have no excuse for not being able to do so. I can’t blame akrasia, because I’ve found beeminder to be excellent at dealing with that in my personal experience.

If I do not follow through, it is because I am lazy. That’s it.

*The goals above sum up to 48 minutes plus japanese. Japanese usually takes me from 2 to 3 hours.

3 Likes

I’m not gong to say you folks suck at keeping me accountable.

… but I am heavily implying it.

I think by nearly every possible way of looking at this first week, though, it was a success, and I’m pretty sure it wouldn’t have been a success without beeminder.

I’m starting to gradually steepen the slope on some goals, so we will see how it goes longer term.

I’m writing from about 900 to 1500 words per hour in my novel. From what I’ve heard that’s the right order of magnitude, if a bit fast. But it’s very fun to discover what’s going to happen as I write, so maybe that accounts for it, and I’ll have to see how the rate averages out if I do get writer’s block* or the words and scenes don’t flow as easily.

  • I personally think in creative endeavors this is mostly blown out of proportion. I think you need knowledge, you need to acquire skill by doing it a lot, you need a process, and you need craftsmanship and work ethic if you are a composer, just as a programmer does. If any of those is lacking, just improve at it until your process produces adequate results, and then just put the hours in. It’s possible I’ll change my mind on this but I think it’s unlikely.
1 Like

I’m not sure what kind of accountability you’re looking for, but I’ll share a few comments on what people typically mean by accountability…

I used to be all-in on human accountability until I discovered that your observation is true almost across the board. In my experience finding someone who is good at consistently taking the initiative in keeping someone else accountable is very difficult.

The reason is pretty simple I think: It’s really hard to consistently prioritize the socially-awkward act of questioning someone’s behavior, especially since there’s some chance the person will begin to resent and/or resist your meddling at some point.

I’ve found it to be much more effective to have my own system (Beeminder or otherwise) ensure that I take the initiative in making an honest report to a peer, mentor, or community (such as this one). That way the other party isn’t burdened with the unpleasant task of reaching out to me. Instead, they simply provide advice and support at the time I request it, something which is much more socially palatable, and has the additional benefit that I’m much more likely to be in the mood to profit from the advice when it’s given.

3 Likes

I totally get what you’re saying and you make a lot of good points - noted.

My remark was 100% tongue in cheek… that said, the one thing I really think though is that sometime I’d really need someone to slap me and say “you aren’t doing enough”. I feel like I’m getting a free pass for being less than mediocre and I shouldn’t…

1 Like

I’m curious: Are the Beeminder goals you’ve listed in service to any larger, long-term goals? Could putting in a regular routine to review long-term goals and visualize desired futures help motivate you to be more ambitious? Maybe you could also use that time to revise your plan to achieve those long-term goals, and modify / add / remove your Beeminder goals accordingly?

You said that you’re hoping that writing will become your job, and you’re looking to write books as a way to get there. What if you committed to writing 1 x-page book every n months, and then used a weekly review to ensure you’re on track to do that?

1 Like

I see that many people have a meta-goal like that. I’ve always thought it would be overkill for me, but I think I’ll make one by merging my goal about transcribing some audio dictation.

The long term goal is for me to be a professional published author, fluent in three languages, expert in computer science and reverse engineering, and with a electronic music composer hobby.

It’s the identity as a whole. I’m building a kick ass identity, piece by piece. :stuck_out_tongue:

Beeminder is great at transforming long term tasks into short term ones, and I think as long as I average the same number of words per day I should be able to write a 100K word book every 1-4 months. The review to see if that keeps being the case seems like a good idea.

2 Likes

Speaking of

I quietly killed the math_or_cs goal because it seemed like I had started too many goals, but they’ve become much more manageable now that I’m getting the hang of it…

And after skimming threads on the GIMPS prime search about number theory and about the computer science sorcery they’re using to do it, I really feel like I need to reinstate the goal.

I want to understand this stuff on a deep enough level that I should be able to write a (suboptimal but not terrible) CUDA factorization program and check that it gives the same results as mfatkc.

Long road to be sure but I think doable.

1 Like

I use Boss-as-a-Service for the socially-awkward “You said you were going to do this, and then you didn’t… what’s up?” emails.

6 Likes

pfffffffft, I realized the time too late to do my hour and a half of japanese.

well, the worker bees get a dollar today :stuck_out_tongue: I’ll plan my day better tomorrow (retroratcheting to eep-day right away!)

2 Likes

Was this a productive and useful use of 40 minutes? Probably not (but it goes into dayv3_cs_math anyway :stuck_out_tongue:).
Was this fun? Yes.

10/10 would do again :slight_smile:

image

2 Likes

Unfortunately Boss-as-a-service is still not taking any new customers :frowning:

1 Like

Chipping away at the work, seeing the load ratio go from red to yellow to green to ∞ (done for the day) is actually pretty enjoyable… kind of the simplest, dumbest “gamification” you could think of: pretty colors

Load ratio is (hours left in the day) / (hours of work to do).

image

2 Likes

Ok, it can also get definitely not fun:

image

1 Like

t-t-triple post! the forum is slow anyway, I’m not bumping anything.

What a rollercoaster.

image

Great work! What’s that program you’re using? Something you wrote yourself?

2 Likes

Yep, it’s just a 100 lines crappy one-off thing. IT DOES NOT WORK UNLESS YOU SET YOUR TIMEZONE TO UTC, BECAUSE THAT’S MY SETUP SO I DIDN’T PUT THE ADJUSTMENT CODE IN (AGAIN, MEANT TO BE A ONE-OFF CRAPPY SCRIPT). THIS IS NOT INDICATIVE OF THE QUALITY OF THE SOFTWARE I CAN WRITE. Also, to run it you probably need to know enough python to understand the errors you’ll get because you don’t have the right hardcoded files, and you’ll want to exclude any non-hour-based goals with the (again hardcoded) EXCLUDE_SLUGS :stuck_out_tongue: :

import requests
import time
from colorama import Fore, Style
import datetime

BASE_URL = "https://www.beeminder.com/api/v1/"
PERSONAL_TOKEN = open("../beetoken").read().strip()
EXCLUDE_SLUGS = "productivetime dayv3_japanese dayv3_transcribe_todoist".split(" ")

def get_goals_me():
    return requests.get(BASE_URL + "users/me/goals.json?datapoints=false&auth_token=" + PERSONAL_TOKEN).json()

if __name__ == "__main__":
    print("")
    print("Excluding slugs: {}".format(", ".join(EXCLUDE_SLUGS)))
    print("")
    print("")

    rate_total  = 0
    today_total = 0

    goals = get_goals_me()
    processed_goals = []
    for goal in goals:
        slug = goal["slug"]
        if slug in EXCLUDE_SLUGS:
            continue

        curval = goal["curval"]
        amount_for_additional_day = goal["safebump"] - curval
        rate = goal["rate"]
        lose_today = goal["losedate"] < time.time() + 24 * 60 * 60
        min_today = amount_for_additional_day
        if not lose_today:
            min_today = 0

        processed_goals.append({
            "slug": slug,
            "rate": rate,
            "min_today": min_today
        })

    processed_goals = sorted(processed_goals, key = lambda x: x["min_today"], reverse = True)
    for goal in processed_goals:
        slug = goal["slug"]
        rate = goal["rate"]
        min_today = goal["min_today"]

        rate_total += rate
        today_total += min_today

        color = Fore.RED
        if min_today == 0:
            color = Fore.GREEN

        print("{}{:<30} | rate {:<12.2f} | min_today {:<12.2f}{}".format(
            color, slug, rate, min_today, Style.RESET_ALL
        ))
    

    deadline = datetime.datetime.now(datetime.timezone.utc).replace(hour=23, minute=59, second=59).timestamp()
    time_left = (deadline - time.time()) / 3600

    if today_total != 0:
        load_ratio = time_left / today_total
    else:
        load_ratio = 24

    if load_ratio > 4:
        color = Fore.GREEN
    elif load_ratio > 2.5:
        color = Fore.YELLOW
    else:
        color = Fore.RED

    if load_ratio == 24:
        load_ratio = "∞"
    else:
        load_ratio = "{:.2f}".format(load_ratio)

    print()
    print("eventual daily load:    {:<12.2f}".format(rate_total))
    print()
    print("{}load ratio:             {:<12}{}".format(color, load_ratio, Style.RESET_ALL))
    print()
    print("{}today's remaining load: {:<12.2f}{}".format(color, today_total, Style.RESET_ALL))
    print("{}today's time left:      {:<12.2f}{}".format(color, time_left, Style.RESET_ALL))
    print()
    print("{}buffer:                 {:<12.2f}{}".format(color, time_left - today_total, Style.RESET_ALL))
    print()
1 Like

Speaking of “great work” (which mine definitely isn’t): diagrams looks amazing; makes me want to try to learn haskell again!

I have (had?) in my backlog of cool projects to do a thing to do vector graphics programmatically after having to waste hours in inkscape to make changes that in a procedural program would just be changing a couple constants… but apparently it already exists :smiley:

1 Like

Haha, when I said “great work” I was referring to getting everything green, not to the script per se. Although it seems like a nice and serviceable script, I write stuff like that all the time. Not everything is worth putting in the work to make it a masterpiece of lucid, maintainable code. :wink:

Thanks! =D I don’t have much time to work on it these days but I at least try to make sure it stays up-to-date. I certainly still use it a lot myself. You should definitely learn Haskell again; I have had at least a couple people say that learning how to use diagrams was a pleasant and motivating way to learn Haskell. There are a bunch of tutorials at Diagrams - Tutorials which are not Haskell tutorials per se, but they have exercises and stuff so they might serve.

3 Likes

I guess I’ll kind of convert this to a diary?

Things I need to figure out:

  • is 1.5 hours enough for the rate of learning I want from japanese?
  • how quickly should I be increasing the rate of writing?
  • should I count watching sanderson’s lectures and taking as writing? they’re useful and necessary in my opinion, but are not strictly “writing” (which is the most important thing). I’m leaning towards yes, but retroratcheting…
  • I need to figure out how to organize my stuff in true TODOs vs in information and ideas to keep handy about projects, but I think I’ll find lots of helpful advice in the forum regarding this
1 Like