Minding my goals (ian's corner)

Good call on the Anti-Magic violation there! Our thinking (probably before formulating the Anti-Magic Principle!) was that beyond the orange, blue, and green lines, the yellow lines are really just to shade the good side of the Bright Red Line, so we have heuristics based on what seems to look good. If we wanted to be more dogmatic about anti-magic… I’m not actually sure how we’d satisfy the aesthetic desiderata. There’s probably some way though!

I have to think harder but I’m tentatively standing by the design choice here. Again, good eye spotting the issue!

Oh, and for your use case, does it work to just do everything in terms of the raw number of safe days?

1 Like

Yes, I’m really watching the exact number of safe days (37+), but I liked the YBR-nostalgia of watching/being in lanes.

Indeed, my guess was that this was an aesthetic issue. It’s clear to see how the degenerate case, where only part of a single yellow line, or none at all could be confusing. I’d say shading could be accomplished by actually shading in a light yellow, with darker lines overlaid.

In practice, one could say that currently every goal’s good side is marked by a different “shade” of yellow. I’m talking about the emergent shade (caused by the density of yellow lines) that’s especially apparent when looking at the graphs in thumbnail form. Maybe some people are depending on that shade to get some kind of intuition about the intensity/slope of the goal (flat forever goals tend to be really yellow) or maybe the gallery would look bland with only a single shade of yellow? But maybe it’s something to consider experimenting with? Maybe a unified yellow shade results in a cleaner and less noisy design feel?


But, obviously, I’m not entirely convinced myself that showing the weekly lines is really an important design goal. The shading argument might stand on its own though. See this graph, for example, with inconsistent “shading”:

1 Like

Ah, the solid shading denotes infinite safety buffer.
And to review for anyone just tuning in, the thin yellow lines – with density chosen magically for aesthetic reasons – denote finite safety buffer.

1 Like

Funny, I was talking about the parts that (seem to) remain white (due to the weird road shape). :slight_smile:

1 Like

In true beemail fashion, this is just a post listing some of the topics I’d like to post about.

An update about beeminding my urgency load / attempting to reach 7 days of buffer (green is the new orange).

Onomastics: treader, eepdater and tightroper goals. Beeps, itstheromancecupid.

The confusing situation with gmailzero reminders.

My take on bookminding (very close to the gold standard).

Aborted revival of beelint.

Data schemes/data shapes.

Reverse breaks.

Goal creep.

Not committing to anything, but let me know if anything sounds interesting (don’t expect blog post quality material).


I am voting for this one because it stands out - probably because I played with proselint a couple of days ago and I am primed on “lint.”

1 Like

I haven’t forgotten about the rest, but I’m just leaving this here. It’s me tracking my urgency_load. No comment, for now.


I had a little time and finally implemented a basic, looks-mostly-correct-for-a-single-use-case implementation of longer dueby tables. It’s at GitHub - ianmcb/dueby: Generate dueby tables for Beeminder. I’ve been wanting (to do) this for a long while.

It’s based on the (old) Python code at Beebrain: The Brains of Beeminder. I later found the latest archived version at road/blib.py at master · beeminder/road · GitHub I wanted to use a canonical version of the road drawing code, so the results hopefully correspond well to those of the website.

I took the opportunity to experiment a bit with ChatGPT. While I’m predicting namedropping GPT like this will soon become redundant and tired, maybe some are still interested. I let it generate most of the skeleton. It generated foldlist based on that 2-line summary and added dayfloor (when asked). I asked it to remove the dependency on pandas. But I had to remove most of its logic, since it looked too complicated and I didn’t need such a nested data structure (and I’m not too well versed in Python).


I just looked it up and Discourse doesn’t automatically combine multiple successive posts by the same author. I think it just clicked why micro-blogging works so well for some people (say foone). I think I might be one of them and might try it out here, but it would be and look nice(r) if those posts were automatically combined.

1 Like

There’s still some missing links in my setup. It’s like the proverbial bucket with a hole, because one thing leads to another, leads to …

A main one is my note- and task-taking setup. I had the foresight to add a Created property to my org-mode capture templates. Some headlines are missing the property and I’d love to automatically add it. That (hypothetical) code always takes the form of some elisp that looks at the git repo my notes are in, any clocking data and the surrounding headlines.

That leads to wanting to find the earliest appearance of a string in a git repo. The opposite of what most people are looking for (blame). I solved this part already (August 2022). Maybe not optimally, since it’s slow IIRC, but it seemed to work:

headline='fill hole in bucket'; git show --no-patch --date=format:'%F %a %H:%M' --pretty=format:%ad $(git grep "$headline" $(git rev-list ^$(git log --oneline --pretty=format:%H kisp.org | tail -1)^ HEAD) -- bucket.org | awk -F: '{print $1}' | tail -n 1)

1 Like

Obviously, a great excuse to improve my elisp. So I should just read mbork’s “The Emacs Lisp Book”. On the store page, it’s calling out “An Introduction to Programming in Emacs Lisp”, so I should read that first. This was before my book-reading goals/system was in place, so that started that whole side-chain (with meta-goals, using my version of phillip’s Beeminder endpoint).


That always starts me thinking of some bugs in beeminder.el I want to reproduce/report/fix. I want to be able to:

  • report the number of overdue habits (org-mode feature) to Beeminder
  • with Created/Last Modified properties in place, implement a basic headline freshening

I should also refresh my memory on GTD, since handling backlogs of tasks is mostly/partly solved, I guess. Overall, org-mode is still working great for me.

I want to recreate a system I had at one time (using settings/templates/a little code). Headlines with NEXT and no schedule, get put in a section before the agenda so they can be scheduled. I think I had a hook to prompt for efforts (time estimates) when scheduling tasks as well. That’s pretty valuable and I’d like that back.

Some more emacs/Beeminder integration bugs/RFEs:

  • enable uploading to multiple goals (say when a parent headline is linked to a different slug)
  • fix some spurious output when uploading
  • fix an issue around marking a recurring habit (linked to Beeminder) that is currently clocking as done; I should check, but either nothing gets uploaded or no entry gets added to the logbook (when logging on entering/leaving the right states is enabled)
1 Like

I just remembered why I want those Created properties so bad (I could start freshening today without those). I’ve always wanted to create a graph of open/total headlines over time. With the date created and the date marked as done in the notebook, I should be able to recreate that data over an entire file’s history.

That would fit great on some kind of dashboard I want to create for people who are trying to contact me. Based on a whitelist and differing amounts of detail, I want to give them an indication of how busy/overwhelmed I currently am. Maybe some graphs, a number based on urgency_load, open headlines, unanswered mails, etc.

Great segue into getting back into using a local, scriptable email client. Maybe an easy way to create tasks for replying to mails and to automatically respond to people with a status report.

1 Like

I’ve been using a work Windows laptop for a couple of years. Only because it was there and convenient and my Linux laptops needed to be updated, but aren’t/weren’t backed up well.

I want to start using git-annex as backup/duplication tool, but in a great case of procrastination I decided I needed to read the entire devlog (900 posts) to really grok the software. Not an entire loss, because I do like reading those (say the oil shell devlog, etc.), but still… Also, since I’m still on Windows, I had to resort to the suboptimal Cygwin/MINGW/WSL environments to test the software out. It doesn’t work great and I don’t even want to use it like that, so that’s definitely time not well-spent (debugging). Especially with WSL being such a harmful poison apple, with regards to Microsoft’s EEE ways.


Minddump over. I really thought I’d be able to put up a succinct list of bullet points. Maybe this was therapeutic, maybe not…

ETA: Maybe it was. I managed to look for and find (not that hard) my old init file and copied some of my old code. Now I can once again call up a list of unscheduled tasks. It feels really inefficient and slow, but that’s for another day.


The following blog post has been languishing in my open tabs for a while. I finally got around to reading it. I don’t feel like summarising it, but it’s called Excuse me but why are you eating so many frogs. Maybe worth a read!


yes yes yes!! thank you for sharing this; amazing read!
i’ve been thinking about this topic (““productivity vs. laziness””) for a long while now, and even more frequently since i’ve been active on the forum here. i’m also not gonna summarize the blog post, but i do want to share a few favourite quotes from it, in case someone is still on the fence about reading it:

Why are we so hard on ourselves?

You just never pay attention to him when he’s doing a good job, so it always looks like he’s doing a bad job.

Strangling your passions in exchange for an elite life is like being on the Titanic after the iceberg, water up to your chin, with everybody telling you that you’re so lucky to be on the greatest steamship of all time. And the Titanic is indeed so huge and wonderful that you can’t help but agree, but you’re also feeling a bit cold and wet at the moment, and you’re not sure why.


I have to say that I was really affected with this article too.

For a few years, I’m realizing that I’ve been forcing myself to eat frogs because of my background, which was just living in discomfort. Even though my quality of life widely increased, I was still stuck in a mental state which says “work to get out of this really bad place”.

But now, I’m living OK. I don’t need to work that much to be happy. So work has transformed from “I want to work to have happiness” to “I want to work because I’ve always done it” (with a small touch of greed)

If I don’t start reducing my load and work on being happy now, when will I do it? I don’t need to have attained “success” to start working on that. Eating frogs, attracts frogs.

That’s an idea that I’ve also found in 37signals books such as Basecamp’s Shape Up book, REMOTE and It Doesn’t Have To Be Crazy At Work.


Glad you liked it! In the subgenre of thought leaders blogging about productivity I thought this was pretty unique in being both well-written and insightful.

Came here to post about a new silly Beeminder slogan I came up with: [Beeminder, ] turning the self-serving bias on its head.

I.e. Beeminder is responsible for your succeses while you are responsible for your own failures :slight_smile: