What this is about
This is a continuation from the discussion in https://forum.beeminder.com/t/some-long-standing-bugs-i-would-like-to-see-resolved/
As per the title: Strictly speaking it’s not a thesis, however I sort of turned it into one and people usually don’t know what a master’s project is and even professors occasionally confuse it with the master thesis so let’s go with that for now.
It’s also not a post mortem, since the project is not quite done yet. Almost. But not completely.
Speaking of this “project”: It’s been long overdue and I came to Beeminder specifically to finish it and I have poured many more hours into it than the 300 required by my university. In fact it grew so big it was suggested to me to submit it to a scientific conference.
It’s about lossy compression of digital photos, RAW files to be exact. It uses a method called SPIHT and I’m doing about 33% better than the only competitor, which is Adobe with their lossy DNG format.
It consists of a prototypical implementation and an accompanying documentation.
How it started
I began by beeminding hours¹ I put into the project. Six hours a day, every day, because “weekends off” was not available in the free tier and the whole beeminder philosophy seemed to be to build up buffer so in my head this amounted to 8hrs Mo-Fr and relaxation on the weekends.
It also brought me to the question “What counts as time spent on the project?”. One answer to this on the extreme end would be “Only time in which I was laser focussed counts”, so no bathroom breaks or short coffee breaks for instance. But I decided that’s too hardcore and instead went with how tracking time at your day job works.
It also begged the question whether the meta-time (read: Time spent messing with beeminder.com and the forums, fixing my computer that I require for the project, updating it, etc.) would count towards it and since I went with the workplace analogy this definitely included these times as well.
And this did work quite well for a good while. Except it got me into the very stupid spot that my social life was instantly reduced to 0. Because I don’t do buffers. After having done the bare minimum of 6hrs a day I could not get myself to do any more just to build up buffer so I would have time to spare for friends, for relaxation on the weekend or anything like that. That was bad. And one major thing that was very beeminder-esque that did not work for me at all.
It did however convey a feeling of urgency and the impeding doom that was the sword of Damocles hanging above my head and I did pour a lot of hours into the project as a result of that.
But these many hours didn’t move it nearly as much in the direction I needed it to go. Instead I would do other things that were closely related to the project but sucked slightly less than having to write page after page. I lost focus.
So eventually I set up another goal², this time integrating Trello and making it so I would have to reduce the number of cards (read: TODOs) in there to 0 by some time. And this kept me quite focussed. It worked quite well actually.
This helped a lot putting me back on track. But once archived I really never seriously set up a new iteration of that. I meant to but it never happened. Procrastination showed its ugly face and Beeminder was no help in that regard.
It does however count towards my time on the goal so discussing beeminder bugs does very much make it so I don’t actually have to do the hard project work.
It’s also the reason why I was very active in the forums in the first few months after having signed up.
It became a game of making the beeminder dashboard happy more than moving the project forward.
Back to beeminder mechanics that did not work for me at all: The 7 days akrasia horizon. Just no good at all for me. One day or maybe two days horizon, sure. But planning 7 days ahead? To the degree and level of detail required by beeminder? No way. There is too many variables in my life right now. And too much living in the moment by me.
This is also why weaselproofing is not an option. Not that I would be considering myself to be a weasel. There was a single instance (and @shanaqui caught it) where I once successfully talked myself into a derailment being not legit where when I looked back at it the next day I changed my opinion about it.
I never fudged any data points.
I would have appreciated different flavours of weaselproofing that would lock down different aspects of the goal, alas beeminder only knows the one. There’s loop holes in the system and eventually you figure them out. Some at least. Enough in any case.
There is no good metric
A central problem with beeminding the project and its progress is that it is a very creative endeavour and there is no simple metric like “steps per day” that would reflect it accurately enough.
Of course there is resources talking about making beeminder fit into that oddly shaped hole and I tried a few.
One documented strategy was to beemind pomodoros and I did (and am doing) this with some degree of success.
I’m not a big fan of it, it requires juggling yet another app, it requires remembering to turn the timer on and off and it adds another source of frustration because even the supposedly best pomodoro tracking app is full of bugs that cause data loss. And it’s very stupid to be asked by beeminder how many pomodoros you did only to find out the app deleted that info because writing concurrent systems is hard. It really felt like I was fighting the system.
Also I perceived the 25/5/15 minutes rhythm to not be a particularly good fit for me. I am clearly not the only one (see: tocks). But I had set up the goal so it would count the number of pomodoros rather than the time covered by time. Mostly because it was way less hassle³ to track that. And whilst I could have modified it to model minutes pomodoro-ed instead of the number of pomodoros I did not do it. Partly for it would mean more hassle, partly because I procrastinated it.
Early Bird
Speaking of procrastination: I would of course delay working on my project every day to the last possible minute. In order to combat that I introduced yet another goal for making me do at least part of the work before some more reasonable time.
And it had a great effect. It also added even more hassle to the overall time tracking and keeping beeminder happy.
Which is one of the reasons this, too, is retired now.
Oh but you’re not the first to run into this problem, I hear you say. And yes of course I wasn’t. And I tried to do water falls. But I would forget the new and different deadlines. For which I found a solution, too.
There was a reason for my previous deadline(s) being so late, though. As mentioned before my day to day life is not exactly well planned and laid out and the late deadlines helped to accommodating that.
There is also more downsides to using waterfalls and if recent beemails are any indication I am not alone with that impression.
Draft
As stated there is no good metric for this project in its entirety. The text production part however was a better fit for beeminding. I made another goal, used URLMinder, put LaTeX text files on Dropbox and typed away. 400 words a day initially.
Eventually the project did progress to a point where there was enough documentation written that it needed to be looked through, edited, partially re-written and so on. this I aspired to use the Draft integration and made a goal for that, too.
It died very quickly. First, measuring actual word count in a latex document is – while not impossible – a lot more involved than simply throwing your .tex files on some cloud storage and using the words in there as metric. There is special commands for formatting, for inserting pictures, etc. And I wanted a plain text representation to use in Draft. I don’t recall why I wanted that. It’s not hard to do, you can do that using pandoc
. But it did not automate itself and so the goal fell victim to my procrastination.
Somehow I managed to make progress on it anyway albeit at an abysmally slow pace. Eventually I gave it to friends to read through and I got back a lot of feedback and now I’m procrastinating implementing the feedback because I did all the trivial stuff already and am now faced with shortcomings in my text that require more involved changes than adding a comma here and there.
Where to go from here
I signed up about a year ago with the intention that with Beeminder I will surely and easily finish my project within a few weeks. Needless to say this did not happen. Not even close to it.
Instead I paid over $400 in derailments and subscription and was surprised and shocked when I learned that.
The project is still not done. Almost, though, but that is a state it has remained in for quite a while now.
Speaking of which: I have of course not just noticed today that the project’s progression leaves a lot to be desired and I have wanted to employ the services of https://bossasaservice.life for a while now, but despite being on their waiting list for months there was still no vacant spot. I think they would have helped quite a lot.
Of course there are other, similar services but a) no other came so highly praised and b) being on their waiting list allowed my procrastinating mind to not further pursue the idea since it had the alibi of having done its part by signing up.
So here I am. One year later. Project still not done. And I am “entertaining” the idea of quitting Beeminder altogether. I never set out to pour almost half a thousand bucks into this.
Of course it’s not quite this simple. There have been other goals beside my project related ones.
Including one that got me to work at my day job more often⁴. Because I wouldn’t go there since I had to finish my project and it was almost done, right?
Also there has been the very nice sponsoring of some hardware so, as I said, it’s not quite this one dimensional.
I’m not saying Beeminder is not working. I’m saying it’s not working for me. Not for what I’m needing it for.
¹ it’s archived right now, the graph shows nothing meaningful and Beeminder won’t let me adjust it while archived. I don’t get why it being archived should affect that but so is the way of the bee.
² It is now archived, too. Towards the end a number of other TODOs have piled up that were more relevant than the few that were left that I had planned weeks if not months ago.
³ It was also a workaround for the buggy and unreliable stopwatch in the beeminder iOS app. But in the end it just moved the pain to a different spot. Writing well behaving software is hard.
⁴ Just in case this sounds weird: My day job is super flexible about when and how much I work.